﻿
function enact(tab)
{
    try
    {
        var p = tab.parentNode;
        var els = p.getElementsByTagName('li');
        for(i=0;i<els.length;i++)
        {
          els[i].id = '';
        }
        tab.id = 'current';
        var responseOutput = document.getElementById("aoscatalogsearch");
        responseOutput.innerHTML ="";
        document.getElementById("stocknumber").value= "";
        document.getElementById('aosbreadcrumb').innerHTML = "";
        document.getElementById('hdn_querystring').value = "";
        document.getElementById('hdn_breadcrumborder').value = "";
        aosCatalogFilterRequest(tab.getElementsByTagName("a")[0].id,document.getElementById('hdn_querystring').value,"0");
    }
    catch(err)
    {
        
    }
}

function createXHR()
{
   try { return new XMLHttpRequest(); } catch(e) {}
   try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch (e) {}
   try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch (e) {}
   try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
   try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
   
   alert("XMLHttpRequest not supported");   
   return null;
}

function aoscatalogsearchcomponent()
{
    try
    {
        var customer_id = document.getElementById("hdn_custno").value;
        var customer_session = document.getElementById("hdn_sessionid").value;
        
        var xhr = createXHR();
        if (xhr)
        {
            xhr.open("GET","http://www.aosmithmotors.com/AOSECatalog/Catalog/CatalogFilterPageLet.aspx?source=tabrequest&customer_id=" + customer_id + "&customer_session=" + customer_session,true);
            xhr.onreadystatechange = function(){handlecatalogsearchcomponent(xhr);};
            xhr.send(null);
        }
    }
    catch(err)
    {
        
    }
}

function handlecatalogsearchcomponent(xhr)
{
    try
    {
        var responseOutput = document.getElementById("aoscatalogsearchcomponent");    
        if (xhr.readyState == 4  && xhr.status == 200)
        {
         var parsedResponse = xhr.responseText;
         responseOutput.innerHTML = parsedResponse;
         aosCatalogFilterRequest("AC",document.getElementById('hdn_querystring').value,"0");
        }
        else
        {
         responseOutput.innerHTML="Loading...<img src='http://www.aosmithmotors.com/AOSECatalog/images/AjaxLoading.gif' />";
        }  
    }
    catch(err)
    {
        
    }
}

function aosCatalogFilterRequest(prodtype,querystring,controlno)
{
    try
    {
        var customer_id = document.getElementById("hdn_custno").value;
        var customer_session = document.getElementById("hdn_sessionid").value;
        
        var xhr = createXHR();
        if (xhr)
        {
            xhr.open("GET","http://www.aosmithmotors.com/AOSECatalog/Catalog/CatalogFilterPageLet.aspx?source=typerequest&querystring=" + escape(querystring) + "&prodtype=" + prodtype + "&controlno=" + controlno + "&customer_id=" + customer_id + "&customer_session=" + customer_session,true);
            xhr.onreadystatechange = function(){handleFilterResponse(xhr);};
            xhr.send(null);
        }
    }
    catch(err)
    {
        
    }
}

function handleFilterResponse(xhr)
{
    try
    {
        var responseOutput = document.getElementById("aoscatalogfilter");   
        if (xhr.readyState == 4  && xhr.status == 200)
        {
            var parsedResponse = xhr.responseText;
            responseOutput.innerHTML = parsedResponse;
        }
        else
        {
            responseOutput.innerHTML="Loading...<img src='http://www.aosmithmotors.com/AOSECatalog/images/AjaxLoading.gif' />";
        }
    }
    catch(err)
    {
        
    }
}

