function Trim(strval)
{
	var intLeft, intRight;	
	strvar = new String(strval);	
	if (strvar.length==1 && strvar==" ") return "";	
	
	intLeft = 0;
	while ((strvar.charAt(intLeft) == " ") && (intLeft<strvar.length)) intLeft++;	
	intRight = strvar.length-1;
	while ((strvar.charAt(intRight) == " ") && (intRight>0)) intRight--;
	
	if (intRight>=intLeft) {
		return strvar.substring(intLeft,intRight+1);
	} else {
		return "";
	}	
}
//Check number value
function IsNumber(numberVal)
{
	numberVal = Trim(numberVal);
	if (numberVal== "") return false;
	if (isNaN(numberVal))
		return false;
	return true;
}
//Check positive number
function IsPositiveNumber(numberVal)
{
	if(!IsNumber(numberVal)) return false;
	var Temp = eval(numberVal)*1;
	if(Temp <= 0) return false;
	return true;
}
//Check non-negative number
function IsNonNegativeNumber(numberVal)
{
	if(!IsNumber(numberVal)) return false;
	var Temp = eval(numberVal)*1;
	if(Temp < 0) return false;
	return true;
}
//Check Float value
function IsFloat(numberVal)
{
	var testNumber = new Number(parseFloat(numberVal));
	
	if (Trim(numberVal)!= ""){
		if (isNaN(numberVal)  || (Trim(testNumber.toString())!=Trim(numberVal)))
			return false;
			
	}
	return true;
}
//Check Integer value
function IsInteger(numberVal)
{
	var testNumber = new Number(parseInt(numberVal));
	
	if (Trim(numberVal)!= ""){
		if (isNaN(numberVal)  || (Trim(testNumber.toString())!=Trim(numberVal)))
			return false;
			
	}
	return true;
}
//Check Positive Integer
function IsPositiveInteger(numberVal){
	if(!IsInteger(numberVal)) return false;
	var Temp = eval(numberVal)*1;
	if(Temp < 0) return false;
	return true;
}
//Check date value with format MM/yyyy and refine to valid format
function validDate(strDate){
	var intPos = strDate.search('/');
	var strMonth;
	if(intPos > 0)
	{
		strMonth = strDate.substr(0, intPos);
		if(!IsNumber(strMonth)) return false;
		if(eval(strMonth) <= 0 || eval(strMonth) > 12)
		{
			return false;
		}
		
		strYear = strDate.substr(intPos + 1);
		if(!IsNumber(strYear)) return false;
		if(eval(strYear) < 1980 || eval(strYear) > 2200)
		{
			return false;
		}
	}
	return true;
}
//Check date value with format input
function IsDateFormat(strDate,strFormat)
{
	if (strFormat=="mm/dd/yyyy")
	{
		return IsDate(strDate);
	}
	else
	{
		return IsDateFR(strDate);
	}
}
//Check date value with format dd/MM/yyyy and refine to valid format
function IsDateFR(strDate)
{
	if ((strDate.length>10)||(strDate.length<8)) return false;
	intDash = strDate.search("/");
	if (intDash == -1) return false;
	else
	{
		strTemp = strDate.substr(0,intDash);
		if ((strTemp.charAt(0) == "0")&&(strTemp.length>1)) strTemp = strTemp.substr(1);
		if (IsNumber(strTemp)==false) return false;
		else
		{	
			intDay = parseInt(strTemp);						
		}	
		strDate = strDate.substr(intDash+1);
	}
	intDash = strDate.search("/");
	if (intDash == -1) return false;
	else
	{
		strTemp = strDate.substr(0,intDash);
		if ((strTemp.charAt(0) == "0")&&(strTemp.length>1)) strTemp = strTemp.substr(1);
		if (IsNumber(strTemp)==false) return false;
		else
		{
			intMonth = parseInt(strTemp);
			//Kiem tra thang nhap vao
			if ((intMonth<1)||(intMonth>12))	return false;
			intDayN = 30;
			if ((intMonth<8)&&(intMonth % 2 == 1)) intDayN = 31;
			if ((intMonth>7)&&(intMonth % 2 == 0)) intDayN = 31;
			//Kiem tra ngay nhap vao
			if ((intDay<1)||(intDay>intDayN)) return false;
		}	
		strDate = strDate.substr(intDash+1);
	}	
	if (IsNumber(strDate)==false) return false;
	else
	{	
		intYear = parseInt(strDate);
		if ((intYear<1900)||(intYear>2100)) return false;
	}	
	if (intMonth==2)
	{
		if (intYear % 4 == 0) intDayN = 29;
		else intDayN = 28;
		if (intDay > intDayN) return false;
	}
	strTemp = "";
	if (intDay<10) strTemp = strTemp + "0" + intDay + "/";
	else strTemp = strTemp + intDay + "/";
	if (intMonth<10) strTemp = strTemp + "0" + intMonth + "/";
	else strTemp = strTemp + intMonth + "/";	
	strTemp = strTemp + intYear;
	strDate = strTemp;
	return true;
}
//Check date value with format MM/dd/yyyy and refine to valid format
function IsDate(strDate)
{
	if ((strDate.length>10)||(strDate.length<8)) return false
	intDash = strDate.search("/")
	if (intDash == -1) return false
	else
	{
		strTemp = strDate.substr(0,intDash)
		if ((strTemp.charAt(0) == "0")&&(strTemp.length>1)) strTemp = strTemp.substr(1)
		if (IsNumber(strTemp)==false) return false
		else
		{	
			intMonth = parseInt(strTemp)
			if ((intMonth<1)||(intMonth>12))	return false
			intDayN = 30
			if ((intMonth<8)&&(intMonth % 2 == 1)) intDayN = 31
			if ((intMonth>7)&&(intMonth % 2 == 0)) intDayN = 31
		}	
		strDate = strDate.substr(intDash+1)
	}
	intDash = strDate.search("/")
	if (intDash == -1) return false
	else
	{
		strTemp = strDate.substr(0,intDash)
		if ((strTemp.charAt(0) == "0")&&(strTemp.length>1)) strTemp = strTemp.substr(1)
		if (IsNumber(strTemp)==false) return false
		else
		{
			intDay = parseInt(strTemp)
			if ((intDay<1)||(intDay>intDayN)) return false	
		}	
		strDate = strDate.substr(intDash+1)
	}	
	if (IsNumber(strDate)==false) return false
	else
	{	
		intYear = parseInt(strDate)
		if ((intYear<1900)||(intYear>2100)) return false		
	}	
	if (intMonth==2)
	{
		if (intYear % 4 == 0) intDayN = 29
		else intDayN = 28
		if (intDay > intDayN) return false
	}
	strTemp = ""
	if (intMonth<10) strTemp = strTemp + "0" + intMonth + "/"
	else strTemp = strTemp + intMonth + "/"
	if (intDay<10) strTemp = strTemp + "0" + intDay + "/"
	else strTemp = strTemp + intDay + "/"
	strTemp = strTemp + intYear
	strDate = strTemp
	return true
}
//Compare 2 date 
function Compare(ct1,ct2,dtformat)//true ct1.value>=ct2.value else false
{
	if ((ct1=="")||(ct2==""))
	{
		return true;
	}
	else
	{
		var date1
		var date2
		var month1
		var month2
		var year1
		var year2
		tempdtFormat=dtformat;
		
		formatChar = " "
		aFormat	= tempdtFormat.split(formatChar)
		if (aFormat.length<3)
		{
			formatChar = "/"
			aFormat	= tempdtFormat.split(formatChar)				
		}

	
		aData1 =	ct1.split(formatChar)
		aData2 = 	ct2.split(formatChar)
		for	(i=0;i<3;i++)
		{
			if ((aFormat[i]=="d") || (aFormat[i]=="dd"))
			{
				date1 = parseInt(aData1[i], 10)
				date2 = parseInt(aData2[i], 10)
			}
			else if	((aFormat[i]=="m") || (aFormat[i]=="mm"))
			{
				month1 =	parseInt(aData1[i], 10) - 1
				month2 =	parseInt(aData2[i], 10) - 1							
			}
			else if	(aFormat[i]=="yyyy")
			{
				year1 = parseInt(aData1[i], 10)
				year2 = parseInt(aData2[i], 10)							
			}						
		}
		if (year2>year1)			
		{
			return false;
		}
		else
		{
			if (year2==year1)
			{
				if(month2 > month1)
				{
					return false;
				}
				else
				{
					if (month2==month1)
					{
						if (date2 > date1)
						{
							return false;
						}
						else
						{
							return true;
						}
					}
					else
					{
						return true;
					}
				}
			}
			else
			{
				return true;
			}
		}
	}
}
//Compare two Date
function CompareDate(strDate1, strDate2)
{
var day1, day2, month1, month2, year1, year2;
if (IsDate(strDate1)==false) return false
if (IsDate(strDate2)==false) return false

	intDash1 = strDate1.search("/")
	if (intDash1 == -1) return false
	else
	{
		strTemp1 = strDate1.substr(0,intDash1)
		month1 = strTemp1;
		strDate1 = strDate1.substr(intDash1+1)
	}
	intDash1 = strDate1.search("/")
	if (intDash1 == -1) return false
	else
	{
		strTemp1 = strDate1.substr(0,intDash1)		
		day1 = strTemp1;				
		strDate1 = strDate1.substr(intDash1+1)
	}	
	
	if (IsNumber(strDate1)==false) return false
	else
	{	
		intYear1 = parseInt(strDate1)
		if ((intYear1<1900)||(intYear1>2100)) return false		
		year1 = intYear1;
	}	
	intDash2 = strDate2.search("/")
	if (intDash2 == -1) return false
	else
	{
		strTemp2 = strDate2.substr(0,intDash2)
		month2 = strTemp2;
		strDate2 = strDate2.substr(intDash2+1)
	}
	intDash2 = strDate2.search("/")
	
	if (intDash2 == -1) return false
	else
	{
		strTemp2 = strDate2.substr(0,intDash2)		
		day2 = strTemp2;				
		strDate2 = strDate2.substr(intDash2+1)
	}	
	
	if (IsNumber(strDate2)==false) return false
	else
	{	
		intYear2 = parseInt(strDate2)
		if ((intYear2<1900)||(intYear2>2100)) return false		
		year2 = intYear;
	}	
	
	if (year2<year1) return false;
	
	if (year2==year1)
		{
		if (month2<month1) return false;
		
		if (month2==month1)
			{
			if (day2<day1) return false;	
			}
		}
	
	return true
}
//Check empty string
function IsEmpty(stringVal)
{
	stringVal = Trim(stringVal);
	if(stringVal.length==0)
		return true;
	else
		return false;
}

