//Some very simple routines to validate various things
//written by Owen McAree on 29/08/2010

//function to create ajax connection
function setupXMLHttp() {
	var xmlhttp;
	if (window.XMLHttpRequest) {
		xmlhttp=new XMLHttpRequest();
	} else {
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return xmlhttp;
}


//function to validate email addresses
function validateEmail(email, id) {
	valid = 1;
	if (email.indexOf(' ') >= 0) {
		valid = 0;
	}
	if (email.indexOf('@') == -1) {
		valid = 0;
	}
	if (email.indexOf('.') == -1) {
		valid = 0;
	}
	if (valid == 0) {
		document.signup.elements['validatedEmail'].value = 0;
		document.getElementById(id).innerHTML = "<IMG src=images/cross.png alt='Please enter a valid email address' width=20 /> Invalid e-mail address";
		
	} else {
		document.signup.elements['validatedEmail'].value = 1;
		document.getElementById(id).innerHTML = "<IMG src=images/tick.png width=20 />";
	}
}
function validatePassword(id) {
	if (document.signup.elements['pass1'].value.indexOf(' ') >= 0) {
		document.signup.elements['validatedPass'].value = 0;
		document.getElementById(id).innerHTML = "<IMG src=images/cross.png alt='Password contains a space' width=20 /> Password cannot contain spaces";
		return;
	}
	if (document.signup.elements['pass1'].value.length == 0) {
		document.signup.elements['validatedPass'].value = 0;
		document.getElementById(id).innerHTML = "<IMG src=images/cross.png alt='Zero length password' width=20 /> Password cannot be blank";
		return;
	}
	if (document.signup.elements['pass1'].value != document.signup.elements['pass2'].value) {
		document.signup.elements['validatedPass'].value = 0;
		document.getElementById(id).innerHTML = "<IMG src=images/cross.png alt='Passwords do not match!' width=20 /> Passwords do not match!";
	} else {
		document.signup.elements['validatedPass'].value = 1;
		document.getElementById(id).innerHTML = "<IMG src=images/tick.png width=20 />";
	}
}

function validateUsername(username, id) {
	var illegalChars = /\W/;
	if (username.length == 0) {
		document.signup.elements['validatedUsername'].value = 0;
		document.getElementById(id).innerHTML = "<IMG src=images/cross.png alt='Invalid' width=20 />";
		return;
	}
	if (illegalChars.test(username)) {
		document.signup.elements['validatedUsername'].value = 0;
		document.getElementById(id).innerHTML = "<IMG src=images/cross.png alt='Invalid' width=20 /> Username can only contain letters, numbers and underscores (_)";
		return;
	}
	var ajax = setupXMLHttp();
	ajax.onreadystatechange = function(){
		//when data is ready...
		if(ajax.readyState == 4){

			if (ajax.responseText == "invalid") {
				document.signup.elements['validatedUsername'].value = 0;
				document.getElementById(id).innerHTML = "<IMG src=images/cross.png alt='Username taken' width=20 /> This username is taken";
			} else {
				document.signup.elements['validatedUsername'].value = 1;
				document.getElementById(id).innerHTML = "<IMG src=images/tick.png width=20 />";
			}
		}
	}
	//open ajax connection
	ajax.open("GET","include/validateUser.php?username=" + username,true);
	
	//send data
	ajax.send();

}

function validateForm() { 
	if (document.signup.elements['validatedEmail'].value == 0
		|| document.signup.elements['validatedPass'].value == 0
		|| document.signup.elements['validatedUsername'].value == 0
		|| document.signup.elements['firstname'].value.length == 0
		|| document.signup.elements['surname'].value.length == 0
		|| document.signup.elements['username'].value.length == 0
		|| document.signup.elements['phone'].value.length == 0) {
		alert("Please enter valid details before you submit!");
		return false;
	}
	return true;	
}
function validateUpload() { 
	if (document.upload.elements['gallery'].value == "none" && document.upload.elements['latitude'].value == 0 && document.upload.elements['longitude'].value == 0 ) {
		alert("Please select a gallery!");
		return false;
	}
	if (document.upload.elements['file'].value.length == 0) {
		alert("Please specify a file to upload!");
		return false;
	}
	if (document.upload.elements['latitude'].value == 0 && document.upload.elements['longitude'].value == 0 && document.upload.elements['arrival_id'].value == -1) {
		alert("Please enter an airfield or location!");
		return false;
	}
	if (document.upload.elements['latitude'].value != 0 && document.upload.elements['longitude'].value != 0 && document.upload.elements['arrival_id'].value != -1) {
		alert("Please enter an airfield OR location! (not both)");
		return false;
	}
	return true;	
}
function validateGallery() { 
	if (document.upload.elements['gallery'].value == "new") {
		document.getElementById("addnew").innerHTML = 
		"<TD align=right>Gallery Name:&nbsp;</TD><TD><INPUT name='newGallery' /></TD>";
	}
}
