








//////////////////////////////////////////////////////////////
function convertchars(formname,formfield) 
 { 
 //alert("hi");
   var currentContent = eval(formname+"."+formfield+".value");
   //alert(currentContent);
  currentContent = currentContent.replace(/-/g, "-"); //8211
  //currentContent = currentContent.replace(/‘/g, "'"); //8216
  //currentContent = currentContent.replace(/’/g, "'"); //8217
  //currentContent = currentContent.replace(/“/g, '"'); //8217
  //currentContent = currentContent.replace(/”/g, '"'); //8217
   //currentContent = currentContent.replace(?g, '"'); //8220
   //currentContent = currentContent.replace(?g, '"'); //8221
   var newfield= eval(formname+"."+formfield);
   newfield.value = currentContent;
}
function addspecialchar(var1,var2)
{
//alert("hi" + var1 + var2);

if(var1 != "null")
{
	var1 = eval(var1);
	var1.value = var1.value + var2;
}
}
function additem(fieldremove,fieldadd) 
{
//var newitem=prompt("Add New List Item","");
var addbox = eval(fieldadd);
var add = 1;
var i;
for(i=0;i<addbox.length;i++)
{
	if(addbox.options[i].value == fieldremove.value)
	{
	 add = 0
	}
}
if( add == 1)
{
addbox[addbox.length] = new Option(fieldremove.text,fieldremove.value);
}
}
function deleteitem(fieldname) 
{
selectedfield = eval(fieldname+".selectedIndex");
newfieldname = eval(fieldname);
//alert(selectedfield);
if (selectedfield > 0)
{
	newfieldname.options[selectedfield]=null;
	newfieldname.selectedIndex = 0;
}
}
function addcategories(categoryname,fieldname)
				{
					var catlist = "";
					var i;
					//alert(categoryname.length);
					for(i=0;i<categoryname.length;i++)
					{
						//alert("hi");
						//
						catlist = catlist + categoryname.options[i].value + ",";
					}
					fieldname.value= catlist;
					//alert(fieldname.value);
					
				}
function confirmsubmit(formname,confirmmsg)
{
	if(confirm(confirmmsg))
	{
		formname.submit();
		return true;
	}
	else
	{
		return false;
	}
}

function KeepMaxHours(formname,obj1name, obj2name, obj3name, totalamount)	
{
	//alert("hi");
	obj1 = eval("document."+formname+"."+obj1name);	
	obj2 = eval("document."+formname+"."+obj2name);
	obj3 = eval("document."+formname+ "."+obj3name);
	if(!checkText(obj1.value))
		{
						Amount = obj1.value;
						AmountLen = Amount.length;
						AmountLen = AmountLen - 1;
						Amount = Amount.substring(0,parseInt(AmountLen));
						obj1.value = Amount;
		}
	if(obj1.value=="")
	{
		obj1.value= 0;
	}
	totalhours = parseFloat(obj1.value) + parseFloat(obj2.value) + parseFloat(obj3.value);
	if(totalhours > parseFloat(totalamount))
	{
		obj1.value = parseFloat(totalamount) - (parseFloat(obj2.value) + parseFloat(obj3.value));
	}
}
function ChangeFuseaction(obj)
{
    window.location.href=obj.options[obj.selectedIndex].value;
 }

