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) { GetEl(layer).style.display = "inline"; }
function show_2(layer) { GetEl(layer).style.display = "block"; }
function hide(layer) { GetEl(layer).style.display = "none"; }
function setClass(layer, sclass) { GetEl(layer).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; }
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");
    //mywindow.moveTo(0, 0);
}
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");
  var 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";
    //width - 722
    //height - 584
    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 setHTML(layer, val) { try { GetEl(layer).innerHTML = val; } catch (e) { } }
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 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");
  if (catID != "") man.disabled = "";
  else man.disabled = "disabled";

  man.options.length = 0;
  man.options[man.length] = new Option("ALL");

  if (catID != "") for (var i = 0, len = categoryArray[catID].length; i < len; i++) { man.options[man.length] = new Option(categoryArray[catID][i]); }
}
var FilterSelectCategory = "";
var FilterSelectManufacturer = "";
function FilterSelect(el, className) {
  if (className == "Manufacturer") FilterSelectManufacturer = el[el.selectedIndex].text;
  else FilterSelectCategory = el[el.selectedIndex].value;
  var oSelect = GetEl('products');
  var oHidden = GetEl('hiddenproducts');
  var opt, newOpt;
  var 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);
    }
  }
}

var FilterCategory = "";
var FilterManufacturer = "";
function Filter(el, div, className) {
  var filter = el[el.selectedIndex].text.replace("&", "&amp;");
  var hideOrder;
  if (className == "Manufacturer") {
    FilterManufacturer = filter;
    if (filter == "") hideOrder = false;
    else hideOrder = true;
  }
  else FilterCategory = filter;
  var oDiv = GetEl(div);
  var curNode;
  var id;
  var iCount = 0;
  var show, curCat, curMan;
  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;
  var div_rows = new Array();
  var curNode = oDiv.childNodes[0];
  var sort_val;
  var id;
  var 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);
  var 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);
  var curNode, prevNode;
  var 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 CategoryChanged(val) {
  switch (val) {
    case "1": hideByArray([false, true, false, false, false, false, true, false, false, true, false, false, true, false, false, true, true]); break;
    case "2": hideByArray([false, false, false, false, false, false, true, false, false, false, true, false, false, false, false, false, false]); break;
    case "3": hideByArray([false, false, false, false, false, false, false, true, false, false, false, false, false, true, true, true, false]); break;
    case "4": hideByArray([true, false, true, true, true, true, false, false, true, false, false, false, false, false, false, true, false]); break;
    case "5": hideByArray([true, true, false, false, false, false, true, false, true, false, false, true, false, false, false, true, false]); break;
    case "6": hideByArray([true, true, false, false, false, false, false, false, true, false, false, true, false, false, false, true, false]); break;
  }
}

//Tab Layout Pages JS
var currentSearch = "SearchResults";
function SearchResultsTabClicked(layer, nav) {
    urchinTracker("/track/ProductDirectory/TabClick/" + layer);
    hide(currentSearch);
    GetEl(currentSearch + "Tab").className = "inactive";
    currentSearch = layer;
    show_2(currentSearch);
    GetEl(currentSearch + "Tab").className = "active";
    GetEl("SearchResultsTabs").className = "SearchResultsTab" + nav;
}
var currentTab = "Greenhouse";
function SearchResultsTabClicked2(layer, nav) {
    hide(currentTab);
    GetEl(currentTab + "Tab").className = "inactive";
    currentTab = layer;
    show_2(currentTab);
    GetEl(currentTab + "Tab").className = "active";
    GetEl("kbHomeTabs").className = "kbHomeTab" + nav;
}
var currentTab_oem = "Generator";
function SearchResultsTabClicked7(layer, nav) {
    hide(currentTab_oem);
    GetEl(currentTab_oem + "Tab").className = "inactive";
    currentTab_oem = layer;
    show_2(currentTab_oem);
    GetEl(currentTab_oem + "Tab").className = "active";
    GetEl("oemTabs").className = "oemTab" + nav;
}

var currentTab_ps = "Win";
function SearchResultsTabClicked5(layer, nav) {
    hide(currentTab_ps);
    GetEl(currentTab_ps + "Tab").className = "inactive";
    currentTab_ps = layer;
    show_2(currentTab_ps);
    GetEl(currentTab_ps + "Tab").className = "active";
    GetEl("psHomeTabs").className = "psHomeTab" + nav;
}
var currentTab_wh = "EnergyFactor";
function SearchResultsTabClicked6(layer, nav) {
    hide(currentTab_wh);
    GetEl(currentTab_wh + "Tab").className = "inactive";
    currentTab_wh = layer;
    show_2(currentTab_wh);
    GetEl(currentTab_wh + "Tab").className = "active";
    GetEl("whTabs").className = "whTab" + nav;
}
var currentTab_jlc = "JLCLive";
function SearchResultsTabClicked3(layer, nav) {
    hide(currentTab_jlc);
    GetEl(currentTab_jlc + "Tab").className = "inactive";
    currentTab_jlc = layer;
    show_2(currentTab_jlc);
    GetEl(currentTab_jlc + "Tab").className = "active";
    GetEl("jlcTabs").className = "jlcTab" + nav;
}
var currentTab_aia = "whyPropane";
function SearchResultsTabClicked4(layer, nav) {
    hide(currentTab_aia);
    GetEl(currentTab_aia + "Tab").className = "inactive";
    currentTab_aia = layer;
    show_2(currentTab_aia);
    GetEl(currentTab_aia + "Tab").className = "active";
    GetEl("aiaTabs").className = "aiaTab" + nav;
}
var currentProduct;
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";
}
//End Tab Layout Pages JS
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("works");
    //alert($('#states option:selected').val());
    //selIdx = document.forms.states.selectedIndex;
    //newSel = document.forms.states.options[selIdx].text;
    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()
