Spif.DOMEvents.attach(
  window,
  'load',
  function()
  {
    //IE6 check, until Spiffy is updated    
    var is_ie6 = (
  	  window.external &&
	    typeof window.XMLHttpRequest == "undefined"
    );    
    if (is_ie6 == true)
    {
      Spif.ClassNameAbstraction.add(document.body, ' ie6');
    }
  }
);

var validation={"email-error":true};

function validateForm(element)
{ 
  switch (element.type)
  {      
    case "text":
    case "textarea":      
      showFormError(element.name + "-error", proxies.VoraadValidation.ValidateTextfield(element?element.value:""));
      break;
    case "radio":
      //var fields = document.getElementById("");
      break;
  }
}

function showFormError(elId, err)
{
  var errEl = document.getElementById(elId);
  errEl.className = (err?"feedback":"");
  errEl.innerHTML = err;
  
  var error = document.getElementById("showError");
  validation[elId] = err;
  
}

function showError(elId, err)
{
  var errEl = document.getElementById(elId);
  errEl.className = (err?"feedback":"");
  errEl.innerHTML = err;
  
  var error = document.getElementById("showError");
  
  validation[elId] = err;
  
  // maybe disable submitbutton 
  document.getElementById("register").disabled = (validation["email-error"]  || validation["login-error"] || validation["wachtwoord-error"])
}

function changeInhoud(el)
{
  var value = "";
  //re = /\s/g;
  re = /[^\w-_]/g;
      
  switch (el.type)
  {
    case "text":
      value = el.value;      
      value = value.replace(re, "-").toLowerCase();
      if (el.value != value)
        el.value = value;
      break;
    default:
      value = el.innerText;      
      value = value.replace(re, "-").toLowerCase();
      if (el.innerText != value)
        el.innerText = value;
      break;
  }  
}

// tools.js - function library
var userAgent    = navigator.userAgent.toLowerCase();
var appVersion   = navigator.appVersion.toLowerCase();
var appName      = navigator.appName.toLowerCase();

// operating system and browser information
var isWin        = (appVersion.indexOf('windows') != -1);
var isOpera      = (userAgent.indexOf('opera') != -1);
var isIE         = (appName.indexOf('internet explorer') != -1) && !isOpera;
var isSafari     = (userAgent.indexOf('applewebkit') != -1);
var isMozilla    = (appName.indexOf('netscape') != -1) && !isSafari;

// background image cache fix, from http://www.mister-pixel.com/
try { document.execCommand("BackgroundImageCache", false, true); } catch(err) { }

// build versionString
if (isSafari)
  var versionString = appVersion.substr(appVersion.lastIndexOf("safari/") + 7, 3);
else if (isIE || isOpera)
  var versionString = appVersion.substring(appVersion.indexOf('msie') + 5);
else if (isMozilla)
  var versionString = userAgent.substring(userAgent.indexOf('rv:')+3, userAgent.indexOf('rv:') + 6);
else
  var versionString = appVersion;

// cast version to numeric
var version = parseFloat(versionString);
var ie50 = isWin && isIE && (version <= 5.01);

var tools =
{
  getRequestXml: function(url, method)
  {
    method = method == undefined || method == null ? "GET" : method;
    
    var xmlhttp = this.getXMLHTTP();
    xmlhttp.open(method, url, false)
    xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 01 Jan 2000 00:00:00 GMT");
    xmlhttp.send(null);
    //alert(xmlhttp.responseXML);
    return xmlhttp.responseXML;
  },
  
  getXMLHTTP : function()
  {
    if (isMozilla)
      return new XMLHttpRequest();
    if (isIE)
      return new ActiveXObject("Msxml2.XMLHTTP");
  },
  
  // make xml document from xmlString
  // use: Document xmlDoc = initXml("<apen />");
  initXml: function(xmlString)
  {
    // msxml.domdocument.4.0
    if (typeof (ActiveXObject) != "undefined") {
      var xml = getXMLDOM();
      xml.validateOnParse = false;
      xml.async = false;
      xml.loadXML(xmlString);      
    } else if (DOMParser) {
      var xml = (new DOMParser()).parseFromString(xmlString, "text/xml");
    }
    return xml;
  }
};

