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'] = "";
currentChecked['ak_finans'] = "";

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";
        }       
    }
}

timeout = '';
/* alerts message with delay */
function showMessage(msg){
    if(!timeout){
        message = msg;
        timeout = setTimeout(showMessage,500);
    }else{
        alert(message)
        clearTimeout(timeout);
    }
}

function expandMenu(obj){ 
  obj = document.getElementById(obj);
  if(obj.parentNode.className == "expand"){
    obj.parentNode.className = "collapse";
    obj.innerHTML = '-';
  }else{
    obj.parentNode.className = "expand";
    obj.innerHTML = '+';
  }
  return;
}
function initUnobtrusiveJs(){    
    if(firstRun != 0)return;
    firstRun++;    
    initPriceJs();
    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);        
            }
        }
        
        $("#categories a.active").parents("li.expand").removeClass("expand").addClass("collapse").each(function() {
        	$("a.expandlink", this).text("-");
        });
        
        var u = document.getElementById("categories").getElementsByTagName("UL");
        if(u[0].id != '')expandCategory(u[0].id); 
        
        $("#categories").show();
    }      
    
    // 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 false;
           };   
        }
      }
    }
    // 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++){
            var elName = i[j].getAttribute('name');      
            if(i[j].value=="" && elName != 'company' && elName != 'phone' && elName != 'phone2'){
              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";
            var merchant_review = '';
            if(document.getElementById("pno")){
              pno = document.getElementById("pno").value;
            }
            
            if(document.getElementById("merchant_review_yes") && document.getElementById("merchant_review_yes").checked){
              merchant_review = 'merchant_review=yes';
            }
            
            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 += "&country=" + escape(document.getElementById("delivery_country").value)+" ";
            deliveryData += "&company=" + escape(document.getElementById("delivery_company").value)+" ";
            if(document.getElementById("prenumerationsnummer"))deliveryData += "&prenumerationsnummer=" + escape(document.getElementById("prenumerationsnummer").value)+" ";
            var width = 500; 
            if(paymentType == 'ak_finans')width = 720;
            tb_show('',paymentUrl+'?payment='+paymentType+'&pno='+pno+deliveryData+'&'+merchant_review+'&KeepThis=true&TB_iframe=true&height=520&width='+width+'&',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;
              }           
            }
          }
        }
      }
      
      var a = document.getElementById("confirm").getElementsByTagName("A");    
      a[0].onclick = function(){
          tb_show('',a[0].getAttribute("href")+'?height=500&width=800&ajax=true',null);
          return false;
      }
      /*
      // 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,'ak_finans');
            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;
