function checkInternationalPhone(strPhone){
	strPhone = strPhone.replace(/ /g, '');
	for(i = 0; i <= 9; i++){
		var val = i+''+i+''+i+''+i+''+i;
		if(strPhone.search(val) > -1){return false;	}
		if(strPhone == '0123456789'){return false;	}
	}
	var ret = strPhone.match(/^(([0]{2}){0,1}(((\+){0,1}(31){1})){1}){0,1}(\(0\)|0){0,1}(([1-9]{1}[0-9]{1}[\-]{0,1}[0-9]{7})|([1-9]{1}[0-9]{2}[\-]{0,1}[0-9]{6})|([1-9]{1}[0-9]{3}[\-]{0,1}[0-9]{5})|(6[\-]{0,1}[0-9]{8})){1}$/);
	if(ret == null){return false;} else {return true;}
}


function check(){
  var tel       = document.getElementById('tel');
  var initialen = document.getElementById('initialen');
  var errors    = document.getElementById('errors');
  var error_in  = document.getElementById('error_in');
  var aankoopsom  = document.getElementById('aankoopsom');
  var maandinkomen  = document.getElementById('maandinkomen');
  var email  = document.getElementById('email');
  
  var faultlist = '<ul>'
  
  //special fields which need special treatment
  if(checkInternationalPhone(tel.value) === false){
    tel.style.border="1px solid red";tel.style.background="#fffed8"; faultlist += '<li>Uw <span>telefoonnummer</span> is niet geldig</li>';
	document.getElementById("lbltel").style.color = "red"
  }
  else{
    tel.style.border="1px solid green";tel.style.background="#ffffff";
	document.getElementById("lbltel").style.color = "#333333"
  }

 	var amount = aankoopsom.value.replace('.', '').replace(',', '');
	if((isNaN(amount) == true || amount == '') || (amount < 50000 || amount > 6000000)){
		faultlist += '<li>Welk <span>hypotheekbedrag</span> wenst u (tussen de 50.000 en 6.000.000)?</li>';
		document.getElementById("aankoopsom").style.border="1px solid red";
		document.getElementById("aankoopsom").style.background="#FFFED8";
		document.getElementById("gaankoopsom").style.color="red";
	}
	else{
	  document.getElementById("aankoopsom").style.border="1px solid green";
		document.getElementById("aankoopsom").style.background="#FFFFFF";
		document.getElementById("gaankoopsom").style.color="#333333";
	}
	
 	var mink = maandinkomen.value.replace('.', '').replace(',', '').replace('?', '');
	if((isNaN(mink) == true || ( mink == '' && maandinkomen.value != '?'))){
		faultlist += '<li>Uw <span>inkomen</span> is niet correct</li>';
		document.getElementById("maandinkomen").style.border="1px solid red";
		document.getElementById("maandinkomen").style.background="#FFFED8";
		document.getElementById("gmaandinkomen").style.color="red";
	}
	else{
	  document.getElementById("maandinkomen").style.border="1px solid green";
		document.getElementById("maandinkomen").style.background="#FFFFFF";
		document.getElementById("gmaandinkomen").style.color="#333333";
	}
		
	var email = email.value;
	if(!email.match(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/) || email == ''){
		faultlist += '<li>Uw <span>emailadres</span> is niet correct</li>';
		document.getElementById("email").style.border="1px solid red";
		document.getElementById("email").style.background="#FFFED8";
		document.getElementById("gemail").style.color="red";
	}else{
		document.getElementById("email").style.border="1px solid green";
		document.getElementById("gemail").style.color="#333333";
	}
	
	//check dropdowns
  var time = document.getElementById("time");
  var best_bereik = document.getElementById("best_bereik");
  var selIndex = document.getElementById("time").selectedIndex;
  var tijd =  time.options[selIndex].value;
  
  if(tijd == '-'){
  		faultlist += '<li>U heeft niet aangegeven <span>wanneer</span> u bereikbaar bent</li>';
  		best_bereik.style.color="#FF0000";
  	}else{
  		best_bereik.style.color="#333333";
  	}
	
  var redeb = document.getElementById("redeb");
  var red = document.getElementById("red");
  var selIndex1 = document.getElementById("redeb").selectedIndex;
  var reden =  redeb.options[selIndex1].value;
  
  if(reden == '-'){
  		//faultlist += '<li>U heeft niet de <span>reden</span> aangegeven</li>';
  		faultlist += '<li>Kunt u de <span>reden</span> aangeven dat u hypotheekadvies nodig heeft?</li>';
  		red.style.color="#FF0000";
  	}else{
  		red.style.color="#333333";
  	}
	
  var partner = document.getElementById("partner");
  var partn = document.getElementById("partn");
  var selIndex2 = document.getElementById("partner").selectedIndex;
  var partner_jn =  partner.options[selIndex2].value;

  if(partner_jn == '-'){
  		faultlist += '<li>U heeft niet aangegeven of u een <span>partner</span> heeft</li>';
  		partn.style.color="#FF0000";
  	}else{
  		partn.style.color="#333333";
  	}
	
  var bk = document.getElementById("bkr");
  var bkl = document.getElementById("bk");
  var selIndex5 = document.getElementById("bkr").selectedIndex;
  var bkr_jn =  bk.options[selIndex5].value;	
  	
  	
  if(bkr_jn == '-'){
  		faultlist += '<li>U heeft niet aangegeven of u een <span>BKR codering</span> heeft</li>';
  		bkl.style.color="#FF0000";
  	}else{
  		bkl.style.color="#333333";
  	}
	
   
  var eigenvermogen = document.getElementById("eigenvermogen");
  var selIndex3 = document.getElementById("eigenvermogen").selectedIndex;
  var eigenvermogen_jn =  partner.options[selIndex3].value;
  
  var borg = document.getElementById("borg");
  var selIndex4 = document.getElementById("borg").selectedIndex;
  var borg_jn =  partner.options[selIndex4].value;
  	
	
  //simple fields which don't have to be validated other then that they shouldn't be empty
  var fields_not_empty = new Array('initialen','naam','straat','huisnr','woonplaats'); 
  //push maandinkomen2 in array
  if(document.getElementById('partnerincome').style.display == 'block') {fields_not_empty.push("maandinkomen2") ; }
  if(fields_not_empty[i] == 0) { initialen.focus(); }
  
  // straat
  if(document.getElementById('straat').value == ''){ document.getElementById("gstraat").style.color = "red" } else { document.getElementById("gstraat").style.color = "#333333" } 
  // huisnummer
  if(document.getElementById('huisnr').value == ''){ document.getElementById("ghuisnr").style.color = "red" } else { document.getElementById("ghuisnr").style.color = "#333333" } 
  
  // woonplaats
  if(document.getElementById('woonplaats').value == ''){ document.getElementById("gplaats").style.color = "red" } else { document.getElementById("gplaats").style.color = "#333333" }
  
  // geboorte datum
  if(document.getElementById('Geboortedatum_dag').value == '' || document.getElementById('Geboortedatum_maand').value == '' || document.getElementById('Geboortedatum_jaar').value == ''){ document.getElementById("ggeboortedatum").style.color = "red" } else { document.getElementById("ggeboortedatum").style.color = "#333333" }
  // initialen
  if(document.getElementById('initialen').value == ''){ document.getElementById("xyint").style.color = "red" } else { document.getElementById("xyint").style.color = "#333333" }
  // naam
  if(document.getElementById('naam').value == ''){ document.getElementById("xyacht").style.color = "red" } else { document.getElementById("xyacht").style.color = "#333333" }
  
  
  //loop them
	var docheck = true;
  for(var i=0; i<fields_not_empty.length; i++) {
    var ids = fields_not_empty[i];
    if(document.getElementById(ids).value == '') {
		if(fields_not_empty[i] == 'initialen') { var cc = 'zijn' } else { var cc = 'is' }
		document.getElementById(ids).style.border="1px solid red";document.getElementById(ids).style.background="#FFFED8";faultlist += '<li>Uw <span>' + document.getElementById(ids).name + '</span> '+ cc +' niet correct</li>';
      if(document.getElementById(ids).style.border == "1px solid red" && docheck == true ){ document.getElementById(ids).focus(); docheck = false; }
    }
    else{document.getElementById(ids).style.border="1px solid green";document.getElementById(ids).style.background="#ffffff"; }
  }
  
  // postalcode check
  var postalcode = document.getElementById("postcode");
  if(!postalcode.value.match(/[1-9][0-9]{3} ?[a-zA-Z]{2}/)){
	document.getElementById("postcode").style.border="1px solid red";document.getElementById("postcode").style.background="#FFFED8";faultlist += '<li>Uw <span>postcode</span> is niet correct</li>';
    document.getElementById("gpostcode").style.color = "red";
  } else {
    document.getElementById("gpostcode").style.color = "#333333";
	document.getElementById("postcode").style.border="1px solid green";
	document.getElementById("postcode").style.color="#333333";
	document.getElementById("postcode").style.background="white";
  }

  // gender check
  if ( ( document.f.geslacht[0].checked == false ) && ( document.f.geslacht[1].checked == false ) ) {
	faultlist += '<li>U heeft geen <span>geslacht</span> geselecteerd</li>';
	document.getElementById("lgeslacht").style.color = "red" 
  }
  else {
    document.getElementById("lgeslacht").style.color = "#333333" 
  }


  
  faultlist += '</ul>'
  
  if(faultlist !="<ul></ul>"){
    errors.style.display = 'block'
    error_in.innerHTML = faultlist
    return false;
  }
  else{
     document.forms['f'].submit();
  }
}
var ii = 1000;
function selectReplacement(obj) {
  // append a class to the select
  obj.className += ' replaced';
  // create list for styling
  var ul = document.createElement('ul');
  ul.className = 'selectReplacement';
  ul.style.zIndex = ii;
  ii--;

  var opts = obj.options;
  for (var i=0; i<opts.length; i++) {
    var selectedOpt;
    if (opts[i].selected) {
      selectedOpt = i;
      break;
    } else {
      selectedOpt = 0;
    }
  }
  for (var i=0; i<opts.length; i++) {
    var li = document.createElement('li');
    var txt = document.createTextNode(opts[i].text);
    li.appendChild(txt);
    li.selIndex = opts[i].index;
    li.selectID = obj.id;
    li.onclick = function() {
      //alert('e')
      selectMe(this);
    }
    if (i == selectedOpt) {
      li.className = 'selected';
      li.onclick = function() {
        //fixme example for stretching...
        if(obj.id == 's'){
          
          document.getElementById('vb').style.marginTop='150px'
          document.getElementById('userform').style.height='670px'
      } 
      
          this.parentNode.className += ' selectOpen';
        
          this.onclick = function() {
          //alert('g')
          selectMe(this);
          
        }
      }
    }
    if (window.attachEvent) {
      li.onmouseover = function() {
        this.className += ' hover';
      }
      li.onmouseout = function() {
        this.className = 
          this.className.replace(new RegExp(" hover\\b"), '');
      }
    }
    ul.appendChild(li);
  }
  // add the input and the ul
  obj.parentNode.appendChild(ul);
}


