function GetEl(layer) { if (document.getElementById) return document.getElementById(layer); else if (document.all) return document.all[layer]; else if (document.layers) return document.layers[layer]; }
function show(layer) { var el = GetEl(layer); if (el) el.style.display = "inline"; }
function show_2(layer) { var el = GetEl(layer); if (el) el.style.display = "block"; }
function hide(layer) { var el = GetEl(layer); if (el) el.style.display = "none"; }
function setClass(layer, sclass) { var el = GetEl(layer); if (el) el.className = sclass; }
function getVal(layer) { return GetEl(layer).value; }
function getHTML(layer) { return GetEl(layer).innerHTML; }
function setHTML(layer, val) { try { GetEl(layer).innerHTML = val; } catch (e) { } }
function setSelectVal(layer, iIndex) { GetEl(layer).selectedIndex = iIndex; }

var FilterCategory = "", FilterManufacturer = "", FilterSelectCategory = "", FilterSelectManufacturer = "", currentSearch = "SearchResults", currentTab = "Greenhouse", currentTab_oem = "Generator", currentTab_wh = "EnergyFactor", currentTab_ps = "Win", currentTab_jlc = "JLCLive", currentTab_aia = "whyPropane", currentProduct;

function getOurBuilderKitOff() { hide("getOurBuilderKitOff"); show("getOurBuilderKitOn"); }
function getOurBuilderKitOn() { hide("getOurBuilderKitOn"); show("getOurBuilderKitOff"); }
function findAPropaneRetailerOff() { hide("findAPropaneRetailerOff"); show("findAPropaneRetailerOn"); }
function findAPropaneRetailerOn() { hide("findAPropaneRetailerOn"); show("findAPropaneRetailerOff"); }

function mypopup() { mywindow = window.open("html/InteractiveTool_Desc.html", "mywindow", "location=0,status=0,scrollbars=0,width=530,height=470"); }
function displayStimulusLayer(layer_id) { hide("stim_tab_1"); hide("stim_tab_2"); hide("stim_tab_3"); show_2("stim_tab_" + layer_id); return false; }
function jsNewWindow(file, onclick) { if (onclick != null && onclick != "") { try { eval(onclick); } catch (er) { } } window.open(file); }
window.onresize = function () { resizeOverlay(); }
function resizeOverlay() { var overlay = GetEl("overlay"), map = GetEl("FlashMap"); if (overlay.style.display != "none") { var pageWidth = document.body.clientWidth; if (document.body.scrollWidth > pageWidth) pageWidth = document.body.scrollWidth; var pageHeight = document.body.clientHeight; if (document.body.scrollHeight > pageHeight) pageHeight = document.body.scrollHeight; if (window.scrollMaxY && window.scrollMaxY > 0) pageHeight += window.scrollMaxY; if (pageWidth < 925) pageWidth = 925; overlay.style.width = pageWidth + "px"; overlay.style.height = pageHeight + "px"; pageHeight = document.documentElement.clientHeight; if (pageHeight < 584) map.style.top = 0; else map.style.top = ((pageHeight - 584) / 2) + "px"; pageWidth = document.documentElement.clientWidth; if (pageWidth < 722) map.style.left = 0; else map.style.left = ((pageWidth - 722) / 2) + "px"; } }

function ViewMap() { show_2("overlay"); show_2("FlashMap"); resizeOverlay(); urchinTracker('/track/media/interactive_map'); }
function HideMap() { hide("FlashMap"); hide("overlay"); }

function googleTrack(val) { urchinTracker(val); }
function redirectAndTrack(track, loc) { googleTrack(track); window.location = loc; }

