﻿// JScript File
//function GetElementById(id)
//{
//	if(typeof(id) == "object")
//		return id;		
//	return MM_findObj(id);
//}

function HideDiv(id)    {
    MM_findObj('step'+id).style.display = 'none'; 
    if ( parseInt(GetElementData('hPath').value) == 1)     
        SetElementValue('hPrevStep', id);
}

function ShowDiv(id) {
    MM_findObj('step'+id).style.display = '';
    SetElementValue('hCurrStep', id);
}

function NextPage(step) {
    var curstep = parseInt(GetElementData('hCurrStep'));
    var hType = parseInt(GetElementData('hPath'));
    if (hType == 1 ) {
        DisplayDiv(curstep + 1)
        ShowDiv(curstep + 1);
        if (curstep > 0)
            HideDiv(curstep);        
    } else if (hType == 2) {
        if (!step || typeof(step)=="undefined") {
            if (curstep == 4) {
                DisplayDiv(curstep + 1)
                ShowDiv(curstep + 1);
                HideDiv(curstep); 
            } else if(curstep == 5) {
                DisplayDiv(2)
                ShowDiv(2);
                HideDiv(curstep);
                SetElementValue('hPrevStep', curstep)
            } else if(curstep == 2) {
                DisplayDiv(3)
                ShowDiv(3);
                HideDiv(curstep);
            }
        } else {
            DisplayDiv(step)
            ShowDiv(step);
            HideDiv(curstep);
            SetElementValue('hPrevStep', curstep);
        }
    }
    
}

function PrevPage(step) {
    var curstep = parseInt(GetElementData('hCurrStep'));
    var hType = parseInt(GetElementData('hPath'));
    var prev = parseInt(GetElementData('hPrevStep'));
    if (hType == 1 ) {
        ShowDiv(curstep - 1);
        HideDiv(curstep);        
    } else if (hType == 2) {
        if (!step || typeof(step)=="undefined") {
            if (curstep == 3) {
                ShowDiv(curstep - 1);
                HideDiv(curstep); 
            } else if (curstep == 2) {
                ShowDiv(prev);
                HideDiv(curstep); 
            } else if (curstep == 5) {
                ShowDiv(4);
                HideDiv(curstep); 
            }
        } else {
            DisplayDiv(step)
            ShowDiv(step);
            HideDiv(curstep);
        }
    }
}

function SortModels(me)
{
    var curstep = parseInt(GetElementData('hCurrStep'));
    callback(AJAX.API.AeronexEvent(isBluebox(), 'step' + curstep, GetFormData() ));
}

    
function DisplayDiv(dir)    {
    var curstep = parseInt(GetElementData('hCurrStep'));
    var newData = false;
    var result;
    var nextstep = "";
    var formData = GetFormData();
    nextstep = dir;    
    
    
    var callData = true;
    
    if (dir < curstep && (curstep != 4 || curstep != 5))
        callData = false;    
    
    //if(dir > curstep)
    if (callData = true)
    {
        callback(AJAX.API.AeronexEvent(isBluebox(), 'step' + nextstep, formData));
//        newData = true;    
    } /*else  {
        HideDiv(curstep);
        ShowDiv(dir);       
    }*/
//    if(curstep > 0 && curstep != dir)
//        HideDiv(curstep);
//    ShowDiv(dir);
    
//    if (newData)
//        pushData(dir, result);
}


