var calcConractTimeout=new Array();

function calcContractSlow()
{
	if( document.getElementById('inputConsumptionTemp').value.length>=4 )
	{
		clearTimeout(calcConractTimeout[0]);
		calcConractTimeout[0]=window.setTimeout('calcContractPHP()',700);
	}
}

function calcContract()
{
	//clearTimeout(calcConractTimeout[0]);
	//calcConractTimeout[0]=window.setTimeout('calcContractPHP()',100);
	calcContractPHP();
}

function calcContractPHP()
{
	ShowLayer('layerAniCounter1');
	ShowLayer('layerAniCounter2');
	ShowLayer('layerAniCounter3');
	ShowLayer('layerAniCounter4');
	
	frames['iFrameCounter'].document.getElementById('inputConsumption').value=document.getElementById('inputConsumption').value;
	frames['iFrameCounter'].document.getElementById('inputResidensType').value=document.getElementById('inputResidensType').value;
	frames['iFrameCounter'].document.getElementById('inputPriceType').value=document.getElementById('inputPriceType').value;
	frames['iFrameCounter'].document.getElementById('inputEcco').value=document.getElementById('inputEcco').value;
	frames['iFrameCounter'].document.getElementById('inputPaymentType').value=document.getElementById('inputPaymentType').value;
	frames['iFrameCounter'].document.getElementById('inputSortBy').value=document.getElementById('inputSortBy').value;
	frames['iFrameCounter'].document.getElementById('inputPropertyDistrictCode').value=document.getElementById('inputPropertyDistrictCode').value;
	frames['iFrameCounter'].document.getElementById('inputPropertySE').value=document.getElementById('inputPropertySE').value;
	frames['iFrameCounter'].document.getElementById('inputPropertyNetCode').value=document.getElementById('inputPropertyNetCode').value;
	
	frames['iFrameCounter'].document.getElementById('inputResignRight').value=document.getElementById('inputResignRight').value;
	frames['iFrameCounter'].document.getElementById('inputResultFrom').value=document.getElementById('inputResultFrom').value;
	frames['iFrameCounter'].document.getElementById('inputMaxContractTime').value=document.getElementById('inputMaxContractTime').value;
	frames['iFrameCounter'].document.getElementById('inputMinContractTime').value=document.getElementById('inputMinContractTime').value;
	frames['iFrameCounter'].document.getElementById('formCounter').submit();
}