function initProductSearch(productcategory, catID, manufacturer, search3) { setSelectVal('productcategory', productcategory); var man = GetEl('manufacturer'); if (productcategory != 0) { filterManufacturer(catID); man.disabled = ''; man.selectedIndex = manufacturer; if (search3 != 0) setSelectVal("Search3DD_" + productcategory, search3); } else man.disabled = 'disabled' }
function ProductDirectoryPrevious(layer, name) { urchinTracker("/track/ProductDirectory/Product/PreviousArrow/" + name); hide(layer); var previous = GetEl(layer).previousSibling; previous.style.display = "block"; currentProduct = previous.id; }
function ProductDirectoryNext(layer, name) { urchinTracker("/track/ProductDirectory/Product/NextArrow/" + name); hide(layer); var next = GetEl(layer).nextSibling; next.style.display = "block"; currentProduct = next.id; }
function filterManufacturer(catID) { var man = GetEl("manufacturer"), oDiv = GetEl("featured_products"); if (catID != "") man.disabled = ""; else man.disabled = "disabled"; man.options.length = 0; man.options[man.length] = new Option("ALL"); if (oDiv) { for (var i = 0; i < oDiv.childNodes.length; i++) oDiv.childNodes[i].style.display = "none"; var FP = GetEl("FeaturedProduct_" + catID); if (FP) show_2("FeaturedProduct_" + catID); else show_2("FeaturedProductIntro"); } oDiv = GetEl("Search3"); for (var i = 0; i < oDiv.childNodes.length; i++) oDiv.childNodes[i].style.display = "none"; var el = GetEl("Search3_" + catID); if (el) { el.style.display = "block"; setSelectVal("Search3DD_" + catID, 0); } if (catID != "") { var catArr = categoryArray["Cat" + catID]; if (catArr) for (var i = 0, len = catArr.length; i < len; i++) man.options[man.length] = new Option(catArr[i][1], catArr[i][0]); else catID = ""; } }
function SearchProducts() {
  var cat = GetEl("productcategory"), man = GetEl("manufacturer"), oDiv = GetEl("Search3"), el, searchID = "", searchVal = "", search;
  if (cat.value == "") { alert("Product Category is required."); return; }
  for (var i = 0; i < oDiv.childNodes.length; i++) {
    el = oDiv.childNodes[i];
    if (el.style.display == "block") {
      searchID = el.id.replace("Search3_", "");
      search = GetEl("Search3DD_" + searchID);
      if (search.value) searchVal = search.value;
      else searchVal = search.options[search.selectedIndex].text;
      break;
    }
  }
  var qs = "?page=productsearchresults&productcategory=" + cat.value + "&manufacturer=" + man.value;
  if (searchVal != "") qs += "&s3id=" + searchID + "&s3=" + searchVal;
  window.location = qs;
}

function FilterSelect(el, className) { if (className == "Manufacturer") FilterSelectManufacturer = el[el.selectedIndex].text; else FilterSelectCategory = el[el.selectedIndex].value; var oSelect = GetEl('products'), oHidden = GetEl('hiddenproducts'), opt, newOpt, opts = new Array(); for (var i = oSelect.options.length - 1; i > -1; i--) { opt = oSelect.options[i]; opts[opts.length] = new Array(opt.text, opt.value); oSelect.remove(i); } for (var i = oHidden.options.length - 1; i > -1; i--) { opt = oHidden.options[i]; opts[opts.length] = new Array(opt.text, opt.value); oHidden.remove(i); } opts.sort(); var curText, curVal, cat, man; for (var i = 0; i < opts.length; i++) { curText = opts[i][0]; curVal = opts[i][1]; cat = curVal.split('|'); cat = cat[1]; man = curText.split(' - '); man = man[0]; if ((FilterSelectManufacturer == "" || man == FilterSelectManufacturer) && (FilterSelectCategory == "" || cat == FilterSelectCategory)) { newOpt = new Option(curText, curVal); oSelect.add(newOpt); } else { newOpt = new Option(curText, curVal); oHidden.add(newOpt); } } }
function Filter(el, div, className) { var filter = el[el.selectedIndex].text.replace("&", "&amp;"), hideOrder, oDiv = GetEl(div), curNode, id, iCount = 0, show, curCat, curMan; if (className == "Manufacturer") { FilterManufacturer = filter; if (filter == "") hideOrder = false; else hideOrder = true; } else FilterCategory = filter; for (var i = 0; i < oDiv.childNodes.length; i++) { curNode = oDiv.childNodes[i]; id = curNode.id.replace("div_", ""); curCat = getHTML("Category_" + id); curMan = getHTML("Manufacturer_" + id); if (FilterCategory == "" && FilterManufacturer == "") show = true; else if (FilterCategory == "" && curMan == FilterManufacturer) show = true; else if (FilterManufacturer == "" && curCat == FilterCategory) show = true; else if (curMan == FilterManufacturer && curCat == FilterCategory) show = true; else show = false; if (show) { if (iCount % 2 == 0) curNode.className = "DivTableRow Grey"; else curNode.className = "DivTableRow White"; curNode.style.display = "block"; if (hideOrder) curNode.childNodes[0].className = "Order Disabled"; else curNode.childNodes[0].className = "Order"; iCount++; } else curNode.style.display = "none"; } }

