function getXMLObj(bAsXML) {
	var req = false;
  if(window.XMLHttpRequest) {
		try {
      req = new XMLHttpRequest();
			if (bAsXML)
				req.setMimeType('text/xml');
    } catch(e) {
      req = false;
    }
  } else if(window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				req = false;
			}
		}
	}
  return req;
}
 
function LoadDivContent(DivName, URL){
  if(URL!=''){
    var TargetDiv = document.getElementById(DivName);
    var XMLHTTP = getXMLObj();
    if (XMLHTTP) {
      XMLHTTP.open("GET",URL,true);
      XMLHTTP.onreadystatechange=function() {
        if (XMLHTTP.readyState==4) {
          TargetDiv.innerHTML = XMLHTTP.responseText;
        }
      }
      XMLHTTP.send(null)
    }
    else {
      TargetDiv.innerHTML ="Page could not be found.";
    }
  }
}

function LoadEditDivContent(DivName, URL){
  if(URL!=''){
    var TargetDiv = document.getElementById(DivName);
    var XMLHTTP = getXMLObj();
    if (XMLHTTP) {
      XMLHTTP.open("GET",URL,true);
      XMLHTTP.onreadystatechange=function() {
        if (XMLHTTP.readyState==4) {
          var ed = tinyMCE.get('elm1');
          if (isValidObject(ed)) {
            tinyMCE.execCommand('mceRemoveControl', false, 'elm1');
            TargetDiv.innerHTML = XMLHTTP.responseText;
            tinyMCE.execCommand('mceAddControl', false, 'elm1');
          } else {
            TargetDiv.innerHTML = XMLHTTP.responseText;
            initEditPages(URL);
          }
          //setTimeout("evalScripts('content');", 500);
        }
      }
      XMLHTTP.send(null)
    }
    else {
      TargetDiv.innerHTML ="Page could not be found.";
    }
  }
}

function LoadMCEContent(tinyMCEid, URL){
  if(URL!=''){
    var XMLHTTP = getXMLObj();
    if (XMLHTTP) {
      XMLHTTP.open("GET",URL,true);
      XMLHTTP.onreadystatechange=function() {
        if (XMLHTTP.readyState==4) {
          tinyMCEid.setContent(XMLHTTP.responseText);
        }
      }
      XMLHTTP.send(null)
    }
    else {
      ed.setContent("Page could not be found.");
    }
  }
}

function PostDivContent(params, DivName, URL){
  if(URL!=''){
    var TargetDiv = document.getElementById(DivName);
    var XMLHTTP = getXMLObj();
		if (XMLHTTP) {
      XMLHTTP.open("POST",URL,true);
			XMLHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			XMLHTTP.setRequestHeader("Content-length", params.length);
			//XMLHTTP.setRequestHeader("Connection", "close");
      XMLHTTP.onreadystatechange=function() {
        if (XMLHTTP.readyState==4) {
          TargetDiv.innerHTML = XMLHTTP.responseText;
          setTimeout("evalScripts('content');", 500);
        }
      }
      XMLHTTP.send(params)
    }
    else {
      TargetDiv.innerHTML ="Page could not be found.";
    }
  }
}

function initEditPages(URL) {
	var pos = URL.indexOf("?");
	if (pos != -1) {
		URL = URL.substr(0,URL.indexOf("?"));
	}
	switch (URL) {
		case "menu.php":
			PMA_markRowsInit();
			break;
		case "edit.php": 
      initTinyMCE();
			break;
		default:
			break;
	}
}

function isValidObject(objToTest) {
	if (null == objToTest) return false;
	if ("undefined" == typeof (objToTest)) return false;
	return true;
}
 
document.getElementsByClassName = function(clsName, objname) {
	var searchdiv = document.getElementById(objname);
	var returnList = new Array();
	if (isValidObject(searchdiv)) {
		var elements = searchdiv.getElementsByTagName('div');
		for (var i = 0; i < elements.length; i++) {
			if (elements[i].className.indexOf(clsName) >= 0) {
				returnList.push(elements[i]);
			}
		}
	}
	if (returnList.length>0) {
		return returnList;
	} else {
		return null;
	}
}
function ScrollToTop(DivName){
  document.getElementById(DivName).scrollTop = 0;
}

function BlurThis(){
  if(this.blur)this.blur();
}

