function openAjaxDialog(dialogid, contenturl, options, formsubmitted) {
  options.autoOpen = false;
  options.close = function() {
    $(this)
      .dialog("destroy")
      .remove();
  }

  var dialog = $("#" + dialogid);
  if (dialog.length == 0) {
    $('<div>')
      .insertAfter("#page")
      .attr("id", dialogid)
      .dialog(options);
  }

  $.ajax({
    async: false,
    cache: false,
    dataType: "html",
    error: function(XMLHttpRequest, textStatus, errorThrown) {
      alert("Nem sikerült megjeleníteni a dialogus ablakot, mert nem sikerült betölteni a tartalmát!\n\nHibakód: " + textStatus);
    },
    success: function (responseText, textStatus) {
      $("object")
        .hide();

      $("#" + this.dialog)
        .html(responseText)
        .dialog("open");

      $("#" + this.dialog + " form")
        .ajaxForm({
          success: formsubmitted
        })
        .find("input[type=text]:first,select")
        .trigger("focus");
    },
    url: contenturl,
    dialog: dialogid
  });
}

function closeDialog(dialogid) {
  $("#" + dialogid)
    .dialog("close");

  $("object")
    .show();
}

function articleMailSent(responseHTML) {
  if (responseHTML.substring(0, 1) == "#") {
    alert(responseHTML.substring(1));

    $("#sendmailwindow")
      .parent()
      .parent()
      .find(".ui-dialog-buttonpane button")
      .removeAttr("disabled")
      .removeClass("disabled");
  } else {
    closeDialog("sendmailwindow");
    alert("Az ajánlót sikeresen elküldtük!");
  }
}

function productMailSent(responseHTML) {
  if (responseHTML.substring(0, 1) == "#") {
    alert(responseHTML.substring(1));

    $("#sendmailwindow")
      .parent()
      .parent()
      .find(".ui-dialog-buttonpane button")
      .removeAttr("disabled")
      .removeClass("disabled");
  } else {
    closeDialog("sendmailwindow");
    alert("Az ajánlót sikeresen elküldtük!");
  }
}

function setFontSize(newfontsize) {
  var articlefontsizelink = $("#articlefontsize");

  if (articlefontsizelink.length > 0) {
    var hrefparts = articlefontsizelink.attr("href").split('/');
    hrefparts[hrefparts.length-1] = 'font' + newfontsize + '.css';
    articlefontsizelink.attr("href", hrefparts.join('/'));

    $.cookie("articlefontsize", null, {path: "/"});

    var today = new Date();
    var cookie_date = new Date(today.getYear(), today.getMonth(), today.getDay() + 3);
    $.cookie("articlefontsize", newfontsize, {path: "/", expire: cookie_date});
  }
}

var currentfontsize = $.cookie("articlefontsize");
var cartquantityupdatetimeout;
var packquantityupdatetimeout;
var inupdate = false;

function updateCartItems() {
  if (inupdate) {
    return false;
  }

  var postdata = $(".cartquantity").serialize().replace(/%5B/g, "[").replace(/%5D/g, "]");

  inupdate = true;
  $.ajax({
    async: true,
    cache: false,
    data: postdata,
    dataType: "text",
    complete: function() {
      inupdate = false;
    },
    type: "post",
    url: "/kosar/?func=update"
  });
}

function updateCustomPackItems() {
  if (inupdate) {
    return false;
  }

  var postdata = $(".packquantity").serialize().replace(/%5B/g, "[").replace(/%5D/g, "]");

  inupdate = true;
  $.ajax({
    async: true,
    cache: false,
    data: postdata,
    dataType: "text",
    complete: function() {
      inupdate = false;
    },
    type: "post",
    url: "/csomagvarazslo/?func=refresh"
  });
}

