


function form_submit()
{
	/* Verifica campos REQUERIDOS */
	var fields_required = $$(".REQUIRED");
	
	for(var i = 0; i < fields_required.length; i++)
	{
		if (fields_required[i].value == "")
		{
			alert("O campo '" + fields_required[i].title + "' é necessário.");
			fields_required[i].focus();
			return 0;
		}
	}

	/* Verifica campos de DATA */
	var fields_data = $$(".DATA");
	
	for(var i = 0; i < fields_data.length; i++)
	{
		if (!ValidaData(fields_data[i]))
		{
			alert("O campo de data '" + fields_data[i].title + "' parece inválido. A data deve ser inserida no formato exemplo '10/08/1977'");
			fields_data[i].focus();
			return 0;
		}
	}

	/* Verifica campos de CPF */
	var fields_data = $$(".CPF");
	
	for(var i = 0; i < fields_data.length; i++)
	{
		if (!ValidaCPF(fields_data[i]))
		{
			alert("O campo de CPF está inválido.");
			fields_data[i].focus();
			return 0;
		}
	}

	/* Verifica campos de E-MAIL */
	var fields_data = $$(".MAIL");
	
	for(var i = 0; i < fields_data.length; i++)
	{
		if (!checkMail(fields_data[i]))
		{
			alert("O campo de E-MAIL está inválido.");
			fields_data[i].focus();
			return 0;
		}
	}

	/* Verifica campos de SENHA */
	var fields_senha = $$(".SENHA");
	if(fields_senha.length == 2)
	{
		if (fields_senha[0].value != fields_senha[1].value)
		{
			alert("As senhas não conferem, redigite-as.");
			fields_senha[0].value = '';
			fields_senha[1].value = '';
			fields_senha[0].focus();
			return 0;
		}
	}

	return true;

}

function contact()
{
	if (form_submit())
	{
		area_up = 'contato_area';
		var poststr = '';
		var fields_data = $$(".contato");
		for(var i = 0; i < fields_data.length; i++)
		{
			poststr += fields_data[i].name + "=" + encodeURI(fields_data[i].value) + "&";
		}
//		alert(poststr);
		makePOSTRequest('http://www.hereditare.com.br/fale.php', poststr);
	}
}





function checkMail(mail){
	var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
	if(typeof(mail) == "string")
	{
		if(er.test(mail)){ return true; }
	}
	else if(typeof(mail) == "object")
	{
		if(er.test(mail.value))
		{
			return true;
		}
	}else
	{
		return false;
	}
}




function ValidaData(field){
	var checkstr = "0123456789";
	var DateField = field;
	var Datevalue = "";
	var DateTemp = "";
	var seperator = "/";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	err = 0;
	DateValue = DateField.value;
	/* Delete all chars except 0..9 */
	for (i = 0; i < DateValue.length; i++) {
		if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
			DateTemp = DateTemp + DateValue.substr(i,1);
		}
	}
	DateValue = DateTemp;
	/* Always change date to 8 digits - string*/
	/* if year is entered as 2-digit / always assume 20xx */
	if (DateValue.length == 6) {
		DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
	if (DateValue.length != 8) {
		err = 19;}
	/* year is wrong if year = 0000 */
	year = DateValue.substr(4,4);

	//if (year == 0 || year > 9999 || year <= 0000) {
	if (year == 0 || year > 9999) {
		err = 20;
	}
	/* Validation of month*/
	month = DateValue.substr(2,2);
	if ((month < 1) || (month > 12)) {
		err = 21;
	}
	/* Validation of day*/
	day = DateValue.substr(0,2);
	if (day < 1) {
	err = 22;
	}
	/* Validation leap-year / february / day */
	if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
		leap = 1;
	}
	if ((month == 2) && (leap == 1) && (day > 29)) {
		err = 23;
	}
	if ((month == 2) && (leap != 1) && (day > 28)) {
		err = 24;
	}
	/* Validation of other months */
	if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
		err = 25;
	}
	if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
		err = 26;
	}
	/* if 00 ist entered, no error, deleting the entry */
	if ((day == 0) && (month == 0) && (year == 00)) {
		err = 0; day = ""; month = ""; year = ""; seperator = "";
	}
	/* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
	if (err == 0) {
		DateField.value = day + seperator + month + seperator + year;
	return true;
	}
	/* Error-message if err != 0 */
	else {
//       alert("Data inválida.");
		//DateField.value = '';
		DateField.focus();
		DateField.select();
	return false;
	}
}





function ValidaCPF(Campo){
	var i;
	var s = Campo.value;
	
	if (s != "")
	{
		s = s.replace(".","");
		s = s.replace(".","");
		s = s.replace(".","");
		s = s.replace("-","");
		
		
		var c = s.substr(0,9);
		var dv = s.substr(9,2);
		var d1 = 0; 
		
		for (i = 0; i < 9; i++)
		{
			d1 += c.charAt(i)*(10-i);
		}
		
		if (d1 == 0)
		{
//			alert("CPF Inválido");
			Campo.focus();
			Campo.select();
			return false;
		}
		
		d1 = 11 - (d1 % 11);
		
		if (d1 > 9)
			d1 = 0;
		
		if (dv.charAt(0) != d1)
		{
//			alert("CPF Inválido");
			Campo.focus();
			Campo.select();
			return false;
		}
		
		d1 *= 2;
		
		for (i = 0; i < 9; i++)
		{
			d1 += c.charAt(i)*(11-i);
		}
		
		d1 = 11 - (d1 % 11);
		
		if (d1 > 9)
			d1 = 0;
		
		if (dv.charAt(1) != d1)
		{
//			alert("CPF Inválido")
			Campo.focus();
			Campo.select();
			return false;
		}
		
		return true;
	}
}


/* POST request */

	var http_request = false;
	var form_obj;
	var area_up;
	
	
	function makePOSTRequest(url, parameters) {
		http_request = false;
		if (window.XMLHttpRequest) { // Mozilla, Safari,...
			http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {
				// set type accordingly to anticipated content type
				//http_request.overrideMimeType('text/xml');
				http_request.overrideMimeType('text/html');
			}
		} else if (window.ActiveXObject) { // IE
			try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}
		if (!http_request) {
			alert('Cannot create XMLHTTP instance');
			return false;
		}
		
		http_request.onreadystatechange = alertContents;
		http_request.open('POST', url, true);
		http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http_request.setRequestHeader("Content-length", parameters.length);
		http_request.setRequestHeader("Connection", "close");
		http_request.send(parameters);
		
/*		$('title').value='';
		$('title').focus();*/
		
/*		if ($('item_opt').value == 'edit_submit')
			revert_edit_item();*/
	}

	function alertContents() {
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {
				//alert(http_request.responseText);
				result = http_request.responseText;
//            $(form_obj.name).innerHTML = result;
				$(area_up).innerHTML = result;
//            Element.hide( 'loader' );
//					$("loader").style.display = 'none';
			} else {
				alert('There was a problem with the request.');
			}
		}
	}
		
	function post(class_name, act, area) {
//		$("loader").style.display = '';
		
		var poststr = "";
		area_up = area;
		//Element.show( 'loader' );
		var fields_data = document.getElementsByClassName(class_name);
		
		for(var i = 0; i < fields_data.length; i++)
		{
			poststr += fields_data[i].name + "=" + encodeURI(fields_data[i].value) + "&";
		}
		
		makePOSTRequest(act, poststr);
	}


/* Fim do POST request */




