var currentLayer                = 'page1';
var digits                      = "0123456789";
var phoneNumberDelimiters       = "()-/ ";
var validWorldPhoneChars        = phoneNumberDelimiters + "+";
var minDigitsInIPhoneNumber     = 10;
var http_request                = false;
var sequenceRow                 = new Array();
var sequenceUsed                = new Array();
var showAddressValidationError  = true;
var validateAfterAddressSearch  = false;
var numValidationTries          = 0;
var addressValidationError      = 'Adres validatie kon niet uitgevoerd worden';
var addressValidationFault      = 'Er is geen bestaand adres ingevuld';
var addressValidationEmpty      = 'Er is geen adres ingevuld';
var sequenceError               = 'Een item kan niet twee keer toegevoegd worden';
var browserNotSuported          = 'Browser niet ondersteund';
var browserNotSuportedTitle     = 'Verouderde browser'; 
var frmName                     = 'form1';
var cookieName                  = 'form1';
var uniqueNum                   = 0;
var g4folder                    = 'frontend-g4';
var pages                       = new Array(1,2,3,4,5,6,7,8,9,10);
var curentAddressError          = '';

//check if browser is supported
function checkSupported(title)
{
  if(!window.XMLHttpRequest && !window.ActiveXObject)
  {
    if(document.getElementById && document.getElementById('form1'))
    {
      document.getElementById('form1').innerHTML = '<h1>' + title + '</h1><h2>' + browserNotSuportedTitle + '</h2><p>' + browserNotSuported + '<p>';
    }
    else
    {
      alert(browserNotSuported);
    }
  }
}

// Changes the cursor to an hourglass 
function cursor_wait()
{
  document.body.style.cursor = 'wait';
} 
// Returns the cursor to the default pointer
function cursor_clear()
{
  document.body.style.cursor = 'default';
}

function addToTrash(xpath,id)
{
  if(document.getElementById(id))
  {
    if(document.getElementById('trashBin'))
    {
      document.getElementById('trashBin').value += xpath + '\\';
    }
    deleteRow(id);
  }
  else
  {
    alert('not found');
  }
}

function setUsed(listID,name)
{
  if(!sequenceUsed[listID])
  {
    sequenceUsed[listID] = new Array();
  }
  sequenceUsed[listID][sequenceUsed[listID].length] = addslashes(name.toUpperCase());
}

function removeUsed(listID,name)
{
  if(sequenceUsed[listID])
  {
    var used = sequenceUsed[listID];
    sequenceUsed[listID] = new Array();
    for (x in used)
    {
      if(used[x] != name)
      {
        sequenceUsed[listID][sequenceUsed[listID].length] = used[x];
      }
    }
  }
}

function isUsed(listID,name)
{
  if(sequenceUsed[listID] && in_array(sequenceUsed[listID],addslashes(name.toUpperCase())))
  {
    return true;
  }
  return false;
}

function setNode(listID,rowStr)
{
  sequenceRow[listID] = rowStr;
}

function addItem(itemID,listID)
{
  if(document.getElementById(itemID))
  {   
    var name = ucFirst(document.getElementById(itemID).value);
    if(name.length > 0)
    {
      if(isUsed(listID,name))
      {
        alert(sequenceError);
      }
      else
      {
        str = sequenceRow[listID].replace(/\[name]/g,name);
        //name = name.replace(/\./g,"|");
        str = str.replace(/\[attributeName]/g,name);
        str = str.replace(/\%num%/g,'row' + uniqueNum);
        uniqueNum = uniqueNum + 1; 
        document.getElementById(listID).innerHTML += str;
        setUsed(listID,name);
        document.getElementById(itemID).value = '';
      }
    }
    document.getElementById(itemID).focus();
  }
}

function deleteRow(id,name)
{
  if(document.getElementById(id))
  {
    document.getElementById(id).innerHTML = '';
    document.getElementById(id).style.display = 'none';
  }
  else
  {
    alert('not found');
  }
}

function addslashes(s)
{
  return s.replace("'","/'")
}
//end new

function changeDisplay(show,hide)
{
  if(show != '')
  {
    var showDivs = show.split(',');
    for (var i = 0; i < showDivs.length; i++)
    {
      if(document.getElementById(showDivs[i]))
      {
        document.getElementById(showDivs[i]).style.display = 'block';  
      }
    }
  }
  if(hide != '')
  {
    var hideDivs = hide.split(',');
    for (var i = 0; i < hideDivs.length; i++) {
      if(document.getElementById(hideDivs[i]))
        document.getElementById(hideDivs[i]).style.display = 'none';  
    }
  }
}

