var firstRun = 0;
var termWindowConfig = 'toolbar=no, menubar=no, scrollbars=yes, resizable=no, location=no, directories=no, status=no';
var termWindowConfigWidth = 600;
var termWindowConfigHeight = 600;
var currentChecked = new Array();
currentChecked['cash_on_delivery'] = "";
currentChecked['kreditor'] = "";
currentChecked['invoice'] = "";

function expandCategory(id){
    var a = document.getElementById("categories").getElementsByTagName("A");
    for(var i=0;i<a.length;i++){
        if(a[i].rel == id){
            var menuLevel1 = a[i].parentNode.parentNode.parentNode;
            var menuLevel2 = a[i].parentNode.parentNode.parentNode.parentNode.parentNode;
            if(menuLevel1.className == "expand")menuLevel1.className = "collapse";
            if(menuLevel2.className == "expand")menuLevel2.className = "collapse";
        }
    }
}

function expandMenu(obj){
  obj = document.getElementById(obj);
  if(obj.parentNode.className == "expand"){
    obj.parentNode.className = "collapse";
  }else{
    obj.parentNode.className = "expand";
  }
  return;
}
function initUnobtrusiveJs(){
    if(firstRun != 0)return;
    firstRun++;
    initPriceJs();

    if(document.getElementById('headerloginpassword'))changeInputType(document.getElementById('headerloginpassword'), 'text', true);
    if(document.getElementById('loginpassword'))changeInputType(document.getElementById('loginpassword'), 'text', true);
    if(document.getElementById("categories")){
        var a = document.getElementById("categories").getElementsByTagName("A");
        // Make menu dynamic
        for(var i=0;i<a.length;i++){
            if(a[i].className == "expand"){
              a[i].className = "expandlink";
              a[i].parentNode.className = "expand";
              a[i].setAttribute("href","javascript:expandMenu('menu"+i+"');");
              a[i].setAttribute("id",("menu"+i));
            }else{
              var arrayHref = a[i].getAttribute("href").split("/");
              var categoryId = arrayHref[(arrayHref.length)-1];
              a[i].setAttribute("rel",categoryId);
            }
        }

        var u = document.getElementById("categories").getElementsByTagName("UL");
        if(u[0].id != '')expandCategory(u[0].id);
    }

    // Make productlisting clickable
    var p = document.getElementsByTagName("P");
    for(var i=0;i<p.length;i++){
      if(p[i].className == "information"){
        a = p[i].getElementsByTagName("A");
        for(var j=0;j<a.length;j++){
          p[i].parentNode.setAttribute("rel",a[j].getAttribute("href"));
          p[i].parentNode.style.cursor = 'pointer';
          p[i].parentNode.onclick=function(){
            this.id = "activelink";
            var obj = document.getElementById(this.id);
            document.location.href = obj.getAttribute("rel");
            this.id = "";
            return;
          };
        }
      }
    }
    var d = document.getElementsByTagName("DIV");
    var count = 0;
    // Make dynamic product galleries
    for(var i=0;i<d.length;i++){
      if(d[i].className == "images"){
        if(count != 0){
          d[i].style.display = "none";
        }
        count++;
      }
    }

    // Create cart confirmation dialog
    if(document.getElementById("detailedcart")){
      var a = document.getElementById("detailedcart").getElementsByTagName("A");
      for(var i=0;i<a.length;i++){
        if(a[i].parentNode.className == "delete"){
          a[i].setAttribute("rel",a[i].getAttribute("href"));
          a[i].setAttribute("href","javascript:;");
          a[i].onclick=function(){
              var result = confirm(deleteitem);
              if(result){
                this.id = "deletelink";
                var obj = document.getElementById(this.id);
                document.location.href = obj.getAttribute("rel");
                this.id = "";
              }
              return;
           };
        }
      }
    }
    // Validate loginform
    if(document.getElementById("login")){
      var f = document.getElementById("login").getElementsByTagName("FORM");
      for(var i=0;i<f.length;i++){
        f[i].onsubmit=function(){
          var inputs = this.getElementsByTagName("INPUT");
          for(var j=0;j<inputs.length;j++){
            if((inputs[j].name == "password" && inputs[j].value == "") || (inputs[j].name == "username" && inputs[j].value == "")){
              alert(loginfailed);
              return false;
            }
          }
        }
      }
    }
    // Validate registerform
    if(document.getElementById("customer")){
      var f = document.getElementById("customer").getElementsByTagName("FORM");
      f[0].onsubmit = function(){
        var i = document.getElementById("userdetails").getElementsByTagName("INPUT");
        for(var j=0;j<i.length;j++){
            if((i[j].value=="") && i[j].className.match('required')){
              alert(registerfailed);
              return false;
            }
        }
      }
    }
    // Modify terms & conditions form
    if(document.getElementById("confirm")){
      var i = document.getElementById("confirm").getElementsByTagName("INPUT");
      for(var j=0;j<i.length;j++){
        if(i[j].getAttribute("type") == "submit"){
          i[j].setAttribute("disabled",true);

          i[j].onclick=function(){
            var rb = document.getElementById("payment").getElementsByTagName("INPUT");
            for(var k=0;k<rb.length;k++){
              if(rb[k].checked)var paymentType = rb[k].value;
            }
            var pno="0000";
            if(document.getElementById("pno")){
              pno = document.getElementById("pno").value;
            }

            var deliveryData = "&firstname=" + escape(document.getElementById("delivery_firstname").value)+" ";
            deliveryData += "&lastname=" + escape(document.getElementById("delivery_lastname").value)+" ";
            deliveryData += "&address=" + escape(document.getElementById("delivery_address").value)+" ";
            deliveryData += "&zipcode=" + escape(document.getElementById("delivery_zipcode").value)+" ";
            deliveryData += "&city=" + escape(document.getElementById("delivery_city").value)+" ";
            deliveryData += "&phone=" + escape(document.getElementById("delivery_phone").value)+" ";
            deliveryData += "&country=" + escape(document.getElementById("delivery_country").value)+" ";
            deliveryData += "&company=" + escape(document.getElementById("delivery_company").value)+" ";
            
            deliveryData += "&cellphone=" + escape(document.getElementById("delivery_cellphone").value)+" ";
            deliveryData += "&org_no=" + escape(document.getElementById("delivery_org_no").value)+" ";            

            deliveryData += "&smoking=" + escape(document.getElementById("smoking").value)+" ";
            deliveryData += "&adults=" + escape(document.getElementById("adults").value)+" ";
            deliveryData += "&children=" + escape(document.getElementById("children").value)+" ";
            deliveryData += "&transport=" + escape(document.getElementById("transport").value)+" ";
            deliveryData += "&out_transport=" + escape(document.getElementById("out_transport").value)+" ";

            tb_show('',paymentUrl+'?payment='+paymentType+'&pno='+pno+deliveryData+'&KeepThis=true&TB_iframe=true&height=520&width=500&',null);
            return false;
          }
        }else if(i[j].getAttribute("type") == "checkbox"){
          i[j].onclick = function(){
            var i = document.getElementById('confirm').getElementsByTagName("INPUT");
            for(var j=0;j<i.length;j++){
              if(i[j].getAttribute("type") == "submit"){
                i[j].disabled = !this.checked;
              }
            }
          }
        }
      }
      // Generate popup link
      var a = document.getElementById("confirm").getElementsByTagName("A");
      a[0].setAttribute("rel",a[0].getAttribute("href"));
      a[0].setAttribute("href","javascript:;");
      a[0].onclick = function(){
      	var popw=640;
      	var poph=480;
      	if (document.all || document.layers) {
      	   popw = screen.availWidth;
      	   poph = screen.availHeight;
      	}
      	var posLeft = (popw-termWindowConfigWidth)/2, posTop = (poph-termWindowConfigHeight)/2;
        var windowProperties = termWindowConfig+",left="+posLeft+",top="+posTop+",width="+termWindowConfigWidth+",height="+termWindowConfigHeight;
        window.open(this.rel,'termsWindow',windowProperties);
      }
    }
    // Modify total cost depending on cash_on_delivery
    if(document.getElementById("cash_on_delivery")){
      var i = document.getElementById("payment").getElementsByTagName("INPUT");
      for(var j=0;j<i.length;j++){
        if(i[j].checked){
          currentChecked['cash_on_delivery'] = i[j].value;
        }
        if(i[j].value != '')i[j].onclick = function(){
            updateVat(this,'cash_on_delivery');
            updateVat(this,'kreditor');
            updateVat(this,'invoice');
        }
      }
    }
    // Modify search result table to make rows clickable
    if(document.getElementById('searchresults')){
    var searchTable = document.getElementById('searchresults').getElementsByTagName("table");
        if(searchTable[0]){
            var searchTableRows = searchTable[0].getElementsByTagName("tr");
            for(var i=0;searchTableRows[i];i++){
                var searchTableLinks = searchTableRows[i].getElementsByTagName("a");
                if(searchTableLinks[0]){
                    searchTableRows[i].rel = searchTableLinks[0].getAttribute("href");
                    searchTableRows[i].onclick = function(){
                        document.location.href = this.rel;
                    }
                    searchTableRows[i].onmouseover = function(){
                        this.id = 'selected';
                    }
                    searchTableRows[i].onmouseout = function(){
                        this.id = '';
                    }
                }
            }
        }
    }

}

