
function escape2(text)
{	if (window.encodeURIComponent) return encodeURIComponent(text);
	return escape(text);
}

function unescape2(text)
{	if (window.decodeURIComponent) return decodeURIComponent(text);
	return unescape(text);
}

function param(name)
{   var q = location.search ? '&'+location.search.substring(1)+'&' : '';
    var pos = q.indexOf('&'+name+'=');
    return pos==-1 ? '' : decodeURIComponent(q.substring(pos+name.length+2, q.indexOf('&', pos+1)));
}

function paramize(url, add)
{   url = url.replace(/\?$/, '');
    if (!add) add = [];
    add[add.length] = 'lang';
    add[add.length] = 'time';
    for (var i=0; i<add.length; i++)
    {   if (param(add[i]))
        {   var q = url.indexOf('?');
            if (q==-1 || url.indexOf(add[i]+'=', q)==-1)
            {   url += (q==-1 ? '?' : '&')+add[i]+'='+escape2(param(add[i]));
            }
        }
    }
    return url;
}
 
function write_params(url)
{   var m = url.match(/\?(.+?)$/);
    if (m)
    {   var params = m[1].split('&');
        for (var i=0; i<params.length; i++)
        {   var key_val = params[i].match(/^([\w\d]+)=(.+)$/);
            if (key_val) document.write('<input type="hidden" name="'+key_val[1]+'" value="'+jshtml(unescape2(key_val[2]))+'" />');
        }
    }
}   

function jsquote(str)
{   return "'" + (''+str).replace(/\\/g, '\\\\').replace(/\'/g, '\\\'').replace(/\"/g, '\\x22').replace(/</g, '\\x3C').replace(/>/g, '\\x3E').replace(/&/g, '\\x26') + "'";
}

function jshtml(str)
{   return (''+str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/'/g, '&#39;').replace(/"/g, '&quot;');
}

function split_long_words(text, length)
{   if (!length) length = 15;
    return text.replace(new RegExp('(\\S{'+length+'})', 'g'), '$1 ');
}

function fix_chars(str)
{   return str;
}
