﻿
//************************************************************************//
//  FUNCIONES DE DESARROLLO
//************************************************************************//

//************************************************************************//
//  FUNCIONES PARA PARSEAR EL QUERYSTRING
//************************************************************************//
function parseQS(key) {
    hu = window.location.search.substring(1);
    gy = hu.split("&");

    for (i = 0; i < gy.length; i++) {

        ft = gy[i].split("=");

        if (ft[0] == key) return ft[1];
    }
}

function parseFriendlyPostQS(url) {
    url = url + '';
    url = url.split("/");
    var expression = new RegExp("([a-z0-9]+-+[0-9]+-+[a-z]+.html)", "gi");
    for (sec = 0; sec <= url.length; sec++) {
        if (expression.test(url[sec])) {
            return url[sec];
        }
    }
}

function parseFriendlyQS(url) {
    url = url + '';
    url = url.split("/");
    var expression = new RegExp("(-+[a-z]+.html)", "gi");
    for (sec = 0; sec <= url.length; sec++) {
        if (expression.test(url[sec])) {
            return url[sec];
        }
    }
}
//************************************************************************//
//  FUNCIONES PARA CHEQUEAR MAIL INGRESADO
//************************************************************************//
function checkEmail(str) {
    var at = "@"
    var dot = "."
    var lat = str.indexOf(at)
    var lstr = str.length
    var ldot = str.indexOf(dot)
    if (str.indexOf(at) == -1) {
        return false
    }

    if (str == "") {
        return false
    }

    if (str == " ") {
        return false
    }

    if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
        return false
    }

    if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
        return false
    }

    if (str.indexOf(at, (lat + 1)) != -1) {
        return false
    }

    if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
        return false
    }

    if (str.indexOf(dot, (lat + 2)) == -1) {
        return false
    }

    if (str.indexOf(" ") != -1) {
        return false
    }

    return true
}

//************************************************************************//
//  FUNCIONES PARA CHEQUEAR WEBSITE
//************************************************************************//
function checkWebSite(website) {
    var regWEB = new RegExp("^(http|https|ftp)\://", "g");

    if (!regWEB.test(website)) {
        website = "http://" + website;
    }
    //alert(website);
    var regular = new RegExp("^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&amp;%\$#\=~])*[^\.\,\)\(\s]$", "g");

    if (regular.test(website)) {
        return true;
    }
    else {
        return false;
    }
}

//************************************************************************//
//  FUNCIONES PARA CHEQUEAR UPLOAD DE ARCHIVOS
//************************************************************************// 
function isValidImage(fileField) {
    var regExp = /((.jpg)|(.JPG)|(.gif)|(.GIF)|(.png)|(.PNG)|(.bmp)|(.BMP))$/;

    if (!regExp.test(fileField.val())) //Somehow the expression does not work in Opera
    {
        return false;
    }
    return true;
}

function isValidAudio(fileField) {
    var regExp = /((.mp3)|(.MP3))$/;

    if (!regExp.test(fileField.val())) //Somehow the expression does not work in Opera
    {
        return false;
    }
    return true;
}

function isValidVideo(fileField) {
    var regExp = /((.avi)|(.AVI)|(.3gp)|(.3GP))$/;

    if (!regExp.test(fileField.val())) //Somehow the expression does not work in Opera
    {
        return false;
    }
    return true;
}

function isValidFileSize(fileField) {
    //        if (fileField.val() != "") {
    //            return (fileField[0].files[0].fileSize <= (1024 * 1024));
    //        }
    return true;
}
//************************************************************************//
//  FUNCIONES PARA CHEQUEAR SI UN STRING ES NUMéRICO
//************************************************************************//
function isNumeric(sText) {
    var ValidChars = "0123456789.";
    var IsNumber = true;
    var Char;

    for (i = 0; i < sText.length && IsNumber == true; i++) {
        Char = sText.charAt(i);
        if (ValidChars.indexOf(Char) == -1) IsNumber = false;
    }

    return IsNumber;
}


//************************************************************************//
//  FUNCIONES PARA CALCULAR EL PROMEDIO
//************************************************************************//
function getAverage() {
    var items = getAverage.arguments.length
    var sum = 0
    for (i = 0; i < items; i++) {
        sum += getAverage.arguments[i]
    }
    return Math.round(sum / items)
}
//************************************************************************//
//  FUNCIONES PARA STRINGS                                                //
//************************************************************************//
function checkMaxLength(obj, max) {
    if (obj.value.length > max) {
        obj.value = obj.value.substring(0, max);
    }
}


// Voy disminuyendo la cantidad de caracteres disponibles por ingresar, 
// cuando la cantidad es mayor al max, no le deja escribir mas.

function charactersLeft(obj, label, max) {
    var aux;

    if (escape(obj.value).length > max) {
        label.style.color = 'red';
        //aux = obj.value;
        obj.value = obj.value.substring(0, max);
        label.value = 0;
    } else {
        label.style.color = '#086709';
    }

    label.value = (max - escape(obj.value).length) + " characters remaining.";
}

//---------------------------------------------------------------------------//

//Funcion para limpiar todos los espacios
function trim(str) {
    s = str.replace(/^(\s)*/, '');
    s = s.replace(/(\s)*$/, '');
    return s;
}

//Función para eliminar tags HTML, http://, www y etc.
//var re = new RegExp("<[^>]+>", "g");

function deleteInvalidTags(str) {
    var strReg = new RegExp("[@]|(http://)|(https://)|(ftp://)|(www.)", "gi"); //--> Detecta dir URL  
    str = str.stripTags(); //--> Devuelve texto sin tags html
    str = str.replace(strReg, '');
    return str;
}

function CheckPalabras(words) {
    var arrContent;
    arrContent = words.split(/[\s\n]/);

    //all sobre cualquier array itera sobre cada elemento probando la funcion y solo retorna true si ninguna llamada a la funcion retorna false
    //la primera llamada q retorna false corta la ejecucion y retorna false
    var result = arrContent.all(
        function(pal) {
            //alert(pal);    
            if (pal.length > 50) {
                alert(pal + " excedes allowed length, max is 50 characters");
                return false;
            }
            else {
                //regular expression para validar palabras no permitidas
                var reg_exp = /(<a)|(<b>)|(<u>)|(<i>)|(<html)|(<body)|(<img)|(<div)/;
                if (reg_exp.test(pal)) {
                    alert("HTML tags are not allowed");
                    return false;
                }
                else { return true; }
            }
        }
    );
    return result;
}

//************************************************************************//
//  FUNCIONES PARA CHEQUEAR AÑO BISIESTO
//************************************************************************//
function checkLeapYear(date) {
    var regular01 = new RegExp("(((0[13578]|10|12)([-./])(0[1-9]|[12][0-9]|3[01])([-./])(\d{4}))|((0[469]|11)([-./])([0][1-9]|[12][0-9]|30)([-./])(\d{4}))|((2)([-./])(0[1-9]|1[0-9]|2[0-8])([-./])(\d{4}))|((2)(\.|-|\/)(29)([-./])([02468][048]00))|((2)([-./])(29)([-./])([13579][26]00))|((2)([-./])(29)([-./])([0-9][0-9][0][48]))|((2)([-./])(29)([-./])([0-9][0-9][2468][048]))|((2)([-./])(29)([-./])([0-9][0-9][13579][26])))", "g");

    if (regular01.test(date)) {
        return true;
    }
    else {
        return false;
    }

}