// Update vats
function updateVat(thisObj,prefix){
    if(thisObj.value == prefix && currentChecked[prefix] == prefix)return;
    if(thisObj.value != prefix && currentChecked[prefix] != prefix)return;
    currentChecked[prefix] = thisObj.value;
    var i = document.getElementById("payment").getElementsByTagName("INPUT");
    for(var j=0;j<i.length;j++){
        if(i[j].value==prefix){
          var s = document.getElementById("sum").getElementsByTagName("TD");
          var totalSum = parseInt((s[1].innerHTML.split(" ")[0].replace(/\./g,"")));
          var c = document.getElementById(prefix).getElementsByTagName("TD");
          var checkoutCod = parseInt((c[1].innerHTML.split(" ")[0].replace(/\./g,"")));
          var v = document.getElementById("vat").getElementsByTagName("TD");
          var checkoutVat = parseInt((v[1].innerHTML.split(" ")[0].replace(/\./g,"")));

          if(!i[j].checked){
            var newSum =  totalSum - checkoutCod;
            var newVat =  (parseFloat(vat)/(1+parseFloat(vat)))*newSum;
            document.getElementById(prefix).style.display = "none";
          }else{
            var newSum =  totalSum + checkoutCod;
            var newVat =  (parseFloat(vat)/(1+parseFloat(vat)))*(newSum);
            document.getElementById(prefix).style.display = "";
          }

          s[1].innerHTML = (newSum/100).toFixed(2) + " " + currency;
          v[1].innerHTML = (newVat/100).toFixed(2) + " " + currency;
        }
    }
}