function swaptext(formname, group1, group2)
{
	var group1_AdvertisementText;
	var group2_AdvertisementText;
	
	group1_AdvertisementText = eval(formname + ".advertisement_Text_" + group1 + ".value");
	group2_AdvertisementText = eval(formname + ".advertisement_Text_" + group2);
   	group2_AdvertisementText.value = group1_AdvertisementText;
	
	var group1_Person1_FirstName;
	var group2_Person1_FirstName;
	
	group1_Person1_FirstName = eval(formname + ".Person1_FirstName_" + group1 + ".value");
	group2_Person1_FirstName = eval(formname + ".Person1_FirstName_" + group2);
   	group2_Person1_FirstName.value = group1_Person1_FirstName;
	
	var group1_Person1_LastName;
	var group2_Person1_LastName;
	
	group1_Person1_LastName = eval(formname + ".Person1_LastName_" + group1 + ".value");
	group2_Person1_LastName = eval(formname + ".Person1_LastName_" + group2);
   	group2_Person1_LastName.value = group1_Person1_LastName;
	
	var group1_Person1_Age;
	var group2_Person1_Age;
	
	group1_Person1_Age = eval(formname + ".Person1_Age_" + group1 + ".value");
	group2_Person1_Age = eval(formname + ".Person1_Age_" + group2);
   	group2_Person1_Age.value = group1_Person1_Age;
	
	var group1_Person1_Occupation;
	var group2_Person1_Occupation;
	
	group1_Person1_Occupation = eval(formname + ".Person1_Occupation_" + group1 + ".value");
	group2_Person1_Occupation = eval(formname + ".Person1_Occupation_" + group2);
   	group2_Person1_Occupation.value = group1_Person1_Occupation;
	
	var group1_Person1_HomePhone;
	var group2_Person1_HomePhone;
	
	group1_Person1_HomePhone = eval(formname + ".Person1_HomePhone_" + group1 + ".value");
	group2_Person1_HomePhone = eval(formname + ".Person1_HomePhone_" + group2);
   	group2_Person1_HomePhone.value = group1_Person1_HomePhone;

	var group1_Person1_MobilePhone;
	var group2_Person1_MobilePhone;
	
	group1_Person1_MobilePhone = eval(formname + ".Person1_MobilePhone_" + group1 + ".value");
	group2_Person1_MobilePhone = eval(formname + ".Person1_MobilePhone_" + group2);
   	group2_Person1_MobilePhone.value = group1_Person1_MobilePhone;

	var group1_Person1_EmailAddress;
	var group2_Person1_EmailAddress;
	
	group1_Person1_EmailAddress = eval(formname + ".Person1_EmailAddress_" + group1 + ".value");
	group2_Person1_EmailAddress = eval(formname + ".Person1_EmailAddress_" + group2);
   	group2_Person1_EmailAddress.value = group1_Person1_EmailAddress;

	var group1_Person2_FirstName;
	var group2_Person2_FirstName;
	
	group1_Person2_FirstName = eval(formname + ".Person2_FirstName_" + group1 + ".value");
	group2_Person2_FirstName = eval(formname + ".Person2_FirstName_" + group2);
   	group2_Person2_FirstName.value = group1_Person2_FirstName;
	
	var group1_Person2_LastName;
	var group2_Person2_LastName;
	
	group1_Person2_LastName = eval(formname + ".Person2_LastName_" + group1 + ".value");
	group2_Person2_LastName = eval(formname + ".Person2_LastName_" + group2);
   	group2_Person2_LastName.value = group1_Person2_LastName;
	
	var group1_Person2_Age;
	var group2_Person2_Age;
	
	group1_Person2_Age = eval(formname + ".Person2_Age_" + group1 + ".value");
	group2_Person2_Age = eval(formname + ".Person2_Age_" + group2);
   	group2_Person2_Age.value = group1_Person2_Age;
	
	var group1_Person2_Occupation;
	var group2_Person2_Occupation;
	
	group1_Person2_Occupation = eval(formname + ".Person2_Occupation_" + group1 + ".value");
	group2_Person2_Occupation = eval(formname + ".Person2_Occupation_" + group2);
   	group2_Person2_Occupation.value = group1_Person2_Occupation;
	
	var group1_Person2_HomePhone;
	var group2_Person2_HomePhone;
	
	group1_Person2_HomePhone = eval(formname + ".Person2_HomePhone_" + group1 + ".value");
	group2_Person2_HomePhone = eval(formname + ".Person2_HomePhone_" + group2);
   	group2_Person2_HomePhone.value = group1_Person2_HomePhone;

	var group1_Person2_MobilePhone;
	var group2_Person2_MobilePhone;
	
	group1_Person2_MobilePhone = eval(formname + ".Person2_MobilePhone_" + group1 + ".value");
	group2_Person2_MobilePhone = eval(formname + ".Person2_MobilePhone_" + group2);
   	group2_Person2_MobilePhone.value = group1_Person2_MobilePhone;

	var group1_Person2_EmailAddress;
	var group2_Person2_EmailAddress;
	
	group1_Person2_EmailAddress = eval(formname + ".Person2_EmailAddress_" + group1 + ".value");
	group2_Person2_EmailAddress = eval(formname + ".Person2_EmailAddress_" + group2);
   	group2_Person2_EmailAddress.value = group1_Person2_EmailAddress;

	
}
function DisableInput(formname, objname1, objname2)
{
	obj2 = eval("document."+formname+"."+objname2);
	obj1 = eval("document."+formname+ "." +objname1+ ".options[" +formname+ "." +objname1+ ".selectedIndex].value")
	if (obj1 == 0)
	{
	obj2.disabled = false;
	}
	else
	{
	obj2.value = "";
	obj2.disabled = true;
	}
		//
		//AddANewPerson.Business_Name.disabled = true;
		//alert("hi");
	//}
	//else
	//{
		//alert("bye");
	//}
	//{
		//
		//AddANewPerson.Business_Name.disabled = true;
		//alert("hi");
	//}
}
function ChangeUserText(formname, obj1name, obj1value)
{
	//alert("hi");
	obj1 = eval("document."+formname+"."+obj1name);
	if (obj1.value == obj1value)
	{
	obj1.value = "";
	}
}
function ChangeUserText2(formname, obj1name, obj1value)
{
	//alert("hi");
	obj1 = eval("document."+formname+"."+obj1name);
	if (obj1.value == "")
	{
	obj1.value = obj1value;
	}
}
//Please disable Word Wrap to view
function windowOpener(url,width,height,target,isfullscreen,top,left) 
      {
       browserName = navigator.appName;
       browserVer = navigator.appVersion.substring(0,1);
       if (width==null) {width=600;}
       if (height==null) {height=400;}
       if (top==null) {top=40;}
       if (left==null) {left=50;}
       if (browserName != "Netscape" || browserVer != 2)
       {
controlWindow=window.open(url,target,"toolbar=no,height="+height+",width="+width+",top="+top+",left="+left+",location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=No,fullscreen="+isfullscreen);
       }
      }
	  
