﻿var overimages = new Object();
var showSubMenu = null;

var hideid = 0;
var hidemenuid = null;

/************
*   MENU    *
************/

function menurollover(imgname, imgurl, menuname)
{
   //alert('showSubMenu = ' + showSubMenu + ' hidemenuid= ' + hidemenuid)
   if (hideid != 0)
   {
      if(menuname == hidemenuid)
      {
         //alert('menuname = ' + menuname + 'div' + ' hidemenuid= ' + hidemenuid)
         clearTimeout(hideid);
      }
      else
      {
         clearTimeout(hideid);
         hidemenu(hidemenuid);
      }         
   }

   if (document.images && (preloadFlag == true)) {
//      document[imgname].src = imgurl.replace('amp;', '');
   }
   var submenu = document.getElementById(imgname + 'div');
   if (submenu != null)
   {
      submenu.style.visibility = 'visible';
   }
}

function menurollout(imgname, imgurl, menuname)
{
   if (document.images && (preloadFlag == true)) {
//      document[imgname].src = imgurl.replace('amp;', '');
   }

   //if (showSubMenu != menuname)
   {
      //alert('showSubMenu = ' + showSubMenu + ' menuname= ' + menuname)
      hideid = setTimeout('hidemenu("' + menuname + '")', 500);
      hidemenuid = menuname;
   }
}

function hidemenu(divid)
{
   hideid = 0;
   hidemenuid = null;
   var submenu = document.getElementById(divid);
   if (submenu != null)
   {
      submenu.style.visibility = 'hidden';
   }
}

function showmenu(divid)
{
   hideid = 0;
   hidemenuid = null;
   var submenu = document.getElementById(divid);
   if (submenu != null)
   {
      submenu.style.visibility = 'visible';
   }
}


function newMenuImage(arg) {
   if (document.images) {
      rslt = new Image();
      rslt.src = arg;
      return rslt;
   }
}

var preloadFlag = false;
function preloadMenuImages() {
   if (document.images) {
      for(var o in overimages)
      {
         o.temp = newMenuImage(o.url);
      }
      preloadFlag = true;
   }
   var submenu = document.getElementById(showSubMenu);

   if (submenu != null)
   {
      submenu.style.visibility = 'visible';
   }
}

preloadMenuImages();

/************
*   FORMS   *
************/

function isEmailValid(sEmail){
      var r = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
      return r.test(sEmail);
}

function validateLoginForm(form)
{
   if(form.userid.value == '' || form.password.value == '')
   { 
      alert('Vul a.u.b. uw inloggegevens in als wilt inloggen. Als u nog geen inloggegevens heeft, klikt u op Registreren.');
   }
   else
   {
      form.submit();
   }
}

/*************************
*   Gezinsconfigurator   *
*************************/

var xmlDoc;
var xmlObj;

var types = ["man","vrouw","-","hond","kat","konijn","ander huisdier"];

var configurator;

function initConfigurator()
{
  // load xml content
  if (window.ActiveXObject)
  {
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async="false";
    xmlDoc.loadXML(content);
    xmlObj=xmlDoc.documentElement;
  }
  // code for Mozilla, Firefox, Opera, etc.
  else
  {
    var parser = new DOMParser();
    var xmlDoc = parser.parseFromString(content,"text/xml");
    xmlObj = xmlDoc.documentElement;
  }

  // fill configurator html
  configurator = document.getElementById("configuratorDiv");

  if(xmlObj)
  {  
    for(var i = 0; i < xmlObj.childNodes.length; i++)
    {
      var memberXml = xmlObj.childNodes[i];
      addMember(memberXml.nodeName, memberXml.getAttribute("age"));
    }
  }
  addMember("","");
}

function getConfiguratorXML()
{
  var xml = "<config>";

  for(var i=0; i < configurator.children.length; i++)
  {
    var div = configurator.children[i];
    var select = div.children[0];
    var type = select.options[select.selectedIndex].value;
    var age = div.children[1].value;

    if(type != "")
    {    
      xml += "<" + type + " age=\"" + age + "\"/>";
    }
  }
  xml += "</config>";

  return xml;
}

function addMember(memberType, memberAge)
{
  var div = document.createElement("div");
  
  var selectBox = document.createElement("select");
  selectBox.onchange = this.changeType;

  if(memberType == "")
  {
    addOption(selectBox, "kies");
  }
    
  for(var i in types)
  {
    var type = types[i];
    addOption(selectBox, type, memberType);
  }
  div.appendChild(selectBox);

  div.appendChild(document.createTextNode(" van "));

  var ageInputBox = document.createElement("input");
  ageInputBox.size = 3;
  ageInputBox.value = memberAge;
  div.appendChild(ageInputBox);

  div.appendChild(document.createTextNode(" jaar oud "));
  
  if(memberType != "")
  {
    addLink(div);
  }
  
  configurator.appendChild(div);
}

function addOption(selectBox, type, selectedType)
{
    var optionField = document.createElement("option");
    if(type == "-")
    {
      optionField.value = "";
      optionField.appendChild(document.createTextNode("-----"));
    }
    else if(type == "kies")
    {
      optionField.value = "";
      optionField.appendChild(document.createTextNode("kies"));
    }
    else
    {
      optionField.value = type.replace(" ","_");
      optionField.appendChild(document.createTextNode(type));
    }
    if (type.replace(" ","_") == selectedType)
    {
      optionField.selected = true;
    }
    selectBox.appendChild(optionField);
}

function addLink(div)
{
  var link = document.createElement("a");
  link.href = "#";
  link.onclick = this.deleteMember;
  link.appendChild(document.createTextNode("wissen"));
  div.appendChild(link);
}

function changeType(event)
{
  if (!event) 
  { 
    event = window.event; 
  }
  var select = event.srcElement;
  // if invalid field is chosen, choose next
  var currentValue = select.options[select.selectedIndex].value;
  if(currentValue == "")
  {
    select.selectedIndex += 1;
  }
  else
  {
    // delete the "kies"-row if it's still present
    if(select.options[0].value == "")
    {
      select.removeChild(select.options[0]);
    }
    // add delete link if not yet present
    if(select.parentElement.children[2] == null)
    {
      addLink(event.srcElement.parentElement);
    }
    // add a new line to the configurator if needed
    var lastSelect = configurator.children[configurator.children.length-1].children[0]; 
    if(lastSelect.options[lastSelect.selectedIndex].value != "")
    {
      addMember("","");
    }
  }
}

function deleteMember(event)
{
  if (!event) 
  { 
    event = window.event; 
  }
  configurator.removeChild(event.srcElement.parentElement);
}

