function isValidUser(inputParam) 
{
    if (isEmpty(inputParam))
    {
        return false;
    }

    if ( inputParam.match(/^[a-zA-Z0-9]*$/) ) 
    {
        return true;
    } 
    else
    {
        return false;
    } 
}

function isValidPassword(inputParam) 
{
    if (isEmpty(inputParam))
    {
        return false;
    }

    if ( inputParam.match(/^[a-zA-Z0-9]*$/) ) 
    {
        return true;
    } 
    else
    {
        return false;
    } 
}

function isNumeric(inputParam) 
{
    if ( inputParam.search(/\D/) != -1 ) 
    {
        return false;
    } 
    else 
    {
        return true;
    }
}

function isNumericF2(inputParam) 
{
    if ( inputParam.match(/^\d+$/) ) 
    {
        return true;
    } 
    if ( inputParam.match(/^\d+[\,\.]\d$/) ) 
    {
        return true;
    } 
    if ( inputParam.match(/^\d+[\,\.]\d\d$/) ) 
    {
        return true;
    } 

    return false;
}

function isValidDateFormat(inputParam)
{
    if ( inputParam.match(/\d\d\d\d\-\d\d-\d\d/) ) 
    {
        arrDate = inputParam.split("-");
        if ( (isNumeric(arrDate[0]) ) && ( isNumeric(arrDate[1]) ) && ( isNumeric(arrDate[2]) ) )
        {
            return true;
        }
        else
        {
            return false;
        }
    } 
    else 
    {
        return false;
    }
}

function isValidDate(inputParam)
{
    if (! isValidDateFormat(inputParam) ) 
    {
        return false;
    }
	
    var arrDate = inputParam.split("-");
    var year    = arrDate[0];
    var month   = arrDate[1] - 1;
    var day     = arrDate[2];

    var fecha = new Date(year, month, day);

    if (year != fecha.getFullYear())
    {
        //alert(inputParam + " " + year + " " + fecha.getYear());
        return false;
    }
    if (month != fecha.getMonth())
    {
        //alert(inputParam + " " + month + " " + fecha.getMonth());
        return false;
    }
    if((month == 9 && day == 9) || (month == 9 && day == 15) || (month == 9 && day == 11) || (month == 9 && day == 13))
    {

    }
    else if (day != fecha.getDate())
    {
        //alert(inputParam + " " + day +  " " + fecha.getDate());
        return false;
    }

    //alert("OK " + inputParam);

    return true;
}

function isValidTime(inputParam)
{
    if ( ! inputParam.match(/\d\d\d\d\-\d\d-\d\d \d\d:\d\d:\d\d/) )
    {
        return false;
    }

    var arrDateTime = inputParam.split(" ");
    var arrDate = arrDateTime[0].split("-");
    var arrTime = arrDateTime[1].split(":");

    if ( ! (isNumeric(arrDate[0]) && isNumeric(arrDate[1]) && isNumeric(arrDate[2]) 
         && isNumeric(arrTime[0]) && isNumeric(arrTime[1]) && isNumeric(arrTime[2])) )
    {
        return false;
    }

    var year    = arrDate[0];
    var month   = arrDate[1] - 1;
    var day     = arrDate[2];
    var hour    = arrTime[0];
    var minute  = arrTime[1];
    var second  = arrTime[2];

    var fecha = new Date(year, month, day, hour, minute, second);
    if (year != fecha.getFullYear())
        return false;
    if (month != fecha.getMonth())
        return false;
    if (day != fecha.getDate())
        return false;
    if (hour != fecha.getHours())
        return false;
    if (minute != fecha.getMinutes())
        return false;
    if (second != fecha.getSeconds())
        return false;

    return true;
}

function isMenorIgualFecha (inputParam_1 , inputParam_2) 
{

    var arrDate_1 = inputParam_1.split("-");
    var year_1	  = arrDate_1[0];
    var month_1	  = arrDate_1[1] - 1;
    var day_1	  = arrDate_1[2];
    var fecha_1   = new Date(year_1, month_1, day_1);

    var arrDate_2 = inputParam_2.split("-");
    var year_2	  = arrDate_2[0];
    var month_2	  = arrDate_2[1] - 1;
    var day_2	  = arrDate_2[2];
    var fecha_2   = new Date(year_2, month_2, day_2);

    if ((fecha_2.getTime() - fecha_1.getTime()) >= 0 ) 
    {
        return true;
    }
    else 
    {
        return false;
    }
}

function isEmpty(inputParam)
{
    if ( trim(inputParam) == "" ) 
    {
        return true;
    } 
    else 
    {
        return false;
    }
}

