//The XMLHttpRequest storage variables
var reqs; //SEND
var reqg; //GET
var reqc; //CHAN
var objOK;
//Keep some browsers from firing events multiple times
var divID;
var p1=0;
var p2=0;
var contType='application/x-www-form-urlencoded; charset=UTF-8';
var d = new Date();
var qs= d.getHours() + '' + d.getMinutes() + '' + d.getSeconds(); //initial var, incremented and added to QS - ensures uniqueness
var ajaxFunctionFromSaveButton='';
var ajaxFunctionFromCloseButton='';
var ajaxFunctionForNewTab='';

var AddressRequiredFieldsArray = new Array("ContactName","Address1","City","Country","State","StateName","Zip","Phone","Email");
var AddressAllFieldsArray = new Array("Name","ContactName","Address1","Address2","City","Country","State","StateName","Zip","Phone","PhoneExt","Fax","Email");
var CreditCardFieldsArray = new Array("CardOrCheckNumber","CSC","FromName","expmonth","expyear","Address1","City","Country","State","StateName","Zip");
var CreditCardLabelsArray = new Array("Account number","Verification code","Name on card","Expiration month","Expiration year","Address","City","Country","State","StateName","Zip");
var PAGE_REQUIRED_FIELDS = new Array
(
		"SelectedPaymentMethod",
		"CardOrCheckNumber",
		"CSC",
		"FromName",
		"expmonth",
		"expyear",
		"Address1",
		"City",
		"Country",
		"State",
		"StateName",
		"Zip",
		"BillingContactName",
		"BillingAddress1",
		"BillingCity",
		"BillingCountry",
		"BillingState",
		"BillingStateName",
		"BillingZip",
		"BillingPhone",
		"BillingEmail",
		"ShippingContactName",
		"ShippingAddress1",
		"ShippingCity",
		"ShippingCountry",
		"ShippingState",
		"ShippingStateName",
		"ShippingZip",
		"ShippingPhone",
		"ShippingEmail"
)		

var PAGE_REQUIRED_LABELS = new Array
(
		"Payment method",
		"Credit Card Account Number",
		"Verification Code",
		"Name on Card",
		"Expiration Month",
		"Expiration Year",
		"Address",
		"City",
		"Country",
		"State",
		"State Name",
		"Zip",
		"Billing Name/Attn",
		"Billing Address1",
		"Billing City",
		"Billing Country",
		"Billing State",
		"Billing State Name",
		"Billing Zip",
		"Billing Phone",
		"Billing Email",
		"Shipping Name/Attn",
		"Shipping Address1",
		"Shipping City",
		"Shipping Country",
		"Shipping State",
		"Shipping State Name",
		"Shipping Zip",
		"Shipping Phone",
		"Shipping Email"
)		

cctVIZA				= 1
cctMC      		= 2
cctAMEXP  		= 3
cctDISCOVER   = 4

var PAYMENT_TYPE = true;

//Note: FireFox does not work with document.all!!! getElementById shoud be used instead!!!!

function ajax(div,add,mthd,idPOST,specialTab,funcSwitchTab){
	if (typeof(mthd)=='undefined')mthd='POST';

	if (typeof(add)=='undefined')add='';
	if(add.indexOf('act=save')>-1) ajaxFunctionFromSaveButton='yes';
	if(add.indexOf('?uri=')==-1) add = '?uri=2018' + add;
	var inds=add.indexOf('.asp');
	if(inds>-1 && add.substring(0,inds).indexOf('cll=')==-1) add = add.substring(add.indexOf('.asp') + 4); //remove first .asp occurrance (problem with cll=admin.asp)
	var regex = new RegExp('&amp;', "g"); add = add.replace(regex,'&');

	divID=div;
	if(typeof(idPOST)=='undefined') idPOST=divID;
	var postdata=null;
	var obj=typeof(specialTab)!='undefined'? document.getElementById(specialTab) : document.getElementById(idPOST);
	
	if(typeof(funcSwitchTab)!='undefined') ajaxFunctionForNewTab=funcSwitchTab;
	
	qs++; //make sure HTTP QS is unique
	//Validate needs to be called  when main tabs are pressed-Contact/Company tabs

	if (mthd=='POST'){ //Elements in DIV!!! INPUT/SELECT 
		postdata = elmts(obj,"INPUT",'');
		postdata+= ((postdata!='')? '&': '') + elmts(obj,"TEXTAREA",'');
		postdata+= ((postdata!='' && postdata.substr(postdata.length-1)!='&')? '&': '') + elmts(obj,"SELECT",'');
		if(div=='SubTabs') postdata=postdata + '&AJAX_HTML=' + encodeURIComponent(document.getElementById(divID).innerHTML); //For now post both HTML and data
	}
	if (contType=='multipart/form-data'){
		document.frm.action= serverName + "admin.asp" + add + '&action=4';
		document.frm.encoding=contType;
		document.frm.submit();
	}
	else{
		reqc=getXMLHTTP();
		if (objOK)
		{
			var gotoURL="test.asp" + STS(add) + '&cl=' + qs;
//alert(gotoURL);
			reqc.onreadystatechange = process_c;
			reqc.open(mthd, gotoURL, true);
		}
		reqc.setRequestHeader('Content-Type',contType);
		reqc.send(postdata);

		window.status = "Tab is loading....";
	}	
}

