You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

261 lines
4.5 KiB

// crviewerinclude.js
// Includes functions that should be written out for all javascript enabled clients
function crv_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 crv_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 crv_eraseCookie(name)
{
crv_createCookie(name,"",-1);
}
function crv_isCookieEnabled()
{
var TESTNAME = '__BOBJ_VIEWER_TEST_COOKIE_NAME';
var TESTVALUE = '__BOBJ_VIEWER_TEST_COOKIE_VALUE';
crv_createCookie(TESTNAME, TESTVALUE);
var cookieValue = crv_readCookie(TESTNAME);
if (cookieValue == TESTVALUE)
{
crv_eraseCookie(TESTNAME);
return true;
}
return false;
}
function crv_showDialog(showFunc, cookieName)
{
var cookieVal = crv_readCookie(cookieName);
if (cookieVal == "true" || !crv_isCookieEnabled())
{
showFunc();
}
crv_eraseCookie(cookieName);
}
function getComposite(prefixArray, suffixStr, encodeF)
{
if (!prefixArray) return "";
suffixStr = suffixStr ? suffixStr : "";
var composite="";
for (var i in prefixArray)
{
var eltID = prefixArray[i] + suffixStr;
var elt = document.getElementById(eltID);
if (elt)
{
var value = elt.value;
if (value)
{
if (composite != "")
composite += ";";
composite += prefixArray[i] + "=" + value;
}
}
}
return encodeF ? encodeF(composite) : composite;
}
function scrollToElement(id)
{
var obj = document.getElementById(id);
if(obj != null)
{
var offsetTop = obj.offsetTop;
var offsetLeft = obj.offsetLeft;
var myOffsetParent = obj.offsetParent;
while( myOffsetParent )
{
offsetTop += myOffsetParent.offsetTop;
offsetLeft += myOffsetParent.offsetLeft;
myOffsetParent = myOffsetParent.offsetParent;
}
window.scrollTo(offsetLeft, offsetTop);
}
}
function isFunction(f)
{
return (typeof f == 'function');
}
function addOnloadFunction(func)
{
var oldOnload = window.onload;
window.onload = function ()
{
if (isFunction(oldOnload))
oldOnload();
if (isFunction(func))
func();
}
}
//This function should only be called from the COM viewer. Use encodeURIComponent from the
//Java viewer to get the appropriate encoding.
function COMUrlEncode( strToBeEncoded )
{
var encodedString = new String("");
for( var i = 0; i < strToBeEncoded.length; i++ )
{
var nextChar = strToBeEncoded.charAt(i);
switch( nextChar )
{
//Unsafe characters
case '%':
{
encodedString += "%25";
break;
}
case '+':
{
encodedString += "%2B";
break;
}
case ' ':
{
encodedString += "%20";
break;
}
case '<':
{
encodedString += "%3C";
break;
}
case '>':
{
encodedString += "%3E";
break;
}
case '"':
{
encodedString += "%22";
break;
}
case '\'':
{
encodedString += "%27";
break;
}
case '#':
{
encodedString += "%23";
break;
}
case '{':
{
encodedString += "%7B";
break;
}
case '}':
{
encodedString += "%7D";
break;
}
case '|':
{
encodedString += "%7C";
break;
}
case '\\':
{
encodedString += "%5C";
break;
}
case '^':
{
encodedString += "%5E";
break;
}
case '~':
{
encodedString += "%7E";
break;
}
case '`':
{
encodedString += "%60";
break;
}
case '[':
{
encodedString += "%5B";
break;
}
case ']':
{
encodedString += "%5D";
break;
}
//Reserved characters
case ';':
{
encodedString += "%3B";
break;
}
case '/':
{
encodedString += "%2F";
break;
}
case '?':
{
encodedString += "%3F";
break;
}
case ':':
{
encodedString += "%3A";
break;
}
case '@':
{
encodedString += "%40";
break;
}
case '=':
{
encodedString += "%3D";
break;
}
case '&':
{
encodedString += "%26";
break;
}
default:
{
encodedString += nextChar;
break;
}
}
}
return encodedString;
}