
/*CALCULATION Functions */
function storeOrig(e){
	document.getElementById("origValue").value=e.value;
	return true;
}

function reCalc(e)
{
	var curElementMin=e;
	var indexRate = curElementMin.id.indexOf('[')+1;
	var i = curElementMin.id.substring(indexRate,indexRate+1);
	var indexRateElement = curElementMin.id.lastIndexOf('[')+1;
	var j = curElementMin.id.substring(indexRateElement,indexRateElement+1);

	//get all the curmin, max and prevmin, max	
	var curElementMax=document.getElementById('rates['+ i +'].rateElements['+ j +'].rangeMax')
	if (j!=0){
		var prevElementMin=document.getElementById("rates["+ i +"].rateElements["+ (j-1) +"].rangeMin");
		var prevElementMax=document.getElementById("rates["+ i +"].rateElements["+ (j-1) +"].rangeMax");
	}
	
	//error check to see if curelement min is < curelement max

	if (!(curElementMin.value* 1 < curElementMax.value* 1)){
		alert("Range Min:" + curElementMin.value +" should be less than Range Max:" + curElementMax.value);
		curElementMin.value=document.getElementById("origValue").value* 1;
		return false;
	}
	
	if (curElementMin.value*1 <= (j*2)){
		alert("You have entered too low a value.Please enter a value greater than " + (j*2) +".");
		curElementMin.value=document.getElementById("origValue").value* 1;
		return false;
	}
	
	//adjust previous row max based on new current row max
	if (j!=0){
		prevElementMax.value=curElementMin.value-1;
		for (var k = j-1; k >= 0; k--){
			if (getElement("rates["+ i +"].rateElements["+ k +"].rangeMin")* 1 >= getElement("rates["+ i +"].rateElements["+ k +"].rangeMax")* 1){
				setElement("rates["+ i +"].rateElements["+ k +"].rangeMin",getElement("rates["+ i +"].rateElements["+ k +"].rangeMax")-1);
			}	
			if ((k>=1) && (getElement("rates["+ i +"].rateElements["+ (k-1) +"].rangeMax")* 1 >= getElement("rates["+ i +"].rateElements["+ k +"].rangeMin")* 1)){
				setElement("rates["+ i +"].rateElements["+ (k-1) +"].rangeMax",getElement("rates["+ i +"].rateElements["+ k +"].rangeMin")-1);
			}		
		}
	}
	return true;
}

function processLine(line)
{
    calcLine(line);
}

function validatePets(line){
	if ((getElement("commodity")=="PETS") && (getElement("itemRows[" + line +"].number") > 1)){
		alert("Each piece(pet) must be entered in a separate row.");
		//setElement("itemRows[" + line +"].number",1);
		document.getElementById("itemRows[" + line +"].number").select();
		document.getElementById("itemRows[" + line +"].number").focus();
		return false;
	}
	return true;
}
function  calcLine(line)
{
//	if (!validatePets(line)) return false;
    Number=getElement("itemRows[" + line +"].number");
    Weight=getElement("itemRows[" + line +"].weight");
    Length=getElement("itemRows[" + line +"].length");
    Width=getElement("itemRows[" + line +"].width");
    Height=getElement("itemRows[" + line +"].height");
    Total=getElement("itemRows[" + line +"].estimatedRowWeight");
	TotalDim=getElement("itemRows[" + line +"].dimRowWeight");
    SizeDiv = getElement("sizeDivisor");
    
    if (Number==null)Number=0;
    if (Weight==null)Weight=0;
    if (Length==null)Length=0;
    if (Width==null)Width=0;
    if (Height==null)Height=0;
    if (SizeDiv==null)SizeDiv=0;
    DimWeight=0;
    
    if (Weight > 0)
    {
		Weight = Math.ceil(Weight*1)/1
		setElement("itemRows[" + line +"].weight", Weight);
    }
    if (Length > 0)
    {
		Length = Math.ceil(Length*1)/1
		setElement("itemRows[" + line +"].length", Length);
    }
    if (Width > 0)
    {
		Width = Math.ceil(Width*1)/1
		setElement("itemRows[" + line +"].width", Width);
    }
    if (Height > 0)
    {
		Height = Math.ceil(Height*1)/1
		setElement("itemRows[" + line +"].height", Height);
    }		
	
    if (SizeDiv>0)
    {
        DimWeight=(Height * Length * Width) / SizeDiv;
        DimWeight=Math.ceil(DimWeight*1)/1;
    }
        
    // if Dimension Weight is greater than the Actual Weight, then show 'Dim Weight' note.
    if ((DimWeight>Weight))
    {
		Weight = DimWeight;
		setElement("itemRows[" + line +"].calcUsed",'Dim Weight');
    }
    // else show nothing.
    else
    {
		if (Weight > 0)
			setElement("itemRows[" + line +"].calcUsed", 'Gross Weight');
		else
		    setElement("itemRows[" + line +"].calcUsed", '');
    }

    Total = Weight * Number;
	TotalDim = DimWeight * Number;
    //Total = Math.round(Total*10)/10
    if(Total==0)Total='';

    setElement("itemRows[" + line +"].estimatedRowWeight",Total);
	setElement("itemRows[" + line +"].dimRowWeight",TotalDim);
    //grandtotal();
    //grandtotalweights();
    return;
}