// Shows gallery
function showGallery(galleryId){
    var d = document.getElementById("product").getElementsByTagName("DIV");
    if(document.getElementById("gallery"+galleryId)){
        for(var i=0;i<d.length;i++){
            if(d[i].className == "images"){
                d[i].style.display = "none";
            }
        }
        document.getElementById("gallery"+galleryId).style.display = "inline";
    }
}




if (document.addEventListener){
    document.addEventListener("DOMContentLoaded", initUnobtrusiveJs, false);
}
window.onload = initUnobtrusiveJs;

function updateDate(date,obj){
    if(obj == 'in'){
        document.getElementById('cal_checkin').value = date;
    }else if(obj == 'out'){
        document.getElementById('cal_checkout').value = date;
    }
    showCalendar('img_holder');
    return;
}
function toggle_visibility(id) {
   var e = document.getElementById(id);
   if(e.style.display == 'block')
      e.style.display = 'none';
   else
      e.style.display = 'block';
}
function showCalendar(id){
    document.getElementById('img_holder').style.display = 'none';
    document.getElementById('calendar_checkin').style.display = 'none';
    document.getElementById('calendar_checkout').style.display = 'none';
    document.getElementById(id).style.display = 'block';
    return;
}


function ClassAdd(id, c) {
    var element = document.getElementById(id);
    if (!element) { return; }
    if (element.className) {
        if (!element.className.match(c)) {
            element.className += ' ' + c;
        }
    } else {
        element.className = c;
    }
}
function ClassRemove(id, c) {
    var element = document.getElementById(id);
    if (!element) { return; }
    element.className = element.className.replace(c, '');
}
function ChangeImg(id, img) {
    var element = document.getElementById(id);
    if (!element) { return; }
    element.src = '/images/' + img;
}
function HideContent(d) {
    if(d.length < 1) { return; }
    document.getElementById(d).style.display = "none";
}
function ShowContent(d) {
    if(d.length < 1) { return; }
    document.getElementById(d).style.display = "block";
}
function ReverseContentDisplay(d) {
    if(d.length < 1) { return; }
    if(document.getElementById(d).style.display == "none") { document.getElementById(d).style.display = "block"; }
        else { document.getElementById(d).style.display = "none"; }
}
function EmptyValue(input) {
    input.value = '';

    if (input.name == 'loginpassword') {
        input = changeInputType(input, 'password', false);
        input.focus();
        input.focus();
    } else {
        input.onfocus = '';
    }
}
function changeInputType(oldObject, oType, events) {
  var newObject = document.createElement('input');
  newObject.type = oType;
  if(oldObject.size) newObject.size = oldObject.size;
  if(oldObject.value) newObject.value = oldObject.value;
  if(oldObject.name) newObject.name = oldObject.name;
  if(oldObject.id) newObject.id = oldObject.id;
  if(oldObject.className) newObject.className = oldObject.className;
  if (events) {
    if(oldObject.onfocus) newObject.onfocus = oldObject.onfocus;
  }
  oldObject.parentNode.replaceChild(newObject,oldObject);
  return newObject;
}
