function ncCodeCheck(ncCode){document.getElementById(CheckOutID+'SubmitOrder').disabled=true;DemoMethods.ncCodeCheck(ncCode,ncCodeCheck_callback);}
function ncCodeCheck_callback(res){ckSessionStatus(res.value);var obj=document.getElementById(CheckOutID+'txtNCcode');obj.style.color='black';if(res.value=='0')obj.style.color='red';document.getElementById(CheckOutID+'SubmitOrder').disabled=false;}
function glCodeCheck(glCode,ID){document.getElementById(CheckOutID+'SubmitOrder').disabled=true;DemoMethods.glCodeCheck(glCode,ID,glCodeCheck_callback);}
function glCodeCheck_callback(res){resArray=res.value.split('~');ckSessionStatus(resArray[0]);var obj=document.getElementById(resArray[1]);obj.style.color='black';if(resArray[0]=='0')obj.style.color='red';document.getElementById(CheckOutID+'SubmitOrder').disabled=false;}

function ChangeServiceCharge(){
document.getElementById(CheckOutID+'SubmitOrder').disabled=true;
DemoMethods.ChangeServiceCharge(SubTotal,document.getElementById(iServiceChargeID).value,orgServiceCharge,ChangeServiceCharge_callback);
}
function ChangeServiceCharge_callback(res){
document.getElementById(CheckOutID+'SubmitOrder').disabled=false;
resArray = res.value.split('~');
ckSessionStatus(resArray[0]);
if(resArray[0]=='1'){
document.getElementById(iServiceChargeID).value=resArray[1]
document.getElementById(ServiceChargeID).innerHTML=resArray[1]
document.getElementById(TotalID).innerHTML=resArray[2]
}
}

function ChangeState(){
document.getElementById(CheckOutID+'SubmitOrder').disabled=true;
var obj=document.getElementById(CheckOutID+'State'),state=obj.options[obj.selectedIndex].value;
DemoMethods.ChangeState(SubTotal,document.getElementById(iServiceChargeID).value,orgServiceCharge,state,ChangeState_callback);
}
function ChangeState_callback(res){
document.getElementById(CheckOutID+'SubmitOrder').disabled=false;
resArray = res.value.split('~');
ckSessionStatus(resArray[0]);
if(resArray[0]=='1'){
document.getElementById(iServiceChargeID).value=resArray[1]
document.getElementById(ServiceChargeID).innerHTML=resArray[1]
document.getElementById(TotalID).innerHTML=resArray[2]
document.getElementById(TaxID).innerHTML=resArray[4]
}
}
function ChangeShipVia(){
document.getElementById(CheckOutID+'SubmitOrder').disabled=true;
var obj=document.getElementById(CheckOutID+'ShipMethod'),ShipMethod=obj.options[obj.selectedIndex].text;obj=document.getElementById(CheckOutID+'State'),state=obj.options[obj.selectedIndex].value;
DemoMethods.ChangeShipVia(SubTotal,document.getElementById(iServiceChargeID).value,orgServiceCharge,state,ShipMethod,ChangeShipVia_callback);
}
function ChangeShipVia_callback(res){
document.getElementById(CheckOutID+'SubmitOrder').disabled=false;
resArray = res.value.split('~');
ckSessionStatus(resArray[0]);
if(resArray[0]=='1'){
document.getElementById(iServiceChargeID).value=resArray[1]
document.getElementById(ServiceChargeID).innerHTML=resArray[1]
document.getElementById(TotalID).innerHTML=resArray[2]
document.getElementById(FreightID).innerHTML=resArray[4]
}
}