$(function() {
  $("#l_email")
    .bind("focus", function() {
      var control = $(this);
      if (control.val() == "E-mail") {
        control.val("");
      }
    })
    .bind("blur", function() {
      var control = $(this);
      if (control.val() == "") {
        control.val("E-mail");
      }
    });

  $("#l_password")
    .bind("focus", function() {
      var control = $(this);
      if (control.val() == "Jelszó") {
        control.val("");
      }
    })
    .bind("blur", function() {
      var control = $(this);
      if (control.val() == "") {
        control.val("Jelszó");
      }
    })
    .parent()
    .parent()
    .bind("submit", function() {
      var control = $("#l_email");
      if (control.val() == "E-mail") {
        control.val("");
      }

      var control = $("#l_password");
      if (control.val() == "Jelszó") {
        control.val("");
      }
    });

  $("#productlistsortform select")
    .bind("change", function() {
      $("#productlistsortform").submit();
    });

  $(".article_decreasefontsize")
    .bind("click", function() {
      if (currentfontsize > 10) {
        currentfontsize--;
      } else {
        currentfontsize=10;
      }
      setFontSize(currentfontsize);

      return false;
    });

  $(".article_increasefontsize")
    .bind("click", function() {
      if (currentfontsize < 18) {
        currentfontsize++;
        setFontSize(currentfontsize);
      }

      return false;
    });

  $(".article_print,.printproduct")
    .bind("click", function() {
      if (window.print) {
        window.focus();
        window.print();
      } else if (navigator.userAgent.indexOf("mac") != -1) {
        alert("A nyomtatáshoz használja a 'Cmd + P' gombokat!");
      } else {
        alert("A nyomtatáshoz használja a 'CTRL + P' gombokat!");
      }

      return false;
    });
  $(".article_sendemail")
    .bind("click", function() {
      var _idparts = $(this).attr("id").split("_");

      if ($.ui.dialog) {
        openAjaxDialog("sendmailwindow", "/sendemail.php?id=" + _idparts[2], {
          buttons: {
            "OK": function() {
              $(this)
                .parent()
                .parent()
                .find(".ui-dialog-buttonpane button")
                .attr("disabled", "disabled")
                .addClass("disabled");

              $(this)
                .find("form")
                .submit();
            },

            "Mégse": function() {
              closeDialog($(this).attr("id"));
            }
          },
          modal: true,
          stack: true,
          title: "Cikkajánló küldése",
          width: 600,
          height: 400
        }, articleMailSent);
      }

      return false;
    });

  $(".sendemailproduct")
    .bind("click", function() {
      var _idparts = $(this).attr("id").split("_");

      if ($.ui.dialog) {
        openAjaxDialog("sendmailwindow", "/sendemail.php?pid=" + _idparts[2], {
          buttons: {
            "OK": function() {
              $(this)
                .parent()
                .parent()
                .find(".ui-dialog-buttonpane button")
                .attr("disabled", "disabled")
                .addClass("disabled");

              $(this)
                .find("form")
                .submit();
            },

            "Mégse": function() {
              closeDialog($(this).attr("id"));
            }
          },
          modal: true,
          stack: true,
          title: "Termékajánló küldése",
          width: 600,
          height: 400
        }, productMailSent);
      }

      return false;
    });

  if (currentfontsize) {
    setFontSize(currentfontsize);
  } else {
    currentfontsize = 12;
    setFontSize(12);
  }

  $(".integerinput").numeric();

  $(".cartquantity")
    .bind("keyup", function() {
      if (cartquantityupdatetimeout) {
        clearTimeout(cartquantityupdatetimeout);
      }

      cartquantityupdatetimeout = setTimeout(updateCartItems, 1000);
    })
    .bind("blur", updateCartItems);

  $(".packquantity")
    .bind("keyup", function() {
      if (packquantityupdatetimeout) {
        clearTimeout(packquantityupdatetimeout);
      }

      packquantityupdatetimeout = setTimeout(updateCustomPackItems, 1000);
    })
    .bind("blur", updateCustomPackItems);

  $("#sidesearchform input.searchtext,#topsearchform input.searchtext")
    .bind("focus", function() {
      if ($(this).val() == "Keresett termék...") {
        $(this)
          .val("")
          .addClass("active");
      }
    })
    .bind("blur", function() {
      if ($(this).val() == "") {
        $(this)
          .val("Keresett termék...")
          .removeClass("active");
      }
    });
  $("#sidesearchform")
    .bind("submit", function() {
      var searchtextcontrol = $("#sidesearchform input.searchtext");
      if (searchtextcontrol.val() == "Keresett termék...") {
        searchtextcontrol.val("");
      }

      if (searchtextcontrol.val() == "") {
        alert("Nem írta be a keresett termék nevét vagy annak egy részletét!");
        searchtextcontrol.focus();
        return false;
      } else {
        return true;
      }
    });
  $("#topsearchform")
    .bind("submit", function() {
      var searchtextcontrol = $("#topsearchform input.searchtext");
      if (searchtextcontrol.val() == "Keresett termék...") {
        searchtextcontrol.val("");
      }

      if (searchtextcontrol.val() == "") {
        alert("Nem írta be a keresett termék nevét vagy annak egy részletét!");
        searchtextcontrol.focus();
        return false;
      } else {
        return true;
      }
    });

  $("#accessibleversion").bind("click", function() {
    var sitecss = $("#sitecss");
    var currentcss = sitecss.attr("href");
    var currentstate = currentcss.indexOf("styles.css") > -1;

    if (currentstate) {
      sitecss
        .attr("href", currentcss.replace("styles.css", "accessible.css"));

      $("#accessibleversion")
        .attr("title", "Normál kinézet visszaállítása")
        .find("span")
        .text("Normál kinézet visszaállítása");

      var today = new Date();
      var cookie_date = new Date(today.getYear(), today.getMonth(), today.getDay() + 3);
      $.cookie("normalview", currentstate, {domain: "provitamin.hu", path: "/", expire: cookie_date});
    } else {
      sitecss
        .attr("href", currentcss.replace("accessible.css", "styles.css"));

      $("#accessibleversion")
        .attr("title", "Kontrasztos változat gyengénlátóknak")
        .find("span")
        .text("Kontrasztos változat gyengénlátóknak");

      $.cookie("normalview", null, {domain: "provitamin.hu", path: "/"});
    }

    return false;
  });
});