function contactUsCheck()   {
    var query = window.location.search.substring(1);
    var vars = query.split("&"); 
    var xmlRequest = "<root>";
    var boolFlag;
    
    try {
        boolFlag = 0;
        for (var i=0;i<vars.length;i++) {
            var pair = vars[i].split("=");
            if (pair[0] == "model") {
                xmlRequest += '<v id="hSelectModel">' + pair[1] + '</v>';
                boolFlag = 1;
            } else if (pair[0] == "options") {
                if (pair[1].indexOf("|") > 0) {
                    var optionList = pair[1].split("|");
                    for(var i = 0; i < optionList.length; i++) {
                        xmlRequest += '<v id="chk_Link">chk_' + optionList[i] + '</v>';
                    }
                } else {
                    xmlRequest += '<v id="chk_Link">chk_' + pair[1] + '</v>';
                }
                boolFlag = 1;
            }
        }
        
        xmlRequest += "</root>";
        //if (boolFlag == 0 || typeof(boolFlat)=="undefined") {
        if (boolFlag > 0) {
            SetElementValue('aeronexForm', 1);
            callback(AJAX.API.AeronexEvent(isBluebox(), 'modelSummary', xmlRequest));
        } else {
            SetElementValue('aeronexForm', 0);
        }
    } catch(e) {alert(e.message);}
}



    function addLoadEvent(func) {
      var oldonload = window.onload;
      if (typeof window.onload != 'function') 
        window.onload = func;
      else 
      {
        window.onload = function() 
        {
          if (oldonload) 
            oldonload();
          func();
        }
      }
    }

    function callback(res)  {
        try {
            var x = res.value;
            processAjaxResponse(x);
        } catch(e){alert('error in callback ' + e.message);}
    }
       

    function LoadEvent()    {
        try {
            AJAX.API.AeronexEvent(isBluebox(), "pageload", null, callback);
        } catch(e){alert(e.message);}
    }
    
    function LoadMenu() {
        try {
            AJAX.API.AeronexEvent(isBluebox(), "prodpage", null, callback);
        } catch(e){alert(e.message);}
    }
    
    
    function aeronexForm()  {
        //AJAX.API.AeronexEvent(isBluebox(), "buildcontactlink", null, callback);
        var formData = GetFormData();
        //window.location = "http://localhost/EntegrisSite/FormTest.aspx?model=8200&options=8155|8163";
        callback(AJAX.API.AeronexEvent(isBluebox(), "buildcontactlink", formData));
    }
    
    
    function RedirectToPage(val) {
        
            var sufVal;
            //sufVal = "http://localhost" + val
            sufVal = val;
            try {                
                var str = MM_findObj('hContantForm').innerHTML
                str = str.replace("&amp;", "&");     
                if (isBluebox()) {
                    sufVal += "&"
                } else {
                    if (str != "") {
                        sufVal += "?";
                    }
                }    
                if (str != "") {
                    sufVal += str;                
                }                      
            
                if (MM_findObj('localComputer').value == "1") {
                    sufVal = "http://localhost/EntegrisSite/FormTest.aspx?" + str + "&gentype=bluebox";
                }
                
            } catch(e){} 
            
            //alert("redirect URL: " + sufVal);
            window.location = sufVal;
            
        
    }
    
    function backtoModel()  {
        try {
            //alert("Back To Model clicked.");
            callback(AJAX.API.AeronexEvent(isBluebox(), "picknewmodel", GetFormData()));
        } catch(e){alert(e.message);}
    }
    
    
    function pickModelItem()    {
        if (MM_findObj("ModelList").value.length == 0) {
            alert("Must select a model.");
        } else {
            //alert("Model Itemversion id: " + MM_findObj("ModelList").value);
            SetElementValue('hSelectModel', MM_findObj("ModelList").value);
            StartCalculator("model");
           //alert(MM_findObj('txtCO').value);
        }
    }




 
function selectModel(modelItemv) {
    //alert(modelItemv.id);
    //
    SetElementValue('hSelectModel', modelItemv.id);
    //DisplayDiv(2);
    NextPage();
    
}



function formClear() {
    MM_findObj('cboCO').selectedIndex = 0;
    MM_findObj('cboCO2').selectedIndex = 0;
    MM_findObj('cboH2').selectedIndex = 0;
    MM_findObj('cboH2O').selectedIndex = 0;
    MM_findObj('cboNonMethane').selectedIndex = 0;
    MM_findObj('cboO2').selectedIndex = 0;
    MM_findObj('cboOutCO').selectedIndex = 0;
    MM_findObj('cboOutCO2').selectedIndex = 0;
    MM_findObj('cboOutH2O').selectedIndex = 0;
    MM_findObj('cboOutNonMethane').selectedIndex = 0;
    MM_findObj('cboOutO2').selectedIndex = 0;
    MM_findObj('cboOutH2').selectedIndex = 0;
    
    MM_findObj('txtCO').value = "";
    MM_findObj('txtCO2').value = "";
    MM_findObj('txtH2O').value = "";
    MM_findObj('txtNonMethane').value = "";
    MM_findObj('txtO2').value = "";
    MM_findObj('txtH2').value = "";
    
}



function selectOptions()    {

}


function Complete() {
    alert("done!");
}


