function ShowPartTab() {
    $("#searchbybrandli").removeClass("selected");
    $("#searchbypartli").addClass("selected");
    $("#searchbybranddiv").hide();
    $("#searchbypartdiv").show();
}
function ShowBrandTab() {
    $("#searchbypartli").removeClass("selected");
    $("#searchbybrandli").addClass("selected");
    $("#searchbypartdiv").hide();
    $("#searchbybranddiv").show();
}
function toggleToolTipDefinition(oElt, bShow) {
   
	var ipos = findPosition( oElt );
	var LEFT_PAD = 2;
	var iPosLeft = ipos[0] + oElt.offsetWidth + LEFT_PAD;
	var iPosTop =  ipos[1];
	var oDiv = document.getElementById(oElt.id + 'Span');
	if(oDiv != null)
	{
		if((parseInt(iPosLeft) + parseInt(oDiv.style.width) + 25) > parseInt(document.body.clientWidth))
		{
			oDiv.style.width = (parseInt(document.body.clientWidth) - parseInt(iPosLeft) - 25) + 'px';
		}
		oDiv.style.left = iPosLeft;
		oDiv.style.top = iPosTop;
		oDiv.style.display = bShow ? 'block' : 'none';
	}
}

function findPosition( oLink )
{
	if( oLink.offsetParent )
	{
		for( var posX = 0, posY = 0; oLink.offsetParent.offsetParent; oLink = oLink.offsetParent ) 
		{
			posX += oLink.offsetLeft; 
			posY += oLink.offsetTop;
		} 
		return [ posX, posY ];
	}
	else
	{ 
		return [ oLink.x, oLink.y ];
	}
}

function showPopUp(url, name, features)
{
    var popUpWindow = window.open(url, name, features);
    popUpWindow.focus();
}

function clearonclick(thisfield) {
	{
		thisfield.value = "";
	}
}

// useage - onclick="clickclear(this, 'Sometext')"
//function clickclear(thisfield, defaulttext) {
//	if (thisfield.value == defaulttext) {
//		thisfield.value = "";
//	}
//}

// useage - onblur="clickrecall(this,'Sometext')"
//function clickrecall(thisfield, defaulttext) {
//	if (thisfield.value == "") {
//		thisfield.value = defaulttext;
//	}
//}

// Shipping Billing File Functions
//function toggleBillingAddressForm(pShow)
//{
//    var vBillingAddressHtmlTableRow = document.getElementById('BillingInformationHtmlTable')
//    
//    if (pShow)
//    {
//        vBillingAddressHtmlTableRow.style.display = 'block';
//        var vForm;
//		if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) 
//		{
//			vForm = document.Form1;
//        }
//		else 
//		{
//			vForm = document.forms["Form1"];
//		}
//        
//        copyShippingToBilling(vForm, true);
//    }
//    else
//    {
//        vBillingAddressHtmlTableRow.style.display = 'none';
//    }
//}

// Shipping Form Toggle - Checkout version
function toggleShippingAddressForm()
{
    //var radioButtons = document.getElementsByName('rblShippingAddress');
    var vShippingAddressTable = document.getElementById('ShippingForm');
    
    if (!document.Form1.rblShippingAddress[0].checked)
    {
        vShippingAddressTable.style.display = '';
    }
    else
    {
        vShippingAddressTable.style.display = 'none';
    }
}

function toggleCalculateTaxButton()
{
    var city;
    var province;
    var zip;
    var toggleValue;
    var imgbtnTax;
    var taxMessageDiv;
    
    if (document.Form1.rblShippingAddress[0].checked)
    {
        city = document.getElementById('txtCity').value;
        province = document.getElementById('ddlProvince').selectedIndex;
        zip = document.getElementById('txtZip').value;
    }
    else
    {
        city = document.getElementById('txtShippingCity').value;
        province = document.getElementById('ddlShippingProvince').selectedIndex;
        zip = document.getElementById('txtShippingZip').value;
    }
    
    city = trim(city, null);
    zip = trim(zip, null);
    
    toggleValue = !((city.length > 0) && (zip.length > 0) && (province != 0));

    imgbtnTax = document.getElementById('imgbtnTax');
    taxMessageDiv = document.getElementById('CalculateMsgDiv');
    
    
    if(toggleValue)
    {
        imgbtnTax.disabled = true;
        
        if(imgbtnTax.src.indexOf("CalculateTotal.gif") > -1)
        {
            imgbtnTax.src = imgbtnTax.src.replace("CalculateTotal.gif","CalculateTotal_inactive.gif");
        }
        taxMessageDiv.style.display = 'block';
    }
    else
    {
        imgbtnTax.disabled = false;
        
        if(imgbtnTax.src.indexOf("CalculateTotal_inactive.gif") > -1)
        {
            imgbtnTax.src = imgbtnTax.src.replace("CalculateTotal_inactive.gif","CalculateTotal.gif");
        }
        
        taxMessageDiv.style.display = 'none';
    }
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function copyShippingToBilling(pForm, pOverwrite)
{
    var cShippingPrefix = 'Shipping';
    var cBillingPrefix = 'Billing';
    
    for(var i = 0; i < pForm.elements.length; i++)
    {
        vElement = pForm.elements[i];
        if (vElement.id.indexOf(cShippingPrefix) == 0)
        {
            var vBillElement = document.getElementById(vElement.id.replace(cShippingPrefix, cBillingPrefix));
            switch(vElement.type)
            {
                case 'text' :
                {
                    if (pOverwrite)
                    {
                        vBillElement.value = vElement.value;
                    }
                    else
                    {
                        if (vBillElement.value == "")
                        {
                            vBillElement.value = vElement.value;
                        }
                    }
                    break;
                }
                case 'select-one' :
                {
                    if (pOverwrite)
                    {
                        vBillElement.value = vElement.value;
                    }
                    else
                    {
                        if (vBillElement.length > 1)
                        {
                            if (vBillElement.selectedIndex < 1)
                            {
                                vBillElement.selectedIndex = vElement.selectedIndex;
                            }
                        }
                        else
                        {
                            vBillElement.selectedIndex = vElement.selectedIndex;
                        }
                    }
                    break;
                }
            }
        }
    }
}
    
function showBillingInfo()
{
	var vForm;
	var vBillingAddressHtmlTableRow = document.getElementById('BillingInformationHtmlTable')
	
	if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) 
	{
		vForm = document.Form1;
    }
	else 
	{
		vForm = document.forms["Form1"];
	}
	
	if(vForm.BillingSameAsShippingCheckBox.checked)  
	{
		vBillingAddressHtmlTableRow.style.display = 'none';  
	}
	else
	{
			vBillingAddressHtmlTableRow.style.display = 'block';
	}
	
}

