/*
	Form Manager: A simple method of constructing complex dynamic forms.
	Written by Twey, http://www.twey.co.uk/.
	Use, copying, and modification allowed, so long as credit
	remains intact, under the terms of the GNU General Public License,
	version 2 or later. See http://www.gnu.org/copyleft/gpl.html for details.
*/


var FORM_MANAGER_CONDITION_SEPARATOR = " AND ";
var FORM_MANAGER_POSSIBILITY_SEPARATOR = " OR ";
var FORM_MANAGER_NAME_VALUE_SEPARATOR = " BEING ";
var FORM_MANAGER_DEPENDS = "DEPENDS ON ";
var FORM_MANAGER_CONFLICTS = "CONFLICTS WITH ";
var FORM_MANAGER_EMPTY = "EMPTY";

function addEvent(el, ev, f) {
  if(el.addEventListener)
    el.addEventListener(ev, f, false);
  else if(el.attachEvent) {
    var t = function() {
      f.apply(el);
    };
    addEvent.events.push({'element': el, 'event': ev, 'handler': f});
    el.attachEvent("on" + ev, t);
  } else
    el['on' + ev] = f;
}

function addEvents(els, evs, f) {
  for(var i = 0; i < els.length; ++i)
    for(var j = 0; j < evs.length; ++j)
      addEvent(els[i], evs[j], f);
}

addEvent.events = [];

if(typeof window.event !== "undefined")
  addEvent(window, "unload", function() {
      for(var i = 0, e = addEvent.events; i < e.length; ++i)
        e[i].element.detachEvent("on" + e[i].event, e[i].handler);
    }
  );

function getRadioValue(el) {
  if(!el.length) return null;
  for(var i = 0; i < el.length; ++i)
    if(el[i].checked) return el[i].value;
  return null;
}

function getSelectValue(el) {
  if(!el.tagName  || el.tagName.toLowerCase() !== "select")
    return null;
  return el.options[el.selectedIndex].value;
}

function isElementValue(el, v) {
  if(v === FORM_MANAGER_EMPTY) v = '';
  return (
    getRadioValue(el) == v ||
    getSelectValue(el) == v ||
    (
      el.tagName &&
      el.tagName.toLowerCase() !== "select" &&
      el.value == v
    )
  );
}

function setupDependencies() {
  var showEl = function() {
    this.style.display = "";
    if(this.parentNode.tagName.toLowerCase() == "label")
      this.parentNode.style.display = "";
  };
  var hideEl = function() {
    this.style.display = "none";
    if(typeof this.checked !== "undefined") this.checked = false;
    else this.value = "";
    if(this.parentNode.tagName.toLowerCase() == "label")
      this.parentNode.style.display = "none";
    this.hidden = true;
  };
  var calcDeps = function() {
    for(var i = 0, e = this.elements; i < e.length; ++i) {
      e[i].hidden = false;
      for(var j = 0, f = e[i].className.split(FORM_MANAGER_CONDITION_SEPARATOR); j < f.length; ++j)
        if(f[j].indexOf(FORM_MANAGER_DEPENDS) === 0) {
          for(var k = 0, g = f[j].substr(FORM_MANAGER_DEPENDS.length).split(FORM_MANAGER_POSSIBILITY_SEPARATOR); k < g.length; ++k)
            if(g[k].indexOf(FORM_MANAGER_NAME_VALUE_SEPARATOR) === -1) {
	      if(e[g[k]] && e[g[k]].checked) break;
            else if(k + 1 == g.length)
                e[i].hide();
            } else {
              var n = g[k].split(FORM_MANAGER_NAME_VALUE_SEPARATOR),
                v = n[1];
              n = n[0];
	      if(e[n])
	        if(isElementValue(e[n], v)) break;
	        else if(k + 1 == g.length) e[i].hide();
	    }
        } else if(f[j].indexOf(FORM_MANAGER_CONFLICTS) === 0) {
          if(f[j].indexOf(FORM_MANAGER_NAME_VALUE_SEPARATOR) === -1) {
	    if(e[f[j].substr(FORM_MANAGER_CONFLICTS.length)] && e[f[j].substr(FORM_MANAGER_CONFLICTS.length)].checked) {
              e[i].hide();
              break;
            }
          } else {
            var n = f[j].substr(FORM_MANAGER_CONFLICTS.length).split(FORM_MANAGER_NAME_VALUE_SEPARATOR),
              v = n[1];
            n = n[0];
            if(e[n]) {
              if(isElementValue(e[n], v)) {
                e[i].hide();
                break;
              }
            }
          }
        }
      if(!e[i].hidden) e[i].show();
    }
  };
  var changeHandler = function() {
    this.form.calculateDependencies();
    return true;
  };
  for(var i = 0; i < arguments.length; ++i) {
    for(var j = 0, e = window.document.forms[arguments[i]].elements; j < e.length; ++j) {
      addEvents([e[j]], ["change", "keyup", "focus", "click", "keydown"], changeHandler);
      e[j].hide = hideEl;
      e[j].show = showEl;
    }

    (e = window.document.forms[arguments[i]]).calculateDependencies = calcDeps;
    e.calculateDependencies();
  }
}










