/**
* @function setContentDimensions()
* @description Resize the content div to Window height
*/

var setMainDimensionsResizing = false;

function setContentDimensions(increment){
  
    var el = (window.opera ? document.body : document.documentElement);
    
    var docHeight = el.clientHeight-parseInt(increment);
	  
	document.getElementById("content").style.height = docHeight + "px";
	     
}

function onSelectionMouseOver(current) {
    if (current != null) {
        current.className = 'highlight';
    }    
} 

function onSelectionMouseOut(current, previousStyle) {
    if (current != null) {
        current.className = previousStyle;
    }
}
 
function onSelectionClick(current, postbackElement) {
   __doPostBack(postbackElement);
}

function SetUniqueRadioButton(nameregex, current) {
    re = new RegExp(nameregex);
    for (i = 0; i < document.forms[0].elements.length; i++) {
        elm = document.forms[0].elements[i]
        if (elm.type == 'radio') {
            if (re.test(elm.name)) {
                elm.checked = false;
            }
        }
    }
    current.checked = true;
}

function doCancelBubble(e) {
    e.cancelBubble = true; 
    if (e.stopPropagation) e.stopPropagation();
}

//COOKIES MARCELO

//function createCookie(name, value, days) {
//    if (days) {
//        var date = new Date();
//        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
//        var expires = "; expires=" + date.toGMTString();
//    }
//    else var expires = "";
//    document.cookie = name + "=" + value + expires + "; path=/";
//}

//function readCookie(name) {
//    var nameEQ = name + "=";
//    var ca = document.cookie.split(';');
//    for (var i = 0; i < ca.length; i++) {
//        var c = ca[i];
//        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
//        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
//    }
//    return null;
//}

//function eraseCookie(name) {
//    createCookie(name, "", -1);
//}

//COOKIES SUBKEYS

function hSetCookie(name, value, expires) {
    var cookie_string = name + "=" + value;
    if (expires) {
        expires = new Date(expires);
        cookie_string += ";expires=" + expires.toGMTString();
    }
    document.cookie = cookie_string + ";path=/";
}

function hGetCookie(cookie_name) {
    var regexp = new RegExp(cookie_name + "=(.*?)(;|$)", "i");
    var results = regexp.exec(document.cookie);
    if (results) {
        return (unescape(results[1]));
    }
    else {
        return null;
    } 
}

//function hasSubKeys(cookieName) {
//    var ret = false;
//    var cookie = unescape(hGetCookie(cookieName));
//    var subKeys = cookie.split("&");
//    if (subKeys.length >= 2) {
//        ret = true;
//    } else {
//        var subKeys = cookie.split("=");
//        if (subKeys.length >= 1) {
//            ret = true;
//        }
//    }
//    return ret;
//}

function GetCookie(cookieName, keyName) {
    var ret;
    var cookie = unescape(hGetCookie(cookieName));
    //alert(cookie);
    if (keyName && hasSubKeys(cookieName) == true) {
        var cookieData = getCookieData(cookie);
        ret = cookieData[keyName];
    } else {
        ret = cookie;
    }
    return ret
}

function SetCookie(cookieName, keyName, value, expires) {
    var thisCookie = unescape(hGetCookie(cookieName));
    if (thisCookie) {
        if (keyName) {
            //alert(keyName);
            var cookieData = getCookieData(thisCookie);
            cookieData[keyName] = value;
            value = "";
            for (var cookie in cookieData) {
                value += cookie + "=" + cookieData[cookie] + "&";
            }
            if (value.charAt(value.length - 1) == "&") { value = value.substring(0, value.length - 1) }
        }
    }
    //alert(value);
    hSetCookie(cookieName, value, expires);
}

function getCookieData(cookie) {
    var ret = [];
    var subKeys = cookie.split("&");
    for (var i = 0; i < subKeys.length; i++) {
        //alert(subKeys[i]);
        var pos = subKeys[i].indexOf("=");
        if (pos != 0) {
            //alert("cookieData["+subKeys[i].substring(0,pos)+']='+subKeys[i].substring(pos+1));
            ret[subKeys[i].substring(0, pos)] = subKeys[i].substring(pos + 1);
        }
    }
    return ret;
}

//function DelCookie(cookie_name) {
//    var cookie_date = new Date();
//    cookie_date.setTime(cookie_date.getTime() - 1);
//    document.cookie = cookie_name += "=;expires=" + cookie_date.toGMTString() + ";path=/"; 
//}

//To base 64
function b64_encode(input) {
    var output = "";
    var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
    var i = 0;
    var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",

    input = utf8_encode(input);

    while (i < input.length) {

        chr1 = input.charCodeAt(i++);
        chr2 = input.charCodeAt(i++);
        chr3 = input.charCodeAt(i++);

        enc1 = chr1 >> 2;
        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
        enc4 = chr3 & 63;

        if (isNaN(chr2)) {
            enc3 = enc4 = 64;
        } else if (isNaN(chr3)) {
            enc4 = 64;
        }

        output = output +
        keyStr.charAt(enc1) + keyStr.charAt(enc2) +
        keyStr.charAt(enc3) + keyStr.charAt(enc4);

    }

    return output;

}

//UTF-8 encoding
function utf8_encode(string) {
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";

    for (var n = 0; n < string.length; n++) {

        var c = string.charCodeAt(n);

        if (c < 128) {
            utftext += String.fromCharCode(c);
        }
        else if((c > 127) && (c < 2048)) {
            utftext += String.fromCharCode((c >> 6) | 192);
            utftext += String.fromCharCode((c & 63) | 128);
        }
        else {
            utftext += String.fromCharCode((c >> 12) | 224);
            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
            utftext += String.fromCharCode((c & 63) | 128);
        }

    }

    return utftext;
}