function STS(add){//STS additional QS param needed !!!
	var a=getURLParam('ret'); 
	if(add.indexOf('ret=')==-1 && a!=''	){
		add= add + '&ret=' + a;
		a=getURLParam('out'); 
		if(a=='') a= '&ses=' + getURLParam('ses');
		else a= '&out=' + a;
		add= add + a + '&hn=' + getURLParam('hn');
	}
	return add;
}

function process_c(){
	window.status = reqc.readyState;
	
	if (reqc.readyState == 4){
		//if(reqc.status == 200) 
		var txt=reqc.responseText;

		window.status = "";	
		if (divID.indexOf('fn')==0){
			fnProcess(txt);
		}
		else{
			if (divID=='Tabs' && p2>0){changeTbStyle(p1,p2,p1 + 1);}

			//Unknown runtime error got when setting incorrect txt in innerHTML - must be well formed (<TABLE></TABLE>)
			document.getElementById(divID).innerHTML= txt ;
//alert(txt);
			test(txt);
			try{document.getElementById("BtnMenu").innerHTML = document.getElementById("hdnButtons").innerHTML;}
			catch (e){}
			document.location.hash='#found'; //Contacts Search results jump
			init(divID,true);
			reqc= null;
			try{
				if(typeof(document.frm.hrefCoBilling)!='undefined' && document.frm.hrefCoBilling.value!=''){
					ajax('SubTabs',document.frm.hrefCoBilling.value,'GET'); //will be called when Tab exists (Edt mode)
					document.frm.hrefCoBilling.value='';
				}
			}catch(e){}
		}
		
		if(divID != 'dvCounty'){
			UpdateTaxes2(divID);
		}
		if(divID == 'CartDetailsDiv'){
			window.scrollBy(0,3000);
			var oPT = document.getElementById('SelectedPaymentMethod');
			oPT.focus();
			oPT.focus();
		}
		if(ajaxFunctionFromSaveButton!=''){ //save tab info with ajax
			if(ajaxFunctionFromCloseButton!=''){ //save is called from close button
				document.location=ajaxFunctionFromCloseButton;
				ajaxFunctionFromCloseButton='';
			}else{
				if(ajaxFunctionForNewTab!=''){ //first call ajax to save current tab, then call again to build next tab
					eval(ajaxFunctionForNewTab); //new call to ajax() function
					ajaxFunctionForNewTab='';
					ajaxFunctionFromSaveButton='';
					g_bIsDirty=false;
				}else{ //save tab from save button
					alert('Page saved!');
					ajaxFunctionFromSaveButton='';
					g_bIsDirty=false;
				}
			}
		}
		g_bIsDirty=false;
	}

}

function test(str){ //execute Js function keyAct if part of the body
	var idx=str.indexOf("<script>keyAct(");
	while(idx!= -1){
		var end =str.indexOf("</script>",idx);
		var func=str.substring(idx + 8, end);
		var action = new Function (func);
		action();
		idx = str.indexOf("<script>keyAct(",idx+15);
	}
}

function elmts(obj, tg, prfx, dsbl){
	var str='';
	//try
	//{
		var objCol = obj.getElementsByTagName(tg)
	
		if (objCol.length>0){
			for(var i=0;i<objCol.length;i++){
				if(prfx==''){
					switch (objCol[i].type)
					{
						case 'button': break;
						case 'file': if(objCol[i].value!='') contType = "multipart/form-data"; break;
						case 'checkbox': if(!objCol[i].checked) break;
						case 'radio': if(!objCol[i].checked) break; //if checked continue to default case (get value)
						default: str+= ((str!='')? '&': '') + objCol[i].name + '=' + encodeURIComponent(objCol[i].value);
					}
				}
				else{
					if (objCol[i].name.indexOf(prfx)==0 && objCol[i].name!=prfx + 'SameAs') objCol[i].disabled= dsbl;
				}
			}
		}
	//}
	//catch (e){alert('No objects!' + tg);}
	return str;
}