function checkText(txtStr)
	{
		var TxtCount=0                       
            for(i=0;i<txtStr.length; i++)                        
            if(!((txtStr.charAt(i)>="0" && txtStr.charAt(i)<="9")||
			(txtStr.charAt(i)==".")))
			{
				TxtCount++
			}
			if(TxtCount>0)
                  	{
					return false
				}
			else				  
			 	{
					return true
				}
       }
function DoRounding(formname,obj1name, obj2name, GSTMargin)
		{
		obj1 = eval("document."+formname+"."+obj1name);	
		obj2 = eval("document."+formname+"."+obj2name);	
		if(!checkText(obj1.value))
		{
						Expense_Amount = obj1.value;
						Expense_AmountLen = Expense_Amount.length;
						Expense_AmountLen = Expense_AmountLen - 1;
						//alert(SupplierPriceLen);
						Expense_Amount = Expense_Amount.substring(0,parseInt(Expense_AmountLen));
						//alert(SupplierPrice);
						obj1.value = Expense_Amount;
		}
		
			if( obj1.value != "" && obj1.value != ".")
				{
					obj1.value = Math.abs((Math.round(obj1.value*1000)/1000));
					Expense_TotalAmount = obj1.value * GSTMargin
					obj2.value = Math.abs((Math.round(Expense_TotalAmount*100)/100));
					
				}
			else
				{
					obj1.value = "";
					obj2.value = "";
				}
		}

function DoRounding2(formname,obj1name, obj2name, GSTMargin)
		{
		obj1 = eval("document."+formname+"."+obj1name);	
		obj2 = eval("document."+formname+"."+obj2name);	
		if(!checkText(obj2.value))
		{
						Expense_Amount = obj2.value;
						Expense_AmountLen = Expense_Amount.length;
						Expense_AmountLen = Expense_AmountLen - 1;
						//alert(SupplierPriceLen);
						Expense_Amount = Expense_Amount.substring(0,parseInt(Expense_AmountLen));
						//alert(SupplierPrice);
						obj2.value = Math.abs((Math.floor(Expense_TotalAmount*100)/100).toPrecision(4));
		}
		
			if( obj2.value != "" && obj2.value != ".")
				{
					obj2.value = Math.abs((Math.floor(obj2.value*100)/100).toPrecision(4));
					Expense_TotalAmount = obj2.value / GSTMargin;
					obj1.value = Math.abs((Math.round(Expense_TotalAmount*100)/100));
					
				}
			else
				{
					obj1.value = "";
					obj2.value = "";
				}
		}	   
