String.prototype.trim = function()

{	return this.replace(/^\s+|\s+$/g, ''); }

String.prototype.ltrim = function()

{	return this.replace(/^\s+/, ''); }

String.prototype.rtrim = function()

{	return this.replace(/\s+$/, ''); }



String.prototype.is_empty = function()

{	return this.trim() == ''; }



String.prototype.valid_email = function()

{	return !this.match(/^\w[\.\w]*@\w+(?:\w*|\.\w+)?\.\w{2,3}(?:\.[a-z]{2})?$/i); }



function FormErrors()

{

	this.FormErrors = new Array();

	

	this.addError = function(msg, field, el)

	{

		this.FormErrors.push({

						'msg' : msg,

						'field' : field

						});

		

		$(el).addClass('invalid');

		

		var ErrorBox = document.createElement('p');

		var ErrorMsg = document.createTextNode(msg);

		

		ErrorBox.className = 'error-box';

		ErrorBox.appendChild(ErrorMsg);

		

		$(el).parentNode.parentNode.appendChild(ErrorBox);

	}

	

	this.showErrors = function()

	{

	}

	

	this.clearErrors = function()

	{

		$$('p.error-box').each(function(error,index){$(error).dispose();});

	}

	

	this.getTotalErrors = function()

	{

		return this.FormErrors.length;

	}

}



function ChangeForm()

{

	form_els = $('contato').getElements('input.text');

	

	form_els_names = new Array();

	

	form_els.each(function(item,index){

						   form_els_names[index] = item.getPrevious().get('text');

						   item.set('value', form_els_names[index]);

						   

						   item.getPrevious().setStyle('display', 'none');

						   item.addClass('changed');

						   

						   item.addEvent('focus', function(){

														   if ( item.get('value') == form_els_names[index] )

															   item.set('value', '');

														   });

						   item.addEvent('blur', function(){

														  if ( item.get('value').trim() == '' )

														  	   item.set('value', form_els_names[index]);

														  });

						   });

	

	$('contato').getElements('textarea').each(function(item,index){

													   item.addClass('changed');

													   });

	



}



window.addEvent('domready', function(){

	

	ChangeForm();

	

	$('contato').addEvent('submit', function(e){

											 var e = new Event(e).stop();

											 

											 var inputs = this.getElements('input');

											 if ( this.getElements('textarea') != '' )

											 	inputs.extend(this.getElements('textarea'));

											 if ( this.getElements('select') != '' )

											 	inputs.extend(this.getElements('select'));

											 

											 var errors = new FormErrors();

											 errors.clearErrors();

											 

											 inputs.each(function(input, index){

																  

																  if ( input.getProperty('type') != 'submit' )

																  {

																	  if ( input.previousSibling.tagName == 'LABEL' )

																	  {

																		  input.removeClass('invalid');

																		  

																		  var field = input.previousSibling.innerHTML;

																		  

																		  if ( input.id == 'c_nome' )

																		  {

																			if ( input.value.is_empty() )

																				errors.addError('Por favor, preencha o campo ' + field + '.', field, input);

																		  }

																		  

																		  if ( input.id == 'c_email' )

																		  {

																			  if ( input.value.is_empty() )

																			  	errors.addError('Por favor, especifique um e-mail para que possamos responder sua mensagem.', field, input);

																			  if ( !input.value.is_empty() && input.value.valid_email() )

																				errors.addError('O e-mail inserido é inválido.', field, input);

																		  }

																		  

																		  if ( input.id == 'c_assunto' )

																		  {

																			  if ( input.value.is_empty() )

																			  	errors.addError('Favor especificar o assunto da mensagem.', field, input);

																		  }

																		  

																		  if ( input.id == 'c_msg' )

																		  {

																			  if ( input.value.is_empty() )

																			  	errors.addError('Nenhuma mensagem foi escrita.', field, input);

																		  }

																	  }

																  }

																  

																  });

											 

											

											 if ( errors.getTotalErrors() != 0 )

											 	errors.showErrors('contato');

											 else

											 	this.submit();

											 });



									 });