//Check e-mail address
function IsEmailAddress (strEmail)
{                                       
	var v = Trim(strEmail);
   
//Check for white spaces
    
	if (v.length==0) return true;
      var wspace = v.indexOf(' ');
      
      wspace=wspace+1;
	if(wspace == 0){	}
	 
	else  
		{ 

		alert('Whitespaces are not allowed!');
		return false;
		}
     
	var at_i = v.indexOf("@");          
	if (at_i > 0) {                     
	  var dot_i = v.indexOf(".", at_i);  
 
	  if ((dot_i == -1) || (dot_i==at_i+1))
	    return false;  
                  
	}
	else
	  return false;   
    
       
   
	return true;
}                                       
function urlEncode(inStr) {
	outStr=' '; //not '' for a NS bug!
	for (i=0; i < inStr.length; i++) {
	aChar=inStr.substring (i, i+1);
	switch(aChar){
	case '%': outStr += "%25"; break; case ',': outStr += "%2C"; break;
	case '/': outStr += "%2F"; break; case ':': outStr += "%3A"; break;
	case '~': outStr += "%7E"; break; case '!': outStr += "%21"; break;
	case '"': outStr += "%22"; break; case '#': outStr += "%23"; break;
	case '$': outStr += "%24"; break; case "'": outStr += "%27"; break;
	case '`': outStr += "%60"; break; case '^': outStr += "%5E"; break;
	case '&': outStr += "%26"; break; case '(': outStr += "%28"; break;
	case ')': outStr += "%29"; break; case '+': outStr += "%2B"; break;
	case '{': outStr += "%7B"; break; case '|': outStr += "%7C"; break;
	case '}': outStr += "%7D"; break; case ';': outStr += "%3B"; break;
	case '<': outStr += "%3C"; break; case '=': outStr += "%3D"; break;
	case '>': outStr += "%3E"; break; case '?': outStr += "%3F"; break;
	case '[': outStr += "%5B"; break; case '\\': outStr += "%5C"; break;
	case ']': outStr += "%5D"; break; case ' ': outStr += "+"; break;
	default: outStr += aChar;
	}
	}
	return outStr.substring(1, outStr.length);
}

function IsNumeric(type,sText)
{
	if (type==1){
	   var ValidChars = "0123456789";
	}
	if (type==2){
	   var ValidChars = "0123456789.";
	}
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
	  { 
	  Char = sText.charAt(i); 
	  if (ValidChars.indexOf(Char) == -1) 
		 {
		 IsNumber = false;
		 }
	  }
   return IsNumber;
   }


function changedata(type,sText)
{
	if (type==1){
	   var ValidChars = "0123456789";
	}
	if (type==2){
	   var ValidChars = "0123456789.";
	}
   var newdata="";
   var Char;

 
   for (i = 0; i < sText.length; i++) 
	  { 
	  Char = sText.charAt(i); 
	  if (ValidChars.indexOf(Char) == -1) 
		 {
			Char ="";
		 }

		 newdata = newdata + Char;
	  }
   return newdata;
   }
   
function checkdatatype(type,txtcontrol){
	if (type==1){ // integer number
		if (!IsNumeric(1,txtcontrol.value)){
			alert("Please, type integer number");
//			txtcontrol.value = changedata(1,txtcontrol.value);
			txtcontrol.value = "0";
			txtcontrol.focus();
			return false;
		}
	}

	if (type==2){ //currency
		if (validateDollar(txtcontrol))
		{
			txtcontrol.value = formatCurrency(txtcontrol.value);							
			txtcontrol.focus();
			return true;
		}
		else
		{
			alert("Currency value is invalid!");
			txtcontrol.focus();
			return false;
		}
	}
	
	if (type==3){ //weight or numerice
		if (IsNonNegativeNumber(txtcontrol.value))
		{
			//txtcontrol.value = formatNumber(txtcontrol.value);
			//txtcontrol.focus();			
			return true;
		}
		else
		{
			alert("Please, type a number!");
			txtcontrol.value = "0";
			txtcontrol.focus();
			return false;
		}
	}
	
	if (type==4){ //number
		if (IsNumber(txtcontrol.value))
		{
			//txtcontrol.value = formatNumber(txtcontrol.value);
			//txtcontrol.focus();			
			return true;
		}
		else
		{
			alert("Please, type a number!");
			txtcontrol.value = "0";
			txtcontrol.focus();
			return false;
		}
	}
	
}

// format a value as currency. 
function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	
	if(isNaN(num))
	   num = "0";
	   
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	
	if(cents<10)
		cents = "0" + cents;
		
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3)) + ',' + num.substring(num.length-(4*i+3));
		
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}

// format a value as number. 
function formatNumber(num) {
	num = num.toString().replace(/\$|\,/g,'');
	
	if(isNaN(num))
	   num = "0";
	   
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	
	if(cents<10)
		cents = "0" + cents;
		
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3)) + ',' + num.substring(num.length-(4*i+3));
		
	return (((sign)?'':'-') + num + '.' + cents);
}

<!-- Function Description:  Validates Non Currencys fields. --> 
function validateDollar( fld ) 
{ 	
   var temp_value = fld.value; 
   	
   if (temp_value == "") 
   { 
     //fld.value = "$0.00"; 
     return; 
   } 
   var Chars = "0123456789.,$-"; 
   for (var i = 0; i < temp_value.length; i++) 
   { 
       if (Chars.indexOf(temp_value.charAt(i)) == -1) 
       {                     
           return false; 
       } 
   } 
   return true;
} 
var allOn = true;
function SelectAll(MyForm,MyBox){
	var countBoxes = eval("document."+MyForm+"."+MyBox+".length");
		if(!countBoxes){
			eval("document."+MyForm+"."+MyBox+".checked =  allOn");
		}
		else{
			for (var i=0; i<countBoxes ;i++){
				eval("document."+MyForm+"."+MyBox+"[i].checked =  allOn");
			}
		}
	allOn = !allOn;
}

function cleanField(obj){
	obj.value = obj.value.replace(/[^\d]/g,"");	
	//if(obj.value.length == 0 || obj.value == 0){obj.value=1}
}

function cleanFieldDefaultZero(obj){
	obj.value = obj.value.replace(/[^\d]/g,"");	
	if(obj.value.length == 0){obj.value=0}
}

function cleanFieldDefaultEmpty(obj){
    obj.value = obj.value.replace(/[^\d]/g,"");    
    if(typeof minimumQty != "undefined")
        {
        if ((obj.value.length > 0) && (obj.value > 0) && (obj.value < minimumQty))
            {
            alert(replaceMsg);
            obj.value=replaceQty;
            }
        }
    if(obj.value.length == 0){obj.value=""}
}

function doChangeSKUOption(strObjectID, location,productid,bundle_ID)
{
//Edit by cuongnp, 08/21/08, Ajax implement task
	if (document.all){
	        var alltag = document.all;
	}
	else{
		var alltag = window.document.getElementsByTagName('*');
	}
	var iAll=alltag.length;
	var strComboSelected = '';
	for(var i=0;i<iAll;i++){
		var vForm=alltag[i];
		if((vForm.tagName=="SELECT")||(vForm.tagName=="select")){
			sId = vForm.id;
			if (sId.indexOf("sltOT") != -1){
				sValue = window.document.getElementById(sId).value;
				strComboSelected = strComboSelected + sId + "="+sValue+",";
			}	
		}	
	}
    var objForm = window.document.getElementById(strObjectID).form;
	objForm.action = location;
    objForm.method = 'post';
    var optionid = window.document.getElementById(strObjectID).value;
	if (typeof optionChanged != "undefined"){
	    var cbochoose= strObjectID;
        var optionid = optionid;
		var productid = productid;
		var bundle_ID = bundle_ID;
        optionChanged(objForm,location,cbochoose,optionid,productid,bundle_ID,strComboSelected);
	}    
    else
        objForm.submit();
}

