﻿
function reorderOnLoad() 
{
    var sE = document.getElementById('sorteerbareElementen');
    var titelDiv = document.getElementById('titelDiv');    
    var voorlettersDiv = document.getElementById('voorlettersDiv');
    var tussenvoegselDiv = document.getElementById('tussenvoegselDiv');
    var achternaamDiv = document.getElementById('achternaamDiv');   
    var emailDiv = document.getElementById('emailDiv');   
    var emailherhaalDiv = document.getElementById('emailherhaalDiv');
    var showDetailCbDiv = document.getElementById('showDetailCbDiv');
    var adressBlockDiv = document.getElementById('adressBlockDiv');    
    var telefoon1Div = document.getElementById('telefoon1Div');
    var telefoon2Div = document.getElementById('telefoon2Div');  
    var geboortedatumDiv = document.getElementById('geboortedatumDiv');  
    var machtingBlockDiv = document.getElementById('machtigingBlockDiv');  
    
   if(sE != null)
   {
        var sorted_array = [titelDiv, voorlettersDiv, tussenvoegselDiv, achternaamDiv, emailDiv, emailherhaalDiv, showDetailCbDiv, adressBlockDiv, telefoon1Div, telefoon2Div, geboortedatumDiv, machtingBlockDiv].bubble_sort();
   
        for(var i=0; i < sorted_array.length;i++)
        {
           //  alert(sorted_array[i].order);
           sE.appendChild(sorted_array[i]);            
        }
    }    
    //sorted_array = [1, 4, 7, 2, 1, 3, 2, 1, 4, 2, 3, 2, 1].bubble_sort();
    //alert(sorted_array);      
}

Array.prototype.bubble_sort = function() {
    var i, j;
    var newarray = this.slice(0);
    var swap = function(j, k) {
      var temp = newarray[j];
      newarray[j] = newarray[k];
      newarray[k] = temp;
      return(true);
    }
    var swapped = false;
    for(i=1; i<newarray.length; i++) {   
      try
      {     
          for(j=0; j<newarray.length - i; j++) {
            if (parseInt(newarray[j+1].getAttribute('order')) < parseInt(newarray[j].getAttribute('order'))) {
              swapped = swap(j, j+1);
            }
          }
      } 
      catch(exception){}
      
      if (!swapped) break;
    }
    return(newarray)
}

function AdressBlok()
{
        var showDetailCb = document.getElementById('showDetailCb');
        var adressBlockDiv = document.getElementById('adressBlockDiv');
        var telefoon1Div = document.getElementById('telefoon1Div');
        var telefoon2Div = document.getElementById('telefoon2Div');
        var geboortedatumDiv = document.getElementById('geboortedatumDiv');
        
        if(showDetailCb != null)        
        {
            if(showDetailCb.checked)
            {
                 adressBlockDiv.style.display = '';
                 telefoon1Div.style.display = '';
                 telefoon2Div.style.display = '';
                 geboortedatumDiv.style.display = '';
            }
            else        
            {
                adressBlockDiv.style.display = 'none';
                telefoon1Div.style.display = 'none';
                telefoon2Div.style.display = 'none';
                geboortedatumDiv.style.display = 'none';
            }   
        }        
}


function reorderPostcode(landen) 
{   
    var huisnummerDiv = document.getElementById('huisnummerDiv');    
    var huisnummertoevoegingDiv = document.getElementById('huisnummertoevoegingDiv');
    var postcodeDiv = document.getElementById('postcodeDiv');
    var straatnaamDiv = document.getElementById('straatnaamDiv');   
    var straatnaamTxt = document.getElementById('straatnaamTxt');   
    var telefoon1Div = document.getElementById('telefoon1Div');
    var woonplaatsDiv = document.getElementById('woonplaatsDiv');   
    var woonplaatsTxt = document.getElementById('woonplaatsTxt');     
    var landDD = document.getElementById('landDD');     
    
    var land = landDD.value;    
    land = land.toLowerCase();
    
    if (landen.indexOf("|" + land + "|") > -1)
    {      
        postcodeDiv.parentNode.insertBefore(postcodeDiv, straatnaamDiv); 
        huisnummerDiv.parentNode.insertBefore(huisnummerDiv, straatnaamDiv); 
        huisnummertoevoegingDiv.parentNode.insertBefore(huisnummertoevoegingDiv, straatnaamDiv);     
    }
    else
    {       
        straatnaamDiv.parentNode.insertBefore(straatnaamDiv, huisnummerDiv);    
    } 
}


