window.onload = function() {
	pngFix();
	if ($('signupform')) {
		var curform = $('signupform');
		for (var i=0;i<curform.elements.length;i++) {
			var field = curform.elements[i];
			if (field.name != 'submit') {
				checkFormField(field);
			}
		}
	}
	if ($('recaptcha')) {
		$('recaptcha').show();	
	}
}

window.onresize = adjustSize;

function getxmlhttp() {
    var xmlhttp = false;
    
    //Check for IE
    try {
        // If JavaScript version greater than 5
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e) {
        // If not, use older active x object
        try {
            // If IE
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(E) {
            // Browser non-ie
            xmlhttp = false;
        }
    }
    
    // If browser non-ie, create JavaScript instance of object
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}

function processFormAjax(curform) {  
    curform.submit.value = 'aan het versturen...';

	var action = '';
	if (curform.getAttribute('action')) {
		action = curform.getAttribute('action').substr(1);
	}
	else {
		return true;	
	}

	thefile = "/inc/content."+action+".php";

	if (action == 'aanmelden') {
		var proceed = validateSignupForm(curform);		
	}
	else {
		var proceed = validateForm(curform);
	}
	
    if(proceed == true) {
        var params = 'submit=true';
        for (var i=0;i<curform.elements.length;i++) {
            if (curform.elements[i].type == 'text' || curform.elements[i].type == 'password' || curform.elements[i].type == 'textarea' || curform.elements[i].type == 'select-one' || curform.elements[i].type == 'hidden') {
                params += '&'+escape(curform.elements[i].name) + '=' + escape(curform.elements[i].value);
            }
            if ( (curform.elements[i].type == 'radio' || curform.elements[i].type == 'checkbox') && curform.elements[i].checked == true) {
                params += '&'+escape(curform.elements[i].name) + '=' + escape(curform.elements[i].value);
            }
		}
        xmlhttp = getxmlhttp();
        xmlhttp.open("POST", thefile+"?refresh="+((new Date()).valueOf()), true);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");   
        xmlhttp.onreadystatechange = function() {
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {               
                document.getElementById('center').innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.send(params);
    }
    else {
        curform.submit.value = 'verstuur';
    }
}

function validateForm(curform) {
    var re = true;

		for (var i=0;i<curform.elements.length;i++) {
			var valid = true;
			if (curform.elements[i].type == 'text') {
				if (curform.elements[i].value.strip() == ''
					&&
					!(curform.id != 'lidworden' && (curform.elements[i].name == 'adres' || curform.elements[i].name == 'postcode' || curform.elements[i].name == 'woonplaats' || curform.elements[i].name == 'telefoon'))
				) {
					valid = false;
				}
				else if (curform.elements[i].name == 'email' || curform.elements[i].name == 'email_ontvanger') {
					var td = curform.elements[i].parentNode;
					if (!validateEmail(curform.elements[i].value.strip())) {
						valid = false;
						if (!$('email_error')) {
							var t = document.createTextNode('Ongeldig adres');
							var d = document.createElement('div');
							d.id = 'email_error';
							d.style.color = 'red';
							d.appendChild(t);
							td.appendChild(d);
						}
					}
					else {
						if ($('email_error')) {
							td.removeChild($('email_error'));
						}
					}
				}
			}
			if (curform.elements[i].type == 'textarea') {
				if (curform.elements[i].value.strip() == ''
				) {
					valid = false;
				}
			}
			
			if (valid == true) {
				if (curform.elements[i].type == 'radio' || curform.elements[i].type == 'checkbox') {
					curform.elements[i].style.backgroundColor = 'transparent';
				}
				else {
					curform.elements[i].style.backgroundColor = 'white';	
				}
			}            
			else {
				curform.elements[i].style.backgroundColor = '#FF6666';
				re = false;
			}
		}
	return re;
}



function validateSignupForm(curform) {
    var re = true;

		for (var i=0;i<curform.elements.length;i++) {
			var field = curform.elements[i];
			if (field.name != 'submit' && field.name != 'submit_pass' && field.name != 'adres' && field.name != 'postcode' && field.name != 'woonplaats' && field.name != 'telefoon' && field.name != 'old_pass') {
				var tr = field.parentNode.parentNode;
				var tds = tr.getElementsByTagName('td');
				for (var n=0; n<tds.length;n++) {
					if (tds[n].className == 'check') {
						var last_td = tds[n];
					}
				}
				var checkimg = last_td.getElementsByTagName('img')[0];
	
				if (checkimg.src.indexOf('/check.gif') == -1) {
					curform.elements[i].style.backgroundColor = '#FF6666';
					re = false;
				}
				else {
					curform.elements[i].style.backgroundColor = 'white';
				}
			}
		}

	return re;
}

function validateEmail(email) {
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
    if (filter.test(email)) {
        return true;
    }
    else {
        return false;
    }
}

function checkFormField(field) {
	var fieldname = field.name;
	var fieldvalue = field.value;
	var tr = field.parentNode.parentNode;
	var table = tr.parentNode;
	var tds = tr.getElementsByTagName('td')
	for (var i=0; i<tds.length;i++) {
		if (tds[i].className == 'check') {
			var last_td = tds[i];
		}
	}
	var checkimg = last_td.getElementsByTagName('img')[0];
	
	var xmlhttp = getxmlhttp();
	xmlhttp.open("GET", "/extra/checkformfield.php?fieldname="+fieldname+"&fieldvalue="+fieldvalue+"&refresh="+((new Date()).valueOf()), true);
	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {               
			if (xmlhttp.responseText == '1') {
				checkimg.src = '/img/check.gif';
				field.style.backgroundColor = 'white';
				while (tr.nextSibling.className == 'error') {
					table.removeChild(tr.nextSibling);
				}
			}
			else {
				checkimg.src = '/img/no.gif';
				var error = xmlhttp.responseText;
				if (error != '') {
					if (tr.nextSibling.className != 'error') {
						var error_tr = document.createElement('tr');
						error_tr.className = 'error';
						var error_td = document.createElement('td');
						error_td.colspan = '2';
						var error_text = document.createTextNode(error);
						error_td.appendChild(error_text);
						error_tr.appendChild(document.createElement('td'));
						error_tr.appendChild(error_td);
						table.insertBefore(error_tr, tr.nextSibling);
					}
				}
				else {
					while (tr.nextSibling.className == 'error') {
						table.removeChild(tr.nextSibling);
					}
				}
			}
		}
	}
	xmlhttp.send(null);
}

function showFlash()
{
    document.getElementById("ikkinatorDiv").style.display = 'block';
    document.getElementById("ikkinatorOverlay").style.display = 'block';
    document.getElementById("ikkinatorOverlay").style.height = getPageY() + 'px';
    //new Effect.Opacity('ikkinatorOverlay', { from: 0, to: 0.8, duration: 0.5 });
}

function showMemory()
{
    document.getElementById("memoryDiv").style.display = 'block';
    document.getElementById("memoryOverlay").style.display = 'block';
    document.getElementById("memoryOverlay").style.height = getPageY() + 'px';
    //new Effect.Opacity('ikkinatorOverlay', { from: 0, to: 0.8, duration: 0.5 });
}

function closeFlash()
{
	/*
    document.getElementById("ikkinatorDiv").style.display = 'none';
    document.getElementById("ikkinatorOverlay").style.display = 'none';
	*/
	window.location = '/ikki-customizer';
}

function closeMemory()
{
    //alert('close');
    //document.getElementById("ikkinatorOverlay").innerHTML = '';
    document.getElementById("memoryDiv").style.display = 'none';
    document.getElementById("memoryOverlay").style.display = 'none';
}

function adjustSize() {
    var sWidth  = document.body.clientWidth;
    var sHeight = document.body.clientHeight;
    
    if (document.getElementById('ikkinatorDiv'))
    {
        //document.getElementById('ikkinatorDiv').style.top = sHeight - 450 - ((sHeight-550)/2) + "px";
        document.getElementById('ikkinatorDiv').style.top = "50px";
        document.getElementById('ikkinatorDiv').style.left = sWidth - 900 - ((sWidth-900)/2) + "px";
    }
}

function rescaleFlash(divHeight) {
	document.getElementById('nav').style.height = divHeight + 'px';
	document.getElementById('sotester').height = divHeight;
}

function getPageY(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		yScroll = document.body.offsetHeight;
	}
	
	var windowHeight;

	if (self.innerHeight) {	// all except Explorer
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	//arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return pageHeight;
}

function renewCaptcha() {
	$('captcha').src = '/extra/captcha.php?r='+Math.random();
}