
window.onload = init;
var source;


var my_div = null;
var newDiv = null;

function addElement()
{
  // create a new div element
  // and give it some content
  newDiv = document.createElement("div");
  newDiv.innerHTML = "<h1>Hi there and greetings!</h1>";

  // add the newly created element and it's content into the DOM
  my_div = document.getElementById("org_div1");
  document.body.insertBefore(newDiv, my_div);
}

function closeDeGoudenPrikker(){
    document.getElementById('popup_content').style.display = "none";
    
}
var toggle_popup = null;
function deGoudenSatePrikker(){

    if(toggle_popup){
        document.getElementById('popup_content').style.display = "block";
    } else {
    toggle_popup = true;
    var popupdiv = document.createElement('div');
    popupdiv.setAttribute('id', 'popup_content'); 
    document.body.appendChild(popupdiv);    
    var div = document.createElement('div');
    div.setAttribute('id', 'close');
    document.getElementById('popup_content').appendChild(div); 
    var a = document.createElement('a');
    a.setAttribute('href','JavaScript:closeDeGoudenPrikker();');
    var img = document.createElement('img');
    img.setAttribute('src','/images/prikker/close1.jpg');
    document.getElementById('close').appendChild(a); 
    document.getElementById('close').firstChild.appendChild(img); 
    
    }
}


function init(){
    
  if(document.getElementById('BL_overzicht') != null){
    getBLlist();
  }
  if(document.getElementById('BL_menu') != null){
    getBLmenu();
  }
  
  if(document.getElementById('BL_afronden') != null){
    getBLafronden();
  }
  
  if(document.getElementById('productenlijst') != null){
    
    var dir = location.href.substring(0,location.href.lastIndexOf('=')+1);
    var url = location.href.substring(dir.length,location.href.length+1);
    getPRlist(url);
  }
}


function addProductImageMouseOvers()
{
	$$('tr.productImage').each(function(source){
		source.addEvent('mouseover',showProductImage)
	})
}

function showProductImage()
{
	var imageFile = this.get('productimage');
	
	var srcPos = this.getPosition();
	if(!$chk($('productImageHolder'))){
		new Element('div',{id : 'productImageHolder'}).inject(document.body);
	$('productImageHolder').setStyle('opacity', 0)	
	}else{
		$('productImageHolder').empty();
	}
	$('productImageHolder').morph({opacity: 1})

	var img = new Element('img', {src : '/crop.php?img='+imageFile+'&size=250'});
	img.inject($('productImageHolder'));
	
	$('productImageHolder').setStyles({
		left: srcPos.x - $('productImageHolder').getSize().x - 20,
		top: srcPos.y - $('productImageHolder').getSize().y / 2 + 20
	})	
	this.addEvent('mouseleave',hideProductImage);
	
	
}

function hideProductImage()
{
	$('productImageHolder').set('morph', {duration: 'normal', transition: 'sine:out'});
	
	$('productImageHolder').morph({opacity: 0})
	//$('productImageHolder').empty();	
}

function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str == ""){
    
       return true;
    }

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    
		    return false
		 }

 		 return true					
	}


function createXMLHttpRequest() {
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
}

function createXMLHttpRequest2() {
    if (window.ActiveXObject) {
        xmlHttp2 = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
        xmlHttp2 = new XMLHttpRequest();
    }
}
 
function GETRequest(query) {
    createXMLHttpRequest();
          
    var queryString = "whatever.php?" + query;
    
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.open("GET", queryString, true);
    xmlHttp.send(null);
}

function POSTRequest(query) {
    createXMLHttpRequest();
    var url = "/addproduct.php";
    postvars = "pr_aantal="+ encodeURI( document.getElementById("aantal_"+query).value )
    postvars += "&pr_id="+ query +"&sid="+ encodeURI( document.getElementById("sid").value );
    postvars += "&action=product";    
    xmlHttp.open("POST", url, true);
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    
    xmlHttp.send(postvars);
}

function ADD_frommenu(selectval) {


    createXMLHttpRequest();
    var url = "/addproduct.php";
    postvars = "pr_aantal=1";
    if (selectval.value) postvars += "&pr_id="+ selectval.value;
    else postvars += "&pr_id="+ selectval;
    postvars += "&action=bl"+"&sid="+ encodeURI( document.getElementById("sid").value );  
    xmlHttp.open("POST", url, true);
    xmlHttp.onreadystatechange = handleStateChange_BL;
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    
    xmlHttp.send(postvars);
    selectval.selectedIndex = 0;

}



