//AUTHOR: ERIC FREIER WEATHERBANK,INC.
//DATE: JUL 2009
//THE GREEN GRID FREE-COOLING PROJECT

var xmlHttp

function getdata(loc, t_max_ineq, t_max, t_min_ineq, t_min, r_ineq, r, d_max_ineq, d_max, d_min_ineq, d_min, w_ineq, w, metricFlag)
{ 

	//alert(loc + "  " + t_max + "  " + t_min + " " + d_max + "  " + d_min + " " + r);

	var url = "scripts/fetch.php";
	
	//handle input exceptions like %
	r = String(r);
	var checkedString = ""
	for(c=0; c<r.length; c++)
	{
		var ch = r.charAt(c);
		if(ch != "%")
		{
			checkedString = checkedString + ch;
		}
	}
	r=checkedString;
	/////
	//EASY TO ADD ADDITIONAL USER INPUT EXCEPTION STRINGS HERE
	/////
	
	//if input data is metric, convert to F for the request
	if(metricFlag==1)
	{
		if(t_max!=-999){var t_max=CtoF(t_max);}else(t_max=-999);
		if(t_min!=-999){var t_min=CtoF(t_min);}else(t_min=-999);		
		if(d_max!=-999){var d_max=CtoF(d_max);}else(d_max=-999);
		if(d_min!=-999){var d_min=CtoF(d_min);}else(d_min=-999);
		if(w!=-999){var w=CtoF(w);}else(w=-999);
	}
	else if(metricFlag=0)
	{
		var t_max=t_max;
		var t_min=t_min;		
		var d_max=d_max;
		var d_min=d_min;
		var w=w;
	}
	
	if(t_max!=-999){t_max=(Number(t_max)+1);}
	if(t_min!=-999){t_min=(Number(t_min)-1);}
	if(d_max!=-999){d_max=(Number(d_max)+1);}
	if(d_min!=-999){d_min=(Number(d_min)-1);}
	if(r!=-999){r=(Number(r)+1);}
	if(w!=-999){w=(Number(w)+1);}	
	
	//swap the max and min if reversed
	if(t_max<t_min && t_max!="" && t_min!=""){t_hold=t_max;t_max=t_min;t_min=t_hold;}
	if(d_max<d_min && d_max!="" && d_min!=""){d_hold=d_max;d_max=d_min;d_min=d_hold;}
	  
	//create the request string in proper format
	var datString = formatRequest(loc, t_max_ineq, t_max, t_min_ineq, t_min, r_ineq, r, d_max_ineq, d_max, d_min_ineq, d_min, w_ineq, w);
	
	//alert(datString);
	
	//create the url request string
	//url = url + "?str=" + datString  + "&" + "addr=" + addr + "&" + "port=" + port;	

	$.ajax({
  url: url,
  dataType: 'json',
  data: {"str":datString},
  error: function(xhr, status, errorThrown) { alert(status + ': ' + errorThrown); },
  success: data_callback
	// , complete: function(xhr, status) { alert(status); }
});
}

