var pb = "?";       // parameter string start
var pe = "#";       // parameter string end
var ps = "&";       // parameter separator
var pa = "=";       // parameter assingment


param = new Array();
keyw = new Array();

// parse the parameter string from the current url and store parameters and keywords in the <param> and <keyw> arrays
function getParamTable()
{
    parseParamString(getParamString(location.href));
    if (location.href!=window.top.location.href)  parseParamString(getParamString(window.top.location.href));
//    parseParamString(getSessionId(location.href));      
}

function getSessionId(uri) {
    var paramStr="";
    var b = uri.indexOf(pe);
    if (b > 0) {
        paramStr = uri.substring(b+1, uri.length);
    }
    return paramStr;
}

// returns the parameter part in the url <uri>
function getParamString(uri)
{
    var paramStr="";
    var b = uri.indexOf(pb);
    if (b > 0)
    {
        var e = uri.indexOf(pe);
        if (e < 0) e = uri.length;
        paramStr = uri.substring(b+pb.length , e);
    }
    return paramStr;
}

// parse the parameter string <paramStr> and store parameters and keywords in the <param> and <keyw> arrays
function parseParamString(paramStr)
{
    var i = keyw.length;
    while (paramStr!=null && paramStr.length > 0)
    {
        var b = 0;
        var e = paramStr.indexOf(ps);
        if (e < 0) e = paramStr.length;
        var m = paramStr.indexOf(pa);
        if (m < 0 || m > e) m = e;
        
        keyw[i] = trim(unescape(paramStr.substring(b , m)).toLowerCase());
        param[i] = trim(unescape(paramStr.substring(m+pa.length , e)));
        paramStr = paramStr.substring(e + ps.length , paramStr.length);
        i++;
    }
}


// returns the current url without the parameter part
function getBaseUrl() {
    uri=getUrl()
    var startOfParameters = uri.indexOf(pb);

    var baseurl = uri;
    if (startOfParameters >= 0)
        baseurl = uri.substring(0,startOfParameters)

    return baseurl;
}

function getFrameBaseUrl() {
    uri=location.href;
    var startOfParameters = uri.indexOf(pb);

    var baseurl = uri;
    if (startOfParameters >= 0)
        baseurl = uri.substring(0,startOfParameters)

    return baseurl;
}

function getUrl() { 
    if (window.top!=window.self) {
         return window.top.location.href;
    }
    else {
        return location.href;
    }
}


/**
 * trim left spaces
 **/
function lTrim(str) {
    while (str.substring(0,1) == ' ') {
        str = str.substring(1, str.length);
    }
    return str;
}


/**
 * trim right spaces
 **/
function rTrim(str) {
    while (str.substring(str.length-1, str.length) == ' ') {
        str = str.substring(0,str.length-1);
    }
    return str;
}


/**
 * trim left and right spaces
 **/
function trim(str) {
    return lTrim(rTrim(str));
}