function aosCatalogFilterSubmit(prodtype,sorting,column,PageNumber)
{
    try
    {
        var xhr = createXHR();
        if (xhr)
        {
            var Records = document.getElementById("RecordSelect").value;
            var querystring = document.getElementById('hdn_querystring').value;
            var customer_id = document.getElementById("hdn_custno").value;
            var customer_session = document.getElementById("hdn_sessionid").value;
            
            var stocknumber = "";
            document.getElementById("aoscatalogsearch").innerHTML="";
            toggleDisabled(document.getElementById("aoscatalogsearchcomponent"));
            toggleDisabled(document.getElementById("aoscatalogsearch"));
            
            if (prodtype == "PA")
            {
                 querystring = document.getElementById('PA|1|Prod Family').value + "|" + document.getElementById('PA|2|desc').value;
            }
            
            if (prodtype == "stocknumber" || prodtype == "ALL")
            {
                stocknumber = document.getElementById('stocknumber').value;
                xhr.open("GET","http://www.aosmithmotors.com/AOSECatalog/Catalog/CatalogPageLet.aspx?source=substocknumber&print=no&stocknumber=" + stocknumber + "&prodtype=ALL&querystring=" + escape(querystring) + "&sorting=" + sorting+ "&column=" + column+ "&Records=" + Records + "&PageNumber=" + PageNumber + "&customer_id=" + customer_id + "&customer_session=" + customer_session,true);
            }
            else
            {
                xhr.open("GET","http://www.aosmithmotors.com/AOSECatalog/Catalog/CatalogPageLet.aspx?source=submit&print=no&prodtype=" + prodtype + "&querystring=" + escape(querystring) + "&sorting=" + sorting+ "&column=" + column + "&Records=" + Records + "&PageNumber=" + PageNumber + "&customer_id=" + customer_id + "&customer_session=" + customer_session,true);
            }

            xhr.onreadystatechange = function(){handleSubmitResponse(xhr);};
            xhr.send(null);
        }
    }
    catch(err)
    {
        
    }
}

function toggleDisabled(el) 
{
    try 
    {
        el.disabled = el.disabled ? false : true;
    }
    catch(E)
    {
    
    }
        if (el.childNodes && el.childNodes.length > 0) 
        {
        for(var x = 0; x < el.childNodes.length; x++) 
        {
            toggleDisabled(el.childNodes[x]);
        }
    }
}

function handleSubmitResponse(xhr)
{
    try
    {
        var responseOutput = document.getElementById("aoscatalogsearch");
        var loadingDiv = document.getElementById("aosloadingDiv");
        
        if (xhr.readyState == 4  && xhr.status == 200)
        {
            var parsedResponse = xhr.responseText;
            loadingDiv.innerHTML="";
            responseOutput.innerHTML = parsedResponse;
            xhr =null;

            toggleDisabled(document.getElementById("aoscatalogsearchcomponent"));
            toggleDisabled(document.getElementById("aoscatalogsearch"));
            
        }
        else
        {
            loadingDiv.innerHTML="Loading...<img src='http://www.aosmithmotors.com/AOSECatalog/images/AjaxLoading.gif' />";
        }  
    }
    catch(err)
    {
        
    }
}

function aosECatalogFilterReset(prodtype)
{
    try
    {
        var responseOutput = document.getElementById("aoscatalogsearch");
        responseOutput.innerHTML ="";
        document.getElementById("stocknumber").value= "";
        document.getElementById('hdn_querystring').value = "";
        document.getElementById('hdn_breadcrumborder').value = "";
        document.getElementById('aosbreadcrumb').innerHTML = "";
        aosCatalogFilterRequest(prodtype,"","0");
    }
    catch(err)
    {
        
    }
}

