function initMaster() {
  if($.browser.mozilla) $("form").attr("autocomplete", "off");

  if (typeof AjaxPro != "undefined" && AjaxPro !== null) {
    AjaxPro.timeoutPeriod = 1000 * 10;
    AjaxPro.onTimeout = function(b, res) { nfndebug("Timeout i funktionen " + res.method); }
    AjaxPro.onLoading = function(b) { showBusy(b); }
    AjaxPro.onError = function(res) { nfndebug("Ajax error: " + res.Message); }
  }

  $("#MainMenu").dropdownmenu({animation:"slide", animationspeed:"fast"});
  $("#sitemaptree").treeview({collapsed:true});

  $("#OpenTimes,#ExtOpenTimes,#NLText,#OfferImage,#OfferContent,#NewsImage,#NewsContent1,#NewsContent2").ajaxcontrol();
  $("#CookiePop, #DisclaimerPop").ajaxcontrol({width:720});


  try { initAdmin();}
  catch (e) { nfndebug(e.message); }
  try { initPage();}
  catch (e) { nfndebug(e.message);}
  try { initEvents();}
  catch (e) { nfndebug(e.message); }
  try { initContacts();}
  catch (e) { nfndebug(e.message); }
}

function applyMasterCufon() {
  Cufon.replace(".ajaxTiny h1, .ajaxTiny h2, .ajaxTiny h3");
  Cufon.replace("#toolbox span, #rightarea .puffhead, #pagefooter");
  Cufon.replace("#searchres h3");
  Cufon.replace("#mainmenudiv",{hover:true});
  Cufon.replace("#offerpop .ajaxTiny h1, #offerpop .ajaxTiny h2, #offerpop .ajaxTiny h3");
  Cufon.replace("#offerstore",{hover:true} );
  try { appyPageCufon();}
  catch (e) {}
  try { appyControlCufon();}
  catch (e) {}
}

function ajaxTimeout(b, res) {
  showBusy(false);
  N$('ajaxerr').innerHTML = "Timeout i funktionen " + res.method;
  N$S('ajaxerr').display = "block";
  setTimeout("hideAjaxErr()", 3000);
}
function showBusy(busy) {
  N$S("ajaxbusy").display = (busy ? "block" : "none");
}

function toggleTimes() {
  $("#extopencont").slideToggle();
  var img = $("#extopenlinkright").find("img");
  img.attr("src", (img.attr("src").indexOf("down") < 0 ? "gfx/smallarrdown.png" : "gfx/smallarrup.png"));
}

function toggleOffers() {
  $("#moreOffers").slideToggle();
  var img = $("#moreoffersdiv").find("img");
  img.attr("src", (img.attr("src").indexOf("down") < 0 ? "gfx/smallarrdown.png" : "gfx/smallarrup.png"));
}

function toggleNL() {
  $("#nlform").slideToggle();
  var img = $("#nlarr");
  img.attr("src", (img.attr("src").indexOf("down") < 0 ? "gfx/smallarrdown.png" : "gfx/smallarrup.png"));
}

function showPopup(id) {
//  var top = $(window).height()/2 + $(window).scrollTop() - $("#" + id).height()/2;
  var st = $(window).scrollTop();
  var top = st + 30;
  if (st < 184) top = 184;
  if (top < 0) top = 0;
  var left = 10 + 760/2 - $("#" + id).width()/2;
  $("#pagearea").animate({ opacity:0.3 });
  $("#" + id).css({"top":top,"margin-left":left}).slideDown('normal');
}
function hidePopup(a) {
  if (document.location.hash.length > 0)
    document.location.hash = "";
  $(a).parent().parent().slideUp('normal');
  $("#pagearea").animate({ opacity:1 });
}
function mouseclose(a, over) {
  var img = $(a).find("img");
  img.attr("src",(over ? "gfx/closepop_over.gif" : "gfx/closepop.gif"));
}