function processKeypress(pEvent, pButtonID)
{ 
	var vButton = document.getElementById(pButtonID); 
	if (typeof vButton == 'object')
	{ 
		var vKeyCode = -1;
		
		if (window.navigator.appName.toLowerCase().indexOf('microsoft') > -1)
		{ 
			vKeyCode = window.event.keyCode;
		}
		else 
		{
			vKeyCode = pEvent.keyCode;
		}

		if (vKeyCode == 13)
		{ 
			vButton.click(); 
			return false; 
		} 
	}
}

//function showCondition() {
//    document.getElementById('ItemConditionSpan').style.display = 'block';
//}

//function hideCondition() {
//    document.getElementById('ItemConditionSpan').style.display = 'none';
//}

// Overlay pop over msg boxes
function togglePopOver(divID, position) {

    document.getElementById('MsgBoxDiv').innerHTML = document.getElementById(divID).innerHTML;
    
    var elementID = "MsgBoxDiv";
    var divs = document.getElementsByTagName("div");
    var selects = document.getElementsByTagName("select");
    for(var i=0; i<divs.length;i++){
        if(divs[i].className == "popUpDiv" && divs[i].id != elementID){
            divs[i].style.display="none";
        }
    }
    if(document.getElementById(elementID)){
        var popObj = document.getElementById(elementID);
        popObj.style.top = getScrollHeight() + "px";
        popObj.style.left = "0px";
        popObj.style.display = (popObj.style.display == "block")?"none":"block";
        var appVer = navigator.appVersion;
        if(navigator.appVersion.indexOf("MSIE 6") > 0) {
            var selects = document.getElementsByTagName("select");
            if(selects.length>0){
                for(var i=0; i< selects.length; i++){
                        ((popObj.style.display == "block"))? selects[i].style.display="none":selects[i].style.display="block";
                }
            }
        }
    }
}

function closePopOver(){
    document.getElementById('MsgBoxDiv').style.display='none';
    if(navigator.appVersion.indexOf("MSIE 6") > 0) {
        var selects = document.getElementsByTagName("select");
        if(selects.length>0){
            for(var i=0; i< selects.length; i++){
                selects[i].style.display="";
            }
        }
    }
}

function hidePopOver(e){
    var target = (e && e.target) || (event && event.srcElement);
    var node = target;
    if((target.getAttribute("onClick")&& target.getAttribute("onClick").toString().indexOf("togglePopOver") > -1)){
        return;
    }
    while(node.parentNode){
        if(node.className == "popUpDiv"){
            return;
        }
        node=node.parentNode;
    }
    if(target.className != "popUpDiv" && target.parentNode.className != "popUpDiv"){
        var divs = document.getElementsByTagName("div");
        for(var i=0; i<divs.length;i++){
            if(divs[i].className == "popUpDiv"){
                divs[i].style.display="none";
            }
        }
        if(document.getElementById("ctl02_BestBrandDropDownList")){
            document.getElementById("ctl02_BestBrandDropDownList").style.display = "block";
        }
    }
    var appVer = navigator.appVersion;
    if(navigator.appVersion.indexOf("MSIE 6") > 0) {
        var selects = document.getElementsByTagName("select");
        if(selects.length>0){
            for(var i=0; i< selects.length; i++){
               selects[i].style.display="block";
            }
        }
    }
}

function getScrollHeight()
{
   var h = window.pageYOffset ||
           document.body.scrollTop ||
           document.documentElement.scrollTop;
           
   return h ? h : 0;
}

document.onclick=hidePopOver;

