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 CheckForm() {
	// Get all div elements under contact form
	var elements = GetId('contact').getElementsByTagName('div');
	var error = 0;
	// For each element found ...
	for(i=0;i!=elements.length;i++){
		// Only get element having 'msg' in their id		
		if(elements[i].id.indexOf('msg') != -1){
			// If class = msg (not checked)
			if(elements[i].className == 'msg'){
				// Check the field
				var cur_name = elements[i].id.replace('msg_','');
				if(cur_name == 'email')
					CheckEmail();
				if(cur_name == 'captcha')
					CheckCaptcha();
				else{
					var empty = 2;
					if(cur_name == 'company') empty = 1;
						CheckField(cur_name,empty);
				}
			}
			// If class = msg_error (error in field) => increment error count			
			if(elements[i].className == 'msg_error')
			error++;
		}
	}
	if(error != 0){
		var s = '';
		if(error > 1) s = 's';
		GetId('error').className = 'shown';
		GetId('error_content').innerHTML = error+' error'+s+' found while verifying form fields. Please review the form and correct signaled errors.';
	
	}
	else{
		GetId('error').className = '';
		GetId('error_content').innerHTML = '';
		GetId('contact').submit();
	}

}
function RandomString(length) {
    var chars = '0123456789'.split('');
    
    if (! length) {
        length = Math.floor(Math.random() * chars.length);
    }
    
    var str = '';
    for (var i = 0; i < length; i++) {
        str += chars[Math.floor(Math.random() * chars.length)];
    }
    return str;
}

function ReloadCaptcha(){
	GetId('img_captcha').src = '/gfx/captcha/'+RandomString(10)+'.gif';	
}

function CheckCaptcha(){
	var captcha = GetId('captcha').value;
	if(captcha == ''){
			GetId('status_captcha').className = 'status_error';
			GetId('msg_captcha').innerHTML = 'You must enter the code';
			GetId('msg_captcha').className = 'msg_error';
	}
	else if(captcha.length != 6){
		GetId('status_captcha').className = 'status_error';
		GetId('msg_captcha').innerHTML = 'Code must contain 6 characters';
		GetId('msg_captcha').className = 'msg_error';
	}
	else {
		var res = DoAjax('check_captcha.php?code='+captcha);
		if(res == 'OK'){
			GetId('status_captcha').className = 'status_ok';
			GetId('msg_captcha').className = 'msg_ok';
			GetId('msg_captcha').innerHTML = '';
		}
		else{
			GetId('status_captcha').className = 'status_error';
			GetId('msg_captcha').innerHTML = 'Invalid Captcha';
			GetId('msg_captcha').className = 'msg_error';
		}	
	}
}
function CheckField(id,empty){
	var val = GetId(id).value;
	if(empty == 1){
			GetId('status_'+id).className = 'status_ok';
			GetId('msg_'+id).className = 'msg_ok';
			GetId('msg_'+id).innerHTML = '';
	}
	else {
		if(val != ''){
			GetId('status_'+id).className = 'status_ok';
			GetId('msg_'+id).className = 'msg_ok';
			GetId('msg_'+id).innerHTML = '';
		}
		else if(empty == 2){
			GetId('status_'+id).className = 'status_error';
			GetId('msg_'+id).innerHTML = 'Must be filled';
			GetId('msg_'+id).className = 'msg_error';
		}
	}
}
function CheckEmail(){
	var email = GetId('email').value;
	if(email == ''){
		GetId('status_email').className = 'status_error';
		GetId('msg_email').innerHTML = 'Must be filled';
		GetId('msg_email').className = 'msg_error';
	}
	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) {
    		GetId('status_email').className = 'status_error';
			GetId('msg_email').innerHTML = 'Incorrect E-mail format';
			GetId('msg_email').className = 'msg_error';
		}
		else{
    		GetId('status_email').className = 'status_ok';
			GetId('msg_email').className = 'msg_ok';
			GetId('msg_email').innerHTML = '';
		}
			
	}
}

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;
}
