var protoscript = document.createElement("script");
protoscript.setAttribute("type", "text/javascript");
protoscript.setAttribute("src", "/website/js/prototype.js");
document.getElementsByTagName("head")[0].appendChild(protoscript);

/*var scriptaculous = document.createElement("script");
scriptaculous.setAttribute("type", "text/javascript");
scriptaculous.setAttribute("src", "js/scriptaculous.js");
document.getElementsByTagName("head")[0].appendChild(scriptaculous);

var effectsscript = document.createElement("script");
effectsscript.setAttribute("type", "text/javascript");
effectsscript.setAttribute("src", "js/effects.js");
document.getElementsByTagName("head")[0].appendChild(effectsscript);*/


function init(){
  runMenu('nav');
  getAllProductLinks();
  makeOrderSmallKlick();
}

function deletethis(formid, id) {
  var formelement = document.getElementById(formid);
  if(formelement) {
    formelement.verwijderen.value = id;
    formelement.submit();
  }
} 

function runMenu(elementid) {

 sfHover(elementid);	
 
}

function sfHover(elementid) {
	var sfEls = document.getElementById(elementid).getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp("sfhover","g"), "");
		}
	}
}


function updateProductForm(myhref) {
  var url = '/website/getlayout.php';
  var pars = myhref + '&layoutfile=image/sfeerbeeld';
  var target = 'sfeerbeeld';	
  var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars});   
  window.scrollTo(0,0);
} 

function getAllProductLinks() {
   var node = document.getElementById("product-collections"); 
   if(node) {
     var links = node.getElementsByTagName("a");
     var linksLength = links.length;
     for (var i=0; i<linksLength; i++) {
        //alert(links[i].onclick);
        if(!links[i].onclick) {	
          links[i].onclick = function() {
            updateProductForm(this.href);
          return false;
         }
       }
     }
   }
}

function makeOrderSmallKlick() {

		var node = document.getElementById("ordersmall");

		if(node) {
		  var links = node.getElementsByTagName("a");
			node.style.cursor = "hand";
			node.onclick = function() {
         location.href = links[0].href;
       }
		}
}

// custom
function toggleCustom(id) {
	var e = document.getElementById(id);
  if(e.className == "open") {
  	e.className = "close";
	}
	else {
		e.className = "open";
	}
}
      
function toggleHarmonica(elOpen,elClose) {
	var open = document.getElementById(elOpen);
	var close = document.getElementById(elClose);
        
	open.className = "open";
	close.className = "close";
      
}

// --- functions for formvalidation
function validateForm(formelement) {

   var returnvar = true;
  //hide all shownerrors 
  var myErrors = $$("#" + formelement.id + " .showError");
  //alert(myErrors);
  if(myErrors) {
    errorcount = myErrors.length; 
    for(var i=0;i<errorcount;i++) {
      myErrors[i].className = "error";
    }
  }

  var myRequiredFields = $$("#" + formelement.id + " .required");

  if(myRequiredFields) {
    fieldcount = myRequiredFields.length; 
    for(var i=0;i<fieldcount;i++) {

      var inputElements = myRequiredFields[i].getElementsByTagName("input");
      if(inputElements) {
        var elcount = inputElements.length;
        for(var j=0;j<elcount;j++) {
          
          //alert(inputElements[j].parentNode.className);
          var errorType = validateField(inputElements[j].parentNode.className,inputElements[j]);
          //alert(errorType);
          if(errorType != "ok") {
            showError(myRequiredFields[i], inputElements[j].parentNode.className, errorType);
            returnvar = false;
          }
        }
      }
    }
  }
  
  return returnvar;

}


function validateField(type,element) {

    regArray = new Array();
    regArray["email"]   =/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    regArray["year"]    =/^[0-9]{4}$/;
    //regArray["zipcode"] =/^[0-9]{4}[\s]?[a-z]{2}[\s]?$/i;
    regArray["phone"]   =/^([0-9]{10})|([0-9]{2,4}-[0-9]{6,8})$/;
    regArray["date"]    = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;

    if(element.value == "") {
       //alert("element is leeg");
       return "empty";
    }
    else if(element.value > element.maxlength) {
      //alert("inhoud is meer dan dat mag.");
      return "notvalid";
    }
    else {
       if(!regArray[type]) { return "ok";}
       else if(!regArray[type].test(element.value)) {
          //alert("check regex");
          return "notvalid";
       }
       else {
         //alert("no regex found for or regex is correct");
         return "ok";
       }
    }
    return "ok";
}  

function showError(container, type, errortype) {

  if(container) {
    var myErrors = container.getElementsBySelector(".error." + type);
    
    if(myErrors) {
      errorcount = myErrors.length;
      if(errorcount == 0) {
        myErrors = container.getElementsBySelector(".error");
        if(myErrors) {
          //alert("geen specifieke error gevonden");
          //myErrors[0].className = "showError";
          myErrors[0].className = myErrors[0].className.replace(new RegExp("error","g"), "showError " + errortype);
          
        }
      } else {
        //alert("specifieke error gevonden");
        myErrors[0].className = myErrors[0].className.replace(new RegExp("error","g"), "showError " + errortype);      
      }
     //alert(myErrors[0].className); 
    }
  }


}

function enableDisable(type) {
  theform = type.form;
  
  if (type.value == "eenmalig") {
      theform.frequentie.disabled = true;
      theform.hoeveelheid.disabled = false;
  }
  else {
      theform.hoeveelheid.disabled = true;
      theform.frequentie.disabled = false;
  }
}

function validate(thisform) {
  //alert(thisform.name);
  //alert(thisform.type.value);
  
  if(thisform);
    if(thisform.maat.value == -1) {
      thisform.maat.focus();
      alert("kies de maat die u wilt bestellen");
      return false;
    }
    
    if(thisform.type && thisform.type.length > 1) {
      if(thisform.type[0].checked == true && thisform.hoeveelheid.value == -1 ) {
        thisform.hoeveelheid.focus();
        alert("kies de hoeveelheid die u wilt bestellen");
        return false;
      }
    
      if(thisform.type[1].checked == true && thisform.frequentie.value == -1 ) {
        thisform.frequentie.focus();
        alert("kies de frequentie van het abonnement");
        return false;
      }
    } else {
        //seizoens sokken
      if(thisform.hoeveelheid.value == -1 ) {
        thisform.hoeveelheid.focus();
        alert("kies de hoeveelheid die u wilt bestellen");
        return false;
      }
     }

    return true;

}

function changeHoeveelheid(myform, aantal) {
  //maak hem eerst leeg
  myform.hoeveelheid.options.length = 0;
  //voeg default waarde toe
  myform.hoeveelheid.options[0] = new Option('-- Kies hoeveelheid --','-1');
  //zet de aantal
  if(aantal > 8) aantal = 8;
  //vul de hoeveelheid selectbox met nieuwe waarden      
  for (i=1;i<=aantal;i++) {
      myform.hoeveelheid.options[i] = new Option(i  +  ' maal', i);
  }
   
}
