function focus(){ 
	document.passform.pass1.focus(); 
}

function submitform(thisURL, thisMethod){
	document.passform.action = thisURL; 
	document.passform.method = thisMethod;
	document.passform.submit();
}


// ----------------- GENERIC FUNCTION ------------------
// connect remotly to server files and perse the request 
var http_imageverification;
var http_validation;
var http_usercheck;
function actionrRequest(url, parameters, contentfunction, http_request) {
	this[http_request] = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		this[http_request] = new XMLHttpRequest();
		if (this[http_request].overrideMimeType) {
			this[http_request].overrideMimeType('text/html');
		}
	}else if(window.ActiveXObject) { // IE
		try{
			this[http_request] = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try {
				this[http_request] = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!this[http_request]) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}
	this[http_request].onreadystatechange = contentfunction; 
	this[http_request].open('GET', url + parameters, true);
	this[http_request].send(null);
}
// -------------------------------------------------------

// pasword strength validation
function alertContents() {
  if (http_validation.readyState == 4) {
	 if (http_validation.status == 200) {
		//alert(http_validation.responseText);
		result = http_validation.responseText;
		newImage = "url(" + result + ")";
		document.getElementById('mytd').style.backgroundImage = newImage;           
	 } else {
		alert('There was a problem with the request.');
	 }
  }
}
function get(obj) {
  var getstr = "?";
  for (i=0; i<obj.childNodes.length; i++) {
	 if (obj.childNodes[i].tagName == "INPUT") {
		if (obj.childNodes[i].type == "password") {
		   getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
		}

	 }   
   
  }
  actionrRequest('include/inc.passwordvalidation.php', getstr, alertContents, 'http_validation');
}