function searchOnChange(dropdown)
{
    try
    {
        var els = new Object();
        var dropdownID = dropdown.id.split("|");
        var SelIndex  = dropdown.selectedIndex;
        var SelValue = dropdown.options[SelIndex].value;
        var querystring = "";
        var p = document.getElementById("aosDiv" + dropdownID[0]);
        els = p.getElementsByTagName('select');
        var breadcrumbcount = "";
        var breadcrumb = "";
        var selectedvalue = ""       
        
        for(i=0;i<els.length;i++)
        {
            querystring = querystring + els[i].options[els[i].selectedIndex].value + "|";
        }
        
        document.getElementById('hdn_querystring').value = querystring;
        querystring = querystring.substring(0,querystring.length -1);    
        
        // Begin Bread Crumb
        
        breadcrumb = document.getElementById('aosbreadcrumb').innerHTML;
        breadcrumbcount = document.getElementById('hdn_breadcrumborder').value;
                
        var cnt=0;
               
        var bccount;
        var bcrumb;
 
        if (breadcrumbcount.length > 0)
        {
            bccount = breadcrumbcount.split("|");
            bcrumb = breadcrumb.split(" | ");
            
            breadcrumbcount = "";
            breadcrumb = "";

            for(i=0;i<bccount.length;i++)
            {
                if (bccount[i] == dropdownID[1])
                {
                }
                else
                {
                    breadcrumbcount = breadcrumbcount + bccount[i] + "|";
//                  breadcrumb = breadcrumb + "<a href='javascript:void(0);' onclick='aosCatalogbreadcrumb(\"" + querystring + "\",\"" + dropdownID[0] + "\",\"" + els.length + "\");'>" + bcrumb[i] + "</a>" + " | ";
                    breadcrumb = breadcrumb + bcrumb[i] + " | ";
                }
            }
        }
        
        if (SelValue == "*")
        {
            breadcrumbcount = breadcrumbcount.substring(0,breadcrumbcount.length - 1);
            breadcrumb = breadcrumb.substring(0,breadcrumb.length - 2);
        }
            
        if (breadcrumb == "&nbsp;")
        {
            breadcrumbcount = dropdownID[1];
//          breadcrumb = "<a href='javascript:void(0);' onclick='aosCatalogbreadcrumb(\"" + querystring + "\",\"" + dropdownID[0] + "\",\"" + els.length + "\");'>" + SelValue + "</a>";
            breadcrumb =  dropdownID[2] + " : " + SelValue;
        }
        else
        {
            if (SelValue == "*")
            {
            }
            else
            { 
                breadcrumbcount = breadcrumbcount + dropdownID[1];
//              breadcrumb = breadcrumb + "<a href='javascript:void(0);' onclick='aosCatalogbreadcrumb(\"" + querystring + "\",\"" + dropdownID[0] + "\",\"" + els.length + "\");'>" + SelValue + "</a>";
                breadcrumb = breadcrumb + dropdownID[2] + " : " + SelValue;
            }
        }
           
        document.getElementById('aosbreadcrumb').innerHTML = breadcrumb;
        document.getElementById('hdn_breadcrumborder').value = breadcrumbcount;
        
        // End Bread Crumb

        aosCatalogSelFilter(querystring,dropdownID[0],els.length,els,dropdownID[1]);
        
    }
    catch(err)
    {
        
    }
}

function aosCatalogSelFilter(querystring,prodtype,controlcount,els,currentcontrol)
{   
    var d = new Date();
    var currdropdownID;
    try
    {
        var customer_id = document.getElementById("hdn_custno").value;
        var customer_session = document.getElementById("hdn_sessionid").value;
        var xhr = createXHR();
        if (xhr)
        {
            xhr.open("GET","http://www.aosmithmotors.com/AOSECatalog/Catalog/CatalogFilterPageLet.aspx?time="+ d.getTime() + "&source=ddonchange&querystring=" + escape(querystring) + "&prodtype=" + prodtype + "&controlcount=" + controlcount + "&customer_id=" + customer_id + "&customer_session=" + customer_session,true);
            xhr.send(null);
            xhr.onreadystatechange = function()
            {
                if (xhr.readyState == 4  && xhr.status == 200)
                {
                    var ddvalue = xhr.responseText.split("!ctrcount!");
                    for(j=0;j<ddvalue.length;j++)
                    {
                        var onchangevalue = ddvalue[j].split("|");
                        var select = document.getElementById(els[j].id);
                        var dropdownID = els[j].id.split("|");
                        var selectvalue = select.options[select.selectedIndex].value;
                        var optselect;
                        var optselectvalue;
                        var optselecttext;
                         
                        if ((dropdownID[1] != currentcontrol) || (selectvalue == "*"))
                        {                 
                            select.options.length = 0; 
                            for(i=0;i<onchangevalue.length;i++)
                            {
                                if (onchangevalue[i] == "ALL")
                                {
                                    optselectvalue = "*";
                                }
                                else
                                {
                                    optselectvalue = onchangevalue[i];
                                }
                                optselecttext =  onchangevalue[i];

                                select.options[select.options.length] = new Option(optselecttext,optselectvalue);
                                
                                if(selectvalue == optselectvalue)
                                {
                                    optselect = i
                                }
                            }
                            select.options[optselect].selected  =  true;
                        }
                     }
                }
            }
        }
    }
    catch(err)
    {
        
    }
}

function handleFilterSelResponse(xhr,currdropdownID)
{
    try
    {
        if (xhr.readyState == 4  && xhr.status == 200)
        {
            var onchangevalue = xhr.responseText;
            onchangevalue = "<select id='" + currdropdownID + "' onchange = 'searchOnChange(this);' name='Product Family' style='vertical-align: top; font-size: 8pt; width: 115px;'>" + onchangevalue + "</select>";
            document.getElementById("DIV|" + currdropdownID).innerHTML =onchangevalue;
        }
    }
    catch(err)
    {
        
    } 
}