function getXMLHTTP(){
	var xmlHttp = null;
	if (window.XMLHttpRequest) {
	  // If IE7, Mozilla, Safari, etc: Use native object
	  xmlHttp = new XMLHttpRequest();
	  objOK=true;
	}
	else
	{
	  if (window.ActiveXObject) {
		 // ...otherwise, use the ActiveX control for IE5.x and IE6
		 xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		 objOK=true;
	  }
	}
	return xmlHttp;
}

function onCompIDChange(strComp){
	if(strComp!='' ) ajax('dvCompany','&ajx=comp&comp=' + strComp + '&ci=' + getURLParam('ci'),'GET');
}

function SubmitCheckOut()
	{
		var sAction;
		var ErrMsg = '';
		var ErrMsg2 = '';
		var ErrMsg3 = '';
		var ErrMsg4 = '';
		var sObject;
		var sValue;
		var fieldsArray = PAGE_REQUIRED_FIELDS;
		var labelsArray = PAGE_REQUIRED_LABELS;

		var pmtType = document.getElementById('SelectedPaymentMethod').value;
		var CardOrCheckNumber;

		PAYMENT_TYPE = (pmtType == cctVIZA || pmtType == cctMC || pmtType == cctAMEXP || pmtType == cctDISCOVER);
			
		if(document.getElementById('CardOrCheckNumber')!=null)
			{
				CardOrCheckNumber = document.getElementById('CardOrCheckNumber').value;
				ErrMsg2 = (PAYMENT_TYPE && dateCheckOut()) ? '' : '\n Your credit card seems to have expired';
				ErrMsg3 = ((PAYMENT_TYPE && Acc_NumberCheck(pmtType,CardOrCheckNumber))) ? '' : '\n The card number you have entered is invalid';
			}
		
		
		if(document.getElementById('CSC')!=null)
			{
				var CSC =  document.getElementById('CSC').value;
				ErrMsg4 = (Acc_CSCNumberCheck(CSC)) ? '' : '\n The verification code you have entered is invalid';
			}
		

		for (var i=0; i <= fieldsArray.length-1;i++)
			{
				sObject = document.getElementById(fieldsArray[i]);
				if (sObject!=null)
				{
					sValue = sObject.value;
					sObject.style.backgroundColor="";
					if (sValue == '' || sValue == '0')
						{
							ErrMsg = ErrMsg + '\t' + labelsArray[i] + '\n';
							sObject.style.backgroundColor="#FFFF33";
						}
				}
			}

		if((ErrMsg + ErrMsg2 + ErrMsg3 + ErrMsg4)!='')
			{
				ErrMsg = (ErrMsg != '') ? 'Please enter a value for: \n' + ErrMsg : '';
				alert(ErrMsg + ErrMsg2 + ErrMsg3 + ErrMsg4);
				return;
			}
		sAction = document.CheckOut.action;
		
		if(document.getElementById('SaveCard')!=null)
		{
			sAction = sAction + '&SaveCard=' + document.getElementById('SaveCard').checked;
		}
		
		if(document.getElementById('SaveBillingAddress')!=null)
		{
			sAction = sAction + '&SaveBillingAddress=' + document.getElementById('SaveBillingAddress').checked;
		}
		
		if(document.getElementById('SaveShippingAddress')!=null)
		{
			sAction = sAction + '&SaveShippingAddress=' + document.getElementById('SaveShippingAddress').checked;
		}
		
		if(document.getElementById('CopyFromBilling')!=null)
		{
			sAction = sAction + '&CopyFromBilling=' + document.getElementById('CopyFromBilling').checked;
		}
		else{
			sAction = sAction + '&CopyFromBilling=missing';
		}
		
//		alert(sAction);
		document.CheckOut.action = sAction;
		document.CheckOut.submit();
	}

