



// run on page load

var bExtraPreLoadCommands = false;
function RunOnLoad()
{
	FixExternalLinks();
	standardistaTableSortingInit();	
	//preloadimages();

	// look for the bExtraOnLoadCommands flag and run extra functions if they are present
	if (bExtraPreLoadCommands)
	{
		ExtraOnLoadCommands();
	}
}




// product image & tab functions

function SwitchImage(sImgID, sNewImgName)
{
	var oImg = $$$(sImgID);
	oImg.src = sNewImgName;
}

function SwitchProdImage(sNewImgNameSnippet)
{
	SwitchImage("prodimgfile", sNewImgNameSnippet);
}

function SwitchTab(sTabName)
{
	var oContainer = $$$('prodtabs');
	var arrTabs = getElementsByClassName(oContainer, '*', 'prodtab');
	var arrContentBoxes = getElementsByClassName(oContainer, '*', 'prodtabcontent');
	var oClickedTab = $$$("tab" + sTabName);
	var oClickedContentBox = $$$("content" + sTabName);
	
	for (var i=0; i<arrContentBoxes.length; i++)
	{
		addClassName(arrContentBoxes[i], "hidden");
	}
	removeClassName(oClickedContentBox, "hidden");

	for (var i=0; i<arrTabs.length; i++)
	{
		removeClassName(arrTabs[i], "tabon");
	}
	addClassName(oClickedTab, "tabon");
	oClickedTab.blur(); // remove dotted focus outline in IE
}

function SwitchSpecTable(iTableID)
{
	var oContainer = $$$("contentSpecs");
	var arrTables = getElementsByClassName(oContainer, "*", "specTable");
	
	for (var i=0; i<arrTables.length; i++)
	{
		addClassName(arrTables[i], "hidden");
	}
	
	removeClassName($$$(iTableID), "hidden");
}




// calendar toggle functions

function toggleCalendar(iCalID)
{
	var oSymbol = $$$('calendarToggleSymbol' + iCalID);
	var oBox = $$$('cal' + iCalID);
	var strCurrentClass = oBox.className;
	if(!new RegExp("hidden", "i").test(strCurrentClass))
	{
		removeClassName(oBox, "shown");
		addClassName(oBox, "hidden");
		oSymbol.innerHTML = '[+]';
	}
	else
	{
		removeClassName(oBox, "hidden");
		addClassName(oBox, "shown");
		oSymbol.innerHTML = '[&ndash;]';
	}
}




// library toggle functions

function loadLibraryContent(sLibraryItemID)
{
	var oContainer = $$$('libraryContentBox');
	var arrDivs = getElementsByClassName(oContainer, '*', 'librarycontentdiv');
	
	for (var i=0; i<arrDivs.length; i++)
	{
		addClassName(arrDivs[i], 'hidden');
	}
	
	removeClassName($$$('libraryContentBox' + sLibraryItemID), 'hidden');
}

// tradeshow toggle functions

function loadTradeShowContent(tradeShowID)
{
	var oContainer = $$$('tradeShowContentBox');
	var arrDivs = getElementsByClassName(oContainer, '*', 'tradeshowcontentdiv');
	
	for (var i=0; i<arrDivs.length; i++)
	{
		addClassName(arrDivs[i], 'hidden');
	}
	
	removeClassName($$$('tradeShowContentBox' + tradeShowID), 'hidden');
}




// calculator validators

function validateMonthlyPaymentCalc()
{
	var iMINCOST = 3001;
	var iMAXCOST = 499999;
	
	var bReturnVal = false;
	var oFieldCost = $$$("EquipmentCost");
	var valFieldCost = oFieldCost.value;
		
	if ( isInteger(valFieldCost) && isIntegerWithinMinMax(valFieldCost, iMINCOST, iMAXCOST) )
	{
		bReturnVal = true;
	}
	
	if (bReturnVal == false)
	{
		alert("Please enter valid data into the Payment Calculator and try again. The Equipment Cost field must contain an integer between " + iMINCOST + " and " + iMAXCOST + ".");
	}
	
	return(bReturnVal);
}

function validateBreakEvenCalc()
{
	var iMINCOST = 3001;
	var iMAXCOST = 499999;
	var iMINUPRICE = 1;
	var iMAXUPRICE = 99999999;
		
	var bReturnVal = false;
	var oFieldCost = $$$("ROIEquipmentCost");
	var valFieldCost = oFieldCost.value;
	var oFieldUnitPrice = $$$("ROIPricePerUnit");
	var valFieldUnitPrice = oFieldUnitPrice.value;
	
	if ( isInteger(valFieldCost) && isIntegerWithinMinMax(valFieldCost, iMINCOST, iMAXCOST) && isInteger(valFieldUnitPrice) && isIntegerWithinMinMax(valFieldUnitPrice, iMINUPRICE, iMAXUPRICE) )
	{
		bReturnVal = true;
	}	

	if (bReturnVal == false)
	{
		alert("Please enter valid data into the Break Even Calculator and try again. The Equipment Cost field must contain an integer between " + iMINCOST + " and " + iMAXCOST + ". The Price Per Unit field must contain an integer between " + iMINUPRICE + " and " + iMAXUPRICE + ".");
	}
		
	return(bReturnVal);
}




// utility functions

function $$$(strId)
{
	return document.getElementById(strId);
}

function getElementsByClassName(oElm, strTagName, strClassName)
{
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];		
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}	
	}
	return (arrReturnElements)
}

function addClassName(oElm, strClassName)
{
	var strCurrentClass = oElm.className;
	if(!new RegExp(strClassName, "i").test(strCurrentClass)){
		oElm.className = strCurrentClass + ((strCurrentClass.length > 0)? " " : "") + strClassName;
	}
}

function removeClassName(oElm, strClassName)
{
	var oClassToRemove = new RegExp((strClassName + "\s?"), "i");
	oElm.className = oElm.className.replace(oClassToRemove, "").replace(/^\s?|\s?$/g, "");
}

function isInteger(sText)
{
	var ValidChars = "0123456789";
	var IsNumber = true;
	var Char;
	
	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
			IsNumber = false;
		}
	}
	return IsNumber;
}

function isIntegerWithinMinMax(iInput, iMin, iMax)
{
	var bReturnVal = true;

	if (iInput < iMin)
	{
		bReturnVal = false;
	}

	if (iInput > iMax)
	{
		bReturnVal = false;
	}

	return bReturnVal;
}

 

