	/*
	 * common form validation
	 *
	 * AWE · Ancert Web Engine
	 * com.ancert.dyd.MaxNoe 20040317
	 */

function checkAndSubmit(form, requiredFields, isCustomAction) {
	if (form) {
		if (requiredFields) {
			var requiredArray = requiredFields.split(',');
			var formElements = form.elements;
			for (var elementIndex = 0; elementIndex < formElements.length; elementIndex++) {
				var element = formElements[elementIndex];
				for (var fieldsIndex = 0; fieldsIndex < requiredArray.length; fieldsIndex++) {
					if (requiredArray[fieldsIndex] == element.name) {
						if (!element.value) {
							element.focus();
							alert('El campo donde está el cursor no puede estar vacío.');
							return;
						}
					}
				}
			}
		}

		// if this is a normal submit the custom action is disabled
		if (!isCustomAction) {
			if (form.elements) {
				if (form.elements['action']) {
					form.action.value = '';
				}
			}
		}

		form.submit();
	} else {
		alert ('No valid form could be found. Cannot continue. ' + form);
	}
}

/*
 * performs a submit passing an action
 * to the server, to avoid having to
 * show a popup for some actions
 */
function doAction(form, action, requiredFields) {
	if (form) {
		var actionField = document.createElement('input');
		actionField.type = 'hidden';
		actionField.name = 'action';
		actionField.value = action;
		form.appendChild(actionField);
		checkAndSubmit(form, requiredFields, true);
	}
}

/*
 *  FUNCTION validateAndSubmit() should be merged with checkAndSubmit()
 *
 */
 function validateAndSubmit(form, validateFields)
{
	if (form) {
		if (validateFields) {

                        var validateArray = validateFields.split(',');
                        var formElements = form.elements;
                        for (var elementIndex = 0; elementIndex < formElements.length; elementIndex++) {

                        	var element = formElements[elementIndex];
				for (var fieldsIndex = 0; fieldsIndex < validateArray.length; fieldsIndex++) {

                                        var validateValues = validateArray[fieldsIndex].split(':');
                                        var validateField = validateValues[0];
                                        var validateType = validateValues[1];
                                        var requireField = validateValues[2];
                                        if ( validateValues.length == 2 )
                                                requireField = false;

                                        if ( validateField == element.name ) {
                                                var valid = true;
                                                var strMessage = '';
						if (element.value) {
                                                        switch(validateType) {
                                                                case 'date':
                                                                        if (! (valid = validDate(element.value)) )
                                                                                strMessage = 'El campo donde está el cursor tiene que ser una fecha correcta, con el siguiente formato: dd/mm/aaaa.';
                                                                        break;
                                                                case 'year':
                                                                        if (! (valid = validYear(element.value)) )
                                                                                strMessage = 'El campo donde está el cursor tiene que ser un año correcto, con el siguiente formato: aaaa.';
                                                                        break;
                                                                case 'hour':
                                                                        if (! (valid = validHour(element.value)) )
                                                                                strMessage = 'El campo donde está el cursor tiene que ser una hora correcta, con el siguiente formato: hh:mm.';
                                                                        break;
                                                                case 'email':
                                                                        if (! (valid = validEmail(element.value)) )
                                                                                strMessage = 'El campo donde está el cursor tiene que ser un email correcto, con el siguiente formato: nombre@dominio.[es/com/org/etc...].';
                                                                        break;
                                                                case 'number':
                                                                        if (! (valid = validNumber(element.value)) )
                                                                                strMessage = 'El campo donde está el cursor tiene que ser un número.';
                                                                        break;
                                                                case 'url':
                                                                        if (! (valid = validUrl(element.value)) )
                                                                                strMessage = 'El campo donde está el cursor tiene que ser una dirección web correcta, con el siguiente formato: http://www.nombre.[es/com/org/etc...].';
                                                                        break;
                                                        }



						}
                                                else if ( requireField ) {
                                                        valid = false;
                                                        strMessage = 'El campo donde está el cursor no puede estar vacío.';
                                                }

                                                if ( !valid ) {
                                                        element.focus();
                                                        alert(strMessage);
                                                        return;
                                                }
					}
				}
			}
		}

		form.submit();
	} else {
		alert ('No valid form could be found. Cannot continue. ' + form);
	}

}

function validarCategoria(formulario)
			{
				if(formulario.category_id.value=="")
				{
					alert("Debe seleccionar una Categoría");
					formulario.category_id.focus();
				}
				else
				{
					validateAndSubmit(formulario);
				}
			}

function validDate(date)
{
	var result = false;
	values = date.split('/');
	if ((values.length == 3) && (values[2].length == 4) && (values[1].length == 2) && (values[0].length == 2)) {
		var year = y2k(Number(values[2]));
		var month = Number(values[1]) - 1;
		var day = Number(values[0]);

		var datetest = new Date(year,month,day);
		if ((y2k(datetest.getYear()) == year) && (month == datetest.getMonth()) && (day == datetest.getDate())) {
			result = true;
		}
	}
	return result;
}
function validYear(year)
{
         var result = true;
         var datetest = new Date();
         if ( !datetest.setFullYear(year) )
                 return false;
         return result;
}
function validHour(vhour)
{
         var result = false;
         values = vhour.split(':');
         var hour = new Number();
         var minute = new Number();
         if ( (hour = Number(values[0])) )
                 if ( ( minute = Number(values[1])) )
                         if ( (hour >= 0) && (hour <= 23) &&
                              (minute >= 0) && (minute <= 59 ) ) {
                                 result = true;
                         }
         return result;
}
function validEmail(email)
{
        var result = false;
        var sEmail = new String(email);
        var index = sEmail.indexOf("@");
        if (index > 0)
        {
                var pindex = sEmail.indexOf(".",index);
                if ((pindex > index+1) && (sEmail.length > pindex+1))
      	                result = true;
        }
        return result;
}
function validNumber(number) {
        return Number(number);
}

function validUrl(url) {
        var result = false;
        re = /^(file|http|https):\/\/\S+\./i
        var sUrl = new String(url);
        if (sUrl.indexOf('http') > -1) {
                if (re.test(sUrl))
                        result = true;
        }
        return result;
}

function y2k(number) {
        return (number < 1000) ? number + 1900 : number;
}


function checkSearchAndSubmit() {
	cons = document.getElementById('querystring');
    var str = new String();
    str = cons.value;
    if (str.length <= 2) {
		alert('Se requiere como mínimo tres carácteres para realizar la búsqueda.');
		cons.focus();
		return false;
	}
    formobj = document.getElementById('formsearch');
	formobj.action = '?do=search.submit';
	formobj.submit();
	return true;
}
/*Busca el option con el valor que se le pasa y devuelve la label de dicho option.
  Requiere del valor a buscar (valor) y del select entero (seleccio)
*/

function devuelveLabel(valor, seleccion)
{
	var elementIndex=0;
		for( elementIndex = 0; elementIndex < seleccion.length; elementIndex++)
		{
		 if(seleccion[elementIndex].value==valor)break;
		}
		return seleccion[elementIndex].label;
}
function showCalendarCheckForm (d,fa,fm,fd) {
    if (Inicio == "flag") {
	location.reload();
	return;
    }
    showCalendar (d,fa,fm,fd);
}

function comprobacionesGuardias(formulari,validar){

	var archivo = document.getElementById('file');
	if(archivo && archivo.value != ""){
		archivo2 = archivo.value.split(":");
		if(archivo.value == archivo2){
			alert("Debe introducir una ruta correcta para el archivo");
			return;
		}
	}
	validateAndSubmit(formulari,validar);
}