function ltrim(inputParam)
{
    return inputParam.replace(/\s*(\w*)/, "$1");
}

function rtrim(inputParam)
{
    return inputParam.replace(/(\w*)\s*$/, "$1");
}

function trim(inputParam)
{
    return ltrim(rtrim(inputParam));
}

function isValidIP(inputParam)
{
    if ( inputParam.match(/^\d+\.\d+\.\d+\.\d+$/) ) 
    {
        arrIP = inputParam.split(".");
        if (arrIP[0].match(/^0./) || arrIP[1].match(/^0./) || arrIP[2].match(/^0./) || arrIP[3].match(/^0./))
        {
            return false;
        }
        if ( (arrIP[0] < 256) && (arrIP[1] < 256) && (arrIP[2] < 256) && (arrIP[3] < 256) )
        {
            return true;
        }
        else
        {
            return false;
        }
    } 
    else 
    {
        return false;
    }
}

function isValidTag(inputParam)
{
    if ( isEmpty(inputParam) )
    {
        return false;
    }

    if ( inputParam.match(/^[a-zA-Z0-9]*$/) ) 
    {
        return true;
    } 
    else
    {
        return false;
    }
}
function isValidTag2(inputParam)
{
    if ( isEmpty(inputParam) )
    {
        return false;
    }

    if ( inputParam.match(/^[A-Z0-9]*$/) )
    {
        return true;
    }
    else
    {
        return false;
    }
}
function isValidTag3(inputParam)
{
    if ( isEmpty(inputParam) )
    {
        return false;
    }

    if ( inputParam.match(/^[a-zA-Z0-9¬.]*$/) )
    {
        return true;
    }
    else
    {
        return false;
    }
}
function isValidTag4(inputParam)
{
    if ( isEmpty(inputParam) )
    {
        return false;
    }

    if ( inputParam.match(/^[-A-Z0-9]*$/) )
    {
        return true;
    }
    else
    {
        return false;
    }
}
function isValidHex(inputParam)
{
    if ( isEmpty(inputParam) )
    {
        return false;
    }

    if ( inputParam.match(/\x/))
    {
        return true;
    }
    else
    {
        return false;
    }

}

function isValidMail(inputParam)
{
    if ( isEmpty(inputParam) )
    {
        return false;
    }

    if ( inputParam.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z]{2,4})$/) ) 
    {
        return true;
    } 
    else
    {
        return false;
    }

}

function isValidName(inputParam)
{
    if ( isEmpty(inputParam) )
    {
        return false;
    }

    if ( inputParam.match(/^[ \_\-a-zA-Z0-9]*$/) ) 
    {
        return true;
    } 
    else
    {
        return false;
    }

}

function isMenorIgualFecha (inputParam_1 , inputParam_2) 
{
    var arrDateTime_1 = inputParam_1.split(" ");
    var arrDate_1 = arrDateTime_1[0].split("-");
    var arrTime_1 = arrDateTime_1[1].split(":");

    var year_1	 = arrDate_1[0];
    var month_1	 = arrDate_1[1] - 1;
    var day_1	 = arrDate_1[2];
    var hour_1   = arrTime_1[0];
    var minute_1 = arrTime_1[1];
    var second_1 = arrTime_1[2];

    var fecha_1   = new Date(year_1, month_1, day_1, hour_1, minute_1, second_1);


    var arrDateTime_2 = inputParam_2.split(" ");
    var arrDate_2 = arrDateTime_2[0].split("-");
    var arrTime_2 = arrDateTime_2[1].split(":");

    var year_2	 = arrDate_2[0];
    var month_2	 = arrDate_2[1] - 1;
    var day_2	 = arrDate_2[2];
    var hour_2   = arrTime_2[0];
    var minute_2 = arrTime_2[1];
    var second_2 = arrTime_2[2];

    var fecha_2   = new Date(year_2, month_2, day_2, hour_2, minute_2, second_2);

    if ((fecha_2.getTime() - fecha_1.getTime()) >= 0 ) 
    {
        return true;
    }
    else 
    {
        return false;
    }
}