function changeLabel(id,text)
{
  if(document.getElementById(id))
  {
    document.getElementById(id).innerHTML = text;
  }
}

function checkPageEmpty(page)
{
  if(page.childNodes[2] 
   && (page.childNodes[2].id.indexOf('ClientForm')!=-1 
    || page.childNodes[2].id.indexOf('FormCompany')!=-1 
    || page.childNodes[2].id.indexOf('FormUser')!=-1 
    || page.childNodes[2].id.indexOf('ClientListForm')!=-1
    || page.childNodes[2].id.indexOf('FormPropertyAddress')!=-1))
  {
    return true;
  }
  else
  {
    return false;
  }
}

function setPageGroups()
{
  pages = arguments;
}

function nextPage(currentGroup)
{
  if (checkPageLoaded('nextPage("' + currentGroup + '")') == true)
  {
    if(currentGroup == "page0" || validate(currentGroup))
    {
      currentId = currentGroup.replace("page","")*1;
      nextId = currentId + 1;
      
      curGroupValue = pages[currentId-1];
      nextGroupValue = pages[nextId-1];
      
      hideGroup(curGroupValue);
      
      if (nextGroup = document.getElementById("page" + nextId))
      {
        if (curGroupValue != nextGroupValue && checkPageEmpty(nextGroup))
        {
          displayGroup(nextGroupValue);
        }
        else
        {
          nextPage(nextGroup.id);
        }
      }
    }
  }
}

function previousPage(currentGroup)
{
  if (checkPageLoaded('previousPage("' + currentGroup + '")'))
  {
    currentId = currentGroup.replace("page","")*1;
    prevId = currentId - 1;
    
    curGroupValue = pages[currentId-1];
    prevGroupValue = pages[prevId-1];
    
    hideGroup(curGroupValue);
    
    if (prevGroup = document.getElementById("page" + prevId))
    {    
      if (curGroupValue != prevGroupValue && checkPageEmpty(prevGroup))
      {
        displayGroup(prevGroupValue);
      }
      else
      {
        previousPage(prevGroup.id);
      }
    }
  }
}

function hideGroup(groupValue)
{
  for (i=0; i<pages.length; i++)
  {
    if (pages[i] == groupValue) {
      if (document.getElementById("page" + (i+1)))
      {
        document.getElementById("page" + (i+1)).style.display = 'none';
      }
    }
  }
  hideErrors();
}

function displayGroup(groupValue)
{
  for (i=0; i<pages.length; i++)
  {
    if (pages[i] == groupValue)
    {
      if (page = document.getElementById("page" + (i+1)))
      {
        page.style.display = 'block';
        page.style.backgroundcolor = "red";
      }
    }
  }
}

function goToPage(currentGroup,newGroup)
{
  if(validate(currentGroup) && document.getElementById(newGroup) && document.getElementById(currentGroup))
  {
    document.getElementById(newGroup).style.display = 'block';
    document.getElementById(currentGroup).style.display = 'none';
  }
}

function specialSelect(id,key,hiddenField) {
  div = id + key;
  if(document.getElementById(div)) {
    hidden = document.forms[frmName].elements[hiddenField];
    if(document.getElementById(div).className == 'specialActive') {
      document.getElementById(div).className = 'specialItem';
      
      dummyVar = hidden.value.split(',')
      hidden.value = ''
      for (i=0; i<dummyVar.length; i++)
      {
        if ((dummyVar[i] != id) && (dummyVar[i] != ''))
        {
          if (hidden.value != '')
            hidden.value = hidden.value + ','
          hidden.value = hidden.value + dummyVar[i]
        }
      }
    } else {
      document.getElementById(div).className = 'specialActive';

      if (hidden.value != '')
        hidden.value = hidden.value + ',';
      hidden.value = hidden.value + id;
    }
  }
}

function makeRequest(url, parameters)
{
  if(call != 'location')
    onreadystate = 'showAddressResponse';
  else
    onreadystate = 'showLocationResponse';
    
  remoteRequest(url, parameters, onreadystate, 'POST')
}