function CutRows(oDiv, id_prefix, sort_type) { var nbRows = oDiv.childNodes.length, div_rows = new Array(), curNode = oDiv.childNodes[0], sort_val, id, i = 0; while (curNode != null) { i++; if (id_prefix != null) { id = curNode.id.replace("div_", ""); if (sort_type == null || sort_type == "html") sort_val = getHTML(id_prefix + "_" + id); else if (sort_type == "checkbox") sort_val = GetEl(id_prefix + "_" + id).checked; else sort_val = getVal(id_prefix + "_" + id); } else sort_val = i; div_rows[div_rows.length] = new Array(sort_val, curNode); oDiv.removeChild(curNode); curNode = oDiv.childNodes[0]; } return div_rows; }
function MoveRowUp(id, div) { var oDiv = GetEl(div), curNode, prevNode; for (var i = 0; i < oDiv.childNodes.length; i++) { curNode = oDiv.childNodes[i]; if (curNode.id.replace("div_", "") == id) { if (prevNode.childNodes[0].childNodes[0].childNodes[0].style.display == "none") { prevNode.childNodes[0].childNodes[0].childNodes[0].style.display = "inline"; curNode.childNodes[0].childNodes[0].childNodes[0].style.display = "none"; } if (curNode.childNodes[0].childNodes[1].childNodes[0].style.display == "none") { curNode.childNodes[0].childNodes[1].childNodes[0].style.display = "inline"; prevNode.childNodes[0].childNodes[1].childNodes[0].style.display = "none"; } oDiv.removeChild(curNode); oDiv.insertBefore(curNode, prevNode); if (curNode.className == "DivTableRow Grey") curNode.className = "DivTableRow White"; else curNode.className = "DivTableRow Grey"; if (prevNode.className == "DivTableRow Grey") prevNode.className = "DivTableRow White"; else prevNode.className = "DivTableRow Grey"; } else prevNode = curNode; } }
function MoveRowDown(id, div) { var oDiv = GetEl(div), curNode, prevNode, move = false; for (var i = 0; i < oDiv.childNodes.length; i++) { curNode = oDiv.childNodes[i]; if (move) { oDiv.removeChild(curNode); oDiv.insertBefore(curNode, prevNode); if (curNode.className == "DivTableRow Grey") curNode.className = "DivTableRow White"; else curNode.className = "DivTableRow Grey"; if (prevNode.className == "DivTableRow Grey") prevNode.className = "DivTableRow White"; else prevNode.className = "DivTableRow Grey"; if (prevNode.childNodes[0].childNodes[0].childNodes[0].style.display == "none") { prevNode.childNodes[0].childNodes[0].childNodes[0].style.display = "inline"; curNode.childNodes[0].childNodes[0].childNodes[0].style.display = "none"; } if (curNode.childNodes[0].childNodes[1].childNodes[0].style.display == "none") { curNode.childNodes[0].childNodes[1].childNodes[0].style.display = "inline"; prevNode.childNodes[0].childNodes[1].childNodes[0].style.display = "none"; } break; } if (curNode.id.replace("div_", "") == id) move = true; prevNode = curNode; } }
function SortDiv(div, id_prefix, hr_link, sort_type) { var oDiv = GetEl(div); var div_rows = CutRows(oDiv, id_prefix, sort_type); div_rows.sort(); if (hr_link.className == "UpArrow") hr_link.className = "DownArrow"; else { hr_link.className = "UpArrow"; div_rows.reverse(); } for (var i = 0; i < div_rows.length; i++) { curNode = div_rows[i][1]; if (i % 2 == 0) curNode.className = "DivTableRow Grey"; else curNode.className = "DivTableRow White"; oDiv.appendChild(curNode); } }

function MoveUp(id, div, page) { MoveRowUp(id, div); var params = "action=moveup&id=" + id; Http.get("default.aspx?page=" + page, params, HiddenUpdated, null); }
function MoveDown(id, div, page) { MoveRowDown(id, div); var params = "action=movedown&id=" + id; Http.get("default.aspx?page=" + page, params, HiddenUpdated, null); }
function UpdateFeatured(id, val) { var params = "action=updatefeatured&id=" + id + "&val=" + val; Http.get("default.aspx?page=productadmin", params, FeatureUpdated, null); }
function FeatureUpdated(xmlReply) { }
function UpdateHidden(id, val) { var params = "action=updatehidden&id=" + id + "&val=" + val; Http.get("default.aspx?page=productadmin", params, HiddenUpdated, null); }
function HiddenUpdated(xmlReply) { }


