var templateControls = new Object();
templateControls["default"] = ["Content1"];

function initPage() {
  $("#Content1").ajaxcontrol({ toolbarLocation:'external', height:600, validElements:"script[charset|defer|language|src|type],iframe[src|width|height|name|align]" });

  hashListener.onHashChanged = hashChanged;
  hashListener.init();
  var urlid = document.location.hash;
  if (urlid.length > 0) {
    _pageId = urlid.substring(1);
    switchPage();
    Master.GetPageIndexes(_pageId, initPage2);
  }
  else
    Master.GetPuffs(initPage3);

}

function initPage2(response) {
  highlightMenu(response.value[0], response.value[1]);
  Master.GetPuffs(initPage3);
}

function initPage3(response) {
  var vals = response.value;
  var allpuffs = new Array();
  for (var i=0; i < vals.length; i++)
    new RightPuff("puff" + i, allpuffs, vals[i][0], vals[i][1], vals[i][2], vals[i][3], i==0);
}

function HSdockaCall(mainidx, subidx) {
  nfndebug(mainidx);
  nfndebug(subidx);
  if (subidx >= 0)
    Master.GetPageId(mainidx, subidx, menuClicked);
}

function HSdockaCall_hasNoSubMenu(mainidx) {
  Master.GetPageId(mainidx, -1, menuClicked);
}

function menuClicked(response) {
  nfndebug(response.value);
  gotoPage(response.value);
}

function gotoPage(id) {
  if (id.indexOf('http') == 0) {
    window.open(id);
    return;
  }
  if (id.indexOf("pageload:") == 0) {
    var hlp = id.split(':');
    document.location.href = hlp[1] + ".aspx";
  }
  else hashListener.setHash(id);
}

function hashChanged() {
  _pageId = hashListener.getHash();
  switchPage();
  Master.GetPageIndexes(_pageId, hashChanged2);
}

function hashChanged2(response) {
  highlightMenu(response.value[0], response.value[1]);
}

function h2(response) {
  highlightMenu(response.value[0], response.value[1]);
}

function switchPage() {
  showWait(true);
  pageTracker._trackPageview('/' + _pageId + '.aspx');
  Master.GetPageTemplate(_pageId, gotPageTemplate);
}

function gotPageTemplate(response) {
  var template = response.value;
  Master.GetPageData(_pageId, templateControls[template], function(r){gotPageData(r, template);});
}

function gotPageData(response, template) {
  if (!response.error) {
    updateAddThis(_pageId, response.value[0], response.value[2]);

    var tt = document.getElementsByTagName("title");
    if (tt.length > 0) tt[0].text = response.value[0];
    var mt = document.getElementsByTagName("meta");
    for (var i=0; i < mt.length; i++) {
      if (mt[i].name == "keywords") mt[i].content = response.value[1];
      else if (mt[i].name == "description") mt[i].content = response.value[2];
    }
    generatePage(template, response.value[3].split(',')[0], response.value[4].split('|')[0]);
  }
}

function generatePage(template, controlid, html) {
  if (template == "default") {
    $("#contentLeft div.ajaxPermissions, #contentLeft div.ajaxTools, #contentLeft div.ajaxToolbarStatic, #contentLeft div.ajaxTinyEditDiv").each(function(){
      $(this).remove();
    });
    $("#contentLeft div.ajaxControl").each(function(){
      $(this).unbind("mouseover").unbind("mouseout");
    });

    var ajaxdiv = $("<div />").addClass("ajaxControl").addClass("ajaxTiny").html(html);

    var main = $("<div />").attr("id", getNextId(_pageId)).addClass("plate_main").css({"display":"none","margin-bottom":"10px"}).append(
      $("<div />").addClass("plate_top").html("&nbsp;")
    ).append(
      $("<div />").addClass("plate_mid").append(
        $("<div />").addClass("plate_content").append(
          ajaxdiv
        )
      )
    ).append(
      $("<div />").addClass("plate_bottom").html("&nbsp;")
    );
    $("#contentLeft").prepend(main)

    ajaxdiv.ajaxcontrol(
      {
        validElements:"script[charset|defer|language|src|type],iframe[src|width|height|name|align]",
        onInitDone:function(){
          generatePage2(main);
        }
      },
      parseInt(controlid)
    );
  }
}

function generatePage2(main) {
  main.slideDown();
  $("#puff0").show();
  showWait(false);
}

function getNextId(baseid) {
  var i = 1;
  while (N$(baseid + String(i))) i++;
  return baseid + String(i);
}

function highlightMenu(mainidx, subidx) {
  if (hasFlash) {
    if (typeof(thisMovie("flashMenu").goHome) != 'function')
      setTimeout(function(){highlightMenu(mainidx, subidx);}, 1000);
    else
      thisMovie("flashMenu").goHome(String(mainidx), String(subidx));
  }
  else {
    var selli = $("#htmlMenu li.selhtmlitem");
    selli.removeClass("selhtmlitem");
    var clickedli = $("#p_" + _pageId);
    clickedli.addClass("selhtmlitem");
  }
}

function mainPageClicked(a) {
  var clickedul = $(a).next();
  if (clickedul.hasClass("selhtmlmenu")) {
    clickedul.slideToggle();
    clickedul.removeClass("selhtmlmenu");
  }
  else {
    var selul = $("#htmlMenu ul.selhtmlmenu");
    if (selul.length > 0) {
      selul.slideToggle();
      selul.removeClass("selhtmlmenu");
    }
    clickedul.slideToggle();
    clickedul.addClass("selhtmlmenu");
  }
}

function subPageClicked(a, mainidx, subidx) {
  Master.GetPageId(mainidx, subidx, menuClicked);
}

function updateAddThis(id, title, descr) {
  $("#addthis").html(
    "<div class='addthis_toolbox addthis_default_style' " +
    "addthis:url='" + _url + id + ".aspx' " +
    "addthis:title='" + title + "' " +
    "addthis:description='" + descr + "'>" +
    "<a class='addthis_button_preferred_1'></a><a class='addthis_button_compact'></a></div>"
  );
  window.addthis.ost = 0;
  window.addthis.ready();
}