function ChangePrice(formname,obj1name, obj2name, GSTMargin)
		{
		obj1 = eval("document."+formname+"."+obj1name);	
		obj2 = eval("document."+formname+"."+obj2name);	
		if(!checkText(obj1.value))
		{
						Expense_Amount = obj1.value;
						Expense_AmountLen = Expense_Amount.length;
						Expense_AmountLen = Expense_AmountLen - 1;
						//alert(SupplierPriceLen);
						Expense_Amount = Expense_Amount.substring(0,parseInt(Expense_AmountLen));
						//alert(SupplierPrice);
						obj1.value = Expense_Amount;
		}
		
			if( obj1.value != "" && obj1.value != ".")
				{
					//obj1.value = obj1.value;
					Expense_TotalAmount = obj1.value * GSTMargin
					obj2.value = Math.abs((Math.round(Expense_TotalAmount*100)/100));
					
				}
			else
				{
					obj1.value = "";
					obj2.value = "";
				}
		}
		




function AddService(formname,obj1name, obj2name)	
{
	obj1 = eval("document."+formname+"."+obj1name);	
	obj2 = eval("document."+formname+"."+obj2name);
	obj3 = eval("document."+formname+ "." +obj1name+ ".options[" +formname+ "." +obj1name+ ".selectedIndex].value");
	if(obj3 == "")
	{
		//do nothing
	}
	else
	{
		obj2.value=obj3.substring(2,parseInt(obj3.length));
	}
	
}

function	DoGetTotal(formname,countnumber, includegst , GSTMargin, obj1name,obj2name, obj3name, obj4name, obj5name, obj6name,obj7name)
{
	obj3 = eval("document."+formname+"."+obj3name);
	obj4 = eval("document."+formname+"."+obj4name);
	obj5 = eval("document."+formname+"."+obj5name);
	totalamount = 0
	for(i=1;i<=countnumber; i++) 
	{
		//alert("hi"+countnumber);
		obj1 = eval("document."+formname+"."+obj1name+i);	
		obj2 = eval("document."+formname+"."+obj2name+i);
		obj6 = eval("document."+formname+"."+obj6name+i);
		obj7 = eval("document."+formname+"."+obj7name+i);
		//if(obj1.value != "")
		//{
		//if(!checkText(obj1.value))
		//{
						//Amount = obj1.value;
						//AmountLen = Amount.length;
						//AmountLen = AmountLen - 1;
						//alert(SupplierPriceLen);
						//Amount = Amount.substring(0,parseInt(AmountLen));
						//alert(SupplierPrice);
						//obj1.value = Amount;
		//}
		//}
		//if(!checkText(obj2.value))
		//{
						//Amount = obj2.value;
						//AmountLen = Amount.length;
						//AmountLen = AmountLen - 1;
						//alert(SupplierPriceLen);
						//Amount = Amount.substring(0,parseInt(AmountLen));
						//alert(SupplierPrice);
						//obj2.value = Amount;
		//}
		//if(!checkText(obj7.value))
		//{
						//Amount = obj7.value;
						//AmountLen = Amount.length;
						//AmountLen = AmountLen - 1;
						//alert(SupplierPriceLen);
						//Amount = Amount.substring(0,parseInt(AmountLen));
						//alert(SupplierPrice);
						//obj7.value = Amount;
		//}
		//alert("document."+formname+"."+obj2name+i);
		//alert(obj2);
		if(obj6.value == "")
		{
			obj6.value = 0;
		}
		//alert(obj6.value);
		if(obj7.value == "")
		{
			obj7.value = 0;
		}
		obj1.value = parseFloat(obj6.value) + parseFloat(obj7.value);
		if(obj1.value == 0)
		{
		obj1.value = "";
		}
		if(obj2.value == "")
		{
			obj2.value = 0;
		}
		if(obj1.value == "" || obj2.value == "")
		{
			totalamount = parseFloat(totalamount) + 0;
		}
		else
		{
			totalamount = 	totalamount + (parseFloat(obj1.value) * parseFloat(obj2.value));
		}
		//alert(totalamount);
	}
	if(includegst == 1)
	{
		obj4.value = currency(totalamount);
		obj5.value = currency((totalamount *GSTMargin) - totalamount);
		totalamount = totalamount * GSTMargin;
		obj3.value = currency(totalamount);
	}
	else
	{
		obj4.value = totalamount;
		obj3.value = currency(totalamount);
	}
}
function	DoRoundTotal(formname,countnumber, includegst , GSTMargin, obj1name,obj2name, obj3name, obj4name, obj5name, obj6name, obj7name)
{
	obj3 = eval("document."+formname+"."+obj3name);
	totalamount = 0
	for(i=1;i<=countnumber; i++) 
	{
		obj1 = eval("document."+formname+"."+obj1name+i);	
		obj2 = eval("document."+formname+"."+obj2name+i);
		obj6 = eval("document."+formname+"."+obj6name+i);
		obj7 = eval("document."+formname+"."+obj7name+i);
		if(!checkText(obj1.value))
		{
						Amount = obj1.value;
						AmountLen = Amount.length;
						AmountLen = AmountLen - 1;
						//alert(SupplierPriceLen);
						Amount = Amount.substring(0,parseInt(AmountLen));
						//alert(SupplierPrice);
						obj1.value = Amount;
		}
		if(!checkText(obj2.value))
		{
						Amount = obj2.value;
						AmountLen = Amount.length;
						AmountLen = AmountLen - 1;
						//alert(SupplierPriceLen);
						Amount = Amount.substring(0,parseInt(AmountLen));
						//alert(SupplierPrice);
						obj2.value = Amount;
		}
		if(!checkText(obj7.value))
		{
						Amount = obj7.value;
						AmountLen = Amount.length;
						AmountLen = AmountLen - 1;
						//alert(SupplierPriceLen);
						Amount = Amount.substring(0,parseInt(AmountLen));
						//alert(SupplierPrice);
						obj7.value = Amount;
		}
		if(obj6.value == "")
		{
			obj6.value = 0;
		}
		//alert(obj6.value);
		if(obj7.value == "")
		{
			obj7.value = 0;
		}
		

		obj1value = parseInt(obj6.value) + parseInt(obj7.value);
		if(obj1value == 0)
		{
		obj1.value = "";
		}
		if(obj1.value != "")
		{
			obj1.value = currency(obj1.value);
		}
		if(obj2.value != "")
		{
			obj2.value = currency(obj2.value);
		}		
		//alert("document."+formname+"."+obj2name+i);
		//alert(obj2);
		if(obj1.value == "" || obj2.value == "")
		{
			totalamount = totalamount + 0;
		}
		else
		{
			
			totalamount = 	totalamount + (obj1.value * obj2.value);
		}
		
	}
	if(includegst == 1)
	{
		obj4.value = totalamount;
		obj5.value = (totalamount *GSTMargin) - totalamount;
		totalamount = totalamount * GSTMargin;
		obj3.value = currency(totalamount);
	}
	else
	{
		obj4.value = totalamount;
		obj3.value = currency(totalamount);
	}
}
function CheckImageField(formname, ImageField)
	{
		if(eval(formname+"." + ImageField +".value") == "")
		{
			alert("Please browse and select an image");
			return false;
		}
		else
		{
			formname.submit();
			return false;
		}
	}
