var ROOTPATH;
var xmlHttp;
var UPVS_PARTNER_ID;
var DIVNAME = "upvs_quote_area";
var requestURL;
var act="";
var is_ie = (navigator.userAgent.indexOf('MSIE') >= 0) ? 1 : 0; 
var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5")!=-1) ? 1 : 0; 
var is_opera = ((navigator.userAgent.indexOf("Opera 6")!=-1)||(navigator.userAgent.indexOf("Opera/6")!=-1)) ? 1 : 0; 
var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0;

function fetch_remote_page(url,action)
{ 
	if (url.length > 0)
	{
		act=action;
		requestURL = url;
		xmlHttp = GetXmlHttpObject(stateChangeHandler);
		xmlHttp_Get(xmlHttp, requestURL);
	}
	else 
	{
		alert('Invalid data');
	}
}

function stateChangeHandler()
{
	try
	{
		if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete')
	{
		var str = xmlHttp.responseText;
		
		//alert(act);
		str = trim(str);
		//alert(str);
		if(str!="")
		{
			var CountryData = str.split("###");
			var tmpArr = CountryData[0].split("~");
		}
		//alert(tmpArr)
		switch(act)
		{
			case "GetCasteData":
					var CasteDataRow = tmpArr.length;
					var CasteCombo = document.getElementById('CasteID');
					var CasteComboLength = document.getElementById('CasteID').options.length;
					for(var i=0;i<CasteComboLength;i++) 
					{
						CasteCombo.remove(CasteCombo.options[i]);
					}
					var opt = document.createElement('option');
					opt.text = "Select";
					opt.value = "0";
					 try
					  {
						 CasteCombo.add(opt,null); // standards compliant
					  }
						catch(ex)
					  {
						 CasteCombo.add(opt); // IE only
					  }
					for(var i=0;i<CasteDataRow;i++)
					{
						CastData = tmpArr[i].split("^");
						CasteID = CastData[0];
						CastName = CastData[1];
						var opt = document.createElement('option');
						opt.text = CastName;
						opt.value = CasteID
						
						  try
						  {
							 CasteCombo.add(opt,null); // standards compliant
						  }
							catch(ex)
						  {
							 CasteCombo.add(opt); // IE only
						  }
					}
					
				break;
				
			case  "GetCitizenState": case "GetLivingState" : case "GetState" :
			
				if(str!="")
				{
					if(tmpArr!="")
					var StateDataRow = tmpArr.length;
				}

				//alert(str)
					if(act == "GetCitizenState")
					{
						var StateCombo = document.getElementById('CitizenStateID');
						var StateComboLength = document.getElementById('CitizenStateID').options.length;
					}
					else if(act == "GetLivingState")
					{
						var StateCombo = document.getElementById('LivingStateID');
						var StateComboLength = document.getElementById('LivingStateID').options.length;
					}
					else
					{
						var StateCombo = document.getElementById('s_state');
						var StateComboLength = document.getElementById('s_state').options.length;
					}
					for(var i=0;i<StateComboLength;i++) 
					{
						StateCombo.remove(StateCombo.options[i]);
					}
					
					
					var opt = document.createElement('option');
					if(CountryData[8] == "Channel Islands")
					{
						opt.text = "Select Island";	
						document.getElementById('tdState').innerHTML = "Island:";
					}
					else if(CountryData[8] == "England" || CountryData[8] == "Isle of Man" || CountryData[8] == "Northern Ireland" || CountryData[8] == "Scotland" || CountryData[8] == "Wales")
					{
						opt.text = "Select County";	
						document.getElementById('tdState').innerHTML = "County:";
					}
					else if(CountryData[8] == "Canada")
					{
						opt.text = "Select Province";	
						document.getElementById('tdState').innerHTML = "Province:";
					}
					else if(CountryData[8] == "New Zealand")
					{
						opt.text = "Select Region";	
						document.getElementById('tdState').innerHTML = "Region:";
					}
					else
					{
						opt.text = "Select State";
						document.getElementById('tdState').innerHTML = "State:";
					}
					
					if(CountryData[8] == "United States")
					{
						document.getElementById('s_postcode').options[0].text = "Select Zip Code";
						document.getElementById('tdPostCode').innerHTML = "Zip Code:";
					}
					else
					{
						document.getElementById('s_postcode').options[0].text = "Select Post Code";
						document.getElementById('tdPostCode').innerHTML = "Postal Code:";
					}
						
					opt.value = "0";
					 try
					  {
						 StateCombo.add(opt,null); // standards compliant
					  }
						catch(ex)
					  {
						 StateCombo.add(opt); // IE only
					  }
					for(var i=0;i<StateDataRow;i++)
					{
						StateData = tmpArr[i].split("^");
						StateID = StateData[0];
						StateName = StateData[1];
						var opt = document.createElement('option');
						opt.text = StateName;
						opt.value = StateID
						
						  try
						  {
							 StateCombo.add(opt,null); // standards compliant
						  }
							catch(ex)
						  {
							 StateCombo.add(opt); // IE only
						  }
					}
					
					document.getElementById('country_RatePerStud').value = CountryData[1];
					document.getElementById('country_MinimumCost').value = CountryData[2];
					document.getElementById('country_TaxName').value = CountryData[3];
					document.getElementById('country_TaxRate').value = CountryData[4];
					document.getElementById('country_CurrencyCode').value = CountryData[5];
					document.getElementById('country_FixRate').value = CountryData[6];
					document.getElementById('country_FixRateAmount').value = CountryData[7];
				break;
			
			case  "GetPostCode":
				if(str!="")
				{
					if(tmpArr!="")
					var StateDataRow = tmpArr.length;
				}
				
				var PostCodeCombo = document.getElementById('s_postcode');
				var PostCodeComboLength = document.getElementById('s_postcode').options.length;
					
					for(var i=0;i<PostCodeComboLength;i++) 
					{
						PostCodeCombo.remove(PostCodeCombo.options[i]);
					}
					var opt = document.createElement('option');
					if(CountryData[1] == "United States")
					{
						opt.text = "Select Zip Code";
					}
					else
					{
						opt.text = "Select Post Code";
					}
					opt.value = "0";
					 try
					  {
						 PostCodeCombo.add(opt,null); // standards compliant
					  }
						catch(ex)
					  {
						 PostCodeCombo.add(opt); // IE only
					  }
					for(var i=0;i<StateDataRow;i++)
					{
						StateData = tmpArr[i].split("^");
						StateID = StateData[0];
						StateName = StateData[1];
						var opt = document.createElement('option');
						opt.text = StateName;
						opt.value = StateID
						
						  try
						  {
							 PostCodeCombo.add(opt,null); // standards compliant
						  }
							catch(ex)
						  {
							 PostCodeCombo.add(opt); // IE only
						  }
					}
				break;
			case  "GetTown":
				if(str!="")
				{
					if(tmpArr!="")
					var StateDataRow = tmpArr.length;
				}
				//alert(str)
					
						var TownCombo = document.getElementById('s_town');
						var TownComboLength = document.getElementById('s_town').options.length;
					
					for(var i=0;i<TownComboLength;i++) 
					{
						TownCombo.remove(TownCombo.options[i]);
					}
					var opt = document.createElement('option');
					opt.text = "Select Town";
					opt.value = "0";
					 try
					  {
						 TownCombo.add(opt,null); // standards compliant
					  }
						catch(ex)
					  {
						 TownCombo.add(opt); // IE only
					  }
					for(var i=0;i<StateDataRow;i++)
					{
						StateData = tmpArr[i].split("^");
						StateID = StateData[0];
						StateName = StateData[1];
						var opt = document.createElement('option');
						opt.text = StateName;
						opt.value = StateID
						
						  try
						  {
							 TownCombo.add(opt,null); // standards compliant
						  }
							catch(ex)
						  {
							 TownCombo.add(opt); // IE only
						  }
					}
				break;
			
			case  "GetStudent":
				if(str!="")
				{
					if(tmpArr!="")
					var StudDataRow = tmpArr.length;
				}
				//alert(str)
					
						var TownCombo = document.getElementById('s_id');
						var TownComboLength = document.getElementById('s_id').options.length;
					
					for(var i=0;i<TownComboLength;i++) 
					{
						TownCombo.remove(TownCombo.options[i]);
					}
					var opt = document.createElement('option');
					opt.text = "Select Student";
					opt.value = "0";
					 try
					  {
						 TownCombo.add(opt,null); // standards compliant
					  }
						catch(ex)
					  {
						 TownCombo.add(opt); // IE only
					  }
					  
					if(StudDataRow > 0) 
					{
						var opt = document.createElement('option');
						opt.text = "All Students";
						opt.value = "0";
						 try
						  {
							 TownCombo.add(opt,null); // standards compliant
						  }
							catch(ex)
						  {
							 TownCombo.add(opt); // IE only
						  }
					}
					for(var i=0;i<StudDataRow;i++)
					{
						StudData = tmpArr[i].split("^");
						StudID = StudData[0];
						StudName = StudData[1];
						var opt = document.createElement('option');
						opt.text = StudName;
						opt.value = StudID
						
						  try
						  {
							 TownCombo.add(opt,null); // standards compliant
						  }
							catch(ex)
						  {
							 TownCombo.add(opt); // IE only
						  }
					}
				break;
				case  "GetClass":
				if(str!="")
				{
					if(tmpArr!="")
					var ClassDataRow = tmpArr.length;
				}
				//alert(str)
					
						var ClassCombo = document.getElementById('c_name');
						var ClassComboLength = document.getElementById('c_name').options.length;
					
					for(var i=0;i<ClassComboLength;i++) 
					{
						ClassCombo.remove(ClassCombo.options[i]);
					}
					var opt = document.createElement('option');
					opt.text = "Select Class";
					opt.value = "";
					
					var opt1 = document.createElement('option');
					opt1.text = "All";
					opt1.value = "0";
					 try
					  {
						 ClassCombo.add(opt,null); // standards compliant
						 ClassCombo.add(opt1,null); // standards compliant
					  }
						catch(ex)
					  {
						 ClassCombo.add(opt); // IE only
						 ClassCombo.add(opt1); // IE only
					  }
					for(var i=0;i<ClassDataRow;i++)
					{
						StudData = tmpArr[i].split("^");
						StudID = StudData[0];
						StudNo = StudData[1];
						var opt = document.createElement('option');
						opt.text = "Student "+StudNo;
						opt.value = StudID
						
						  try
						  {
							 ClassCombo.add(opt,null); // standards compliant
						  }
							catch(ex)
						  {
							 ClassCombo.add(opt); // IE only
						  }
					}
				break;
				
			case  "GetCitizenCity": case "GetLivingCity" : case "GetCity" :
				if(str!="")
				{
					if(tmpArr!="")
					var CityDataRow = tmpArr.length;
				}
					if(act == "GetCitizenCity")
					{
						var CityCombo = document.getElementById('CitizenCityID');
						var CityComboLength = document.getElementById('CitizenCityID').options.length;
					}
					else if(act == "GetLivingCity")
					{
						var CityCombo = document.getElementById('LivingCityID');
						var CityComboLength = document.getElementById('LivingCityID').options.length;
					}
					else
					{
							var CityCombo = document.getElementById('CityID');
							var CityComboLength = document.getElementById('CityID').options.length;
					}
						
					for(var i=0;i<CityComboLength;i++) 
					{
						CityCombo.remove(CityCombo.options[i]);
					}
					var opt = document.createElement('option');
					opt.text = "Select";
					opt.value = "0";
					 try
					  {
						 CityCombo.add(opt,null); // standards compliant
					  }
						catch(ex)
					  {
						 CityCombo.add(opt); // IE only
					  }
					for(var i=0;i<CityDataRow;i++)
					{
						CityData = tmpArr[i].split("^");
						CityID = CityData[0];
						CityName = CityData[1];
						var opt = document.createElement('option');
						opt.text = CityName;
						opt.value = CityID
						
						  try
						  {
							 CityCombo.add(opt,null); // standards compliant
						  }
							catch(ex)
						  {
							 CityCombo.add(opt); // IE only
						  }
					}
				break;
		}
	}
	}
	catch(exception)
	{
		alert(exception);
	}
}