function isMenorFechaHora (inputParam_1 , inputParam_2)
{
    var arrDateTime_1 = inputParam_1.split(" ");
    var arrDate_1     = arrDateTime_1[0].split("-");
    var arrTime_1     = arrDateTime_1[1].split(":");

    var year_1   = arrDate_1[0];
    var month_1  = arrDate_1[1] - 1;
    var day_1    = arrDate_1[2];
    var hour_1   = arrTime_1[0];
    var minute_1 = arrTime_1[1];
    var second_1 = arrTime_1[2];

    var fecha_1   = new Date(year_1, month_1, day_1, hour_1, minute_1, second_1);


    var arrDateTime_2 = inputParam_2.split(" ");
    var arrDate_2 = arrDateTime_2[0].split("-");
    var arrTime_2 = arrDateTime_2[1].split(":");

    var year_2   = arrDate_2[0];
    var month_2  = arrDate_2[1] - 1;
    var day_2    = arrDate_2[2];
    var hour_2   = arrTime_2[0];
    var minute_2 = arrTime_2[1];
    var second_2 = arrTime_2[2];

    var fecha_2   = new Date(year_2, month_2, day_2, hour_2, minute_2, second_2);

    if ((fecha_2.getTime() - fecha_1.getTime()) > 0 )
    {
        return true;
    }
    else
    {
        return false;
    }
}

function isMenorIgualFechaHora (inputParam_1 , inputParam_2)
{
    var arrDateTime_1 = inputParam_1.split(" ");
    var arrDate_1 = arrDateTime_1[0].split("-");
    var arrTime_1 = arrDateTime_1[1].split(":");

    var year_1   = arrDate_1[0];
    var month_1  = arrDate_1[1] - 1;
    var day_1    = arrDate_1[2];
    var hour_1   = arrTime_1[0];
    var minute_1 = arrTime_1[1];
    var second_1 = arrTime_1[2];

    var fecha_1   = new Date(year_1, month_1, day_1, hour_1, minute_1, second_1);


    var arrDateTime_2 = inputParam_2.split(" ");
    var arrDate_2 = arrDateTime_2[0].split("-");
    var arrTime_2 = arrDateTime_2[1].split(":");

    var year_2   = arrDate_2[0];
    var month_2  = arrDate_2[1] - 1;
    var day_2    = arrDate_2[2];
    var hour_2   = arrTime_2[0];
    var minute_2 = arrTime_2[1];
    var second_2 = arrTime_2[2];

    var fecha_2   = new Date(year_2, month_2, day_2, hour_2, minute_2, second_2);

    if ((fecha_2.getTime() - fecha_1.getTime()) >= 0 )
    {
        return true;
    }
    else
    {
        return false;
    }
}

function nextDateSecond(inputParam)
{
    if ( isEmpty(inputParam) )
    {
        return '';
    }

    var arrDateTime = inputParam.split(" ");
    var arrDate = arrDateTime[0].split("-");
    var arrTime = arrDateTime[1].split(":");

    var year    = arrDate[0];
    var month   = arrDate[1] - 1;
    var day     = arrDate[2];
    var hour    = arrTime[0];
    var minute  = arrTime[1];
    var second  = arrTime[2];

    var fecha = new Date(year, month, day, hour, minute, 1 * second + 1);

    year = fecha.getFullYear();

    month = (fecha.getMonth() + 1 < 10) ? '0' + (fecha.getMonth() + 1) : (fecha.getMonth() + 1);

    day = (fecha.getDate() < 10) ? '0' + fecha.getDate() : fecha.getDate();

    hour = (fecha.getHours() < 10) ? '0' + fecha.getHours(): fecha.getHours();

    minute = (fecha.getMinutes() < 10) ? '0' + fecha.getMinutes() : fecha.getMinutes();

    second = (fecha.getSeconds() < 10) ? '0' + fecha.getSeconds() : fecha.getSeconds();

    return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
}

function nowDateTime()
{
    var fecha = new Date();

    year = fecha.getFullYear();
    month = (fecha.getMonth() + 1 < 10) ? '0' + (fecha.getMonth() + 1) : (fecha.getMonth() + 1);
    day = (fecha.getDate() < 10) ? '0' + fecha.getDate() : fecha.getDate();
    hour = (fecha.getHours() < 10) ? '0' + fecha.getHours(): fecha.getHours();
    minute = (fecha.getMinutes() < 10) ? '0' + fecha.getMinutes() : fecha.getMinutes();
    second = (fecha.getSeconds() < 10) ? '0' + fecha.getSeconds() : fecha.getSeconds();
    return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
}

function isValidRUT(rut,dv)
{
    var suma = 0;
    var mul  = 2;
    var i    = 0;

    for (i = rut.length - 1 ; i >= 0; i-- )
    {
	    var r  = rut.substring(i,i+1);
            var ch = parseInt(r);
            suma = suma + ch * mul;
            mul = mul == 7 ? 2 : mul+1;
    }

    var aux = 11 - suma % 11;
    var dvr = "" + aux;

    if ( dvr == "10" )
    {
            dvr = "K";
    }
    else if (dvr == "11" )
    {
            dvr = "0";
    }

    if ( dvr != dv) 
    {
            return false;
    }
    else
    {
            return true;
    }

}