function sizerequired(formname, field)
	{ 
	var counter = 0;
	var size = eval(formname+"." + field);
	for (i = 0; i < size.length; i++) 
	{
		if (size[i].checked == false)
		{ 
			counter = counter + 1;
		}
	}
	if (counter == size.length)
	{
		alert("You must choose at least one of the size options");
		return false;
	}
	}
	
function sizerequired(formname, field)
	{ 
	var counter = 0;
	var size = eval(formname+"." + field);
	for (i = 0; i < size.length; i++) 
	{
		if (size[i].checked == false)
		{ 
			counter = counter + 1;
		}
	}
	if (counter == size.length)
	{
		alert("You must choose at least one of the size options");
		return false;
	}
	}
function colourrequired(formname, field)
	{ 
	var counter = 0;
	var size = eval(formname+"." + field);
	for (i = 0; i < size.length; i++) 
	{
		if (size[i].checked == false)
		{ 
			counter = counter + 1;
		}
	}
	if (counter == size.length)
	{
		alert("You must choose at least one of the colour options");
		return false;
	}
	}
function uncheckall(formname, field, currentfield)
	{ 
	var counter = 0;
	var size = eval(formname+"." + field);
	if(size[currentfield].checked == true)
	{
	for (i = 0; i < size.length; i++) 
	{
		if (i != currentfield)
		{
			size[i].checked = false;
		}
	}
	}
	}