function ShowHideArray(ar, hide)
{
    var x;
    var o;
    var l = ar.length;
    
    for(x=0; x < l; ++x)
    {
        ShowHideElement(ar[x], hide);


    }
}
    

function ShowHideElement(obj, hide)
{
    if (hide==true) 
    {
        obj.style.visibility='hidden';
    } else 
    {
        obj.style.visibility='visible';
        obj.disabled = false;
    }
    
    var nodes = Ext.DomQuery.select('//select', obj);

    if(nodes)
    {
        for(var i = 0; i < nodes.length; i++)
            ShowHideElement(nodes[i], hide);
    }
}


function DisplayFields(qString) 
{
    var arrString = qString.split("~~");
    var _obj;
    var _o;
    var x;
    var hide;
    
    try 
    {
        for (var i = 0; i < arrString.length; i++) 
        {
            var arrSingle = arrString[i].split("|");   
            if (arrSingle[0] != "r") 
            {
                _o = MM_findObj(arrSingle[0]);
                if(!_o) continue;

                try
                {
                    hide = (arrSingle[1] == 'false');
                    l = _o.length;
                    if(!l || typeof(l)=="undefined")
                        l = 1;
                } catch(e) {l=1;}
                
                if(l==1 )
                    ShowHideElement(_o, hide);
                else
                    ShowHideArray(_o, hide);
            }
        }
    } catch(e){}
}



function DisplayFieldsOld(qString) {
    var arrString = qString.split("~~");
    var _obj;
    
    try {
        for (var i = 0; i < arrString.length; i++) {
            //alert(arrString[i]);
            var arrSingle = arrString[i].split("|");   
            if (arrSingle[0] != "r") {
                if (arrSingle[1] == 'true') {
                    _obj = MM_findObj(arrSingle[0]);
                    _obj.disabled = false;
                } else {
                    _obj = MM_findObj(arrSingle[0]);
                    _obj.disabled = true;
                }
            }
        }
    } catch(e){/*alert("Display fields Error: " + e.message);*/}
}


function pushData (divId, data) {
    //GetElementByID('step'+id).innerHTML = data;
    var oDiv = document.getElementById('step' + divId);
    oDiv.innerHTML = data;
}



function GasChange(item) {
    try {
        MM_findObj("divMessage").innerHTML = "";
        var val = item.value;
        val = "<root><v id=\"" + item.id + "\">" + item.value + "</v></root>";
        formClear();        // JFranz
        //AJAX.API.AeronexEvent(isBluebox(), "gaschange", val, callback);            
        callback(AJAX.API.AeronexEvent(isBluebox(), "gaschange", val));
    } catch(e){alert(e.message);}
}  


function FormComboBoxSelect(item) {
    try {
        MM_findObj("divMessage").innerHTML = "";
        var itemName = item.id;
        var val = "<root>";
        var eventName = "";
        
        val += "<v id=\"" + item.id + "\">" + item.value + "</v>";
        val += "<v id=\"cbogas\">" + MM_findObj("cboGas").value + "</v>";
                
        if (itemName == "cboMaxOp") {
            eventName = "maxop";
        }
        else if (itemName == "cboMaxFlow")  {
            eventName = "flowrate";
            val += "<v id=\"cboMaxOp\">" + MM_findObj("cboMaxOp").value + "</v>";
        }
        
        val += "</root>";
            
        if (eventName != "") {
            callback(AJAX.API.AeronexEvent(isBluebox(), eventName, val));
        }
    }  catch(e){alert(e.message);}
}


function ResetForm()    {
    try {      
        MM_findObj("divMessage").innerHTML = "";  
        var val = "";
        callback(AJAX.API.AeronexEvent(isBluebox(), "clearform", val));
        var _obj = MM_findObj("cboGas");
        _obj.options[0].selected = true;
    } catch(e){alert(e.message);}
}    
    
