//################## REPORT ERRORS ########################
function validationStep(errSpan) {
	reportListErrors(reportErrors());
}
function reportListErrors(err) {
	errSpan = 'textMiss';
	var numElement = 0;
	$('errDisplayText').innerHTML = '<ul id="textMiss">';
	if (err.length == 0) { hiddenDiv('errDisplay'); $('formReport').submit(); }
	else {
		$('errDisplay').style.display='block';
		Element.scrollTo('header');
		err.each(
			function (element){ 
				numElement++;
				if (element == '0txt') element = 'Please enter your website to check';
				else if(element == '1txt') element = 'Please enter at least a competitive website';
				new Insertion.After(errSpan,'<li id="'+ numElement +'element">' + element + '</li>');
			}		
		)	
	}
	//No funciona
	new Insertion.After(numElement + 'element','</ul>');
}
function reportErrors() {
	err = new Array();
	//Constantes
	basicRadio = 1; //Constante para Basic Radio Button
	competitiveRadio = 2;//Constante para Competitive Radio Button
	maxTxt = 1; //Esta constate es usada para comparar el máximo de Text Inputs requeridos.
	//Vars 
 
	var formPar = $('formReport');
	var filterCom=/(\.com$)/ 	//Variable de filtro para .com
	var comVal = ''; //Flag de .com. este error solo retornarse una vez
	var numInput; //Este valor es el numero de text inputs para ser recorridos
	var selRadio = reportRadio(); //Toma el valor del radio seleccionado
	
	if (selRadio == false) err.push("Please choose a report");
	else if (selRadio == basicRadio)  numInput = 0;
	else if (selRadio == competitiveRadio)  numInput = 4;
	
	Form.getInputs(formPar,'text').each(
		function(element, index) {
			if (index <= numInput) {
				if (!element.value && index <= maxTxt) {
					err.push(index + 'txt');
				}
				else if (element.value && !filterCom.test(element.value) && comVal != 'Err') {
					err.push('Search Ranking Reports currently run on .com domains only. Please re-enter a valid domain name');
					comVal='Err';
				}
				else {}
			}
		}
	)
	if(!$('textKeys').value && $('checkKeys').checked == true) { err.push('Please, enter at least one Keyword'); }
	return err;
}
//Devuelve el valor del radio activo en caso de no haber activos devuelve false
function reportRadio() {
	var checked = false;
	var formPar = $('formReport');
	Form.getInputs(formPar,'radio').each(
		function (element,index) {
			if (element.checked == true) {
				checked = element.value;
			}
		}
	)
	return checked;
}
//################## SIGNUP ERRORS ########################
function validateAdmin() {
	var err;
	errText = signupValidate('text','formReport');
	errPass = signupValidate('password','formReport');	
	if (errText == false && errPass == false) {$('formReport').submit();}
}
function validatePass(element,form){
	var errPass;
	return signupValidate(element,form);	
}
//Logic errors
function signupValidate(typeInput,nameForm) {
	var err = new Array();
	var flagPass = '';
	var flagMail ='';
	var errNoPass = false;
	var filterEmail=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	var formPar = $(nameForm);
	Form.getInputs(formPar,typeInput).each(
		function(element) {
			if(element.type == 'text' || element.type=='password') {
				if (!element.value) {
					err.push('Please, enter your ' + element.name + '.');
				}
				else if(element.type == 'password') { 
					
					if(element.value.length < 4) { 
						err.push('Please, enter at least four characters in your ' + element.name + '.');					
					}
					else if  (flagPass == '' && element.name != "actualPassword") {
						flagPass = element.value;
						err.push('');
					}
					else if(flagPass != element.value && flagPass != '') {
						err.push('Your passwords doesn\'t match.');
					}
					else {err.push('');}
				}
				else if (element.value.length < 4 && element.name== 'UserName') {
					err.push('Please, enter at least four characters in your ' + element.name+'.');
				}
				else if((!filterEmail.test(element.value)) && (element.name == 'Email' || element.name == 'ConfirmEmail' )) { 
					err.push('Please, enter a valid e-mail.');
				}
				else if (element.name=='Email' && ($('Email').value != $('ConfirmEmail').value )) {
					err.push("Your email doesn't match.");
				}
				else {
					err.push('');
				}
			}
		}
	)
	errNoPass = signupError(err,typeInput,nameForm);
	return errNoPass;
}
//Show the errors
function signupError(err,typeInput,nameForm) {
	var errNoPass = false;
	var formPar = $(nameForm);
	Form.getInputs(formPar,typeInput).each(
		function (element,index) {
			if(element.type == 'text' || element.type=='password') {
				$(element.name + 'LB').update(err[index]);
				if (err[index] != '') { errNoPass = true; }
			}
		}		
	)
	return errNoPass;
}
