// JavaScript Document
var hideAfter = 100 //milisecconds after the dropdown should be hidden.
var nTimeOut = null;
var curLayer = null;

function doChangeClass(obj){
	obj.className = obj.className.replace('Def','MO');
	if(obj.parent){
		document.getElementById(obj.parent).className = document.getElementById(obj.parent).className.replace('Def','MO');
	}
}
	

function doRestoreClass(obj){
	obj.className = obj.className.replace('MO','Def');
	if(obj.parent){
		document.getElementById(obj.parent).className = document.getElementById(obj.parent).className.replace('MO','Def');
	}
}

// drop down show hide.
function setTimer(){
	nTimeOut = setTimeout("doHideLinks()",hideAfter);
}

function resetTimer(){
	clearTimeout(nTimeOut);
}

function doShowLinks(layerName){
	if(document.getElementById(curLayer)){
		doHideLinks();
	}
	curLayer = layerName;
	if(document.getElementById(curLayer)){
		//document.getElementById(curLayer).style.display = 'block';
		MM_showHideLayers(curLayer,'','show');
	}
}

function doHideLinks(){
	//alert('hideIt');
	//document.getElementById(curLayer).style.display = 'none';
	MM_showHideLayers(curLayer,'','hide');
}

function calcNow(forType){
	switch(forType){
		case "slotted" : calcSlotted(); break;
		case "holed60deg" : calcHoled('noPitch'); break;
		case "holedDiffPitch" : calcHoled('extraPitch'); break;
		default : alert("ERROR Calculator Not Supported");
	}
}

function calcSlotted(){
	var b = parseFloat(document.calculator.slotWidth.value);
	var l = parseFloat(document.calculator.slotLength.value);
	var t = parseFloat(document.calculator.pitch.value);
	var m = parseFloat(document.calculator.spaceSlot.value);
	var lpm = parseFloat(document.calculator.expectedFlow.value);
	var ht = parseFloat(document.calculator.basketHeight.value);
	var id = parseFloat(document.calculator.basketID.value);
	var c = parseFloat(document.calculator.consistancy.value);
	
	var OA = ((b*l)/(t*(l+m)))*100;
	var AS = (id * ht * 3.14) / 1000000;
	var PV = ((lpm / (1000 * 60)) / (OA * AS)) * 100;
	var TPH = (((lpm * c) / 100) * 60 ) / 1000;
	var TPD = TPH * 24;
	
	document.calculator.openArea.value = format_number(OA,2);
	document.calculator.areaSq.value = format_number(AS,2);
	document.calculator.passingVelocity.value = format_number(PV,2);
	document.calculator.tph.value = format_number(TPH,2);
	document.calculator.tpd.value = format_number(TPD,2);
}

function calcHoled(holeType){
	var d = parseFloat(document.calculator.holeDiameter.value);
	var t = parseFloat(document.calculator.pitchT.value);
	var lpm = parseFloat(document.calculator.expectedFlow.value);
	var ht = parseFloat(document.calculator.basketHeight.value);
	var id = parseFloat(document.calculator.basketID.value);
	var c = parseFloat(document.calculator.consistancy.value);
	
	if(holeType == "extraPitch"){
		var t1 = parseFloat(document.calculator.pitchExtra.value);
		var OA = (d * d * 78.5)/(t * t1);
	}
	else{
		var OA = (d * d * 90.7)/(t * t);
	}
	
	var AS = (id * ht * 3.14) / 1000000;
	var PV = ((lpm / (1000 * 60)) / (AS * OA)) * 100;

	var TPH = (((lpm * c) / 100) * 60 ) / 1000;
	var TPD = TPH * 24;
	
	document.calculator.openArea.value = format_number(OA,2);
	document.calculator.areaSq.value = format_number(AS,2);
	document.calculator.passingVelocity.value = format_number(PV,2);
	document.calculator.tph.value = format_number(TPH,2);
	document.calculator.tpd.value = format_number(TPD,2);
}

function format_number(num,digits) 
{
	var rndNum;
  	if(num < 0){
		num=-num;
		rndNum=format_number2(num,digits);
		rndNum="-"+rndNum;
	}
  	else {
	  rndNum=format_number2(num,digits);
	}
	return rndNum;
}

function format_number2(pnumber,decimals) {
	var strNumber = new String(pnumber);
	var arrParts = strNumber.split('.');
	var intWholePart = parseInt(arrParts[0],10);
	var strResult = '';
	if (isNaN(intWholePart))
		intWholePart = '0';

	if(arrParts.length > 1)	{
		var decDecimalPart = new String(arrParts[1]);
		var i = 0;
		var intZeroCount = 0;
		while ( i < String(arrParts[1]).length ) {
			if( parseInt(String(arrParts[1]).charAt(i),10) == 0 ){
				intZeroCount += 1;
				i += 1;
			}
			else
				break;
		}
		
		decDecimalPart = parseInt(decDecimalPart,10)/Math.pow(10,parseInt(decDecimalPart.length-decimals-1)); 
		Math.round(decDecimalPart); 
		decDecimalPart = parseInt(decDecimalPart)/10; 
		decDecimalPart = Math.round(decDecimalPart); 
	
		//If the number was rounded up from 9 to 10, and it was for 1 'decimal' 
		//then we need to add 1 to the 'intWholePart' and set the decDecimalPart to 0. 
	
		if(decDecimalPart==Math.pow(10, parseInt(decimals))){ 
			intWholePart+=1; 
			decDecimalPart="0"; 
		} 
		var stringOfZeros = new String('');
		i=0;
		if( decDecimalPart > 0 ){
			while( i < intZeroCount){
				stringOfZeros += '0';
				i += 1;
			}
		}
	
		decDecimalPart = String(intWholePart) + "." + stringOfZeros + String(decDecimalPart); 
		var dot = decDecimalPart.indexOf('.');
		if(dot == -1){
			decDecimalPart += '.'; 
			dot = decDecimalPart.indexOf('.'); 
		} 
		var l=parseInt(dot)+parseInt(decimals); 
		while(decDecimalPart.length <= l) {
			decDecimalPart += '0'; 
		}
		strResult = decDecimalPart;
	}
	else {
		var dot; 
		var decDecimalPart = new String(intWholePart); 
		
		decDecimalPart += '.'; 
		dot = decDecimalPart.indexOf('.'); 
		var l=parseInt(dot)+parseInt(decimals); 
		while(decDecimalPart.length <= l) {
		  decDecimalPart += '0'; 
		}
		strResult = decDecimalPart;
	}
	return strResult;
}

function validateNonNumber (evt) {
  var keyCode = evt.which ? evt.which : evt.keyCode;
  alert(keyCode)
  return keyCode < '0'.charCodeAt() || keyCode > '9'.charCodeAt(); 
}

function validateNonChar (evt) {
	var keyCode = evt.which ? evt.which : evt.keyCode;
  	//alert('.'.charCodeAt());
	 if (keyCode == '.'.charCodeAt() || (keyCode >= '0'.charCodeAt() && keyCode <= '9'.charCodeAt()))
 		return keyCode;
	else{
		alert(keyCode);
		return false;
	}
}

function popUp(URL) {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=1,width=517,height=497,left=0,top=0');");
}