// Active Validations

$(document).ready(function() {
    $(".numeric").change(function() {
        if( this.value != "" )
	{
		this.value = this.value.replace( ',','.');

		if( isNaN(this.value) )
		{
			error = true;
			$('#'+this.id ).css("background-color", "#FADADD");
			$('#'+this.id+'_numeric' ).css("display","inline");
		}
		else
		{
			$('#'+this.id ).css("background-color", null);
			$('#'+this.id+'_numeric' ).css("display","none");

			if( $( '#'+this.id+'.positive') )
			{

				if( this.value <= 0 )
				{
					error = true;
					$('#'+this.id ).css("background-color", "#FADADD");
					$('#'+this.id+'_positive' ).css("display","inline");
				}
				else
				{
					$('#'+this.id ).css("background-color", null);
					$('#'+this.id+'_positive' ).css("display","none");
				}
			}
			if( $( '#'+this.id+'.not_negative') )
			{
				if( this.value < 0 )
				{
					error = true;
					$('#'+this.id ).css("background-color", "#FADADD");
					$('#'+this.id+'_not_negative' ).css("display","inline");
				}
				else
				{
					$('#'+this.id ).css("background-color", null);
					$('#'+this.id+'_not_negative' ).css("display","none");
				}
			}
		}
	}	
    });

    $(".email").change(function() {
        if( this.value != "" && !echeck(this.value) )
	{
		error = true;
		$('#'+this.id ).css("background-color", "#FADADD");
		$('#'+this.id+'_email' ).css("display","inline");
	}
	else
	{
		if( this.value != "" )
		{
			$('#'+this.id ).css("background-color", null);
		}

		$('#'+this.id+'_email' ).css("display","none");
	}
    });

    $(".date").change(function() {
		if( this.value != "" )
		{
			if( !isDate(this.value) )
			{
				error = true;
				$('#'+this.id ).css("background-color", "#FADADD");
				$('#'+this.id+'_date' ).css("display","inline");
			}
			else
			{
				$('#'+this.id ).css("background-color", null);
				$('#'+this.id+'_date' ).css("display","none");
			}
		}	
      });

      $(".real").change(function() {

		var reales = $(".real");
		var total = 0;
		var numerico = true;

		for( i=0; i < reales.length; i++)
		{
			if( isNaN(reales[i].value) )
			{
				numerico=false;
				break;
			}
			else
			{
				total += Number(reales[i].value);
			}
		}

		if( !numerico )
		{
			error = true;
			$('#real_total' ).css("color", "red");
			$('#real_total' ).html('Error');
			$('#real_suma' ).css("display","none");
			$('#real_error' ).css("display","inline");
			$('#'+this.id).css("background-color", "#FADADD");
			//$('#real_suma' ).css("display","none");
		}
		else
		{
			$('#real_total' ).html(total+"%");
			$('#'+this.id).css("background-color", null);

			if( total == 100 )
			{
				$('#real_total' ).css("color", "#000000");
				$('#real_suma' ).css("display","none");
				$('#real_error' ).css("display","none");
				//$('#'+this.id+'_date' ).css("display","inline");
			}
			else
			{
				$('#real_total' ).css("color", "red");
				$('#real_suma' ).css("display","inline");
				$('#real_error' ).css("display","none");
				//$('#'+this.id+'_date' ).css("display","none");
			}
		}
		
		$(".ideal").change(function() {

		var ideales = $(".ideal");
		var total = 0;
		var numerico = true;

		for( i=0; i < ideales.length; i++)
		{
			if( isNaN(ideales[i].value) )
			{
				numerico=false;
				break;
			}
			else
			{
				total += Number(ideales[i].value);
			}
		}

		if( !numerico )
		{
			error = true;
			$('#ideal_total' ).css("color", "red");
			$('#ideal_total' ).html('Error');
			$('#ideal_suma' ).css("display","none");
			$('#ideal_error' ).css("display","inline");
			$('#'+this.id).css("background-color", "#FADADD");
			//$('#ideal_suma' ).css("display","none");
		}
		else
		{
			$('#ideal_total' ).html(total+"%");
			$('#'+this.id).css("background-color", null);

			if( total == 100 )
			{
				$('#ideal_total' ).css("color", "#000000");
				$('#ideal_suma' ).css("display","none");
				$('#ideal_error' ).css("display","none");
				//$('#'+this.id+'_date' ).css("display","inline");
			}
			else
			{
				$('#ideal_total' ).css("color", "red");
				$('#ideal_suma' ).css("display","inline");
				$('#ideal_error' ).css("display","none");
				//$('#'+this.id+'_date' ).css("display","none");
			}
		}

		
			
		
      });

	$(".ideal").change(function() {

		var ideales = $(".ideal");
		var total = 0;
		var numerico = true;

		for( i=0; i < ideales.length; i++)
		{
			if( isNaN(ideales[i].value) )
			{
				numerico=false;
				break;
			}
			else
			{
				total += Number(ideales[i].value);
			}
		}

		if( !numerico )
		{
			error = true;
			$('#ideal_total' ).css("color", "red");
			$('#ideal_total' ).html('Error');
			//$('#ideal_suma' ).css("display","none");
		}
		else
		{
			$('#ideal_total' ).html(total+"%");

			if( total == 100 )
			{
				$('#ideal_total' ).css("color", "#000000");
				//$('#'+this.id+'_date' ).css("display","inline");
			}
			else
			{
				$('#ideal_total' ).css("color", "red");
				//$('#'+this.id+'_date' ).css("display","none");
			}
		}
      });
	  
	  


});
});


