/**
 * @author mcmichae
 */

 
var useMetric = false;
var inch_to_cm_mult = 1;
var ft_to_m_mult = 1;
 
 
function selectFormFromControl(index)
{
	//alert(index);
	if(index == null)
	{
		var ourSelect = document.getElementById('ourMainSelect');
		var ourId = ourSelect.options[ourSelect.selectedIndex].id;
		index = parseInt(ourId);
	}
	//alert(index);
	
	ourOption = document.getElementById('defaultOption');
	if(ourOption != null)
		ourOption.parentNode.removeChild(ourOption);
	//alert(index);
	xajax_selectFormFromControl(index,useMetric);
}

function changeUnitType(unitType)
{
		if(unitType == 'MU') 
		{
			useMetric = true;
		}
		else
		{
			
			useMetric = false;
		}
		
		if(useMetric == true)
		{
			inch_to_cm_mult = 2.54;
			ft_to_m_mult = 0.3048;
		}
		else
		{
			inch_to_cm_mult = 1.0;
			ft_to_m_mult = 1.0;
			
		}
}

function fillInConstants(chickenId)
{

	var valArray = new Array();
	
	//alert('This is a ' + chickenId) ;
	
	var minWidth = [16.94,17.94,17.35];
	var maxWidth = [95.65,101.64,98.09];
	var minLength = [100,100,100];
	var maxLength = [534,534,534];
	var minHeight = [6.58,6.58,6.58];
	var maxHeight = [26.33,26.33,26.33];
	
	var ourChoice = 0;
	
	if(chickenId == 'PrimaMMB')
	{
		valArray[0] = Math.round(24 * inch_to_cm_mult  * 100)/100  ;
		valArray[1] = Math.round(22.34 * inch_to_cm_mult  * 100)/100;
		valArray[2] = Math.round(18 * inch_to_cm_mult  * 100)/100;
		valArray[3] = 'Prima MMB';
		valArray[4] = 8;
		valArray[5] = Math.round(67.02  * inch_to_cm_mult * inch_to_cm_mult * 100)/100;
		ourChoice = 0;
	}
	else if(chickenId == 'UltraMMB')
	{
		valArray[0] = Math.round(24  * inch_to_cm_mult  * 100)/100;
		valArray[1] = Math.round(25.34 * inch_to_cm_mult  * 100)/100;
		valArray[2] = Math.round(18 * inch_to_cm_mult  * 100)/100;
		valArray[3] = 'Ultra MMB';
		valArray[4] = 9;
		valArray[5] = Math.round(67.57 * inch_to_cm_mult * inch_to_cm_mult * 100)/100;
		ourChoice = 1;
	}
	else if(chickenId == 'Pullet')
	{
		valArray[0] = Math.round(30 * inch_to_cm_mult  * 100)/100;
		valArray[1] = Math.round(25.35 * inch_to_cm_mult  * 100)/100;
		valArray[2] = Math.round(16.24 * inch_to_cm_mult  * 100)/100;
		valArray[3] = 'Pullet MMB';
		valArray[4] = 19;
		valArray[5] = Math.round(40.03  * inch_to_cm_mult * inch_to_cm_mult * 100)/100;
		ourChoice = 2;
	}
	
	
	if (useMetric) 
	{
		document.getElementById('minHeight').innerHTML = parseInt((ft_to_m_mult * minHeight[ourChoice] * 100) + 1) / 100;
		document.getElementById('maxHeight').innerHTML = parseInt(ft_to_m_mult * maxHeight[ourChoice] * 100) / 100;
		
		document.getElementById('minLength').innerHTML = parseInt((ft_to_m_mult * minLength[ourChoice] * 100) + 1) / 100;
		document.getElementById('maxLength').innerHTML = parseInt(ft_to_m_mult * maxLength[ourChoice] * 100) / 100;
		
		document.getElementById('minWidth').innerHTML = parseInt((ft_to_m_mult * minWidth[ourChoice] * 100) + 1) / 100;
		document.getElementById('maxWidth').innerHTML = parseInt(ft_to_m_mult * maxWidth[ourChoice] * 100) / 100;
	}
	else
	{
		document.getElementById('minHeight').innerHTML =  minHeight[ourChoice];
		document.getElementById('maxHeight').innerHTML =  maxHeight[ourChoice];
	
		document.getElementById('minLength').innerHTML =  minLength[ourChoice];
		document.getElementById('maxLength').innerHTML =  maxLength[ourChoice];
	
		document.getElementById('minWidth').innerHTML =  minWidth[ourChoice];
		document.getElementById('maxWidth').innerHTML =  maxWidth[ourChoice];
		
	}
	document.getElementById(chickenId + 'ConstantCageWidth').innerHTML = valArray[0] ;
	document.getElementById(chickenId + 'ConstantCageDepth').innerHTML = valArray[1] ;
	document.getElementById(chickenId + 'ConstantCageHeight').innerHTML = valArray[2] ;
	document.getElementById(chickenId + 'ConstantCageStyle').innerHTML = valArray[3] ;
	document.getElementById(chickenId + 'ConstantBirdPerCage').innerHTML = valArray[4] ;
	document.getElementById(chickenId + 'ConstantSqrInchBird').innerHTML = valArray[5] ;
	
	
	
	
}



