function openWindow(link){
  window.open(link);
  //return false;
}

//SET COOKIE:

function setCookie(name, value) {
  document.cookie=name+"="+value+"; path=/; expires="+new Date("December 31, 2010").toGMTString();
}

//SET COOKIE FOR CURRENT SESSION ONLY:

function setTemporaryCookie(name, value) {
  document.cookie=name+"="+value+"; path=/";
}

function getCookie(sName){ 
  var aCookie=document.cookie.split("; "); 
  for (var i=0; i < aCookie.length ; i++){
    var aCrumb=aCookie[i].split("=");
    if (sName==aCrumb[0]) return unescape(aCrumb[1]);
  } 
  return null;
}

function wo(link, target, height, width, menubar, resizable, toolbar, scroolbars){
	window.open(link, target,"height="+height+",width="+width+",menubar="+menubar+", resizable="+resizable+", toolbar="+toolbar+", scrollbars="+scroolbars);
}

function trim(str) {
  return str.replace(/^\s*/, '').replace(/\s*$/, '');
}

function isContentEmpty(str) {  
  var re1 = new RegExp ('&nbsp;', 'gi');
  var re2 = new RegExp ('<P>', 'gi');
  var re3 = new RegExp ('</P>', 'gi');
  var re4 = new RegExp ('<BR>', 'gi');
  var re5 = new RegExp ('<DIV>', 'gi');
  var re6 = new RegExp ('</DIV>', 'gi');
  var re7 = new RegExp ('<SPAN>', 'gi');
  var re8 = new RegExp ('</SPAN>', 'gi');
  str = trim(str.replace(re1, '').replace(re2, '').replace(re3, '').replace(re4, '').replace(re5, '').replace(re6, '').replace(re7, '').replace(re8, ''));
  return (str=='');
}