// Se declara el separador de fecha y los años mínimos y máximos para las fechas
var dtCh= "/";
var minYear=1930;
var maxYear=2000;


function submitForm2( formulario )
{	
	if( validar_pagina2( formulario ) )
	{		
		formulario.submit();		
	}
}

function validar_pagina2( form ) 
{
	var error = false;

	// Reviso los requeridos

	var requeridos = $('#'+form.id+' input.required');
	
	for( i=0; i < requeridos.length; i++)
	{
		if( requeridos[i].value == "" )
		{
			error = true;
			$('#'+requeridos[i].id ).css("background-color", "#FADADD");
			$('#'+requeridos[i].id+'_required' ).css("display","inline");
		}
		else
		{
			$('#'+requeridos[i].id ).css("background-color", null);
			$('#'+requeridos[i].id+'_required' ).css("display","none");
		}

	}
	
	return !error;
}

function submitForm( formulario )
{	
	if( validar_pagina( formulario ) )
	{		
		formulario.submit();		
	}
}

function validar_pagina( form )
{
	var error = false;

	// Reviso los requeridos

	var requeridos = $('#'+form.id+' input.required');
	
	for( i=0; i < requeridos.length; i++)
	{
		if( requeridos[i].value == "" )
		{
			error = true;
			$('#'+requeridos[i].id ).css("background-color", "#FADADD");
			$('#'+requeridos[i].id+'_required' ).css("display","inline");
		}
		else
		{
			$('#'+requeridos[i].id ).css("background-color", null);
			$('#'+requeridos[i].id+'_required' ).css("display","none");
		}

	}

	// Reviso los radio buttons requeridos

	var requeridos_radio = $('#'+form.id+' input[type=radio].required-radio');
	
	for( i=0; i < requeridos_radio.length; i++)
	{
		var radios = $('#'+form.id+' input[type=radio][name='+requeridos_radio[i].name+']:checked');
		
		if ( radios.length > 0 )
		{
			//requeridos_radio[i].parentNode.parentNode.style.color = "#000000";
			$('#'+requeridos_radio[i].name+'_required' ).css("display","none");
		}	
		else
		{
			//requeridos_radio[i].parentNode.parentNode.style.color = "#ff7a7a";
			$('#'+requeridos_radio[i].name+'_required' ).css("display","inline");
			error = true;
		}
	}
	
	// Reviso los selects requeridos

	var requeridos_select = $('#'+form.id+' select.required-select');
	
	for( i=0; i < requeridos_select.length; i++)
	{
		var radios = $('#'+requeridos_select[i].id+' option:selected');
		
		if ( radios.length > 0  && radios[0].value != -1)
		{
			//requeridos_radio[i].parentNode.parentNode.style.color = "#000000";
			$('#'+requeridos_select[i].id+'_required' ).css("display","none");
		}	
		else
		{
			//requeridos_radio[i].parentNode.parentNode.style.color = "#ff7a7a";
			$('#'+requeridos_select[i].id+'_required' ).css("display","inline");
			error = true;
		}
	}

	// Reviso los checkbox requeridos

	var requeridos_check = $('#'+form.id+' input[type=checkbox].required-checkbox');
	
	for( i=0; i < requeridos_check.length; i++)
	{
		var radios = $('#'+form.id+' input[type=checkbox][name='+requeridos_check[i].name+']:checked');
		
		if ( radios.length > 0 )
		{
			//requeridos_radio[i].parentNode.parentNode.style.color = "#000000";
			$('#'+requeridos_check[i].name+'_required' ).css("display","none");
		}	
		else
		{
			//requeridos_radio[i].parentNode.parentNode.style.color = "#ff7a7a";
			$('#'+requeridos_check[i].name+'_required' ).css("display","inline");
			error = true;
		}
	}

	// Validación de Mails

	var email = $('#'+form.id+' input.email');
	
	for( i=0; i < email.length; i++)
	{
		if( email[i].value != "" && !echeck(email[i].value) )
		{
			error = true;
			$('#'+email[i].id ).css("background-color", "#FADADD");
			$('#'+email[i].id+'_email' ).css("display","inline");
		}
		else
		{
			if( email[i].value != "" )
			{
				$('#'+email[i].id ).css("background-color", null);
			}

			$('#'+email[i].id+'_email' ).css("display","none");
		}

	}

	// Validación numérica

	var numericos = $('#'+form.id+' input.numeric');
	
	for( i=0; i < numericos.length; i++)
	{
		if( numericos[i].value != "" )
		{
			numericos[i].value = numericos[i].value.replace( ',','.');

			if( isNaN(numericos[i].value) )
			{
				error = true;
				$('#'+numericos[i].id ).css("background-color", "#FADADD");
				$('#'+numericos[i].id+'_numeric' ).css("display","inline");
			}
			else
			{
				$('#'+numericos[i].id ).css("background-color", null);
				$('#'+numericos[i].id+'_numeric' ).css("display","none");
			}
		}	
	}

	// Validación de fecha

	var fechas = $('#'+form.id+' input.date');
	
	for( i=0; i < fechas.length; i++)
	{
		if( fechas[i].value != "" )
		{
			if( !isDate(fechas[i].value) )
			{
				error = true;
				$('#'+fechas[i].id ).css("background-color", "#FADADD");
				$('#'+fechas[i].id+'_date' ).css("display","inline");
			}
			else
			{
				$('#'+fechas[i].id ).css("background-color", null);
				$('#'+fechas[i].id+'_date' ).css("display","none");
			}
		}	
	}

	// Validación numérica positivos

	var positivos = $('#'+form.id+' input.positive');
	
	for( i=0; i < positivos.length; i++)
	{
		var numerico = $('#'+positivos[i].id+'_numeric').css('display');

		if( numerico == 'none' )
		{
			if( positivos[i].value != "" )
			{
				if( positivos[i].value <= 0 )
				{
					error = true;
					$('#'+positivos[i].id ).css("background-color", "#FADADD");
					$('#'+positivos[i].id+'_positive' ).css("display","inline");
				}
				else
				{
					$('#'+positivos[i].id ).css("background-color", null);
					$('#'+positivos[i].id+'_positive' ).css("display","none");
				}
			}
		}	
	}

	// Validación numérica no negativos

	var no_negativos = $('#'+form.id+' input.not_negative');
	
	for( i=0; i < no_negativos.length; i++)
	{
		var numerico = $('#'+no_negativos[i].id+'_numeric').css('display');

		if( numerico == 'none' )
		{
			if( no_negativos[i].value != "" )
			{
				if( no_negativos[i].value < 0 )
				{
					error = true;
					$('#'+no_negativos[i].id ).css("background-color", "#FADADD");
					$('#'+no_negativos[i].id+'_not_negative' ).css("display","inline");
				}
				else
				{
					$('#'+no_negativos[i].id ).css("background-color", null);
					$('#'+no_negativos[i].id+'_not_negative' ).css("display","none");
				}
			}
		}	
	}

	if( form.id == 'primera_pagina_encuesta' && !validateSectionOne() )
	{
		error = true;
	}
	
	if( error )
	{
		$('#error_message' ).css("display","block");
		document.getElementById('error_message').style.display='block';
		$('#error_message' ).focus();
	}

	return !error;
}