// on demand help msg load
function onDemandMsgLoad(url, callbackFunction)
{
    this.bindFunction = function (caller, object) {
        return function() {
            return caller.apply(object, new Array(object));
        }
    }
    this.stateChange = function (object) {
        if (this.request.readyState==4) {
            this.callbackFunction(this.request.responseText);
        }
    }
    this.getRequest = function() {
        if (window.ActiveXObject)
            return new ActiveXObject('Microsoft.XMLHTTP');
        else if (window.XMLHttpRequest)
            return new XMLHttpRequest();
        else
            return false;
    }
    if (arguments[2])
        this.postBody = arguments[2];
    else 
        this.postBody="";
    this.callbackFunction=callbackFunction;
    this.url=url;   
    this.request = this.getRequest();
    if(this.request) {
        this.request.onreadystatechange = this.bindFunction(this.stateChange, this);
        if (this.postBody!="") {
            this.request.open("POST", url, true);
            this.request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
            this.request.setRequestHeader('Connection', 'close');
        } else {
            this.request.open("GET", url, true);
        }
        this.request.send(this.postBody);
    }
}

//function appendHTML(xmlString)
//{
//    document.getElementById('MsgBoxDiv').innerHTML = xmlString;
//}

function setXMLObj(jsonString)
{
    categoriesObj = eval('(' + jsonString + ')');
}

function modelHelpMsgScroll(target, url){
    if(typeof(categoriesObj) != "object" ){
        onDemandMsgLoad(url,setXMLObj);
        window.setTimeout('modelHelpMsgScroll("'+target+'","'+url+'")',700);
        return;
    }
    var name = eval("categoriesObj."+target+"XML[0].name");
    var imagePath = eval("categoriesObj."+target+"XML[0].Image");
    document.getElementById("ModelHelpDiv").innerHTML="<table width='100%'><tr><td width='40%'><span style='font-size:12pt; font-weight:bold;'>"+name+"</span></td><td align='left'><span style='font-size:10pt; font-weight:bold; padding-left:80px;'>Tags can typically be found:</span></td></tr></table><br>"+"<img src='"+imagePath+"' alt='"+name+"'/>";
    document.getElementById("ModelHelpDivInit").style.display = "none";
}
function scrollTop(){
        var top = document.getElementById("top");
        top.scrollIntoView(true);
}

function validateGLSForm(oForm, sQueryTextBox, sEmptyStringMessage, sTextBoxMaskDefaultValue, iMinimumCharacters, iMaximumCharacters) {
    var sQuery = oForm[sQueryTextBox].value = oForm[sQueryTextBox].value.replace(/^\s+|\s+$/g, "");
    
    if (sQuery.length == 0 || sQuery == sTextBoxMaskDefaultValue) {
        alert(sEmptyStringMessage);
        oForm[sQueryTextBox].focus();
        return false;
    }
    else if (iMinimumCharacters > 0 && sQuery.length < iMinimumCharacters) {
        alert('Your search term must be at least ' + iMinimumCharacters + ' characters.');
        oForm[sQueryTextBox].focus();
        return false;
    }
    else if (iMaximumCharacters > 0 && sQuery.length > iMaximumCharacters) {
        alert('Your search term cannot be greater than ' + iMaximumCharacters + ' characters.');
        oForm[sQueryTextBox].focus();
        return false;
    }
    return true;
    
}

//AUTOSUGGEST 2.0 Lines 479 - 559
function autosuggest(inputId, searchType, count, orderChannelId, catalogId, minCharLength, categoryIDs) {
    autosuggest(inputId, searchType, count, orderChannelId, catalogId, minCharLength, categoryIDs, null, null, null);
}

function autosuggest(inputId, searchType, count, orderChannelId, catalogId, minCharLength, categoryIDs, brandIDs) {
    autosuggest(inputId, searchType, count, orderChannelId, catalogId, minCharLength, categoryIDs, brandIDs, null, null);
}