function UpdateCC(OrderID,CreditCardID,ObjectID,ObjectValue)
	{
		var ErrMsg1;
		var ErrMsg2;
		var ErrMsg3;
		var ErrMsg4;
		var sObject;
		var sValue;
		var fieldsArray = CreditCardFieldsArray;
		var labelsArray = CreditCardLabelsArray;

		ErrMsg1 = '';
		ErrMsg2 = '';
		ErrMsg3 = '';
		ErrMsg4 = '';

		for (var i=0; i <= fieldsArray.length-1;i++)
			{
				sObject = document.getElementById(fieldsArray[i]);
				if (sObject!=null)
				{
					sValue = sObject.value;
					sObject.style.backgroundColor="";
					if (sValue == '' || sValue == '0')
						{
							ErrMsg1 = ErrMsg1 + '\t' + labelsArray[i] + '\n';
							sObject.style.backgroundColor="#FFFF33";
						}
				}
			}

		var pmtType = document.getElementById('SelectedPaymentMethod').value;
		var CardOrCheckNumber =  document.getElementById('CardOrCheckNumber').value;

		PAYMENT_TYPE = (pmtType == cctVIZA || pmtType == cctMC || pmtType == cctAMEXP || pmtType == cctDISCOVER);
			
		ErrMsg2 = (PAYMENT_TYPE && dateCheckOut()) ? '' : '\n Your credit card seems to have expired';
		
		ErrMsg3 = ((PAYMENT_TYPE && Acc_NumberCheck(pmtType,CardOrCheckNumber))) ? '' : '\n The card number you have entered is invalid';
		
		if(document.getElementById('CSC')!=null)
			{
				var CSC =  document.getElementById('CSC').value;
				ErrMsg4 = (Acc_CSCNumberCheck(CSC)) ? '' : '\n The verification code you have entered is invalid';
			}
		
		if((ErrMsg1 + ErrMsg2 + ErrMsg3 + ErrMsg4)!='')
			{
				ErrMsg1 = (ErrMsg1 != '') ? 'Please enter a value for: \n' + ErrMsg1 : '';
				alert(ErrMsg1 + ErrMsg2 + ErrMsg3 + ErrMsg4);
				document.getElementById(ObjectID).checked = false;
				return;
			}
			
		else
			{
				ajax('CreditCardInfo','?uri=1036&action=4&act=95&ccid=' + CreditCardID + '&oi=' + OrderID + '&field=' + ObjectID + '&value=' + ObjectValue,'GET');
			}
	}

function Acc_NumberCheck(lPayType,accNumber)
{	var bValid=true;
	accNumber="" + Fixup_Number(accNumber);
	switch(parseInt(lPayType)){
		case cctAMEXP:
			if (accNumber.length!=15 || accNumber.substr(0,1)!="3") bValid=false;
			break;
		case cctDISCOVER:
			if (accNumber.length!=16 || accNumber.substr(0,1)!="6") bValid=false;
			break;
		case cctMC:
			if (accNumber.length!=16 || accNumber.substr(0,1)!="5") bValid=false;
			break;
		case cctVIZA:
			if (accNumber.length!=16 || accNumber.substr(0,1)!="4") bValid=false;
			break;
		default:
	}
	return bValid;
}

function Acc_CSCNumberCheck(CSCNumber)
{	var bValid=true;
	CSCNumber="" + Fixup_Number(CSCNumber);
	if (CSCNumber.length==0) bValid=false;
	return bValid;
}

function Fixup_Number(sVal){
	var vFixed="";
	sVal+="";
	for (var i=0; i<=sVal.length-1; i++)
	{
		if(!isNaN(parseInt(sVal.substr(i,1)))){
			vFixed+=sVal.substr(i,1);
		}
	}
	return vFixed;
}

//Check the Month and Year of the Credit Card
function dateCheckOut()
{
	var eMonth = document.CheckOut.expmonth.options[document.CheckOut.expmonth.selectedIndex].value;
	var eYear = document.CheckOut.expyear.options[document.CheckOut.expyear.selectedIndex].value; 
	var today = new Date();
	var thisMonth = 1 + today.getMonth();
	var thisYear =  today.getYear();
	
	if (is_Netscape()){
		var thisYear =  today.getYear()+1900;
	}
		
	var thisMonth = 1 + today.getMonth();
	
	if (eYear < thisYear){
		return false;
	}
	if (thisYear < eYear){
		return true;
	}
	if (eMonth < thisMonth){
		return false;
	}
	if (thisMonth < eMonth){
		return true;
	}
	return false;
}

function is_Netscape(){
	this.ver=navigator.appVersion
	this.dom=document.getElementById?1:0
	if ((this.dom && parseInt(this.ver) >= 5)||(document.layers && !this.dom)){
		return true;
	}
	return false;	
}
	
function UpdateAddress(OrderID,AddressID,ObjectID,ObjectValue,Prefix)
	{
		var ErrMsg;
		var sObject;
		var sValue;
		var selectedArray = AddressRequiredFieldsArray;

		ErrMsg = '';
		
		for (var i=0; i <= selectedArray.length-1;i++)
			{
				sObject = document.getElementById(Prefix + selectedArray[i]);
				if (sObject!=null)
				{
					sValue = sObject.value;
					if (sValue == '')
						{
							ErrMsg = ErrMsg + '\t' + Prefix + selectedArray[i] + '\n';
							sObject.style.backgroundColor="#FFFF33";
						}
				}
			}
			
			if(ErrMsg!='')
				{
					alert('Please enter a value for: \n\n' + ErrMsg);
					document.getElementById(ObjectID).checked = false;
					return;
				}
			else
				{
					var Act = (Prefix == 'Billing') ? '195' : '295'
					ajax(Prefix + 'Info','?uri=1036&action=4&act=' + Act + '&aid=' + AddressID + '&oi=' + OrderID + '&field=' + ObjectID + '&value=' + ObjectValue,'GET');
				}
	}

