function isSafe(val){
    var regex=/^[-\w\s\d\.\/\|:\?\&]+$/; 
    //matches any underscore, letter, number, space, period, 
    //    forward slash, pipe, hyphen, question mark, ampersand or colon
    if(regex.test(val)){
        return true;
    }
    else {
        return false;
    }
}

function URLDecode (encodedString) {
    if(encodedString){
        return unescape(encodedString.replace(/\+/g, " "));
    }
    else {
        return "";
    }
/*
  var output = encodedString;
  var binVal, thisString;
  var myregexp = /(%[^%]{2})/;
  while ((match = myregexp.exec(output)) != null
             && match.length > 1
             && match[1] != '') {
    binVal = parseInt(match[1].substr(1),16);
    thisString = String.fromCharCode(binVal);
    output = output.replace(match[1], thisString);
  }
  return output;
*/
}

function getSession() {
    //see if cookie exists
    function SessionData() {}
    var nameEQ = "TEK_SESSION_DATA=";
    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){
            var session_data = c.substring(nameEQ.length,c.length);
            var pairs = (URLDecode(session_data)).split('&');
            for(k=0;k<pairs.length;k++){
                tmp = (pairs[k]).split('=');
                value = URLDecode(tmp[1]);
                if(isSafe(tmp[0]) && value) {
                    SessionData[tmp[0]] = value;
                }
            }
        }
    }
    return SessionData;
}