function resetAddressForm(reference)
{
  var divID = reference.replace(/\//g,"");
  changeDisplay(divID + 'Search,' + divID + 'Links,Client' + divID + 'Zipcode,Client' + divID + 'Housenumber,Client' + divID + 'HousenumberAddition',divID + 'Display');
  if(button=document.getElementById(divID + 'reset'))
  {
    button.style.display = 'none';
  }
}

function hideAddressForm(reference)
{
  var divID = reference.replace(/\//g,"");

  changeDisplay(divID + 'Display',divID + 'Search,' + divID + 'Links,Client' + divID + 'Zipcode,Client' + divID + 'Street,Client' + divID + 'Housenumber,Client' + divID + 'HousenumberAddition,Client' + divID + 'City,Client' + divID + 'Country');
  if(button=document.getElementById(divID + 'reset'))
  {
    button.style.display = 'inline';
  }
}

function showAddressResponse()
{
  if (http_request.readyState == 4)
  {
    if (http_request.status == 200 && http_request.responseText != '' && http_request.responseText != 'error' && http_request.responseText!='8')
    {
      addressVars = http_request.responseText.split(',');
      var divID = ref.replace(/\//g,"");
      if(call != 'suggest')
      {
        setField(ref + '/Street',addressVars[0],true);
        setField(ref + '/City',addressVars[4],true);
        setField(ref + '/Housenumber',addressVars[1],true);
        setField(ref + '/HousenumberAddition',addressVars[2],true);
        setField(ref + '/Zipcode',addressVars[3],true);
        setField(ref + '/Municipality',addressVars[5],true);
        setField(ref + '/State',addressVars[6],true);
        document.getElementById(divID + 'Display').innerHTML = addressVars[0] + " " + addressVars[1] + addressVars[2] + "<br />" + addressVars[3] + "&nbsp;&nbsp;" + addressVars[4];
        document.getElementById(divID + 'Display').style.display = 'block';
        changeDisplay(divID + 'Display',divID + 'Search,' + divID + 'Links,Client' + divID + 'Zipcode,Client' + divID + 'Street,Client' + divID + 'Housenumber,Client' + divID + 'HousenumberAddition,Client' + divID + 'City,Client' + divID + 'Country');
        
        if(button=document.getElementById(divID + 'reset'))
        {
          button.style.display = 'inline';
        }
      }
      else
      {
        divID += 'PlaceSuggest';
        if(document.getElementById(divID)) {
          document.getElementById(divID).innerHTML = '';
          for (i=0; i<addressVars.length; i++) {
            document.getElementById(divID).innerHTML += '<a href="javascript:setField(\'' + ref + '/City\',\'' + addressVars[i].replace('\'','\\\'') + '\',false);javascript:changeDisplay(\'\',\'' + divID + '\')">' + addressVars[i] + '</a>';
          }
          document.getElementById(divID).style.display = 'block';
        }
      }      
    }
    else if(showAddressValidationError != false)
    {
      reportErrors(addressValidationFault);
    }
    else
    {
      curentAddressError = addressValidationFault;
      showAddressValidationError = true;
    }
    
    if (call != 'suggest' && validateAfterAddressSearch == true)
    {
      submitForm(document.getElementById('form1'));
    }
    
    validateAfterAddressSearch = false;
    cursor_clear();
  } 
}

function setField(field,value,disable) {
  var form = document.forms[frmName];
  form.elements[field].value = value;
  form.elements[field].readonly=disable;
}

function getPosition(obj,pos) {
  var cur = 0;
  if (obj.offsetParent)
  {
    while (obj.offsetParent)
    {
      if(pos == 'x')
        cur += obj.offsetLeft;
      else
        cur += obj.offsetTop;
      obj = obj.offsetParent;
    }
  } else if (obj.x)
    cur += obj.x;
  return cur;
}
   
function validateAddress(reference, showError, validateAfter)
{
  cursor_wait();
  var pars = '';
  var form = document.forms[frmName];

  ref = reference;

  if(showError == false)
  {
    showAddressValidationError = false;
  }
  
  if (validateAfter == false || validateAfter == true)
  {
    validateAfterAddressSearch = validateAfter;
  }
  
  if(form.elements[ref + '/Zipcode'].value != '' && form.elements[ref + '/Housenumber'].value != '')
    pars = pars + 'zipcode=' + form.elements[ref + '/Zipcode'].value + '&housenumber=' + form.elements[ref + '/Housenumber'].value;
  else if (form.elements[ref + '/Street'].value != '' && form.elements[ref +'/City'].value != '' && form.elements[ref + '/Housenumber'].value != '')
    pars = pars + 'place=' + form.elements[ref + '/City'].value + '&housenumber=' + form.elements[ref + '/Housenumber'].value + '&street=' + form.elements[ref + '/Street'].value; 
  else
  {
    if (showError != false)
      reportErrors(addressValidationEmpty);
    else
    {
      curentAddressError = addressValidationEmpty;
    }
      
    if (validateAfterAddressSearch == true)
    {
      validateAfterAddressSearch = false;
      submitForm(document.getElementById('form1'));
    }
    
    return;
  }
  
  if(pars != '')
  {
    if(office = document.getElementById('FormHeaderRealtorID'))
      pars = pars + '&realtor_id=' + office.value;
    if(form.elements[ref+ '/HousenumberAddition'].value != '')
      pars = pars + '&addition=' + form.elements[ref + '/HousenumberAddition'].value;
    if(form.elements['country'].value != '')
      pars = pars + '&country=' + form.elements[ref + '/Country'].value;
    pars = pars + '&g4folder=' + g4folder;
    
    call = 'validate'; 
    makeRequest(g4folder + '/tools/address_call.php', pars);
  }
}

function suggestPlace(reference)
{
  cursor_wait();
  var form = document.forms[frmName];
  if(form.elements[reference + '/City'].value != '' && form.elements[reference + '/City'].value.length > 2)
  {
    ref = reference;
    var pars = 'place=' + form.elements[ref + '/City'].value;
    if(office = document.getElementById('FormHeaderRealtorID'))
      pars = pars + '&realtor_id=' + office.value;
    call = 'suggest';
    makeRequest(g4folder + '/tools/address_call.php', pars);
  } 
}

function getLocation(field,pars,start)
{
  cursor_wait();
  var idName = 'client' + ucFirst(field);
  if(document.getElementById(idName) && document.getElementById(idName).style.display != 'block')
  {
    call = 'location';
    fieldName = field;
    if(pars != '')
      pars += '&'; 
    pars += 'location=' + field + '&g4folder=' + g4folder + '&start=' + start;
    if(document.getElementById('OfficeSelect') && document.getElementById('OfficeSelect').value!='')
    {
      pars += '&realtor_id=' + document.getElementById('OfficeSelect').value;
    }
    else if(office = document.getElementById('FormHeaderRealtorID'))
    {
      pars = pars + '&realtor_id=' + office.value; 
    }
    makeRequest(g4folder + '/tools/location_data.php', pars);
  } 
}

function selectLocation(dest,value,id) {
  if(document.getElementById(id).className == 'specialItem')
    var action = 'add';
  else
    var action = 'del';

  var pars = 'selected=' + value + '&action=' + action;

  getLocation(dest,pars,'');
}

function showLocationResponse()
{
  if (http_request.readyState == 4)
  {
    if (http_request.status == 200 && http_request.responseText != 'error')
    {
      responce = http_request.responseText.split('|');

      if(document.getElementById('specialSelectRegion'))
        document.getElementById('specialSelectRegion').innerHTML = responce[0];
      if(document.getElementById('specialSelectPlaces'))
        document.getElementById('specialSelectPlaces').innerHTML = responce[1];
      if(document.getElementById('specialSelectAreas'))
        document.getElementById('specialSelectAreas').innerHTML = responce[2];
      if(document.getElementById('specialSelectNeighbourhoods'))
        document.getElementById('specialSelectNeighbourhoods').innerHTML = responce[3];
      if(document.getElementById('locationPath'))
        document.getElementById('locationPath').value = responce[4];
    }
    cursor_clear();
  }
}

function setFieldsOnload(uri,xform)
{
  if(document.forms[frmName])
  {
    if(document.forms[frmName].elements['Form/Header/Source/WebsiteURI'])
    {
      document.forms[frmName].elements['Form/Header/Source/WebsiteURI'].value = uri;
    }
    if(document.forms[frmName].elements['xformsFileName'])
    {
      document.forms[frmName].elements['xformsFileName'].value = xform;
    }
  }
}

/*cookie functions*/
function setCookie(fieldName)
{
  value = getValue(fieldName);
  if(fieldName.indexOf('Name/Initials')!=-1)
  {
    value = initials(value);
    document.forms[frmName].elements[fieldName].value = value;
  }
  else if (fieldName.indexOf('Name/Lastname')!=-1 && fieldName.indexOf('Name/LastnamePrefix')==-1)
  {
    value = ucFirst(value);
    document.forms[frmName].elements[fieldName].value = value;
  }

  var newCookie = '';
  var valueSet = 0;
  var today = new Date();
  var expire = new Date();
  expire.setTime(today.getTime() + 3600000*24*31);
  var cookie = readCookie();
  if(cookie)
  {
    var values = cookie.split('--');
    for(var i=0;i < values.length;i++)
    {
      if (values[i].indexOf(fieldName) == 0)
      {
        valueSet = 1;
        newCookie = newCookie + "--" + fieldName + "__" + value;
      } else
        newCookie = newCookie + "--" + values[i];
    }
  }
  
  if(valueSet==0)
    newCookie = newCookie + "--" + fieldName + "__" + value; 
    
  while (newCookie.charAt(0)=='-') newCookie = newCookie.substring(1,newCookie.length);

  document.cookie = cookieName+"="+escape(newCookie) + ";expires="+expire.toGMTString()+"; path=/";
}

function readCookie()
{
  if(document.cookie)
  {
    var cookieN = cookieName + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++)
    {
      var c = ca[i];
      while (c.charAt(0)==' ') c = c.substring(1,c.length);
      if (c.indexOf(cookieN) == 0) return unescape(c.substring(cookieN.length,c.length));
    }
  }
  return null;
}

function getCookieValues(cookie,formName)
{
  frmName = formName;
  cookieName = cookie;
  var cookie = readCookie();
  var cookieValues = new Array()
  if(cookie)
  {
    var values = cookie.split('--');
    for(var i=0;i < values.length;i++)
    {
      var value = values[i];
      var value = value.split('__');
      if(document.forms[frmName] && value[0] != '' && document.forms[frmName].elements[value[0]] && value[1] != '')
         cookieValues[value[0]] = unescape(value[1]).replace('%20',' ').replace('%2520',' ').replace('%2C',',');
    }
  }

  if(document.forms[frmName] && document.forms[frmName].elementsS)
  {
    for (var j = 0; j < document.forms[frmName].elements.length; j++) {
      var name = document.forms[frmName].elements[j].name;
      if(cookieValues[name])
      {
        var value = cookieValues[name];
        if(((document.forms[frmName].elements[j].type == 'radio') || (document.forms[frmName].elements[j].type == 'checkbox')) && (document.forms[frmName].elements[j].value==value))
          document.forms[frmName].elements[j].checked = true;
        else
          document.forms[frmName].elements[j].value = value;
      }
    }
  }
}
/*end cookie functions*/

/*form validate functions */
function validateAll()
{
  var x = document.getElementsByTagName('div');
  var error = '';
  
  for (var i=0;i<x.length;i++)
  {
    if (x[i].className=='page' && x[i].childNodes[2] && (x[i].childNodes[2].id.indexOf('ClientForm')!=-1 || x[i].childNodes[2].id.indexOf('ClientListForm')!=-1))
    {
      var val = validateGroup(x[i].id);
      if (val == false)
      {
        return false;
      }
      else if(val!=true)
      {
        error += val;
      }
    }
  }
  
  if(error != '' || curentAddressError != '')
  {
    reportErrors(error);
    return false;
  }
  
  return true;
}

function reportErrors(error)
{
  cursor_clear();
  if (curentAddressError != '')
  {
    error += curentAddressError;
    curentAddressError = '';
  }
  
  if(errorField = document.getElementById('formError'))
  {
    errorMsg = '';
    //error = error.replace(/\n/g,"<br />");;
    errors = error.split('\n');
    for(var i=0; i< errors.length; i++)
    {
      if (errors[i] != '')
        errorMsg += '<p>' + errors[i] + '</p>';
    }
    errorField.innerHTML = errorMsg;
    errorField.style.display = 'block';
  }
  else
  {
    alert(error);
  }
}

function hideErrors()
{
  if(errorField = document.getElementById('formError'))
  {
    errorField.innerHTML = '';
    errorField.style.display = 'none';
  } 
}

function validate(group)
{
  var val = validateGroup(group);
  if (val == true)
  {
    return true;
  }
  else if (val != false)
  {
    reportErrors(val);
  }
  return false;
}

function validateGroup(currentGroup)
{       
  var objCurrentSection = document.getElementById(currentGroup);        
  var validateAttribute = objCurrentSection.getAttribute('validate');
  if(validateAttribute && validateAttribute == 'no')
    return true;

  if (objCurrentSection != null)
  {
    var errors = '';
    for(var i=0;i < objCurrentSection.childNodes.length;i++)
    {
      var curValidateAttribute = objCurrentSection.childNodes[i].validate;
      var currentField = false;

      if(objCurrentSection.childNodes[i].nodeName == 'DIV' && (!curValidateAttribute || (curValidateAttribute && curValidateAttribute != 'no') )) 
      {
        if(objCurrentSection.childNodes[i].id.indexOf('ClientForm')!=-1)
        { 
          var currentChildNode = objCurrentSection.childNodes[i];
      
          if((currentChildNode.childNodes[1]) && (currentChildNode.childNodes[1].className=='fieldAttr') && (currentChildNode.childNodes[1].childNodes[0].nodeName=='INPUT') && (currentChildNode.childNodes[1].childNodes[0].type=='hidden') && (currentChildNode.childNodes[1].childNodes[0].id.indexOf('Form')!=-1)) {
            var currentField = currentChildNode.childNodes[1].childNodes[0];
            var validation = currentField.className;
            var currentDesc = "\"" + currentChildNode.childNodes[0].childNodes[0].innerHTML + "\" niet ingevuld";
          }
          else if ((currentChildNode.childNodes[1]) && (currentChildNode.childNodes[1].childNodes[0]) && (currentChildNode.childNodes[1].childNodes[0].childNodes[0]) && currentChildNode.childNodes[1].childNodes[0].childNodes[0].value!='' && (currentChildNode.childNodes[1].childNodes[0].childNodes[0].name) && currentChildNode.childNodes[1].childNodes[0].childNodes[0].name.indexOf('Email')!=-1)
          {
            var currentField = currentChildNode.childNodes[1].childNodes[0].childNodes[0];
            var validation = 'validateEmail';
            var currentDesc = "\"" + currentChildNode.childNodes[0].childNodes[0].innerHTML + "\" niet correct";
          }
          else if((currentChildNode.childNodes[1]) && (currentChildNode.childNodes[1].className=='fieldAttr') && (currentChildNode.childNodes[1].childNodes[0].childNodes[0].nodeName=='INPUT') && (currentChildNode.childNodes[1].childNodes[0].childNodes[0].type=='textbox'||currentChildNode.childNodes[1].childNodes[0].childNodes[0].type=='text'||currentChildNode.childNodes[1].childNodes[0].childNodes[0].type=='hidden') && (currentChildNode.childNodes[1].childNodes[0].childNodes[0].id.indexOf('Form')!=-1))
          {
            var currentField = currentChildNode.childNodes[1].childNodes[0].childNodes[0];
            var validation = currentField.className;
            var currentDesc = "\"" + currentChildNode.childNodes[0].childNodes[0].innerHTML + "\" niet ingevuld";
          }
          else if((currentChildNode.childNodes[1]) && (currentChildNode.childNodes[1].className=='fieldAttr') && (currentChildNode.childNodes[1].childNodes[0].childNodes[0].nodeName=='SELECT'))
          {
            var currentField = currentChildNode.childNodes[1].childNodes[0].childNodes[0];
            var validation = currentField.className;
            var currentDesc = "\"" + currentChildNode.childNodes[0].childNodes[0].innerHTML + "\" niet ingevuld";
          }
          else if(objCurrentSection.childNodes[i].id=='ClientFormlocation')
          {
            var currentField = objCurrentSection.childNodes[i].childNodes[0];
            var validation = objCurrentSection.childNodes[i].className;
            var currentDesc = "Locatie niet geselecteerd";
          }
        }
        else if(objCurrentSection.childNodes[i].className.indexOf('addressGroup')!=-1)
        {
          for (var j = 0; j < objCurrentSection.childNodes[i].childNodes.length; j++)
          {
            if (objCurrentSection.childNodes[i].childNodes[j].id && objCurrentSection.childNodes[i].childNodes[j].id.indexOf('AddressZipcode') != -1)
            {
              var currentField  = objCurrentSection.childNodes[i].childNodes[j].childNodes[1].childNodes[0].childNodes[0];
              var validation    = objCurrentSection.childNodes[i].className;
              var currentDesc   = (currentField.value != '') ? addressValidationFault : addressValidationEmpty;
              break;
            }
          }
        }
      }
      
      if (currentField!=false && validation.indexOf('validateAddress')!=-1 && currentField.readonly!=true && curentAddressError == '')
      {
        // Address is not yet validated, so break execution and try to validate it
        var addressGroupName = currentField.name.replace('/Zipcode', '');
        validateAddress(addressGroupName, false, true);

        return false;
      }

      if(currentField!=false && ((validation.indexOf('validateRequired')!=-1 && currentField.value=='') ||
      (validation.indexOf('validateAddress')!=-1 && currentField.readonly!=true && currentDesc != curentAddressError) ||
      (validation.indexOf('validateEmail')!=-1 && !validateEmail(currentField.value))
      ))
      {
        errors += currentDesc.replace(' *','') + "\n";
        var currentField = false; 
      }
    }
    if(document.getElementById('OfficeSelect') && document.getElementById('OfficeSelect').value=='')
    {
      errors += "Niet geselecteerd naar welk kantoor het formulier verstuurd dient te worden\n";
    }
    
    if(errors!='')
    {
      return errors;
    }
    else
    {
      return true;     
    }
  }
}

function getValue(fieldName)
{
  for (var j = 0; j < document.forms[frmName].elements.length; j++) {
    if(document.forms[frmName].elements[j].name == fieldName)
    {
      _element = document.forms[frmName].elements[j];
      if(_element.type == 'radio' || _element.type == 'checkbox') {
        if (_element.checked)
          return _element.value;
      } else if (_element.type == 'select' || _element.type == 'select-multiple') {
        if (-1 != _element.selectedIndex)
          return _element.options[_element.selectedIndex].value;
      } else
        return _element.value;
    }
  }
  return false;
}

function validateEmail(s)
{
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(s))
    return true;
  else
    return false;
}
/*end form validate functions */

/*Transform data functions */
function ucFirst(s)
{
  s = trim(s);
  if(s.length > 0)
  {
    s = s.toLowerCase();
    s = s.substring(0,1).toUpperCase() + s.substring(1,s.length);
    return s; 
  }
  return false;
}
function initials(s)
{
  s = trim(s);
  if(s.length > 0)
  {
    var newString = '';
    for (i = 0; i < s.length; i++)
    {
      if((i < s.length) && s.charAt(i) != '.')
        newString = newString + s.charAt(i) + '.';
    }
    return newString.toUpperCase();  
  }
  return false;
}
/*end transform data functions */


/* maxlength textarea / input */
function setMaxLength()
{
	var x = document.getElementsByTagName('textarea');
  var y = document.getElementsByTagName('input');
	for (var i=0;i<x.length;i++)
  {
    insertCounterNode(x[i]);
	}
	for (var i=0;i<y.length;i++)
  {
    if(y[i].getAttribute('type')=='text' && y[i].getAttribute('maxlength') && (y[i].getAttribute('maxlength')<2147483647))
    {
      insertCounterNode(y[i]);
    }
	}
}

function insertCounterNode(relatedElement)
{
  if (relatedElement.getAttribute('maxlength'))
  {
	  var counter = document.createElement('div');
    counter.className = 'maxlength_counter ' + relatedElement.type + '_counter';
	  counter.relatedElement = relatedElement;
	  counter.innerHTML = '<span>0</span>/'+relatedElement.getAttribute('maxlength');
	  relatedElement.parentNode.insertBefore(counter,relatedElement.nextSibling);
	  relatedElement.relatedElement = counter.getElementsByTagName('span')[0];

	  relatedElement.onkeyup = relatedElement.onchange = checkMaxLength;
	  relatedElement.onkeyup();
  }
}

function checkMaxLength() {
	var maxLength = this.getAttribute('maxlength');
	var currentLength = this.value.length;
	if (currentLength > maxLength)
  {
    this.value = this.value.substr(0,maxLength);
    currentLength = maxLength;
  }
	this.relatedElement.firstChild.nodeValue = currentLength;
}