function init(div,ajx){
	try{
		var oAct=(document.getElementById('hdnLoadAction')) //support previous onload actions overwritten by this init
		if (oAct.vale!==''){
			var action = new Function (oAct.value);
			action();
		}
	}
	catch(e){}

	if (typeof(ajx)=='undefined')ajx=false;
	if(getURLParam('lkup')!=''){ onChangeElement(); }
	if (!ajx){ //only on pageload check!!! avoid infinite loop
		var strComp=getURLParam('CompanyID');
		if(strComp!='' ){
			onChangeElement();
			ajax('dvCompany','&ajx=comp&comp=' + strComp + '&ci=' + getURLParam('ci'),'GET');
		}
	}	
	try{
		//var prfx= document.forms[0].prfx.value;
		var prfx= document.getElementById('prfx').value;
		try{ if (typeof(document.getElementById(prfx))!='undefined'){document.getElementById(prfx).value= (document.frm.PrimaryAddr.value==prfx)?'yes':'no'; }}
		catch(e){}
		if (document.getElementById(prfx + 'SameAs').value!='') sameAs(document.getElementById(prfx + 'SameAs'),div,prfx);
		if(typeof(document.getElementById('CompanyTerms'))!='undefined'){
			if(document.getElementById('CompanyTerms').checked){
				if(document.getElementById('DateOpened')) document.getElementById('DateOpened').disabled=true;
				if(document.getElementById('TermsID')) document.getElementById('TermsID').disabled=true;
				if(document.getElementById('CreditStatusID')) document.getElementById('CreditStatusID').disabled=true;
				if(document.getElementById('CreditLimit')){ 
					document.getElementById('CreditLimit').disabled=true;
					document.getElementById('LateFee').disabled=true; //this is in this if(), because the control id is same in Contact and Company Management
				}
				if(document.getElementById('FromName')) document.getElementById('FromName').disabled=true;
				if(document.getElementById('CardOrCheckNumber')) document.getElementById('CardOrCheckNumber').disabled=true;
				if(document.getElementById('ExpiresDate')) document.getElementById('ExpiresDate').disabled=true;
				if(document.getElementById('CSC')) document.getElementById('CSC').disabled=true;
				if(document.getElementById('PayTypeID')) document.getElementById('PayTypeID').disabled=true;
			}
		}
	}
	catch (e){}
}

function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?") + 1).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") == 0){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  if(strReturn.indexOf('#')>-1){strReturn = strReturn.substr(0,strReturn.indexOf('#'))};
  return strReturn;
} 