function data_callback(hoursArray, status, xhr) {
	
//	alert(hoursArray.length);		
			
			var FAChours=0;
			var EChours=0;
			
			if(t_max!=-999 && t_min==-999 && d_max==-999 && d_min==-999 && r==-999){FAChours=hoursArray[1];}
			else if(t_max==-999 && t_min==-999 && d_max!=-999 && d_min==-999 && r==-999){FAChours=hoursArray[2];}
			else if(t_max==-999 && t_min==-999 && d_max==-999 && d_min==-999 && r!=-999){FAChours=hoursArray[3];}
			else if(t_max!=-999 && t_min==-999 && d_max==-999 && d_min==-999 && r!=-999){FAChours=hoursArray[4];}
			else if(t_max!=-999 && t_min==-999 && d_max!=-999 && d_min==-999 && r==-999){FAChours=hoursArray[5];}
			else if(t_max!=-999 && t_min==-999 && d_max!=-999 && d_min==-999 && r!=-999){FAChours=hoursArray[6];}
			else if(t_max!=-999 && t_min!=-999 && d_max!=-999 && d_min!=-999 && r==-999){FAChours=hoursArray[8];}	
			else if(t_max!=-999 && t_min!=-999 && d_max==-999 && d_min==-999 && r==-999){FAChours=hoursArray[9];}
			else if(t_max!=-999 && t_min!=-999 && d_max!=-999 && d_min==-999 && r==-999){FAChours=hoursArray[9];}				
			else if(t_max==-999 && t_min==-999 && d_max!=-999 && d_min!=-999 && r==-999){FAChours=hoursArray[10];}
			else if(t_max!=-999 && t_min==-999 && d_max!=-999 && d_min!=-999 && r==-999){FAChours=hoursArray[10];}			
			else if(t_max!=-999 && t_min!=-999 && d_max==-999 && d_min==-999 && r!=-999){FAChours=hoursArray[11];}
			else if(t_max!=-999 && t_min!=-999 && d_max!=-999 && d_min!=-999 && r!=-999){FAChours=hoursArray[12];}	
			
			if(hoursArray[7]!="null"){EChours=hoursArray[7];}	
			
			
			//due to a couple leap years, number of hours is forced to be only (365*24)=8760
			if(FAChours>8760){FAChours=8760;}
			if(EChours>8760){EChours=8760;}		
			
			var FACsave = airCooledSavings(FAChours, UPScapacity, electricRate, PUE, percITcooling, percChiller, percTower, percITcooling_kw, percChiller_kw, percTower_kw);
			var ECsave = evapCooledSavings(EChours, UPScapacity, electricRate, PUE, percITcooling, percChiller, percTower, percITcooling_kw, percChiller_kw, percTower_kw);
			
			//write to output
			tbox_FACwxhr.value = FAChours;
			tbox_ECwxhr.value = EChours;
			
			//format cost savings
			
			FACsavingsOutput = formatSavings(FACsave);
			ECsavingsOutput = formatSavings(ECsave);
			
			tbox_FACsavings.value = monetarySymbol + " " + FACsavingsOutput;	
			tbox_ECsavings.value = monetarySymbol + " " + ECsavingsOutput;
			
			/*
			tbox_FACsavings.value = monetarySymbol + " " + FACsave.toFixed(0);	
			tbox_ECsavings.value = monetarySymbol + " " + ECsave.toFixed(0);					
			*/
			
}

function formatRequest(loc, t_max_ineq, t_max, t_min_ineq, t_min, r_ineq, r, d_max_ineq, d_max, d_min_ineq, d_min, w_ineq, w)
{
	var datString = "";
	

	
	if(t_max==-999){tVal_max="";}else{tVal_max=t_max_ineq + t_max;}
	if(t_min==-999){tVal_min="";}else{tVal_min=t_min_ineq + t_min;}	
	if(r==-999){rVal="";}else{rVal=r_ineq + r;}	
	if(d_max==-999){dVal_max="";}else{dVal_max=d_max_ineq + d_max;}
	if(d_min==-999){dVal_min="";}else{dVal_min=d_min_ineq + d_min;}
	if(w==-999){wVal="";}else{wVal=w_ineq + w;}
	
	var datString = loc + "," + tVal_max + "," + rVal + "," + dVal_max + "," + wVal + "," + "0" + "," + tVal_min + "," + dVal_min;	// trailing comma removed 5/8/11 KD
	
	//alert(datString);
	
return datString;
}

function formatSavings(val)
{
	//fix to 2 decimal value
	var stringVal = val.toFixed(2);
	
	//grab the ".00" suffix
	var suffixStr = stringVal.substring(stringVal.length-3,3);
	
	var prefixLength = stringVal.length-3;
	var prefixStr = stringVal.substring(0, prefixLength);
	

	charArray = new Array(prefixLength);
	
	var placeCount = 1;
	var place = 0;
	for(i=0; i<prefixStr.length; i++)
	{
		var char = prefixStr.substring(prefixStr.length-i, prefixStr.length-(i+1));
		//alert(char);
		if(placeCount%3==0)
		{		
			if(placeCount<prefixStr.length-0)
			{
				charArray[place] = char;
				charArray[place+1] = ",";
				place=(place+2);
			}
			else
			{
				charArray[place] = char;	
				place=(place+1);				
			}
		}
		else
		{	
			charArray[place] = char;	
			
			place++;
		}

		placeCount++;
	}
	
	var newStr = "";
	for(q=charArray.length-1; q>=0; q--)
	{
		newStr = newStr+charArray[q];
	}
	
	//alert(newStr);

outString = newStr;
return outString;
}