function addBasket(id, type, thema, title, mode, positie)
{
  title = title.replace(/\|/g,"'");
  document.getElementById("loginContainer").style.display = "none";
  document.getElementById("zoekContainer").style.display = "none";  
  var el = document.getElementById("basket");
  el.innerHTML = "<div class=\"itemHead\">Geselecteerde berichten</div>";
  var xml = tools.getRequestXml("/actions/basket.aspx?id="+id+"&type="+type+"&title="+title+"&thema="+thema+"&mode="+mode+"&positie="+positie);
 
  var xmlNode = xml.selectNodes("/basket/item");
  
  // for loopje om  de relaties te displayen uit linksindex
  for (i=0; i<xmlNode.length; i++)
  {
      var title = xmlNode[i].text;
      var positie = xmlNode[i].getAttribute("position");
      el.innerHTML += "<div class=\"basketItem\"><img src=\"/images/delete.gif\" class=\"delete\" onclick=\"addBasket('','','','','remove','"+positie+"');\"/>"+title+ "</div>";
  }

  el.innerHTML += "<div class=\"createNieuwsletter\"><p>Webadres <br/><input type=\"text\" name=\"shortname\" value='adres'/></br><br/>Titel v/d nieuwsbrief<br/><input type=\"text\" name=\"titel\" value='titel'/></p><p><input type=\"submit\" name=\"create\" value=\"cre&#235;er een nieuwsbrief\"/></p></div>";
}

function attachEventHandler(theEl, theEvent, theHandler)
{		
  //verify the variables
  theEvent = theEvent.toLowerCase();
  if (theEvent.substring(0,2) == "on")
    theEvent = theEvent.substring(2);
  if(typeof(theEl) == 'string')
    theEl = document.getElementById(el);

  // attach for IE or firefox
  if (isIE)
  {
    theEl.attachEvent("on" + theEvent, theHandler);
  }
  else
  {
    if (theEl == document.body)
      theEl = document;
    if (theEvent == "ondragstart")
      theEvent = "ondraggesture";

    theEl.addEventListener(theEvent, theHandler, true);
  }
};




function openYear(year)
{
  var monthsContainer = document.getElementById("collectionMonths" + year).getElementsByTagName("div")[0];
  var currentYear = new Date().getFullYear();
  
  if (monthsContainer == null)
    return;
  
  if (currentYear <= year)
  {
    Spif.ClassNameAbstraction.replace(monthsContainer.getElementsByTagName("div")[0],"selected","unselected");
    Spif.ClassNameAbstraction.replace(monthsContainer.getElementsByTagName("div")[0],"unselected","selected");
  }
  if (currentYear > year)
  {
    Spif.ClassNameAbstraction.replace(monthsContainer.getElementsByTagName("div")[monthsContainer.getElementsByTagName("div").length-1],"selected","unselected");
    Spif.ClassNameAbstraction.replace(monthsContainer.getElementsByTagName("div")[monthsContainer.getElementsByTagName("div").length-1],"unselected","selected");
  }
}

function filterrequests(el)
{
  var woord = el.value.toLowerCase();
  var parent = document.getElementById("themaaliassen");
  var els = parent.childNodes;
  
  for (i = 0; i < els.length; i++)
  {
    if (els[i].className == null)
      continue;
    else if (woord == "" || els[i].className.toLowerCase().indexOf(woord) != -1)
      els[i].style.display = "block";
    else
      els[i].style.display = "none";
  }
}

function checkFormEmail()
{
  errorMessage = '';
  errorFound = false;
  if (document.aanvraag.email.value == '')
  {
    errorMessage = errorMessage + '- Geen e-mailadres ingevuld.\n';
    errorFound = true;
  }
  else
  {
    emailAddress = document.aanvraag.email.value;
    if (emailAddress.search(/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i) == -1)
    {
      errorMessage = errorMessage + '- Ongeldig e-mailadres ingevuld.\n';
      errorFound = true;
    }
  }


  if (document.aanvraag.aNaam.value == '')
  {
    errorMessage = errorMessage + '- Geen achternaam ingevuld.\n';
    errorFound = true;
  }

  if (!(document.aanvraag.geslacht[0].checked || document.aanvraag.geslacht[1].checked))
  {
    errorMessage = errorMessage + '- Geen geslacht gekozen.\n';
    errorFound = true;
  }


  if (errorFound)
  {
    alert(errorMessage);
    return false;
  }

}

function enableZoomTool(el, action)
{
  if(action == true)
    Spif.ClassNameAbstraction.add(el, "zoomtool-enable");    
    else
    Spif.ClassNameAbstraction.remove(el, "zoomtool-enable");
}

function enlarge(imgSrc)
{
  var previewContainer = document.getElementById("imagePreview");
  if(previewContainer != null)
  {
   var img = document.getElementById("enlargedImage");
   img.setAttribute("src",imgSrc);
    
   showGlassPane(true);
   Spif.ClassNameAbstraction.replace(previewContainer, "hide","show");    
   
  }  
}

function showGlassPane(action)
{
  var glassPane = document.getElementById("glassPane");
  if(glassPane != null)
  {
    if(action == true)
      Spif.ClassNameAbstraction.replace(glassPane, "hide","show");    
    else
      Spif.ClassNameAbstraction.replace(glassPane, "show","hide");    
  }
  
}

function hideEnlargedImage()
{
  var previewContainer = document.getElementById("imagePreview");
  showGlassPane(false);
  Spif.ClassNameAbstraction.replace(previewContainer, "show","hide");    
}