function sameAs(cbo,div,prfx){
	if(div=='Tabs') div ='SubTabs';
	var obj=document.getElementById(div);
	var bPrimary=false
	var store=false;
	//if(document.forms[0].elements(prfx + "Address1").disabled==false) store=true; //store enetered value so Undo can be made
	if(document.getElementById(prfx + "Address1").disabled==false) store=true;

	//1. Retrieve selected address values!!
	elmts(obj,"INPUT",prfx,false);	elmts(obj,"SELECT",prfx,false); //Enable DIV ctrls
	
	var customVal='';
	if(cbo.value==''){
			customVal=prfx;
	}else customVal=cbo.value;
	
	if(customVal=='') RetrieveValue(document.getElementById('hdnRevert'),document.forms[0],prfx,sExcl +',CompanyName',false);
	else{
		try{
			var hdnAddr;
			var inf="";
			try{
				hdnAddr=document.getElementsByName('hdn' + customVal+ 'AddrID'); //works with IE but getElementByID gets the first cntrl only
				if(hdnAddr.length>0){ hdnAddr=hdnAddr[hdnAddr.length -1]; } //sesAddrID ctrls may be several in Session with submitted ctrls added
				inf=hdnAddr.value + document.getElementById('hdn' + customVal+ 'AddrID').value;
			}
			catch (e){
				hdnAddr=document.getElementById('hdn' + customVal + 'AddrID');
			}
			inf=inf + hdnAddr.value; 
			var sExcl="";
			//alert(document.getElementsByName(prfx + "Phone").length);
			/*var choro='';
			for(var tk=0; tk<document.forms[0].elements.length; tk++){
				choro=choro +' // ' +document.forms[0].elements[tk].name;
			}
			alert(document.getElementById(customVal + "Phone").name);*/
			if ((customVal=='Home' || customVal=='Company') && prfx!='Home' && prfx!='Company' && typeof(document.frm.HomePhone)!='undefined'){ //Difference in Contacts SubTabs/Main Section!!!
				/*document.forms[0].elements[prfx + "Phone"].value = document.forms[0].elements[customVal + "Phone"].value;
				document.forms[0].elements[prfx + "Email"].value=document.forms[0].elements[customVal + "Email"].value;
				document.forms[0].elements[prfx + "Fax"].value=document.forms[0].elements[customVal + "Fax"].value;
				try{document.forms[0].elements[prfx + "WebURL"].value=document.forms[0].elements[customVal + "WebURL"].value;}
				catch(e){}*/
				
				document.getElementById(prfx + "Phone").value = document.getElementById(customVal + "Phone").value;
				document.getElementById(prfx + "Email").value=document.getElementById(customVal + "Email").value;
				document.getElementById(prfx + "Fax").value=document.getElementById(customVal + "Fax").value;
				try{document.getElementById(prfx + "WebURL").value=document.getElementById(customVal + "WebURL").value;}
				catch(e){}
			}
			
			if ((prfx=='Home' || prfx=='Company' || customVal=='Home' || customVal=='Company') && typeof(document.frm.HomePhone)!='undefined'){
				sExcl=",Cell,Pager,Phone,Email,Fax,WebURL"; var regex = new RegExp(',', "g"); sExcl = sExcl.replace(regex, ',' + prfx); 
			}
			//alert('AJAX 2 = ' + inf);
			RetrieveValue(inf,document.forms[0],prfx,sExcl +',CompanyName',store);
		}
		catch (e){/*alert(customVal + ' err');*/ 
			alert('AJAX 3 ERROR');
			RetrieveValue(document.getElementById('hdnEmptyAddrID'),document.forms[0],prfx,sExcl +',CompanyName',store);
		}
	}
	var sv=document.getElementById('hdn' + prfx + 'AddrID').value;
	bPrimary = (sv!='||') //AddrID set for the current prfx
	bPrimary=  (bPrimary && sv.indexOf(('|' +  cbo.options[cbo.selectedIndex].className + '|'))>-1)
//Disable DIV ctrls
	if(bPrimary || cbo.options[cbo.selectedIndex].value=='') customVal="";
	if (customVal!=''){elmts(obj,"INPUT",prfx,true); elmts(obj,"SELECT",prfx,true); }
}

var sColor="";
function changeTbStyle(id, tabcount, next)
{
	var colPressed="#ff0000";
	var colFR= sColor;
	var TdSel=document.getElementById("td_" + id);
	var LinkSel=document.getElementById("link_" + id);
	var ImgSel=document.getElementById("imageL_" + id);
	var ImgSelR=document.getElementById("imageL_" + next);
	var i,j;
	for(i=1;i<=tabcount;i++)
	{
		try
		{
			var ctlTd=document.getElementById("td_" + i);
			ctlTd.style.background=colFR;
			var ctlLink=document.getElementById("link_" + i);
			ctlLink.style.background=colFR;
			var ctlImgL=document.getElementById("imageL_" + i);
			if (i==1){
				ctlImgL.src="images/AdminDGLT.gif";
				document.getElementById("FirstTd_" + i).style.background = (i==id) ?colPressed : colFR;
			}	
			else {ctlImgL.src="images/AdminDGRT9.gif"; }
			if(i==tabcount){
				document.getElementById("tdR_" + i).style.background = (i==id) ?colPressed : colFR;
			}
		}
		catch (e){}
	}
	
	if (id!=1){ImgSel.src="images/AdminDGRT5.gif";}
	if (id < tabcount) {ImgSelR.src="images/AdminDGRT4.gif";}
	TdSel.style.background=colPressed;
	LinkSel.style.background=colPressed;
	document.getElementById("tdINFO").innerHTML= (id==1)? "<img border=0 width=1 height=1/>" : document.getElementById("hdnINFO").value;
	document.getElementById("tdINFO").height= (id==1)? 1 : 20;
}

function SetCls()
{
//	var dvTaxes = document.getElementById('divTaxes'); 
//	if(dvTaxes != null)
//	{   
//	alert('SetCls first occurence: ' + dvTaxes.className);
//		dvTaxes.className = '';
//	alert('SetCls second occurence: ' + dvTaxes.className);
//	}
}