function BlurIt(ElementToBlur){
  if(ElementToBlur.blur)ElementToBlur.blur();
}

function ExpandMenu(menuObj){
  var menuDivs = document.getElementsByClassName('menuitem',menuObj.id);
	for (var i = 0; i < menuDivs.length; i++) {
		menuDivs[i].style.display = 'block';
	}
}

function CollapseMenu(menuObj){
	var menuDivs = document.getElementsByClassName('menuitem',menuObj.id);
	for (var i = 0; i < menuDivs.length; i++) {
		menuDivs[i].style.display = 'none';
	}
}

function initTinyMCE() {
	tinyMCE.init({
		// General options
		mode : "textareas",
		theme : "advanced",
    element_format : "html",
    relative_urls : false,
		//plugins : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave",
		plugins : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,wordcount,advlist,autosave",

		// Theme options
		theme_advanced_buttons1 : "save,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect",
		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
		theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_statusbar_location : "bottom",
		theme_advanced_resizing : true,
    
		// Example content CSS (should be your site CSS)
		content_css : "/includes/default.css",

		// Drop lists for link/image/media/template dialogs
		//template_external_list_url : "lists/template_list.js",
		//external_link_list_url : "lists/link_list.js",
		//external_image_list_url : "lists/image_list.js",
		//media_external_list_url : "lists/media_list.js",
			
		// Style formats
		style_formats : [
			{title : 'Standaard', block : 'p'},
			{title : 'Kop Grootst', block : 'h1'},
			{title : 'Kop Groot', block : 'h2'},
			{title : 'Kop Middel', block : 'h3'},
			{title : 'Kop Klein', block : 'h4'},
			{title : 'Kop Kleinst', block : 'h5'},
		],

		table_cell_styles : "Kop Grootst=h1;Kop Groot=h2;Kop Middel=h3;Kop Klein=h4; Kop Kleinst=h5; Bold=bold; Italic=italic",

		//visual_table_class : "myCustomVisualAidTableClass",
		
		formats : {
			alignleft : {selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', classes : 'left'},
			aligncenter : {selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', classes : 'center'},
			alignright : {selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', classes : 'right'},
			alignfull : {selector : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', classes : 'full'},
			bold : {inline : 'span', 'classes' : 'bold'},
			italic : {inline : 'span', 'classes' : 'italic'},
			underline : {inline : 'span', 'classes' : 'underline', exact : true},
			strikethrough : {inline : 'del'}
		}

	});
}

function ajaxLoad(page) {
	var ed = tinyMCE.get('elm1');
	ed.setProgressState(1); // Show progress
	var content = LoadMCEContent(ed, 'editaction.php?page=' + page); 
	ed.setProgressState(0); // Hide progress
  var images = document.getElementById('imagesdiv');
  LoadDivContent("imagesdiv", "editaction.php?imageLoad=true");
}
	 
function ajaxSave(page) {
	var ed = tinyMCE.get('elm1');
	ed.setProgressState(1); // Show progress
  var images = document.getElementById('images');
  PostDivContent("page=" + page + "&image=" + images.options[images.selectedIndex].text + "&save=" + escape(ed.getContent()), 'resultaat', 'editaction.php');
	ed.setProgressState(0); // Hide progress
}

function getDetails(obj) {
	var id = obj.options[obj.selectedIndex].value;
	LoadDivContent("menudetails", "menudetails.php?id=" + id);
}

function PMA_markRowsInit() {
    // for every table row ...
    var rows = document.getElementsByTagName('tr');
    for ( var i = 0; i < rows.length; i++ ) {
        // ... with the class 'odd' or 'even' ...
        if ( 'odd' != rows[i].className.substr(0,3) && 'even' != rows[i].className.substr(0,4) ) {
            continue;
        }
        // ... add event listeners ...
        // ... to highlight the row on mouseover ...
        if ( navigator.appName == 'Microsoft Internet Explorer' ) {
            // but only for IE, other browsers are handled by :hover in css
            rows[i].onmouseover = function() {
                this.className += ' hover';
            }
            rows[i].onmouseout = function() {
                this.className = this.className.replace( ' hover', '' );
            }
        }
    }
}

function voegPaginaToe() {
  var naam=prompt("Geef een naam op voor de nieuwe pagina, eindigend met .php.","Nieuwe Pagina.php");
  if (isValidObject(naam)) PostDivContent("toevoegen=true&naam="+naam, "details", "paginaaction.php");
}

function verwijderPagina(id, naam) {
  if (confirm("Weet u zeker dat u id " + id + " en naam " + naam + " wilt verwijderen?")) {
    PostDivContent("delete=true&id=" + id + "","details","paginaaction.php")
  }
}

function evalScripts(el) {
  var scripts = document.getElementById(el).getElementsByTagName("script");
  var i = 0;
  var end = scripts.length;
  for (i; i < end; i++) {
    eval( scripts[i].innerHTML );
  }
  scripts = null;
}

function checkBestelling() {
  //if (document.getElementById('avAccepteren').checked==true) {
  var feedback = "";
  var elements = document.getElementsByTagName('input');
  for (var i = 0; i < elements.length; i++) {
    switch (true) {
      case elements[i].id == "naam" :
        if (elements[i].value=="") {
          feedback = feedback + "- Geen naam ingevuld\r\n";
          //document.getElementById("bestel").disabled = true;
          //return false;
        }
        break;
      case elements[i].id == "straat" :
        if (elements[i].value=="") {
          feedback = feedback + "- Geen adres ingevuld\r\n";
          //document.getElementById("bestel").disabled = true;
          //return false;
        }
        break;
      case elements[i].id == "huisnummer" :
        if (elements[i].value=="") {
          feedback = feedback + "- Geen huisnummer ingevuld\r\n";
          //document.getElementById("bestel").disabled = true;
          //return false;
        }
        break;
      case elements[i].id == "postcode" :
        if (elements[i].value=="") {
          feedback = feedback + "- Geen postcode ingevuld\r\n";
          //document.getElementById("bestel").disabled = true;
          //return false;
        }
        break;
      case elements[i].id == "woonplaats" :
        if (elements[i].value=="") {
          feedback = feedback + "- Geen woonplaats ingevuld\r\n";
          //document.getElementById("bestel").disabled = true;
          //return false;
        }
        break;
      case elements[i].id == "telefoonnummer" :
        if (elements[i].value=="") {
          feedback = feedback + "- Geen telefoonnummer ingevuld\r\n";
          //document.getElementById("bestel").disabled = true;
          //return false;
        }
        break;
      case elements[i].id == "email" :
        if (validateEmail(elements[i].value)==false) {
          feedback = feedback + "- Geen email ingevuld\r\n";
          //document.getElementById("bestel").disabled = true;
          //return false;
        }
        break;
    }
  }
  var totaal = 0;
  elements = document.getElementsByTagName('select');
  for (var i = 0; i < elements.length; i++) {
    switch (true) {
      case elements[i].id.substring(elements[i].id.length-3,elements[i].id.length) == "250" :
          totaal += (250 * elements[i].options[elements[i].selectedIndex].value);
        break;
      case elements[i].id.substring(elements[i].id.length-3,elements[i].id.length) == "500" :
          totaal += (500 * elements[i].options[elements[i].selectedIndex].value);
        break;
      case elements[i].id.substring(elements[i].id.length-4,elements[i].id.length) == "1000" :      
          totaal += (1000 * elements[i].options[elements[i].selectedIndex].value);
        break;
      default:
      //doe niks
    }
  }
  if (feedback!="") {
	feedback = "U bestelling kan niet uitgevoerd worden voordat deze aan de volgende punten voldoet:\r\n" + feedback;
  }
  if (totaal < 1000) {
    feedback = feedback + "- Het totaal gewicht van de bestelling komt niet boven 1 kilo.\r\n";
  }
  if (document.getElementById('avAccepteren').checked==false) {
    feedback = feedback + "- U heeft de algemene voorwaarden niet geaccepteerd\r\n";
  }
  if (feedback!="") {
    alert(feedback);
    return false;
  } else {
    Bestel();
  }
    // if (totaal >= 1000) {
      // document.getElementById("bestel").disabled = false;
    // } else {
      // document.getElementById("bestel").disabled = "disabled";
    // }
  // } else {
    // document.getElementById("bestel").disabled = "disabled";
  // }
}

function changeHeaderImage() {
  var imagesElement=document.getElementById("images");
  var headerImage=document.getElementById("headerimage");
  headerImage.src="/images/header/"+imagesElement.options[imagesElement.selectedIndex].text;
}

function validateEmail(elementValue) {
  var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  
  return emailPattern.test(elementValue); 
}