function saveNewsletter() {
  var err = "";
  if ($("#nl_fname").val().length == 0) err += "Ange ditt förnamn<br />";
  if ($("#nl_lname").val().length == 0) err += "Ange ditt efternamn<br />";
  if (!$.validateEmail($("#nl_email").val())) err += "Ange en giltig e-postadress<br />";
  if ($("#nl_zip").val().length == 0) err += "Ange ditt postnummer<br />";
  if (!$("#nl_chk1").attr("checked")) err += "Godkänn att Triangeln skickar info<br />";
  if (err.length == 0) {
    var cats = "";
    /*if ($("#nl_chk1").attr("checked")) cats += "," + $("#nl_chk1").parent().find("label").html();
    if ($("#nl_chk2").attr("checked")) cats += "," + $("#nl_chk2").parent().find("label").html();
    if ($("#nl_chk3").attr("checked")) cats += "," + $("#nl_chk3").parent().find("label").html();
    if (cats.length > 0) cats = cats.substring(1);*/
    Master.SaveNewsletter($("#nl_fname").val(), $("#nl_lname").val(), $("#nl_email").val(), $("#nl_zip").val(), $("#nl_phone").val(), cats, saveNewsletter2);
  }
  else {
    $("#nlerr").html(err).css("color","#ff0000").show("normal");
    setTimeout("$('#nlerr').hide('normal')", 3000);
  }
}

function saveNewsletter2() {
  $("#nlerr").html("Tack för din registrering!").css("color","#000").show("normal");
  setTimeout(saveNewsletter3, 3000);
}

function saveNewsletter3() {
  $('#nlerr').hide('normal');
  $("#nlform").slideToggle();
}

function setLanguage(lang) {
  Master.SetLanguage(lang, setLanguage2);
}

function setLanguage2(response) {
  document.location.href = "/";
}

function checkEnter(e) {
  var keynum = 0;
  if(window.event) keynum = e.keyCode;
  else if(e.which) keynum = e.which;
  if (keynum == 13) search();
}

function search() {
  var txt = $("#inpsearch").val();
  if (txt.length > 0)
    Master.Search(txt, search2);
}

function search2(response) {
  var found = false;

  var stores = "";
  for (var i=0; i < response.value[0].length; i++) {
    var vals = response.value[0][i].split('|');
    stores += "<div><a href='" + vals[0] + ".aspx' onfocus='this.blur()'>" + vals[1] + "</a></div>";
  }
  $("#sstores").html(stores);
  $("#sstoresdiv").css("display", (stores.length > 0 ? "block" : "none"));
  found = found || stores.length > 0;

  var events = "";
  for (var i=0; i < response.value[1].length; i++) {
    var vals = response.value[1][i].split('|');
    events += "<div><a href='javascript:void(0)' onclick='showEvent(" + vals[0] + ")' onfocus='this.blur()'>" + vals[1] + "</a><br />" + vals[2] + " | " + vals[3] + "</div>";
  }
  $("#sevents").html(events);
  $("#seventsdiv").css("display", (events.length > 0 ? "block" : "none"));
  found = found || events.length > 0;

  var offers = "";
  for (var i=0; i < response.value[2].length; i++) {
    var vals = response.value[2][i].split('|');
    offers += "<div><a href='javascript:void(0)' onclick=\"popOffer('" + vals[0] + "')\" onfocus='this.blur()'>" + vals[1] + "</a></div>";
  }
  $("#soffers").html(offers);
  $("#soffersdiv").css("display", (offers.length > 0 ? "block" : "none"));
  found = found || offers.length > 0;

  var news = "";
  for (var i=0; i < response.value[3].length; i++) {
    var vals = response.value[3][i].split('|');
    news += "<div><a href='javascript:void(0)' onclick=\"popNews('" + vals[0] + "')\" onfocus='this.blur()'>" + vals[1] + "</a></div>";
  }
  $("#snews").html(news);
  $("#snewsdiv").css("display", (news.length > 0 ? "block" : "none"));
  found = found || news.length > 0;

  $("#nores").css("display",(found ? "none" : "block"));

  $("#searchres").slideDown();
}