// ----------- CONFIRMATION PASSWORD -------------
function checkForm(){
	var invalid = " "; // Invalid character is a space
	var valid = "@"; // only for email - check it is email
	var minLength = 6; // Minimum length
	var titleLength = 5;
	
	var title = document.passform.title.value;
	var fname = document.passform.name.value;
	var sname = document.passform.surname.value;
	var uname = document.passform.user.value;
	
	var pass1 = document.passform.pass1.value;
	var pass2 = document.passform.pass2.value;
	
	var email1 = document.passform.signupemail1.value;
	var email2 = document.passform.signupemail2.value;
	
	var verif = document.passform.txtNumber.value;
	
	var opt = document.passform.opt.checked;
	
	var titleFalseValue = false;
	var nameFalseValue = false;
	var surnameFalseValue = false;
	var usernameFalseValue = false;
	var passFalseValue = false;
	var emailFalseValue = false;
	var veriFalseValue = false;
	var optFalseValue = false;
	
	// control missing sign 
	function marking(mark, value){
		if(value != ''){
			document.getElementById(mark).innerHTML = '<div class="layout_1_4"><div class="layout_1_4_1">' + value + '</div></div>';
		}else{
			document.getElementById(mark).innerHTML = '';
		}
	}
	
	function markStar(mark1, value1, mark2, value2){
		marking(mark1, value1);
		if(mark2 != ''){marking(mark2, value2);}
	}
	
	// display user exists or not
	function userContents() {
		if (http_usercheck.readyState == 4) {
			if (http_usercheck.status == 200) {
				user_result = http_usercheck.responseText;
				if(user_result == "true"){												// if username does not exist
					markStar('user_mark', '', '', '');									// remove all marks 
					usernameFalseValue = false;											// assign value for to prevent stopping execution of file
				}else if(user_result == "false"){										// if username exists
					markStar('user_mark', 'Username already in use.', '', '');			// display message 
					usernameFalseValue = true;
				}
				perseForm();
			} else {
				alert('There was a problem with the request.');
			}
		}
	}
	
	//display verification code is right
	function verContent() {
		if (http_imageverification.readyState == 4) {
			if (http_imageverification.status == 200) {
				ver_result = http_imageverification.responseText;
				if(ver_result == "correct"){
					markStar('verif_mark', '', '', '');
					veriFalseValue = false;
				}else if(ver_result == "wrong"){
					markStar('verif_mark', 'Wrong entry.', '', '');
					veriFalseValue = true;
				}
				//perseForm();
			} else {
				alert('There was a problem with the request.');
			}
		}
	}
	
	
	// CHECKING TITLE
	// if missing
	if(title == '' && titleFalseValue == false){
		markStar('title_mark', 'Title missing.', '', '');
		titleFalseValue = true;
	}else{
		markStar('title_mark', '', '', '');
		titleFalseValue = false;
	}
	
	
	// CHECKING FIRST NAME
	// if missing
	if(fname == '' && nameFalseValue == false){
		markStar('name_mark', 'First name missing.', '', '');
		nameFalseValue = true;
	}else{
		markStar('name_mark', '', '', '');
		nameFalseValue = false;
	}
	
	// CHECKING SURNAME
	// if missing
	if(sname == '' && surnameFalseValue == false){
		markStar('surname_mark', 'Surname missing.', '', '');
		surnameFalseValue = true;
	}else{
		markStar('surname_mark', '', '', '');
		surnameFalseValue = false;
	}
	
	
	
	
	// CHECKING PASSWORD
	// if both are empty
	if (pass1 == '' && pass2 == '' && passFalseValue == false) {
		markStar('pass1_mark', 'Please enter passwords.', 'pass2_mark', 'Please repeat password.');
		passFalseValue = true;
	}
	// if confirmation is entered but password is empty
	else if(pass1 == '' && pass2 != '' && passFalseValue == false){
		markStar('pass1_mark', 'Missing password.', 'pass2_mark', '');
		passFalseValue = true;
	}
	// if password is entered but confirmation is empty
	else if(pass1 != '' && pass2 == '' && passFalseValue == false){
		markStar('pass1_mark', '', 'pass2_mark', 'Please confirm password.');
		passFalseValue = true;
	}
	// check both password match
	else if(pass1 != pass2 && passFalseValue == false){
		markStar('pass1_mark', '', 'pass2_mark', 'Password does not match.');
		passFalseValue = true;
	}
	// check length
	else if(pass1.length<minLength && passFalseValue == false){
		markStar('pass1_mark', 'Password must be at least 6 characters long.', 'pass2_mark', '');
		passFalseValue = true;
	}
	// check for spaces
	else if (pass1.indexOf(invalid) > 0 && passFalseValue == false) {
		markStar('pass1_mark', 'Password cannot include spaces.', 'pass2_mark', '');
		passFalseValue = true;
	}
	else{
		markStar('pass1_mark', '', 'pass2_mark', '');
		passFalseValue = false;
	}
	
	
	// CHECKING EMAIL
	// if both are empty
	if (email1 == '' && email2 == '' && emailFalseValue == false) {
		markStar('email1_mark', 'Please enter email.', 'email2_mark', 'Please repeat email.');
		emailFalseValue = true;
	}
	// if confirmation is entered but password is empty
	else if(email1 == '' && email2 != '' && emailFalseValue == false){
		markStar('email1_mark', 'Email missing.', 'email2_mark', '');
		emailFalseValue = true;
	}
	// if password is entered but confirmation is empty
	else if(email1 != '' && email2 == '' && emailFalseValue == false){
		markStar('email1_mark', '', 'email2_mark', 'Please confirm email.');
		emailFalseValue = true;
	}
	// check both password match
	else if(email1 != email2 && emailFalseValue == false){
		markStar('email1_mark', '', 'email2_mark', 'Email does not match.');
		emailFalseValue = true;
	}
	// check for spaces
	else if (email1.indexOf(invalid) > 0 && emailFalseValue == false) {
		markStar('email1_mark', 'Invalid email.', 'email2_mark', '');
		emailFalseValue = true;
	}
	
	// check for spaces
	else if (email1.indexOf(valid) < 1 && emailFalseValue == false) {
		markStar('email1_mark', 'This is not email.', 'email2_mark', '');
		emailFalseValue = true;
	}
	else{
		markStar('email1_mark', '', 'email2_mark', '');
		emailFalseValue = false;
	}
	
	// CHECKING LANGUAGE OPTION
	// if missing
	if(opt == '' && optFalseValue == false){
		markStar('opt_mark', 'Language missing.', '', '');
		optFalseValue = true;
	}else{
		markStar('opt_mark', '', '', '');
		optFalseValue = false;
	}
	
	// CHECKING VERIFICATION
	// if missing
	if(verif == '' && veriFalseValue == false){
		markStar('verif_mark', 'Entry missing.', '', '');
		veriFalseValue = true;
	}
	else{
		var ver = "?verif=" + verif;
		actionrRequest('include/inc.signupverificationcheck.php', ver, verContent, 'http_imageverification');
	
	}
	
	// CHECKING USERNAME
	// if missing
	if(uname == '' && usernameFalseValue == false){
		markStar('user_mark', 'Username missing.', '', '');
		usernameFalseValue = true;
	}
	else if(uname != '' && usernameFalseValue == false){
		var un = "?user=" + uname;
		actionrRequest('include/inc.signupusercheck.php', un, userContents, 'http_usercheck');
	}
	else{
		markStar('user_mark', '', '', '');
		usernameFalseValue = false;
	}
	
	
	function perseForm(){
		if(passFalseValue==true || emailFalseValue==true || titleFalseValue==true || nameFalseValue==true || surnameFalseValue==true || usernameFalseValue==true || veriFalseValue==true || optFalseValue==true){
			return false;	
		}else{
			document.passform.action = 'join';
			document.passform.method = 'post';
			document.passform.submit();
		}
	}
}