function autosuggest(inputId, searchType, count, orderChannelId, catalogId, minCharLength, categoryIDs, brandIDs, partialPostbackControlID, partialPostbackEvent) {

    var inputField = '#' + inputId;
    var requestData = '';
    
    switch (searchType) {
        case "gls":
            webServiceUrl = "/GLSTypeAhead.asmx/GetGLSSuggestions";
            requestData = '{"prefixText":"' + $(inputField).val() + '","count":' + count + ',"orderChannelID":' + orderChannelId + ', "catalogID":' + catalogId + '}';
            break;
        case "glsByFilter":
            webServiceUrl = "/GLSTypeAhead.asmx/GetGLSSuggestionsByFilters";
            requestData = '{"prefixText":"' + $(inputField).val() + '","count":' + count + ',"orderChannelID":' + orderChannelId + ', "catalogID":' + catalogId + ', "categoryIDs":' + categoryIDs + ', "brandIDs":' + brandIDs + '}';
            break;
        case "glsByFilterCategory":
            webServiceUrl = "/GLSTypeAhead.asmx/GetGLSSuggestionsByFilters";
            requestData = '{"prefixText":"' + $(inputField).val() + '","count":' + count + ',"orderChannelID":' + orderChannelId + ', "catalogID":' + catalogId + ', "categoryIDs":' + categoryIDs + ', "brandIDs":' + brandIDs + '}';
            break;            
        case "glsPartFinders":
            webServiceUrl = "/GLSTypeAhead.asmx/GetGLSPartSuggestions";
            requestData = '{"prefixText":"' + $(inputField).val() + '","count":' + count + ',"orderChannelID":' + orderChannelId + ', "catalogID":' + catalogId + ', "categoryIDs":' + categoryIDs + '}';
            break;
        case "glsModelFinders":
            webServiceUrl = "/GLSTypeAhead.asmx/GetGLSModelSuggestionsByFilters";
            requestData = '{"prefixText":"' + $(inputField).val() + '","count":' + count + ',"orderChannelID":' + orderChannelId + ', "catalogID":' + catalogId + ', "brandIDs":' + brandIDs + ', "categoryIDs":' + categoryIDs + '}';
            break;
        case "glsModelFindersTypeAhead":
            webServiceUrl = "/GLSTypeAhead.asmx/GetGLSModelSuggestionsByFilters";
            requestData = '{"prefixText":"' + $(inputField).val() + '","count":' + count + ',"orderChannelID":' + orderChannelId + ', "catalogID":' + catalogId + ', "brandIDs":' + brandIDs + ', "categoryIDs":' + categoryIDs + '}';
            break;
        case "glsModelFinderCategory":
            webServiceUrl = "/GLSTypeAhead.asmx/GetGLSModelSuggestionsByFilters";
            requestData = '{"prefixText":"' + $(inputField).val() + '","count":' + count + ',"orderChannelID":' + orderChannelId + ', "catalogID":' + catalogId + ', "brandIDs":' + brandIDs + ', "categoryIDs":' + categoryIDs + '}';
            break;
        case "glsModelFinders2":
            webServiceUrl = "/GLSTypeAhead.asmx/GetGLSModelSuggestions";
            requestData = '{"prefixText":"' + $(inputField).val() + '","count":' + count + ',"orderChannelID":' + orderChannelId + ', "catalogID":' + catalogId + ', "brandID":' + brandIDs + '}';
            break;        
        case "brandsFinderAll":
            webServiceUrl = "/BrandAutoComplete.asmx/GetBrandAliases";
            requestData = '{"prefixText":"' + $(inputField).val() + '","count":' + count + ',"catalogID":' + catalogId + ',"includeAll":true}';
            break;
        case "brandsFinder":
            webServiceUrl = "/BrandAutoComplete.asmx/GetBrandAliases";
            requestData = '{"prefixText":"' + $(inputField).val() + '","count":' + count + ',"catalogID":' + catalogId + ',"includeAll":false}';
            break;
        case "brandsFinder2":
            webServiceUrl = "/BrandAutoComplete.asmx/GetBrandAliases";
            requestData = '{"prefixText":"' + $(inputField).val() + '","count":' + count + ',"catalogID":' + catalogId + ',"includeAll":false}';
            break;
        case "brandsFinderCategory":            
            //webServiceUrl = "/BrandAutoComplete.asmx/GetBrandAliases";
            //requestData = '{"prefixText":"' + $(inputField).val() + '","count":' + count + ',"catalogID":' + catalogId + ',"includeAll":false}';
            webServiceUrl = "/GLSTypeAhead.asmx/GetGLSBrandSuggestions";
            requestData = '{"prefixText":"' + $(inputField).val().toLowerCase() + '","count":' + count + ',"orderChannelID":' + orderChannelId + ',"catalogID":' + catalogId + ',"includeAll":false}';
            break;
        case "glsBrandsFinder":
            webServiceUrl = "/GLSTypeAhead.asmx/GetGLSBrandSuggestions";
            requestData = '{"prefixText":"' + $(inputField).val() + '","count":' + count + ',"orderChannelID":' + orderChannelId + ',"catalogID":' + catalogId + ',"includeAll":false}';
            break;
    }

    if (requestData != '') {
        var cache = {};

        $(inputField).autocomplete({
            source: function(request, response) {

                // $(loaderId).fadeIn("slow");

                $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: webServiceUrl,
                    data: requestData,
                    dataType: "json",
                    success: function(msg) {
                        response($.map(msg.d, function(item) {

                            //       $(loaderId).fadeOut("slow");

                            return {
                                label: item
                            }
                        }))
                    }
                })
            },
            minLength: minCharLength,
            select: function(event, ui) {

                if (partialPostbackControlID != null) {
                    if (event.keyCode == '13') {
                        //ui.item.value;
                    }
                    else {
                        $(inputField).val(ui.item.value);
                    }
                    if (searchType == "glsModelFindersTypeAhead") {
                        $('#' + partialPostbackControlID).click();
                    } else {
                    goPartialPostback(partialPostbackControlID, partialPostbackEvent);
                    }
                }
                else {
                    if ((searchType == "brandsFinder") || (searchType == "brandsFinder2") || (searchType == "glsBrandsFinder") || (searchType == "glsModelFinders2") || (searchType == "glsModelFinderCategory") || (searchType == "brandsFinderCategory")) {
                        $(inputField).val(ui.item.value);
                    }

                    goUrl(searchType, ui.item.value);
                }
            },
            open: function() {
                switch (searchType) {
                    case "gls": // Header Open Search box
                        $(this).autocomplete("widget").css("width", "240px");
                        break;
                    case "glsByFilter": // Homepage SearchHelper OpenSearch box
                        var widget = $(this).autocomplete("widget");
                        var top = parseInt(widget.css("top")); // Rounds to ditch partial pixel value
                        top += 5;
                        widget.css("width", "222px");
                        widget.css("top", top + "px");
                        break;
                    case "glsPartFinders":
                        $(this).autocomplete("widget").css("width", "374.9px");
                        $(this).autocomplete("widget").css("border", "solid 1px #62a2e2");
                        break;
                    case "brandsFinder": // Brand Model Helper Brand Box
                        var widget = $(this).autocomplete("widget");
                        widget.css("width", "220px");
                        var top = parseInt(widget.css("top")); // Rounds to ditch partial pixel value
                        if ($.browser.msie != true)
                            top += 2;
                        var left = parseInt(widget.css("left"));
                        widget.css("top", top + "px");
                        widget.css("left", left + "px");
                        break;
                    case "brandsFinder2": // Homepage SearchHelper Brand box
                        var widget = $(this).autocomplete("widget");
                        var top = parseInt(widget.css("top")); // Rounds to ditch partial pixel value
                        top += 5;
                        widget.css("width", "222px");
                        widget.css("top", top + "px");
                        break;
                    case "brandsFinderCategory": // Category Landing Page Brand box
                        var widget = $(this).autocomplete("widget");
                        break;
                    case "brandsFinderAll":
                        if ($.browser.msie == true)
                        {
                            var widget = $(this).autocomplete("widget");
                            var top = parseInt(widget.css("top"));
                            top -= 25;
                            widget.css("top", top + "px");
                        }
                        break;
                    case "glsByFilterCategory": // Category Landing Page OpenSearch box
                        var widget = $(this).autocomplete("widget");
                        widget.css("width", "450px");
                        break;
                    case "glsModelFinderCategory":
                        var widget = $(this).autocomplete("widget");
                        widget.css("border", "1px solid #0B3A7E");
                        widget.css("border-top", "1px solid #FFFFFF");
                        break;
                    case "glsModelFinders":
                        $(this).autocomplete("widget").css("width", "302px");
                        $(this).autocomplete("widget").css("top", "389px");
                        $(this).autocomplete("widget").css("left", "442px");
                        $(this).autocomplete("widget").css("border", "solid 1px #62a2e2");
                        break;
                    case "glsModelFindersTypeAhead":
                        $(this).autocomplete("widget").css("width", "303px");
                        //$(this).autocomplete("widget").css("top", "415px");
                        //$(this).autocomplete("widget").css("left", "447px");
                        $(this).autocomplete("widget").css("border", "solid 1px #62a2e2");
                        break;
                    case "glsModelFinders2":
                        var widget = $(this).autocomplete("widget");
                        widget.css("width", "220px");
                        var top = parseInt(widget.css("top")); // Rounds to ditch partial pixel value
                        if ($.browser.msie != true)
                            top += 2;
                        var left = parseInt(widget.css("left"));
                        widget.css("top", top + "px");
                        widget.css("left", left + "px");
                        break;
                    case "glsBrandsFinder":
                        var widget = $(this).autocomplete("widget");
                        widget.css("width", "220px");
                        var top = parseInt(widget.css("top")); // Rounds to ditch partial pixel value
                        if ($.browser.msie != true)
                            top += 2;
                        var left = parseInt(widget.css("left"));
                        widget.css("top", top + "px");
                        widget.css("left", left + "px");
                        break;
                    default:
                        $(this).autocomplete("widget").css("width", "355px");
                }
            }
        ,
            close: function() {
                $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
            }
        });
    }
}