function encodeItem(str) {
  var s=str.replace(/'/g,"&#39;");
  return s.replace(/"/g,"&quot;");
}

function getObject(id){
  var object;
  
  if(document.getElementById){
    object = document.getElementById(id);
  }else if(document.all){
    object = document.all[id]; 
  }

  return object;
}

function ie5alert(object){
  var agt=navigator.userAgent.toLowerCase();
  var is_major = parseInt(navigator.appVersion);
  var is_ie    = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
  var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
  if (is_ie5) alert(object);
}


function getForm(formName) {
  if( (typeof formName == 'undefined') || formName == null ){
        return null;
  }        
  return document.forms(formName);
}

function getInput(inputName, formName) {
  var form = getForm(formName);
  if (form == null){
         return null;
  }
  if( (typeof inputName == 'undefined') || inputName == null ){
        return null;
  }
  return form.elements(inputName);
}

function getInputValue(inputName, formName) {
  var input = getInput(inputName, formName);
  return (input == null) ? "" : input.value;
}

var submitFunctions = new Array();
function funcSubmitForm() {
  var result = true;
  for ( sf = 0; sf <= submitFunctions.length - 1; sf++ ) {
    res = submitFunctions[sf]();
    if (isDefined(res) && res == false) {
      result = false;
      break;
    }
  }
  event.returnValue = result;
  return result;
}

function firstElemFocus() 
{
  if (document.forms.length == 0) return; 

  var focussed;
  var fi = 0;
  while ( fi < document.forms.length ) {
    var form = document.forms[fi++];
    
    if (!form) continue;

    if (form.getAttribute("donotfocus") != null) continue;
    
    if (form && form.elements.length > 0){
      focussed = false;
      var i = 0;
      while ( i < form.elements.length ) {
        elem = form.elements[i++];
        if (elem.getAttribute("donotfocus") != null) continue;
        try {
          elem.focus();
          focussed = true;
          break;
        } catch (e) {
        }
      }
      if (focussed) break;
    }
  }
  
}

var loadFunctions = new Array();

// index from 0 .. 100
function onLoadFunctionClass (func, index) {
  this.func = func;
  this.index = index;
}

function compareOnLoadFunction(a, b){
 return a.index - b.index;
}

function body_onLoad(){
  loadFunctions.sort(compareOnLoadFunction);
  for ( lf = 0; lf < loadFunctions.length; lf++ ){  
    loadFunctions[lf].func();
  }
}

function addOnLoadFunctionWithIndex( func, index ) {
  loadFunctions[loadFunctions.length] = new onLoadFunctionClass(new Function(func), index);
}
  
function addOnLoadFunction( func ) {
  addOnLoadFunctionWithIndex(func, 50);
}

function addOnSubmitFunction( func ) {
  submitFunctions[submitFunctions.length] = new Function(func);
}

function makeFormContentSubmitable( form ) {

  if ( typeof form.submitContent == "undefined" ) {
    form.onsubmit = new Function("return funcSubmitForm();");
    form.submitContent = function () {
      var onSubmitResult = this.onsubmit();
      if (onSubmitResult) {
        this.submit();
      }
    }
  }

  if ( typeof form.saveContent == "undefined" ) {
    form.onsubmit = new Function("return funcSubmitForm();");
    form.saveContent = function () {
      this.onsubmit();
    }
  }

}
  
function chooseOption(obj, value) {
  for ( var x=0; x < obj.options.length; x++ ) {
    var option = obj.options[x];
    if ( option.value == value )
      option.selected = true;
  }
}

function chooseSelectOption(inputName, formName, value) {
  chooseOption(getInput(inputName, formName), value);
}

function parseEditorTemplate(str, variable, value) {
  while (str.indexOf(variable) != -1) {
    str = str.replace(variable, value);
  }
  return str;
}


function hideSelectboxes(showedOBJ)
{
  selectboxesToggleShow(showedOBJ, false);
}

function showSelectboxes(showedOBJ)
{
  selectboxesToggleShow(showedOBJ, true);
}


var hidedBoxes = new Array();


function selectboxesToggleShow(showedOBJ, show)
{
  if(!showedOBJ)
    return;

  var divTop = showedOBJ.offsetTop;
  var divLeft = showedOBJ.offsetLeft;
  var divBottom = divTop + showedOBJ.offsetHeight;
  var divRight = divLeft + showedOBJ.offsetWidth;
  

  
  for (i = 0; i < document.all.tags("SELECT").length; i++)
  {
    obj = document.all.tags("SELECT")[i];
    if (! obj || ! obj.offsetParent || obj.doNotHide=="true")
      continue;

    // Find the element's offsetTop and offsetLeft relative to the BODY tag.
    objTop    = obj.offsetTop;
    objLeft   = obj.offsetLeft;
    objParent = obj.offsetParent;
    while (objParent.tagName.toUpperCase() != "BODY")
    {
      objLeft  += objParent.offsetLeft;
      objTop   += objParent.offsetTop;
      objParent = objParent.offsetParent;
    }

    
    var objBottom = objTop + obj.offsetHeight;
    var objRight = objLeft + obj.offsetWidth;

       

    var overSelectBox = ((( (objBottom>divTop && objBottom<divBottom && 
        ( (objLeft>divLeft && objLeft<divRight)  || (objRight>divLeft && objRight<divRight))) || 
        (objTop>divTop && objTop<divBottom && 
        ( (objLeft>divLeft && objLeft<divRight)  || (objRight>divLeft && objRight<divRight))) )) ||

    (( (divBottom>objTop && divBottom<objBottom && 
        ( (divLeft>objLeft && divLeft<objRight)  || (divRight>objLeft && divRight<objRight))) || 
        (divTop>objTop && divTop<objBottom && 
        ( (divLeft>objLeft && divLeft<objRight)  || (divRight>objLeft && divRight<objRight))) )))


    if(!overSelectBox && show)     
      obj.style.visibility = "visible";          
    else if(overSelectBox && !show)
      obj.style.visibility = "hidden";      

  }
}


function getArrElementPosition(arrayToSearch, value){
  for(var x=0;x<arrayToSearch.length;x++){
    if(arrayToSearch[x] == value)
      return x;
  }
  return -1;
}

function checkArrContain(arrayToSearch, val){
  for(var aaax=0;aaax<arrayToSearch.length;aaax++){
    if(arrayToSearch[aaax]==val)
      return true;
  }
  return false;
}


/*function checkEmailFormat(src){
  //var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  var filter=new RegExp();
//  filter.compile('^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+([.]{1}([a-zA-Z0-9_-])+)+$');
  filter.compile('^([.a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(([.]{1}([a-zA-Z0-9_-])+)+)?$');
  return filter.test(src);
}*/

function checkEmailFormat(src){
  var filter=new RegExp();
  filter.compile('^([.a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(([.]{1}([a-zA-Z0-9_-])+)+)?$');
  if(src.substr(src.indexOf("@")+1,src.length).indexOf(".")==-1)return false; 
  return filter.test(src);
}


function getDateNow() {
  var date =new Date();
  var d=date.getDate();

  if (parseInt(d)<10) {
    d="0"+d;
  }

  var m=date.getMonth()+1;
  if (parseInt(m)<10) {
    m="0"+m;
  } 
  var y=date.getYear();
  return msg=d+"-"+m+"-"+y;
}


function checkDateRange(from, to){
//alert("from '"  + from + "' to '" + to + "'");
  if (to=='' || from=='') return true; //nothing to check

  var re = /^([0-3][0-9])[\-\/]([0-1][0-9])[\-\/](\d{4})$/g;

  var re1 = new RegExp();
  re1.compile("([0-9]{2})[\-\/]([0-9]{2})[\-\/]([0-9]{4})","g");

  var matchArray = re.exec(from); 
  if (matchArray ) {
    var dayFrom   = matchArray [1];
    var monthFrom = matchArray [2];
    var yearFrom  = matchArray [3];
  } else return false;
  var matchArrayTo = re1.exec(to); 
  if (matchArrayTo) {
    var dayTo   = matchArrayTo [1];
    var monthTo = matchArrayTo [2];
    var yearTo  = matchArrayTo [3];
  } else return false;
  if (yearTo < yearFrom ) return false;
  else if  (yearTo > yearFrom ) return true;
    else if  (monthTo < monthFrom) return false;
      else if  (monthTo > monthFrom) return true;
        else if ( dayTo < dayFrom) return false;
          else return true;
}

/* IsDefined */
function isDefined(Value){return !fIn('undefined,null',String(Value).toLowerCase());}

/* Check the substring is found */
function fIn(Str, SubStr){return ((","+Str+",").indexOf(","+SubStr+",")>=0);}

/* Get Image Name */
function GetImageName(sSrc){
  return sSrc.replace(/\./g,"_").replace(/\//g,"_");  
}

var ImgMaxErrorCount = 3;

/* Image Init */
function ImageInit(sSrc, oThis) {
  if (isDefined(sSrc)) {
    var sName=GetImageName(sSrc);
    if(!isDefined(window[sName])){
      window[sName] = new Image();
      window[sName].onload = function(){ImgUpdate(this)};
      if(!isDefined(window[sName].iErrors))
        window[sName].iErrors=0;
      if(isDefined(window.ImgMaxErrorCount))
        window[sName].onerror=function(){
          if(window.ImgMaxErrorCount>this.iErrors){
            this.iErrors++;
            this.src=this.src;
          };
        };
      if(!isDefined(window[sName].oLoad))
        window[sName].oLoad=new Array();
      if(oThis!=null)
        window[sName].oLoad[window[sName].oLoad.length]=oThis;
      if(String(window[sName].src)=="")
        window[sName].src=sSrc;
    } else if(oThis!=null) {
      window[sName].oLoad[window[sName].oLoad.length]=oThis;
      if(window[sName].readyState=="complete")
        ImgUpdate(window[sName]);
    }
  }
}

/* Update */
function ImgUpdate(oThis){
  for(var i=0; i<oThis.oLoad.length; i++){
    var oUnknown=oThis.oLoad[i];
    oThis.oLoad[i]=null;
    if(isDefined(oUnknown))
      oUnknown.innerHTML='<img src="'+oThis.src+'" border=0>';
  }
}

function addWildcast(formname, fieldname) {
  var formObj = document.forms[formname]; 
  var value = trim(formObj.elements[fieldname].value)+' ';
  var result = '';  
  for (var i=0; i<value.length; i++) {
    if ((value.charAt(i)==' ')&&(value.charAt(i-1)!=' ')) result += '*';
    result += value.charAt(i);
  }
  formObj.elements[fieldname].value = result;
}

function preloadImages() {
  var d=document; 
  if(d.images){ 
    if(!d.MM_p) {
      d.MM_p=new Array();
    }
    var i,j=d.MM_p.length,a=preloadImages.arguments; 
    for(i=0; i<a.length; i++) {
      if (a[i].indexOf("#")!=0){ 
        d.MM_p[j]=new Image; 
        d.MM_p[j++].src=a[i];
      }
    }
  }
}

function /*:void:*/ navigate( /*:String:*/ url){
  location.href=url;
}

function askDelete(){
  return (confirm("Weet u zeker dat u dit wilt verwijderen?"))
}

function askDeleteNavigate(url){
  if (askDelete()) {
    navigate(url);
  }
}

function askAcutalize (){
  return (confirm("Wilt u deze item heractiveren?"))
}

function moveSelectSelected(fromBoxId, toBoxId){
  var fromBox = getObject(fromBoxId);
  var toBox = getObject(toBoxId);
  var i = 0;
  while (i < fromBox.options.length){
    if (fromBox.options[i].selected){
      opt = fromBox.options[i];
      fromBox.options[i] = null;
      opt.selected= false;
      toBox.options[toBox.options.length] = opt;                          
    }else{
      i++;
    }
  }
}

function moveSelectItem(fromBoxId, toBoxId, value) {
  var fromBox = getObject(fromBoxId);
  var toBox = getObject(toBoxId);
  for (var i = 0; i < fromBox.options.length; i++){
    if (fromBox.options[i].value == value){
      opt = fromBox.options[i];
      fromBox.options[i] = null;
      toBox.options[toBox.options.length] = opt;                          
      break;
    }
  }
}

function selectSelectItems(boxId) {
  var sel = getObject(boxId);
  for( var i = 0; i  < sel.options.length; i++ ) {
    opt = sel.options[i];
    opt.selected = true;
  }
}

// preload spacer.gif
//addOnLoadFunction("preloadImages('/images/spacer.gif');");