function doDeleteCart(strLocation)
{

	if (confirm('Do you want to Delete this Card?'))
	{
		window.location.href= strLocation;
		
		/*var strFormName = document.all("cstCCardType").form.name;
		var objForm = document.forms.namedItem(strFormName);
		//objForm.attributes.getNamedItem('action').value = strLocation;
		objForm.action = strLocation;
		objForm.method = 'post';
		objForm.submit();		*/
	}

}


	function URLDecode(encoded)
	{
	   // Replace + with ' '
	   // Replace %xx with equivalent character
	   // Put [ERROR] in output if %xx is invalid.
	   var HEXCHARS = "0123456789ABCDEFabcdef"; 
	   var plaintext = "";
	   var i = 0;
	   while (i < encoded.length) {
		   var ch = encoded.charAt(i);
		   if (ch == "+") {
			   plaintext += " ";
			   i++;
		   } else if (ch == "%") {
				if (i < (encoded.length-2) 
						&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
						&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
					plaintext += unescape( encoded.substr(i,3) );
					i += 3;
				} else {
					alert( 'Bad escape combination near ...' + encoded.substr(i) );
					plaintext += "%[ERROR]";
					i++;
				}
			} else {
			   plaintext += ch;
			   i++;
			}
		} // while
	   
	   return plaintext;
	};
	
	function URLEncode( plaintext)
	{
		// The Javascript escape and unescape functions do not correspond
		// with what browsers actually do...
		var SAFECHARS = "0123456789" +					// Numeric
						"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
						"abcdefghijklmnopqrstuvwxyz" +
						"-_.!~*'()";					// RFC2396 Mark characters
		var HEX = "0123456789ABCDEF";
	

		var encoded = "";
		for (var i = 0; i < plaintext.length; i++ ) {
			var ch = plaintext.charAt(i);
			if (ch == " ") {
				encoded += "+";				// x-www-urlencoded, rather than %20
			} else if (SAFECHARS.indexOf(ch) != -1) {
				encoded += ch;
			} else {
				var charCode = ch.charCodeAt(0);
				if (charCode > 255) {
					alert( "Unicode Character '" 
							+ ch 
							+ "' cannot be encoded using standard URL encoding.\n" +
							  "(URL encoding only supports 8-bit characters.)\n" +
							  "A space (+) will be substituted." );
					encoded += "+";
				} else {
					encoded += "%";
					encoded += HEX.charAt((charCode >> 4) & 0xF);
					encoded += HEX.charAt(charCode & 0xF);
				}
			}
		} // for
	
		
		return encoded;
	};
	
var m_Changed = 0;
var m_Continue = 1;
function setContentChange()
{
	m_Changed = 1;
}
function setIntegerContentChange(obj)
{
	 setContentChange();
	 return checkdatatype(1,obj);
}
function setFloatContentChange(obj)
{
	 setContentChange();
	 return checkdatatype(3,obj);
}
function setCurrencyContentChange(obj)
{
	 setContentChange();
	 return checkdatatype(2,obj);
}

function setContentSafe()
{
	if (m_Changed == 1)
	{
		showBanner("save");
	}
	else
	{
		showBanner("load");
	}
	m_Changed = 0;
}
function checkChange()
{
	m_Continue = 1;
	if (m_Changed == 1)
	{
		m_Continue = 0;
		return '----------------------------------------------------------------------\n\n' +
				'Changes have been made!\n\n' +
				'----------------------------------------------------------------------';
	}	
}	
function checkContinue()
{
	if (m_Continue == 0)
	{
		return false;
	}	
	return true;
}
function changeCutRefContent(varName, varRefName, nCut)
{
	var strContent = window.document.getElementById(varName).value;
	if(strContent.length >= nCut)
	{
		strContent = strContent.substr(0, nCut) + "...";
	}
	window.document.getElementById(varRefName).innerText = strContent;
}

function changeRefContent(varName, varRefName)
{
	var strContent = window.document.getElementById(varName).value;
	window.document.getElementById(varRefName).innerText = strContent;
}
var boolOnfocusHid= '0';
var boolOnfocusRef= '0';
function domouse(strform,ref,hidden){
	objform = eval("window.document."+strform);	
//	alert(boolOnfocus);

	if(ref != '' && boolOnfocusHid != ref)	
		objform.all[ref].style.display = 'none';
	if(hidden != '' && boolOnfocusRef != hidden)
		objform.all[hidden].style.display = 'inline';
}

function DoOnfocus(strform,objspanHidden,objspanRef)
{
	objform = eval("window.document."+strform);		
	//alert(objform.all[objforcusHid].value);
	if(boolOnfocusHid != "0")
	{
	objform.all[boolOnfocusHid].style.display = 'none';	
	objform.all[boolOnfocusRef].style.display = 'inline';	
	}
	boolOnfocusHid = objspanHidden;
	boolOnfocusRef = objspanRef;
}

function subQSvar(varStr, varStrSub)
{
	//alert("varStr: " + varStr);
	var i = varStr.indexOf(varStrSub);
	if(i > 0)
	{
		//alert(i);
		var str1 = varStr.substr(0, i);
		//alert("str1: " + str1);
		var str2 = varStr.substr(i, varStr.length - i);
		//alert("str2: " + str2);
		var i1 = str2.indexOf("&");
		if(i1 > 0)
			str2 = str2.substr(i1 + 1, str2.length - i - 1);
		else
			str2 = "";
		//alert("str2: " + str2);	
		if(str2 == "")
			varStr = str1.substr(0, str1.length - 1);
		else
			varStr = str1 + str2;
	}
	//alert("varStr: " + varStr);
	return varStr;
}

function setQSvar(varQS, varVarName, varVarValue)
{
	var i = varQS.indexOf(varVarName);
	if(i > 0)
	{
		var str1 = varQS.substr(i, varQS.length - i);
		varQS = varQS.substr(0, i);
		var i1 = str1.indexOf("&");
		if(i1 > 0)
		{
			var str2 = str1.substr(i1, str1.length - i);
			str1 = str1.substr(0, i1);
		}
		str1 = str1.substr(0, str1.indexOf("=") + 1) + varVarValue;
		if(i1 > 0) str1 += str2;
		varQS += str1;
	}
	else
	{
		if(varQS.indexOf("?") > 0)
			varQS += "&" + varVarName + "=" + varVarValue;
		else
			varQS += "?" + varVarName + "=" + varVarValue;
	}	
	return varQS;
}

function doUpdateHref(formName, btnUpdate, strQS, strHref, nPageNo)
{
	//alert("formName: " + formName);
	//alert("btnUpdate: " + btnUpdate);
	//alert("strQS: " + strQS);
	//alert("strHref: " + strHref);
	//alert("nPageNo: " + nPageNo);
	strHref = subQSvar(strHref, "PageNum_Results");
	//alert("strHref: " + strHref);
	var objBtn = eval("window.document." + formName + "." + btnUpdate);
	if(m_Changed == 1 && objBtn)
	{		
		//alert("m_Changed = 1");
		setContentSafe();
		if(strQS.indexOf("?")>=0) strQS += "&urlAction=";
		else strQS += "?urlAction=";
		var obj = eval("window.document." + formName);		
		obj.action = strQS + URLEncode(strHref);
		if(nPageNo > 0)	obj.action += "&PageNo=" + nPageNo;		
		//alert("obj.action: " + obj.action); 
		objBtn.click();
	}	
	else
	{
		//alert("m_Changed = 0");
		if(nPageNo > 0)
		{
			if(strHref.indexOf("?")>=0) strHref += "&PageNum_Results=";
			else strHref += "?PageNum_Results=";
			strHref += nPageNo;
		}
		window.location.href = strHref;
	}
}
function doUpdateHref_Admin_Sort(formName, btnUpdate, strQS, strHref, nPageNo)
{
	//alert("formName: " + formName);
	//alert("btnUpdate: " + btnUpdate);
	//alert("strQS: " + strQS);
	//alert("strHref: " + strHref);
	//alert("nPageNo: " + nPageNo);
	//strHref = subQSvar(strHref, "PageNum_Results");
	//alert("strHref: " + strHref);
	var objBtn = eval("window.document." + formName + "." + btnUpdate);
	if(m_Changed == 1 && objBtn)
	{		
		//alert("m_Changed = 1");
		setContentSafe();
		if(strQS.indexOf("?")>=0) strQS += "&urlAction=";
		else strQS += "?urlAction=";
		var obj = eval("window.document." + formName);		
		obj.action = strQS + URLEncode(strHref);
		if(nPageNo > 0)	obj.action += "&PageNo=" + nPageNo;		
		//alert("obj.action: " + obj.action); 
		objBtn.click();
	}	
	else
	{
		//alert("m_Changed = 0");
		if(nPageNo > 0)
		{
			if(strHref.indexOf("?")>=0) strHref += "&PageNum_Results=";
			else strHref += "?PageNum_Results=";
			strHref += nPageNo;
		}
		window.location.href = strHref;
	}
}

var m_Save = false;
function setSaveStatus()
{
	m_Save = true;
}

function changeRadioRefContent(obj, varRefName)
{
	var objRef = window.document.getElementById(varRefName);
	if(obj.value == 0) objRef.innerText = "Local";
	else if(obj.value == 1) objRef.innerText = "Online";
	else if(obj.value == 2) objRef.innerText = "Shared";
	else objRef.innerText = "None";
}
	