function goUrl(searchType, thisValue) {
    
    switch (searchType) {
        case "gls":
            window.location = "/SearchResults.aspx?q=" + thisValue + "&SearchTerm=True";
            break;
        case "glsByFilter":
            var sPath = window.location.pathname;
            var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
            window.location = "/SearchResults.aspx?q=" + thisValue + "&SearchTerm=True";
            break;
        case "glsByFilterCategory":
            var sPath = window.location.pathname;
            var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
            window.location = "/SearchResults.aspx?q=" + thisValue + "&SearchTerm=True";
            break;
        case "glsPartFinders":
            var sPath = window.location.pathname;
            var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
            window.location = sPage + "?q=" + thisValue + "&SearchTerm=True";
            break;  
        case "brandsFinder":
            $("#brandButton").click();
            break;
        case "brandsFinder2":
            break;
        case "brandsFinderCategory":
            break;
        case "glsBrandsFinder":
            $("#brandButton").click();
            break;
        case "glsModelFinders2":
            $("#modelButton").click();
            break;
        case "glsModelFinderCategory":
            $("#csh-searchButton1").click();
            break;
        default:
            window.location = "/BrandSearch.aspx?BrandName=" + thisValue + "&SearchTerm=True";

    }
}

function goPartialPostback(partialPostbackControlID, partialPostbackEvent) {
    __doPostBack(partialPostbackControlID, partialPostbackEvent);
    
    }


// Code from FormValidation.js line 561 - 846
function trim(sString) {
    while (sString.substring(0, 1) == ' ') {
        sString = sString.substring(1, sString.length);
    }
    while (sString.substring(sString.length - 1, sString.length) == ' ') {
        sString = sString.substring(0, sString.length - 1);
    }
    return sString;
}

function validateBrand(brandText, catalogID, successFunc, failedFunc) {

    webServiceUrl = "/BrandAutoComplete.asmx/ValidateBrand"

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: webServiceUrl,
        data: '{"brandText":"' + brandText + '","catalogID":' + catalogID + '}',
        dataType: "json",
        success: function(msg) {
            if (msg.d.Success)
                successFunc(msg.d);
            else
                failedFunc();
        }
    });
}

function validateGLSBrand(brandText, orderChannelID, catalogID, successFunc, failedFunc) {

    webServiceUrl = "/GLSTypeAhead.asmx/ValidateBrand"

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: webServiceUrl,
        data: '{"brandText":"' + brandText + '","orderChannelID":' + orderChannelID + ',"catalogID":' + catalogID + '}',
        dataType: "json",
        success: function(msg) {
            if (msg.d.Success)
                successFunc(msg.d);
            else
                failedFunc();
        }
    });
}