function UpdateTaxes2(theDIV)
{
		var SStateID = '0';
		var SZIP = '0';
		
		if(document.getElementById('SelectedPaymentMethod')){
			var pmtType = document.getElementById('SelectedPaymentMethod').value;
		}else var pmtType;
			
		if(document.getElementById('HiddenOrderID')){
			var ORDERID = document.getElementById('HiddenOrderID').value;
		}else var ORDERID;

		var bFOUNDDIV = false;

		var objSTATE = document.getElementById('State');
		var bSTATE = false;
		var objBSTATE = document.getElementById('BillingState');
		var bBSTATE = false;
		var objSSTATE = document.getElementById('ShippingState');
		var bSSTATE = false;

		var objCOPY = document.getElementById('CopyFromBilling');
		var bCOPY = true;

		if(objSTATE != null)
		{
			bSTATE = true;
		}

		if(objBSTATE != null)
		{
			bBSTATE = true;
		}

		if(objSSTATE != null)
		{
			bSSTATE = true;
		}

		if (objCOPY != null)
		{
			bCOPY = document.getElementById('CopyFromBilling').checked;
		}
		
		PAYMENT_TYPE = (pmtType == cctVIZA || pmtType == cctMC || pmtType == cctAMEXP || pmtType == cctDISCOVER);

//												'CheckoutPage'  
//												'CreditCardInfo'  'HiddenCreditCard'				'divCountryState'
//												'BillingInfo'			'HiddenBillingAddress'		'divBillingCountryState'
//												'ShippingInfo'		'HiddenShippingAddress'		'divShippingCountryState'

		if(theDIV == 'CheckoutPage')
		{
			bFOUNDDIV = true;
			if(pmtType > 0)
			{
				if(PAYMENT_TYPE)
				{
					if(bCOPY)
					{
						SStateID = (bSTATE) ? document.getElementById('State').value : '0';
						SZIP = (bSTATE) ? document.getElementById('Zip').value : '0';						
					}
					else
					{
						SStateID = (bSSTATE) ? document.getElementById('ShippingState').value : '0';
						SZIP = (bSSTATE) ? document.getElementById('ShippingZip').value : '0';						
					}
				}
				else
				{
					if(bCOPY)
					{
						SStateID = (bBSTATE) ? document.getElementById('BillingState').value : '0';
						SZIP = (bBSTATE) ? document.getElementById('BillingZip').value : '0';						
					}
					else
					{
						SStateID = (bSSTATE) ? document.getElementById('ShippingState').value : '0';
						SZIP = (bSSTATE) ? document.getElementById('ShippingZip').value : '0';						
					}
				}
			}
		}
		
		if(theDIV == 'CreditCardInfo' || theDIV == 'HiddenCreditCard' || theDIV == 'divCountryState')
		{
			bFOUNDDIV = true;
			if(bCOPY)
			{
				SStateID = (bSTATE) ? document.getElementById('State').value : '0';
				SZIP = (bSTATE) ? document.getElementById('Zip').value : '0';						
			}
			else
			{
				SStateID = (bSSTATE) ? document.getElementById('ShippingState').value : '0';
				SZIP = (bSSTATE) ? document.getElementById('ShippingZip').value : '0';						
			}
		}

		if(theDIV == 'BillingInfo' || theDIV == 'HiddenBillingAddress' || theDIV == 'divBillingCountryState')
		{
			bFOUNDDIV = true;
			if(bCOPY)
			{
				SStateID = (bBSTATE) ? document.getElementById('BillingState').value : '0';
				SZIP = (bBSTATE) ? document.getElementById('BillingZip').value : '0';		
			}
			else
			{
				SStateID = (bSSTATE) ? document.getElementById('ShippingState').value : '0';
				SZIP = (bSSTATE) ? document.getElementById('ShippingZip').value : '0';						
			}
		}

		if(theDIV == 'ShippingInfo' || theDIV == 'HiddenShippingAddress' || theDIV == 'divShippingCountryState')
		{
			bFOUNDDIV = true;
			if(!bCOPY)
			{
				SStateID = (bSSTATE) ? document.getElementById('ShippingState').value : '0';
				SZIP = (bSSTATE) ? document.getElementById('ShippingZip').value : '0';		
			}
			else
			{
				if(bSTATE)
				{
					SStateID = document.getElementById('State').value;
					SZIP = document.getElementById('Zip').value;											
				}
				
				if(bBSTATE)
				{
					SStateID = document.getElementById('BillingState').value;
					SZIP = document.getElementById('BillingZip').value;											
				}
			}
		}

		if(bFOUNDDIV)
		{
			ajax('divTaxes','main.asp?uri=1036&act=10&oi=' + ORDERID + '&stateid=' + SStateID + '&zip=' + SZIP,'GET');
		}
}
function UpdateTaxes()
{
	var dvTaxes = document.getElementById('divTaxes'); 
	var ds;

	if(dvTaxes != null)
	{   
	alert('UpdateTaxes first occurence: ' + dvTaxes.className);

		ds = dvTaxes.getElementsByTagName("script");
		if(dvTaxes != null)
		{   
			if(dvTaxes.className == '')
			{
				for(var i=0;i<ds.length;i++)  
				{  
					alert('executing...');
					dvTaxes.className = 'processed';
					alert('UpdateTaxes second occurence: ' + dvTaxes.className);
	    		eval(ds[i].text);  
				}				
			}
		}
	} 
}