function StartCalculator(varStep)  {
    try {
        
        var oDiv = MM_findObj("divMessage");
        
        oDiv.innerHTML = "";
        
        if (varStep == "model") {
            var frmData = GetFormData();
            var val = "<div class=\"PopUpContainer\"><div class=\"PopUpContainerPadding\"><div id=\"step1\"></div><div id=\"step2\"></div><div id=\"step3\"></div><div id=\"step4\"></div><div id=\"step5\"></div></div></div>";
            APPopup(val);
            SetElementValue('hPath', 2);
            SetElementValue('hCurrStep', 4);
            DisplayDiv(4);
        } else {  
            if (MM_findObj("cboGas").value == "" ||  MM_findObj("cboMaxOp").value == "" || MM_findObj("cboMaxFlow").value == "" || MM_findObj("txtHourDay").value == "" || MM_findObj("txtNominalFlow").value == "") {
                oDiv.innerHTML = "Must complete fields before starting."
            } else {
                var iMaxFlow = parseInt(MM_findObj("cboMaxFlow").value);
                var iNomFlow = parseFloat(MM_findObj("txtNominalFlow").value);
                
                
                // Max flow is in slm measurement.  Must converit if different.
                // Equation is as follows: (1 Nm3hr) = (34.9 scfh) = (15.5 slpm)
                //var oRd2 = MM_findObj("txtNominalFlow2").id;
                if (MM_findObj("rdNominalFlow2").checked == "checked") {
                    iNomFlow = iNomFlow / 34.9;                
                }else if (MM_findObj("rdNominalFlow3").checked == "checked") {
                    iNomFlow = iNomFlow / 15.5;
                }
                
                if (iNomFlow > iMaxFlow) {
                    oDiv.innerHTML = "Question 5 cannot have a value larger than Question 3.";
                } else {
                    var frmData = GetFormData();
                    var val = "<div class=\"PopUpContainer\"><div class=\"PopUpContainerPadding\"><div id=\"step1\"></div><div id=\"step2\"></div><div id=\"step3\"></div><div id=\"step4\"></div><div id=\"step5\"></div></div></div>";
                    APPopup(val);
                    if (varStep == "model") {
                        SetElementValue('hPath', 2);
                        SetElementValue('hCurrStep', 4);
                        DisplayDiv(4);
                    } else {
                        SetElementValue('hPath', 1);
                        SetElementValue('hCurrStep', 1);
                        DisplayDiv(1);
                    }
                }
            }
        }
    } catch(e){alert(e.message);} 
}    


/**********
* Only allow numbers
***********/
function KeyPressOnlyNumbers(e)
{
	var key = window.event ? e.keyCode : e.which;
	var keychar = String.fromCharCode(key);
	reg = /\d/;
	return reg.test(keychar);
}



/**********************************************************************************************************
 <summary>
	GetFormData function returns data so that it can be posted via AJAX. Data posted via AJAX can
	be accessed from the Request.Form object on the server just like you normally would.
 </summary>

 <returns>string formatted call to AJAX API (name=value&name=value)</returns>
*********************************************************************************************************/
//function GetFormData(formnum)
//{
//	var sReturn='';
//	var objName='';
//	var objValue='';
//	var el;
//	var i;
//	var s;
//	
//	if(!formnum || typeof(formnum)=="undefined")
//		formnum = 0;
//		
//	var elBase=document.forms[formnum].elements;
//	var elLen =elBase.length;	
//	var aReturn =new Array();
//	 
//	try
//	{
//	aReturn.push('<root>');
//		for(i=0;i<elLen;i++)
//		{
//			el = elBase[i];		
//			
//			objName = GetElementName(el);	
//			objValue = '';
//			

//			//exclude all .NET native controls, buttons and images
//			if (objName.length>0 
//					&& objName!='__VIEWSTATE' && objName!='__EVENTTARGET' && objName!='__EVENTARGUMENT' && objName!='\r\n__VIEWSTATE'
//					&& el.type!='submit' && el.type!='reset' && el.type!='image' && el.type!='button')
//			{
//				if(el.type == 'radio' && el.checked == false)
//					continue;

//				// Exclude disabled controls, to be consistent with standard HTML form posts and to
//				// eliminate data for controls that aren't likely needed.
//				if (el.isDisabled)  // Note: isDisabled will be true if the control or a parent element is disabled
//					continue;

//				objValue = GetElementData(el);

//				aReturn.push('<' + objName + '>' + objValue + '</' + objName + '>'); 
//			}
//		}
//			aReturn.push('</root>');

//	}catch(e){alert('Error Getting Form Data:' + e.message);} 

//	sReturn = aReturn.join('');

//	if (sReturn.charAt(sReturn.length-1)=='&')
//		sReturn = sReturn.substr(0, sReturn.length-1);
//	
//	return sReturn;
//}