function validateBrandSearchForm(oForm, oDefaultText) {
    var isValid = true;
    var BRAND_MIN_CHARACTERS = 1;
    var FORM_FIELD_BRANDNAME = 'BrandName';
    var DEFAULT_VALUE_DROPDOWN = 'select a brand...';
    var DEFAULT_VALUE_TEXTBOX = '';
    if (oDefaultText != null)
        DEFAULT_VALUE_TEXTBOX = oDefaultText;
    else
        DEFAULT_VALUE_TEXTBOX = 'enter brand';
    var TOP_BRANDS = 'Top Brands:';
    var ERROR_MESSAGE_EMPTY_TEXT = 'Please enter a brand name.';
    var ERROR_MESSAGE_BRANDNAME_MIN_CHARACTERS = 'Brand name must be at least ' + BRAND_MIN_CHARACTERS + ' characters.';
    var ERROR_MESSAGE_INVALID_CHARACTER = 'Brand name contains an invalid character.';
    var ERROR_MESSAGE_BRANDNAME_NOT_SELECTED = 'Please select a brand name.';
    if (oForm != null) {
        var oBrandTextBox = oForm.elements[FORM_FIELD_BRANDNAME];
        if (oBrandTextBox != null) {
            var sBrandName = trim(oBrandTextBox.value);

            if (isInvalidChars(sBrandName) && sBrandName != TOP_BRANDS) {
                if (oBrandTextBox.type == 'text') {
                    alert(ERROR_MESSAGE_EMPTY_TEXT);
                }
                else {
                    alert(ERROR_MESSAGE_BRANDNAME_NOT_SELECTED);
                }
                oBrandTextBox.focus();
                return false;
            }
            if (sBrandName.toLowerCase() == DEFAULT_VALUE_TEXTBOX ||
                sBrandName.toLowerCase() == DEFAULT_VALUE_DROPDOWN ||
                sBrandName.length == 0) {
                alert(ERROR_MESSAGE_BRANDNAME_NOT_SELECTED);
                oBrandTextBox.focus();
                return false;
            }
        }
    }
    if ($('ul.ui-autocomplete').length != 0) {
        $('ul.ui-autocomplete').hide();
    }
    return true;
}

function validateBrandModelSearchForm(oForm) {
    var isValid = true;
    var MODELNUMBER_MIN_CHARACTERS = 1;
    var FORM_FIELD_BRANDNAME = 'BrandName';
    var FORM_FIELD_MODELNUMBER = 'ModelNumber';
    var ERROR_MESSAGE_BRANDNAME_NOT_SELECTED = 'Please select a brand.';
    var ERROR_MESSAGE_EMPTY_TEXT = 'Please enter a model number.';
    var ERROR_MESSAGE_MODELNUMBER_MIN_CHARACTERS = 'Model number name must be at least ' + MODELNUMBER_MIN_CHARACTERS + ' character.';
    var ERROR_MESSAGE_INVALID_CHARACTER = 'Model number contains an invalid character.';
    if (oForm != null) {
        var oBrandHtmlSelect = oForm.elements[FORM_FIELD_BRANDNAME];
        if (oBrandHtmlSelect != null) {
            if (oBrandHtmlSelect.selectedIndex == 0) {
                alert(ERROR_MESSAGE_BRANDNAME_NOT_SELECTED);
                oBrandHtmlSelect.focus();
                return false;
            }
            var oModelNumberTextBox = oForm.elements[FORM_FIELD_MODELNUMBER];
            if (oModelNumberTextBox.value.length == 0) {
                alert(ERROR_MESSAGE_EMPTY_TEXT);
                oModelNumberTextBox.focus();
                return false;
            }
            if (oModelNumberTextBox.value.length < MODELNUMBER_MIN_CHARACTERS) {
                alert(ERROR_MESSAGE_MODELNUMBER_MIN_CHARACTERS);
                oModelNumberTextBox.focus();
                return false;
            }
            if (isInvalidChars(oModelNumberTextBox.value)) {
                alert(ERROR_MESSAGE_INVALID_CHARACTER);
                oModelNumberTextBox.focus();
                return false;
            }

        }
    }
    return true;
}

function validateModelSearchForm(oForm, sDefaultText) {
    var MODELNUMBER_MIN_CHARACTERS = 1;
    var FORM_FIELD_MODELNUMBER = 'ModelNumber';
    var ERROR_MESSAGE_EMPTY_TEXT = 'Please enter a model number.';
    var ERROR_MESSAGE_MODELNUMBER_MIN_CHARACTERS = 'Model number name must be at least ' + MODELNUMBER_MIN_CHARACTERS + ' character.';
    var ERROR_MESSAGE_INVALID_CHARACTER = 'Model number contains an invalid character.';
    if (oForm != null) {
        var oModelNumberTextBox = oForm.elements[FORM_FIELD_MODELNUMBER];
        if (oModelNumberTextBox != null) {
            var sModelNumber = trim(oModelNumberTextBox.value);

            if (sModelNumber.length == 0 || sModelNumber == sDefaultText) {
                alert(ERROR_MESSAGE_EMPTY_TEXT);
                oModelNumberTextBox.focus();
                return false;
            }
            if (sModelNumber.length < MODELNUMBER_MIN_CHARACTERS) {
                alert(ERROR_MESSAGE_MODELNUMBER_MIN_CHARACTERS);
                oModelNumberTextBox.focus();
                return false;
            }
        }
    }
    return true;
}

