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 validateEmail(el)
{
  if (el.value.length > 1)
    showError("email-error", proxies.VoraadValidation.ValidateEmail(el?el.value:""));
}
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.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,"'");
  if (document.getElementById("loginContainer"))
    document.getElementById("loginContainer").style.display = "none";
  if (document.getElementById("zoekContainer"))
    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);
  }
};