function calcContractExecute()
{
	arrayUserContracts=refillArray();
	
	//detta skall bort !!??
	//if(document.getElementById('inputMaxContractTime').value<1) document.getElementById('inputMaxContractTime').value=1;
	
	//filtrering med utgång från "konsument " preferenser
	
	//filtrera bort lokalavtal som inte gäller för aktuell anläggnings lokalisering
	//funktion för att hantera postnummer och para dem med nätområden saknas
	//om zipcode är 9900 jämförs alla avtal oavsett om de är lokala eller ej. Inga avtal filtrerars bort.
	
	//filtrerar bort alla lokalavtal. Endast rikstäckande kvar.
	//else if( document.getElementById('inputResidensType').value==9000 && arrayUserContracts[i][2] != 9000 ) arrayUserContracts.splice(i,1);

	
	//Timerfunktion
	/*
	startTime=new Date().getTime();	
		
	endTime=new Date().getTime();
	alert('Elapsed time using variable: '+((endTime-startTime)/1000)+' seconds.');
	*/
	
	
	//Stor WHILE loop är för långsam framförallt för IE!?	
	/*	
	var i=0;
	while(i<arrayUserContracts.length)
	{
		//filtrera bort lokalavtal som inte gäller för aktuell anläggnings lokalisering
		//funktion för att hantera postnummer och para dem med nätområden saknas
		//om zipcode är 9900 jämförs alla avtal oavsett om de är lokala eller ej. Inga avtal filtrerars bort.
		
		//filtrerar bort alla lokalavtal. Endast rikstäckande kvar.
		//else if( document.getElementById('inputResidensType').value==9000 && arrayUserContracts[i][2] != 9000 ) arrayUserContracts.splice(i,1);
		

		//filtrerar bort alla avtal som inte har omteckningsrätt
		//if(document.getElementById('inputResignRight').value=="TRUE" && arrayUserContracts[i][14]!="TRUE" ) arrayUserContracts.splice(i,1);
		
		//filtrerar bort alla avtal som inte är miljöavtal
		if(document.getElementById('inputEcco').value=="TRUE" && arrayUserContracts[i][12]!="TRUE" && arrayUserContracts[i][13]!="TRUE" ) arrayUserContracts.splice(i,1);
		
		//filtrerar bort alla avtal som inte är miljöavtal
		else if(document.getElementById('inputEcco').value!="TRUE" && arrayUserContracts[i][16]=="TRUE" ) arrayUserContracts.splice(i,1);
				
		//filtrera bort avtal som inte gäller för aktuell anläggningstyp
		else if( document.getElementById('inputResidensType').value == "House" && arrayUserContracts[i][8] != "TRUE" ) arrayUserContracts.splice(i,1);
		else if( document.getElementById('inputResidensType').value == "Appartment" && arrayUserContracts[i][9] != "TRUE" ) arrayUserContracts.splice(i,1);
		else if( document.getElementById('inputResidensType').value == "FALSE" && ( arrayUserContracts[i][8] != "TRUE" || arrayUserContracts[i][9] != "TRUE" ) ) arrayUserContracts.splice(i,1);		
		
		//filtrerar bort avtalspristyper som inte skall jämföras 
		else if(document.getElementById('inputPriceType').value=="FIX" && arrayUserContracts[i][5]!="Fast") arrayUserContracts.splice(i,1);
		else if(document.getElementById('inputPriceType').value=="MOVING" && arrayUserContracts[i][5]!="Rörlig") arrayUserContracts.splice(i,1);
		else if(document.getElementById('inputPriceType').value=="MIX" && arrayUserContracts[i][5]!="Flex") arrayUserContracts.splice(i,1);
		
		else if(document.getElementById('inputPriceType').value=="NOFIX" && arrayUserContracts[i][5]=="Fast") arrayUserContracts.splice(i,1);
		
		//filtrerar bort betalningsmöjligheter som inte skall jämföras 
		else if( document.getElementById('inputPaymentType').value=="Bill" && arrayUserContracts[i][17] != "TRUE" ) arrayUserContracts.splice(i,1);
		else if( document.getElementById('inputPaymentType').value=="Autobill" && arrayUserContracts[i][18] != "TRUE" ) arrayUserContracts.splice(i,1);
		else if( document.getElementById('inputPaymentType').value=="Ebill" && arrayUserContracts[i][19] != "TRUE" ) arrayUserContracts.splice(i,1);

		//filtrerar bort avtal med längre bindningstid än önskat
		//else if( document.getElementById('inputMaxContractTime').value < Number(arrayUserContracts[i][10]) ) arrayUserContracts.splice(i,1);
			
		//filtrerar bort avtal med kortare bindningstid än önskat // används ej i dag
		//else if( document.getElementById('inputMinContractTime').value > arrayUserContracts[i][10] ) arrayUserContracts.splice(i,1);
			
		//filtrerar bort alla avtal som är beroende av årskonsumtionsmängd om ingen konsumtion är angedd
		else if( ( document.getElementById('inputConsumption').value=="" || document.getElementById('inputConsumption').value==0 ) && ( arrayUserContracts[i][6]!="" || arrayUserContracts[i][7]!="" ) ) arrayUserContracts.splice(i,1);
		
		//filtrerar bort avtal som innefattar konsumtioner mindre än årskonsumtionens mängd
		else if( arrayUserContracts[i][7]!="" && document.getElementById('inputConsumption').value > Number(arrayUserContracts[i][7]) ) arrayUserContracts.splice(i,1);
			
		//filtrerar bort avtal som inte innefattar konsumtioner större än årskonsumtionens mängd
		else if( arrayUserContracts[i][6]!="" && document.getElementById('inputConsumption').value < Number(arrayUserContracts[i][6]) ) arrayUserContracts.splice(i,1);
		
		else i++;
	}
	*/
		
	//filtrerar bort alla avtal som inte har omteckningsrätt, (2007-12-13 Används egentligen inte)
	if(document.getElementById('inputResignRight').value=="TRUE")
	{
		var tempMax=arrayUserContracts.length;
		var i=0;
		while(i<tempMax)
		{
			if( arrayUserContracts[i][14]!="TRUE" ){ arrayUserContracts.splice(i,1); tempMax=arrayUserContracts.length;}
			else i++;
		}
	}
	
	//filtrerar bort alla avtal som inte är miljöavtal
	if(document.getElementById('inputEcco').value=="TRUE")
	{
		var tempMax=arrayUserContracts.length;
		var i=0;
		while(i<tempMax)
		{	
			if( arrayUserContracts[i][12]!="TRUE" && arrayUserContracts[i][13]!="TRUE" ){ arrayUserContracts.splice(i,1); tempMax=arrayUserContracts.length;}
			else i++;
		}
	}
	
	//filtrerar bort betalningsmöjligheter som inte skall jämföras 
	if(document.getElementById('inputPaymentType').value=="Bill")
	{
		var tempMax=arrayUserContracts.length;
		var i=0;
		while(i<tempMax)
		{
			if(arrayUserContracts[i][17] != "TRUE"){ arrayUserContracts.splice(i,1); tempMax=arrayUserContracts.length;}
			else i++;
		}
	}	
	if(document.getElementById('inputPaymentType').value=="Autobill")
	{
		var tempMax=arrayUserContracts.length;
		var i=0;
		while(i<tempMax)
		{
			if(arrayUserContracts[i][18] != "TRUE"){ arrayUserContracts.splice(i,1); tempMax=arrayUserContracts.length;}
			else i++;
		}
	}	
	if(document.getElementById('inputPaymentType').value=="Ebill")
	{
		var tempMax=arrayUserContracts.length;
		var i=0;
		while(i<tempMax)
		{
			if(arrayUserContracts[i][19] != "TRUE"){ arrayUserContracts.splice(i,1); tempMax=arrayUserContracts.length;}
			else i++;
		}
	}
	
	//filtrerar bort avtalspristyper som inte skall jämföras
	if( document.getElementById('inputPriceType').value=="FIX" )
	{
		var tempMax=arrayUserContracts.length;
		var i=0;
		while(i<tempMax)
		{
			//filtrerar bort avtalspristyper som inte skall jämföras 
			if(arrayUserContracts[i][5]!="Fast"){ arrayUserContracts.splice(i,1); tempMax=arrayUserContracts.length;}
			else i++;
		}
	}

	//filtrerar bort avtalspristyper som inte skall jämföras
	if(document.getElementById('inputPriceType').value=="MOVING" )
	{
		var tempMax=arrayUserContracts.length;
		var i=0;
		while(i<tempMax)
		{
			//filtrerar bort avtalspristyper som inte skall jämföras 
			if(arrayUserContracts[i][5]!="Rörlig"){ arrayUserContracts.splice(i,1); tempMax=arrayUserContracts.length;}
			else i++;
		}
	}
	
	//filtrerar bort avtalspristyper som inte skall jämföras
	if(document.getElementById('inputPriceType').value=="MIX")
	{
		var tempMax=arrayUserContracts.length;
		var i=0;
		while(i<tempMax)
		{
			//filtrerar bort avtalspristyper som inte skall jämföras 
			if(arrayUserContracts[i][5]!="Flex"){ arrayUserContracts.splice(i,1); tempMax=arrayUserContracts.length;}
			else i++;
		}
	}
	
	//filtrerar bort avtalspristyper som inte skall jämföras
	if(document.getElementById('inputPriceType').value=="NOFIX")
	{
		var tempMax=arrayUserContracts.length;
		var i=0;
		while(i<tempMax)
		{
			//filtrerar bort avtalspristyper som inte skall jämföras 
			if(arrayUserContracts[i][5]=="Fast"){ arrayUserContracts.splice(i,1); tempMax=arrayUserContracts.length;}
			else i++;
		}
	}
		
	//filtrera bort avtal som inte gäller för aktuell anläggningstyp
	if( document.getElementById('inputResidensType').value == "House" )	
	{
		var tempMax=arrayUserContracts.length;
		var i=0;
		while(i<tempMax)
		{	
			if( arrayUserContracts[i][8] != "TRUE" ){ arrayUserContracts.splice(i,1); tempMax=arrayUserContracts.length;}
			else i++;
		}
	}
	if( document.getElementById('inputResidensType').value == "Appartment" )
	{	
		var tempMax=arrayUserContracts.length;
		var i=0;
		while(i<tempMax)
		{	
			if( arrayUserContracts[i][9] != "TRUE" ){ arrayUserContracts.splice(i,1); tempMax=arrayUserContracts.length;}
			else i++;
		}
	}
	if( document.getElementById('inputResidensType').value == "FALSE" )
	{	
		var tempMax=arrayUserContracts.length;
		var i=0;
		while(i<tempMax)
		{	
			if( arrayUserContracts[i][8] != "TRUE" || arrayUserContracts[i][9] != "TRUE" ){ arrayUserContracts.splice(i,1); tempMax=arrayUserContracts.length;}
			else i++;
		}
	}
	
	//filtrerar bort alla avtal som är beroende av årskonsumtionsmängd om ingen konsumtion är angedd
	if( document.getElementById('inputConsumption').value=="" || document.getElementById('inputConsumption').value==0 )
	{
		var tempMax=arrayUserContracts.length;
		var i=0;
		while(i<tempMax)
		{
			if( arrayUserContracts[i][6]!="" || arrayUserContracts[i][7]!="" ){ arrayUserContracts.splice(i,1); tempMax=arrayUserContracts.length;}
			else i++;
		}
	}
	else
	{
		var tempConsumption=document.getElementById('inputConsumption').value;
		var i=0;	
		while(i<arrayUserContracts.length)
		{
			//filtrerar bort avtal som innefattar konsumtioner mindre än årskonsumtionens mängd
			if( arrayUserContracts[i][7]!="" && tempConsumption > Number(arrayUserContracts[i][7]) ) arrayUserContracts.splice(i,1);
			//filtrerar bort avtal som inte innefattar konsumtioner större än årskonsumtionens mängd
			else if( arrayUserContracts[i][6]!="" && tempConsumption < Number(arrayUserContracts[i][6]) ) arrayUserContracts.splice(i,1);
			else i++;
		}
	}
	
	//filtrerar bort alla avtal som inte är miljöavtal
	if(document.getElementById('inputEcco').value!="TRUE")
	{
		var tempMax=arrayUserContracts.length;
		var i=0;
		while(i<tempMax)
		{	
			if( arrayUserContracts[i][16]=="TRUE" ){ arrayUserContracts.splice(i,1); tempMax=arrayUserContracts.length;}
			else i++;
		}
	}
	
	//Ta bort "bolags dubletter"
	// ändrades 2007-07-24 if( document.getElementById('inputResignRight').value!="TRUE" && document.getElementById('inputEcco').value!="TRUE" )
	
	if( document.getElementById('inputEcco').value!="TRUE" )
	{
		var tempMax=arrayUserContracts.length;
		var i=1;
		while(i<tempMax)
		{
			var spliced="FALSE";
			for(j=0; j<i; j++)
			{
				if( arrayUserContracts[i][15] == arrayUserContracts[j][15] )
				{
					if(document.getElementById('inputEcco').value=="TRUE")
					{
						if( arrayUserContracts[i][12]=="TRUE" )
						{
							if(arrayUserContracts[i][14]!=arrayUserContracts[j][14])
							{
								arrayUserContracts.splice(i,1);
								tempMax=arrayUserContracts.length;
								spliced="TRUE";
								break;			
							}
						}
						else if( arrayUserContracts[i][13]=="TRUE" )
						{
							if(arrayUserContracts[i][14]!=arrayUserContracts[j][14])
							{
								arrayUserContracts.splice(i,1);
								tempMax=arrayUserContracts.length;
								spliced="TRUE";
								break;							
							}						
						}
					}
					else
					{
						if( arrayUserContracts[i][12]!=arrayUserContracts[j][12] )
						{
							arrayUserContracts.splice(i,1);
							tempMax=arrayUserContracts.length;
							spliced="TRUE";
							break;
						}
						else if( arrayUserContracts[i][13]!=arrayUserContracts[j][13] )
						{
							arrayUserContracts.splice(i,1);
							tempMax=arrayUserContracts.length;
							spliced="TRUE";
							break;
						}
						else if( arrayUserContracts[i][14]!=arrayUserContracts[j][14] )
						{
							arrayUserContracts.splice(i,1);
							tempMax=arrayUserContracts.length;
							spliced="TRUE";
							break;
						}
					}
					if( arrayUserContracts[i][17]!=arrayUserContracts[j][17] )
					{
						arrayUserContracts.splice(i,1);
						tempMax=arrayUserContracts.length;
						spliced="TRUE";
						break;
					}
					if( arrayUserContracts[i][18]!=arrayUserContracts[j][18] )
					{
						arrayUserContracts.splice(i,1);
						tempMax=arrayUserContracts.length;
						spliced="TRUE";
						break;
					}
					if( arrayUserContracts[i][19]!=arrayUserContracts[j][19] )
					{
						arrayUserContracts.splice(i,1);
						tempMax=arrayUserContracts.length;
						spliced="TRUE";
						break;
					}
				}
			}
			if(spliced!="TRUE") i++;
		}
	}
	
	//filtrera bort prova-på-avtal
	// else if( $no_tryout_contract=="TRUE" && $arrayContractBuffer[$i]['contract_name_ext'] == "Prova-På-Pris" ) array_splice($arrayContractBuffer,$i,1);
	
	//filtrera bort lokalavtal som inte gäller för aktuell anläggnings lokalisering. (om zipcode är 9900 jämförs alla avtal oavsett om de är lokala eller ej. Inga avtal filtrerars bor.) Detta ska implementeras
	//else if( $arrayContractBuffer[$i]['available_areas'] != 90000 && $arrayContractBuffer[$i]['available_areas'] != ",90000," && !isContractAvailable( $arrayContractBuffer[$i]['available_areas'], $_SESSION['usrPropertyLocalAreas'] ) ) array_splice($arrayContractBuffer,$i,1);
		
	
	//filtrering på avtalslängd (används ej)
	/*	
	if( document.getElementById('inputMaxContractTime').value < 72 )
	{
		var i=0;	
		while(i<arrayUserContracts.length)
		{	
			//filtrerar bort avtal med längre bindningstid än önskat
			if( document.getElementById('inputMaxContractTime').value < Number(arrayUserContracts[i][10]) ) arrayUserContracts.splice(i,1);	
			else i++;
		}
	}
	//filtrerar bort avtal med kortare bindningstid än önskat // används ej i dag
	//else if( document.getElementById('inputMinContractTime').value > arrayUserContracts[i][10] ) arrayUserContracts.splice(i,1);
	*/
	
	paintNumbers();
}