//function GetElementData(el)
//{

//	if(typeof(el) == "string")
//		el = GetElementById(el);

//	if(!el)
//		return null;
//		
//	var sReturn = null;
//	switch(el.type)
//	{
//		case 'radio':
//			sReturn = '0';
//			if(el.checked)
//				sReturn = el.value;
//			break;

//		case 'checkbox':
//			sReturn = '0';
//			if (el.checked)
//			{
//				sReturn = '1';
//				
//				// FIX: Check to see if a value exists for each checkbox.
//				// If not 0 or blank, then return the value instead of "1"
//				// for items checked.
//				if(el.value && el.value != "0" && el.value != "")
//					sReturn = el.value;
//			}
//			break;
//			
//		case 'text':
//		case 'textarea':
//		case 'password':
//		case 'hidden':
//		case 'select-one':
//			sReturn = el.value;
//			break;
//		case 'select-multiple':
//			var aReturn = new Array();
//			var elLen = el.length;
//			var opt = el.options;
//			for (i=0;i<elLen;i++)
//			{
//				if (opt[i].selected)
//				{
//					aReturn.push(opt[i].value + ',');
//				}
//			}
//			
//			sReturn = aReturn.join('');
//			if (sReturn!=null && sReturn.charAt(sReturn.length-1)==',')
//				sReturn = sReturn.substr(0, sReturn.length-1);
//			break;
//	}
//	
//	if (typeof(sReturn)=='undefined')
//		return null;

//	return escape(sReturn).replace(/\+/g,'%2B');
//}




//function processAjaxResponse(xml)	// xml should be a XML Dom object
//{
////	var _xml = null;
//	var _node;
//	var _rootnodename = 'APAjax/Obj';
//	var _name = '';
//	var _type = '';
//	var _value = '';
//	var _obj;
//	var _errmsg = '';
//	var _infomsg = '';

//	n._nodes = Ext.DomQuery.select('APAjax/Obj')

//	for(i = 0; i < _nodes.length; i++)
//	{
//		_name = _nodes[i].getAttribute('name');
//		_value = _nodes[i].text;
//		
//		switch(_name)
//		{
//			case "jscall":
//				try
//				{
//					eval(_value);
//				}
//				catch(e)
//				{
//					if(_errmsg != "")
//						_errmsg += "<br>";
//					_errmsg += 'Error executing script: ' + _value + '\n' + e.message;
//				}
//				break;


//			case "jsfile":
//				try
//				{
//					_obj = document.createElement('script');
//					_obj.type = 'text/javascript';
//					_obj.src = _value;
//					document.body.appendChild(_obj);
//				}
//				catch(e)
//				{
//					if(_errmsg != "")
//						_errmsg += "<br>";
//					_errmsg += 'Error registering javascript file: ' + _value + '\n' + e.message;
//				}
//				break;


//			case "showerror":
//				if(_errmsg != "")
//					_errmsg += "<br>";
//				_errmsg += _value;
//				break;

//			case "showmsg":
//				if(_infomsg != "")
//					_infomsg += "<br>";
//				_infomsg += _value;
//				break;

//			case "close":
//				try
//				{
//					if (_infomsg != "")
//					{
//						ShowMessage(_infomsg);
//						_infomsg = "";
//					}

//					CloseForm();
//				}
//				catch(e){}

//				break;

//			default:
//				try
//				{
//					_type = _nodes[i].getAttribute('type');
//					
//					//_obj = document.getElementById(_name);
//					_obj = MM_findObj(_name);
//					if (_obj && _type=='value')
//					{
//						_obj.value = _value;
//					}
//					else if (_obj && _type=='obj')
//					{
//						if (!_value)
//							_obj.innerHTML = '';
//						else
//						{
//							try
//							{
//								_obj.outerHTML = _value;
//							}
//							catch(ex)
//							{
//								_obj.innerHTML = _value;
//							}
//						}
//					}
//				}
//				catch(e)
//				{
//					if(_errmsg != "")
//						_errmsg += "<br>";
//					_errmsg += 'Error setting/replacing: ' + _name + '\nwith: ' + _value + '\n' + e.message;
//				}
//				break;
//		}
//	}

//	if(_errmsg != "")
//		ShowErrorPopup(_errmsg);

//	if (_infomsg != "")
//		ShowMessage(_infomsg);
//}