function EditServiceCall(info){
DemoMethods.EditServiceCall(info,EditServiceCall_callback);}
function EditServiceCall_callback(res){
//alert(res.value);
var obj,d=document,resArray=res.value.split('~');ckSessionStatus(resArray[0]);
if(resArray[0]=='1'){
var btn=d.getElementById(ServiceID+'btnAddNew');
//d.getElementById(ServiceID+'btnUpdate').value='Update';
obj=d.getElementById(ServiceID+'tblServiceInfo');obj.style.display='block';btn.value='Close';Reset();
obj=d.getElementById(ServiceID+'cmbServiceProblemOptions');for(i=0;i<obj.length;i++){obj.options[i].selected=false;if(obj.options[i].text==resArray[1])obj.options[i].selected=true;}
obj=d.getElementById(ServiceID+'cmbServiceCallStatusOptions');for(i=0;i<obj.length;i++){obj.options[i].selected=false;if(obj.options[i].text==resArray[2])obj.options[i].selected=true;}
d.getElementById(ServiceID+'txtProblemDescription').value=resArray[3];d.getElementById(ServiceID+'txtProblemSolution').value=resArray[4];//if(notesFlag)d.getElementById(ServiceID+'txtNotes').value=resArray[6];
d.getElementById('divSubmit').style.display="none";d.getElementById('divUpdate').style.display="block";d.getElementById('tdErrors').innerHTML='';
d.getElementById(ServiceID+'txtcssid').value=resArray[5];d.getElementById('tdCSS').style.display="block";d.getElementById(ServiceID+'CSSID').innerHTML=resArray[5];
setTimeout('location.href="#ProblemDescription"',500);
}}

function SubmitSpaSelection(){
var sk='',sl='',sd='',fk='',fl='',fd='',t1='',t2='',FactoryInstallGroup='',Seperator='',pkgOptions='!!!';
document.getElementById('NavBar_UpdProgress').style.display='block';document.getElementById('btnSubmit').disabled=true;
if(isPackages){
for(i=0;i<PackageFeatureKey.length;i++){pkgOptions+=(pkgOptions==''?'!'+PackageFeatureKey[i]:','+PackageFeatureKey[i])}for(i=0;i<PackageFeatureLocation.length;i++){pkgOptions+=(i==0?'!'+PackageFeatureLocation[i]:','+PackageFeatureLocation[i])}
for(i=0;i<PackageFeatureDescription.length;i++){pkgOptions+=(i==0?'!'+PackageFeatureDescription[i]:','+PackageFeatureDescription[i])}}
if(isPackages&&pkg[0]!=''){
var pk=pkg[0].split('~');t1=pkgArray[(pk[0]*1)-1].split('~');

if(t1[0]!=''){t2=t1[0].split('!');sk=t2[0].split(',');sl=t2[1].split(',');sd=t2[2].split(',');}
if(t1[1]!=''){t2=t1[1].split('!');fk=t2[0].split(',');fl=t2[1].split(',');fd=t2[2].split(',');}
if(t1[1]!=''){
    for(i=0;i<fk.length;i++){FactoryInstallGroup+=Seperator+fk[i]+'~'+fl[i];Seperator='^';}
}else{
    for(i=0;i<factory.length;i++){FactoryInstallGroup+=Seperator+factory[i];Seperator='^';}
}
if(t1[0]!=''){t1=trim[0].split('~');for(i=0;i<sk.length;i++){if(sk[i]==t1[1])break;}trim[0]=sl[i]+'~'+sk[i];}
}else{for(i=0;i<factory.length;i++){FactoryInstallGroup+=Seperator+factory[i];Seperator='^';}}

DemoMethods.SubmitSpaSelection(ModelNumber,SpaFamily,SpaModel,MarketType,trim[0],tile[0],shell[0],FactoryInstallGroup,FactoryInstalledOptionsFeatureKey_Location,pkg[0]+pkgOptions,'1',SpaOptions,FactoryInstalledOptionsOption,cover[0],foam[0],SkirtInfo,SkirtSets,warranty[0],WarrantyFeatureKey_Location,WarrantyOption,SubmitSpaSelection_callback);
}
function SubmitSpaSelection_callback(res){
//alert(res.value);
document.getElementById('NavBar_UpdProgress').style.display='none';
document.getElementById('btnSubmit').disabled=false;
resArray = res.value.split('~');
ckSessionStatus(resArray[0]);
if(SpaFamily=='Aquatic Fitness Systems (AFS)'){SpaFlag='afs'}else{SpaFlag='spa'}
var inCart='2',Cart=d.getElementById('ProductInCart').innerHTML;
if(Cart!=''){inCart=Cart.substring(0,2).replace(' ','');inCart=(inCart*1)+2;}
//d.getElementById('ProductInCart').innerHTML=inCart+' products in your Cart ';
//alert(resArray[1]);
//alert(SpaFamily)
if(SpaFamily=='Aquatic Fitness Systems (AFS)'){location.replace("/Default.aspx?tabindex=4&tabid=11");}else{location.replace("/Default.aspx?tabindex=0&tabid=35");}
//location.replace("/Default.aspx?tabindex=4&tabid=11");

}
function eCoupon(){
document.getElementById(CheckOutID+'SubmitOrder').disabled=true;
DemoMethods.eCoupon(SubTotal,document.getElementById(CheckOutID+'txtCustomerEcoupon').value,orgServiceCharge,eCoupon_callback);
}
function eCoupon_callback(res){
document.getElementById(CheckOutID+'SubmitOrder').disabled=false;
//alert(res.value)
//return
resArray = res.value.split('~');
ckSessionStatus(resArray[0]);
if(resArray[0]=='1'){
if(resArray[3]=='$0.00'){
document.getElementById(trDiscountID).style.display='none';
}else{
document.getElementById(trDiscountID).style.display='block';
document.getElementById(DiscountID).innerHTML=resArray[3]
}
document.getElementById(CheckOutID+'txtCustomerEcoupon').value=resArray[4]
document.getElementById(TotalID).innerHTML=resArray[2]
document.getElementById(FreightID).innerHTML=resArray[5]
document.getElementById(TaxID).innerHTML=resArray[6]
}
}