function getPopCss(template) {
  var res = {
    image:{},
    content1:{},
    content2:{}
  };
  if (template == "standard.aspx" || template == "offer.aspx") {
    res.image = {"margin-bottom":20, "float":"none"};
    res.content1 = {"width":550, "float":"none"};
    res.content2 = {"display":"none"};
  }
  else if (template == "standard_2col.aspx") {
    res.image = {"width":351, "float":"right"};
    res.content1 = {"width":350, "float":"left"};
    res.content2 = {"display":"none"};
  }
  else if (template == "standard_2colw.aspx") {
    res.image = {"width":234, "float":"right"};
    res.content1 = {"width":466, "float":"left"};
    res.content2 = {"display":"block","margin-top":"20px"};
  }
  return res;
}

function getShareBtn(url, title) {
  var a = $("<a />").addClass("addthis_button_compact").attr({"addthis:url":url, "addthis.title":title, "addthis.description":title}).click(function(){
    return addthis_sendto();
  }).mouseover(function(){
    return addthis_open(this, '', url, title);
  }).mouseout(function(){
    addthis_close();
  }).append(
    $("<img />").attr("src","http://s7.addthis.com/static/btn/v2/sm-share-sv.gif")
  );
  return a;
}

var popprops = 0;
function popOffer(pageId) {
  Master.GetOfferProps(pageId, popOffer2);
  pageTracker._trackPageview('/Offer/' + pageId + '.aspx');
}
function popOffer2(response) {
  popprops = 0;
  $("#offerstore").find("a").html(response.value[0]);
  $("#offerstore").find("a").attr("href", response.value[1] + ".aspx");
  $("#OfferImage").ajaxcontrol_setPropertyId(parseInt(response.value[2]), function(){popOffer3(response.value[4]);});
  $("#OfferContent").ajaxcontrol_setPropertyId(parseInt(response.value[3]), function(){popOffer3(response.value[4]);});

  $("#offeraddthis").empty().append(getShareBtn(response.value[5], response.value[6]));
}
function popOffer3(template) {
  popprops++;
  if (popprops == 2) {
    var css = getPopCss(template);
    $("#offerimg").css(css.image);
    $("#offercont").css(css.content1);
    showPopup('offerpop');
    Cufon.refresh("#offerpop .ajaxTiny h1, #offerpop .ajaxTiny h2, #offerpop .ajaxTiny h3");
    Cufon.refresh("#offerstore",{hover:true} );
  }
}


function popNews(newspage) {
  if (_loggedin) document.location.href = "/" + newspage + ".aspx";
  else  {
    Master.GetNewsProps(newspage, popNews2);
    pageTracker._trackPageview('/Article/' + newspage + '.aspx');
  }
}

var newscount = 0;
function popNews2(response) {
  newscount = 0;
  $("#NewsImage").ajaxcontrol_setPropertyId(parseInt(response.value[0]), function(){popNews3(response.value[3])});
  $("#NewsContent1").ajaxcontrol_setPropertyId(parseInt(response.value[1]), function(){popNews3(response.value[3])});
  $("#NewsContent2").ajaxcontrol_setPropertyId(parseInt(response.value[2]), function(){popNews3(response.value[3])});

  $("#newsaddthis").empty().append(getShareBtn(response.value[4], response.value[5]));
}

function popNews3(template) {
  newscount++;
  if (newscount == 3) {
    var css = getPopCss(template);
    $("#newsimg").css(css.image);
    $("#newscont1").css(css.content1);
    $("#newscont2").css(css.content2);
    showPopup('newspop');
    Cufon.refresh("#newspop .ajaxTiny h1, #newspop .ajaxTiny h2, #newspop .ajaxTiny h3");
  }
}

function travelsearch(txt) {
  $('#reseframe').contents().find('#from').val(txt);
  $('#reseframe').contents().find("form").submit();
}

$(document).ready(function(){
   initMaster();
});