function calcLines()
{
	for (i=1;i<=20;i++)
    {
		if((getElement("Number"+i)!=''))
        {
			calcLine(i);
		}
    }
    return;
}

function grandtotalweights()
{
    gtgross=0;
	gtdim=0;
	calcused='';
    for (line=0;line<20;line++)
    {
		if (getElement("itemRows[" + line +"].weight")!='')
        {
            gtgross = gtgross*1 +(getElement("itemRows[" + line +"].number")*getElement("itemRows[" + line +"].weight"));
        }
        if (getElement("itemRows[" + line +"].dimRowWeight")!='')
        {
            gtdim = gtdim*1 +(1*getElement("itemRows[" + line +"].dimRowWeight"));
        }
    }
    //setElement("GrandTotalGrossWeight",gtgross);
	//setElement("GrandTotalDIMWeight",gtdim);
    	
	for (line = 0; line <20; line++) {
		if (getElement("itemRows[" + line +"].weight") =='' || getElement("itemRows[" + line +"].number")==''){
			setElement("itemRows[" + line +"].calcUsed", '');
		}
		else if(gtdim > gtgross)
   		{
			setElement("itemRows[" + line +"].calcUsed", 'Dim Weight');
			setElement("itemRows[" + line +"].estimatedRowWeight",getElement("itemRows[" + line +"].dimRowWeight"));
		}
		else
		{
			setElement("itemRows[" + line +"].calcUsed", 'Gross Weight');   
			setElement("itemRows[" + line +"].estimatedRowWeight",getElement("itemRows[" + line +"].number")*getElement("itemRows[" + line +"].weight"));			
		}
	}
	
    return;
}

//Init is not used anymore
function init()
{	
	SetFocus();
	loadPieces();
	handleMoreText();
}

function SetFocus()
{
	document.Form1.elements['OriginDropDownList'].focus();
}

function loadPieces()
{
    squeeze();
    grandtotal();
    hider();
}

function squeeze()
{
    j=0;
    for (i=1;i<=20;i++)
    {
        if((getElement("Number"+i)=='') && (j==0)) j=i;
        if((getElement("Number"+i)!='') && (j!=0))
        {
            move(i,j);
            j++;
        }
    }
    return
}

function grandtotal()
{
    gt=0;
    for (i=1;i<=20;i++)
    {
        if (getElement("Total"+i)!='')
        {
            gt = gt*1 +(1*getElement("Total"+i));
        }
    }
    
    if(gt==0)
    {
		gt='';
	}
	else
	{
		gt = Math.round(gt*10)/10    
	}
		
    //setElement("GrandTotal",gt);
    return;
}

