/**
 * Validador de formularios
 *
 * Este es un validador de formularios que permite el uso
 * de atributos dentro de los tags del formulario (inputs y textareas)
 * para verificar la informacion antes de ser enviada al servidor.
 *
 * Funciona de manera simple. Ejemplo
 * <TAGFORMA name="xx" ... validate="[OPCIONES:=O1|O2|..|On]" msg="Mensaje de error" [ffocus="campo a foco"]>
 *
 * Opciones son:
 * R -> campo requerido.
 * E -> direccion de correo electronico
 * F -> real (positivo y negativo).
   P -> real (positivo)
 * I -> entero (positivo y negativo)
 * G -> GMT ((+-)H:MM o (+-)H)
 * A -> nn.nn.nn.nn.nn (numero de registro de partida arancelaria)
 * U -> nombre de usuario (letras y guion)
 * C -> GIF File
 * Z -> Archivo Windows Media
 * W -> verifica que un campo se identico a otro
 *
 */

var validators = new Array();
validators['G'] = /^(\+|-)?\d(:[012345][\d])?$/;
validators['F'] = /^(((\+|-)?\d+(\.\d*)?)|((\+|-)?(\d*\.)?\d+))$/;
validators['P'] = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/;
validators['I'] = /^((\+|-)?\d+)$/;
validators['E'] = /^([\w_\-]+)(\.[\w_\-]+)*@((\[[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.)|(([\w\-]+\.)+))([a-zA-Z]{2,4}|[\d]{1,3})(\]?)$/;
validators['A'] = /^(\d){2}(\.(\d){2}){4}$/;
validators['U'] = /^([A-Za-z])+(-)*([A-Za-z])*$/;
validators['J'] = /\.(jpg)$/;
validators['D'] = /\.(pdf|PDF)$/;
validators['C'] = /\.(gif)$/;
validators['K'] = /\.(jpg|gif|pdf|doc|xls|ppt)$/;
validators['Z'] = /\.(wmv)$/;

function validate (form) {
	for(i=0;i<form.length;i++)
	{
		if(form.elements[i].getAttribute('validate'))
		{
			var i;
			var field;
			if (form == null)
			{
				alert ('Intenta validar una forma invalida');
				return false;
			}
			for (i = 0; i < form.elements.length; i++)
			{
				field = form.elements[i];
					if (!validateField (field, form))
					{
							if (!field.getAttribute('msg'))
							{
								alert ('El campo no ha sido diligenciado correctamente');
							}
							else
							{
								alert (field.getAttribute('msg'));
							}
							if (!field.getAttribute('ffocus'))
							{
								if(field.type=='text'){
								field.select();
								}else{
								field.focus();
								}
							}
							else
							{
								if(field.type=='text'){
								form.elements[field.getAttribute('ffocus')].select();
								}else{
								form.elements[field.getAttribute('ffocus')].focus();
								}
							}
					return false;
					}
			}
			form.submit();
			return true;
		}
	}
}

function validateField (field, form)
{
	var properties;
	var property;
	if (field.getAttribute('validate') != null)
	{
		properties = field.getAttribute('validate').split('|');
		for (i = 0; i < properties.length; i++)
		{
			property = properties[i];
			if(property)
			{
				if (property.length > 1)
				{
					if (!validateComplexProperty (property, field, form))
					{
					return false;
					}
				}
				else
				{
					if (property == 'R' && field.value.length == 0)
					{
					return false;
					}
					if (property != 'R' && field.value.length > 0)
					{
						if (!validators[property].test(field.value))
						{
						return false;
						}
					}
				}
			}
		}
	}
	return true;
}

function validateComplexProperty (paramStr, field, form) {
	var params;
	var property;
	var temp;

	temp = paramStr.split('=');
	property = temp[0];
	if (temp.length > 1) {
		params = temp[1].split('&');
	}
	else {
		alert ('El parametro ' + property + ' del validador ha sido utilizado incorrectamente');
		return false;
	}

	if (property == 'W') {
		return (field.value == (form.elements[params[0]]).value);

	}

	return false;
}
function newsMenu(row){
	for(i=1;i<=4;i++){
		var actualNoti='noti'+i;
		var passedNoti='noti'+row;
		if (actualNoti!=passedNoti){
		document.all[actualNoti].style.visibility='hidden';
		document.all['noti'].style.visibility='hidden';
		}
	}
document.all['noti'+row].style.visibility='visible';
}
function maximizeWindow (w) {
	w.moveTo (0, 0);
	w.resizeTo (screen.availWidth, screen.availHeight);
	//w.resizeTo (800, 600);
}

/**
 * Recupera el tamanno y posicion de la ventana
 * @param w
 */

/**
 * Despliega la ventana de acceso a la aplicacion
 */
function adminWindow () {
	var newWindow;
	var properties = 'status=no,scrollbars=yes,resizable=yes,toolbar=no,width=' + screen.availWidth + ',height=' + screen.availHeight + ',left=0,top=0)';
	newWindow=window.open ('admin/index.php', 'adminWindow', properties);
	newWindow.focus();
}
function openLink (uri){

var properties = "directories=no,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no,top=0,left=0";
window.open(uri,'tablascevipapa',properties);
}
function resize(){
window.resizeTo (screen.availWidth, screen.availHeight);
}