function setItemPage(obj, frmSearch, hidItemSearch)
{
	//alert(obj);
	//alert(frmSearch);
	//alert(hidItemSearch);
	var objHidSearch = eval("window.document.forms." + frmSearch + "." + hidItemSearch);
	objHidSearch.value = obj.value;
	//alert(objHidSearch);
}
function isImageURL(URL)
{
	var retVal = false;
	var nPlace = URL.lastIndexOf(".");
	
	var strImageExts=",gif,png,jpg,bmp,jpeg,";
	if ((nPlace > -1) && (nPlace < URL.length - 1))
	{
		var strExtension = URL.substring(nPlace + 1, URL.length);
		if (strImageExts.indexOf("," + strExtension + ",") > -1) retVal = true;
	}
	return retVal;
}
var m_Image = new Image();
var m_URL = "";
var m_defaultURL = "";
function setImageSource(imgControlID,URL,defaultURL) {
	var imgControl = document.getElementById(imgControlID);
	if (isImageURL(URL))
	{
	    var objImg=new Image();
	    m_Image = imgControl;
	    m_URL = URL;
		m_defaultURL = defaultURL;
	    objImg.onload=setImageURL;
	    objImg.onerror=setImageDefault;
	    objImg.src=URL;
	}
	else
	{
		imgControl.src = defaultURL;
		imgControl.width=1;
	    imgControl.height=1;
	}
}

function setImageURL() {
    m_Image.src=m_URL;
}

function setImageDefault() {
    m_Image.src=m_defaultURL;
    m_Image.width=1;
    m_Image.height=1;
}

function setImageURL2(imgControlID,URL) {
	var imgControl = document.getElementById(imgControlID);	
    imgControl.src=URL;
}
function setImageURLAdmin(imgControlID,URL) {
	var imgControl = window.document.getElementById(imgControlID);	
    imgControl.src=URL;
    //imgControl.width = 1;
    imgControl.height = 1;
}
function setImageMissing(imgControlID,URL,LinkID) {
	var imgControl = document.getElementById(imgControlID);	
    imgControl.src=URL;
    var lnkControl = document.getElementById(LinkID);
//    lnkControl.disabled = false;
    if(lnkControl.hasChildNodes())
        for(var i=0;i<lnkControl.childNodes.length;i++)
            lnkControl.parentNode.insertBefore(lnkControl.childNodes[i].cloneNode(true),lnkControl);
    lnkControl.parentNode.removeChild(lnkControl);
}