function hider()
{
    document.getElementById("MoreText").className='ShipMore';
    document.getElementById("WeightWarning").className='NoMoreLines';

    if ((getElement("Number5")=='') &&
        (getElement("Number6")=='') &&
        (getElement("Number7")=='') &&
        (getElement("Number8")=='') )
    {
        document.getElementById("tr5").className="NoMoreLines";
        document.getElementById("tr6").className="NoMoreLines";
        document.getElementById("tr7").className="NoMoreLines";
        document.getElementById("tr8").className="NoMoreLines";
    }
    if ((getElement("Number9")=='') &&
        (getElement("Number10")=='') &&
        (getElement("Number11")=='') &&
        (getElement("Number12")=='') )
    {
        document.getElementById("tr9").className="NoMoreLines";
        document.getElementById("tr10").className="NoMoreLines";
        document.getElementById("tr11").className="NoMoreLines";
        document.getElementById("tr12").className="NoMoreLines";
    }
    if ((getElement("Number13")=='') &&
        (getElement("Number14")=='') &&
        (getElement("Number15")=='') &&
        (getElement("Number16")=='') )
    {
        document.getElementById("tr13").className="NoMoreLines";
        document.getElementById("tr14").className="NoMoreLines";
        document.getElementById("tr15").className="NoMoreLines";
        document.getElementById("tr16").className="NoMoreLines";
    }
    if ((getElement("Number17")=='') &&
        (getElement("Number18")=='') &&
        (getElement("Number19")=='') &&
        (getElement("Number20")=='') )
    {
        document.getElementById("tr17").className="NoMoreLines";
        document.getElementById("tr18").className="NoMoreLines";
        document.getElementById("tr19").className="NoMoreLines";
        document.getElementById("tr20").className="NoMoreLines";
    }
}

function move(from,to)
{
    setElement("Number"+to,getElement("Number"+from));
    setElement("Weight"+to,getElement("Weight"+from));
    setElement("Length"+to,getElement("Length"+from));
    setElement("Width"+to,getElement("Width"+from));
    setElement("Height"+to,getElement("Height"+from));
    setElement("Total"+to,getElement("Total"+from));
    setElement("TotalDim"+to,getElement("TotalDim"+from));	
    setElement("CalcUsed"+to,getElement("CalcUsed"+from));
    setElement("Number"+from,'');
    setElement("Weight"+from,'');
    setElement("Length"+from,'');
    setElement("Width"+from,'');
    setElement("Height"+from,'');
    setElement("Total"+from,'');
    setElement("TotalDim"+from,'');	
    setElement("CalcUsed"+from,'');
    return;
}

function more()
{    
    if(document.getElementById("tr5").className=='NoMoreLines')
    {
        document.getElementById("tr5").className='MoreLines';
        document.getElementById("tr6").className='MoreLines';
        document.getElementById("tr7").className='MoreLines';
        document.getElementById("tr8").className='MoreLines';
        return;
    }
    if(document.getElementById("tr9").className=='NoMoreLines')
    {
        document.getElementById("tr9").className='MoreLines';
        document.getElementById("tr10").className='MoreLines';
        document.getElementById("tr11").className='MoreLines';
        document.getElementById("tr12").className='MoreLines';
        return;
    }
    if(document.getElementById("tr13").className=='NoMoreLines')
    {
        document.getElementById("tr13").className='MoreLines';
        document.getElementById("tr14").className='MoreLines';
        document.getElementById("tr15").className='MoreLines';
        document.getElementById("tr16").className='MoreLines';
        return;
    }
    if(document.getElementById("tr17").className=='NoMoreLines')
    {
        document.getElementById("tr17").className='MoreLines';
        document.getElementById("tr18").className='MoreLines';
        document.getElementById("tr19").className='MoreLines';
        document.getElementById("tr20").className='MoreLines';
        document.getElementById("MoreText").className='NoMoreLines';
        return;
    }
}

function handleMoreText()
{	
    if(document.getElementById("tr20").className=='MoreLines')
    {
		document.getElementById("MoreText").className='NoMoreLines';
    }
    else
    {
		document.getElementById("MoreText").className='MoreLines';
    }
    
    return;
}

