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>";
}
function NL(){
	var email = GetId('nl_email').value;
	if(email == '')
		alert('Please enter your e-mail!');
	else{	
		var alnum = new RegExp("^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,3}$","g");
  		if (alnum.test(email) == false)
			alert('Your e-mail address is invalid');
		else{
    		res = DoAjax('newsletter.php?email='+email);
			if(res == 'OK')
				alert('Thanks for joining our newsletter!');
			else if(res == 'USER_ALREADY_EXISTS')
				alert('Your e-mail already exists in our database!');
		}
	}
}
// 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');
	}
}

function Move(p,dir,id){
	var res = DoAjax('move.php?p='+p+'&dir='+dir+'&id='+id);
	//alert(res);
	AN_Build(1);
}

// Markfield as OK or NOT OK
function MarkField(field,classes,msg){
	//alert(field);
	GetId(field+'_box').innerHTML = msg;
	GetId(field).className ='msg_'+classes;
	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 CheckEmail(type){
	var name = GetId(type+'_email').value;
    if(name == '') // Empty
		MarkField(type+'_email','error','Must be filled');
    else if(email_reg.test(name) == false) // Contains not only numbers / letters
		MarkField(type+'_email','error','Invalid email');
    else if(name.length < 6) 
		MarkField(type+'_email','error','6 characters min!');  
	else {
		if(type != 'c'){
			var res = DoAjax('check_email.php?email='+name);
			if(res != 'EMAIL_UNAVAILABLE'){ // User Already Found
				if(type == 'register')
					MarkField(type+'_email','ok','OK');
				else
					MarkField(type+'_email','error','No user found.');
			}
			else{ // email Not Found => OK
				//alert(type);
				if(type == 'register')
					MarkField(type+'_email','error','Email Already taken');
				else
					MarkField(type+'_email','ok','OK');
			}
		}
		else {
			MarkField(type+'_email','ok','OK');
			
			
		}
	}
}

function CheckPassword(type){
	var pass = GetId(type+'_password').value;
    if(pass == '') // Empty
		MarkField(type+'_password','error','Must be filled');    
    else if(pass.length < 6) 
		MarkField(type+'_password','error','Min, 6 Character!');   
	else 
		MarkField(type+'_password','ok','OK');
}



function Auth(type){
	var error = 0;
	var elements = GetId(type+'_form').getElementsByTagName('div');
	//alert(elements.length);
	for(i=0;i!=elements.length;i++){
		//alert(elements[i].id.indexOf('_box'));
		if(elements[i].id.indexOf('_box') != -1){
			if(elements[i].className == ''){
				
				var cur_name = elements[i].id.replace('_box','');
				//alert(cur_name);
				if(elements[i].id.indexOf(type+'_email') != -1)
					CheckEmail(type);
				else if(elements[i].id.indexOf(type+'_password') != -1)
					CheckPassword(type);					
				else
					CheckField(cur_name,2);
				
			}
			
		}
		//alert(elements[i].className);
		if(elements[i].className == 'msg_error')
			error++;
	}
	//alert(error);
	
	if(error != 0){
		var s = '';
		if(error > 1) s = 's';
		GetId(type+'_alert').className = 'error';
		GetId(type+'_alert').innerHTML = error+' error'+s+' found while verifying form fields.';
	
	}
	else{
		if(GetId(type+'_alert')){
			GetId(type+'_alert').className = '';
			GetId(type+'_alert').innerHTML = '';
		}
		GetId(type+'_form').submit();
	}
	

}

function SendForm(id){
	GetId(id).submit();	
}
function ResetForm(){
	GetId('login_form').reset();
	GetId('login_alert').innerHTML = '';
	GetId('login_alert').className = '';
	GetId('login_email_box').innerHTML = '';
	GetId('login_password_box').innerHTML = '';
	GetId('login_email_box').className = '';
	GetId('login_password_box').className = '';	
}
/*function ChangeImage(id){
	GetId('image_box').className = 'product_'+id;
}*/