function ChangePrice2(formname,obj1name, obj2name, GSTMargin)
		{
		obj1 = eval("document."+formname+"."+obj1name);	
		obj2 = eval("document."+formname+"."+obj2name);	
		if(!checkText(obj2.value))
		{
						Expense_Amount = obj2.value;
						Expense_AmountLen = Expense_Amount.length;
						Expense_AmountLen = Expense_AmountLen - 1;
						//alert(SupplierPriceLen);
						Expense_Amount = Expense_Amount.substring(0,parseInt(Expense_AmountLen));
						//alert(SupplierPrice);
						obj2.value = Expense_Amount;
						
		}
		
			if( obj2.value != "" && obj2.value != ".")
				{
					//obj2.value = obj2.value;
					Expense_TotalAmount = obj2.value / GSTMargin;
					obj1.value = Math.abs((Math.round(Expense_TotalAmount*100)/100));
					
				}
			else
				{
					obj1.value = "";
					obj2.value = "";
				}
		}
		
function currency(anynum) {
   //-- Returns passed number as string in $xxx,xxx.xx format.
   anynum=eval(anynum)
   workNum=Math.abs((Math.round(anynum*100)/100));workStr=""+workNum
   if (workStr.indexOf(".")==-1){workStr+=".00"}
   dStr=workStr.substr(0,workStr.indexOf("."));dNum=dStr-0
   pStr=workStr.substr(workStr.indexOf("."))
   while (pStr.length<3){pStr+="0"}

   //--- Adds comma in thousands place.
   if (dNum>=1000) {
      dLen=dStr.length
      dStr=parseInt(""+(dNum/1000))+dStr.substring(dLen-3,dLen)
   }

   //-- Adds comma in millions place.
   if (dNum>=1000000) {
      dLen=dStr.length
      dStr=parseInt(""+(dNum/1000000))+dStr.substring(dLen-7,dLen)
   }
   retval = dStr + pStr 
   //-- Put numbers in parentheses if negative.
   if (anynum<0) {retval="("+retval+")"}
   return retval
}
//////////////////


// Mapping of service to maximum weight
var aWeightMax = new Array(30, 20, 20, 30);
var size_serv = 5;
var size_zone = 10;
var ao_min = 0;
var ao_e = 1;
var ao_f = 2;
var ao_g = 3;
var ao_a = 4;
var ao_b = 5;
var ao_c = 6;
var ao_d = 7;
var ao_mu = 8;
var ao_pl = 9;

// Min,e,f,g,h,a,b,c,d,mult,plus
var aLookup = new Array(
// Express parcel
0.5,23.8,2,39,-1,8,-3,1,1,0,
0.5,42.6420,2,65.1475,41.4575,11.8450,0,1,1,0,
0.5,37.9040,2,92.7,-383.7383,277.0125,-3.3448,0.3235,1,0,
0.5,38.3881,2,95.79,-257.1836, 75.2453,-7.38,0.6905,1,0,
0.5,44.9080,2,115.36,-228.4471,75.4470,-5.8104,0.7379,1,0,

// Air
0.1,4.9875,2,21.6964,-48.0075,53.9922,-0.3421,0.3001,1,0,
0.1,6.3,2,37.4301,-56.6891,42.0552,-2.1705,0.5641,1,0,
0.1,6.825,2,49.5578,26.7074,23.7553,1.0478,0.7968,1,0,
0.1,7.0875,2,55.2456,29.0905,27.6812,1.0731,0.7623,1,0,
0.1,8.925,2,58.0430,1.8124,42.1278,0.4752,0.6841,1,0,

// Economy
0.1,4.9875,2,21.6964,-48.0075,53.9922,-0.3421,0.3001,0.85,0,
0.1,6.3,2,37.4301,-56.6891,42.0552,-2.1705,0.5641,0.85,0,
0.1,6.8250,2,49.5578,26.7074,23.7553,1.0478,0.7968,0.85,0,
0.1,7.0875,2,55.2456,29.0905,27.6812,1.0731,0.7623,0.85,0,
0.1,8.9250,2,58.0430,1.8124,42.1278,0.4752,0.6841,0.85,0
);


