crviewerinclude.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. // crviewerinclude.js
  2. // Includes functions that should be written out for all javascript enabled clients
  3. function crv_createCookie(name,value,days)
  4. {
  5. if (days)
  6. {
  7. var date = new Date();
  8. date.setTime(date.getTime()+(days*24*60*60*1000));
  9. var expires = "; expires="+date.toGMTString();
  10. }
  11. else var expires = "";
  12. document.cookie = name+"="+value+expires+"; path=/";
  13. }
  14. function crv_readCookie(name)
  15. {
  16. var nameEQ = name + "=";
  17. var ca = document.cookie.split(';');
  18. for(var i=0;i < ca.length;i++)
  19. {
  20. var c = ca[i];
  21. while (c.charAt(0)==' ') c = c.substring(1,c.length);
  22. if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  23. }
  24. return null;
  25. }
  26. function crv_eraseCookie(name)
  27. {
  28. crv_createCookie(name,"",-1);
  29. }
  30. function crv_isCookieEnabled()
  31. {
  32. var TESTNAME = '__BOBJ_VIEWER_TEST_COOKIE_NAME';
  33. var TESTVALUE = '__BOBJ_VIEWER_TEST_COOKIE_VALUE';
  34. crv_createCookie(TESTNAME, TESTVALUE);
  35. var cookieValue = crv_readCookie(TESTNAME);
  36. if (cookieValue == TESTVALUE)
  37. {
  38. crv_eraseCookie(TESTNAME);
  39. return true;
  40. }
  41. return false;
  42. }
  43. function crv_showDialog(showFunc, cookieName)
  44. {
  45. var cookieVal = crv_readCookie(cookieName);
  46. if (cookieVal == "true" || !crv_isCookieEnabled())
  47. {
  48. showFunc();
  49. }
  50. crv_eraseCookie(cookieName);
  51. }
  52. function getComposite(prefixArray, suffixStr, encodeF)
  53. {
  54. if (!prefixArray) return "";
  55. suffixStr = suffixStr ? suffixStr : "";
  56. var composite="";
  57. for (var i in prefixArray)
  58. {
  59. var eltID = prefixArray[i] + suffixStr;
  60. var elt = document.getElementById(eltID);
  61. if (elt)
  62. {
  63. var value = elt.value;
  64. if (value)
  65. {
  66. if (composite != "")
  67. composite += ";";
  68. composite += prefixArray[i] + "=" + value;
  69. }
  70. }
  71. }
  72. return encodeF ? encodeF(composite) : composite;
  73. }
  74. function scrollToElement(id)
  75. {
  76. var obj = document.getElementById(id);
  77. if(obj != null)
  78. {
  79. var offsetTop = obj.offsetTop;
  80. var offsetLeft = obj.offsetLeft;
  81. var myOffsetParent = obj.offsetParent;
  82. while( myOffsetParent )
  83. {
  84. offsetTop += myOffsetParent.offsetTop;
  85. offsetLeft += myOffsetParent.offsetLeft;
  86. myOffsetParent = myOffsetParent.offsetParent;
  87. }
  88. window.scrollTo(offsetLeft, offsetTop);
  89. }
  90. }
  91. function isFunction(f)
  92. {
  93. return (typeof f == 'function');
  94. }
  95. function addOnloadFunction(func)
  96. {
  97. var oldOnload = window.onload;
  98. window.onload = function ()
  99. {
  100. if (isFunction(oldOnload))
  101. oldOnload();
  102. if (isFunction(func))
  103. func();
  104. }
  105. }
  106. //This function should only be called from the COM viewer. Use encodeURIComponent from the
  107. //Java viewer to get the appropriate encoding.
  108. function COMUrlEncode( strToBeEncoded )
  109. {
  110. var encodedString = new String("");
  111. for( var i = 0; i < strToBeEncoded.length; i++ )
  112. {
  113. var nextChar = strToBeEncoded.charAt(i);
  114. switch( nextChar )
  115. {
  116. //Unsafe characters
  117. case '%':
  118. {
  119. encodedString += "%25";
  120. break;
  121. }
  122. case '+':
  123. {
  124. encodedString += "%2B";
  125. break;
  126. }
  127. case ' ':
  128. {
  129. encodedString += "%20";
  130. break;
  131. }
  132. case '<':
  133. {
  134. encodedString += "%3C";
  135. break;
  136. }
  137. case '>':
  138. {
  139. encodedString += "%3E";
  140. break;
  141. }
  142. case '"':
  143. {
  144. encodedString += "%22";
  145. break;
  146. }
  147. case '\'':
  148. {
  149. encodedString += "%27";
  150. break;
  151. }
  152. case '#':
  153. {
  154. encodedString += "%23";
  155. break;
  156. }
  157. case '{':
  158. {
  159. encodedString += "%7B";
  160. break;
  161. }
  162. case '}':
  163. {
  164. encodedString += "%7D";
  165. break;
  166. }
  167. case '|':
  168. {
  169. encodedString += "%7C";
  170. break;
  171. }
  172. case '\\':
  173. {
  174. encodedString += "%5C";
  175. break;
  176. }
  177. case '^':
  178. {
  179. encodedString += "%5E";
  180. break;
  181. }
  182. case '~':
  183. {
  184. encodedString += "%7E";
  185. break;
  186. }
  187. case '`':
  188. {
  189. encodedString += "%60";
  190. break;
  191. }
  192. case '[':
  193. {
  194. encodedString += "%5B";
  195. break;
  196. }
  197. case ']':
  198. {
  199. encodedString += "%5D";
  200. break;
  201. }
  202. //Reserved characters
  203. case ';':
  204. {
  205. encodedString += "%3B";
  206. break;
  207. }
  208. case '/':
  209. {
  210. encodedString += "%2F";
  211. break;
  212. }
  213. case '?':
  214. {
  215. encodedString += "%3F";
  216. break;
  217. }
  218. case ':':
  219. {
  220. encodedString += "%3A";
  221. break;
  222. }
  223. case '@':
  224. {
  225. encodedString += "%40";
  226. break;
  227. }
  228. case '=':
  229. {
  230. encodedString += "%3D";
  231. break;
  232. }
  233. case '&':
  234. {
  235. encodedString += "%26";
  236. break;
  237. }
  238. default:
  239. {
  240. encodedString += nextChar;
  241. break;
  242. }
  243. }
  244. }
  245. return encodedString;
  246. }