function setUpdatedItemValue(varControlID, varControlValue)
{
	window.document.getElementById(varControlID).value = varControlValue;
}
function doOnlyCheck(strName,strValue)
{
   var obj = eval("window.document.all('" + strName + "')");
   if(obj)
  {    
      for(i=0;i<obj.length;i++) if(obj[i].value != strValue) obj[i].checked = false;
  }
}
function CustomFieldValidation(MyForm,MyControlCount, MyControlType)
{
		
	var CheckObj = eval("window.document.forms."+ MyForm + "."+ MyControlCount);
	if(CheckObj)
	{
		countBoxes = CheckObj.length;		
		var objCheckValidation;
		var isCheck = true;
		isCheckselected = true;
		var objSelectvalue;
		if(!countBoxes)
		{
			countBoxes = 1;
		}
		
		for(i=1; i <= countBoxes; i++)
		{	
			objSelectvalue = eval("window.document.forms."+ MyForm + "."+ MyControlType +i+".value");
			
			switch(objSelectvalue){
			case '0' : //Text
			
				objCheckValidationRequired = eval("window.document.forms."+ MyForm + ".chkValidationRequired"+ i);				
				objCheckValidation = eval("window.document.forms."+ MyForm + ".controlValidationDefault"+ i);
				
				if(objCheckValidationRequired && objCheckValidationRequired.checked){
					if(objCheckValidation)
					if (! Trim(objCheckValidation.value))
					{	
						alert("Default value must be specified.");
						objCheckValidation.focus();						
						isCheck = false;
						break;										
					}
					else{
						objCheckValidation = eval("window.document.forms."+ MyForm + ".txtValidationStartRange"+ i);				
						if(objCheckValidation)
						if (Trim(objCheckValidation.value))
						{															
							if (! IsInteger(objCheckValidation.value) || objCheckValidation.value == "0")
							{
								alert("Values must be valid integer values.");
								objCheckValidation.focus();						
								isCheck = false;								
								break;
							}
							objCheckValidationEnd = eval("window.document.forms."+ MyForm + ".radValidationEndRange"+ i);
							objCheckValidation = eval("window.document.forms."+ MyForm + ".txtValidationEndRangeTo"+ i);
							
							objCheckValidationDefault = eval("window.document.forms."+ MyForm + ".controlValidationDefault"+ i);
							objCheckValidationStart = eval("window.document.forms."+ MyForm + ".txtValidationStartRange"+ i);	
							strvaluedef = objCheckValidationDefault.value.length.toString();
							strvaluesta = objCheckValidationStart.value;
							if(objCheckValidationEnd.length){
								for(j=0;j<objCheckValidationEnd.length; j++){	
									if(objCheckValidationEnd[j].checked){							
										isCheckselected = false;
									}
									if(objCheckValidationEnd[j] && objCheckValidationEnd[j].checked && objCheckValidationEnd[j].value == "2")
									{											
										if(objCheckValidation){
										if (Trim(objCheckValidation.value))
										{															
											if (! IsInteger(objCheckValidation.value) || objCheckValidation.value == "0")
											{
												alert("Values must be valid integer values.");
												objCheckValidation.focus();						
												isCheck = false;
												break;
											}					
										}
										else
										{
											alert("Values must be valid integer values.");
											objCheckValidation.focus();						
												isCheck = false;
												break;
										}
										
										if(compareNumber(objCheckValidation.value,strvaluesta) == 2){
											alert("Value of the 'starting' field must be less than the value of the 'Ending' field.");							
											objCheckValidationDefault.focus();						
												isCheck = false;
												break;
										}
										if(compareNumber(strvaluesta,strvaluedef) == 0 || compareNumber(objCheckValidation.value,strvaluedef) == 2){
											alert(" The length of the 'Default' field must be from " + strvaluesta+ " to "+objCheckValidation.value+" characters.");							
											objCheckValidationDefault.focus();						
												isCheck = false;
												break;
										}										
										}
										break;																		
									}
									else if(objCheckValidationEnd[j] && objCheckValidationEnd[j].checked && objCheckValidationEnd[j].value == "1"){
										if(compareNumber(strvaluesta,strvaluedef) == 0){
												alert("The length of the 'Default' field must be greater than or equal "+ strvaluesta+" characters.");							
												objCheckValidationDefault.focus();						
													isCheck = false;
													break;
											}						
										}
									else if(objCheckValidationEnd[j] && objCheckValidationEnd[j].checked && objCheckValidationEnd[j].value == "0"){
										if(compareNumber(strvaluesta,strvaluedef) == 2){
											alert("The length of the 'Default' field must be less than or equal "+ strvaluesta+" characters.");							
											objCheckValidationDefault.focus();						
												isCheck = false;
												break;
										}
									}										
								}
								if(isCheckselected){			
									alert("Ending value must be specified.");
									objCheckValidation.focus();						
									isCheck = false;
									break;
								}
							}					
							break;	
						}
					}				
				}			
				break;
			case '1' : //Integer
				objCheckValidationRequired = eval("window.document.forms."+ MyForm + ".chkValidationRequired"+ i);
				objCheckValidation = eval("window.document.forms."+ MyForm + ".controlValidationDefault"+ i);
				if(objCheckValidationRequired && objCheckValidationRequired.checked){
					if(objCheckValidation)
					if (Trim(objCheckValidation.value))
					{															
						if (! IsInteger(objCheckValidation.value))
						{
							alert("Values must be valid integer values.");
							objCheckValidation.focus();						
							isCheck = false;
							break;
						}					
					}
					else
					{
						alert("Values must be valid integer values.");
						objCheckValidation.focus();						
							isCheck = false;
							break;
					}
					
					objCheckValidation = eval("window.document.forms."+ MyForm + ".txtValidationStartRange"+ i);				
					if(objCheckValidation)
					if (Trim(objCheckValidation.value))
					{															
						if (! IsInteger(objCheckValidation.value))
						{
							alert("Values must be valid integer values.");
							objCheckValidation.focus();						
							isCheck = false;
							break;
						}					
					}
					else
					{
						alert("Values must be valid integer values.");
						objCheckValidation.focus();						
							isCheck = false;
							break;
					}
					objCheckValidationEnd = eval("window.document.forms."+ MyForm + ".radValidationEndRange"+ i);
					objCheckValidation = eval("window.document.forms."+ MyForm + ".txtValidationEndRangeTo"+ i);
					
					objCheckValidationDefault = eval("window.document.forms."+ MyForm + ".controlValidationDefault"+ i);
					objCheckValidationStart = eval("window.document.forms."+ MyForm + ".txtValidationStartRange"+ i);	
					strvaluedef = objCheckValidationDefault.value;
					strvaluesta = objCheckValidationStart.value;
					
					if(objCheckValidationEnd.length){
						for(j=0;j<objCheckValidationEnd.length; j++){
							if(objCheckValidationEnd[j] && objCheckValidationEnd[j].checked && objCheckValidationEnd[j].value == "2")
							{
								if(objCheckValidation){
								if (Trim(objCheckValidation.value))
								{															
									if (! IsInteger(objCheckValidation.value))
									{
										alert("Values must be valid integer values.");
										objCheckValidation.focus();						
										isCheck = false;
										break;
									}					
								}
								else
								{
									alert("Values must be valid integer values.");
									objCheckValidation.focus();						
										isCheck = false;
										break;
								}							
								if(compareNumber(strvaluesta,strvaluedef) == 0){
									alert("Default value must be greater than or equal Starting value.");							
									objCheckValidationDefault.focus();						
										isCheck = false;
										break;
								}
								if(compareNumber(objCheckValidation.value,strvaluesta) == 2){
									alert("Starting value must be less than Ending value.");							
									objCheckValidationStart.focus();						
										isCheck = false;
										break;
								}
								if(compareNumber(objCheckValidation.value,strvaluedef) == 2){
									alert("Default value must be less than or equal Ending value.");							
									objCheckValidationDefault.focus();						
										isCheck = false;
										break;
								}
								}
								break;
							}
							else if(objCheckValidationEnd[j] && objCheckValidationEnd[j].checked && objCheckValidationEnd[j].value == "1"){
								if(compareNumber(strvaluesta,strvaluedef) == 0){
									alert("Default value must be from 'Starting' value to 'Ending' value.");							
									objCheckValidationDefault.focus();						
										isCheck = false;
										break;
								}						
							}
							else if(objCheckValidationEnd[j] && objCheckValidationEnd[j].checked && objCheckValidationEnd[j].value == "0"){
								if(compareNumber(strvaluesta,strvaluedef) == 2){
									alert("Default value must be less than or equal starting value.");							
									objCheckValidationDefault.focus();						
										isCheck = false;
										break;
								}
							}
						}
					}
				}
				else{
				
					objCheckValidationEnd = eval("window.document.forms."+ MyForm + ".radValidationEndRange"+ i);
					objCheckValidation = eval("window.document.forms."+ MyForm + ".txtValidationEndRangeTo"+ i);

					objCheckValidationStart = eval("window.document.forms."+ MyForm + ".txtValidationStartRange"+ i);	
					strvaluesta = objCheckValidationStart.value;
					if(objCheckValidationEnd.length){
						for(j=0;j<objCheckValidationEnd.length; j++){
							if(objCheckValidationEnd[j] && objCheckValidationEnd[j].checked && objCheckValidationEnd[j].value == "2")
							{
								if(objCheckValidation){
									if (Trim(objCheckValidation.value))
									{															
										if (! IsInteger(objCheckValidation.value))
										{
											alert("Values must be valid integer values.");
											objCheckValidation.focus();						
											isCheck = false;
											break;
										}					
									}
									else
									{
										alert("Values must be valid integer values.");
										objCheckValidation.focus();						
											isCheck = false;
											break;
									}
								}
																
								if(objCheckValidationStart){
									if (Trim(objCheckValidationStart.value))
									{															
										if (! IsInteger(objCheckValidationStart.value) || objCheckValidationStart.value == "0")
										{
											alert("Values must be valid integer values.");
											objCheckValidationStart.focus();						
											isCheck = false;
											break;
										}					
									}
									else
									{
										alert("Starting Value field must be specified.");
										objCheckValidationStart.focus();						
											isCheck = false;
											break;
									}
									if(compareNumber(objCheckValidation.value,strvaluesta) == 2){
										alert("Starting value must be less than Ending value.");							
										objCheckValidationStart.focus();						
											isCheck = false;
											break;
									}
								}
								break;
							}							
						}
					}
				}				
				break;
			case '2' : //Currency
				objCheckValidationRequired = eval("window.document.forms."+ MyForm + ".chkValidationRequired"+ i);
				objCheckValidation = eval("window.document.forms."+ MyForm + ".controlValidationDefault"+ i);
				if(objCheckValidationRequired && objCheckValidationRequired.checked){
					if(objCheckValidation)
					if (Trim(objCheckValidation.value))
					{															
						if (! validateDollar(objCheckValidation))
						{
							alert("Values must be valid currency values.");
							//objCheckValidation.value = formatCurrency(1);
							objCheckValidation.focus();						
							isCheck = false;
							break;
						}					
					}
					else
					{
						alert("Values must be valid currency values.");
						//objCheckValidation.value = formatCurrency(1);
						objCheckValidation.focus();						
							isCheck = false;
							break;
					}
					
					objCheckValidation = eval("window.document.forms."+ MyForm + ".txtValidationStartRange"+ i);				
					if(objCheckValidation)
					if (Trim(objCheckValidation.value))
					{															
						if (! validateDollar(objCheckValidation))
						{
							alert("Values must be valid currency values.");
							//objCheckValidation.value = formatCurrency(1);
							objCheckValidation.focus();						
							isCheck = false;
							break;
						}					
					}
					else
					{
						alert("Values must be valid currency values.");
//						objCheckValidation.value = formatCurrency(1);
						objCheckValidation.focus();						
							isCheck = false;
							break;
					}
					objCheckValidationEnd = eval("window.document.forms."+ MyForm + ".radValidationEndRange"+ i);
					objCheckValidation = eval("window.document.forms."+ MyForm + ".txtValidationEndRangeTo"+ i);
					
					objCheckValidationDefault = eval("window.document.forms."+ MyForm + ".controlValidationDefault"+ i);
					objCheckValidationStart = eval("window.document.forms."+ MyForm + ".txtValidationStartRange"+ i);	
					strvaluedef = objCheckValidationDefault.value;
					strvaluesta = objCheckValidationStart.value;
					if (strvaluedef.indexOf("$")!=-1)
					strvaluedef = strvaluedef.replace("$","");
					if (strvaluesta.indexOf("$")!=-1)
					strvaluesta = strvaluesta.replace("$","");
				
					if(objCheckValidationEnd.length){
						for(j=0;j<objCheckValidationEnd.length; j++){						
							
							if(objCheckValidationEnd[j] && objCheckValidationEnd[j].checked && objCheckValidationEnd[j].value == "2")
							{
								if(objCheckValidation){
								if (Trim(objCheckValidation.value))
								{															
									if (! validateDollar(objCheckValidation))
									{
										alert("Values must be valid currency values.");
//										objCheckValidation.value = formatCurrency(1);
										objCheckValidation.focus();						
										isCheck = false;
										break;
									}					
								}
								else
								{
									alert("Values must be valid currency values.");
//									objCheckValidation.value = formatCurrency(1);
									objCheckValidation.focus();						
										isCheck = false;
										break;
								}
								if (objCheckValidation.value.indexOf("$")!=-1)
									objCheckValidation.value = objCheckValidation.value.replace("$","");
								if(compareNumber(strvaluesta,strvaluedef) == 0){
									alert("Default values must be greater than or equal Starting value.");							
									objCheckValidationDefault.focus();						
										isCheck = false;
										break;
								}
								if(compareNumber(objCheckValidation.value,strvaluesta) == 2){
									alert("Starting values must be less than Ending value.");							
									objCheckValidationStart.focus();						
										isCheck = false;
										break;
								}
								if(compareNumber(objCheckValidation.value,strvaluedef) == 2){
									alert("Default values must be less than or equal Ending value.");							
									objCheckValidationDefault.focus();						
										isCheck = false;
										break;
								}
								}
								break;
							}
							else if(objCheckValidationEnd[j] && objCheckValidationEnd[j].checked && objCheckValidationEnd[j].value == "1"){
								if(compareNumber(strvaluesta,strvaluedef) == 0){
									alert("Default values must be greater than or equal Starting value.");							
									objCheckValidationDefault.focus();						
										isCheck = false;
										break;
								}						
							}
							else if(objCheckValidationEnd[j] && objCheckValidationEnd[j].checked && objCheckValidationEnd[j].value == "0"){
								if(compareNumber(strvaluesta,strvaluedef) == 2){
									alert("Default values must be less than or equal Starting value.");							
									objCheckValidationDefault.focus();						
										isCheck = false;
										break;
								}
							}
						}
					}
				}
				else{
					objCheckValidationEnd = eval("window.document.forms."+ MyForm + ".radValidationEndRange"+ i);
					objCheckValidation = eval("window.document.forms."+ MyForm + ".txtValidationEndRangeTo"+ i);

					objCheckValidationStart = eval("window.document.forms."+ MyForm + ".txtValidationStartRange"+ i);	
					strvaluesta = objCheckValidationStart.value;
					if(objCheckValidationEnd.length){
						for(j=0;j<objCheckValidationEnd.length; j++){
							if(objCheckValidationEnd[j] && objCheckValidationEnd[j].checked && objCheckValidationEnd[j].value == "2")
							{
								if(objCheckValidation){
									if (Trim(objCheckValidation.value))
									{		
										if (! validateDollar(objCheckValidation) || objCheckValidation.value == "0" || objCheckValidation.value =="$0.00")																							
										{
											alert("Values must be valid currency values.");
											objCheckValidation.focus();						
											isCheck = false;
											break;
										}					
									}
									else
									{
										alert("Values must be valid currency values.");
										//objCheckValidation.value = formatCurrency(1);
										objCheckValidation.focus();						
											isCheck = false;
											break;
									}	
								}
															
								if(objCheckValidationStart){
									if (Trim(objCheckValidationStart.value))
									{															
										if (! validateDollar(objCheckValidationStart) || objCheckValidationStart.value == "0" || objCheckValidationStart.value =="$0.00")
										{
											alert("Values must be valid currency values.");
											objCheckValidationStart.focus();						
											isCheck = false;
											break;
										}					
									}
									else
									{
										alert("Starting Value field must be specified.");
										objCheckValidationStart.focus();						
											isCheck = false;
											break;
									}
									if(compareNumber(objCheckValidation.value,strvaluesta) == 2){
										alert("Starting value must be less than Ending value.");							
										objCheckValidationStart.focus();						
											isCheck = false;
											break;
									}
								}
								break;
							}							
						}
					}
				}
				break;
			case '3' ://Drop donw
				objCheckValidationRequired = eval("window.document.forms."+ MyForm + ".chkValidationRequired"+ i);				
				objCheckValidation = eval("window.document.forms."+ MyForm + ".controlValidationDefault"+ i);
				
				if(objCheckValidationRequired && objCheckValidationRequired.checked){
					if(objCheckValidation)
					if (! Trim(objCheckValidation.value) || objCheckValidation.value == "-1")
					{	
						alert("Default value must be specified.");
						objCheckValidation.focus();						
						isCheck = false;
						break;										
					}
				}
				break;
			case '4' ://Radio
				objCheckValidationRequired = eval("window.document.forms."+ MyForm + ".chkValidationRequired"+ i);				
				objCheckValidation = eval("window.document.forms."+ MyForm + ".controlValidationDefault"+ i);
				
				if(objCheckValidationRequired && objCheckValidationRequired.checked){
					if(objCheckValidation)
					if (! Trim(objCheckValidation.value) || objCheckValidation.value == "-1")
					{	
						alert("Default value must be specified.");
						objCheckValidation.focus();						
						isCheck = false;
						break;										
					}
				}
				break;
			case '5' ://Check box
				
				break;
			case '6' :  //Images
				
				objCheckValidationRequired = eval("window.document.forms."+ MyForm + ".chkValidationRequired"+ i);				
				objCheckValidation = eval("window.document.forms."+ MyForm + ".controlValidationDefault"+ i);
				
				if(objCheckValidationRequired && objCheckValidationRequired.checked){
					if(objCheckValidation)
					if (! Trim(objCheckValidation.value))
					{	
						alert("Default value must be specified.");
						objCheckValidation.focus();						
						isCheck = false;
						break;										
					}
				}
				break;
			case '7' : //Memo
				
				objCheckValidationRequired = eval("window.document.forms."+ MyForm + ".chkValidationRequired"+ i);				
				objCheckValidation = eval("window.document.forms."+ MyForm + ".controlValidationDefault"+ i);
				
				if(objCheckValidationRequired && objCheckValidationRequired.checked){
					if(objCheckValidation)
					if (! Trim(objCheckValidation.value))
					{	
						alert("Default value must be specified.");
						objCheckValidation.focus();						
						isCheck = false;
						break;										
					}
					else{
						objCheckValidation = eval("window.document.forms."+ MyForm + ".txtValidationStartRange"+ i);				
						if(objCheckValidation)
						if (Trim(objCheckValidation.value))
						{															
							if (! IsInteger(objCheckValidation.value) || objCheckValidation.value == "0")
							{
								alert("Values must be valid integer values.");
								objCheckValidation.focus();						
								isCheck = false;								
								break;
							}
							objCheckValidationEnd = eval("window.document.forms."+ MyForm + ".radValidationEndRange"+ i);
							objCheckValidation = eval("window.document.forms."+ MyForm + ".txtValidationEndRangeTo"+ i);
							
							objCheckValidationDefault = eval("window.document.forms."+ MyForm + ".controlValidationDefault"+ i);
							objCheckValidationStart = eval("window.document.forms."+ MyForm + ".txtValidationStartRange"+ i);	
							
							objCheckValidationStartType = eval("window.document.forms."+ MyForm + ".controlValidationStartRangeType"+ i);
						
							if(objCheckValidationStartType.value == 0){								
								strvaluedef = objCheckValidationDefault.value;
								
								strvaluedef = replaceAll(strvaluedef,"  "," ");
								strvaluedef= strvaluedef.split(" ");
								strvaluedef = strvaluedef.length.toString();	
								strCharOrWords = " words.";							
							}
							else{
								strvaluedef = objCheckValidationDefault.value.length.toString();
								strCharOrWords = " characters.";
							}
							strvaluesta = objCheckValidationStart.value;						
							
							if(objCheckValidationEnd.length){
								for(j=0;j<objCheckValidationEnd.length; j++){	
									if(objCheckValidationEnd[j].checked){							
										isCheckselected = false;
									}
									if(objCheckValidationEnd[j] && objCheckValidationEnd[j].checked && objCheckValidationEnd[j].value == "2")
									{											
										if(objCheckValidation){
										if (Trim(objCheckValidation.value))
										{															
											if (! IsInteger(objCheckValidation.value) || objCheckValidation.value == "0")
											{
												alert("Values must be valid integer values.");
												objCheckValidation.focus();						
												isCheck = false;
												break;
											}					
										}
										else
										{
											alert("Values must be valid integer values.");
											objCheckValidation.focus();						
												isCheck = false;
												break;
										}
										
										if(compareNumber(objCheckValidation.value,strvaluesta) == 2){
											alert("Value of the 'starting' field must be less than the value of the 'Ending' field.");							
											objCheckValidationDefault.focus();						
												isCheck = false;
												break;
										}
										if(compareNumber(strvaluesta,strvaluedef) == 0 || compareNumber(objCheckValidation.value,strvaluedef) == 2){
											alert(" The length of the 'Default' field must be from " + strvaluesta+ " to "+objCheckValidation.value+strCharOrWords);							
											objCheckValidationDefault.focus();						
												isCheck = false;
												break;
										}										
										}
										break;																		
									}
									else if(objCheckValidationEnd[j] && objCheckValidationEnd[j].checked && objCheckValidationEnd[j].value == "1"){
										if(compareNumber(strvaluesta,strvaluedef) == 0){
												alert("The length of the 'Default' field must be greater than or equal "+ strvaluesta+strCharOrWords);							
												objCheckValidationDefault.focus();						
													isCheck = false;
													break;
											}						
										}
									else if(objCheckValidationEnd[j] && objCheckValidationEnd[j].checked && objCheckValidationEnd[j].value == "0"){
										if(compareNumber(strvaluesta,strvaluedef) == 2){
											alert("The length of the 'Default' field must be less than or equal "+ strvaluesta+strCharOrWords);							
											objCheckValidationDefault.focus();						
												isCheck = false;
												break;
										}
									}										
								}
								if(isCheckselected){			
									alert("Ending value must be specified.");
									objCheckValidation.focus();						
									isCheck = false;
									break;
								}
							}					
							break;	
						}
					}				
				}			
				break;
			default :
				
				break;
			}
			if(! isCheck){
			break;
			}
		}
	}
		return isCheck;		 
}
	var isCheckvalid = "";
	function ValidationToChangeCustomField(MyRequired,MyType,MyCheckObject,MyStart,MyStartType,MyEnd,MyEndType,MyDefault)
	{
	
	if(MyRequired.toString() == "1" || Trim(MyCheckObject.value))
	if(isCheckvalid == "" || isCheckvalid == MyCheckObject.name){
		isCheckvalid = MyCheckObject.name;
		switch(MyType.toString()){		
			case '0' : //Text
				
				if (!Trim(MyCheckObject.value))
					{				
						alert("You must enter text.");															
						MyCheckObject.focus();
						return false;
					}
					else
					{	
						if(MyStart.toString() != '0' && MyStart.toString() != ''){							
							var objvalue = MyCheckObject.value.length.toString();							
												
							strCharOrWords = " characters.";
								
							if(MyEndType == 0)
							{
								if (compareNumber(MyStart,objvalue) == 2)
								{
									alert("You cannot enter more than "+MyStart+ strCharOrWords);
									//MyCheckObject.value = MyDefault;
									MyCheckObject.focus();							
									return false;
								}
							}
							else if	(MyEndType == 1)
							{					
								if (compareNumber(MyStart,objvalue) == 0)
								{
									alert("You must enter at least "+MyStart+ strCharOrWords);	
									//MyCheckObject.value = MyDefault;
									MyCheckObject.focus();						
									return false;
								}
							}
							else
							{
								if (compareNumber(MyStart,objvalue) == 0 || compareNumber(MyEnd,objvalue) == 2)
								{
									alert("You must enter between "+MyStart+" and "+MyEnd+ strCharOrWords);	
									//MyCheckObject.value = MyDefault;	
									MyCheckObject.focus();					
									return false;
								}
							}
						}
					}
				break;				
			case '1' : //Integer
				
				if (! IsInteger(MyCheckObject.value))
					{				
						alert("Values must be valid integer values.");	
						//MyCheckObject.value = MyDefault;													
						MyCheckObject.focus();
						return false;
					}
					else
					{	
						if(MyStart.toString() != '0' && MyStart.toString() != ''){								
							var objvalue = MyCheckObject.value;					
			
							if(MyEndType == 0)
							{
								if (compareNumber(MyStart,objvalue) == 2)
								{
									alert("The value must be no greater than "+MyStart+".");
									//MyCheckObject.value = MyDefault;
									MyCheckObject.focus();
									return false;
								}
							}
							else if	(MyEndType == 1)
							{					
								if (compareNumber(MyStart,objvalue) == 0)
								{
									alert("The value must be at least "+MyStart+".");	
									//MyCheckObject.value = MyDefault;
									MyCheckObject.focus();						
									return false;
								}
							}
							else
							{
								if (compareNumber(MyStart,objvalue) == 0 || compareNumber(MyEnd,objvalue) == 2)
								{
									alert("The value must be between "+MyStart+" and "+MyEnd+".");	
									//MyCheckObject.value = MyDefault;
									MyCheckObject.focus();						
									return false;
								}
							}
						}
					}
				break;		
			case '2' : //Currency			
					
				if (! validateDollar(MyCheckObject))
				{				
					alert("You must specify a dollar amount.");
					//MyCheckObject.value = formatCurrency(MyDefault);										
					MyCheckObject.focus();
					return false;
				}
				else
				{	
					if(MyStart.toString() != '0' && MyStart.toString() != ''){								
						var objvalue = MyCheckObject.value;
						if (objvalue.indexOf("$")!=-1)
						objvalue = objvalue.replace("$","");		
		
						if(MyEndType == 0)
						{
							if (compareNumber(MyStart,objvalue) == 2)
							{
								alert("The value must be no greater than $"+MyStart+".");
								//MyCheckObject.value = formatCurrency(MyCheckObject.value);
								MyCheckObject.focus();
								return false;
							}
						}
						else if	(MyEndType == 1)
						{					
							if (compareNumber(MyStart,objvalue) == 0)
							{
								alert("The value must be at least $"+MyStart+".");
								
								//MyCheckObject.value = formatCurrency(MyCheckObject.value);
								MyCheckObject.focus();
								return false;
							}
						}
						else
						{
							if (compareNumber(MyStart,objvalue) == 0 || compareNumber(MyEnd,objvalue) == 2)
							{
								alert("The value must be between $"+MyStart+" and $"+MyEnd+".");
								//MyCheckObject.value = formatCurrency(MyCheckObject.value);
								MyCheckObject.focus();
								return false;
							}
						}
					}
					MyCheckObject.value = formatCurrency(MyCheckObject.value);
				}
			break;		
			case '3' ://Drop donw
				
				if (MyCheckObject.value == -1)
				{				
					alert("You must select a value.");														
					MyCheckObject.focus();
					return false;
				}
			break;		
			case '4' ://Radio
				
				if (MyCheckObject.value == -1)
				{				
					alert("You must select an option.");														
					MyCheckObject.focus();
					return false;
				}
			break;		
			case '5' ://Check box
			break;		
			case '6' :  //Images
				
				if (MyCheckObject.value == "")
				{				
					alert("You must select an image.");														
					MyCheckObject.focus();
					return false;
				}
			break;		
			case '7' : //Memo	
					
				if (!Trim(MyCheckObject.value))
					{				
						alert("You must enter text.");															
						MyCheckObject.focus();
						return false;
					}
					else
					{								
						if(MyStart.toString() != '0' && MyStart.toString() != ''){							
							if(MyStartType == 0){
								strCharOrWords = " words.";
								var objvalue = MyCheckObject.value;
								objvalue = MyCheckObject.value;
								objvalue = replaceAll(objvalue,"  "," ");
								objvalue= objvalue.split(" ");
								objvalue = objvalue.length.toString();	
							}
							else{
								var objvalue = MyCheckObject.value.length.toString();	
								strCharOrWords = " characters.";						
							}
								
							if(MyEndType == 0)
							{
								if (compareNumber(MyStart,objvalue) == 2)
								{
									alert("You cannot enter more than "+MyStart+ strCharOrWords);	
									//MyCheckObject.value = MyDefault;
									MyCheckObject.focus();						
									return false;
								}
							}
							else if	(MyEndType == 1)
							{					
								if (compareNumber(MyStart,objvalue) == 0)
								{
									alert("You must enter at least "+MyStart+ strCharOrWords);	
									//MyCheckObject.value = MyDefault;
									MyCheckObject.focus();						
									return false;
								}
							}
							else
							{
								if (compareNumber(MyStart,objvalue) == 0 || compareNumber(MyEnd,objvalue) == 2)
								{
									alert("You must enter between "+MyStart+" and "+MyEnd+ strCharOrWords);		
									//MyCheckObject.value = MyDefault;
									MyCheckObject.focus();					
									return false;
								}
							}
						}
					}
				break;
			default :			
			break;
		}
	isCheckvalid = "";	
	}
	return true;
	}
	function compareNumber(num1, num2) {
	    
	    num1 = replaceAll(num1,"$","");	
	    num2 = replaceAll(num2,"$","");
	    num1 = replaceAll(num1,",","");	
	    num2 = replaceAll(num2,",","");
	    num1 = Number(num1);	
	    num2 = Number(num2);

	    num1 = parseFloat(num1, 10);
	    num2 = parseFloat(num2, 10);   	   
	    if (num2 < num1) {
	        return 0;
	    } else if (num2 == num1){
	        return 1;
	    } 
	        
	    return 2;
	}
	function replaceAll(strvalue,regex,replacement){
	  var va=strvalue;
	  var temp=va.replace(regex,replacement);
	  while(temp!=va){
	   va=temp;
	   temp=va.replace(regex,replacement);
	  }
	  return va;
	 }
	 
	function getElementAbsPosX(el)
	{
	    var dx = 0;
	    if (el.offsetParent) {
	        dx = el.offsetLeft + 8;
	        while (el = el.offsetParent) {
	            dx += el.offsetLeft;
	        }
	    }
	    return dx;
	}
	
	function getElementAbsPosY(el)
	{
	    var dy = 0;
	    if (el.offsetParent) {
	        dy = el.offsetTop + el.offsetHeight / 2;
	        while (el = el.offsetParent) {
	            dy += el.offsetTop;
	        }
	    }
	    return dy;
	}