function updateCost(theform) {
	var sweight = theform.weight.value.toString();
	var svcind, serviceind;
	//look for the check box that is checked
	for (svcind = 0; svcind <= theform.service.length; svcind++) {
		if (theform.service[svcind].checked) {
			//get the value from the check box
			//value = 2, 1, 0
			serviceind = parseInt(theform.service[svcind].value);
			break;
		}
	}
	//serviceind = 2, 1, or 0
	if (isNaN(serviceind) || serviceind >= aWeightMax.length) {
		//not sure why they do this
		serviceind = 0;
	}

	//get the value of the country selected
	//that would be a 1, 2, 3, or 4 depending
	//on how far away it is i guess.
	zoneind = parseInt(theform.zone[theform.zone.selectedIndex].value);
	if (isNaN(zoneind)) {
		//set it to zero of we get something
		//we dont expect
		zoneind = 0;
	}

	//             (    2     *     5     +    0   ) *     10
	var aOffset = (serviceind * size_serv + zoneind) * size_zone;
	// the min weight is got from the big ass array
	// from the value we just calculated
	var minweight = aLookup[aOffset+ao_min]
	// this will be express = 30, air = 20, economy = 20
	var maxweight = aWeightMax[serviceind];
	var eweight;

	//this is copied from above
	//sweight = theform.weight.value.toString();
	if (sweight == ".") {
		eweight = 0;
	}
	else {
		//need to keep a copy as a string
		var temp = sweight.toString();
		eweight = parseFloat(sweight);
		if (sweight != "." && (isNaN(eweight) || eweight < 0)) {
			// Blank field makes it easier to start typing a value
			// if its not a number blank the field
			theform.weight.value = "";
			eweight = 0;
		}
		else if (eweight < maxweight) {
			//smaller so check the decimal places
			theform.weight.value = asFloat(temp);
		}
		else {
			//bigger so set it to the max value
			theform.weight.value = eweight = maxweight;
		}
	}

	//get a fresh copy to do the calculation on
	eweight = theform.weight.value;

	if (eweight == 0 || eweight == ".") {
		// Blank fields for zero weight (looks nicer than charging for nothing)
		theform.costtext.value = theform.costtext.defaultValue;
		return;
	}

	var calcweight = Math.max(eweight, minweight);
	// Exact Price =If(CalcWeight<=f,((e+(g-e)/(f-0.1)*(CalcWeight-0.1))*Multiplier+Plus),((a+b*(CalcWeight-c)^d)*Multiplier+Plus))
	var cost;
	if (calcweight <= aLookup[aOffset+ao_f]) {
		cost = aLookup[aOffset+ao_e] + (((aLookup[aOffset+ao_g] - aLookup[aOffset+ao_e]) / (aLookup[aOffset+ao_f] - 0.1)) * (calcweight - 0.1));
	}
	else {
		cost = (aLookup[aOffset+ao_a] + aLookup[aOffset+ao_b] * Math.pow((calcweight - aLookup[aOffset+ao_c]), aLookup[aOffset+ao_d]));
	}
	cost = cost * aLookup[aOffset+ao_mu] + aLookup[aOffset+ao_pl];
	theform.costtext.value = asMoney(cost * 100);
}

//Andrews work of art for formatting a float
//and remove more than 2 decimal places ...
function asFloat(value) {
	var retStr = "";
	var found = false;
	var i, j="", k="";
	strVal = value.toString();
	for(i = 0; i < strVal.length; i++) {
		if(strVal.charAt(i) != "." && !found) {
				j += strVal.charAt(i)
		}
		else {
			if(strVal.charAt(i) == ".") {
				found = true;
			}
			else {
				k += strVal.charAt(i)
			}
		}
	}
	if(k.length > 2) {
		k = k.substring(0,2);
		retStr = j + "." + k;
	}
	else {
		if(found) {
			retStr = j + "." + k;
		}
		else {
			retStr = j;
		}
	}
	return retStr;
}

// Careful handling of floats
function asMoney(cost) {
	var cents, valstr;

	if (cost <= 0) {
		// Blank for non-positive values
		return "";
	}

	cents = Math.round(cost % 100);
	if (cents >= 100) {
		// Floating point...  yay...
		cents -= 100;
	}
	valstr = "$" + Math.round((cost - cents) / 100).toString();
	valstr += "." + ((cents < 10) ? "0" : "");
	valstr += cents.toString();
	return valstr;
}

function updateFocus(theform) {
  updateCost(theform);
  theform.weight.focus();
}

function weightDelta(theform, delta) {
  var eweight;

  eweight = parseFloat(theform.weight.value);
  if (isNaN(eweight) || eweight <= 0) {
    eweight = 0;
  }
  eweight = Math.round((eweight + delta) * 1000) / 1000;

  if (eweight == 0)
    theform.weight.value = "";
  else
    theform.weight.value = eweight.toString();

  updateFocus(theform);
}


function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}



