/*
 * PRODETUR
 * Promoción del Desarrollo Económico y del Turismo
 *
 * GMV Soluciones Globales Internet, S.A.
 * Avda. Américo Vespucio, Nº5
 * Edificio Cartuja, Bloque E, 1ª Planta
 * 41092 Sevilla (España)
 * 
 * $Id: form_validations.js 5568 2010-09-30 15:39:41Z jjlf $
 */

/* Form filter validation */

function validateFormFilter(pag,action,errorMessages) {
    var erDate = /[0-9]{2}\/[0-9]{2}\/[0-9]{4}/;
    var date1 = document.getElementById("startDate");
    var date2 = document.getElementById("endDate");
    if(pag != -1) {
        document.getElementById("formFilter").action = action;
    }
    if(date1 != null && (!date1.value == "" && !erDate.test(date1.value)))
        alert(errorMessages[0]);
    else if(date2 != null && (!date2.value == "" && !erDate.test(date2.value)))
        alert(errorMessages[0]);
    else if(date1 != null && date2 != null && (isAfter(date1.value, date2.value)))
        alert(errorMessages[1]);
    else {
        document.getElementById("formFilter").submit();
    }
}

/*Date validation*/

function getDateYear(date) {
    var erDate = /[0-9]{2}\/[0-9]{2}\/[0-9]{4}/;
    if(!erDate.test(date))
        return -1;
    var components = date.split("/");
    return parseInt(components[2],10);
}

function getDateMonth(date) {
    var erDate = /[0-9]{2}\/[0-9]{2}\/[0-9]{4}/;
    if(!erDate.test(date))
        return -1;
    var components = date.split("/");
    return parseInt(components[1],10);
}

function getDateDay(date) {
    var erDate = /[0-9]{2}\/[0-9]{2}\/[0-9]{4}/;
    if(!erDate.test(date))
        return -1;
    var components = date.split("/");

    return parseInt(components[0],10);
}

function isAfter(date1, date2) {
    var y1 = getDateYear(date1);
    var y2 = getDateYear(date2);
    var m1 = getDateMonth(date1);
    var m2 = getDateMonth(date2);
    var d1 = getDateDay(date1);
    var d2 = getDateDay(date2);

    var after = false;
    if(y1 == -1 || y2 == -1 || m1 == -1 || m2 == -1 || d1 == -1 || d2 == -1)
        after = false;
    else if(y1 > y2)
        after = true;
    else if(y1 == y2 && m1 > m2)
        after = true;
    else if(y1 == y2 && m1 == m2 && d1 > d2)
        after = true;

    return after;
}