function validateSectionOne()
{
	var error = false;
	
					
	if( $('#exp_laboral_required').css('display') == 'none' &&
		$('#exp_laboral_numeric').css('display') == 'none' &&
			$('#exp_laboral_not_negative').css('display') == 'none' &&
				$('#gerente_ti_numeric').css('display') == 'none' &&
					$('#gerente_ti_not_negative').css('display') == 'none' &&
						$('#gerente_ti_required').css('display') == 'none' )
	{
		
		if( parseFloat($('#exp_laboral').get(0).value) < parseFloat($('#gerente_ti').get(0).value) )
		{		
			error = true;
			$('#gerente_ti').css("background-color", "#FADADD");
			$('#exp_laboral').css("background-color", "#FADADD");
			$('#gerente_ti_anos_experiencia' ).css("display","inline");

		}
		else
		{
			$('#gerente_ti').css("background-color", null);
			$('#exp_laboral').css("background-color", null);
			$('#gerente_ti_anos_experiencia' ).css("display","none");
			
		}
	}

	if( $('#cargo_actual_required').css('display') == 'none' &&
		$('#cargo_actual_numeric').css('display') == 'none' &&
			$('#cargo_actual_not_negative').css('display') == 'none' &&
				$('#gerente_ti_numeric').css('display') == 'none' &&
					$('#gerente_ti_not_negative').css('display') == 'none' &&
						$('#gerente_ti_required').css('display') == 'none' )
	{
		
		if( $('#cargo_actual').get(0).value > $('#gerente_ti').get(0).value )
		{
					
			error = true;
			$('#gerente_ti').css("background-color", "#FADADD");
			$('#cargo_actual').css("background-color", "#FADADD");
			$('#gerente_ti_cargo_actual' ).css("display","inline");

		}
		else
		{
			if( $('#gerente_ti_anos_experiencia' ).css("display") == 'none' )
			{
				$('#gerente_ti').css("background-color", null);
			}

			$('#cargo_actual').css("background-color", null);
			$('#gerente_ti_cargo_actual' ).css("display","none");
			
		}
	}

	if( $('#otra_gerencia').attr('checked') && $('#otra_gerencia_text').get(0).value == "" )
	{
		error = true;
		$('#otra_gerencia_text').css("background-color", "#FADADD");
		$('#otra_gerencia_required' ).css("display","inline");
	}
	else
	{
		$('#otra_gerencia_text').css("background-color", null);
		$('#otra_gerencia_required' ).css("display","none");
	}

	if( $('#otra_carrera').attr('checked') && $('#otra_carrera_text').get(0).value == "" )
	{
		error = true;
		$('#otra_carrera_text').css("background-color", "#FADADD");
		$('#otra_carrera_required' ).css("display","inline");
	}
	else
	{
		$('#otra_carrera_text').css("background-color", null);
		$('#otra_carrera_required' ).css("display","none");
	}

	var pregrado = $('input[name=pregrado]');
	var pregrado_checked = false;

	for( i=0; i < pregrado.length; i++)
	{
		var checked = $('#'+pregrado[i].id).attr('checked');

		if( checked )
		{
			pregrado_checked = true;	
		}
	}

	if( pregrado_checked && $('#universidad_pregrado option:selected').length>0 && $('#universidad_pregrado option:selected').get(0).value == "-1" )
	{
		error = true;
		//$('#universidad_pregrado').css("background-color", "#FADADD");
		$('#universidad_pregrado_required' ).css("display","inline");
	}
	else
	{
		//$('#universidad_pregrado').css("background-color", null);
		$('#universidad_pregrado_required' ).css("display","none");
	}

	var postgrado = $('input[name=postgrado]');
	var postgrado_checked = false;

	for( i=0; i < postgrado.length; i++)
	{
		var checked = $('#'+postgrado[i].id).attr('checked');

		if( checked )
		{
			postgrado_checked = true;	
		}
	}

	if( postgrado_checked && $('#universidad_postgrado').get(0).value == "" )
	{
		error = true;
		$('#universidad_postgrado').css("background-color", "#FADADD");
		$('#universidad_postgrado_required' ).css("display","inline");
	}
	else
	{
		$('#universidad_postgrado').css("background-color", null);
		$('#universidad_postgrado_required' ).css("display","none");
	}

	var reales = $(".real");
	var total = 0;
	var numerico = true;

	

	for( i=0; i < reales.length; i++)
	{
		if( isNaN(reales[i].value) )
		{
			numerico=false;
			$('#'+reales[i].id).css("background-color", "#FADADD");

		}
		else
		{
			total += Number(reales[i].value);
			$('#'+reales[i].id).css("background-color", null);
		}
	}

	if( !numerico )
	{
		error = true;
		$('#real_suma' ).css("display","none");
		$('#real_error' ).css("display","inline");
	}
	else
	{
		if( total == 100 )
		{
			$('#real_suma' ).css("display","none");
			$('#real_error' ).css("display","none");
			$('.real').css("background-color", null);
		}
		else
		{
			error = true;
			$('#real_suma' ).css("display","inline");
			$('#real_error' ).css("display","none");
			$('.real').css("background-color", "#FADADD");
		}
	}

	var ideales = $(".ideal");
	var total = 0;
	var numerico = true;

	for( i=0; i < ideales.length; i++)
	{
		if( isNaN(ideales[i].value) )
		{
			numerico=false;
			break;
		}
		else
		{
			total += Number(ideales[i].value);
		}
	}

	if( !numerico )
	{
		error = true;
		$('#ideal_suma' ).css("display","none");
		$('#ideal_error' ).css("display","inline");
	}
	else
	{
		if( total == 100 )
		{
			$('#ideal_suma' ).css("display","none");
			$('#ideal_error' ).css("display","none");
			$('.ideal').css("background-color", null);
		}
		else
		{
			error = true;
			$('#ideal_suma' ).css("display","inline");
			$('#ideal_error' ).css("display","none");
			$('.ideal').css("background-color", "#FADADD");
		}
	}

	if( error )
	{
		$('#error_message').get(0).focus();
	}


	return !error;
}

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 isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf(dtCh);
	var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strDay=dtStr.substring(0,pos1);
	var strMonth=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month=parseInt(strMonth);
	day=parseInt(strDay);
	year=parseInt(strYr);
	if (pos1==-1 || pos2==-1){
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12){
		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		return false;
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		return false;
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){

		return false;
	}
	return true;
}

function uncheckRadioGroup( group )
{
	$('input[name='+group+']').attr('checked','');
}

function borrarTexto( input )
{
	$('#'+input).get(0).value='';
}