function autoCapitalize()
{
	// Automatically capitalize the initials
	var objVoorletters = document.getElementById("voorlettersTxt")
	var voorletters = objVoorletters.value;	
	var result = '';
	
	// 1. remove anything that's not a letter
	re = /[^a-z]/gi;
	voorletters = voorletters.replace(re, '');

	// 2. capitalize everything
	voorletters = voorletters.toUpperCase();

	// 3. add spaces after each letter
	for(var i=0;i<voorletters.length;i++)
	{
		result += voorletters.substr(i, 1);
		if(i<voorletters.length)
		{
			result += '.';
		}
	}

	objVoorletters.value = result;
}


// webservice postcode check 
var busySearching = false;
var lastPostcodeVal = '';
var lastHuisnummerVal = '';

function CheckPostcode(postcode, huisnummer, landen)
{ 
   var land = document.getElementById('landDD');
   land = land.value;
   land = land.toLowerCase();
    
   if (landen.indexOf("|" + land + "|") > -1)
   {  
        if(lastPostcodeVal != postcode || lastHuisnummerVal != huisnummer)
        {
            busySearching = false;
            lastPostcodeVal = postcode;
            lastHuisnummerVal = huisnummer;

            straatTxt = document.getElementById('straatnaamTxt');
            plaatsTxt = document.getElementById('woonplaatsTxt');

            straatTxt.value = '';
            plaatsTxt.value = '';

            if(postcode.trim().length > 0 && huisnummer.trim().length > 0)
            {            
                if(!busySearching)
                {
                    //alert('busySearching stond op false');
                    FillWithDots('straatnaamTxt');
                    FillWithDots('woonplaatsTxt');
                }
                BasicOrange.eSRO.PostcodeCheck.DoCheck(postcode, huisnummer, OnCheckPostcodeComplete, OnCheckPostcodeTimeout);
            }
        }
    }    
}

function OnCheckPostcodeComplete(results)
{    
    if(results.trim().replace('|', '').length > 0)
        FillAddress(results.split('|')[0], results.split('|')[1]);
    else
        FillAddress('', '');
    
    busySearching = false;
}

function OnCheckPostcodeTimeout(results)
{
    
    straatTxt = document.getElementById('straatnaamTxt');
    plaatsTxt = document.getElementById('woonplaatsTxt');

    if(straatTxt.value.length == 0 && plaatsTxt.value.length == 0)
    {
        straatTxt.className = 'middle deactivated';
        plaatsTxt.className = 'middle deactivated';
    }
    else
    {
        ShowError(straatTxt);
        ShowError(plaatsTxt);
    }
    //alert('setting busysearch to false');
    busySearching = false;
}

function FillAddress(street, city)
{
    straatTxt = document.getElementById('straatnaamTxt');
    plaatsTxt = document.getElementById('woonplaatsTxt');

    if(street.length == 0)
    {
        if(straatTxt.value.trim().length == 0 || plaatsTxt.value.trim().length == 0)
        {
            straatTxt.value = 'niet gevonden';
            plaatsTxt.value = 'niet gevonden';
        }
        else
        {
            straatTxt.value = 'niet gevonden';
            plaatsTxt.value = 'niet gevonden';
        }
    }
    else
    {
        straatTxt.value = street;
        plaatsTxt.value = city;
    }
}

function FillWithDots(element)
{
    busySearching = true;
    var objelement = document.getElementById(element)
    if(objelement.value.replace(/\./g, '').length == 0)
    {
        if(objelement.value.length <= 40)
        {
            objelement.value += '.';
            setTimeout('FillWithDots(\'' + element + '\')', 400);
        }
        else
        {
            ShowError(objelement);
            busySearching = false;
        }
    }
}

function ShowError(element)
{
   //element.value = 'Er ging iets mis met de service';
   element.value = '';  
}