// thats right ... I named a variable chickenType - sweet ... Tom
function validateDimensions(bWidth,bLength,bHeight,chickenType)
{
	var chickenArray = ['primaMMB','ultraMMB','pullet'];
	var chickenKey;
	var minWidth = [16.94,17.94,17.35];
	var maxWidth = [95.65,101.64,98.09];
	var minLength = [100,100,100];
	var maxLength = [534,534,534];
	var minHeight = [6.58,6.58,6.58];
	var maxHeight = [26.33,26.33,26.33];
	
	var passValidation = true;
	
	//alert(bHeight + "");
	//bWidth = Math.round((bWidth/ft_to_m_mult) * 100) / 100;
	//bHeight = Math.round((bHeight/ft_to_m_mult) * 100) / 100;
	//bLength = Math.round((bLength/ft_to_m_mult)  * 100) / 100;	
	
	bWidth = bWidth/ft_to_m_mult;
	bHeight = bHeight/ft_to_m_mult;
	bLength = bLength/ft_to_m_mult;	
	
	
	//alert(bHeight + "");
	
	
	for(key in chickenArray)
	{
		if(chickenArray[key] == chickenType)
		{
			chickenKey = key;	
		}
	}
	

	
	//alert("This is chicken Key :: " + chickenKey);
	if (!((bWidth >= minWidth[chickenKey]) && (bWidth <= maxWidth[chickenKey]))) 
	{
		document.getElementById('WidthInput').style.border = 'solid thin red';
		document.getElementById('WidthInput').style.color = 'red';
		passValidation = false;
	}
	else 
	{
		document.getElementById('WidthInput').style.border = 'solid thin white';
		document.getElementById('WidthInput').style.color = 'black';
		
	}	
	if (!((bLength >= minLength[chickenKey]) && (bLength <= maxLength[chickenKey]))) 
	{
		document.getElementById('LengthInput').style.border = 'solid thin red';
		document.getElementById('LengthInput').style.color = 'red';
		passValidation = false;
	}
	else 
	{
		document.getElementById('LengthInput').style.border = 'solid thin white';
		document.getElementById('LengthInput').style.color = 'black';
		
	}
	if (!((bHeight >= minHeight[chickenKey]) && (bHeight <= maxHeight[chickenKey]))) 
	{
		document.getElementById('HeightInput').style.border = 'solid thin red';
		document.getElementById('HeightInput').style.color = 'red';
		passValidation = false;
	}
	else 
	{
		document.getElementById('HeightInput').style.border = 'solid thin white';
		document.getElementById('HeightInput').style.color = 'black';
		
	}
	
	if(passValidation)
		document.getElementById('errorDiv').innerHTML = '';
	else
		document.getElementById('errorDiv').innerHTML = 'Please correct values highlighted in red.';
	
	return(passValidation);
	
}





