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) {
  if (subidx >= 0)
    Master.GetPageId(mainidx, subidx, menuClicked);
}

function HSdockaCall_hasNoSubMenu(mainidx) {
  Master.GetPageId(mainidx, -1, menuClicked);
}

function menuClicked(response) {
  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) {
    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(','));
  }
}

function generatePage(template, controlids) {
  if (template == "default") {
    var ajaxdiv = $("<div />").addClass("ajaxTiny");
    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;")
    );

    ajaxdiv.ajaxcontrol({
      width:430,
      height:600,
      toolbarLocation: 'external',
      contentByAjax:true,
      validElements:"script[charset|defer|language|src|type],iframe[src|width|height|name|align]",
      onInitDone:function(){
        generatePage2(main, ajaxdiv, parseInt(controlids[0]));
      }
    });
  }
}

function generatePage2(main, ajaxdiv, propid) {
  ajaxdiv.ajaxcontrol_setPropertyId(propid, function(){generatePage3(main);});
}

function generatePage3(main) {
  $("#contentLeft").prepend(main)
  main.slideDown();
  $("#puff0").show();
  showWait(false);
}


function getNextId(baseid) {
  var i = 1;
  while (N$(baseid + String(i))) i++;
  return baseid + String(i);
}





