function echeck(str) 
{
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
}

function update_sform_lists()
{
	var l = document.getElementById('i-day');
	for (i=1; i<=31; i++)
		l.options[i-1] = new Option(i, i, false, false);
	var l = document.getElementById('i-year');
	var d = new Date();
	var sy = d.getFullYear()-60;
	for (i=sy; i<=sy+42; i++)
		l.options[i-sy] = new Option(i, i, false, false);		
} 

var errors = new Array();
errors['en'] = new Array();
errors['ru'] = new Array();
errors['en'][1] = "Error: All fields are mandatory!";
errors['ru'][1] = "Ошибка: Все поля обязательные!";
errors['en'][2] = "Error: Valid email address is required!";
errors['ru'][2] = "Ошибка: Необходим действующий email адрес";
errors['en'][3] = "Error: Please fill all mandatory fields!";
errors['ru'][3] = "Ошибка: Пожалуйста, заполните все необходимые поля!";
errors['en'][4] = "Error: Password should be longer than 7 chars!";
errors['ru'][4] = "Ошибка: Пароль должен быть длиннее 7 символов!";
errors['en'][5] = "Error: Password does not match the confirm password!";
errors['ru'][5] = "Ошибка: Пароль не совпадает с проверочным!";
errors['en'][6] = "Error: Password should contain at least one digit!";
errors['ru'][6] = "Ошибка: Пароль должен содержать хотя бы одну цифру!";
errors['en'][7] = "Error: You should agree to Terms and Conditions before signup!";
errors['ru'][7] = "Ошибка: Требуется согласие с условиями программы!";
errors['en'][8] = "Error: <b>Account</b> must be at most 16 characters long";
errors['ru'][8] = "Ошибка: Ваш <b>Account</b> может быть максимум 16 символов!";
errors['en'][9] = "Error: <b>Account</b> may have only letters and numbers!";
errors['ru'][9] = "Ошибка: Ваш <b>Account</b> должен состоять только из символов и цифр!";
errors['en'][10] = "Error: A webmaster <b>site url</b> must be at most 255 characters long";
errors['ru'][10] = "Ошибка: Ваш <b>site url</b> может быть максимум 255 символов";
errors['en'][11] = "Error: Webmaster <b>address line one / two</b> must be at most 64 characters long";
errors['ru'][11] = "Ошибка: Ваш <b>address line one / two</b> может быть максимум 64 символа";
errors['en'][12] = "Error: Webmaster <b>city</b> must be at most 32 characters long";
errors['ru'][12] = "Ошибка: Ваш <b>city</b> может быть максимум 32 символа";
errors['en'][13] = "Error: Webmaster <b>zip</b> must be at most 32 characters long";
errors['ru'][13] = "Ошибка: Ваш <b>zip</b> может быть максимум 32 символа";
errors['en'][14] = "Error: Webmaster <b>country</b> must be at most 32 characters long";
errors['ru'][14] = "Ошибка: Ваш <b>country</b> может быть максимум 32 символа";
errors['en'][15] = "Error: Webmaster <b>state</b> must be at most 32 characters long";
errors['ru'][15] = "Ошибка: Ваш <b>state</b> может быть максимум 32 символа";
errors['en'][16] = "Error: Webmaster <b>phone</b> must be at most 32 characters long";
errors['ru'][16] = "Ошибка: Ваш <b>phone</b> может быть максимум 32 символа";

