//=================================================================================================
//=== BEGIN: DETECT BROWSER																		===
//=== ----------------------------------------------------------------------------------------- ===
//=== detectBrowser()																			===
//=== returns the current user's browser														===
//=================================================================================================
	var currentBrowser
	
	function detectBrowser()
    {
    	isMac 	= (navigator.appVersion.indexOf("Mac")!=-1) ? true : false						 ;
    	NS4 	= (document.layers) ? true : false												 ;
    	IEmac 	= ((document.all)&&(isMac)) ? true : false										 ;
    	IE4plus = (document.all) ? true : false													 ;
    	IE4 	= ((document.all)&&(navigator.appVersion.indexOf("MSIE 4.")!=-1)) ? true : false ;
    	IE5 	= ((document.all)&&(navigator.appVersion.indexOf("MSIE 5.")!=-1)) ? true : false ;
    	IE6 	= ((document.all)&&(navigator.appVersion.indexOf("MSIE 6.")!=-1)) ? true : false ;
    	ver4 	= (NS4 || IE4plus) ? true : false												 ;
    	NS6 	= (!document.layers) && (navigator.userAgent.indexOf("Netscape")!=-1) ? true : false ;
        FireFox = navigator.userAgent.indexOf("Firefox") != -1 ? true : false ;
    	
    	IE5plus = IE5 || IE6 ;
    	IEMajor = 0			 ;
        
    	if (IE4plus)
    	{
    		var start = navigator.appVersion.indexOf("MSIE");
    		var end = navigator.appVersion.indexOf(".",start);
    		IEMajor = parseInt(navigator.appVersion.substring(start+5,end));
    		IE5plus = (IEMajor>=5) ? true : false;
    	}
    	
    	if ((IE4plus)||(IEmac)||(IE4)||(IE5)||(IE6))
    	{return "IE"}
    	else if (NS4)
    	{return "NS4"}
    	else if (NS6)
    	{return "NS6"}
        else if (FireFox)
        {return "FireFox"}
    }
		
	currentBrowser = detectBrowser() ;
//=================================================================================================
//=== END: DETECT BROWSER																		===
//=================================================================================================

function getLayer(layerID)
{
	layerObj = document.getElementById(layerID);
	
	if ((currentBrowser == "NS4")||(currentBrowser == "NS6"))
	{
		if (currentBrowser == "NS6")
		{layerObj = document.getElementById(layerID) ;}
		else
		{layerObj = document.layers[layerID] ;}
	}
	else if ((currentBrowser == "IE")||(currentBrowser == "FireFox"))
	{layerObj = document.getElementById(layerID) ;}
	
	return layerObj ;
}

function trimSpaces(stringToTrim)
{
    var newTrimmedString = "" ;
    var startPos         = 0  ;
    var endPos           = 0  ;
    
    if (stringToTrim!="")
    {
        for (startPosCounter=0;startPosCounter<=stringToTrim.length-1;startPosCounter++)
        {
            currentChar = stringToTrim.charAt(startPosCounter)
            
            if (currentChar!=" ")
            {
                startPos = startPosCounter ;
                break ;
            }
        }
        
        for (startPosCounter=stringToTrim.length-1;startPosCounter>=0;startPosCounter--)
        {
            currentChar = stringToTrim.charAt(startPosCounter)
            
            if (currentChar!=" ")
            {
                endPos = startPosCounter + 1 ;
                break ;
            }
        }
        
        newTrimmedString = stringToTrim.substring(startPos,endPos) ;
        return newTrimmedString ;
    }
    else
    {return stringToTrim ;}
}

function modeAction(formObj, targetMode)
{
    formObj.mode.value = targetMode ;
    formObj.submit() ;
}

function popUpWindow(targetURL, targetWindowName, targetWidth, targetHeight, customParameters, closeWindowFirst)
{
    var windowXPosition = 0 ;
    var windowYPosition = 0 ;
    var windowName		= "popUpWindow"
    var windowWidth		= 400 ;
    var windowHeight	= 400 ;
    var windowParams 	= "directories=no,status=no,scrollbars=yes,resizable=yes,menubar=yes" ;
    var newWindow		= "" ;
    
    if (!targetURL)
    {return false ;}
    else
    {
        //if there were any parsed option parameters then set the windows parameters to these
        if (targetWindowName)
        {windowName = targetWindowName ;}
        
        if (targetWidth)
        {windowWidth = targetWidth ;}
        
        if (targetHeight)
        {windowHeight = targetHeight ;}
        
        if (customParameters)
        {windowParams = customParameters ;}
        
        //set the new window with all the parameters and open the new window
        newWindow = window.open (targetURL, windowName, "toolbar=no,width=" + windowWidth + ",height=" + windowHeight + ",screenX=" + windowXPosition + ",screenY=" + windowYPosition + "," + windowParams) ;
        newWindow.focus() ;
    }
}


