// JavaScript Document

	function loaddata(){
		var Content;
		
		Content = Gethead();	//-> Generate form head
		Content += CreatEmptyLine(0);
		Content += CreatEmptyLine(1);
		Content += "</table>";
		
		
		/*Add a row of all hidden fields workaround if you have one line*/
		Content += AddAllHF();
		
		//alert(Content);

		getObject("Parcel_block").innerHTML = Content;
		
		// Loop through form Lines and SetCPackaging
		var i=0;
		for (i=0;i<=StartLines;i++){	
			SetCPackaging(i);
		}
		
	}
	
	function WriteParcels(Act) {
		var Content;
		var Line=0;
		var LoopLines = StartLines;
		
		Content = Gethead();	//-> Generate form head
		
		var i=0;
		for (i=0;i<=LoopLines;i++){	//-> Loop through form Lines
			if(i!=Act){
				Content += CreatLine(i,Line);
				Line++; 
			}else{
				StartLines = StartLines-1;
			}
		}
		
		if(Act=="Add"){		//-> Add new Line
			StartLines++;
			Content += CreatEmptyLine(StartLines);
		}

		if(StartLines<0){	//-> Make sure there is atleast one line
			StartLines=0;
			Content += CreatEmptyLine(StartLines);
		}
		
		Content += "</table>";
		
		
		/*Add a row of all hidden fields workaround if you have one line*/
		Content += AddAllHF();
		
		//alert(Content);
		eval("document."+FN+".ParcelLines.value = '"+StartLines+"'");

		getObject("Parcel_block").innerHTML = Content;
		
		// Loop through form Lines and SetCPackaging
		var i=0;
		for (i=0;i<=StartLines;i++){	
			SetCPackaging(i);
		}
	}
	
	/* Create Form Head */
	function Gethead(){
		
		var RetData;
		RetData = "<table width='100%' border='0' cellpadding='0' cellspacing='0'><tr>"
		
		var i=0;
		for (i=0;i<=SFArray.length;i++){
			
			switch (SFArray[i]) {
				case 'Parcels': 
					RetData += "<td id='PF"+i+"' class='top'><strong>Qty</strong></td>"; 
					break;
				
				case 'PWeight': 
					RetData += "<td id='PF"+i+"' class='top'><strong>Weight</strong><br />(per piece)</td>"; 
					break;
				
				case 'CPackaging': 
					RetData += "<td id='PF"+i+"' class='top'><strong>Package Type</strong></td>"; 
					break;
				
				case 'Dims': 
					RetData += "<td id='PF"+i+"' class='top'><strong>Length x Width x Height</strong><br />(per piece)</td>"; 
					break;
				
				case 'DeclaredValue': 
					RetData += "<td id='PF"+i+"' class='top'><strong>Value</strong><br />(per piece)</td>"; 
					break;
				
				case 'TPackaging': 
					RetData += "<td id='PF"+i+"' class='top'><strong>Package Type</strong></td>"; 
					break;
				
				case 'APackaging': 
					RetData += "<td id='PF"+i+"' class='top'><strong>Package Type</strong></td>"; 
					break;
					
				case 'PClass': 
					RetData += "<td id='PF"+i+"' class='top'><strong>Freight<br>Class</strong></td>"; 
					break;
					
				case 'Haz': 
					RetData += "<td id='PF"+i+"' class='top'><strong>Haz</strong></td>"; 
					break;
					
				case 'DELETE': 
					RetData += "<td id='PF"+i+"' class='toplast'>&nbsp;</td>";
					break;
				
				default: 
					RetData += "";
			}
		}
		RetData += "</tr>"
		
		return RetData;
	}
	
	/*Create parcel Line*/
	function CreatLine(LineNR, Count){
		var RetData;
		var Cdata;
		RetData = "<tr class='pline'>"

		var b=0;
		for (b=0;b<=SFArray.length-1;b++){

			RetData += "<td id='PF"+b+"' nowrap='nowrap' class='Parcels'>"
			if(b==0){ RetData += AddHF(LineNR,true);}
			
			switch (SFArray[b]) {
				case 'Parcels': 
					RetData += BuildFormField('Parcels', 'text', fv('Parcels',LineNR), '2', '20');
					break;
				
				case 'PWeight': 
					RetData += BuildFormField('PWeight', 'text', fv('PWeight',LineNR), '2', '');
					RetData += " ";
					RetData += BuildWeightType(LineNR,true);
					break;
				
				case 'CPackaging': 
					RetData += BuildCPackaging(LineNR,true, Count); 
					break;
				
				case 'Dims': 
					RetData += BuildFormField('PLength', 'text', fv('PLength',LineNR), '2', '6');
					RetData += " x ";
					RetData += BuildFormField('PWidth', 'text', fv('PWidth',LineNR), '2', '6');
					RetData += " x ";
					RetData += BuildFormField('PHeight', 'text', fv('PHeight',LineNR), '2', '6');
					RetData += " in";
					break;
				
				case 'DeclaredValue': 
					RetData += "$ " + BuildFormField('DeclaredValue', 'text', fv('DeclaredValue',LineNR), '5', '20');
					break;
				
				case 'TPackaging': 
					RetData += BuildTPackaging(LineNR,true); 
					break;
				
				case 'APackaging': 
					RetData += BuildAPackaging(LineNR,true); 
					break;
				
				case 'PClass': 
					RetData += BuildClass(LineNR,true); 
					break;
				
				case 'Haz': 
					RetData += BuildCheckBox1(LineNR,'Haz','True', fc('Haz',LineNR),'onclick="copyover(this, \'checkbox\')"')
					if(fc('Haz',LineNR)){ slidedown('ocHazPart');}
					break;
				
				case 'DELETE': 
					RetData += "<a href=\"Javascript:WriteParcels("+Count+")\" class=\"NoUL\"><img src='/shared/framework/images/subtract.gif' alt='delete Parcel Row' align='absmiddle' /></a>"; 
					break;
				
				default: 
					RetData += "";
			}
			
			RetData += "</td>"; 
		}
		RetData += "</tr>"
		
		return RetData;
	}
	
	/*Create Empty parcel Line*/
	function CreatEmptyLine(LineNR){
		var RetData;
		var Cdata;
		RetData = "<tr class='pline'>"

		var b=0;
		for (b=0;b<=SFArray.length-1;b++){

			RetData += "<td id='PF"+b+"' nowrap='nowrap' class='Parcels'>"
			if(b==0){ RetData += AddHF(LineNR,false);}
			
			switch (SFArray[b]) {
				case 'Parcels': 
					RetData += BuildFormField('Parcels', 'text', '', '2', '20');
					break;
				
				case 'PWeight': 
					RetData += BuildFormField('PWeight', 'text', '', '2', '');
					RetData += " ";
					RetData += BuildWeightType(LineNR,false);
					break;
				
				case 'CPackaging': 
					RetData += BuildCPackaging(LineNR,false,LineNR); 
					break;
				
				case 'Dims': 
					RetData += BuildFormField('PLength', 'text', '', '2', '6');
					RetData += " x ";
					RetData += BuildFormField('PWidth', 'text', '', '2', '6');
					RetData += " x ";
					RetData += BuildFormField('PHeight', 'text', '', '2', '6');
					RetData += " in";
					break;
				
				case 'DeclaredValue': 
					RetData += "$ " + BuildFormField('DeclaredValue', 'text', '', '5', '20');
					break;
				
				case 'TPackaging': 
					RetData += BuildTPackaging(LineNR,false); 
					break;
				
				case 'APackaging': 
					RetData += BuildAPackaging(LineNR,false); 
					break;
				
				case 'PClass': 
					RetData += BuildClass(LineNR,false); 
					break;
				
				case 'Haz': 
					RetData += BuildCheckBox('Haz','True','','onclick="copyover(this, \'checkbox\')"')
					break;
				
				case 'DELETE': 
					RetData += "<a href=\"Javascript:WriteParcels("+LineNR+")\" class=\"NoUL\"><img src='/shared/framework/images/subtract.gif' alt='delete Parcel Row' align='absmiddle' /></a>"; 
					break;
				
				default: 
					RetData += "";
			}
			
			RetData += "</td>"; 
		}
		RetData += "</tr>"
		
		return RetData;
	}
	
	/*Build Form Field*/
	function BuildFormField(Pname,Ptype,Pvalue,Psize,Pmaxlength){
		var Ins='';
		if(Psize!=""){ 
			Ins = " size='"+Psize+"'";
		}
		if(Pmaxlength!=""){ 
			Ins += " maxlength='"+Pmaxlength+"'";
			}
		return "<input name='"+Pname+"' id='"+Pname+"' type='"+Ptype+"' value='"+Pvalue+"' class='field' "+Ins+" onChange='CheckParcels();' />";
		
	}
	
	/*Build Form Field*/
	function BuildCheckBox(Pname,Pvalue,PCompvalue,change){
		var Ins='';
		if(PCompvalue){ 
			Ins = " checked='checked'";
		}
		return "<input name='"+Pname+"' type='checkbox' id='"+Pname+"' value='"+Pvalue+"' class='field' "+change+" "+Ins+" />";
	}
	
	function BuildCheckBox1(id,Pname,Pvalue,PCompvalue,change){
		var Ins='';
		if(PCompvalue){ 
			Ins = " checked='checked'";
		}
		return "<input name='"+Pname+id+"' type='checkbox' id='"+Pname+"' value='"+Pvalue+"' class='field' "+change+" "+Ins+" />";
	}
	
	/*Build Weight type dropdown*/
	function BuildWeightType(LineNR, NL){
		var RetVal;
		ItemArray = [ 'lb', 'kg'];
		ValuArray = [ 'lb', 'kg'];
		
		RetVal  = "<select name='WeightType' id='WeightType' class='fieldNB' style='width:35px' onChange='CheckParcels();'>"
		
		var dd=0;
		for (dd=0;dd<=ValuArray.length-1;dd++){
			RetVal += "<option value='"+ValuArray[dd]+"'";
			if(NL){
				if(fv('WeightType',LineNR)==ValuArray[dd]){ 
					RetVal += " Selected";
				}
			}
			RetVal += ">"+ItemArray[dd]+"</option>";	
		}
		RetVal += "</select>";
		return RetVal;
	}
	
	/*Build CPackaging Dropdown*/
	function BuildCPackaging(LineNR, NL, Count){
		var RetVal;
		ItemArray = [ 'Other packaging', 'Express Envelop', 'Plastic Pak', 'Small box'];
		ValuArray = [ '1', '6', '2', '3'];
		
		RetVal  = "<select name='CPackaging' class='field' id='CPackaging' onChange='SetCPackaging("+Count+")'>"
		
		var dd=0;
		for (dd=0;dd<=ValuArray.length-1;dd++){
			RetVal += "<option value='"+ValuArray[dd]+"'";
			if(NL){
				if(fv('CPackaging',LineNR)==ValuArray[dd]){ 
					RetVal += " Selected";
				}
			}
			RetVal += ">"+ItemArray[dd]+"</option>";	
		}
		RetVal += "</select>";
		return RetVal;
	}
	
	/*Build TPackaging Dropdown*/
	function BuildTPackaging(LineNR, NL){
		var RetVal;
		ItemArray = [ "Pallets(stack)", "Pallets(non-stack)", "Bags", "Bales", "Boxes", "Bunches", "Carpets", "Coils", "Crates", "Cylinders", "Drums", "Pails", "Reels", "Rolls", "Tubing/Pipe"];
		ValuArray = [ "Pallets1", "Pallets2", "Bags", "Bales", "Boxes", "Bunches", "Carpets", "Coils", "Crates", "Cylinders", "Drums", "Pails", "Reels", "Rolls", "Tubing/Pipe"];
		
		RetVal  = "<select name='TPackaging' class='field' id='TPackaging'>"
		
		var dd=0;
		for (dd=0;dd<=ValuArray.length-1;dd++){
			RetVal += "<option value='"+ValuArray[dd]+"'";
			if(NL){
				if(fv('TPackaging',LineNR)==ValuArray[dd]){ 
					RetVal += " Selected";
				}
			}
			RetVal += ">"+ItemArray[dd]+"</option>";	
		}
		RetVal += "</select>";
		return RetVal;
	}
	
	/*Build TPackaging Dropdown*/
	function BuildAPackaging(LineNR, NL){
		var RetVal;
		ItemArray = [ "Other packaging", "Express Envelop", "Plastic Pak", "Small box", "Pallets(stack)", "Pallets(non-stack)", "Bags", "Bales", "Boxes", "Bunches", "Carpets", "Coils", "Crates", "Cylinders", "Drums", "Pails", "Reels", "Rolls", "Tubing/Pipe"];
		ValuArray = [ "1", "6", "2", "3", "Pallets1", "Pallets2", "Bags", "Bales", "Boxes", "Bunches", "Carpets", "Coils", "Crates", "Cylinders", "Drums", "Pails", "Reels", "Rolls", "Tubing/Pipe"];
		
		RetVal  = "<select name='APackaging' class='field' id='APackaging'>"
		
		var dd=0;
		for (dd=0;dd<=ValuArray.length-1;dd++){
			RetVal += "<option value='"+ValuArray[dd]+"'";
			if(NL){
				if(fv('APackaging',LineNR)==ValuArray[dd]){ 
					RetVal += " Selected";
				}
			}
			RetVal += ">"+ItemArray[dd]+"</option>";	
		}
		RetVal += "</select>";
		return RetVal;
	}
	
	/*Build Class Dropdown*/
	function BuildClass(LineNR, NL){
		var RetVal;
		var compVal;
		ItemArray = [ '50','55','60','65','70','77.5','85','92.5','100','110','125','150','175','200','250','300','400','500'];
		ValuArray = [ '50','55','60','65','70','77.5','85','92.5','100','110','125','150','175','200','250','300','400','500'];

		if(NL){
			compVal = fv('PClass',LineNR);
			if(compVal==""){ compVal = "150";}
		}else{
			compVal = "150";
		}
		
		RetVal  = "<select name='PClass' class='field' id='PClass'>"
		
		var dd=0;
		for (dd=0;dd<=ValuArray.length-1;dd++){
			RetVal += "<option value='"+ValuArray[dd]+"'";
			if(compVal==ValuArray[dd]){ 
				RetVal += " Selected";
			}
			RetVal += ">"+ItemArray[dd]+"</option>";	
		}
		RetVal += "</select>";
		return RetVal;
	}
	
	/*Add hidden Fields*/
	function AddHF(LineNR,NL){
		var RetValue = "";
		if(!NL){NL=false;}
		
		var hf=0;
		for (hf=0;hf<=HFArray.length-1;hf++){
			if(NL){
				RetValue += BuildFormField(HFArray[hf], 'hidden', fv(HFArray[hf],LineNR), '', '');
			}else{
				RetValue += BuildFormField(HFArray[hf], 'hidden', '', '', '');
			}
		}
		
		return RetValue;
	}
	
	/*Add ALL hidden Fields*/
	function AddAllHF(){
		var RetValue = "";
		
		var hf=0;
		for (hf=0;hf<=ALArray.length-1;hf++){
			RetValue += BuildFormField(ALArray[hf], 'hidden', '', '', '');
		}
		return RetValue;
	}
	
	function getObject(name) {
		
		if (document.getElementById) {
			//alert('getEelementByID');
			return document.getElementById(name);
		
		} else if (document.all) {
			//alert('all');
			return document.all[name];
		
		} else if (document.layers) {
			//alert('layers');
			return document.layers[name];
		} 
	}
	
	/*Get field value*/
	function fv(field,line){
		return eval("document."+FN+"."+field+"["+line+"].value");
	}
	
	/*Get field checked*/
	function fc(field,line){
		return eval("document."+FN+"."+field+"["+line+"].checked");
	}
	
	function sfv(field,line,setvalue){
		eval("document."+FN+"."+field+"["+line+"].value='"+setvalue+"'");
	}

	/*
	XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	XX Set Change CPackaging
	XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	*/
	function SetCPackaging(LineNR){
		
		if(SFArray.indexOf("CPackaging")>0){ //test if CPackaging is diplayed
			var val = fv('CPackaging',LineNR);
			
			switch (val) {
				case "2":
					eval("document."+FN+".PHeight["+LineNR+"].value = '0.10'");
					eval("document."+FN+".PWidth["+LineNR+"].value = '10.25'");
					eval("document."+FN+".PLength["+LineNR+"].value = '12.75'");
					eval("document."+FN+".PHeight["+LineNR+"].disabled = true");
					eval("document."+FN+".PWidth["+LineNR+"].disabled = true");
					eval("document."+FN+".PLength["+LineNR+"].disabled = true");
					eval("document."+FN+".PWeight["+LineNR+"].disabled = false");
					eval("document."+FN+".WeightType["+LineNR+"].disabled = false");
				break;
				case "3":
					eval("document."+FN+".PHeight["+LineNR+"].value = '1.50'");
					eval("document."+FN+".PWidth["+LineNR+"].value = '10.85'");
					eval("document."+FN+".PLength["+LineNR+"].value = '12.75'");
					eval("document."+FN+".PHeight["+LineNR+"].disabled = true");
					eval("document."+FN+".PWidth["+LineNR+"].disabled = true");
					eval("document."+FN+".PLength["+LineNR+"].disabled = true");
					eval("document."+FN+".PWeight["+LineNR+"].disabled = false");
					eval("document."+FN+".WeightType["+LineNR+"].disabled = false");
					
				break;
				case "6":
					eval("document."+FN+".PHeight["+LineNR+"].value = '0.10'");
					eval("document."+FN+".PWidth["+LineNR+"].value = '9.50'");
					eval("document."+FN+".PLength["+LineNR+"].value = '12.50'");
					eval("document."+FN+".PWeight["+LineNR+"].value = '0.50'");
					eval("document."+FN+".WeightType["+LineNR+"].options[0].selected=true;");
					
					eval("document."+FN+".PHeight["+LineNR+"].disabled = true");
					eval("document."+FN+".PWidth["+LineNR+"].disabled = true");
					eval("document."+FN+".PLength["+LineNR+"].disabled = true");
					eval("document."+FN+".PWeight["+LineNR+"].disabled = true");
					eval("document."+FN+".WeightType["+LineNR+"].disabled = true");
				break;
				default:
					eval("document."+FN+".PHeight["+LineNR+"].disabled = false");
					eval("document."+FN+".PWidth["+LineNR+"].disabled = false");
					eval("document."+FN+".PLength["+LineNR+"].disabled = false");
					eval("document."+FN+".PWeight["+LineNR+"].disabled = false");
					eval("document."+FN+".WeightType["+LineNR+"].disabled = false");
				}
			}
		}
	
	function CheckParcels(){
		var ErrorMes="";
		var NF = false;
		var FF = false;
				
		var i=0;
		for (i=0;i<=StartLines;i++){

			var b=0;
			for (b=0;b<=SFArray.length;b++){

				switch (SFArray[b]) {
					case 'Parcels': 
						if(fv('Parcels',i)!=''){
							if(!IsNumeric(fv('Parcels',i))){
								ErrorMes+='The Quantity for parcel line '+(i+1)+' needs to be numeric';
								sfv('Parcels',i,'');
							}
						} 
						break;
					
					case 'PWeight': 
						if(fv('PWeight',i)!=''){
							if(!IsNumeric(fv('PWeight',i))){
								ErrorMes+='The Weight for parcel line '+(i+1)+' needs to be numeric';
								sfv('PWeight',i,'');
							}
						}
						break;
					
					case 'Dims': 
						if(fv('PHeight',i)!=''){
							if(!IsNumeric(fv('PHeight',i))){
								ErrorMes+='The Height for parcel line '+(i+1)+' needs to be numeric';
								sfv('PHeight',i,'');
							}
						}
						if(fv('PWidth',i)!=''){
							if(!IsNumeric(fv('PWidth',i))){
								ErrorMes+='The Width for parcel line '+(i+1)+' needs to be numeric';
								sfv('PWidth',i,'');
							}
						}
						if(fv('PLength',i)!=''){
							if(!IsNumeric(fv('PLength',i))){
								ErrorMes+='The Length for parcel line '+(i+1)+' needs to be numeric';
								sfv('PLength',i,'');
							}
						}
						break;
					
					case 'DeclaredValue': 
						if(fv('DeclaredValue',i)!=''){
							if(!IsNumeric(fv('DeclaredValue',i))){
								ErrorMes+='The Declared Value for parcel line '+(i+1)+' needs to be numeric';
								sfv('DeclaredValue',i,'');
							}
						} 
						break;
					
					default: 
						
				}
			}
			
			
			if(FreightAlert==true&&ErrorMes==""){
				
				
				
				if(fv('Parcels',i) != "" && fv('PWeight',i)!= ""){
					var Weight=0;
					if(fv('WeightType',i)=='lb'){Weight = fv('PWeight',i);}else{Weight=(fv('PWeight',i)* 2.205);}
					var DimWeight=0;
					if(fv('PHeight',i)!=''&&fv('PWidth',i)!=''&& fv('PLength',i)!=''){DimWeight = ((fv('PHeight',i)*fv('PWidth',i)*fv('PLength',i))/192);}
					if(Weight>149||DimWeight>149){FF = true;}else{NF = true;}
				}
			}
			
		}
		if(FreightAlert==true&&ErrorMes==""){
			if(FF&&NF){
				alert("You have parcels with a weight or Dim weight of 150 lbs or more (freight) and parcels lighter than 150 lbs combined in one order.  We will have to quote this whole order as freight,  what will raise the price of the non freight parcels.\n\nIt is better to split this order in 2 different orders, one with all the freight parcels (with a weight or Dim weight of 150 lbs or more) and one order with all the non freight parcels (with a weight or Dim weight up to 149 lbs). This can save you a lot of money.");
			}
		}
		if(ErrorMes!=""){alert(ErrorMes);}
		
	}
	
	function IsNumeric(sText){
	   var ValidChars = "0123456789.";
	   var IsNumber=true;
	   var Char;
	
	 
	   for (z = 0; z < sText.length && IsNumber == true; z++) 
		  { 
		  Char = sText.charAt(z); 
		  if (ValidChars.indexOf(Char) == -1) 
			 {
			 IsNumber = false;
			 }
		  }
	   return IsNumber;
   }
   
   //work around for ie7 to use indexof statement
   if (!Array.prototype.indexOf)
	{
	  Array.prototype.indexOf = function(elt /*, from*/)
	  {
		var len = this.length >>> 0;
	
		var from = Number(arguments[1]) || 0;
		from = (from < 0)
			 ? Math.ceil(from)
			 : Math.floor(from);
		if (from < 0)
		  from += len;
	
		for (; from < len; from++)
		{
		  if (from in this &&
			  this[from] === elt)
			return from;
		}
		return -1;
	  };
	}