function BL_aantal(query,fromob) {

    if(document.getElementById("aantal_"+query).value > 0){
      source = fromob.id;
      createXMLHttpRequest();
      var url = "/addproduct.php";
      postvars = "pr_aantal="+ encodeURI( document.getElementById("aantal_"+query).value )
      postvars += "&pr_id="+ query +"&sid="+ encodeURI( document.getElementById("sid").value );
      postvars += "&action=blaantal"; 
      xmlHttp.open("POST", url, true);
      xmlHttp.onreadystatechange = handleStateChange_BL;
      xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    
      xmlHttp.send(postvars);
      return source; //onthoud wie deze functie aangeroepen heeft
    }else{
      return false;
    }

    
}

function BL_remove(query) {

    if(document.getElementById("aantal_"+query).value != ''){
      createXMLHttpRequest();
      var url = "/addproduct.php";
      postvars = "pr_aantal=0";
      postvars += "&pr_id="+ query +"&sid="+ encodeURI( document.getElementById("sid").value );
      postvars += "&action=blaantal"; 
      xmlHttp.open("POST", url, true);
      xmlHttp.onreadystatechange = handleStateChange_BL;
      xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    
      xmlHttp.send(postvars);
      return source; //onthoud wie deze functie aangeroepen heeft
    }else{
      return false;
    }

    
}
    
function handleStateChange() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
            //parseResults();
        }
    }
}

function handleStateChange_BL() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
            getBLlist();
            
        }
    }
}

function parseResults() {
     alert('aantal is gewijzigd');
     //document.getElementbyId('abc').innerHTML = xmlHttp.responseText;
}

function getBLlist(){
    createXMLHttpRequest();
          
    var queryString = "/bestellijst.php?";
    
    xmlHttp.onreadystatechange = writeBLlist;
    xmlHttp.open("GET", queryString, true);
    xmlHttp.send(null);
}

function writeBLlist(){
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
            result = xmlHttp.responseText;

            document.getElementById('BL_overzicht').innerHTML = result; 
           
            if(source != undefined){
              if(document.getElementById(source) != null){
                document.getElementById(source).focus();  // zet focus terug op het element wat alles gestart heeft
              }              
            }            
            
        }
    }

}

function getBLmenu(){

    createXMLHttpRequest2();
          
    var queryString = "/bestelmenu.php?";
    xmlHttp2.onreadystatechange = writeBLmenu;
    xmlHttp2.open("GET", queryString, true);
    xmlHttp2.send(null);
}

function writeBLmenu(){
    if(xmlHttp2.readyState == 4) {
        if(xmlHttp2.status == 200) {
            result = xmlHttp2.responseText;

            document.getElementById('BL_menu').innerHTML = result; 
           
            
        }
    }

}

function getBLafronden(){

    createXMLHttpRequest2();
          
    var queryString = "/bestellingafronden.php?";
    
    xmlHttp2.onreadystatechange = writeBLafronden;
    xmlHttp2.open("GET", queryString, true);
    xmlHttp2.send(null);
}

function writeBLafronden(){
    if(xmlHttp2.readyState == 4) {
        if(xmlHttp2.status == 200) {
            result = xmlHttp2.responseText;

            document.getElementById('BL_afronden').innerHTML = result; 
           
         if(document.getElementById('gegevens[Naam]') != null){
           document.getElementById('gegevens[Naam]').focus();
         }
         setMaxLength();   
        }
    }

}


function plaats_bestelling() {
    var velden=new Array("Naam","Adres","Postcode","Woonplaats","Telefoonnummer","Emailadres","Bericht");
    
    createXMLHttpRequest2();
    
    var url                 = "/addbestelling.php";
    postvars                = "";
    fout                    = "";
    f                       = 0;
    emailfout               = "";
    oke                     = true;
    var methodewijze        = "";
    for (i=0; i<velden.length; ++i) {  
    
      if(document.getElementById('gegevens[' + velden[i] + ']').value != ""){
        postvars += "gegevens[" + velden[i] + "]=" + document.getElementById('gegevens[' + velden[i] + ']').value + "&";
        
      }else{
        oke = false;
        
        ++f;
        if(f == 1){
          fout +=  velden[i];
        }else{
          fout += ", " + velden[i] ;
        }
      }
    } 
 
    up_divs = document.getElementsByName("Methode"); 
    
      if(up_divs.item(0).checked == true){
        methodewijze = up_divs.item(0).value; 
      }else if(up_divs.item(1).checked == true){
        methodewijze = up_divs.item(1).value; 
      }else{
      oke = false;
       fout += ", " + "methode" ;
      }
      if(document.getElementById('afhaaldatum').value != ""){
        afhaaltijd = document.getElementById('afhaaldatum').value + ' ' + document.getElementById('afhaaluur').value + ':' + document.getElementById('afhaalminuut').value;
      }else{
        afhaaltijd = "";
      }
    postvars += "gegevens[methode]=" + methodewijze + "&afhaaltijd=" + afhaaltijd;
    if(echeck(document.getElementById('gegevens[Emailadres]').value) == false){
      emailfout = "Uw email adres is onjuist."
      oke = false;
    }

    counterSpan = document.getElementById('counter').getElementsByTagName('span')[0];
    if(counterSpan.className == "toomuch") fout = "Het bericht mag niet langer dan 250 tekens zijn.\n"+ fout; 
    
    if(oke == true){
      xmlHttp2.open("POST", url, true);
      xmlHttp2.onreadystatechange = plaats_bestelling_done;
      xmlHttp2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    
      xmlHttp2.send(postvars);
    }else{
      if(f == 1){
        errormsg = fout + " is niet ingevuld.\n";
      }else{
        errormsg = fout + " zijn niet ingevuld.\n";
      }
      if(fout == ""){      
        alert(emailfout);
      }else{
        alert(errormsg + emailfout);
      }
    }
    
}