function selectMe(obj) {
  var lis = obj.parentNode.getElementsByTagName('li');
  for (var i=0; i<lis.length; i++) {
    if (lis[i] != obj) { // not the selected list item
      lis[i].className='';
      lis[i].onclick = function() {
        selectMe(this);
      }
   } else {
     
      setVal(obj.selectID, obj.selIndex);
      obj.className='selected';
	  
      obj.parentNode.className = 
        obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
      obj.onclick = function() {
        
        obj.parentNode.className += ' selectOpen';
        this.onclick = function() {
  
          selectMe(this);
        }
      }
    }
  }
}

function setVal(objID, selIndex) {
  var obj = document.getElementById(objID);
  obj.selectedIndex = selIndex;
  if(obj.id == 'bkr'){
    show_extra();
    
  }
  
  if(obj.id == 'partner'){
    if(obj.selectedIndex == 1){
      document.getElementById('partnerincome').style.display = 'block';
      document.getElementById('tenpadvies').style.display = 'none';
    }
    else{
      document.getElementById('partnerincome').style.display = 'none';
	  var partnc = document.getElementById("partn");
	  partnc.style.color = "#333333";
      document.getElementById('tenpadvies').style.display = 'block';
    }
  } 

	// tel change
	if(obj.id == 'time') {
		var lbltel = document.getElementById("lbltel");
		if(obj.selectedIndex != 0) {
			if(obj.selectedIndex != 4) {
				lbltel.innerHTML = 'Telefoonnummer (' + obj.options[selIndex].value + ')'; 
			} else {
				lbltel.innerHTML = 'Telefoonnummer';
			}
		} else {
			lbltel.innerHTML = 'Telefoonnummer';
		}
	} 
}