function aosCatalogbreadcrumb(querystring,prodtype,controlcount,temp)
{   
    var p = document.getElementById("aosDiv" + prodtype);
    var els = p.getElementsByTagName('select');
    document.getElementById('hdn_querystring').value = querystring;
    var d = new Date();
    var arrquerystring = querystring.split("|");
    var currdropdownID;
    try
    {
        var customer_id = document.getElementById("hdn_custno").value;
        var customer_session = document.getElementById("hdn_sessionid").value;
        var xhr = createXHR();
        if (xhr)
        {
            xhr.open("GET","http://www.aosmithmotors.com/AOSECatalog/Catalog/CatalogFilterPageLet.aspx?time="+ d.getTime() + "&source=ddonchange&querystring=" + escape(querystring) + "&prodtype=" + prodtype + "&controlcount=" + controlcount + "&customer_id=" + customer_id + "&customer_session=" + customer_session,true);
            xhr.send(null);
            xhr.onreadystatechange = function()
            {
                if (xhr.readyState == 4  && xhr.status == 200)
                {
                    var ddvalue = xhr.responseText.split("!ctrcount!");
                    for(j=0;j<ddvalue.length;j++)
                    {
                        var onchangevalue = ddvalue[j].split("|");
                        var select = document.getElementById(els[j].id);
                        var selectvalue = arrquerystring[j];
                        var optselect;
                        var optselectvalue;
                        var optselecttext;
                        select.options.length = 0;                   
                        for(i=0;i<onchangevalue.length;i++)
                        {
                            if (onchangevalue[i] == "ALL")
                            {
                                optselectvalue = "*";
                            }
                            else
                            {
                                optselectvalue = onchangevalue[i];
                            }
                            optselecttext =  onchangevalue[i];

                            select.options[select.options.length] = new Option(optselecttext,optselectvalue);
                            
                            if(selectvalue == optselectvalue)
                            {
                                optselect = i
                            }
                         }
                         select.options[optselect].selected  =  true;
                     }
                }
            }
            aosCatalogFilterSubmit(prodtype,"asc","x_ecat_stck_no","");
        }
    }
    catch(err)
    {
        
    }
}

function aosproductdisplay(stocknumber)
{
    try
    {
        var customer_id = document.getElementById("hdn_custno").value;
        var customer_session = document.getElementById("hdn_sessionid").value;
        var xhr = createXHR();
        var url = "http://www.aosmithmotors.com/AOSECatalog/Catalog/CatalogPageLet.aspx";
        var params = "source=productdisplay&stocknumber=" + stocknumber + "&customer_id=" + customer_id + "&customer_session=" + customer_session;
        if (xhr)
        {
            xhr.open("POST",url,true);
            xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhr.setRequestHeader("Content-length", params.length);
            xhr.setRequestHeader("Connection", "close");
            xhr.onreadystatechange = function(){handleproductdisplayResponse(xhr);};
            xhr.send(params);
        }
    }
    catch(err)
    {
       
    }
}

function handleproductdisplayResponse(xhr)
{ 
    try
    {
        if (xhr.readyState == 4  && xhr.status == 200)
        {
            var productdisplay = xhr.responseText;
            var width  = 800;
            var height = 600;
            var left   = (screen.width  - width)/2;
            var top    = (screen.height - height)/2;
            var params = 'width='+width+', height='+height;
            params += ', top='+top+', left='+left;
            params += ', directories=no';
            params += ', location=no';
            params += ', menubar=no';
            params += ', resizable=no';
            params += ', scrollbars=yes';
            params += ', status=no';
            params += ', toolbar=no';
            var win = window.open ("","",params);
            var html = productdisplay;
            win.document.write(html);
            win.document.close();
            xhr =null;
            if (window.focus) {win.focus()}
            return false;
        }
    }
    catch(err)
    {
        
    }
}

