var isLoadingHtml = false;
var isIE = false;
var request;
var globalDivId;
var globalAction;

function sendPassword(TheDiv) {
	var email;
	var el = document.getElementById('email_ww');
	
	if (el != null) email = el.value;

	if (email.length > 0 && validEmail(email)) {
		var el = document.getElementById('passwordError');
		el.style.display = "none";

		loadHtmlSnippet(snippetpath + 'AjaxFunctions.aspx?action=sendPassword&em=' + email, TheDiv, 'lostpassword');
	}
	else {
		// non valid email
		var el = document.getElementById('passwordError');
		el.style.display = "block";
		el.innerHTML = strEmailErrorInvalid;
	}
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
   { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
		IsNumber = false;
   }
   return IsNumber;
}

function sendReminder(TheDiv) {
	var isReminder = document.getElementById('cbReminderPopup').checked;
	var oldReminder = document.getElementById(cbReminderID).checked;
	
	if (isReminder != oldReminder) {
		// optin is gewijzigd
		loadHtmlSnippet(snippetpath + 'AjaxFunctions.aspx?action=sendReminder&reminder=' + isReminder, TheDiv, 'reminder');
	}
}

function sendKM(TheDiv) {
	var kmJaar;
	var kmStand;
	var el = document.getElementById('kmperjaarpopup');
	var kmStandOud = document.getElementById('orgKMstand').innerHTML;
	
	if (el != null) kmJaar = el.value;

	el = document.getElementById('kmstandpopup');
	if (el != null) kmStand = el.value;
	
	if ((kmJaar.length > 0) && IsNumeric(kmJaar)) 
	{
		var el = document.getElementById('errorKMjaar');
		el.style.display = "none";
			
		if (!IsNumeric(kmStand)) {
			var el = document.getElementById('errorKMstand');
			el.style.display = "block";
			el.innerHTML = strKMstandLagerError;
		}
		else {
			var el = document.getElementById('errorKMstand');
			el.style.display = "none";
			loadHtmlSnippet(snippetpath + 'AjaxFunctions.aspx?action=sendkm&kmjaar=' + kmJaar + '&kmstand=' + kmStand, TheDiv, 'kmstand');
		}
	}
	else {
		var el = document.getElementById('errorKMstand');
		el.style.display = "none";

		var el = document.getElementById('errorKMjaar');
		el.style.display = "block";
		el.innerHTML = strKMjaarError;
	}
}

function validEmail(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	
	if (str.indexOf(at)==-1)
		return false;
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
		return false;
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
		return false;
	if (str.indexOf(at,(lat+1))!=-1)
		return false;
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
		return false;
	if (str.indexOf(dot,(lat+2))==-1)
		return false;
	if (str.indexOf(" ")!=-1)
		return false;

 	return true;			
}

function loadHtmlSnippet(url, divID, action) {
	globalDivId = divID;
	globalAction = action;

	if (isLoadingHtml && requestxml != null) 
  		requestxml.abort();

	isLoadingHtml = true;
	
    if (window.XMLHttpRequest) 	{ 	// no IE
        request = new XMLHttpRequest();
        request.onreadystatechange = checkStatus;
        request.open("GET", url, true);
        request.send(null);
    } 
	else if (window.ActiveXObject) { // IE
        isIE = true;
        request = new ActiveXObject("Microsoft.XMLHTTP");
        if (request) {
            request.onreadystatechange = checkStatus;
            request.open("GET", url, true);
            request.send();
        }
    }
}

function checkStatus() {
    if (request.readyState == 4) {
		if (request.status == 0)  
			placeSnippet(); 
		else if (request.status == 200)
    		placeSnippet();
        else {
			isLoadingHtml = false;
            alert("Fout bij ophalen XML data:\n(" + request.status + ") " + request.statusText);
        }
    }
}

function placeSnippet() {
	if (!isLoadingHtml)	return; 
	var responsehtml = request.responseText;
	
	if (globalAction == 'lostpassword') {
		if (responsehtml.indexOf('ERROR') > -1) {
			// email adres onbekend bij bookmark
			var el = document.getElementById('passwordError');
			el.style.display = "block";
			el.innerHTML = strEmailErrorUnknown;			
		}
		else {
			var el = document.getElementById(globalDivId);
			el.innerHTML = '<br/>' + responsehtml;
			el.style.display = "block";
			document.getElementById('passwordInvullen').style.display = "none";
		}
	}
	else if (globalAction == 'kmstand') {
		document.getElementById('kminvullen').style.display = "none";
		document.getElementById('responseKmStand').style.display = "block";
		document.getElementById(globalDivId).innerHTML = '<br/>' + responsehtml + '<br/><br/>';

		var orgKM = document.getElementById('orgKMstand').innerHTML;
		var newKM = document.getElementById('kmstandpopup').value;
		
		if (orgKM < newKM)
		{
			document.getElementById('orgKMjaar').innerHTML = document.getElementById('kmperjaarpopup').value;
			document.getElementById('orgKMstand').innerHTML = document.getElementById('kmstandpopup').value;
		}
	}
	else if (globalAction == 'reminder') {
		document.getElementById('reminderinvullen').style.display = "none";
		document.getElementById('responseReminder').style.display = "block";
		document.getElementById(globalDivId).innerHTML = '<br/>' + responsehtml + '<br/><br/>';
		document.getElementById(cbReminderID).checked = document.getElementById('cbReminderPopup').checked;
	}
	
	isLoadingHtml = false;
}