function plaats_bestelling_done(){
    if(xmlHttp2.readyState == 4) {
        if(xmlHttp2.status == 200) {
            result = xmlHttp2.responseText;

            document.getElementById('BL_afronden').innerHTML = result; 
             
        }
    }
}



function  write_bestelling_done(){
    if(xmlHttp2.readyState == 4) {
        if(xmlHttp2.status == 200) {
            result = xmlHttp2.responseText;

            document.getElementById('BL_afronden').innerHTML = result; 
             
        }
    }

}


function check_mailForm() {
   
    var velden=new Array("naam","adres","postcode","woonplaats","telefoon","emailadres","bericht");
    
  
    
    
    postvars                = "";
    fout                    = "undefined";
    f                       = 0;
    emailfout               = "";
    oke                     = true;
    var methodewijze        = "";
    for (i=0; i<velden.length; ++i) {  
      if(document.getElementById('gegevens[' + velden[i] + ']').value == ""){
        oke = false;
        
        ++f;
        if(f == 1){
          fout +=  velden[i];
        }else{
          fout += ", " + velden[i] ;
        }
      }
    } 
  
    
    

    
     
    if(echeck(document.getElementById('gegevens[emailadres]').value) == false){
      emailfout = "Uw email adres is onjuist."
      oke = false;
    }
    
    
    if(oke == true){
    return true;
    }else{
      if(f == 1){
        errormsg = fout + " is niet ingevuld .\n";
      }else{
        errormsg = fout + " zijn niet ingevuld.\n";
      }
      

      
      if(fout == ""){      
        alert(emailfout);
      }else{
        alert(errormsg + emailfout);
      }
      return false;
      
    }
    
}

function getPRlist(url,begin){  


    createXMLHttpRequest();   
    if(begin == undefined){       
      var queryString = "/productlist.php?pid=" +url;   
    }else{
      var queryString = "/productlist.php?pid=" + url + "&begin=" + begin; 
    } 

    xmlHttp.onreadystatechange = writePRlist;
    xmlHttp.open("GET", queryString, true);
    xmlHttp.send(null);  
}


function writePRlist(){
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
            result = xmlHttp.responseText;
            document.getElementById('productenlijst').innerHTML = result; 
			addProductImageMouseOvers();
        }
    }
}

function Agree(){
  document.getElementById('afrondenknop').disabled = false;
  document.getElementById('afrondenknop').className = 'formbtn';
}

function setMaxLength() {
	var x = document.getElementsByTagName('textarea');
	var counter = document.createElement('div');
	counter.className = 'counter';
	counter.id = 'counter';
	for (var i=0;i<x.length;i++) {
		if (x[i].getAttribute('maxlength')) {
			var counterClone = counter.cloneNode(true);
			counterClone.relatedElement = x[i];
			counterClone.innerHTML = '<span>0</span>/'+x[i].getAttribute('maxlength');
			x[i].parentNode.insertBefore(counterClone,x[i].nextSibling);
			x[i].relatedElement = counterClone.getElementsByTagName('span')[0];

			x[i].onkeyup = x[i].onchange = checkMaxLength;
			x[i].onkeyup();
		}
	}
}

function checkMaxLength() {
    
	var maxLength = this.getAttribute('maxlength');
	var currentLength = this.value.length;
	if (currentLength > maxLength){
		this.relatedElement.className = 'toomuch';
	}else{
		this.relatedElement.className = '';
	}
	this.relatedElement.firstChild.nodeValue = currentLength;
	// not innerHTML
}