function validatePartNumberSearchForm(oForm) {
    var PARTNUMBER_MIN_CHARACTERS = 2;
    var FORM_FIELD_PARTNUMBER_WATERMARK = 'Enter Your Part #';
    var FORM_FIELD_PARTNUMBER = 'PartNumber';
    var ERROR_MESSAGE_EMPTY_TEXT = 'Please enter a part number.';
    var ERROR_MESSAGE_MIN_CHARACTERS = 'Part number must be at least ' + PARTNUMBER_MIN_CHARACTERS + ' characters.';
    var ERROR_MESSAGE_INVALID_CHARACTER = 'Part number contains an invalid character.';
    if (oForm != null) {
        var oPartNumberTextBox = oForm.elements[FORM_FIELD_PARTNUMBER];
        if (oPartNumberTextBox != null) {
            var sPartNumber = trim(oPartNumberTextBox.value);
            if (sPartNumber.length == 0 || sPartNumber == FORM_FIELD_PARTNUMBER_WATERMARK) {
                alert(ERROR_MESSAGE_EMPTY_TEXT);
                oPartNumberTextBox.focus();
                return false;
            }
            if (sPartNumber.length < PARTNUMBER_MIN_CHARACTERS) {
                alert(ERROR_MESSAGE_MIN_CHARACTERS);
                oPartNumberTextBox.focus();
                return false;
            }
            if (isInvalidChars(sPartNumber)) {
                alert(ERROR_MESSAGE_INVALID_CHARACTER);
                oPartNumberTextBox.focus();
                return false;
            }
        }
    }
    return true;
}


function brandName_OnChange(oElt) {
    var ERROR_MESSAGE_NO_SELECTION = 'Please select your product\'s brand name';
    var OPTION_TOP_BRANDS = 'Top Brands:';
    var OPTION_SEE_ALL_BRANDS = 'See All Brands';
    var URL_TOP_BRANDS = 'AllBrands.aspx?ShowAllBrands=false';
    var URL_ALL_BRANDS = 'AllBrands.aspx?ShowAllBrands=true';

    oElt.form.elements['MfgName'].value = oElt.options[oElt.selectedIndex].attributes['mfgName'].value;
    if (oElt.value != '') {
        var sUrl = '';

        if (oElt.value == OPTION_TOP_BRANDS) {
            sUrl = URL_TOP_BRANDS;
        }

        if (oElt.value == OPTION_SEE_ALL_BRANDS) {
            sUrl = URL_ALL_BRANDS;
        }

        if (sUrl != '') {
            location.href = sUrl;
        }
        else {
            oElt.form.submit();
        }
        return;
    }
    else {
        alert(ERROR_MESSAGE_NO_SELECTION);
        oElt.focus();
    }
}


//function isValidShippingPhoneNumber(sender, args) {
//    args.IsValid = isValidPhoneNumber('Shipping');
//    return;
//}

//function isValidBillingPhoneNumber(sender, args) {
//    args.IsValid = isValidPhoneNumber('Billing');
//    return;
//}

function isValidPhoneNumber(sType) {
    var isValidPhoneNumber = false;
    var PHONE_NUMBER_AREACODE = 'PhoneAreaCodeTextBox';
    var PHONE_NUMBER_FIRST_THREE_DIGITS = 'PhoneFirstThreeDigitsTextBox';
    var PHONE_NUMBER_LAST_FOUR_DIGITS = 'PhoneLastFourDigitsTextBox';
    var oAreaCode = document.getElementById(sType + PHONE_NUMBER_AREACODE);
    var oFirstThreeDigits = document.getElementById(sType + PHONE_NUMBER_FIRST_THREE_DIGITS);
    var oLastFourDigits = document.getElementById(sType + PHONE_NUMBER_LAST_FOUR_DIGITS);
    if (oAreaCode.value.length == 3 && oFirstThreeDigits.value.length == 3 && oLastFourDigits.value.length == 4) {
        isValidPhoneNumber = true;
    }
    return isValidPhoneNumber;
}

function isValidExpirationDate(sender, args) {
    var EXPIRATION_DATE_MONTH = 'ExpirationDateMonthDropDownList';
    var EXPIRATION_DATE_YEAR = 'ExpirationDateYearDropDownList';
    var oMonth = document.getElementById(EXPIRATION_DATE_MONTH);
    var oYear = document.getElementById(EXPIRATION_DATE_YEAR);
    var expirationDate = new Date();
    expirationDate.setFullYear(oYear, oMonth, 1);
    args.IsValid = expirationDate >= new Date();
    return;
}

function isInvalidChars(check) {
    var regEx = new RegExp("[<>;:%\"]")
    if ((regEx.test(check)) || (check == '')) {
        return true;
    }
    else {
        return false;
    }
}

function isValidQuantity(pForm) {
    var FORM_FIELD_QUANTITY = 'Quantity';
    var isValid = false;
    var regEx = /^[1-9]\d*$/;
    if (pForm != null) {
        var vQuantity = pForm.elements[FORM_FIELD_QUANTITY];
        if (vQuantity != null) {
            if (regEx.test(vQuantity.value)) {
                isValid = true;
            }
            else {
                isValid = false;
                alert('Please enter a valid number.');
                vQuantity.select();
            }
        }
    }
    return isValid;
}

