function isEmpty ()
{

	var argv = isEmpty.arguments;

	if (argv[2]=='' || argv[2]==null)
	{
		argv[2]=0;
	}

	x = document.forms[argv[2]].elements[argv[0]];

	if (x == undefined || x.value == '0' || x.value == '-' || x.value == '')
	{
    	alert ('El campo "' + argv[1] + '" esta vacio');

		x.focus();

	    return false;
	}

	return true;
}
function isSelected ()
{
	var argv = isSelected.arguments;

	if (argv[2]=='' || argv[2]==null)
	{
		argv[2]=0;
	}

	x = document.forms[argv[2]].elements[argv[0]];

	if ( x == undefined )
	{
		alert ('Por favor seleccione el campo "' + argv[1] + '"');
		return false;
	}

	value = x.options[x.selectedIndex].value;

	if (value == undefined || value == '0' || value == '-')
	{
		alert ('Por favor seleccione el campo "' + argv[1] + '"');
		return false;
	}

	return true;
}
function isEmail ()
{
	var argv = isEmail.arguments;

	if (argv[2]=='' || argv[2]==null)
	{
		argv[2]=0;
	}

	email = document.forms[argv[2]].elements[argv[0]];

	if(email.value != "" || email.value != undefined)
	{
		valid = /^.*\@.*\..*$/i;

		if (email.value.search (valid) == -1)
		{
			alert("Por favor ingrese el campo " + argv[1] + " con un email valido");
			return false;
		}
	}

	return true;
}


//verifies field is numeric
function isNumeric (field, name)
{
	x = document.forms[0].elements[field];

	if (x.value == "")
	{
		return true;
	}

	if (x.value.match (/[^\d^\.]/))
	{
		alert("Por favor llene el campo " + name + " con un valor numerico");
        x.focus();
		return false;
	}

	return true;
}

function isPhoneNumber ()
{
	var argv = isPhoneNumber.arguments;

	if (argv[2]=='' || argv[2]==null)
	{
		argv[2]=0;
	}

	x = document.forms[argv[2]].elements[argv[0]];

	alert(x.value);

	if (x.value.match (/[^\d^\-^\(^\)^\+^\s]/))
	{
		alert("Por favor ingrese el campo " + argv[1] + " con un numero de telefono valido");

		x.focus();

		return false;
	}

	return true;
}

function compares ()
{
	var argv = compares.arguments;

	if (argv.length < 5)
	{
		alert("Javascript error. Faltan argumentos.");
		return;
	}

	x = document.forms[argv[4]].elements[argv[0]]
	y = document.forms[argv[4]].elements[argv[2]]

	if (x.value == y.value)
	{
		alert("Por favor verifique que el campo " + argv[1] + " coincida con el campo " + argv[3])
		x.focus();

		return false;
	}

	return true;
}

function maxChar()
{
	var argv = maxChar.arguments;

	if(argv[3]==undefined || argv[3]==null)
		argv[3] = 0;

	var x = document.forms[argv[3]].elements[argv[0]];

	if (x.value.length>argv[2])
	{
		alert("Por favor el campo " + argv[1] + " no puede contener mas de " + argv[2] + " caracteres.")

		x.focus();

		return false;
	}

	return true;
}

function isChecked ()
{
	var argv = isChecked.arguments;
	if (argv.length < 3)
	{
		alert("Javascript error. Faltan argumentos.");
		return;
	}
	
	x = document.forms[argv[2]].elements[argv[0]];
	if (x.checked != true)
	{
		alert("Usted debe aceptar el campo " + argv[1]);
		return true;
	}
	return false;
}

function isArray(a) {   
    return a && !(a.propertyIsEnumerable('length')) && typeof a === 'object' && typeof a.length === 'number';
}

function isCheckedArray ()
{
	var argv = isCheckedArray.arguments;
	
	if (argv[2]=='' || argv[2]==null)
	{
		argv[2]=0;
	}
	
	x = document.forms[argv[2]].elements[argv[0]];
	
	if (isArray(x))
	{
		var a = false;
		
		for(i = 0; i < x.length; i++)
		{
		   a = a | x.item(i).checked;
		   
		}
		
		if (a == false)
		{
			alert("Debe ingresar al menos un valor para el campo " + argv[1]);
			return false;
		}
	}
	else
	{
		isChecked(argv[0], argv[1], argv[2]);
	}
	
	return true;
}

function passwordStrength(password)
{
	var desc = new Array();
	desc[0] = "Muy débil";
	desc[1] = "Débil";
	desc[2] = "Normal";
	desc[3] = "Media";
	desc[4] = "Fuerte";
	desc[5] = "Muy fuerte";

    var score   = 0;

	//if password bigger than 5 give 1 point
	if (password.length > 5) score++;

	//if password has both lower and uppercase characters give 1 point
	if ( ( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) ) ) score++;

	//if password has at least one number give 1 point
	if (password.match(/\d+/)) score++;

	//if password has at least one special caracther give 1 point
	if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) )	score++;

	//if password bigger than 7 give another 1 point
	if (password.length > 7) score++;

	 document.getElementById("passwordDescription").innerHTML = desc[score];
	 document.getElementById("passwordStrength").className = "strength" + score;
}

