﻿// JScript File

function setSearchValuesFromQueryString(doc, queryStringKeyword, queryStringRefer) {
    var queryStringKeywordValue = null;
    var queryStringReferValue = null;

    if (Request.QueryString(queryStringKeyword).Count > 0) {
        queryStringKeywordValue = Request.QueryString(queryStringKeyword).Item(1);
    }
    if (Request.QueryString(queryStringRefer).Count > 0) {
        queryStringReferValue = Request.QueryString(queryStringRefer).Item(1);
    }
    
    if ((queryStringKeywordValue != null) & (queryStringKeywordValue != "")) {
        var textObject;
        var textObjectFound = false;
        for (var i = 0; i < doc.forms[0].elements.length; i++) {
            var objectId = doc.forms[0].elements[i].id;
          
           // added check for null 05/21/2007
           if ((queryStringReferValue != null))  
           {
            if (queryStringReferValue.indexOf("OAC") > 0) {
                // Any Catalog requested
                if (objectId.indexOf("ui_k_ac") > 0) {
                    textObject = doc.forms[0].elements[i];
                    textObjectFound = true;
                }
            } else {
                // Keyword Search requested
                if (objectId.indexOf("ui_k_kw") > 0) {
                    textObject = doc.forms[0].elements[i];
                    textObjectFound = true;
                }
            }
            
            if (textObjectFound) {
                break; // text field found, exit for loop
            }
           }
        }
        //alert(buttonObject.id + ";button found=" + buttonObjectFound.toString());

        if (textObjectFound) {
            // populate search value in search header
            textObject.value = queryStringKeywordValue;
            return false;       
//            event.returnValue=false;
//            event.cancel = true;
        }
    }
            
}

function windowLocationEmailDealSignup(objButton, url) {
    var emailAddress = objButton.form.ctl00_cphMain_txtEmailAddress.value;
    var qsEmailAddress = "&emailaddress=" + emailAddress;
    var qsEmailAddressVer = "&emailaddress_ver=" + emailAddress;
    
    url += qsEmailAddress + qsEmailAddressVer;
    //alert(url);
    window.parent.location.href = url;
    
    return false;
}

// refocus when a dropdown selected index changes
function selectedIndexChangeRefocus(callingObject, callingObjectId, focusId) {
    if (document.all || document.getElementById) {
        // find respective button
        var callingObjectUniqueId = callingObject.id;
        var focusUniqueId = callingObjectUniqueId.replace(callingObjectId, focusId);
        
        // iterate page controls
        var focusObject;
        var focusObjectFound = true;
        focusObject = document.getElementById(focusUniqueId);

        if (focusObjectFound) {
            // focus on the next field
            focusObject.focus();
        }
    }
    
    return false;
}

// trigger respective submit button when enter key down
function keyDownHandlerGeneric(callingObject, callingObjectId, buttonId, e) {
    // process only the Enter key
    var browserName = whichBrowser();
    
    //alert(event.keyCode);
    if (browserName == "Internet Explorer")
    {
        //alert("Internet Explorer");
        if (event.keyCode && event.keyCode == 13)
        {
            // find respective button
            var callingObjectUniqueId = callingObject.id;
            
            var buttonUniqueId = callingObjectUniqueId.replace(callingObjectId, buttonId);

            // iterate page controls
            var buttonObject;
            var buttonObjectFound = true;
            buttonObject = callingObject.document.forms[0].elements[buttonUniqueId];

            if (buttonObjectFound) {
                // cancel the default submit
                event.returnValue = false;
                event.cancel = true;
                // submit the form by programmatically clicking the specified button
                buttonObject.click();
            }
            
            return false;
        }
    }
    else {
        e.returnValue = false;
        e.cancel = true;
        return false;
    }
}

// trigger respective submit button when enter key down
//var msg = "";
//if (document.getElementById) {msg += "document.getElementById" + "\n";}
//if (document.all) {msg += "document.all" + "\n";}
//if (document.layers) {msg += "document.layers" + "\n";}
//alert(msg);
function keyPressHandlerGeneric(callingObject, callingObjectId, buttonId, e) {
    // process only the Enter key; trigger respective submit button
    
    // fetch keycode pressed
    var keycode = "";
    if (e.keyCode) {
        keycode=e.keyCode;
    } else {
        keycode=e.which;
    }

    if (keycode == 13)
    {
        //alert("Enter key pressed!");
        // find respective submit button
        var callingObjectUniqueId = callingObject.id;
        var buttonUniqueId = callingObjectUniqueId.replace(callingObjectId, buttonId);
        var buttonObject;
        buttonObject = document.getElementById(buttonUniqueId);

        // submit the form by programmatically clicking the specified button
        buttonObject.click();
        
        // cancel the default submit
        return false;
    }
}

// Be sure .NET 2.0 variables loaded in browser before allowing submit
// This prevents "Validation of ViewState Mac failed" exception.
// See http://forums.asp.net/thread/1593735.aspx
function ensureDotNetVariablesExist()
{
    return !(document.getElementById("__EVENTVALIDATION")==null);
} 