function SearchResultsTabClicked(tab, id, layer) {
  urchinTracker("/track/ProductDirectory/TabClick/" + layer);
  var oDiv = GetEl("SearchResultsTabs" + id);
  for (var i = 0; i < oDiv.childNodes.length; i++) oDiv.childNodes[i].className = "inactive";
  tab.className = "active";
  oDiv = GetEl("SearchResultsInfo" + id);
  for (var i = 0; i < oDiv.childNodes.length; i++) oDiv.childNodes[i].style.display = "none";
  show_2(layer + id);
  if (layer == "SearchResults") show_2("SearchResultsProductLinks" + id);
  else hide("SearchResultsProductLinks" + id);
}

function SearchResultsTabClick(hideLayer, showLayer, tab, nav) { hide(hideLayer); GetEl(hideLayer + "Tab").className = "inactive"; show_2(showLayer); GetEl(showLayer + "Tab").className = "active"; GetEl(tab).className = tab + nav; } //GetEl(tab).className = tab + nav; 
function SearchResultsTabClicked2(layer, nav) { SearchResultsTabClick(currentTab, layer, "kbHomeTabs", nav); currentTab = layer;return false; }
function SearchResultsTabClicked7(layer, nav) { SearchResultsTabClick(currentTab_oem, layer, "oemTabs", nav); currentTab_oem = layer; }
function SearchResultsTabClicked5(layer, nav) { SearchResultsTabClick(currentTab_ps, layer, "psHomeTabs", nav); currentTab_ps = layer; }
function SearchResultsTabClicked6(layer, nav) { SearchResultsTabClick(currentTab_wh, layer, "whTabs", nav); currentTab_wh = layer; }
function SearchResultsTabClicked3(layer, nav) { SearchResultsTabClick(currentTab_jlc, layer, "jlcTabs", nav); currentTab_jlc = layer; return false; }
function SearchResultsTabClicked4(layer, nav) { SearchResultsTabClick(currentTab_aia, layer, "aiaTabs", nav); currentTab_aia = layer; }

function ShowProduct(layer, name, type) { urchinTracker("/track/ProductDirectory/Product/" + type + "/" + name); currentProduct = layer; hide("SearchResultsProducts"); show_2(currentProduct); if (navigator.appVersion.toLowerCase().indexOf("safari") > -1) window.location.hash = "SearchResultsContentNot"; window.location.hash = "#SearchResultsContent"; }
function HideProduct() { hide(currentProduct); show_2("SearchResultsProducts"); if (navigator.appVersion.toLowerCase().indexOf("safari") > -1) window.location.hash = "SearchResultsContentNot"; window.location.hash = "#SearchResultsContent"; }

function getStateVal() { alert(document.forms[states].options[document.forms[states].selectedIndex].value); };

function hideByArray(ar) { for (var i = 0, len = ar.length - 1; i < len; i++) { if (ar[i]) show_2("Row_" + (11 + i)); else hide("Row_" + (11 + i)); } }
var Http = { ReadyState: { Uninitialized: 0, Loading: 1, Loaded: 2, Interactive: 3, Complete: 4 }, Status: { OK: 200, Created: 201, Accepted: 202, NoContent: 204, BadRequest: 400, Forbidden: 403, NotFound: 404, Gone: 410, ServerError: 500 }, Cache: { Get: 1, GetCache: 2, GetNoCache: 3, FromCache: 4 }, Method: { Get: "GET", Post: "POST", Put: "PUT", Delete: "DELETE" }, enabled: true, logging: true, _get: null, _cache: new Object(),
  Init: function () { Http._get = Http._getXmlHttp(); Http.enabled = (Http._get != null); },
  _getXmlHttp: function () { try { if (window.XMLHttpRequest) return new XMLHttpRequest(); else if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert(e); } return null; },
  get: function (url, params, callback, callback_params) {
    try {
      if (!Http.enabled) throw "Http: XmlHttpRequest not available."; if (!url) throw "Http: A URL must be specified"; var method = Http.Method.Post; if (!params) method = Http.Method.Get; else if (params == "") method = Http.Method.Get;
      if ((Http._get.readyState != Http.ReadyState.Uninitialized) && (Http._get.readyState != Http.ReadyState.Complete)) this._get.abort();
      Http._get.open(method, url, true);
      if (method == Http.Method.Post) { Http._get.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); Http._get.setRequestHeader("Content-length", params.length); Http._get.setRequestHeader("Connection", "close"); }
      Http._get.onreadystatechange = function () { if (Http._get.readyState != Http.ReadyState.Complete) return; var cb_params = new Array(); cb_params.push(Http._get); if (callback_params) for (var i = 0; i < callback_params.length; i++) cb_params.push(callback_params[i]); if (callback) callback.apply(null, cb_params); }
      Http._get.send(params || null);
    }
    catch (er) { alert(er); }
  }
}
Http.Init()