function getCookie(name) {
var cname = name + "="
var dc = document.cookie
if (dc.length > 0) {              
begin = dc.indexOf(cname)
if (begin != -1) {           
begin += cname.length
end = dc.indexOf(";", begin)
if (end == -1) end = dc.length
return unescape(dc.substring(begin, end))
}
}
return null
}
function setCookie(name, value) {
var now = new Date()
var then = new Date(now.getTime() + 31536000000)
document.cookie = name + "=" + escape(value) + "; expires=" + then.toGMTString() + "; path=/"
}
function getInfo(form) {
form.info.value = "Browser Information: " + navigator.userAgent
}
function getValue(element) {
var value = getCookie(element.name)
if (value != null) element.value = value
}
function setValue(element) {
setCookie(element.name, element.value)
}
function fixElement(element, message) {
alert(message)
element.focus()
}
function isMailReady(form) {
var passed = false;
if (form.naam.value == "") {
fixElement(form.naam, "U heeft uw naam niet ingevuld.")
}
/*else if (form.from.value.indexOf("@") == -1 ||
form.from.value.indexOf(".") == -1) {
fixElement(form.from, "Uw email adres klopt niet, of u bent vergeten deze in te vullen.")
}*/
else if (form.adres.value == "") {
fixElement(form.adres, "U heeft geen adres ingevuld.")
}
else if (form.plaats.value == "") {
fixElement(form.plaats, "U heeft geen postcode en plaatsnaam ingevuld.")
}
else if (form.telefoon.value == "") {
fixElement(form.telefoon, "U heeft geen telefoonnummer ingevuld.")
}
else if (form.from.value.indexOf("@") == -1 ||
form.from.value.indexOf(".") == -1) {
fixElement(form.from, "Uw email adres klopt niet, of u bent vergeten deze in te vullen.")
}
else {
getInfo(form)
passed = true
}
var toNameval=form.value
toNameval = "http://www.magyx.com/aquadirectbestel.php"
this.document.action = toNameval
return passed
}
function OpenWindow(picture){
leftPos=(screen.width)?(screen.width-400)/2:0;
topPos=(screen.height)?(screen.height-400)/2:0;
window.open('img/large/' + picture + '.html', 'AquaDirect', 'WIDTH=400,HEIGHT=400,top='+topPos+',left='+leftPos+',resizeable=no,fullscreen=no,channelmode=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no' );
}
function OpenDrawerWindow(picture){
window.open('img/large/' + picture + '.html', 'Ladenblokken', 'WIDTH=600,HEIGHT=367,resizeable=no,fullscreen=no,channelmode=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no' );
}