function submit_sform(lang)
{	
	if (lang == null)
		lang = 'en';
		 
	if (document.getElementById('i-name').value.length == 0 ||
		 document.getElementById('i-email').value.length == 0 ||
		 document.getElementById('i-url').value.length == 0 ||
		 document.getElementById('i-address1').value.length == 0 && document.getElementById('i-address2').value.length == 0 ||
		 document.getElementById('i-city').value.length == 0 ||
		 document.getElementById('i-zip').value.length == 0 ||
		 document.getElementById('i-country').value.length == 0 ||
		 document.getElementById('i-phone').value.length == 0)
	{
		document.getElementById('e_error').innerHTML=errors[lang][3]; 
		return false;				
	}
	
	if (document.getElementById('i-phone').value.length > 32)
	{
		document.getElementById('e_error').innerHTML=errors[lang][16]; 
		return false;
	}
	
	if (document.getElementById('i-state').value.length > 32)
	{
		document.getElementById('e_error').innerHTML=errors[lang][15]; 
		return false;
	}
	
	if (document.getElementById('i-country').value.length > 32)
	{
		document.getElementById('e_error').innerHTML=errors[lang][14]; 
		return false;
	}

	if (document.getElementById('i-zip').value.length > 32)
	{
		document.getElementById('e_error').innerHTML=errors[lang][13]; 
		return false;
	}	

	if (document.getElementById('i-city').value.length > 32)
	{
		document.getElementById('e_error').innerHTML=errors[lang][12]; 
		return false;
	}
	
	if (document.getElementById('i-address1').value.length > 64 || document.getElementById('i-address2').value.length > 64)
	{
		document.getElementById('e_error').innerHTML=errors[lang][11]; 
		return false;
	}
	
	if (document.getElementById('i-url').value.length > 255)
	{
		document.getElementById('e_error').innerHTML=errors[lang][10]; 
		return false;
	}

	if (!echeck(document.getElementById('i-email').value)) 
	{
		document.getElementById('e_error').innerHTML=errors[lang][2]; 
		return false;
	};
	
	if (document.getElementById('i-password').value.length < 8)
	{
		document.getElementById('e_error').innerHTML=errors[lang][4]; 
		return false;
	}
	
	if (document.getElementById('i-password').value != document.getElementById('i-confirm').value) 
	{
		document.getElementById('e_error').innerHTML=errors[lang][5]; 
		return false;
	};	
	
	var has_digit=/\d/;
	if (document.getElementById('i-password').value.search(has_digit)==-1) //if match failed
	{
		document.getElementById('e_error').innerHTML=errors[lang][6]; 
		return false;
	}
	
	if (!document.getElementById('c-terms').checked)
	{
		document.getElementById('e_error').innerHTML=errors[lang][7]; 
		return false;
	}
	
	if (document.getElementById('i-name').value.length > 16)
	{
		document.getElementById('e_error').innerHTML=errors[lang][8]; 
		return false;
	}
	
	var has_digit_and_letters=/^[0-9a-zA-Z\.\-\_]+$/;
	if (document.getElementById('i-name').value.search(has_digit_and_letters)==-1) //if match failed
	{
		document.getElementById('e_error').innerHTML=errors[lang][9]; 
		return false;
	}

	JsHttpRequest.query('/signup.php', 
		{
			'email': document.getElementById('i-email').value, 
			'name': document.getElementById('i-name').value,
			'password': document.getElementById('i-password').value,
			'url': document.getElementById('i-url').value,
			'month': document.getElementById('i-month').value,
			'day': document.getElementById('i-day').value,
			'year': document.getElementById('i-year').value,
			'address1': document.getElementById('i-address1').value,
			'address2': document.getElementById('i-address2').value,
			'city': document.getElementById('i-city').value,
			'state': document.getElementById('i-state').value,
			'zip': document.getElementById('i-zip').value,
			'country': document.getElementById('i-country').value,
			'phone': document.getElementById('i-phone').value,
			'ref': document.getElementById('i-ref').value,
			'lang': lang
		}, 
		function (result, errors) {
			if (result) 
				{
					if (result['res'] == 1)
					{
						document.getElementById('s_body').style.display = 'none';
						document.getElementById('s_head').style.display = 'none';
						document.getElementById('e_error').style.display = 'none';
						document.getElementById('reg_success').style.display = 'block'; 
					}	
					else 
						document.getElementById('e_error').innerHTML= result['err'];
					
						
				}
		}, true); 
	
	return false; 	
}

function submit_cform(lang)
{	
	if (lang == null)
		lang = 'en';

	if (document.getElementById('w_name').value.length == 0 || document.getElementById('w_message').value.length == 0 || document.getElementById('sec_code').value.length == 0)
	{
		document.getElementById('e_error').innerHTML= errors[lang][1]; 
		return false;				
	}

	if (!echeck(document.getElementById('w_email').value)) 
	{
		document.getElementById('e_error').innerHTML= errors[lang][2]; 
		return false;
	};	

	JsHttpRequest.query('/contacts.php', 
		{
			'email': document.getElementById('w_email').value, 
			'name': document.getElementById('w_name').value,
			'body': document.getElementById('w_message').value,
			'sec_code': document.getElementById('sec_code').value,
			'lang': lang
		}, 
		function (result, errors) {
			if (result) 
				{
					if (result['res'] == 1)
					{
						document.getElementById('req_success').style.display = 'block';
						document.getElementById('c_body').style.display = 'none';
						document.getElementById('e_error').style.display = 'none'; 
					}	
					else 
						document.getElementById('e_error').innerHTML= result['error'];
				}
		}, true); 
	
	return false; 	
}

