function disableButton(id)
{
    $("#" + id).attr('disabled', 'disabled');
}

function enableButton(id)
{
    $("#" + id).removeAttr('disabled');
}

function isButtonEnabled(id)
{
    var val = $("#" + id).attr('disabled');

    return !val;
}

function reloadPage()
{
    var sURL = unescape(window.location.pathname);
    window.location.href = sURL;
}

function openUrl(url)
{
    window.location.href = url;
}

function openPopup(url, name, options)
{
    if (!options) {
        options = "height=700, width=500, status=no, directories=no, menubar=no, toolbar=no, scrollbars,resizable=yes";
    }

    if (!name) {
        name = '';
    }
    var w = window.open(url, name, options);
    w.focus();
}


function openFullScreen(url)
{
    var options = "type=fullWindow, top=auto, fullscreen, left=auto, width=auto, height=auto, status=no, directories=no, menubar=no, toolbar=no, scrollbar=no, resizable=yes";
    window.open(url, "", options);
}

function openFullScreen2(url)
{
    var win_w = screen.availWidth - 20;
    var win_h = screen.availHeight - 20;
    var myWindow = window.open(url, "_blank", "top=0, left=0, width=" + win_w + ", height=" + win_h + ", toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes");
    return myWindow;
}

function resetFormError()
{
    $('input').removeClass('form_error');
    $('select').removeClass('form_error');
}

function setFormError(id)
{
    $("#" + id).addClass('form_error');
}

function isValidEmail(email)
{
    if (email.search(/^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/) != -1) {
        return true;
    }
    else {
        return false;
    }
}

function isEmpty(str)
{
    str = trim(str);
    if (str == '') {
        return true;
    } else {
        return false;
    }
}

function trim(stringa){
    while (stringa.substring(0,1) == ' '){
        stringa = stringa.substring(1, stringa.length);
    }
    while (stringa.substring(stringa.length-1, stringa.length) == ' '){
        stringa = stringa.substring(0,stringa.length-1);
    }
    return stringa;
}

function isNumeric(sText, numberFloat)

{
    var validChars = "0123456789";
    if (numberFloat) {
        validChars = "0123456789.";
    }
    var isNumber=true;
    var tmpChar;

 
    for (i = 0; i < sText.length && isNumber == true; i++)
    {
        tmpChar = sText.charAt(i);
        if (validChars.indexOf(tmpChar) == -1)
        {
            isNumber = false;
        }
    }
    return isNumber;
}

function urlencode(str) {
    var escapetString = str;
    escapetString = escape(str)
    .replace(/\+/g,'%2B')
    .replace(/%20/g, '+')
    .replace(/\*/g, '%2A')
    .replace(/\//g, '%2F')
    .replace(/@/g, '%40');

    return escapetString;
}

function urldecode(str) {
    return unescape(str.replace('+', ' '));
}

function checkPIVA(pi)
{
    if (pi == '') {
        return false;
    }
    if (pi.length != 11) {
        return false;
    }
    valids = "0123456789";
    for (i = 0; i < 11; i++) {
        if (valids.indexOf(pi.charAt(i) ) == -1) {
            return false;
        }
    }
    s = 0;
    for (i = 0; i <= 9; i += 2) {
        s += pi.charCodeAt(i) - '0'.charCodeAt(0);
    }
    for (i = 1; i <= 9; i += 2) {
        c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
        if (c > 9)  c = c - 9;
        {
            s += c;
        }
    }
    if ((10 - s%10)%10 != pi.charCodeAt(10) - '0'.charCodeAt(0)) {
        return false;
    }

    return true;
}

function checkCF(cf)
{
    var validi, i, s, set1, set2, setpari, setdisp;
    if (cf == '')  {
        return false;
    }
    cf = cf.toUpperCase();
    if (cf.length != 16) {
        return false;
    }
    validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    for (i = 0; i < 16; i++) {
        if (validi.indexOf(cf.charAt(i)) == -1) {
            return false;
        }
    }
    set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
    s = 0;
    for (i = 1; i <= 13; i += 2) {
        s += setpari.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));
    }
    for (i = 0; i <= 14; i += 2) {
        s += setdisp.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));
    }
    if (s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) ) {
        return false;
    }

    return true;
}

var GT = new Object();
GT.rgb2hex = function(rgb)
{
    if (rgb.search("rgb") == -1 ) {
        return rgb;
    } else {
        rgb = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/);
        function hex(x) {
            return ("0" + parseInt(x).toString(16)).slice(-2);
        };
        return hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
    };
};

GT.regexp = {
    color : /#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?/
};

var STR_PAD_LEFT = 1;
var STR_PAD_RIGHT = 2;
var STR_PAD_BOTH = 3;
 
GT.strpad = function(str, len, pad, dir) { 
    if (typeof(len) == "undefined") {
        var len = 0;
    }
    if (typeof(pad) == "undefined") {
        var pad = ' ';
    }
    if (typeof(dir) == "undefined") {
        var dir = STR_PAD_RIGHT;
    }
 
    if (len + 1 >= str.length) {
 
        switch (dir){
 
            case STR_PAD_LEFT:
                str = Array(len + 1 - str.length).join(pad) + str;
                break;
 
            case STR_PAD_BOTH:
                var right = Math.ceil((padlen = len - str.length) / 2);
                var left = padlen - right;
                str = Array(left+1).join(pad) + str + Array(right+1).join(pad);
                break;
 
            default:
                str = str + Array(len + 1 - str.length).join(pad);
                break;
 
        } // switch
 
    }
 
    return str;
 
}

 Array.prototype.unique = function () {
        var arrVal = this;
        var uniqueArr = [];
        for (var i = arrVal.length; i--; ) {
            var val = arrVal[i];
            if ($.inArray(val, uniqueArr) === -1) {
                uniqueArr.unshift(val);
            }
        }
        return uniqueArr;
    }
