﻿/* -- Sitewide JavaScript Library */

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}


function changeImagesArray(array) {
	if (preloadFlag == true) {
		var d = document; var img;
		for (var i=0; i<array.length; i+=2) {
			img = null; var n = array[i];
			if (d.images) {img = d.images[n];}
			if (!img && d.getElementById) {img = d.getElementById(n);}
			if (img) {img.src = array[i+1];}
		}
	}
}


function changeImages() {
	changeImagesArray(changeImages.arguments);
}

// clear the text from the search textbox
function clearSearch() {
  var s = document.getElementById("quicksearch");
  s.value = "";	
}

// create product drop down menu
function createMenu() {
  var u = document.getElementById("product_list");
  var oXmlHttp = zXmlHttp.createRequest();
  oXmlHttp.open("get", "/product/getEnvProducts.aspx", true);
  oXmlHttp.onreadystatechange = function () {
    if (oXmlHttp.readyState == 4) {
      if (oXmlHttp.status == 200) {
        u.innerHTML = oXmlHttp.responseText;        
      }
    }          
  }  
  oXmlHttp.send(null);  
  createcepMenu();
}

// create product drop down menu
function createcepMenu() { 
  var u = document.getElementById("product_list2");
  var oXmlHttp = zXmlHttp.createRequest();
  oXmlHttp.open("get", "/product/getProducts.aspx", true);
  oXmlHttp.onreadystatechange = function () {
    if (oXmlHttp.readyState == 4) {
      if (oXmlHttp.status == 200) {
        u.innerHTML = oXmlHttp.responseText;              
      }
    }          
  }
  
  oXmlHttp.send(null);
}

// create the product rollovers and also trigger the menu
function productOver() {
  changeImages('esp', '/ssi-images/esp-over.gif');
  var u = document.getElementById("product_list");
  u.style.display = 'block';   
}

function productOut() {
  changeImages('esp', '/ssi-images/esp.gif');
  var u = document.getElementById("product_list");
  u.style.display = "none";
}

// create the product rollovers and also trigger the menu
function cepOver() {
  changeImages('cep', '/ssi-images/cep-over.gif');
  var u = document.getElementById("product_list2");
  u.style.display = 'block';  
}

function cepOut() {
  changeImages('cep', '/ssi-images/cep.gif');
  var u = document.getElementById("product_list2");
  u.style.display = "none";
}


// create cross-browser implementatin of xmlhttp
var zXml = {
    useActiveX: (typeof ActiveXObject != "undefined"),
    useDom: document.implementation && document.implementation.createDocument,
    useXmlHttp: (typeof XMLHttpRequest != "undefined")
};

zXml.ARR_XMLHTTP_VERS = ["MSXML2.XmlHttp.5.0", "MSXML2.XmlHttp.4.0", 
                         "MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp",
                         "Microsoft.XmlHttp"];

zXml.ARR_DOM_VERS = ["MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0", 
                     "MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument",
                     "Microsoft.XmlDom"];
                   
/**
 * Static class for handling XMLHttp creation.
 * @class
 * @scope public
 */                     
function zXmlHttp() {
}

/**
 * Creates an XMLHttp object.
 * @static
 * @scope public
 * @return An XMLHttp object.
 */
zXmlHttp.createRequest = function ()/*:XMLHttp*/ {

    if (zXml.useXmlHttp) {
        return new XMLHttpRequest();
    } else if (zXml.useActiveX) {
  
        if (!zXml.XMLHTTP_VER) {
            for (var i=0; i < zXml.ARR_XMLHTTP_VERS.length; i++) {
                try {
                    new ActiveXObject(zXml.ARR_XMLHTTP_VERS[i]);
                    zXml.XMLHTTP_VER = zXml.ARR_XMLHTTP_VERS[i];
                    break;
                } catch (oError) {                
                }
            }
        }
        
        if (zXml.XMLHTTP_VER) {
            return new ActiveXObject(zXml.XMLHTTP_VER);
        } else {
            throw new Error("Could not create XML HTTP Request.");
        }
    } else {
        throw new Error("Your browser doesn't support an XML HTTP Request.");
    }

};

/**
 * Indicates if XMLHttp is available.
 * @static
 * @scope public
 * @return True if XMLHttp is available, false if not.
 */
zXmlHttp.isSupported = function ()/*:Boolean*/ {
    return zXml.useXmlHttp || zXml.useActiveX;
};