function paintNumbers()
{
	var tempUserContracts=''+ arrayUserContracts.length;
	document.getElementById('textUserContracts').innerHTML=tempUserContracts;
	document.getElementById('textUserContracts1').innerHTML=tempUserContracts;
	

}

function refillArray()
{
	var arrayUserContracts=new Array();
	for(i=0;i<arrayContracts.length;i++)
	{
		arrayUserContracts[i]=new Array();
		arrayUserContracts[i]=arrayContracts[i];
		/*
		for(j=0;j<arrayContracts[i].length;j++)
		{
			arrayUserContracts[i][j]=arrayContracts[i][j];
		}
		*/

	}
	return arrayUserContracts;
}

function isNumeric(tempString)
{
	var ValidChars = "0123456789";
	var IsNumber=true;
	var Char;

	for (i = 0; i < tempString.length && IsNumber == true; i++) 
	{
		Char = tempString.charAt(i);
		if (ValidChars.indexOf(Char) == -1) IsNumber = false;
	}
	return IsNumber;
}

function stripChar(tempChar,tempString)
{
	var i=0;
	while(i<tempString.length)
	{
		if(tempString.charAt(i)==tempChar) tempString=tempString.substring(0,i)+tempString.substring(i+1,tempString.length);
		else i++;
	}
	return tempString;
}

function DoBench(x){
	var startTime,endTime,gORl='local';
	if(x==1){
		startTime=new Date().getTime();
		Bench1();
		endTime=new Date().getTime();
	}else{
		gORl='global';
		startTime=new Date().getTime();
		Bench2();
		endTime=new Date().getTime();
	}
	alert('Elapsed time using '+gORl+' variable: '+((endTime-startTime)/1000)+' seconds.');
}