//Show picture width token: cust_cust,line_custom, ord_custom

function NewupdateImagePreviewCustomField(imgType,imageSRC,imageObjectName) {
		//var obj = eval("document."+formname+"."+imageObjectName);	
		//var obj=window.document.getElementById(imageObjectName);
		if(imageSRC.length > 255){
		    alert("The path file too long!");
		    return false;
		    }
		var obj=window.document.images[imageObjectName];
		obj.src="assets/images/blank_white.bmp";	
		imagenew = new Image();
		imagenew.src =  imageSRC;
		if (imagenew.height < 64 ){			
				obj.style.height = imagenew.height;	
				}		
		else{
			obj.style.height = 64;
		}
		obj.src = imageSRC;
		//obj.alt = 'Image path: '+imageSRC;	
		obj.style.display = 'inline';
	}

var f_path="";
function NewupdateFilePreviewCustomField(imgType,imageSRC,imageObjectName) {
		f_path=imageSRC;
		var obj=document.getElementById(imageObjectName);
		strcut = imageSRC.lastIndexOf('/');	
		var file_name="";
		if(strcut != -1)
		file_name = imageSRC.substr(strcut+1,imageSRC.length);
		//obj.innerHTML = imageSRC;
		document.getElementById(imageObjectName).innerHTML=file_name;
	        //document.getElementById(imageObjectName).href='##';
		//document.getElementById(imageObjectName).onclick=window.open(imageSRC);
	        //document.getElementById(imageObjectName).target="_blank" ;		
		
	}
