function DoAjax(url) {
	if(window.XMLHttpRequest) // FIREFOX
		xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
		return(false);	
	
	xhr_object.open("GET", '/_ajax/'+url, false);
	xhr_object.send(null);	

	if(xhr_object.readyState == 4){
		var res = xhr_object.responseText;
		//alert(res);
		return res;
	}
	else
		return "<div class=\"red_box\">This Operation cannot be performed for the moment</div>";
}
// Get Select 
function GetSel(id){
	return GetId(id).options[GetId(id).selectedIndex].value;
}
// Check If Field is Empty or not
function CheckField(id,empty){
	var val = GetId(id).value;
	//alert(val);
	if(empty == 1){
		MarkField(id,'ok','OK');
	}
	else {
		if(val != '')
			MarkField(id,'ok','OK');
		else if(empty == 2)
			MarkField(id,'error','Must be filled');
	}
}
// Markfield as OK or NOT OK
function MarkField(field,classes,msg){
	//alert(field);
	GetId(field+'_box').innerHTML = msg;
	GetId(field+'_box').className ='msg_'+classes;
}
function GetId(id) {
	if(document.getElementById) // standardised method first
		return document.getElementById(id);
	else if(document.all)
		return document.all[id];
	else if(document.layers)
		return document.layers[id];
	else
		return null;
}
function submitenter(auth_form,e){
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;
	if (keycode == 13){
   		Auth();
   		return false;
	}
	else
		return true;
}
var email_reg = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/;
function CheckAuthEmail(){
	var name = GetId('auth_email').value;
    if(name == '') // Empty
		MarkField('auth_email','error','Must be filled');
    else if(email_reg.test(name) == false) // Contains not only numbers / letters
		MarkField('auth_email','error','Invalid email format');
    else if(name.length < 6) 
		MarkField('auth_email','error','6 characters minimum!');   
	else {
			var res = DoAjax('check_email.php?email='+name);
			if(res != 'EMAIL_UNAVAILABLE') // User Already Found
				MarkField('auth_email','error','No user found.');
			else // email Not Found => OK
				MarkField('auth_email','ok','OK');
	}
}



function CheckAuthPassword(){
	var name = GetId('auth_email').value;
	var pass = GetId('auth_password').value;
    if(name == '') // Empty
		MarkField('auth_password','error','Please fill the email first');
    if(pass == '') // Empty
		MarkField('auth_password','error','Must be filled');    
    else if(pass.length < 6) 
		MarkField('auth_password','error','6 characters minimum!');   
	else {
			var res = DoAjax('check_email.php?email='+name);
            if(res != 'EMAIL_UNAVAILABLE') // User Already Found
				MarkField('auth_password','error','Please fill valid email first !');
			else // email Not Found => OK
				MarkField('auth_password','ok','OK');
    }
}

function Auth(){
	var error = 0;
	var elements = GetId('auth_form').getElementsByTagName('div');
	for(i=0;i!=elements.length;i++){
		if(elements[i].id.indexOf('_box') != -1){
			if(elements[i].className == 'msg'){
				
				var cur_name = elements[i].id.replace('_box','');
				//alert(cur_name);
				if(elements[i].id.indexOf('auth_email') != -1)
					CheckAuthEmail();
				else
					CheckField(cur_name,2);
				
			}
			
		}
		//alert(elements[i].className);
		if(elements[i].className == 'msg_error')
			error++;
	}
	
	if(error != 0){
		var s = '';
		if(error > 1) s = 's';
		GetId('login_alert').className = 'error';
		GetId('login_alert').innerHTML = error+' error'+s+' found while verifying form fields. Please review the form and correct signaled errors.';
	
	}
	else{
		if(GetId('login_alert')){
			GetId('login_alert').className = '';
			GetId('login_alert').innerHTML = '';
		}
		GetId('auth_form').submit();
	}

}
function SendForm(id){
	GetId(id).submit();	
}
function ResetForm(){
	GetId('auth_form').reset();
	GetId('err_auth_email').innerHTML = '';
	GetId('err_auth_password').innerHTML = '';
}