function setForm() {

  var s = document.getElementsByTagName('select');
  for (var i=0; i<s.length; i++) {
    selectReplacement(s[i]);
  }
}
function closeSel(obj) {
  // close the ul
}
window.onload = function() {
  (document.all && !window.print) ? null : setForm();
}


function show_extra(){
  var hyposom   =  document.getElementById('aankoopsom').value
  var inkomen1  =  document.getElementById('maandinkomen').value
  var inkomen2  =  document.getElementById('maandinkomen2').value
  var efields   =  document.getElementById('efields');
  
  //if factor > 5, show the extra options
  if( (hyposom * 1) / ((((inkomen1 * 1) +(inkomen2 * 1)) *13) + 0.0000001) > 5 ){
   efields.style.display = 'block'; 
  }
  else{
    if(efields.style.display == 'block'){efields.style.display = 'none'; }
  }
}


function getNewHTTPObject()
{
        var xmlhttp;
        /** Special IE only code ... */
        /*@cc_on
          @if (@_jscript_version >= 5)
              try
              {
                  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
              }
              catch (e)
              {
                  try
                  {
                      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                  }
                  catch (E)
                  {
                      xmlhttp = false;
                  }
             }
          @else
             xmlhttp = false;
        @end @*/

        /** Every other browser on the planet */
        if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
        {
            try
            {
                xmlhttp = new XMLHttpRequest();
            }
            catch (e)
            {
                xmlhttp = false;
            }
        }
        return xmlhttp;
}


function size() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
 
 return myHeight;
}

function ObjectPosition(obj) {
    var curleft = 0;
      var curtop = 0;
      if (obj.offsetParent) {
            do {
                  curleft += obj.offsetLeft;
                  curtop += obj.offsetTop;
            } while (obj = obj.offsetParent);
      }
      return [curleft,curtop];
}



function findPos(){
  var initialen = document.getElementById('initialen');
	var offset = ObjectPosition(initialen);
	//alert(document.body.clientHeight)
	var hoogte = size();

	if  ((offset - (document.body.scrollTop) <= hoogte)){
		initialen.focus();
	}
}
		
//onscroll=findPos;