function SubmitSpaRegistration(DoValidation){
var d=document,State='',CountryCode=document.getElementById(cID+'cmbCountry')[document.getElementById(cID+'cmbCountry').selectedIndex].text;
d.getElementById(cID+'btnAcceptAddress').style.display='none';d.getElementById('pErrors').innerHTML='';
if(CountryCode=="United States"){State=d.getElementById(cID+'cmbStatesUS')[d.getElementById(cID+'cmbStatesUS').selectedIndex].text;}
if(CountryCode=="Canada"){State=d.getElementById(cID+'cmbStatesCanada')[d.getElementById(cID+'cmbStatesCanada').selectedIndex].text;}
//alert(d.getElementById(cID+'txtFirstName').value+'   ,   '+d.getElementById(cID+'txtLastName').value+'   ,   '+d.getElementById(cID+'txtStreet').value+'   ,   '+d.getElementById(cID+'txtCity').value+'   ,   '+State+'   ,   '+d.getElementById(cID+'txtZip').value+'   ,   '+CountryCode+'   ,   '+d.getElementById(cID+'txtPhone').value+'   ,   '+d.getElementById(cID+'txtEmail').value+'   ,   '+d.getElementById(cID+'InstalledDate_textBox').value+'   ,   '+d.getElementById(cID+'txtSerialNumber').value+'   ,   '+DoValidation)
DemoMethods.SubmitSpaRegistration(d.getElementById(cID+'txtFirstName').value,d.getElementById(cID+'txtLastName').value,d.getElementById(cID+'txtStreet').value,d.getElementById(cID+'txtCity').value,State,d.getElementById(cID+'txtZip').value,CountryCode,d.getElementById(cID+'txtPhone').value,d.getElementById(cID+'txtEmail').value,d.getElementById(cID+'InstalledDate_textBox').value,d.getElementById(cID+'txtSerialNumber').value,DoValidation,SubmitSpaRegistration_callback);
}
function SubmitSpaRegistration_callback(res){
var d=document;
resArray = res.value.split('~');
ckSessionStatus(resArray[0]);
if(resArray[0]=='1'){
 	    switch(white_space(resArray[1])){
	    case 'ValidateFailed':d.getElementById(cID+'btnAcceptAddress').style.display='block';d.getElementById('pErrors').innerHTML='<span style="color:blue">We are unable to validate your address. Please correct and click "Register Spa". If correct, click "Accept Address"</span>';break;	    
	    case 'SerialNumberAlreadyRegistered':d.getElementById('pErrors').innerHTML='<span style="color:blue">Sorry, your spa is already registered.</span>';break;	    
	    case 'InstalledDate':d.getElementById('pErrors').innerHTML='<span style="color:blue">Installation date must be prior to todays date. Correct the date and re-enter.</span>';break;	    
	    case 'SerialNumber':break;	    
	    case 'SaveFailed':d.getElementById('pErrors').innerHTML='<span style="color:blue">Sorry but a problem has occured. Please try to register at another time.</span>';break;	    
	    case 'UpdateComplete' :
	        d.getElementById('pErrors').innerHTML='<span style="color:blue;vertical-align:bottom">Spa has been successfully registered.</span>';
            //d.getElementById(cID+'InstalledDate_textBox').value='';
            d.getElementById(cID+'txtSerialNumber').value='';
            //d.getElementById(cID+'txtFirstName').value='';
            //d.getElementById(cID+'txtLastName').value='';
            //d.getElementById(cID+'txtPhone').value='';
            d.getElementById(cID+'txtEmail').value='';
            d.getElementById(cID+'txtStreet').value='';
            d.getElementById(cID+'txtCity').value='';
            d.getElementById(cID+'txtState').value='';
            d.getElementById(cID+'txtZip').value='';
            d.getElementById(cID+'cmbStatesCanada').selectedIndex=0;
            d.getElementById(cID+'cmbStatesUS').selectedIndex=0;
            setTimeout('CleanUpPage()', 3000);
	        break;	    
	    }
}
EnableClick=true;
}