var activeNavID = "" ;
function loadPage(navID, targetLocation)
{
    if (activeNavID != "")
    {
        navObj = getLayer(activeNavID) ;
        
        if (navObj.className.indexOf("oneLine") > -1)
        {navObj.className = "oneLine" ;}
        else
        {navObj.className = "" ;}
    }
    
    SAPWorkSheetArray = new Array("1_overall_dwelling_dimensions", "2_ventilation_rate", "3a_appendix_k_thermal_bridging", "3_heat_losses_and_hlp", "4a_appendix_h_solar_water_heating", "4_water_heating_energy", "5a_appendix_l_energy_for_lighting", "5_internal_gains", "6_solar_gains", "7_mean_internal_temperature") ;
    for (var i=0;i<SAPWorkSheetArray.length;i++)
    {
        if (navID==SAPWorkSheetArray[i])
        {
            navID = "sap_worksheet" ;
            break ;
        }
    }
    
    navObj = getLayer(navID)
    if (navObj.className.indexOf("oneLine") > -1)
    {navObj.className = "active oneLine" ;}
    else
    {navObj.className = "active" ;}
    
    activeNavID      = navID ;
    window.frames["subWindow_iframe"].location = targetLocation ;
}

function isNumeric(stringToCheck)
{
    if (stringToCheck!="")
    {
        var validChars = "0123456789." ;
        var isNumber   = true ;
        var currentChar ;
        var numOfDecimals = 0 ;
        
        
        for (var i=0;i<stringToCheck.length&&isNumber==true;i++) 
        { 
            currentChar = stringToCheck.charAt(i); 
            if (validChars.indexOf(currentChar) == -1) 
            {isNumber = false ;}
            
            if (currentChar == ".")
            {numOfDecimals ++ ;}
        }
        
        if ((numOfDecimals > 1)||(stringToCheck == ".")) {isNumber = false ;}
        
        return isNumber ;
    }
    else
    {return false;}
}

function formatDecimals(numToCheck)
{
    var numToString = "" + numToCheck ;
    
    if (numToString.indexOf(".") > -1)
    {return parseFloat(numToCheck).toFixed(2) ;}
    else
    {return numToCheck;}
}

function checkDropdown(choice, detailOfError) {
    var error = "";
    if (choice == 0) {
       error = detailOfError;
    }    
return error;
}

function checkText(string, detailOfError)
{
	var error ="";
	if(string == ""){
		error = detailOfError;	
	}
	if(error!=""){
		return error;
	}
	return error;
}

function checkNumber(number, detailOfError)
{
	var error ="";
	if(number == "" || isNaN(parseInt(number)))
	{
		error = detailOfError;	
	}
	if(error!="")
	{
		return error;
	}
	return error;
}

function calculateAppendixLValues(ratioOfLowEnergy,totalArea)
{
    if ((isNumeric(ratioOfLowEnergy))&&(isNumeric(totalArea)))
    {
        correctionFactor          = 1 - (0.5 * ratioOfLowEnergy) ;
        annualEnergyUsed          = 9.3 * totalArea * ratioOfLowEnergy * correctionFactor ;
        reductionInLightingEnergy = 9.3 * totalArea * (1-ratioOfLowEnergy) * correctionFactor ;
        reductionInGains          = 0.15 * reductionInLightingEnergy ;
        
        tempArray = new Array(4) ;
        
        tempArray["correctionFactor"]          = correctionFactor ;
        tempArray["annualEnergyUsed"]          = annualEnergyUsed ;
        tempArray["reductionInLightingEnergy"] = reductionInLightingEnergy ;
        tempArray["reductionInGains"]          = reductionInGains ;
        
        return tempArray ;
    }
    else
    {return false ;}
}