function aosprint(prodtype,sorting,column,PageNumber)
{
    try
    {
        var xhr = createXHR();
        if (xhr)
        {
            var Records = document.getElementById("RecordSelect").value;
            var querystring = document.getElementById('hdn_querystring').value;
            var customer_id = document.getElementById("hdn_custno").value;
            var customer_session = document.getElementById("hdn_sessionid").value;
        
            var stocknumber = "";

            if (prodtype == "PA")
            {
                 querystring = document.getElementById('PA|1|Prod Family').value + "|" + document.getElementById('PA|2|desc').value;
            }
            
            if (prodtype == "stocknumber" || prodtype == "ALL")
            {
                    stocknumber = document.getElementById('stocknumber').value;
                    xhr.open("GET","http://www.aosmithmotors.com/AOSECatalog/Catalog/CatalogPageLet.aspx?source=substocknumber&print=yes&stocknumber=" + stocknumber + "&prodtype=ALL&querystring=" + escape(querystring) + "&sorting=" + sorting+ "&column=" + column+ "&Records=" + Records + "&PageNumber=" + PageNumber + "&customer_id=" + customer_id + "&customer_session=" + customer_session,true);
            }
            else
            {
                xhr.open("GET","http://www.aosmithmotors.com/AOSECatalog/Catalog/CatalogPageLet.aspx?source=submit&print=yes&prodtype=" + prodtype + "&querystring=" + escape(querystring) + "&sorting=" + sorting+ "&column=" + column + "&Records=" + Records + "&PageNumber=" + PageNumber + "&customer_id=" + customer_id + "&customer_session=" + customer_session,true);
            }

            xhr.onreadystatechange = function(){aosprintResponse(xhr);};
            xhr.send(null);
        }
    }
    catch(err)
    {
        
    }
}

function aosprintResponse(xhr)
{
    try
    {
        if (xhr.readyState == 4  && xhr.status == 200)
        {
            var parsedResponse = xhr.responseText;
            var width  = 800;
            var height = 600;
            var left   = (screen.width  - width)/2;
            var top    = (screen.height - height)/2;
            var params = 'width='+width+', height='+height;
            params += ', top='+top+', left='+left;
            params += ', directories=no';
            params += ', location=no';
            params += ', menubar=no';
            params += ', resizable=no';
            params += ', scrollbars=yes';
            params += ', status=no';
            params += ', toolbar=no';
            var win = window.open ("","",params); 
            var html = "<html><head><title>Catalog Search Results</title></head><body onload=\"javascript:window.print()\"><img alt='' src='http://www.aosmithmotors.com/AOSECatalog/Images/logo.jpg' /><br /><br />" + parsedResponse + "</body></html>"
            win.document.write(html);
            win.document.close();
            xhr =null;
            if (window.focus) {win.focus()}
            return false;
        } 
    }
    catch(err)
    {
        
    }
}

function toggle(obj,text) 
{
	obj = document.getElementById(obj);
	text = document.getElementById(text);
	if(obj.style.display == "block") 
	{
        obj.style.display = "none";
        text.innerHTML = "show";
  	}
	else 
	{
		obj.style.display = "block";
		text.innerHTML = "hide";
	}
}

function AddCart(activeItem ,HidRowID, ItemQty) 
{
    try
    {
        var customer_id = document.getElementById("hdn_custno").value;
        var customer_session = document.getElementById("hdn_sessionid").value;    
        var xhr = createXHR();
        var url = "http://www.aosmithmotors.com/AOSECatalog/Catalog/CatalogPageLet.aspx";
        var params = "source=addcart&activeItem=" + activeItem + "&HidRowID=" + HidRowID + "&ItemQty=" + ItemQty + "&customer_id=" + customer_id + "&customer_session=" + customer_session;
        if (xhr)
        {
            xhr.open("POST",url,true);
            xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhr.setRequestHeader("Content-length", params.length);
            xhr.setRequestHeader("Connection", "close");
            xhr.onreadystatechange = function(){handleAddCartResponse(xhr,HidRowID);};
            xhr.send(params);
        }
    }
    catch(err)
    {
        
    }
}

function handleAddCartResponse(xhr,HidRowID)
{ 
    try
    {
        if (xhr.readyState == 4  && xhr.status == 200)
        {
            var AddCartResponse = xhr.responseText;
            document.getElementById("qty_" + HidRowID ).value = "1";
            alert(AddCartResponse);
        }
    }
    catch(err)
    {
        
    }
}

function numbersonly(myfield, e, dec)
{
    var key;
    var keychar;

    if (window.event)
       key = window.event.keyCode;
    else if (e)
       key = e.which;
    else
       return true;
    keychar = String.fromCharCode(key);

    // control keys
    if ((key==null) || (key==0) || (key==8) || 
        (key==9) || (key==13) || (key==27) )
       return true;

    // numbers
    else if ((("0123456789").indexOf(keychar) > -1))
       return true;

    // decimal point jump
    else if (dec && (keychar == "."))
       {
       myfield.form.elements[dec].focus();
       return false;
       }
    else
       return false;
}