function ckSessionStatus(statusCode){if(statusCode=='-1'){top.location.replace("/admin/logoff.aspx")}}
function callback_test1(res)
{
	alert(res.value);
	//document.getElementById("display1").innerHTML = res.value;
}

function test1()
{
	DemoMethods.Test1(
	"1",
	"1",
	"1",
	"1",
		//document.getElementById("firstName").value, 
		//document.getElementById("familyName").value,
		//document.getElementById("email").value,
		//document.getElementById("comment").value,
		callback_test1
		);
}


function callback_test2(res)
{
	document.getElementById("display2").innerHTML = res.value;
}

function test2()
{
	var d = null;
	
	try
	{
		d = new DateTime(
			document.getElementById("year").value,
			document.getElementById("month").value,
			document.getElementById("day").value,
			0, 0, 0
			);
	
		
		DemoMethods.Test2(d, callback_test2);
	}
	catch(e)
	{
		alert("Error: " + e.description);
	}
}


function callback_test3(res)
{
	if(res != null && res.value != null && res.value.Tables != 0 && res.value.Tables.length == 1)
	{
		var html = [];
		
		for(var i=0; i<res.value.Tables[0].Rows.length; i++)
			html[html.length] = "<option>" + res.value.Tables[0].Rows[i].Country + "</option>";
	
		document.getElementById("display3").innerHTML = "<select>" + html.join("") + "</select>";
	}
}

function test3()
{
	DemoMethods.Test3(callback_test3);
}

function test4()
{
	var res = DemoMethods.Test4();
	if(res.error != null) alert(res.error);
}

function test5()
{
	DemoMethods.Test5(document.getElementById("sessionTest1").value);
}
function SessionTest()
{
	DemoMethods.SessionTest(SessionTest_callback);
}
function SessionTest_callback(res)
{
		alert(res.value);
}
function callback_test6(res)
{
	document.getElementById("sessionTest2").value = res.value;
}

function test6()
{
	DemoMethods.Test6(callback_test6);
}

function callback_test7(res)
{
	alert("The server has finished the 10 seconds call, now!");
}

function test7()
{
	DemoMethods.Test7(callback_test7);
}

function test8(ele)
{
	DemoMethods.Test8(test8_callback, ele);  // the server-side method has no arguments!
}

function test8_callback(res)
{
	if(res.error == null && res.context != null)
		res.context.innerHTML = res.value;
}
