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++;    
    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+1].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++;
      }
    }
    
    // Show select boxes
    if(document.getElementById("product"))insertOptions();
    
    // 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].name !='company' || i[j].value=="" && i[j].name !='phone2' ){
            	alert(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";
            if(document.getElementById("pno")){
              pno = document.getElementById("pno").value;
            }
            
            // SMS-avisering
            if(document.getElementById("smsaviseringstatus")){
              smsaviseringstatus = document.getElementById("smsaviseringstatus").value;
            } else {
            	smsaviseringstatus = 0;
            }
            if(document.getElementById("smsaviseringnummer")){
              smsaviseringnummer = document.getElementById("smsaviseringnummer").value;
            } else {
            	smsaviseringnummer = '';
            }
			            
			            
            tb_show('',paymentUrl+'?payment='+paymentType+'&pno='+pno+'&KeepThis=true&smss='+smsaviseringstatus+'&smsn='+smsaviseringnummer+'TB_iframe=true&height=520&width=600&',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;
        }      
        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 = "";
          }
          newVat = newVat+"";
          newSum = newSum+"";
        
          s[1].innerHTML = newSum.substring(0,newSum.length-3) + " " + newSum.substring(newSum.length-3,newSum.length) + " " + currency;
          v[1].innerHTML = newVat.substring(0,newVat.length-3) + " " + newVat.substring(newVat.length-3,newVat.length) + " " + currency;
        }                    
    } 
}
// Insert option tag
function insertOption(container, label, price, product, gallery){
    var newOption = document.createElement('option');            
    newOption.innerHTML = label;
    newOption.value = product;
    newOption.id = gallery;
    newOption.setAttribute("rel",price);    
    container.appendChild(newOption);
}
// 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";        
    }    
}

// Inserts option tags into price field
function insertOptions(){
    var variantsContainer = document.getElementById('variants');    
    var firstSelect = document.createElement('select');
    var secondSelect = document.createElement('select');
    secondSelect.setAttribute("name","product_id");

    // Clear pricetags
    var s = variantsContainer.getElementsByTagName("P");
    for(var k=s.length;k>0;k--)s[0].parentNode.removeChild(s[0]);
    var s = variantsContainer.getElementsByTagName("H3");
    for(var k=s.length;k>0;k--)s[0].parentNode.removeChild(s[0]);
    
    // Create new price tag
    var priceDiv=document.createElement("DIV");
    priceDiv.setAttribute("id","price");
    var priceLink=document.createElement('P');       
    priceDiv.appendChild(priceLink);
    document.getElementById("buy").insertBefore(priceDiv,document.getElementById("buy").firstChild);

    firstSelect.setAttribute('id', 'variantSelect1');

    firstSelect.onchange = function(){        
        if(this.selectedIndex == 0)return;                
        document.getElementById('variantSelect2').length = 0;
        insertOption(document.getElementById('variantSelect2'), secondSelectName, '-1', '-1','-1');
        /* Loops through the variantsizes */        
        for(var j = 1; j < variants[this.selectedIndex-1].length; j++){
            var sizeLabel = variants[this.selectedIndex-1][j][0];
            var sizePrice = variants[this.selectedIndex-1][j][1];
            var sizeId = variants[this.selectedIndex-1][j][2];
            var galleryId = variants[this.selectedIndex-1][j][3];
            insertOption(document.getElementById('variantSelect2'), sizeLabel, sizePrice, sizeId, galleryId);
        }
        document.getElementById("price").innerHTML = "<p>" + pricetext + " " + document.getElementById('variantSelect2').options[1].getAttribute("rel") +" " + currency + "</p>";
        if(secondSelectName == ':')document.getElementById('variantSelect2').selectedIndex = 1;
        showGallery(document.getElementById('variantSelect2').options[1].id);        
    }

    secondSelect.setAttribute('id', 'variantSelect2');
    secondSelect.onchange = function(){
        if(this.selectedIndex == 0)return;
        document.getElementById("price").innerHTML = "<p><strong>" + pricetext + "</strong> " + this.options[this.selectedIndex].getAttribute("rel") +" " + currency + "</p>";
        showGallery(this.options[this.selectedIndex].id);        
    }

    variantsContainer.appendChild(firstSelect);
    variantsContainer.appendChild(secondSelect);

    var firstVariantsBox = document.getElementById('variantSelect1');
    var secondVariantsBox = document.getElementById('variantSelect2');

    /* Loops through the variants */    
    insertOption(firstVariantsBox, firstSelectName, '-1', '-1','-1');
    for(var i = 0; i < variants.length; i++){
        insertOption(firstVariantsBox, variants[i][0], i);
        if(i < 1){
            insertOption(secondVariantsBox, secondSelectName, '-1','-1', '-1');
            for(var j = 1; j < variants[0].length; j++){                
                var sizeLabel = variants[0][j][0];
                var sizePrice = variants[0][j][1];
                var sizeId = variants[0][j][2];
                var galleryId = variants[0][j][3];
                insertOption(secondVariantsBox, sizeLabel, sizePrice, sizeId, galleryId);
            }
        }
    }
    if(firstSelectName == ':')firstVariantsBox.style.visibility='hidden';
    if(secondSelectName == ':'){
        secondVariantsBox.style.display='none';
        secondVariantsBox.selectedIndex = 1;
    }    
    document.getElementById("price").innerHTML = "<p><strong>" + pricetext + "</strong> " + secondVariantsBox.options[1].getAttribute("rel") +" " + currency + "</p>";
    
}


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