function doOpenFile(default_path) {
		if(f_path !="")
		    window.open(f_path,null, "width=700,height=500,scrollbars=yes,resizable=yes");
		else
		    window.open(default_path,null, "width=700,height=500,scrollbars=yes,resizable=yes");
		//obj.style.display = 'inline';
	}

function NewVisibleCustomField(obj,type,textObjectName,divNameLocal,divNameOnline,divNameImport,isnotShare,hidThumbLocal,hidThumbOnline,hidThumbImport,imageObjectName) {
		if (obj.value == 0){	
			
				var objdivLocal = document.getElementById(divNameLocal);
				var objdivOnline = document.getElementById(divNameOnline);
				if (isnotShare == true){
					var objdivImport = document.getElementById(divNameImport);	
					objdivImport.style.display = "none";
				}
				objdivLocal.style.display = "inline";
				objdivOnline.style.display= "none";
				//var objvalue = eval("document."+ formname+"."+textObjectName) ;					
				//objvalue.value = eval("document."+ formname+"."+hidThumbLocal+".value");		
				//updateImagePreviewCustomField('1',objvalue.value,formname,imageObjectName);
				var objvalue= window.document.getElementById(textObjectName);
				objvalue1 = window.document.getElementById(hidThumbLocal);					
			        objvalue.value=objvalue1.value;
				if(type=="file")
					NewupdateFilePreviewCustomField('1',objvalue.value,imageObjectName);
				else			
					NewupdateImagePreviewCustomField('1',objvalue.value,imageObjectName);	


		}		
		else if (obj.value == 2){	
			//alert("3 =");
				var objdivLocal = document.getElementById(divNameLocal);
				var objdivOnline = document.getElementById(divNameOnline);
				if (isnotShare == true){
					var objdivImport = document.getElementById(divNameImport);	
					objdivImport.style.display = "inline";
				}
				objdivLocal.style.display = "none";
				objdivOnline.style.display= "none";
				//var objvalue = eval("document."+ formname+"."+textObjectName) ;
				//objvalue.value = eval("document."+ formname+"."+hidThumbImport+".value");
				//updateImagePreviewCustomField('1',objvalue.value,formname,imageObjectName);
				var objvalue= window.document.getElementById(textObjectName);
				objvalue1 = window.document.getElementById(hidThumbImport);					
			        objvalue.value=objvalue1.value;
				if(type=="file")
					NewupdateFilePreviewCustomField('1',objvalue.value,imageObjectName);
				else
				NewupdateImagePreviewCustomField('1',objvalue.value,imageObjectName);	
		}			
		else{
			//alert("4 =");
				var objdivLocal = document.getElementById(divNameLocal);
				var objdivOnline = document.getElementById(divNameOnline);
				if (isnotShare == true){
					var objdivImport = document.getElementById(divNameImport);	
					objdivImport.style.display = "none";
				}
	
				objdivLocal.style.display = "none";
				objdivOnline.style.display= "inline";
				//var objvalue =eval("document."+ formname+"."+textObjectName);				
				//objvalue.value = eval("document."+ formname+"."+hidThumbOnline+".value");
				//updateImagePreviewCustomField('1',objvalue.value,formname,imageObjectName);
				var objvalue= window.document.getElementById(textObjectName);
				objvalue1 = window.document.getElementById(hidThumbOnline);					
			        objvalue.value=objvalue1.value;
				if(type=="file")
					NewupdateFilePreviewCustomField('1',objvalue.value,imageObjectName);
				else
				NewupdateImagePreviewCustomField('1',objvalue.value,imageObjectName);	
	
		}		
	}
