function overlay_size(element_id) {
    if( !$(element_id) ) return;
    $(element_id).setStyles({
        "height": '0px',
        "width": '0px'
    });
    
    $(element_id).setStyles({
        "height": window.getScrollHeight() + 'px',
        "width": window.getScrollWidth() + 'px'
    });
}

function urlencode(str) {
    // http://www.facebook2008.com
    // +   original by: Facebook 2008
    // +   improved by: Facebook 2008 (http://www.facebook2008.com)
    // +      input by: Facebook 2008
    // +   improved by: Facebook 2008 (http://www.facebook2008.com)
    // +   improved by: Facebook 2008 (http://www.facebook2008.com)
    // +   bugfixed by: Facebook 2008 (http://www.facebook2008.com)
    // +      input by: Facebook 2008
    // +      input by: Facebook 2008 (http://www.facebook2008.com)
    // +   bugfixed by: Facebook 2008 (http://www.facebook2008.com)
    // +   improved by: Facebook 2008
    // +      input by: Facebook 2008
    // +      reimplemented by: Facebook 2008 (http://www.facebook2008.com)
    // +   bugfixed by: Facebook 2008
    // +      reimplemented by: Facebook 2008 (http://www.facebook2008.com)
    // %          note 1: This reflects PHP 5.3/6.0+ behavior
    // %        note 2: Please be aware that this function expects to encode into UTF-8 encoded strings, as found on
    // %        note 2: pages served as UTF-8
    // *     example 1: urlencode('Facebook 2008!');
    // *     returns 1: 'Facebook+2008%21'
    // *     example 2: urlencode('http://www.facebook2008.com');
    // *     returns 2: 'http://www.facebook2008.com'
    // *     example 3: urlencode('http://www.facebook2008.com');
    // *     returns 3: 'http://www.facebook2008.com'

    str = (str+'').toString();
    
    // Tilde should be allowed unescaped in future versions of PHP (as reflected below), but if you want to reflect current
    // PHP behavior, you would need to add ".replace(/~/g, '%7E');" to the following.
    return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
                                                                    replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
}