function PrimaMMBCalc()
{
	
	var bWidth = document.getElementById('WidthInput').value;
	var bLength = document.getElementById('LengthInput').value;
	var bHeight = document.getElementById('HeightInput').value;
	
	
	if(!validateDimensions(parseFloat(bWidth),parseFloat(bLength),parseFloat(bHeight),'primaMMB'))
	{
		//alert("Hit invalid check");
		return false;
	}
		

	
	
	if(useMetric)
	{
		bWidth = parseFloat(bWidth) / .3048;
		bHeight = parseFloat(bHeight) / .3048;
		bLength = parseFloat(bLength) / .3048;	
	}
	
	// calculated values
	var numRows;
	var numTiers;
	var rowLength;
	var aisleWidth;
	var numberOfCages;
	var totalBirds;
	var birdPerSqrInch;
	
	//constants
	var birdsPerCage = 8;
	var cageWidth = 24.00;
	var cageDepth = 22.34;
	var cageHeight = 18;
	
	//constraints
	var maxBirdPerSqrInch = 67.02;
	var maxAisleWidth=30;
	
	var rowArrayMin = new Array(16.94,24.16,31.38,38.60,45.82,53.04,60.26,67.48,74.70,81.92,89.14);
	var rowArrayMax = new Array(24.16,31.38,38.60,45.82,53.04,60.26,67.48,74.70,81.92,89.14,95.65);
	
	var tierArrayMin = new Array(6.58,8.46,10.33,12.21,14.08,16.96,18.83,20.71,22.58,24.46);
	var tierArrayMax = new Array(8.46,10.33,12.21,14.08,16.96,18.83,20.71,22.58,24.46,26.33);
	
	for (key in rowArrayMin) 
	{
		if(bWidth >= rowArrayMin[key] && (bWidth <= rowArrayMax[key]))
		{
			numRows = parseFloat(key)+2;
			break;
		}
		
	}

	for (key in tierArrayMin) 
	{
		if(bHeight >= tierArrayMin[key] && (bHeight <= tierArrayMax[key]))
		{
			numTiers = parseFloat(key)+2;
			break;
		}
		
	}
	
	rowLength = bLength - 30.00;
	aisleWidth = ((bWidth * 12.00) - (numRows * 56.64))/(numRows + 1);
	aisleWidth = (Math.round(aisleWidth * 100 * inch_to_cm_mult))/100;
	numberOfCages =  parseInt((((rowLength * 12.00)/cageWidth) * numTiers * 2) * numRows);
	totalBirds = numberOfCages * birdsPerCage;
	rowLength = (Math.round(rowLength * 100 * ft_to_m_mult))/100;
	
	document.getElementById('numRows').innerHTML=numRows;
	document.getElementById('numTiers').innerHTML=numTiers;
	if (useMetric == false) 
	{
		document.getElementById('rowLength').innerHTML = rowLength + ' feet';
		document.getElementById('aisleWidth').innerHTML = aisleWidth + ' inches';
	}
	else
	{
		document.getElementById('rowLength').innerHTML = rowLength + ' meters';
		document.getElementById('aisleWidth').innerHTML = aisleWidth  + ' cm';
		
	}
	document.getElementById('numberOfCages').innerHTML= "" + addCommas(numberOfCages);
	document.getElementById('totalBirds').innerHTML="" + addCommas(totalBirds);
	return true;
}


function UltraMMBCalc()
{
	
	var bWidth = document.getElementById('WidthInput').value;
	var bLength = document.getElementById('LengthInput').value;
	var bHeight = document.getElementById('HeightInput').value;
	
	if(!validateDimensions(parseFloat(bWidth),parseFloat(bLength),parseFloat(bHeight),'ultraMMB'))
	{
		//alert("Hit invalid check");
		return false;
	}

	
	if(useMetric)
	{
		bWidth = parseFloat(bWidth) / .3048;
		bHeight = parseFloat(bHeight) / .3048;
		bLength = parseFloat(bLength) / .3048;	
	}
	
	// calculated values
	var numRows;
	var numTiers;
	var rowLength;
	var aisleWidth;
	var numberOfCages;
	var totalBirds;
	var birdPerSqrInch;
	
	//constants
	var birdsPerCage = 9;
	var cageWidth = 24.00;
	var cageDepth = 25.34;
	var cageHeight = 18;
	
	//constraints
	var maxBirdPerSqrInch = 67.57;
	var maxAisleWidth=30;
	
	var rowArrayMin = new Array(17.94,25.66,33.38,41.10,48.82,56.54,64.26,71.98,79.70,87.42,95.14);
	var rowArrayMax = new Array(25.66,33.38,41.10,48.82,56.54,64.26,71.98,79.70,87.42,95.14,101.64);
	
	var tierArrayMin = new Array(6.58,8.46,10.33,12.21,14.08,16.96,18.83,20.71,22.58,24.46);
	var tierArrayMax = new Array(8.46,10.33,12.21,14.08,16.96,18.83,20.71,22.58,24.46,26.33);
	
	for (key in rowArrayMin) 
	{
		if(bWidth >= rowArrayMin[key] && (bWidth <= rowArrayMax[key]))
		{
			numRows = parseFloat(key)+2;
			break;
		}
		
	}

	for (key in tierArrayMin) 
	{
		if(bHeight >= tierArrayMin[key] && (bHeight <= tierArrayMax[key]))
		{
			numTiers =parseFloat(key)+2;
			break;
		}
		
	}
	
	rowLength = bLength - 30.00;
	aisleWidth = ((bWidth * 12.00) - (numRows * 62.64))/(numRows + 1);
	aisleWidth = (Math.round(aisleWidth * 100 * inch_to_cm_mult))/100;
	numberOfCages = parseInt((((rowLength * 12.00)/cageWidth) * numTiers * 2) * numRows);
	totalBirds = numberOfCages * birdsPerCage;
	rowLength = (Math.round(rowLength * 100 * ft_to_m_mult))/100;
	
	document.getElementById('numRows').innerHTML=numRows;
	document.getElementById('numTiers').innerHTML=numTiers;
	if (useMetric == false) 
	{
		document.getElementById('rowLength').innerHTML = rowLength + ' feet';
		document.getElementById('aisleWidth').innerHTML = aisleWidth + ' inches';
	}
	else
	{
		document.getElementById('rowLength').innerHTML = rowLength + ' meters';
		document.getElementById('aisleWidth').innerHTML = aisleWidth  + ' cm';
		
	}
	document.getElementById('numberOfCages').innerHTML="" + addCommas(numberOfCages);
	document.getElementById('totalBirds').innerHTML="" + addCommas(totalBirds);
	
	
	return(true);
	
}