function ViewTaxes()
{
	var ORDERID = document.getElementById('HiddenOrderID').value;
	var objState;
	var objStateID;
	var objZIP;
	var objZIPID;
	
	alert(ORDERID);
	
	objState = document.getElementById('ShippingState');
	if (objState==null)
	{
		objState = document.getElementById('BillingState');
		if (objState==null)
		{
			objState = document.getElementById('State');
				if (objState==null)
				{
					objStateID = '0';
				}
				else
				{
					objStateID = objState.value;	
				}
		}	
		else
		{
			objStateID = objState.value;	
		}			
	}
	else
	{
		objStateID = objState.value;	
	}			
	
	objZIP = document.getElementById('ShippingZip');
	if (objZIP==null)
	{
		objZIP = document.getElementById('BillingZip');
		if (objZIP==null)
		{
			objZIP = document.getElementById('Zip');
				if (objZIP==null)
				{
					objZIPID = '0';
				}
				else
				{
					objZIPID = objZIP.value;	
				}
		}	
		else
		{
			objZIPID = objZIP.value;	
		}			
	}
	else
	{
		objZIPID = objZIP.value;	
	}			
	
	alert(objStateID);	
	alert(objZIPID);
	
	if(objStateID!='0') 
	{
		ajax('divTaxes','main.asp?uri=1036&act=10&oi=' + ORDERID + '&stateid=' + objStateID + '&zip=' + objZIPID,'GET');
	}
}

function companyTerms(objID,bool,getCompanyTerms){
	var obj=document.getElementById(objID);
	var ind=-1;
	for(var i=0; i<obj.options.length; i++){
		if(bool && obj.options[i].value=='Bill'){ 
			obj.selectedIndex=i;
			sameAs(obj,'SubTabs','Billing');
		}
		if(!bool && obj.options[i].value==''){ 
			obj.selectedIndex=i;
			sameAs(obj,'SubTabs','Billing');
		}
	}
	var values=getCompanyTerms.split('%%');
	var vVal;
	var sName;
	for(var j=0; j<values.length; j++){
		sName=values[j].substring(0,values[j].indexOf('='))
		vVal=values[j].substr(values[j].indexOf('=')+1)
		//alert(document.getElementById(sName).type);
		var termObj=document.getElementById(sName);
		if(bool){
			switch(termObj.type){
				case 'text':
					termObj.value=vVal
					break;
				case 'select-one':
					for(var t=0; t<termObj.options.length; t++){
						if(termObj.options[t].value==vVal) termObj.selectedIndex=t;
					}
					break;
				default:
			}
		}
		if(bool) termObj.disabled=true;
		if(!bool) termObj.disabled=false;
	}
}

function selectAllContacts(check){
	var sIDs=document.getElementsByTagName("INPUT");
	for(i=0;i<sIDs.length;i++){
		if(sIDs[i].type=='checkbox' && sIDs[i].id && sIDs[i].id.substr(0,2)=='ei'){
			if(check) sIDs[i].checked=true;
			else sIDs[i].checked=false;
		}
	}
	if(check && document.getElementById('txtAllIDs')){ 
		document.getElementById('txtSelIDs').value=document.getElementById('txtAllIDs').value;
	}else document.getElementById('txtSelIDs').value='';
}

function RemoveContacts(deActive){
	var lnk="admin.asp?uri=2017&action=114";
	if(deActive) lnk=lnk + '&act=deactivate';
	var sIDs=document.getElementById('txtSelIDs').value;
	if(sIDs!='' && sIDs!=','){
		if(deActive){
			if(confirm('Do you want to deactivate the selected records?')){
				document.frmFilters.action=lnk;
				document.frmFilters.submit();
				//alert('deactivate : '+lnk);
			}
		}else{
			if(confirm('Do you want to remove the selected records?')){
				document.frmFilters.action=lnk;
				document.frmFilters.submit();
				//alert('remove : '+lnk);
			}
		}
	}else{ 
		if(deActive) alert('You have not selected any records to be deactivated.');
		else alert('You have not selected any records to be removed.');
	}
}