/* GENERAL Functions */
function getBrowser() 
{
	browser= navigator.appName;
	version = navigator.appVersion;
	accept = version.substring(0, 1);
	if ( (browser == "Netscape") && ( accept >= 3 ) ) return 1;
	if ( (browser == "Microsoft Internet Explorer") && ( accept >= 4) ) return 1;
	return 0;
}

function getElement(id)
{
        val = document.getElementById(id).value;
        if (val==null) val='';
        return val
}

function setElement(id,val)
{
    document.getElementById(id).value=val;
}

function hideStatus()
{
	document.getElementById("StatusLabel").className='NoMoreLines';	
}

function numDecOnly(e)
{
    var keynum;
    var keychar;
    var numcheck;
    if (e.shiftKey==1) return false;
    if(window.event)
    {
        keynum=e.keyCode;
    }
    else if(e.which)
    {
        keynum=e.which;
    }
    //alert(keynum);
        
    if (keynum == 13)
    {
        //Get the button the user wants to have clicked
        var btn = document.getElementById("CalculateImageButton");
        if (btn != null)
        { //If we find the button click it
            btn.click();
            event.keyCode = 0
        }
        return true;
    }
    
    // Handle Backspace Key: backward delete.
    if (keynum==8) return true;
    
    // Handel Tab Key.
    if (keynum==9) return true;
    
    // Handle Home and End Keys.
    if ((keynum==35)||(keynum==36)) return true;
    
    // Handle Left Arrow and Right Arrow Keys.
    if ((keynum==37)||(keynum==39)) return true;
    
    // Handle Delete and Del (NumLock=true) Keys: forward delete.
    if (keynum==46) return true;
    
    // Handle Number Keys: 0 - 9.
    if ((keynum>=48) && (keynum<=57)) return true; 
    
    // Handle Number Keys with NumLock=true: 0 - 9.
    if ((keynum>=96)&&(keynum<=105)) return true;
    
    // Handle decimal point (.) Keys.
    if ((keynum==110) || (keynum==190)) return true;
        
    return false;
}


function numOnly(e)
{
    var keynum;
    var keychar;
    var numcheck;
    if (e.shiftKey==1) return false;
    if(window.event)
    {
        keynum=e.keyCode;
    }
    else if(e.which)
    {
        keynum=e.which;
    }
    //alert(keynum);
        
    // Handle Enter Key.    
    if (keynum == 13)
    {
        //Get the button the user wants to have clicked
        var btn = document.getElementById("CalculateImageButton");
        if (btn != null)
        { //If we find the button click it
            btn.click();
            event.keyCode = 0
        }
        return true;
    }
    // Handle Backspace Key: backward delete.
    if (keynum==8) return true;
    
    // Handel Tab Key.
    if (keynum==9) return true;
    
     // Handle Home and End Keys.
    if ((keynum==35)||(keynum==36)) return true;
    
    // Handle Left Arrow and Right Arrow Keys.
    if ((keynum==37)||(keynum==39)) return true;
    
    // Handle Delete and Del (NumLock=true) Keys: forward delete.
    if ((keynum==46)) return true;
    
    // Handle Number Keys: 0 - 9.
    if ((keynum>=48) && (keynum<=57)) return true; 
    
    // Handle Number Keys with NumLock=true: 0 - 9.
    if ((keynum>=96) && (keynum<=105)) return true;    
    
   return false;
}

function  validateDV()
{
	var dv = parseFloat(document.getElementById("DeclaredValueTextBox").value);
	var dvNaA = isNaN(dv);
	
	if (dvNaA)
	{
		setElement("DeclaredValueTextBox",'');
	}
	else
	{
		dv = Math.round(dv*100)/100
		if(dv ==0)dv ='';

		setElement("DeclaredValueTextBox",dv);
	}
	
    return;
}

function  validateIV()
{

	var iv = parseFloat(document.getElementById("InsuranceTextBox").value);
	var ivNaN = isNaN(iv);
	
	if (ivNaN)
	{
		setElement("InsuranceTextBox",'');
	}
	else
	{
		iv = Math.round(iv*100)/100
		if(iv ==0)iv ='';

		setElement("InsuranceTextBox",iv);
	}
    
    return;
}