function xmlHttp_Get(xmlhttp, url)
{
	xmlhttp.open('GET', url, true);
	xmlhttp.send(null);
}

function GetXmlHttpObject(handler)
{
	var objXmlHttp = null;
	if (is_ie)
	{
		var strObjName = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP';
		try
		{
			objXmlHttp = new ActiveXObject(strObjName);
			objXmlHttp.onreadystatechange = handler;
		}
		catch(e)
		{
			alert('IE detected, but object could not be created. Verify that active scripting and activeX controls are enabled');
			return;
		}
	}
	else if (is_opera)
	{
		alert('Opera detected. The page may not behave as expected.');
		return;
	}
	else
	{
		objXmlHttp = new XMLHttpRequest();
		objXmlHttp.onload = handler;
		objXmlHttp.onerror = handler;
	}
	return objXmlHttp;
}

function Initialize(){var initstring = "";initstring+="<style type='text/css'>";initstring+=".body {";initstring+="font-family: Verdana, Arial, Helvetica, sans-serif;";initstring+="font-size: 12px;";initstring+="font-weight: normal;";initstring+="color: #666666;";initstring+="}";initstring+=".btn{";initstring+="font-family: Verdana, Arial, Helvetica, sans-serif;";initstring+="font-size: 11px;";initstring+="color: #FFFFFF;";initstring+="background: #839A32;";initstring+="}";initstring+="</style>";initstring+="<div id='upvs_quote_area' style='height:140;width:600;overflow:auto'>";initstring+="<table width='100%' border='0' cellspacing='0' cellpadding='0'>";initstring+="<tr>";initstring+="<td class='body' width='180'>Shipping Material Weight : </td>";initstring+="<td class='body'><input type='text' name='weight' id='weight' style='border:1px solid #000000'>&nbsp;lbs</td>";initstring+="</tr>";initstring+="<tr>";initstring+="<td class='body'>&nbsp;</td>";initstring+="<td class='body'>&nbsp;</td>";initstring+="</tr>";initstring+="<tr>";initstring+="<td class='body' width='180'>Enter your zip code : </td>";initstring+="<td><input type='text' name='destination_zip' id='destination_zip' style='border:1px solid #000000'></td>";initstring+="</tr>";initstring+="<tr> ";initstring+="<td height='30' class='body' width='180'><input type='button' name='Submit' value='GET QUOTE' class='btn' onClick='submit_quote_data();'></td>";initstring+="<td class='body'>&nbsp;</td>";initstring+="</tr>";initstring+="</table>";initstring+="</div>";document.write(initstring);}function rightTrim(strValue){var objRegExp = /^([\w\W]*)(\b\s*)$/;if(objRegExp.test(strValue)){strValue = strValue.replace(objRegExp, '$1');}return strValue;}function leftTrim(strValue){var objRegExp = /^(\s*)(\b[\w\W]*)$/;if(objRegExp.test(strValue)){strValue = strValue.replace(objRegExp, '$2');}return strValue;}function trim(strValue){var objRegExp = /^(\s*)$/;if(objRegExp.test(strValue)){strValue = strValue.replace(objRegExp, '');if( strValue.length == 0)return strValue}objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;if(objRegExp.test(strValue)){strValue = strValue.replace(objRegExp, '$2');}return strValue;}function submit_quote_data(){var objRegExp  = /(^\d{5}$)|(^\d{5}-\d{4}$)/;if(trim(document.getElementById('weight').value)=="")alert("Please enter the weight of shipping material");else if(isNaN(trim(document.getElementById('weight').value)))alert("Weight of shipping material should be numeric");else if(trim(document.getElementById('destination_zip').value)=="")alert("Please enter destination ZIP Code");else if(!objRegExp.test(trim(document.getElementById('destination_zip').value)))alert("Please enter a valid ZIP Code");else{fetch_remote_page(trim(document.getElementById('destination_zip').value), trim(document.getElementById('weight').value));		document.getElementById('upvs_quote_area').innerHTML = "<br><br><br><br>Please wait .....";	}}