function isValidNumber(pValue) {

    var isValid = false;
    var regEx = /^[1-9]\d*$/;

    if (pValue != null) {
        if (regEx.test(pValue)) {
            isValid = true;
        }
        else {
            isValid = false;
            alert('Please enter a valid number.');
        }
    }

    return isValid;
}

function OpenModelHelpWindow() {
    window.open('/ModelNumberPopUp.aspx', 'NewWindow', 'toolbar=no,menubar=no,scrollbars=yes,width=700,height=600');
}

function getScrollHeight() {
    var h = window.pageYOffset ||
           document.body.scrollTop ||
           document.documentElement.scrollTop;

    return h ? h : 0;
}

function toggleInputMask(obj, textValue) {
    if (obj.value == textValue) {
        obj.value = '';
    }
    else if (obj.value == '') {
    obj.value = textValue;
    }
}


// Enlarge image function
function ShowWin(ImageType, BrandName, ModelNumber, StandardImageSizeCodeThumbnail, MfgName) {
    showPopUp("/ModelImage.aspx?ImageType=" + ImageType + "&MfgName=" + MfgName + "&BrandName=" + BrandName + "&ModelNumber=" + ModelNumber + "&StandardImageSizeCode=" + StandardImageSizeCodeThumbnail, "ModelImage", "top=20,left=100,width=400,height=300,noresize,toolbar=0,scrollbars=0,menubar=0")
}


/*
* Tooltip script 
* powered by jQuery (http://www.jquery.com)
* 
* written by Alen Grakalic (http://cssglobe.com)
* 
* for more info visit http://cssglobe.com/post/1695/easiest-tooltip-and-image-preview-using-jquery
*
*/

this.tooltip = function() {
    /* CONFIG */
    xOffset = 10;
    yOffset = 20;
    // these 2 variable determine popup's distance from the cursor
    // you might want to adjust to get the right result		
    /* END CONFIG */
    $("a.tooltip").hover(function(e) {
        this.t = this.title;
        this.title = "";
        $("body").append("<p id='tooltip'>" + this.t + "</p>");
        $("#tooltip")
			.css("top", (e.pageY - xOffset) + "px")
			.css("left", (e.pageX + yOffset) + "px")
			.fadeIn("fast");
    },
	function() {
	    this.title = this.t;
	    $("#tooltip").remove();
	});
    $("a.tooltip").mousemove(function(e) {
        $("#tooltip")
			.css("top", (e.pageY - xOffset) + "px")
			.css("left", (e.pageX + yOffset) + "px");
    });
};

/***
jQuery plugin version of above tooltip code
***/
(function($) {
    $.fn.tooltip = function() {
        this.each(function() {
            if ($(this).is('a.tooltip')) {
                xOffset = 20;
                yOffset = 10;
                var toolTip;
                $(this).hover(function(e) {
                    this.t = this.title;
                    this.title = "";
                    $("body").append('<p id="tooltip">' + this.t + '</p>');
                    toolTip = $("body").children().last();
                    toolTip.css('top', (e.pageY - yOffset) + 'px').css('left', (e.pageX + xOffset) + 'px').fadeIn('fast');
                },
                function() {
                    this.title = this.t;
                    toolTip.remove();
                });
                $(this).mousemove(function(e) {
                    if (toolTip != undefined)
                        toolTip.css('top', (e.pageY - yOffset) + 'px').css('left', (e.pageX + xOffset) + 'px');
                });
            }
        });
    }
} (jQuery))

//************* IMPORTANT - DO NOT REMOVE******************
// starting the script on page load
$(document).ready(function() {
tooltip();
    //Skin plugin for dropdown list used on the BOM page.
    $('.my-skinnable-select').each(
      function(i) {
          selectContainer = $(this);
          // Remove the class for non JS browsers
          selectContainer.removeClass('my-skinnable-select');
          // Add the class for JS Browers
          selectContainer.addClass('skinned-select');
          // Find the select box
          selectContainer.children().before('<div class="select-text"></div>').each(
          function() {
              // $(this).prev().text(this.options[$('select').attr("selectedIndex")].innerHTML);
              $(this).prev().text(this.options[this.selectedIndex].innerHTML);
          }
        );
          // Store the parent object
          var parentTextObj = selectContainer.children().prev();
          // As we click on the options
          // [A.S.] :   Moved this to the change event as Chrome / Safari will not read the click
          //            event on the drop down list itself, only on the select element.
          selectContainer.children().change(function() {
              // Set the value of the html
              parentTextObj.text(this.options[this.selectedIndex].innerHTML);
          })
      });


       

    
    //Attaches autocomplete functions to input box
    $('#gls-typeahead').autocomplete({ focus: function(e, ui) { return false; } });
    $('#bom-typeahead').autocomplete({ focus: function(e, ui) { return false; } });

});


// Link obfuscate / deobfuscate
function openObfuscated(obfString, targetType) {
    switch (targetType) {
        case "Blank":
            window.open("/Utility/DoPTUrl.aspx?ru=" + obfString);
            break;
        case "Self":
            window.location = "/Utility/DoPTUrl.aspx?ru=" + obfString;
            break;
    }
}