function NewshowUploadExtension(obj,imageObjectName) {
		//var objimage = eval("document."+formname+"."+imageObjectName);
		var objimage=window.document.getElementById(imageObjectName);	
		objimage.style.height = 64;
		window.open(obj.href, "imageUploadWindow", "width=700,height=500,scrollbars=yes,resizable=yes");
	}
	
	
function checkPhoneFormat(strPhoneNo)
	{
		strStandard = "0123456789abcdefghijklmnopqrstuvwxyz*#";
		nCount = 0;
		for (i=0;i<strPhoneNo.length;i++) 
      	{ 
	      	Char = strPhoneNo.charAt(i); 
	      	if (strStandard.indexOf(Char) >= 0) nCount += 1;
	    }
	    if(nCount < 10)	return false;
	    return true;
	}
var ccErrorNo = 0;
var ccErrors = new Array ()

ccErrors [0] = "Unknown card type";
ccErrors [1] = "No card number provided";
ccErrors [2] = "Credit card number is in invalid format";
ccErrors [3] = "Credit card number is invalid";
ccErrors [4] = "Credit card number has an inappropriate number of digits";

function checkCreditCard (cardnumber, cardname) {

  // Array to hold the permitted card characteristics
  var cards = new Array();

  // Define the cards we support. You may add addtional card types.
  
  //  Name:      As in the selection box of the form - must be same as user's
  //  Length:    List of possible valid lengths of the card number for the card
  //  prefixes:  List of possible prefixes for the card
  //  checkdigit Boolean to say whether there is a check digit
  
  cards [0] = {name: "Visa", 
               length: "13,16", 
               prefixes: "4",
               checkdigit: true};
  cards [1] = {name: "Master", 
               length: "16", 
               prefixes: "51,52,53,54,55",
               checkdigit: true};
  cards [2] = {name: "DinersClub", 
               length: "14,16", 
               prefixes: "300,301,302,303,304,305,36,38,55",
               checkdigit: true};
  cards [3] = {name: "CarteBlanche", 
               length: "14", 
               prefixes: "300,301,302,303,304,305,36,38",
               checkdigit: true};
  cards [4] = {name: "AmEx", 
               length: "15", 
               prefixes: "34,37",
               checkdigit: true};
  cards [5] = {name: "Discover", 
               length: "16", 
               prefixes: "6011,650",
               checkdigit: true};
  cards [6] = {name: "JCB", 
               length: "15,16", 
               prefixes: "3,1800,2131",
               checkdigit: true};
  cards [7] = {name: "enRoute", 
               length: "15", 
               prefixes: "2014,2149",
               checkdigit: true};
  cards [8] = {name: "Solo", 
               length: "16,18,19", 
               prefixes: "6334, 6767",
               checkdigit: true};
  cards [9] = {name: "Switch", 
               length: "16,18,19", 
               prefixes: "4903,4905,4911,4936,564182,633110,6333,6759",
               checkdigit: true};
  cards [10] = {name: "Maestro", 
               length: "16", 
               prefixes: "5020,6",
               checkdigit: true};
  cards [11] = {name: "VisaElectron", 
               length: "16", 
               prefixes: "417500,4917,4913",
               checkdigit: true};
             
  // Establish card type
  var cardType = -1;
  for (var i=0; i<cards.length; i++) {

    // See if it is this card (ignoring the case of the string)
    if (cardname.toLowerCase () == cards[i].name.toLowerCase()) {
      cardType = i;
      break;
    }
  }

  // If card type not found, report an error
  if (cardType == -1) {
     ccErrorNo = 0;
     return false; 
  }
  
  // Ensure that the user has provided a credit card number
  if (cardnumber.length == 0)  {
     ccErrorNo = 1;
     return false; 
  }

  // Now remove any spaces from the credit card number

  cardnumber = cardnumber.replace(/\s/g,"");



  // Check that the number is numeric
  var cardNo = cardnumber;

  var cardexp = /^[0-9]{13,19}$/;

  if (!cardexp.exec(cardNo))  {
     ccErrorNo = 2;
     return false; 
  }

  // Now check the modulus 10 check digit - if required
  if (cards[cardType].checkdigit) {
    var checksum = 0;                                  // running checksum total
    var mychar = "";                                   // next char to process
    var j = 1;                                         // takes value of 1 or 2

    // Process each digit one by one starting at the right
    var calc;
    for (i = cardNo.length - 1; i >= 0; i--) {
    
      // Extract the next digit and multiply by 1 or 2 on alternative digits.
      calc = Number(cardNo.charAt(i)) * j;
    
      // If the result is in two digits add 1 to the checksum total
      if (calc > 9) {
        checksum = checksum + 1;
        calc = calc - 10;
      }
    
      // Add the units element to the checksum total
      checksum = checksum + calc;
    
      // Switch the value of j
      if (j ==1) {j = 2} else {j = 1};
    } 
  
    // All done - if checksum is divisible by 10, it is a valid modulus 10.
    // If not, report an error.
    if (checksum % 10 != 0)  {
     ccErrorNo = 3;
     return false; 
    }
  }  

  // The following are the card-specific checks we undertake.
  var LengthValid = false;
  var PrefixValid = false; 
  var undefined; 

  // We use these for holding the valid lengths and prefixes of a card type
  var prefix = new Array ();
  var lengths = new Array ();
    
  // Load an array with the valid prefixes for this card
  prefix = cards[cardType].prefixes.split(",");
      
  // Now see if any of them match what we have in the card number
  for (i=0; i<prefix.length; i++) {
    var exp = new RegExp ("^" + prefix[i]);
    if (exp.test (cardNo)) PrefixValid = true;
  }
      
  // If it isn't a valid prefix there's no point at looking at the length
  if (!PrefixValid) {
     ccErrorNo = 3;
     return false; 
  }
    
  // See if the length is valid for this card
  lengths = cards[cardType].length.split(",");
  for (j=0; j<lengths.length; j++) {
    if (cardNo.length == lengths[j]) LengthValid = true;
  }
  
  // See if all is OK by seeing if the length was valid. We only check the 
  // length if all else was hunky dory.
  if (!LengthValid) {
     ccErrorNo = 4;
     return false; 
  };   

  // The credit card is in the required format.
  return true;
}	
function checkMaxlength(objThis,strMaxlength)
  {
	if(objThis.value.length > strMaxlength)
	{
		alert("You cannot enter more than "+strMaxlength + " characters.");
		objThis.focus();
	}
  }
 function doUseTextEditor(textareaform,textareaname) 
{
	//if (!newwinTextEditor || newwinTextEditor.closed)
	//{
		newwinTextEditor = window.open("UMSS.cfm?page=page-index.cfm&template_code=Admin.PopupHTMLEditor&textareaform="+textareaform +"&textareaname="+textareaname,"","width=800,height=600,resizable")
		newwinTextEditor.focus();	
	//}
	//else
	//{
	//	newwinTextEditor.focus();
	//}
} 
function dochangeqty(strvalue,intindex){
	obj = window.document.getElementById('qtyindex'+intindex);
	if (obj){ obj.value = strvalue;}
	if (typeof SKU_Qty_Changed == 'function'){
		SKU_Qty_Changed(obj,intindex);
	}
}