function PulletCalc()
{
	
	
	var bWidth = document.getElementById('WidthInput').value;
	var bLength = document.getElementById('LengthInput').value;
	var bHeight = document.getElementById('HeightInput').value;
	
	if(!validateDimensions(parseFloat(bWidth),parseFloat(bLength),parseFloat(bHeight),'pullet'))
	{
		//alert("Hit invalid check");
		return false;
	}

	
	if(useMetric)
	{
		bWidth = bWidth / .3048;
		bHeight = bHeight / .3048;
		bLength = bLength / .3048;	
	}
	
	
	// calculated values
	var numRows;
	var numTiers;
	var rowLength;
	var aisleWidth;
	var numberOfCages;
	var totalBirds;
	var birdPerSqrInch;
	
	//constants
	var birdsPerCage = 19;
	var cageWidth = 30.00;
	var cageDepth = 25.34;
	var cageHeight = 16.24;
	
	//constraints
	var maxBirdPerSqrInch = 40.03;
	var maxAisleWidth=30;
	
	var rowArrayMin = new Array(17.35,24.77,32.30,39.62,47.05,54.47,61.89,69.32,76.74,84.17,91.59);
	var rowArrayMax = new Array(24.77,32.30,39.62,47.05,54.47,61.89,69.32,76.74,84.17,91.59,98.09);
	
	var tierArrayMin = new Array(6.58,8.46,10.33,12.21,14.08,16.96,18.83,20.71,22.58,24.46);
	var tierArrayMax = new Array(8.46,10.33,12.21,14.08,16.96,18.83,20.71,22.58,24.46,26.33);
	
	for (key in rowArrayMin) 
	{
		
		if (bWidth >= rowArrayMin[key] && (bWidth <= rowArrayMax[key])) 
		{
				numRows = parseFloat(key) + 2;
				break;
		}
		
	}

	for (key in tierArrayMin) 
	{
		if(bHeight >= tierArrayMin[key] && (bHeight <= tierArrayMax[key]))
		{
			numTiers = parseFloat(key)+2;
			break;
		}
		
	}
	
	rowLength = bLength - 30.00;
	aisleWidth = ((bWidth * 12.00) - (numRows * 59.09))/(numRows + 1);
	aisleWidth = (Math.round(aisleWidth * 100 * inch_to_cm_mult))/100;
	numberOfCages =  parseInt((((rowLength * 12.00)/cageWidth) * numTiers * 2) * numRows);
	totalBirds = numberOfCages * birdsPerCage;
	rowLength = (Math.round(rowLength * 100 * ft_to_m_mult))/100;
	
	
	//alert(" Row " + rowLength + " AisleWidth " + aisleWidth  + " TotalBirds " + totalBirds + " BirdPerSqrInch "  + birdPerSqrInch);
	document.getElementById('numRows').innerHTML="" + numRows;
	document.getElementById('numTiers').innerHTML="" + numTiers;
	if (useMetric == false) 
	{
		document.getElementById('rowLength').innerHTML = rowLength + ' feet';
		document.getElementById('aisleWidth').innerHTML = aisleWidth + ' inches';
	}
	else
	{
		document.getElementById('rowLength').innerHTML = rowLength  + ' meters';
		document.getElementById('aisleWidth').innerHTML = aisleWidth + ' cm';
		
	}
	document.getElementById('numberOfCages').innerHTML="" + addCommas(numberOfCages);
	document.getElementById('totalBirds').innerHTML="" + addCommas(totalBirds);
	
	
	return(true);
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}




