diff options
Diffstat (limited to 'dogtag/tps-ui/shared/docroot/esc/sow')
-rw-r--r-- | dogtag/tps-ui/shared/docroot/esc/sow/EnrollSuccess.html | 50 | ||||
-rwxr-xr-x | dogtag/tps-ui/shared/docroot/esc/sow/GenericAuth.html | 538 | ||||
-rwxr-xr-x | dogtag/tps-ui/shared/docroot/esc/sow/js/ajax-dynamic-list.js | 288 | ||||
-rwxr-xr-x | dogtag/tps-ui/shared/docroot/esc/sow/js/ajax.js | 193 | ||||
-rwxr-xr-x | dogtag/tps-ui/shared/docroot/esc/sow/js/effects.js | 903 | ||||
-rwxr-xr-x | dogtag/tps-ui/shared/docroot/esc/sow/js/lightbox.js | 689 | ||||
-rwxr-xr-x | dogtag/tps-ui/shared/docroot/esc/sow/js/prototype.js | 1785 | ||||
-rwxr-xr-x | dogtag/tps-ui/shared/docroot/esc/sow/js/scriptaculous.js | 45 | ||||
-rwxr-xr-x | dogtag/tps-ui/shared/docroot/esc/sow/util.js | 1769 |
9 files changed, 0 insertions, 6260 deletions
diff --git a/dogtag/tps-ui/shared/docroot/esc/sow/EnrollSuccess.html b/dogtag/tps-ui/shared/docroot/esc/sow/EnrollSuccess.html deleted file mode 100644 index 478819213..000000000 --- a/dogtag/tps-ui/shared/docroot/esc/sow/EnrollSuccess.html +++ /dev/null @@ -1,50 +0,0 @@ -<!-- --- BEGIN COPYRIGHT BLOCK --- - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - Copyright (C) 2009 Red Hat, Inc. - All rights reserved. - --- END COPYRIGHT BLOCK --- --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<head> -<link rel=stylesheet href="/esc/sow/style.css" type="text/css"> -<title>Success!</title> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<link rel="stylesheet" href="/esc/sow/css/style.css" media="screen" type="text/css"> -</head> - -<body> - - -<div id="header"> - <div id="logo"> - <center><h3><!--<img align=bottom src="/pki/esc/sow/images/logo.gif">-->Security Officer Station</h3></center> - </div> -</div> - - -<div id="content"> - <div id="maintext"> - <div id="topmenu"> - | <a href="/cgi-bin/sow/main.cgi">Main</a> | - </div> -<blockquote><strong>Congratulations!</strong> This user has successfully enrolled the Smartcard! Now that this user has enrolled, he/she will be able to use the smartcard to log onto all available Smartcard-protected services.</blockquote> -<br/> - -</div> -</div> - -</body> - -</html> diff --git a/dogtag/tps-ui/shared/docroot/esc/sow/GenericAuth.html b/dogtag/tps-ui/shared/docroot/esc/sow/GenericAuth.html deleted file mode 100755 index 219f9a6ad..000000000 --- a/dogtag/tps-ui/shared/docroot/esc/sow/GenericAuth.html +++ /dev/null @@ -1,538 +0,0 @@ -<!-- --- BEGIN COPYRIGHT BLOCK --- - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - Copyright (C) 2009 Red Hat, Inc. - All rights reserved. - --- END COPYRIGHT BLOCK --- --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> - -<html> -<head> -<style> - -body { -background: #ffffff url(/pki/esc/images/bg.jpg) repeat-x; - font-family: arial; - font-size: 7pt; - -} - -h1 -{ - text-align: left; - - font-weight: bold; - - font-size: 13pt; - - -} - - -h2 { - - text-align: left; - font-size: 10pt; - - font-weight: lighter; -} - -</style> -<script language = "Javascript"> - -var test_ui = "id=USER_ID&name=User ID&desc=User ID&type=string&option=option1,option2,option3&&id=USER_PWD&name=User Password&desc=User Password&type=password&option=&&id=USER_PIN&name=PIN&desc=One time PIN received via mail&type=password&option="; - -var theForm = null; -var curKeyID = null; -var curKeyType = 0; - - -var gTitle = null; -var gDescription = null; - - - -function ConfirmPassword(password_element) -{ - - if(!password_element) - return 0; - - password_id = password_element.id; - - if(!password_id) - return 0; - - confirm_id = "RE_" + password_element.id; - - var size = theForm.length; - - if(theForm) - { - for(i = 0; i < size ; i++) - { - var cur_element = theForm.elements[i]; - - if(cur_element.id == confirm_id) - { - if(cur_element.value != password_element.value) - { - alert("Value " + password_element.name + " must match " + cur_element.name); - return 0; - - } - else - { - return 1; - } - - } - - } - - } - - return 1; -} - -function Validate() -{ - if(theForm) - { - var size = theForm.length; - - for( i = 0; i < size ; i++) - { - var element = theForm.elements[i]; - - if(element.type == "text" ) - { - if(element.value == "") - { - alert("Please enter value for " + element.name); - return 0; - } - } - - if(element.type == "password") - { - if(element.value == "") - { - alert("Please enter value for " + element.name); - return 0; - } - - if(!ConfirmPassword(element)) - { - return 0; - } - - } - } - - } - - return 1; -} - -function FormSubmit() -{ - var result = Validate(); - - var thisParent = window.opener; - - if(!parent) - { - alert("No parent window."); - window.close(); - return; - } - - if(!result) - { - return; - } - - if(theForm) - { - var size = theForm.length; - for( i = 0; i < size ; i++) - { - var element = theForm.elements[i]; - - var value = element.value; - - if(element.type == "text" ) - { - var id = element.id; - value = element.value; - - if(thisParent) - { - //alert("about to set data value key " + curKeyID + " id " + id + " value " + value); - thisParent.COOLKeySetDataValue(curKeyType,curKeyID,id,value); - - } - } - - if(element.type == "password") - { - var p_id = new String(element.id); - - if(p_id.indexOf("RE_") == -1) - { - if(thisParent) - { - thisParent.COOLKeySetDataValue(curKeyType,curKeyID,p_id,value); - } - } - } - } - - } - - window.close(); -} - -function GetUIObjectList(uiData) -{ - var str = new String(uiData); - var splits = str.split("&&"); - -// alert("Get " + splits + " len " + splits.length); - - var params = new Array(); - var size = splits.length; - - for(i = 0 ; i < size ; i++) - { - params[i] = splits[i].split("&"); - } - - size = params.length; - var name_value_objects = new Array(); - - for(i = 0 ; i < size; i++) - { - var name_values = new Array(); - - pISize = params[i].length; - for(j = 0 ; j < pISize ; j ++) - { - var pair = params[i][j].split("="); - - //alert(" pair " + pair[0] + " pair1 " + pair[1]); - - if(pair[0] == "option") - { - var options = pair[1].split(","); - } - - name_values[pair[0]] = pair[1]; - } - - name_value_objects[i] = name_values; - } - - return name_value_objects; - -} - -function AddBRToNode(theNode) -{ - - if(!theNode) - return; - - var br = document.createElement("br"); - - theNode.appendChild(br); - -} - -function AddTextToNode(theNode,theText) -{ - - if(!theNode || !theText) - return; - - - var text = document.createTextNode(theText); - - theNode.appendChild(text); - - - - -} -function AddTextToDocument(theText) -{ - if(!theText) - return; - - var p = document.createElement("p"); - - if(p) - { - p.appendChild(document.createTextNode(theText)); - } - - document.body.appendChild(p); -} - -function CreateForm() -{ - var form = document.createElement("form"); - document.body.appendChild(form); - return form; -} - -function CreateTable() -{ - var table = document.createElement("table"); - document.body.appendChild(table); - tbody = document.createElement("tbody"); - table.appendChild(tbody); - - return table; -} - -function AddRowToTable(table) -{ - if(!table) - return null; - - var tr = document.createElement("tr"); - (table.tBodies[0]).appendChild(tr); - - return tr; -} - -function AddColumnToRow(row) -{ - if(!row) - return null; - - var td = document.createElement("td"); - row.appendChild(td); - - return td; -} - -function AddTextToColumn(column,text) -{ - if(!column || !text) - return; - - var text_node = document.createTextNode(text); - column.appendChild(text_node); - - return text_node; -} - -function AddInputField(type,id, name,value) -{ - var field = document.createElement("input"); - - if(!field) - return null; - - field.type = type; - field.id =id; - field.name =name; - field.value =value; - - return field; -} - -function ConstructUI(aKeyType,aKeyID,uiData) -{ - - //alert("Construct UI data " + uiData); - var name_value_objects = GetUIObjectList(uiData); - var len = name_value_objects.length; - - gTitle = document.createElement("h1"); - - gDescription = document.createElement("h2"); - - - document.body.appendChild(gTitle); - - - document.body.appendChild(gDescription); - - - form = CreateForm(); - theForm = form; - curKeyID = aKeyID; - curKeyType = aKeyType; - - table = CreateTable(); - - form.appendChild(table); - - for(i = 0 ; i < len ; i ++) - { - curParameter = name_value_objects[i]; - - if(curParameter) - { - - title = curParameter["title"]; - - - if(title) - { - //alert("title " + title); - - AddTextToNode(gTitle,title); - - - } - - description = curParameter["description"]; - - if(description) - { - AddBRToNode(document.body); - AddBRToNode(document.body); - - AddTextToNode(gDescription,description); - - AddBRToNode(document.body); - - } - - id = curParameter["id"]; - name = curParameter["name"]; - type = curParameter["type"]; - desc = curParameter["desc"]; - - //alert(" id " + id + " name " + name + " type " + type + " desc " + desc); - - if(id) - { - if(table) - { - row = AddRowToTable(table); - } - - if(row) - { - column = AddColumnToRow(row); - } - - if(column) - { - AddTextToColumn(column,name); - } - - if(type == "string" || type == "integer") - { - field = AddInputField("text",id,name,""); - } - - re_field = null; - - if(type == "password") - { - field = AddInputField("password",id,name,""); - } - - if(type == "hidden") - { - field = AddInputField("hidden",id,name,""); - } - - if(field) - { - field_col = AddColumnToRow(row); - if(field_col) - { - field_col.appendChild(field); - } - } - - if(re_field) - { - re_text = AddColumnToRow(row); - - if(re_text) - { - AddTextToColumn(re_text,"Confirm " + name); - re_field_col = AddColumnToRow(row); - if(re_field_col) - { - re_field_col.appendChild(re_field); - } - - } - - } - } - - } - - } - - var last_row = AddRowToTable(table); - - if(last_row) - { - var button_field = AddColumnToRow(last_row); - - if(button_field) - { - var button = AddInputField("button","Submit","Submit","Submit"); - button.onclick = FormSubmit; - button_field.appendChild(button); - - } - - } -} - -function UiLoad() -{ - - - var thisParent = window.opener; - - - if(!thisParent) - { - alert("Auth dialog has no parent!"); - return; - } - - var keyID = this.name; - - var ui = thisParent.getUIForKey(keyID); - - var type = thisParent.getTypeForKey(keyID); - - //alert("UiLoad " + ui); - - if(ui) - { - ConstructUI(type,keyID,ui); - } -} - -</script> -</head> -<body onload = "UiLoad()"> -</body> -</html> diff --git a/dogtag/tps-ui/shared/docroot/esc/sow/js/ajax-dynamic-list.js b/dogtag/tps-ui/shared/docroot/esc/sow/js/ajax-dynamic-list.js deleted file mode 100755 index 4c89ede8a..000000000 --- a/dogtag/tps-ui/shared/docroot/esc/sow/js/ajax-dynamic-list.js +++ /dev/null @@ -1,288 +0,0 @@ -/************************************************************************************************************
-Ajax dynamic list
-Copyright (C) 2006 DTHMLGoodies.com, Alf Magne Kalleland
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-Dhtmlgoodies.com., hereby disclaims all copyright interest in this script
-written by Alf Magne Kalleland.
-
-Alf Magne Kalleland, 2006
-Owner of DHTMLgoodies.com
-
-************************************************************************************************************/
-
- var ajaxBox_offsetX = 0;
- var ajaxBox_offsetY = 0;
- var ajax_list_externalFile = 'ajax-list.cgi'; // Path to external file
- var minimumLettersBeforeLookup = 1; // Number of letters entered before a lookup is performed.
-
- var ajax_list_objects = new Array();
- var ajax_list_cachedLists = new Array();
- var ajax_list_activeInput = false;
- var ajax_list_activeItem;
- var ajax_list_optionDivFirstItem = false;
- var ajax_list_currentLetters = new Array();
- var ajax_optionDiv = false;
- var ajax_optionDiv_iframe = false;
-
- var ajax_list_MSIE = false;
- if(navigator.userAgent.indexOf('MSIE')>=0 && navigator.userAgent.indexOf('Opera')<0)ajax_list_MSIE=true;
-
- var currentListIndex = 0;
-
- function ajax_getTopPos(inputObj)
- {
-
- var returnValue = inputObj.offsetTop;
- while((inputObj = inputObj.offsetParent) != null){
- returnValue += inputObj.offsetTop;
- }
- return returnValue;
- }
- function ajax_list_cancelEvent()
- {
- return false;
- }
-
- function ajax_getLeftPos(inputObj)
- {
- var returnValue = inputObj.offsetLeft;
- while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetLeft;
-
- return returnValue;
- }
-
- function ajax_option_setValue(e,inputObj)
- {
- if(!inputObj)inputObj=this;
- var tmpValue = inputObj.innerHTML;
- if(ajax_list_MSIE)tmpValue = inputObj.innerText;else tmpValue = inputObj.textContent;
- if(!tmpValue)tmpValue = inputObj.innerHTML;
- ajax_list_activeInput.value = tmpValue;
- if(document.getElementById(ajax_list_activeInput.name + '_hidden'))document.getElementById(ajax_list_activeInput.name + '_hidden').value = inputObj.id;
- ajax_options_hide();
- }
-
- function ajax_options_hide()
- {
- ajax_optionDiv.style.display='none';
- if(ajax_optionDiv_iframe)ajax_optionDiv_iframe.style.display='none';
- }
-
- function ajax_options_rollOverActiveItem(item,fromKeyBoard)
- {
- if(ajax_list_activeItem)ajax_list_activeItem.className='optionDiv';
- item.className='optionDivSelected';
- ajax_list_activeItem = item;
-
- if(fromKeyBoard){
- if(ajax_list_activeItem.offsetTop>ajax_optionDiv.offsetHeight){
- ajax_optionDiv.scrollTop = ajax_list_activeItem.offsetTop - ajax_optionDiv.offsetHeight + ajax_list_activeItem.offsetHeight + 2 ;
- }
- if(ajax_list_activeItem.offsetTop<ajax_optionDiv.scrollTop)
- {
- ajax_optionDiv.scrollTop = 0;
- }
- }
- }
-
- function ajax_option_list_buildList(letters,paramToExternalFile)
- {
-
- ajax_optionDiv.innerHTML = '';
- ajax_list_activeItem = false;
- if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length<=1){
- ajax_options_hide();
- return;
- }
-
-
-
- ajax_list_optionDivFirstItem = false;
- var optionsAdded = false;
- for(var no=0;no<ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length;no++){
- if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()][no].length==0)continue;
- optionsAdded = true;
- var div = document.createElement('DIV');
- var items = ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()][no].split(/###/gi);
-
- if(ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()].length==1 && ajax_list_activeInput.value == items[0]){
- ajax_options_hide();
- return;
- }
-
-
- div.innerHTML = items[items.length-1];
- div.id = items[0];
- div.className='optionDiv';
- div.onmouseover = function(){ ajax_options_rollOverActiveItem(this,false) }
- div.onclick = ajax_option_setValue;
- if(!ajax_list_optionDivFirstItem)ajax_list_optionDivFirstItem = div;
- ajax_optionDiv.appendChild(div);
- }
- if(optionsAdded){
- ajax_optionDiv.style.display='block';
- if(ajax_optionDiv_iframe)ajax_optionDiv_iframe.style.display='';
- }
-
- }
-
- function ajax_option_list_showContent(ajaxIndex,inputObj,paramToExternalFile,whichIndex)
- {
- if(whichIndex!=currentListIndex)return;
- var letters = inputObj.value;
- var content = ajax_list_objects[ajaxIndex].response;
- var elements = content.split('|');
- ajax_list_cachedLists[paramToExternalFile][letters.toLowerCase()] = elements;
- ajax_option_list_buildList(letters,paramToExternalFile);
-
- }
-
- function ajax_option_resize(inputObj)
- {
- ajax_optionDiv.style.top = (ajax_getTopPos(inputObj) + inputObj.offsetHeight + ajaxBox_offsetY) + 'px';
- ajax_optionDiv.style.left = (ajax_getLeftPos(inputObj) + ajaxBox_offsetX) + 'px';
- if(ajax_optionDiv_iframe){
- ajax_optionDiv_iframe.style.left = ajax_optionDiv.style.left;
- ajax_optionDiv_iframe.style.top = ajax_optionDiv.style.top;
- }
-
- }
-
- function ajax_showOptions(inputObj,paramToExternalFile,e)
- {
- if(e.keyCode==13 || e.keyCode==9)return;
- if(ajax_list_currentLetters[inputObj.name]==inputObj.value)return;
- if(!ajax_list_cachedLists[paramToExternalFile])ajax_list_cachedLists[paramToExternalFile] = new Array();
- ajax_list_currentLetters[inputObj.name] = inputObj.value;
- if(!ajax_optionDiv){
- ajax_optionDiv = document.createElement('DIV');
- ajax_optionDiv.id = 'ajax_listOfOptions';
- document.body.appendChild(ajax_optionDiv);
-
- if(ajax_list_MSIE){
- ajax_optionDiv_iframe = document.createElement('IFRAME');
- ajax_optionDiv_iframe.border='0';
- ajax_optionDiv_iframe.style.width = ajax_optionDiv.clientWidth + 'px';
- ajax_optionDiv_iframe.style.height = ajax_optionDiv.clientHeight + 'px';
- ajax_optionDiv_iframe.id = 'ajax_listOfOptions_iframe';
-
- document.body.appendChild(ajax_optionDiv_iframe);
- }
-
- var allInputs = document.getElementsByTagName('INPUT');
- for(var no=0;no<allInputs.length;no++){
- if(!allInputs[no].onkeyup)allInputs[no].onfocus = ajax_options_hide;
- }
- var allSelects = document.getElementsByTagName('SELECT');
- for(var no=0;no<allSelects.length;no++){
- allSelects[no].onfocus = ajax_options_hide;
- }
-
- var oldonkeydown=document.body.onkeydown;
- if(typeof oldonkeydown!='function'){
- document.body.onkeydown=ajax_option_keyNavigation;
- }else{
- document.body.onkeydown=function(){
- oldonkeydown();
- ajax_option_keyNavigation() ;}
- }
- var oldonresize=document.body.onresize;
- if(typeof oldonresize!='function'){
- document.body.onresize=function() {ajax_option_resize(inputObj); };
- }else{
- document.body.onresize=function(){oldonresize();
- ajax_option_resize(inputObj) ;}
- }
-
- }
-
- if(inputObj.value.length<minimumLettersBeforeLookup){
- ajax_options_hide();
- return;
- }
-
-
- ajax_optionDiv.style.top = (ajax_getTopPos(inputObj) + inputObj.offsetHeight + ajaxBox_offsetY) + 'px';
- ajax_optionDiv.style.left = (ajax_getLeftPos(inputObj) + ajaxBox_offsetX) + 'px';
- if(ajax_optionDiv_iframe){
- ajax_optionDiv_iframe.style.left = ajax_optionDiv.style.left;
- ajax_optionDiv_iframe.style.top = ajax_optionDiv.style.top;
- }
-
- ajax_list_activeInput = inputObj;
- ajax_optionDiv.onselectstart = ajax_list_cancelEvent;
- currentListIndex++;
- if(ajax_list_cachedLists[paramToExternalFile][inputObj.value.toLowerCase()]){
- ajax_option_list_buildList(inputObj.value,paramToExternalFile,currentListIndex);
- }else{
- ajax_optionDiv.innerHTML = '';
- var ajaxIndex = ajax_list_objects.length;
- ajax_list_objects[ajaxIndex] = new sack();
- var url = ajax_list_externalFile + '?' + paramToExternalFile + '=1&letters=' + inputObj.value.replace(" ","+");
- ajax_list_objects[ajaxIndex].requestFile = url; // Specifying which file to get
- ajax_list_objects[ajaxIndex].onCompletion = function(){ ajax_option_list_showContent(ajaxIndex,inputObj,paramToExternalFile,currentListIndex); }; // Specify function that will be executed after file has been found
- ajax_list_objects[ajaxIndex].runAJAX(); // Execute AJAX function
- }
-
-
- }
-
- function ajax_option_keyNavigation(e)
- {
- if(document.all)e = event;
-
- if(!ajax_optionDiv)return;
- if(ajax_optionDiv.style.display=='none')return;
-
- if(e.keyCode==38){ // Up arrow
- if(!ajax_list_activeItem)return;
- if(ajax_list_activeItem && !ajax_list_activeItem.previousSibling)return;
- ajax_options_rollOverActiveItem(ajax_list_activeItem.previousSibling,true);
- }
-
- if(e.keyCode==40){ // Down arrow
- if(!ajax_list_activeItem){
- ajax_options_rollOverActiveItem(ajax_list_optionDivFirstItem,true);
- }else{
- if(!ajax_list_activeItem.nextSibling)return;
- ajax_options_rollOverActiveItem(ajax_list_activeItem.nextSibling,true);
- }
- }
-
- if(e.keyCode==13 || e.keyCode==9){ // Enter key or tab key
- if(ajax_list_activeItem && ajax_list_activeItem.className=='optionDivSelected')ajax_option_setValue(false,ajax_list_activeItem);
- if(e.keyCode==13)return false; else return true;
- }
- if(e.keyCode==27){ // Escape key
- ajax_options_hide();
- }
- }
-
-
- document.documentElement.onclick = autoHideList;
-
- function autoHideList(e)
- {
- if(document.all)e = event;
-
- if (e.target) source = e.target;
- else if (e.srcElement) source = e.srcElement;
- if (source.nodeType == 3) // defeat Safari bug
- source = source.parentNode;
- if(source.tagName.toLowerCase()!='input' && source.tagName.toLowerCase()!='textarea')ajax_options_hide();
-
- }
diff --git a/dogtag/tps-ui/shared/docroot/esc/sow/js/ajax.js b/dogtag/tps-ui/shared/docroot/esc/sow/js/ajax.js deleted file mode 100755 index fc342fdd1..000000000 --- a/dogtag/tps-ui/shared/docroot/esc/sow/js/ajax.js +++ /dev/null @@ -1,193 +0,0 @@ -/* Simple AJAX Code-Kit (SACK) v1.6.1 */
-/* ©2005 Gregory Wild-Smith */
-/* www.twilightuniverse.com */
-/* Software licenced under a modified X11 licence,
- see documentation or authors website for more details */
-
-function sack(file) {
- this.xmlhttp = null;
-
- this.resetData = function() {
- this.method = "POST";
- this.queryStringSeparator = "?";
- this.argumentSeparator = "&";
- this.URLString = "";
- this.encodeURIString = true;
- this.execute = false;
- this.element = null;
- this.elementObj = null;
- this.requestFile = file;
- this.vars = new Object();
- this.responseStatus = new Array(2);
- };
-
- this.resetFunctions = function() {
- this.onLoading = function() { };
- this.onLoaded = function() { };
- this.onInteractive = function() { };
- this.onCompletion = function() { };
- this.onError = function() { };
- this.onFail = function() { };
- };
-
- this.reset = function() {
- this.resetFunctions();
- this.resetData();
- };
-
- this.createAJAX = function() {
- try {
- this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
- } catch (e1) {
- try {
- this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
- } catch (e2) {
- this.xmlhttp = null;
- }
- }
-
- if (! this.xmlhttp) {
- if (typeof XMLHttpRequest != "undefined") {
- this.xmlhttp = new XMLHttpRequest();
- } else {
- this.failed = true;
- }
- }
- };
-
- this.setVar = function(name, value){
- this.vars[name] = Array(value, false);
- };
-
- this.encVar = function(name, value, returnvars) {
- if (true == returnvars) {
- return Array(encodeURIComponent(name), encodeURIComponent(value));
- } else {
- this.vars[encodeURIComponent(name)] = Array(encodeURIComponent(value), true);
- }
- }
-
- this.processURLString = function(string, encode) {
- encoded = encodeURIComponent(this.argumentSeparator);
- regexp = new RegExp(this.argumentSeparator + "|" + encoded);
- varArray = string.split(regexp);
- for (i = 0; i < varArray.length; i++){
- urlVars = varArray[i].split("=");
- if (true == encode){
- this.encVar(urlVars[0], urlVars[1]);
- } else {
- this.setVar(urlVars[0], urlVars[1]);
- }
- }
- }
-
- this.createURLString = function(urlstring) {
- if (this.encodeURIString && this.URLString.length) {
- this.processURLString(this.URLString, true);
- }
-
- if (urlstring) {
- if (this.URLString.length) {
- this.URLString += this.argumentSeparator + urlstring;
- } else {
- this.URLString = urlstring;
- }
- }
-
- // prevents caching of URLString
- this.setVar("rndval", new Date().getTime());
-
- urlstringtemp = new Array();
- for (key in this.vars) {
- if (false == this.vars[key][1] && true == this.encodeURIString) {
- encoded = this.encVar(key, this.vars[key][0], true);
- delete this.vars[key];
- this.vars[encoded[0]] = Array(encoded[1], true);
- key = encoded[0];
- }
-
- urlstringtemp[urlstringtemp.length] = key + "=" + this.vars[key][0];
- }
- if (urlstring){
- this.URLString += this.argumentSeparator + urlstringtemp.join(this.argumentSeparator);
- } else {
- this.URLString += urlstringtemp.join(this.argumentSeparator);
- }
- }
-
- this.runResponse = function() {
- eval(this.response);
- }
-
- this.runAJAX = function(urlstring) {
- if (this.failed) {
- this.onFail();
- } else {
- this.createURLString(urlstring);
- if (this.element) {
- this.elementObj = document.getElementById(this.element);
- }
- if (this.xmlhttp) {
- var self = this;
- if (this.method == "GET") {
- totalurlstring = this.requestFile + this.queryStringSeparator + this.URLString;
- this.xmlhttp.open(this.method, totalurlstring, true);
- } else {
- this.xmlhttp.open(this.method, this.requestFile, true);
- try {
- this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
- } catch (e) { }
- }
-
- this.xmlhttp.onreadystatechange = function() {
- switch (self.xmlhttp.readyState) {
- case 1:
- self.onLoading();
- break;
- case 2:
- self.onLoaded();
- break;
- case 3:
- self.onInteractive();
- break;
- case 4:
- self.response = self.xmlhttp.responseText;
- self.responseXML = self.xmlhttp.responseXML;
- self.responseStatus[0] = self.xmlhttp.status;
- self.responseStatus[1] = self.xmlhttp.statusText;
-
- if (self.execute) {
- self.runResponse();
- }
-
- if (self.elementObj) {
- elemNodeName = self.elementObj.nodeName;
- elemNodeName.toLowerCase();
- if (elemNodeName == "input"
- || elemNodeName == "select"
- || elemNodeName == "option"
- || elemNodeName == "textarea") {
- self.elementObj.value = self.response;
- } else {
- self.elementObj.innerHTML = self.response;
- }
- }
- if (self.responseStatus[0] == "200") {
- self.onCompletion();
- } else {
- self.onError();
- }
-
- self.URLString = "";
- break;
- }
- };
-
- this.xmlhttp.send(this.URLString);
- }
- }
- };
-
- this.reset();
- this.createAJAX();
-}
diff --git a/dogtag/tps-ui/shared/docroot/esc/sow/js/effects.js b/dogtag/tps-ui/shared/docroot/esc/sow/js/effects.js deleted file mode 100755 index d3940a82b..000000000 --- a/dogtag/tps-ui/shared/docroot/esc/sow/js/effects.js +++ /dev/null @@ -1,903 +0,0 @@ -// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// Contributors: -// Justin Palmer (http://encytemedia.com/) -// Mark Pilgrim (http://diveintomark.org/) -// Martin Bialasinki -// -// See scriptaculous.js for full license. - -/* ------------- element ext -------------- */ - -// converts rgb() and #xxx to #xxxxxx format, -// returns self (or first argument) if not convertable -String.prototype.parseColor = function() { - var color = '#'; - if(this.slice(0,4) == 'rgb(') { - var cols = this.slice(4,this.length-1).split(','); - var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); - } else { - if(this.slice(0,1) == '#') { - if(this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); - if(this.length==7) color = this.toLowerCase(); - } - } - return(color.length==7 ? color : (arguments[0] || this)); -} - -Element.collectTextNodes = function(element) { - return $A($(element).childNodes).collect( function(node) { - return (node.nodeType==3 ? node.nodeValue : - (node.hasChildNodes() ? Element.collectTextNodes(node) : '')); - }).flatten().join(''); -} - -Element.collectTextNodesIgnoreClass = function(element, className) { - return $A($(element).childNodes).collect( function(node) { - return (node.nodeType==3 ? node.nodeValue : - ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? - Element.collectTextNodes(node) : '')); - }).flatten().join(''); -} - -Element.setStyle = function(element, style) { - element = $(element); - for(k in style) element.style[k.camelize()] = style[k]; -} - -Element.setContentZoom = function(element, percent) { - Element.setStyle(element, {fontSize: (percent/100) + 'em'}); - if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0); -} - -Element.getOpacity = function(element){ - var opacity; - if (opacity = Element.getStyle(element, 'opacity')) - return parseFloat(opacity); - if (opacity = (Element.getStyle(element, 'filter') || '').match(/alpha\(opacity=(.*)\)/)) - if(opacity[1]) return parseFloat(opacity[1]) / 100; - return 1.0; -} - -Element.setOpacity = function(element, value){ - element= $(element); - if (value == 1){ - Element.setStyle(element, { opacity: - (/Gecko/.test(navigator.userAgent) && !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? - 0.999999 : null }); - if(/MSIE/.test(navigator.userAgent)) - Element.setStyle(element, {filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')}); - } else { - if(value < 0.00001) value = 0; - Element.setStyle(element, {opacity: value}); - if(/MSIE/.test(navigator.userAgent)) - Element.setStyle(element, - { filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'') + - 'alpha(opacity='+value*100+')' }); - } -} - -Element.getInlineOpacity = function(element){ - return $(element).style.opacity || ''; -} - -Element.childrenWithClassName = function(element, className) { - return $A($(element).getElementsByTagName('*')).select( - function(c) { return Element.hasClassName(c, className) }); -} - -Array.prototype.call = function() { - var args = arguments; - this.each(function(f){ f.apply(this, args) }); -} - -/*--------------------------------------------------------------------------*/ - -var Effect = { - tagifyText: function(element) { - var tagifyStyle = 'position:relative'; - if(/MSIE/.test(navigator.userAgent)) tagifyStyle += ';zoom:1'; - element = $(element); - $A(element.childNodes).each( function(child) { - if(child.nodeType==3) { - child.nodeValue.toArray().each( function(character) { - element.insertBefore( - Builder.node('span',{style: tagifyStyle}, - character == ' ' ? String.fromCharCode(160) : character), - child); - }); - Element.remove(child); - } - }); - }, - multiple: function(element, effect) { - var elements; - if(((typeof element == 'object') || - (typeof element == 'function')) && - (element.length)) - elements = element; - else - elements = $(element).childNodes; - - var options = Object.extend({ - speed: 0.1, - delay: 0.0 - }, arguments[2] || {}); - var masterDelay = options.delay; - - $A(elements).each( function(element, index) { - new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay })); - }); - }, - PAIRS: { - 'slide': ['SlideDown','SlideUp'], - 'blind': ['BlindDown','BlindUp'], - 'appear': ['Appear','Fade'] - }, - toggle: function(element, effect) { - element = $(element); - effect = (effect || 'appear').toLowerCase(); - var options = Object.extend({ - queue: { position:'end', scope:(element.id || 'global') } - }, arguments[2] || {}); - Effect[Element.visible(element) ? - Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options); - } -}; - -var Effect2 = Effect; // deprecated - -/* ------------- transitions ------------- */ - -Effect.Transitions = {} - -Effect.Transitions.linear = function(pos) { - return pos; -} -Effect.Transitions.sinoidal = function(pos) { - return (-Math.cos(pos*Math.PI)/2) + 0.5; -} -Effect.Transitions.reverse = function(pos) { - return 1-pos; -} -Effect.Transitions.flicker = function(pos) { - return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4; -} -Effect.Transitions.wobble = function(pos) { - return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5; -} -Effect.Transitions.pulse = function(pos) { - return (Math.floor(pos*10) % 2 == 0 ? - (pos*10-Math.floor(pos*10)) : 1-(pos*10-Math.floor(pos*10))); -} -Effect.Transitions.none = function(pos) { - return 0; -} -Effect.Transitions.full = function(pos) { - return 1; -} - -/* ------------- core effects ------------- */ - -Effect.ScopedQueue = Class.create(); -Object.extend(Object.extend(Effect.ScopedQueue.prototype, Enumerable), { - initialize: function() { - this.effects = []; - this.interval = null; - }, - _each: function(iterator) { - this.effects._each(iterator); - }, - add: function(effect) { - var timestamp = new Date().getTime(); - - var position = (typeof effect.options.queue == 'string') ? - effect.options.queue : effect.options.queue.position; - - switch(position) { - case 'front': - // move unstarted effects after this effect - this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { - e.startOn += effect.finishOn; - e.finishOn += effect.finishOn; - }); - break; - case 'end': - // start effect after last queued effect has finished - timestamp = this.effects.pluck('finishOn').max() || timestamp; - break; - } - - effect.startOn += timestamp; - effect.finishOn += timestamp; - this.effects.push(effect); - if(!this.interval) - this.interval = setInterval(this.loop.bind(this), 40); - }, - remove: function(effect) { - this.effects = this.effects.reject(function(e) { return e==effect }); - if(this.effects.length == 0) { - clearInterval(this.interval); - this.interval = null; - } - }, - loop: function() { - var timePos = new Date().getTime(); - this.effects.invoke('loop', timePos); - } -}); - -Effect.Queues = { - instances: $H(), - get: function(queueName) { - if(typeof queueName != 'string') return queueName; - - if(!this.instances[queueName]) - this.instances[queueName] = new Effect.ScopedQueue(); - - return this.instances[queueName]; - } -} -Effect.Queue = Effect.Queues.get('global'); - -Effect.DefaultOptions = { - transition: Effect.Transitions.sinoidal, - duration: 1.0, // seconds - fps: 25.0, // max. 25fps due to Effect.Queue implementation - sync: false, // true for combining - from: 0.0, - to: 1.0, - delay: 0.0, - queue: 'parallel' -} - -Effect.Base = function() {}; -Effect.Base.prototype = { - position: null, - start: function(options) { - this.options = Object.extend(Object.extend({},Effect.DefaultOptions), options || {}); - this.currentFrame = 0; - this.state = 'idle'; - this.startOn = this.options.delay*1000; - this.finishOn = this.startOn + (this.options.duration*1000); - this.event('beforeStart'); - if(!this.options.sync) - Effect.Queues.get(typeof this.options.queue == 'string' ? - 'global' : this.options.queue.scope).add(this); - }, - loop: function(timePos) { - if(timePos >= this.startOn) { - if(timePos >= this.finishOn) { - this.render(1.0); - this.cancel(); - this.event('beforeFinish'); - if(this.finish) this.finish(); - this.event('afterFinish'); - return; - } - var pos = (timePos - this.startOn) / (this.finishOn - this.startOn); - var frame = Math.round(pos * this.options.fps * this.options.duration); - if(frame > this.currentFrame) { - this.render(pos); - this.currentFrame = frame; - } - } - }, - render: function(pos) { - if(this.state == 'idle') { - this.state = 'running'; - this.event('beforeSetup'); - if(this.setup) this.setup(); - this.event('afterSetup'); - } - if(this.state == 'running') { - if(this.options.transition) pos = this.options.transition(pos); - pos *= (this.options.to-this.options.from); - pos += this.options.from; - this.position = pos; - this.event('beforeUpdate'); - if(this.update) this.update(pos); - this.event('afterUpdate'); - } - }, - cancel: function() { - if(!this.options.sync) - Effect.Queues.get(typeof this.options.queue == 'string' ? - 'global' : this.options.queue.scope).remove(this); - this.state = 'finished'; - }, - event: function(eventName) { - if(this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this); - if(this.options[eventName]) this.options[eventName](this); - }, - inspect: function() { - return '#<Effect:' + $H(this).inspect() + ',options:' + $H(this.options).inspect() + '>'; - } -} - -Effect.Parallel = Class.create(); -Object.extend(Object.extend(Effect.Parallel.prototype, Effect.Base.prototype), { - initialize: function(effects) { - this.effects = effects || []; - this.start(arguments[1]); - }, - update: function(position) { - this.effects.invoke('render', position); - }, - finish: function(position) { - this.effects.each( function(effect) { - effect.render(1.0); - effect.cancel(); - effect.event('beforeFinish'); - if(effect.finish) effect.finish(position); - effect.event('afterFinish'); - }); - } -}); - -Effect.Opacity = Class.create(); -Object.extend(Object.extend(Effect.Opacity.prototype, Effect.Base.prototype), { - initialize: function(element) { - this.element = $(element); - // make this work on IE on elements without 'layout' - if(/MSIE/.test(navigator.userAgent) && (!this.element.hasLayout)) - Element.setStyle(this.element, {zoom: 1}); - var options = Object.extend({ - from: Element.getOpacity(this.element) || 0.0, - to: 1.0 - }, arguments[1] || {}); - this.start(options); - }, - update: function(position) { - Element.setOpacity(this.element, position); - } -}); - -Effect.Move = Class.create(); -Object.extend(Object.extend(Effect.Move.prototype, Effect.Base.prototype), { - initialize: function(element) { - this.element = $(element); - var options = Object.extend({ - x: 0, - y: 0, - mode: 'relative' - }, arguments[1] || {}); - this.start(options); - }, - setup: function() { - // Bug in Opera: Opera returns the "real" position of a static element or - // relative element that does not have top/left explicitly set. - // ==> Always set top and left for position relative elements in your stylesheets - // (to 0 if you do not need them) - Element.makePositioned(this.element); - this.originalLeft = parseFloat(Element.getStyle(this.element,'left') || '0'); - this.originalTop = parseFloat(Element.getStyle(this.element,'top') || '0'); - if(this.options.mode == 'absolute') { - // absolute movement, so we need to calc deltaX and deltaY - this.options.x = this.options.x - this.originalLeft; - this.options.y = this.options.y - this.originalTop; - } - }, - update: function(position) { - Element.setStyle(this.element, { - left: this.options.x * position + this.originalLeft + 'px', - top: this.options.y * position + this.originalTop + 'px' - }); - } -}); - -// for backwards compatibility -Effect.MoveBy = function(element, toTop, toLeft) { - return new Effect.Move(element, - Object.extend({ x: toLeft, y: toTop }, arguments[3] || {})); -}; - -Effect.Scale = Class.create(); -Object.extend(Object.extend(Effect.Scale.prototype, Effect.Base.prototype), { - initialize: function(element, percent) { - this.element = $(element) - var options = Object.extend({ - scaleX: true, - scaleY: true, - scaleContent: true, - scaleFromCenter: false, - scaleMode: 'box', // 'box' or 'contents' or {} with provided values - scaleFrom: 100.0, - scaleTo: percent - }, arguments[2] || {}); - this.start(options); - }, - setup: function() { - this.restoreAfterFinish = this.options.restoreAfterFinish || false; - this.elementPositioning = Element.getStyle(this.element,'position'); - - this.originalStyle = {}; - ['top','left','width','height','fontSize'].each( function(k) { - this.originalStyle[k] = this.element.style[k]; - }.bind(this)); - - this.originalTop = this.element.offsetTop; - this.originalLeft = this.element.offsetLeft; - - var fontSize = Element.getStyle(this.element,'font-size') || '100%'; - ['em','px','%'].each( function(fontSizeType) { - if(fontSize.indexOf(fontSizeType)>0) { - this.fontSize = parseFloat(fontSize); - this.fontSizeType = fontSizeType; - } - }.bind(this)); - - this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; - - this.dims = null; - if(this.options.scaleMode=='box') - this.dims = [this.element.offsetHeight, this.element.offsetWidth]; - if(/^content/.test(this.options.scaleMode)) - this.dims = [this.element.scrollHeight, this.element.scrollWidth]; - if(!this.dims) - this.dims = [this.options.scaleMode.originalHeight, - this.options.scaleMode.originalWidth]; - }, - update: function(position) { - var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position); - if(this.options.scaleContent && this.fontSize) - Element.setStyle(this.element, {fontSize: this.fontSize * currentScale + this.fontSizeType }); - this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale); - }, - finish: function(position) { - if (this.restoreAfterFinish) Element.setStyle(this.element, this.originalStyle); - }, - setDimensions: function(height, width) { - var d = {}; - if(this.options.scaleX) d.width = width + 'px'; - if(this.options.scaleY) d.height = height + 'px'; - if(this.options.scaleFromCenter) { - var topd = (height - this.dims[0])/2; - var leftd = (width - this.dims[1])/2; - if(this.elementPositioning == 'absolute') { - if(this.options.scaleY) d.top = this.originalTop-topd + 'px'; - if(this.options.scaleX) d.left = this.originalLeft-leftd + 'px'; - } else { - if(this.options.scaleY) d.top = -topd + 'px'; - if(this.options.scaleX) d.left = -leftd + 'px'; - } - } - Element.setStyle(this.element, d); - } -}); - -Effect.Highlight = Class.create(); -Object.extend(Object.extend(Effect.Highlight.prototype, Effect.Base.prototype), { - initialize: function(element) { - this.element = $(element); - var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || {}); - this.start(options); - }, - setup: function() { - // Prevent executing on elements not in the layout flow - if(Element.getStyle(this.element, 'display')=='none') { this.cancel(); return; } - // Disable background image during the effect - this.oldStyle = { - backgroundImage: Element.getStyle(this.element, 'background-image') }; - Element.setStyle(this.element, {backgroundImage: 'none'}); - if(!this.options.endcolor) - this.options.endcolor = Element.getStyle(this.element, 'background-color').parseColor('#ffffff'); - if(!this.options.restorecolor) - this.options.restorecolor = Element.getStyle(this.element, 'background-color'); - // init color calculations - this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this)); - this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this)); - }, - update: function(position) { - Element.setStyle(this.element,{backgroundColor: $R(0,2).inject('#',function(m,v,i){ - return m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart()); }.bind(this)) }); - }, - finish: function() { - Element.setStyle(this.element, Object.extend(this.oldStyle, { - backgroundColor: this.options.restorecolor - })); - } -}); - -Effect.ScrollTo = Class.create(); -Object.extend(Object.extend(Effect.ScrollTo.prototype, Effect.Base.prototype), { - initialize: function(element) { - this.element = $(element); - this.start(arguments[1] || {}); - }, - setup: function() { - Position.prepare(); - var offsets = Position.cumulativeOffset(this.element); - if(this.options.offset) offsets[1] += this.options.offset; - var max = window.innerHeight ? - window.height - window.innerHeight : - document.body.scrollHeight - - (document.documentElement.clientHeight ? - document.documentElement.clientHeight : document.body.clientHeight); - this.scrollStart = Position.deltaY; - this.delta = (offsets[1] > max ? max : offsets[1]) - this.scrollStart; - }, - update: function(position) { - Position.prepare(); - window.scrollTo(Position.deltaX, - this.scrollStart + (position*this.delta)); - } -}); - -/* ------------- combination effects ------------- */ - -Effect.Fade = function(element) { - var oldOpacity = Element.getInlineOpacity(element); - var options = Object.extend({ - from: Element.getOpacity(element) || 1.0, - to: 0.0, - afterFinishInternal: function(effect) { with(Element) { - if(effect.options.to!=0) return; - hide(effect.element); - setStyle(effect.element, {opacity: oldOpacity}); }} - }, arguments[1] || {}); - return new Effect.Opacity(element,options); -} - -Effect.Appear = function(element) { - var options = Object.extend({ - from: (Element.getStyle(element, 'display') == 'none' ? 0.0 : Element.getOpacity(element) || 0.0), - to: 1.0, - beforeSetup: function(effect) { with(Element) { - setOpacity(effect.element, effect.options.from); - show(effect.element); }} - }, arguments[1] || {}); - return new Effect.Opacity(element,options); -} - -Effect.Puff = function(element) { - element = $(element); - var oldStyle = { opacity: Element.getInlineOpacity(element), position: Element.getStyle(element, 'position') }; - return new Effect.Parallel( - [ new Effect.Scale(element, 200, - { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), - new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], - Object.extend({ duration: 1.0, - beforeSetupInternal: function(effect) { with(Element) { - setStyle(effect.effects[0].element, {position: 'absolute'}); }}, - afterFinishInternal: function(effect) { with(Element) { - hide(effect.effects[0].element); - setStyle(effect.effects[0].element, oldStyle); }} - }, arguments[1] || {}) - ); -} - -Effect.BlindUp = function(element) { - element = $(element); - Element.makeClipping(element); - return new Effect.Scale(element, 0, - Object.extend({ scaleContent: false, - scaleX: false, - restoreAfterFinish: true, - afterFinishInternal: function(effect) { with(Element) { - [hide, undoClipping].call(effect.element); }} - }, arguments[1] || {}) - ); -} - -Effect.BlindDown = function(element) { - element = $(element); - var oldHeight = Element.getStyle(element, 'height'); - var elementDimensions = Element.getDimensions(element); - return new Effect.Scale(element, 100, - Object.extend({ scaleContent: false, - scaleX: false, - scaleFrom: 0, - scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, - restoreAfterFinish: true, - afterSetup: function(effect) { with(Element) { - makeClipping(effect.element); - setStyle(effect.element, {height: '0px'}); - show(effect.element); - }}, - afterFinishInternal: function(effect) { with(Element) { - undoClipping(effect.element); - setStyle(effect.element, {height: oldHeight}); - }} - }, arguments[1] || {}) - ); -} - -Effect.SwitchOff = function(element) { - element = $(element); - var oldOpacity = Element.getInlineOpacity(element); - return new Effect.Appear(element, { - duration: 0.4, - from: 0, - transition: Effect.Transitions.flicker, - afterFinishInternal: function(effect) { - new Effect.Scale(effect.element, 1, { - duration: 0.3, scaleFromCenter: true, - scaleX: false, scaleContent: false, restoreAfterFinish: true, - beforeSetup: function(effect) { with(Element) { - [makePositioned,makeClipping].call(effect.element); - }}, - afterFinishInternal: function(effect) { with(Element) { - [hide,undoClipping,undoPositioned].call(effect.element); - setStyle(effect.element, {opacity: oldOpacity}); - }} - }) - } - }); -} - -Effect.DropOut = function(element) { - element = $(element); - var oldStyle = { - top: Element.getStyle(element, 'top'), - left: Element.getStyle(element, 'left'), - opacity: Element.getInlineOpacity(element) }; - return new Effect.Parallel( - [ new Effect.Move(element, {x: 0, y: 100, sync: true }), - new Effect.Opacity(element, { sync: true, to: 0.0 }) ], - Object.extend( - { duration: 0.5, - beforeSetup: function(effect) { with(Element) { - makePositioned(effect.effects[0].element); }}, - afterFinishInternal: function(effect) { with(Element) { - [hide, undoPositioned].call(effect.effects[0].element); - setStyle(effect.effects[0].element, oldStyle); }} - }, arguments[1] || {})); -} - -Effect.Shake = function(element) { - element = $(element); - var oldStyle = { - top: Element.getStyle(element, 'top'), - left: Element.getStyle(element, 'left') }; - return new Effect.Move(element, - { x: 20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: -40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: 40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: -40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: 40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: -20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { with(Element) { - undoPositioned(effect.element); - setStyle(effect.element, oldStyle); - }}}) }}) }}) }}) }}) }}); -} - -Effect.SlideDown = function(element) { - element = $(element); - Element.cleanWhitespace(element); - // SlideDown need to have the content of the element wrapped in a container element with fixed height! - var oldInnerBottom = Element.getStyle(element.firstChild, 'bottom'); - var elementDimensions = Element.getDimensions(element); - return new Effect.Scale(element, 100, Object.extend({ - scaleContent: false, - scaleX: false, - scaleFrom: 0, - scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, - restoreAfterFinish: true, - afterSetup: function(effect) { with(Element) { - makePositioned(effect.element); - makePositioned(effect.element.firstChild); - if(window.opera) setStyle(effect.element, {top: ''}); - makeClipping(effect.element); - setStyle(effect.element, {height: '0px'}); - show(element); }}, - afterUpdateInternal: function(effect) { with(Element) { - setStyle(effect.element.firstChild, {bottom: - (effect.dims[0] - effect.element.clientHeight) + 'px' }); }}, - afterFinishInternal: function(effect) { with(Element) { - undoClipping(effect.element); - undoPositioned(effect.element.firstChild); - undoPositioned(effect.element); - setStyle(effect.element.firstChild, {bottom: oldInnerBottom}); }} - }, arguments[1] || {}) - ); -} - -Effect.SlideUp = function(element) { - element = $(element); - Element.cleanWhitespace(element); - var oldInnerBottom = Element.getStyle(element.firstChild, 'bottom'); - return new Effect.Scale(element, 0, - Object.extend({ scaleContent: false, - scaleX: false, - scaleMode: 'box', - scaleFrom: 100, - restoreAfterFinish: true, - beforeStartInternal: function(effect) { with(Element) { - makePositioned(effect.element); - makePositioned(effect.element.firstChild); - if(window.opera) setStyle(effect.element, {top: ''}); - makeClipping(effect.element); - show(element); }}, - afterUpdateInternal: function(effect) { with(Element) { - setStyle(effect.element.firstChild, {bottom: - (effect.dims[0] - effect.element.clientHeight) + 'px' }); }}, - afterFinishInternal: function(effect) { with(Element) { - [hide, undoClipping].call(effect.element); - undoPositioned(effect.element.firstChild); - undoPositioned(effect.element); - setStyle(effect.element.firstChild, {bottom: oldInnerBottom}); }} - }, arguments[1] || {}) - ); -} - -// Bug in opera makes the TD containing this element expand for a instance after finish -Effect.Squish = function(element) { - return new Effect.Scale(element, window.opera ? 1 : 0, - { restoreAfterFinish: true, - beforeSetup: function(effect) { with(Element) { - makeClipping(effect.element); }}, - afterFinishInternal: function(effect) { with(Element) { - hide(effect.element); - undoClipping(effect.element); }} - }); -} - -Effect.Grow = function(element) { - element = $(element); - var options = Object.extend({ - direction: 'center', - moveTransistion: Effect.Transitions.sinoidal, - scaleTransition: Effect.Transitions.sinoidal, - opacityTransition: Effect.Transitions.full - }, arguments[1] || {}); - var oldStyle = { - top: element.style.top, - left: element.style.left, - height: element.style.height, - width: element.style.width, - opacity: Element.getInlineOpacity(element) }; - - var dims = Element.getDimensions(element); - var initialMoveX, initialMoveY; - var moveX, moveY; - - switch (options.direction) { - case 'top-left': - initialMoveX = initialMoveY = moveX = moveY = 0; - break; - case 'top-right': - initialMoveX = dims.width; - initialMoveY = moveY = 0; - moveX = -dims.width; - break; - case 'bottom-left': - initialMoveX = moveX = 0; - initialMoveY = dims.height; - moveY = -dims.height; - break; - case 'bottom-right': - initialMoveX = dims.width; - initialMoveY = dims.height; - moveX = -dims.width; - moveY = -dims.height; - break; - case 'center': - initialMoveX = dims.width / 2; - initialMoveY = dims.height / 2; - moveX = -dims.width / 2; - moveY = -dims.height / 2; - break; - } - - return new Effect.Move(element, { - x: initialMoveX, - y: initialMoveY, - duration: 0.01, - beforeSetup: function(effect) { with(Element) { - hide(effect.element); - makeClipping(effect.element); - makePositioned(effect.element); - }}, - afterFinishInternal: function(effect) { - new Effect.Parallel( - [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), - new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), - new Effect.Scale(effect.element, 100, { - scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, - sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true}) - ], Object.extend({ - beforeSetup: function(effect) { with(Element) { - setStyle(effect.effects[0].element, {height: '0px'}); - show(effect.effects[0].element); }}, - afterFinishInternal: function(effect) { with(Element) { - [undoClipping, undoPositioned].call(effect.effects[0].element); - setStyle(effect.effects[0].element, oldStyle); }} - }, options) - ) - } - }); -} - -Effect.Shrink = function(element) { - element = $(element); - var options = Object.extend({ - direction: 'center', - moveTransistion: Effect.Transitions.sinoidal, - scaleTransition: Effect.Transitions.sinoidal, - opacityTransition: Effect.Transitions.none - }, arguments[1] || {}); - var oldStyle = { - top: element.style.top, - left: element.style.left, - height: element.style.height, - width: element.style.width, - opacity: Element.getInlineOpacity(element) }; - - var dims = Element.getDimensions(element); - var moveX, moveY; - - switch (options.direction) { - case 'top-left': - moveX = moveY = 0; - break; - case 'top-right': - moveX = dims.width; - moveY = 0; - break; - case 'bottom-left': - moveX = 0; - moveY = dims.height; - break; - case 'bottom-right': - moveX = dims.width; - moveY = dims.height; - break; - case 'center': - moveX = dims.width / 2; - moveY = dims.height / 2; - break; - } - - return new Effect.Parallel( - [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), - new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), - new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) - ], Object.extend({ - beforeStartInternal: function(effect) { with(Element) { - [makePositioned, makeClipping].call(effect.effects[0].element) }}, - afterFinishInternal: function(effect) { with(Element) { - [hide, undoClipping, undoPositioned].call(effect.effects[0].element); - setStyle(effect.effects[0].element, oldStyle); }} - }, options) - ); -} - -Effect.Pulsate = function(element) { - element = $(element); - var options = arguments[1] || {}; - var oldOpacity = Element.getInlineOpacity(element); - var transition = options.transition || Effect.Transitions.sinoidal; - var reverser = function(pos){ return transition(1-Effect.Transitions.pulse(pos)) }; - reverser.bind(transition); - return new Effect.Opacity(element, - Object.extend(Object.extend({ duration: 3.0, from: 0, - afterFinishInternal: function(effect) { Element.setStyle(effect.element, {opacity: oldOpacity}); } - }, options), {transition: reverser})); -} - -Effect.Fold = function(element) { - element = $(element); - var oldStyle = { - top: element.style.top, - left: element.style.left, - width: element.style.width, - height: element.style.height }; - Element.makeClipping(element); - return new Effect.Scale(element, 5, Object.extend({ - scaleContent: false, - scaleX: false, - afterFinishInternal: function(effect) { - new Effect.Scale(element, 1, { - scaleContent: false, - scaleY: false, - afterFinishInternal: function(effect) { with(Element) { - [hide, undoClipping].call(effect.element); - setStyle(effect.element, oldStyle); - }} }); - }}, arguments[1] || {})); -} diff --git a/dogtag/tps-ui/shared/docroot/esc/sow/js/lightbox.js b/dogtag/tps-ui/shared/docroot/esc/sow/js/lightbox.js deleted file mode 100755 index 11856b208..000000000 --- a/dogtag/tps-ui/shared/docroot/esc/sow/js/lightbox.js +++ /dev/null @@ -1,689 +0,0 @@ -// -----------------------------------------------------------------------------------
-//
-// Lightbox v2.02
-// by Lokesh Dhakar - http://www.huddletogether.com
-// 3/31/06
-//
-// For more information on this script, visit:
-// http://huddletogether.com/projects/lightbox2/
-//
-// Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/
-//
-// Credit also due to those who have helped, inspired, and made their code available to the public.
-// Including: Scott Upton(uptonic.com), Peter-Paul Koch(quirksmode.org), Thomas Fuchs(mir.aculo.us), and others.
-//
-//
-// -----------------------------------------------------------------------------------
-/*
-
- Table of Contents
- -----------------
- Configuration
- Global Variables
-
- Extending Built-in Objects
- - Object.extend(Element)
- - Array.prototype.removeDuplicates()
- - Array.prototype.empty()
-
- Lightbox Class Declaration
- - initialize()
- - start()
- - changeImage()
- - resizeImageContainer()
- - showImage()
- - updateDetails()
- - updateNav()
- - enableKeyboardNav()
- - disableKeyboardNav()
- - keyboardAction()
- - preloadNeighborImages()
- - end()
-
- Miscellaneous Functions
- - getPageScroll()
- - getPageSize()
- - getKey()
- - listenKey()
- - showSelectBoxes()
- - hideSelectBoxes()
- - pause()
- - initLightbox()
-
- Function Calls
- - addLoadEvent(initLightbox)
-
-*/
-// -----------------------------------------------------------------------------------
-
-//
-// Configuration
-//
-var fileLoadingImage = "/sow/images/loading.gif";
-var fileBottomNavCloseImage = "/sow/images/closelabel.gif";
-
-var resizeSpeed = 7; // controls the speed of the image resizing (1=slowest and 10=fastest)
-
-var borderSize = 10; //if you adjust the padding in the CSS, you will need to update this variable
-
-// -----------------------------------------------------------------------------------
-
-//
-// Global Variables
-//
-var imageArray = new Array;
-var activeImage;
-
-if(resizeSpeed > 10){ resizeSpeed = 10;}
-if(resizeSpeed < 1){ resizeSpeed = 1;}
-resizeDuration = (11 - resizeSpeed) * 0.15;
-
-// -----------------------------------------------------------------------------------
-
-//
-// Additional methods for Element added by SU, Couloir
-// - further additions by Lokesh Dhakar (huddletogether.com)
-//
-Object.extend(Element, {
- getWidth: function(element) {
- element = $(element);
- return element.offsetWidth;
- },
- setWidth: function(element,w) {
- element = $(element);
- element.style.width = w +"px";
- },
- setHeight: function(element,h) {
- element = $(element);
- element.style.height = h +"px";
- },
- setTop: function(element,t) {
- element = $(element);
- element.style.top = t +"px";
- },
- setSrc: function(element,src) {
- element = $(element);
- element.src = src;
- },
- setHref: function(element,href) {
- element = $(element);
- element.href = href;
- },
- setInnerHTML: function(element,content) {
- element = $(element);
- element.innerHTML = content;
- }
-});
-
-// -----------------------------------------------------------------------------------
-
-//
-// Extending built-in Array object
-// - array.removeDuplicates()
-// - array.empty()
-//
-Array.prototype.removeDuplicates = function () {
- for(i = 1; i < this.length; i++){
- if(this[i][0] == this[i-1][0]){
- this.splice(i,1);
- }
- }
-}
-
-// -----------------------------------------------------------------------------------
-
-Array.prototype.empty = function () {
- for(i = 0; i <= this.length; i++){
- this.shift();
- }
-}
-
-// -----------------------------------------------------------------------------------
-
-//
-// Lightbox Class Declaration
-// - initialize()
-// - start()
-// - changeImage()
-// - resizeImageContainer()
-// - showImage()
-// - updateDetails()
-// - updateNav()
-// - enableKeyboardNav()
-// - disableKeyboardNav()
-// - keyboardNavAction()
-// - preloadNeighborImages()
-// - end()
-//
-// Structuring of code inspired by Scott Upton (http://www.uptonic.com/)
-//
-var Lightbox = Class.create();
-
-Lightbox.prototype = {
-
- // initialize()
- // Constructor runs on completion of the DOM loading. Loops through anchor tags looking for
- // 'lightbox' references and applies onclick events to appropriate links. The 2nd section of
- // the function inserts html at the bottom of the page which is used to display the shadow
- // overlay and the image container.
- //
- initialize: function() {
- if (!document.getElementsByTagName){ return; }
- var anchors = document.getElementsByTagName('a');
-
- // loop through all anchor tags
- for (var i=0; i<anchors.length; i++){
- var anchor = anchors[i];
-
- var relAttribute = String(anchor.getAttribute('rel'));
-
- // use the string.match() method to catch 'lightbox' references in the rel attribute
- if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){
- anchor.onclick = function () {myLightbox.start(this); return false;}
- }
- }
-
- // The rest of this code inserts html at the bottom of the page that looks similar to this:
- //
- // <div id="overlay"></div>
- // <div id="lightbox">
- // <div id="outerImageContainer">
- // <div id="imageContainer">
- // <img id="lightboxImage">
- // <div style="" id="hoverNav">
- // <a href="#" id="prevLink"></a>
- // <a href="#" id="nextLink"></a>
- // </div>
- // <div id="loading">
- // <a href="#" id="loadingLink">
- // <img src="images/loading.gif">
- // </a>
- // </div>
- // </div>
- // </div>
- // <div id="imageDataContainer">
- // <div id="imageData">
- // <div id="imageDetails">
- // <span id="caption"></span>
- // <span id="numberDisplay"></span>
- // </div>
- // <div id="bottomNav">
- // <a href="#" id="bottomNavClose">
- // <img src="images/close.gif">
- // </a>
- // </div>
- // </div>
- // </div>
- // </div>
-
-
- var objBody = document.getElementsByTagName("body").item(0);
-
- var objOverlay = document.createElement("div");
- objOverlay.setAttribute('id','overlay');
- objOverlay.style.display = 'none';
- objOverlay.onclick = function() { myLightbox.end(); return false; }
- objBody.appendChild(objOverlay);
-
- var objLightbox = document.createElement("div");
- objLightbox.setAttribute('id','lightbox');
- objLightbox.style.display = 'none';
- objBody.appendChild(objLightbox);
-
- var objOuterImageContainer = document.createElement("div");
- objOuterImageContainer.setAttribute('id','outerImageContainer');
- objLightbox.appendChild(objOuterImageContainer);
-
- var objImageContainer = document.createElement("div");
- objImageContainer.setAttribute('id','imageContainer');
- objOuterImageContainer.appendChild(objImageContainer);
-
- var objLightboxImage = document.createElement("img");
- objLightboxImage.setAttribute('id','lightboxImage');
- objImageContainer.appendChild(objLightboxImage);
-
- var objHoverNav = document.createElement("div");
- objHoverNav.setAttribute('id','hoverNav');
- objImageContainer.appendChild(objHoverNav);
-
- var objPrevLink = document.createElement("a");
- objPrevLink.setAttribute('id','prevLink');
- objPrevLink.setAttribute('href','#');
- objHoverNav.appendChild(objPrevLink);
-
- var objNextLink = document.createElement("a");
- objNextLink.setAttribute('id','nextLink');
- objNextLink.setAttribute('href','#');
- objHoverNav.appendChild(objNextLink);
-
- var objLoading = document.createElement("div");
- objLoading.setAttribute('id','loading');
- objImageContainer.appendChild(objLoading);
-
- var objLoadingLink = document.createElement("a");
- objLoadingLink.setAttribute('id','loadingLink');
- objLoadingLink.setAttribute('href','#');
- objLoadingLink.onclick = function() { myLightbox.end(); return false; }
- objLoading.appendChild(objLoadingLink);
-
- var objLoadingImage = document.createElement("img");
- objLoadingImage.setAttribute('src', fileLoadingImage);
- objLoadingLink.appendChild(objLoadingImage);
-
- var objImageDataContainer = document.createElement("div");
- objImageDataContainer.setAttribute('id','imageDataContainer');
- objImageDataContainer.className = 'clearfix';
- objLightbox.appendChild(objImageDataContainer);
-
- var objImageData = document.createElement("div");
- objImageData.setAttribute('id','imageData');
- objImageDataContainer.appendChild(objImageData);
-
- var objImageDetails = document.createElement("div");
- objImageDetails.setAttribute('id','imageDetails');
- objImageData.appendChild(objImageDetails);
-
- var objCaption = document.createElement("span");
- objCaption.setAttribute('id','caption');
- objImageDetails.appendChild(objCaption);
-
- var objNumberDisplay = document.createElement("span");
- objNumberDisplay.setAttribute('id','numberDisplay');
- objImageDetails.appendChild(objNumberDisplay);
-
- var objBottomNav = document.createElement("div");
- objBottomNav.setAttribute('id','bottomNav');
- objImageData.appendChild(objBottomNav);
-
- var objBottomNavCloseLink = document.createElement("a");
- objBottomNavCloseLink.setAttribute('id','bottomNavClose');
- objBottomNavCloseLink.setAttribute('href','#');
- objBottomNavCloseLink.onclick = function() { myLightbox.end(); return false; }
- objBottomNav.appendChild(objBottomNavCloseLink);
-
- var objBottomNavCloseImage = document.createElement("img");
- objBottomNavCloseImage.setAttribute('src', fileBottomNavCloseImage);
- objBottomNavCloseLink.appendChild(objBottomNavCloseImage);
- },
-
- //
- // start()
- // Display overlay and lightbox. If image is part of a set, add siblings to imageArray.
- //
- start: function(imageLink) {
-
- hideSelectBoxes();
-
- // stretch overlay to fill page and fade in
- var arrayPageSize = getPageSize();
- Element.setHeight('overlay', arrayPageSize[1]);
- new Effect.Appear('overlay', { duration: 0.2, from: 0.0, to: 0.8 });
-
- imageArray = [];
- imageNum = 0;
-
- if (!document.getElementsByTagName){ return; }
- var anchors = document.getElementsByTagName('a');
-
- // if image is NOT part of a set..
- if((imageLink.getAttribute('rel') == 'lightbox')){
- // add single image to imageArray
- imageArray.push(new Array(imageLink.getAttribute('href'), imageLink.getAttribute('title')));
- } else {
- // if image is part of a set..
-
- // loop through anchors, find other images in set, and add them to imageArray
- for (var i=0; i<anchors.length; i++){
- var anchor = anchors[i];
- if (anchor.getAttribute('href') && (anchor.getAttribute('rel') == imageLink.getAttribute('rel'))){
- imageArray.push(new Array(anchor.getAttribute('href'), anchor.getAttribute('title')));
- }
- }
- imageArray.removeDuplicates();
- while(imageArray[imageNum][0] != imageLink.getAttribute('href')) { imageNum++;}
- }
-
- // calculate top offset for the lightbox and display
- var arrayPageSize = getPageSize();
- var arrayPageScroll = getPageScroll();
- var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 15);
-
- Element.setTop('lightbox', lightboxTop);
- Element.show('lightbox');
-
- this.changeImage(imageNum);
- },
-
- //
- // changeImage()
- // Hide most elements and preload image in preparation for resizing image container.
- //
- changeImage: function(imageNum) {
-
- activeImage = imageNum; // update global var
-
- // hide elements during transition
- Element.show('loading');
- Element.hide('lightboxImage');
- Element.hide('hoverNav');
- Element.hide('prevLink');
- Element.hide('nextLink');
- Element.hide('imageDataContainer');
- Element.hide('numberDisplay');
-
- imgPreloader = new Image();
-
- // once image is preloaded, resize image container
- imgPreloader.onload=function(){
- Element.setSrc('lightboxImage', imageArray[activeImage][0]);
- myLightbox.resizeImageContainer(imgPreloader.width, imgPreloader.height);
- }
- imgPreloader.src = imageArray[activeImage][0];
- },
-
- //
- // resizeImageContainer()
- //
- resizeImageContainer: function( imgWidth, imgHeight) {
-
- // get current height and width
- this.wCur = Element.getWidth('outerImageContainer');
- this.hCur = Element.getHeight('outerImageContainer');
-
- // scalars based on change from old to new
- this.xScale = ((imgWidth + (borderSize * 2)) / this.wCur) * 100;
- this.yScale = ((imgHeight + (borderSize * 2)) / this.hCur) * 100;
-
- // calculate size difference between new and old image, and resize if necessary
- wDiff = (this.wCur - borderSize * 2) - imgWidth;
- hDiff = (this.hCur - borderSize * 2) - imgHeight;
-
- if(!( hDiff == 0)){ new Effect.Scale('outerImageContainer', this.yScale, {scaleX: false, duration: resizeDuration, queue: 'front'}); }
- if(!( wDiff == 0)){ new Effect.Scale('outerImageContainer', this.xScale, {scaleY: false, delay: resizeDuration, duration: resizeDuration}); }
-
- // if new and old image are same size and no scaling transition is necessary,
- // do a quick pause to prevent image flicker.
- if((hDiff == 0) && (wDiff == 0)){
- if (navigator.appVersion.indexOf("MSIE")!=-1){ pause(250); } else { pause(100);}
- }
-
- Element.setHeight('prevLink', imgHeight);
- Element.setHeight('nextLink', imgHeight);
- Element.setWidth( 'imageDataContainer', imgWidth + (borderSize * 2));
-
- this.showImage();
- },
-
- //
- // showImage()
- // Display image and begin preloading neighbors.
- //
- showImage: function(){
- Element.hide('loading');
- new Effect.Appear('lightboxImage', { duration: 0.5, queue: 'end', afterFinish: function(){ myLightbox.updateDetails(); } });
- this.preloadNeighborImages();
- },
-
- //
- // updateDetails()
- // Display caption, image number, and bottom nav.
- //
- updateDetails: function() {
-
- Element.show('caption');
- Element.setInnerHTML( 'caption', imageArray[activeImage][1]);
-
- // if image is part of set display 'Image x of x'
- if(imageArray.length > 1){
- Element.show('numberDisplay');
- Element.setInnerHTML( 'numberDisplay', "Image " + eval(activeImage + 1) + " of " + imageArray.length);
- }
-
- new Effect.Parallel(
- [ new Effect.SlideDown( 'imageDataContainer', { sync: true, duration: resizeDuration + 0.25, from: 0.0, to: 1.0 }),
- new Effect.Appear('imageDataContainer', { sync: true, duration: 1.0 }) ],
- { duration: 0.65, afterFinish: function() { myLightbox.updateNav();} }
- );
- },
-
- //
- // updateNav()
- // Display appropriate previous and next hover navigation.
- //
- updateNav: function() {
-
- Element.show('hoverNav');
-
- // if not first image in set, display prev image button
- if(activeImage != 0){
- Element.show('prevLink');
- document.getElementById('prevLink').onclick = function() {
- myLightbox.changeImage(activeImage - 1); return false;
- }
- }
-
- // if not last image in set, display next image button
- if(activeImage != (imageArray.length - 1)){
- Element.show('nextLink');
- document.getElementById('nextLink').onclick = function() {
- myLightbox.changeImage(activeImage + 1); return false;
- }
- }
-
- this.enableKeyboardNav();
- },
-
- //
- // enableKeyboardNav()
- //
- enableKeyboardNav: function() {
- document.onkeydown = this.keyboardAction;
- },
-
- //
- // disableKeyboardNav()
- //
- disableKeyboardNav: function() {
- document.onkeydown = '';
- },
-
- //
- // keyboardAction()
- //
- keyboardAction: function(e) {
- if (e == null) { // ie
- keycode = event.keyCode;
- } else { // mozilla
- keycode = e.which;
- }
-
- key = String.fromCharCode(keycode).toLowerCase();
-
- if((key == 'x') || (key == 'o') || (key == 'c')){ // close lightbox
- myLightbox.end();
- } else if(key == 'p'){ // display previous image
- if(activeImage != 0){
- myLightbox.disableKeyboardNav();
- myLightbox.changeImage(activeImage - 1);
- }
- } else if(key == 'n'){ // display next image
- if(activeImage != (imageArray.length - 1)){
- myLightbox.disableKeyboardNav();
- myLightbox.changeImage(activeImage + 1);
- }
- }
-
-
- },
-
- //
- // preloadNeighborImages()
- // Preload previous and next images.
- //
- preloadNeighborImages: function(){
-
- if((imageArray.length - 1) > activeImage){
- preloadNextImage = new Image();
- preloadNextImage.src = imageArray[activeImage + 1][0];
- }
- if(activeImage > 0){
- preloadPrevImage = new Image();
- preloadPrevImage.src = imageArray[activeImage - 1][0];
- }
-
- },
-
- //
- // end()
- //
- end: function() {
- this.disableKeyboardNav();
- Element.hide('lightbox');
- new Effect.Fade('overlay', { duration: 0.2});
- showSelectBoxes();
- }
-}
-
-// -----------------------------------------------------------------------------------
-
-//
-// getPageScroll()
-// Returns array with x,y page scroll values.
-// Core code from - quirksmode.org
-//
-function getPageScroll(){
-
- var yScroll;
-
- if (self.pageYOffset) {
- yScroll = self.pageYOffset;
- } else if (document.documentElement && document.documentElement.scrollTop){ // Explorer 6 Strict
- yScroll = document.documentElement.scrollTop;
- } else if (document.body) {// all other Explorers
- yScroll = document.body.scrollTop;
- }
-
- arrayPageScroll = new Array('',yScroll)
- return arrayPageScroll;
-}
-
-// -----------------------------------------------------------------------------------
-
-//
-// getPageSize()
-// Returns array with page width, height and window width, height
-// Core code from - quirksmode.org
-// Edit for Firefox by pHaez
-//
-function getPageSize(){
-
- var xScroll, yScroll;
-
- if (window.innerHeight && window.scrollMaxY) {
- xScroll = document.body.scrollWidth;
- yScroll = window.innerHeight + window.scrollMaxY;
- } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
- xScroll = document.body.scrollWidth;
- yScroll = document.body.scrollHeight;
- } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
- xScroll = document.body.offsetWidth;
- yScroll = document.body.offsetHeight;
- }
-
- var windowWidth, windowHeight;
- if (self.innerHeight) { // all except Explorer
- windowWidth = self.innerWidth;
- windowHeight = self.innerHeight;
- } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
- windowWidth = document.documentElement.clientWidth;
- windowHeight = document.documentElement.clientHeight;
- } else if (document.body) { // other Explorers
- windowWidth = document.body.clientWidth;
- windowHeight = document.body.clientHeight;
- }
-
- // for small pages with total height less then height of the viewport
- if(yScroll < windowHeight){
- pageHeight = windowHeight;
- } else {
- pageHeight = yScroll;
- }
-
- // for small pages with total width less then width of the viewport
- if(xScroll < windowWidth){
- pageWidth = windowWidth;
- } else {
- pageWidth = xScroll;
- }
-
-
- arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
- return arrayPageSize;
-}
-
-// -----------------------------------------------------------------------------------
-
-//
-// getKey(key)
-// Gets keycode. If 'x' is pressed then it hides the lightbox.
-//
-function getKey(e){
- if (e == null) { // ie
- keycode = event.keyCode;
- } else { // mozilla
- keycode = e.which;
- }
- key = String.fromCharCode(keycode).toLowerCase();
-
- if(key == 'x'){
- }
-}
-
-// -----------------------------------------------------------------------------------
-
-//
-// listenKey()
-//
-function listenKey () { document.onkeypress = getKey; }
-
-// ---------------------------------------------------
-
-function showSelectBoxes(){
- selects = document.getElementsByTagName("select");
- for (i = 0; i != selects.length; i++) {
- selects[i].style.visibility = "visible";
- }
-}
-
-// ---------------------------------------------------
-
-function hideSelectBoxes(){
- selects = document.getElementsByTagName("select");
- for (i = 0; i != selects.length; i++) {
- selects[i].style.visibility = "hidden";
- }
-}
-
-// ---------------------------------------------------
-
-//
-// pause(numberMillis)
-// Pauses code execution for specified time. Uses busy code, not good.
-// Code from http://www.faqts.com/knowledge_base/view.phtml/aid/1602
-//
-function pause(numberMillis) {
- var now = new Date();
- var exitTime = now.getTime() + numberMillis;
- while (true) {
- now = new Date();
- if (now.getTime() > exitTime)
- return;
- }
-}
-
-// ---------------------------------------------------
-
-
-
-function initLightbox() { myLightbox = new Lightbox(); }
-Event.observe(window, 'load', initLightbox, false);
diff --git a/dogtag/tps-ui/shared/docroot/esc/sow/js/prototype.js b/dogtag/tps-ui/shared/docroot/esc/sow/js/prototype.js deleted file mode 100755 index e9ccd3c88..000000000 --- a/dogtag/tps-ui/shared/docroot/esc/sow/js/prototype.js +++ /dev/null @@ -1,1785 +0,0 @@ -/* Prototype JavaScript framework, version 1.4.0 - * (c) 2005 Sam Stephenson <sam@conio.net> - * - * THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff - * against the source tree, available from the Prototype darcs repository. - * - * Prototype is freely distributable under the terms of an MIT-style license. - * - * For details, see the Prototype web site: http://prototype.conio.net/ - * -/*--------------------------------------------------------------------------*/ - -var Prototype = { - Version: '1.4.0', - ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)', - - emptyFunction: function() {}, - K: function(x) {return x} -} - -var Class = { - create: function() { - return function() { - this.initialize.apply(this, arguments); - } - } -} - -var Abstract = new Object(); - -Object.extend = function(destination, source) { - for (property in source) { - destination[property] = source[property]; - } - return destination; -} - -Object.inspect = function(object) { - try { - if (object == undefined) return 'undefined'; - if (object == null) return 'null'; - return object.inspect ? object.inspect() : object.toString(); - } catch (e) { - if (e instanceof RangeError) return '...'; - throw e; - } -} - -Function.prototype.bind = function() { - var __method = this, args = $A(arguments), object = args.shift(); - return function() { - return __method.apply(object, args.concat($A(arguments))); - } -} - -Function.prototype.bindAsEventListener = function(object) { - var __method = this; - return function(event) { - return __method.call(object, event || window.event); - } -} - -Object.extend(Number.prototype, { - toColorPart: function() { - var digits = this.toString(16); - if (this < 16) return '0' + digits; - return digits; - }, - - succ: function() { - return this + 1; - }, - - times: function(iterator) { - $R(0, this, true).each(iterator); - return this; - } -}); - -var Try = { - these: function() { - var returnValue; - - for (var i = 0; i < arguments.length; i++) { - var lambda = arguments[i]; - try { - returnValue = lambda(); - break; - } catch (e) {} - } - - return returnValue; - } -} - -/*--------------------------------------------------------------------------*/ - -var PeriodicalExecuter = Class.create(); -PeriodicalExecuter.prototype = { - initialize: function(callback, frequency) { - this.callback = callback; - this.frequency = frequency; - this.currentlyExecuting = false; - - this.registerCallback(); - }, - - registerCallback: function() { - setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - onTimerEvent: function() { - if (!this.currentlyExecuting) { - try { - this.currentlyExecuting = true; - this.callback(); - } finally { - this.currentlyExecuting = false; - } - } - } -} - -/*--------------------------------------------------------------------------*/ - -function $() { - var elements = new Array(); - - for (var i = 0; i < arguments.length; i++) { - var element = arguments[i]; - if (typeof element == 'string') - element = document.getElementById(element); - - if (arguments.length == 1) - return element; - - elements.push(element); - } - - return elements; -} -Object.extend(String.prototype, { - stripTags: function() { - return this.replace(/<\/?[^>]+>/gi, ''); - }, - - stripScripts: function() { - return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); - }, - - extractScripts: function() { - var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); - var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); - return (this.match(matchAll) || []).map(function(scriptTag) { - return (scriptTag.match(matchOne) || ['', ''])[1]; - }); - }, - - evalScripts: function() { - return this.extractScripts().map(eval); - }, - - escapeHTML: function() { - var div = document.createElement('div'); - var text = document.createTextNode(this); - div.appendChild(text); - return div.innerHTML; - }, - - unescapeHTML: function() { - var div = document.createElement('div'); - div.innerHTML = this.stripTags(); - return div.childNodes[0] ? div.childNodes[0].nodeValue : ''; - }, - - toQueryParams: function() { - var pairs = this.match(/^\??(.*)$/)[1].split('&'); - return pairs.inject({}, function(params, pairString) { - var pair = pairString.split('='); - params[pair[0]] = pair[1]; - return params; - }); - }, - - toArray: function() { - return this.split(''); - }, - - camelize: function() { - var oStringList = this.split('-'); - if (oStringList.length == 1) return oStringList[0]; - - var camelizedString = this.indexOf('-') == 0 - ? oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1) - : oStringList[0]; - - for (var i = 1, len = oStringList.length; i < len; i++) { - var s = oStringList[i]; - camelizedString += s.charAt(0).toUpperCase() + s.substring(1); - } - - return camelizedString; - }, - - inspect: function() { - return "'" + this.replace('\\', '\\\\').replace("'", '\\\'') + "'"; - } -}); - -String.prototype.parseQuery = String.prototype.toQueryParams; - -var $break = new Object(); -var $continue = new Object(); - -var Enumerable = { - each: function(iterator) { - var index = 0; - try { - this._each(function(value) { - try { - iterator(value, index++); - } catch (e) { - if (e != $continue) throw e; - } - }); - } catch (e) { - if (e != $break) throw e; - } - }, - - all: function(iterator) { - var result = true; - this.each(function(value, index) { - result = result && !!(iterator || Prototype.K)(value, index); - if (!result) throw $break; - }); - return result; - }, - - any: function(iterator) { - var result = true; - this.each(function(value, index) { - if (result = !!(iterator || Prototype.K)(value, index)) - throw $break; - }); - return result; - }, - - collect: function(iterator) { - var results = []; - this.each(function(value, index) { - results.push(iterator(value, index)); - }); - return results; - }, - - detect: function (iterator) { - var result; - this.each(function(value, index) { - if (iterator(value, index)) { - result = value; - throw $break; - } - }); - return result; - }, - - findAll: function(iterator) { - var results = []; - this.each(function(value, index) { - if (iterator(value, index)) - results.push(value); - }); - return results; - }, - - grep: function(pattern, iterator) { - var results = []; - this.each(function(value, index) { - var stringValue = value.toString(); - if (stringValue.match(pattern)) - results.push((iterator || Prototype.K)(value, index)); - }) - return results; - }, - - include: function(object) { - var found = false; - this.each(function(value) { - if (value == object) { - found = true; - throw $break; - } - }); - return found; - }, - - inject: function(memo, iterator) { - this.each(function(value, index) { - memo = iterator(memo, value, index); - }); - return memo; - }, - - invoke: function(method) { - var args = $A(arguments).slice(1); - return this.collect(function(value) { - return value[method].apply(value, args); - }); - }, - - max: function(iterator) { - var result; - this.each(function(value, index) { - value = (iterator || Prototype.K)(value, index); - if (value >= (result || value)) - result = value; - }); - return result; - }, - - min: function(iterator) { - var result; - this.each(function(value, index) { - value = (iterator || Prototype.K)(value, index); - if (value <= (result || value)) - result = value; - }); - return result; - }, - - partition: function(iterator) { - var trues = [], falses = []; - this.each(function(value, index) { - ((iterator || Prototype.K)(value, index) ? - trues : falses).push(value); - }); - return [trues, falses]; - }, - - pluck: function(property) { - var results = []; - this.each(function(value, index) { - results.push(value[property]); - }); - return results; - }, - - reject: function(iterator) { - var results = []; - this.each(function(value, index) { - if (!iterator(value, index)) - results.push(value); - }); - return results; - }, - - sortBy: function(iterator) { - return this.collect(function(value, index) { - return {value: value, criteria: iterator(value, index)}; - }).sort(function(left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }).pluck('value'); - }, - - toArray: function() { - return this.collect(Prototype.K); - }, - - zip: function() { - var iterator = Prototype.K, args = $A(arguments); - if (typeof args.last() == 'function') - iterator = args.pop(); - - var collections = [this].concat(args).map($A); - return this.map(function(value, index) { - iterator(value = collections.pluck(index)); - return value; - }); - }, - - inspect: function() { - return '#<Enumerable:' + this.toArray().inspect() + '>'; - } -} - -Object.extend(Enumerable, { - map: Enumerable.collect, - find: Enumerable.detect, - select: Enumerable.findAll, - member: Enumerable.include, - entries: Enumerable.toArray -}); -var $A = Array.from = function(iterable) { - if (!iterable) return []; - if (iterable.toArray) { - return iterable.toArray(); - } else { - var results = []; - for (var i = 0; i < iterable.length; i++) - results.push(iterable[i]); - return results; - } -} - -Object.extend(Array.prototype, Enumerable); - -Array.prototype._reverse = Array.prototype.reverse; - -Object.extend(Array.prototype, { - _each: function(iterator) { - for (var i = 0; i < this.length; i++) - iterator(this[i]); - }, - - clear: function() { - this.length = 0; - return this; - }, - - first: function() { - return this[0]; - }, - - last: function() { - return this[this.length - 1]; - }, - - compact: function() { - return this.select(function(value) { - return value != undefined || value != null; - }); - }, - - flatten: function() { - return this.inject([], function(array, value) { - return array.concat(value.constructor == Array ? - value.flatten() : [value]); - }); - }, - - without: function() { - var values = $A(arguments); - return this.select(function(value) { - return !values.include(value); - }); - }, - - indexOf: function(object) { - for (var i = 0; i < this.length; i++) - if (this[i] == object) return i; - return -1; - }, - - reverse: function(inline) { - return (inline !== false ? this : this.toArray())._reverse(); - }, - - shift: function() { - var result = this[0]; - for (var i = 0; i < this.length - 1; i++) - this[i] = this[i + 1]; - this.length--; - return result; - }, - - inspect: function() { - return '[' + this.map(Object.inspect).join(', ') + ']'; - } -}); -var Hash = { - _each: function(iterator) { - for (key in this) { - var value = this[key]; - if (typeof value == 'function') continue; - - var pair = [key, value]; - pair.key = key; - pair.value = value; - iterator(pair); - } - }, - - keys: function() { - return this.pluck('key'); - }, - - values: function() { - return this.pluck('value'); - }, - - merge: function(hash) { - return $H(hash).inject($H(this), function(mergedHash, pair) { - mergedHash[pair.key] = pair.value; - return mergedHash; - }); - }, - - toQueryString: function() { - return this.map(function(pair) { - return pair.map(encodeURIComponent).join('='); - }).join('&'); - }, - - inspect: function() { - return '#<Hash:{' + this.map(function(pair) { - return pair.map(Object.inspect).join(': '); - }).join(', ') + '}>'; - } -} - -function $H(object) { - var hash = Object.extend({}, object || {}); - Object.extend(hash, Enumerable); - Object.extend(hash, Hash); - return hash; -} -ObjectRange = Class.create(); -Object.extend(ObjectRange.prototype, Enumerable); -Object.extend(ObjectRange.prototype, { - initialize: function(start, end, exclusive) { - this.start = start; - this.end = end; - this.exclusive = exclusive; - }, - - _each: function(iterator) { - var value = this.start; - do { - iterator(value); - value = value.succ(); - } while (this.include(value)); - }, - - include: function(value) { - if (value < this.start) - return false; - if (this.exclusive) - return value < this.end; - return value <= this.end; - } -}); - -var $R = function(start, end, exclusive) { - return new ObjectRange(start, end, exclusive); -} - -var Ajax = { - getTransport: function() { - return Try.these( - function() {return new ActiveXObject('Msxml2.XMLHTTP')}, - function() {return new ActiveXObject('Microsoft.XMLHTTP')}, - function() {return new XMLHttpRequest()} - ) || false; - }, - - activeRequestCount: 0 -} - -Ajax.Responders = { - responders: [], - - _each: function(iterator) { - this.responders._each(iterator); - }, - - register: function(responderToAdd) { - if (!this.include(responderToAdd)) - this.responders.push(responderToAdd); - }, - - unregister: function(responderToRemove) { - this.responders = this.responders.without(responderToRemove); - }, - - dispatch: function(callback, request, transport, json) { - this.each(function(responder) { - if (responder[callback] && typeof responder[callback] == 'function') { - try { - responder[callback].apply(responder, [request, transport, json]); - } catch (e) {} - } - }); - } -}; - -Object.extend(Ajax.Responders, Enumerable); - -Ajax.Responders.register({ - onCreate: function() { - Ajax.activeRequestCount++; - }, - - onComplete: function() { - Ajax.activeRequestCount--; - } -}); - -Ajax.Base = function() {}; -Ajax.Base.prototype = { - setOptions: function(options) { - this.options = { - method: 'post', - asynchronous: true, - parameters: '' - } - Object.extend(this.options, options || {}); - }, - - responseIsSuccess: function() { - return this.transport.status == undefined - || this.transport.status == 0 - || (this.transport.status >= 200 && this.transport.status < 300); - }, - - responseIsFailure: function() { - return !this.responseIsSuccess(); - } -} - -Ajax.Request = Class.create(); -Ajax.Request.Events = - ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; - -Ajax.Request.prototype = Object.extend(new Ajax.Base(), { - initialize: function(url, options) { - this.transport = Ajax.getTransport(); - this.setOptions(options); - this.request(url); - }, - - request: function(url) { - var parameters = this.options.parameters || ''; - if (parameters.length > 0) parameters += '&_='; - - try { - this.url = url; - if (this.options.method == 'get' && parameters.length > 0) - this.url += (this.url.match(/\?/) ? '&' : '?') + parameters; - - Ajax.Responders.dispatch('onCreate', this, this.transport); - - this.transport.open(this.options.method, this.url, - this.options.asynchronous); - - if (this.options.asynchronous) { - this.transport.onreadystatechange = this.onStateChange.bind(this); - setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10); - } - - this.setRequestHeaders(); - - var body = this.options.postBody ? this.options.postBody : parameters; - this.transport.send(this.options.method == 'post' ? body : null); - - } catch (e) { - this.dispatchException(e); - } - }, - - setRequestHeaders: function() { - var requestHeaders = - ['X-Requested-With', 'XMLHttpRequest', - 'X-Prototype-Version', Prototype.Version]; - - if (this.options.method == 'post') { - requestHeaders.push('Content-type', - 'application/x-www-form-urlencoded'); - - /* Force "Connection: close" for Mozilla browsers to work around - * a bug where XMLHttpReqeuest sends an incorrect Content-length - * header. See Mozilla Bugzilla #246651. - */ - if (this.transport.overrideMimeType) - requestHeaders.push('Connection', 'close'); - } - - if (this.options.requestHeaders) - requestHeaders.push.apply(requestHeaders, this.options.requestHeaders); - - for (var i = 0; i < requestHeaders.length; i += 2) - this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]); - }, - - onStateChange: function() { - var readyState = this.transport.readyState; - if (readyState != 1) - this.respondToReadyState(this.transport.readyState); - }, - - header: function(name) { - try { - return this.transport.getResponseHeader(name); - } catch (e) {} - }, - - evalJSON: function() { - try { - return eval(this.header('X-JSON')); - } catch (e) {} - }, - - evalResponse: function() { - try { - return eval(this.transport.responseText); - } catch (e) { - this.dispatchException(e); - } - }, - - respondToReadyState: function(readyState) { - var event = Ajax.Request.Events[readyState]; - var transport = this.transport, json = this.evalJSON(); - - if (event == 'Complete') { - try { - (this.options['on' + this.transport.status] - || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')] - || Prototype.emptyFunction)(transport, json); - } catch (e) { - this.dispatchException(e); - } - - if ((this.header('Content-type') || '').match(/^text\/javascript/i)) - this.evalResponse(); - } - - try { - (this.options['on' + event] || Prototype.emptyFunction)(transport, json); - Ajax.Responders.dispatch('on' + event, this, transport, json); - } catch (e) { - this.dispatchException(e); - } - - /* Avoid memory leak in MSIE: clean up the oncomplete event handler */ - if (event == 'Complete') - this.transport.onreadystatechange = Prototype.emptyFunction; - }, - - dispatchException: function(exception) { - (this.options.onException || Prototype.emptyFunction)(this, exception); - Ajax.Responders.dispatch('onException', this, exception); - } -}); - -Ajax.Updater = Class.create(); - -Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), { - initialize: function(container, url, options) { - this.containers = { - success: container.success ? $(container.success) : $(container), - failure: container.failure ? $(container.failure) : - (container.success ? null : $(container)) - } - - this.transport = Ajax.getTransport(); - this.setOptions(options); - - var onComplete = this.options.onComplete || Prototype.emptyFunction; - this.options.onComplete = (function(transport, object) { - this.updateContent(); - onComplete(transport, object); - }).bind(this); - - this.request(url); - }, - - updateContent: function() { - var receiver = this.responseIsSuccess() ? - this.containers.success : this.containers.failure; - var response = this.transport.responseText; - - if (!this.options.evalScripts) - response = response.stripScripts(); - - if (receiver) { - if (this.options.insertion) { - new this.options.insertion(receiver, response); - } else { - Element.update(receiver, response); - } - } - - if (this.responseIsSuccess()) { - if (this.onComplete) - setTimeout(this.onComplete.bind(this), 10); - } - } -}); - -Ajax.PeriodicalUpdater = Class.create(); -Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), { - initialize: function(container, url, options) { - this.setOptions(options); - this.onComplete = this.options.onComplete; - - this.frequency = (this.options.frequency || 2); - this.decay = (this.options.decay || 1); - - this.updater = {}; - this.container = container; - this.url = url; - - this.start(); - }, - - start: function() { - this.options.onComplete = this.updateComplete.bind(this); - this.onTimerEvent(); - }, - - stop: function() { - this.updater.onComplete = undefined; - clearTimeout(this.timer); - (this.onComplete || Prototype.emptyFunction).apply(this, arguments); - }, - - updateComplete: function(request) { - if (this.options.decay) { - this.decay = (request.responseText == this.lastText ? - this.decay * this.options.decay : 1); - - this.lastText = request.responseText; - } - this.timer = setTimeout(this.onTimerEvent.bind(this), - this.decay * this.frequency * 1000); - }, - - onTimerEvent: function() { - this.updater = new Ajax.Updater(this.container, this.url, this.options); - } -}); -document.getElementsByClassName = function(className, parentElement) { - var children = ($(parentElement) || document.body).getElementsByTagName('*'); - return $A(children).inject([], function(elements, child) { - if (child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)"))) - elements.push(child); - return elements; - }); -} - -/*--------------------------------------------------------------------------*/ - -if (!window.Element) { - var Element = new Object(); -} - -Object.extend(Element, { - visible: function(element) { - return $(element).style.display != 'none'; - }, - - toggle: function() { - for (var i = 0; i < arguments.length; i++) { - var element = $(arguments[i]); - Element[Element.visible(element) ? 'hide' : 'show'](element); - } - }, - - hide: function() { - for (var i = 0; i < arguments.length; i++) { - var element = $(arguments[i]); - element.style.display = 'none'; - } - }, - - show: function() { - for (var i = 0; i < arguments.length; i++) { - var element = $(arguments[i]); - element.style.display = ''; - } - }, - - remove: function(element) { - element = $(element); - element.parentNode.removeChild(element); - }, - - update: function(element, html) { - $(element).innerHTML = html.stripScripts(); - setTimeout(function() {html.evalScripts()}, 10); - }, - - getHeight: function(element) { - element = $(element); - return element.offsetHeight; - }, - - classNames: function(element) { - return new Element.ClassNames(element); - }, - - hasClassName: function(element, className) { - if (!(element = $(element))) return; - return Element.classNames(element).include(className); - }, - - addClassName: function(element, className) { - if (!(element = $(element))) return; - return Element.classNames(element).add(className); - }, - - removeClassName: function(element, className) { - if (!(element = $(element))) return; - return Element.classNames(element).remove(className); - }, - - // removes whitespace-only text node children - cleanWhitespace: function(element) { - element = $(element); - for (var i = 0; i < element.childNodes.length; i++) { - var node = element.childNodes[i]; - if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) - Element.remove(node); - } - }, - - empty: function(element) { - return $(element).innerHTML.match(/^\s*$/); - }, - - scrollTo: function(element) { - element = $(element); - var x = element.x ? element.x : element.offsetLeft, - y = element.y ? element.y : element.offsetTop; - window.scrollTo(x, y); - }, - - getStyle: function(element, style) { - element = $(element); - var value = element.style[style.camelize()]; - if (!value) { - if (document.defaultView && document.defaultView.getComputedStyle) { - var css = document.defaultView.getComputedStyle(element, null); - value = css ? css.getPropertyValue(style) : null; - } else if (element.currentStyle) { - value = element.currentStyle[style.camelize()]; - } - } - - if (window.opera && ['left', 'top', 'right', 'bottom'].include(style)) - if (Element.getStyle(element, 'position') == 'static') value = 'auto'; - - return value == 'auto' ? null : value; - }, - - setStyle: function(element, style) { - element = $(element); - for (name in style) - element.style[name.camelize()] = style[name]; - }, - - getDimensions: function(element) { - element = $(element); - if (Element.getStyle(element, 'display') != 'none') - return {width: element.offsetWidth, height: element.offsetHeight}; - - // All *Width and *Height properties give 0 on elements with display none, - // so enable the element temporarily - var els = element.style; - var originalVisibility = els.visibility; - var originalPosition = els.position; - els.visibility = 'hidden'; - els.position = 'absolute'; - els.display = ''; - var originalWidth = element.clientWidth; - var originalHeight = element.clientHeight; - els.display = 'none'; - els.position = originalPosition; - els.visibility = originalVisibility; - return {width: originalWidth, height: originalHeight}; - }, - - makePositioned: function(element) { - element = $(element); - var pos = Element.getStyle(element, 'position'); - if (pos == 'static' || !pos) { - element._madePositioned = true; - element.style.position = 'relative'; - // Opera returns the offset relative to the positioning context, when an - // element is position relative but top and left have not been defined - if (window.opera) { - element.style.top = 0; - element.style.left = 0; - } - } - }, - - undoPositioned: function(element) { - element = $(element); - if (element._madePositioned) { - element._madePositioned = undefined; - element.style.position = - element.style.top = - element.style.left = - element.style.bottom = - element.style.right = ''; - } - }, - - makeClipping: function(element) { - element = $(element); - if (element._overflow) return; - element._overflow = element.style.overflow; - if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden') - element.style.overflow = 'hidden'; - }, - - undoClipping: function(element) { - element = $(element); - if (element._overflow) return; - element.style.overflow = element._overflow; - element._overflow = undefined; - } -}); - -var Toggle = new Object(); -Toggle.display = Element.toggle; - -/*--------------------------------------------------------------------------*/ - -Abstract.Insertion = function(adjacency) { - this.adjacency = adjacency; -} - -Abstract.Insertion.prototype = { - initialize: function(element, content) { - this.element = $(element); - this.content = content.stripScripts(); - - if (this.adjacency && this.element.insertAdjacentHTML) { - try { - this.element.insertAdjacentHTML(this.adjacency, this.content); - } catch (e) { - if (this.element.tagName.toLowerCase() == 'tbody') { - this.insertContent(this.contentFromAnonymousTable()); - } else { - throw e; - } - } - } else { - this.range = this.element.ownerDocument.createRange(); - if (this.initializeRange) this.initializeRange(); - this.insertContent([this.range.createContextualFragment(this.content)]); - } - - setTimeout(function() {content.evalScripts()}, 10); - }, - - contentFromAnonymousTable: function() { - var div = document.createElement('div'); - div.innerHTML = '<table><tbody>' + this.content + '</tbody></table>'; - return $A(div.childNodes[0].childNodes[0].childNodes); - } -} - -var Insertion = new Object(); - -Insertion.Before = Class.create(); -Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), { - initializeRange: function() { - this.range.setStartBefore(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.parentNode.insertBefore(fragment, this.element); - }).bind(this)); - } -}); - -Insertion.Top = Class.create(); -Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), { - initializeRange: function() { - this.range.selectNodeContents(this.element); - this.range.collapse(true); - }, - - insertContent: function(fragments) { - fragments.reverse(false).each((function(fragment) { - this.element.insertBefore(fragment, this.element.firstChild); - }).bind(this)); - } -}); - -Insertion.Bottom = Class.create(); -Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), { - initializeRange: function() { - this.range.selectNodeContents(this.element); - this.range.collapse(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.appendChild(fragment); - }).bind(this)); - } -}); - -Insertion.After = Class.create(); -Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), { - initializeRange: function() { - this.range.setStartAfter(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.parentNode.insertBefore(fragment, - this.element.nextSibling); - }).bind(this)); - } -}); - -/*--------------------------------------------------------------------------*/ - -Element.ClassNames = Class.create(); -Element.ClassNames.prototype = { - initialize: function(element) { - this.element = $(element); - }, - - _each: function(iterator) { - this.element.className.split(/\s+/).select(function(name) { - return name.length > 0; - })._each(iterator); - }, - - set: function(className) { - this.element.className = className; - }, - - add: function(classNameToAdd) { - if (this.include(classNameToAdd)) return; - this.set(this.toArray().concat(classNameToAdd).join(' ')); - }, - - remove: function(classNameToRemove) { - if (!this.include(classNameToRemove)) return; - this.set(this.select(function(className) { - return className != classNameToRemove; - }).join(' ')); - }, - - toString: function() { - return this.toArray().join(' '); - } -} - -Object.extend(Element.ClassNames.prototype, Enumerable); -var Field = { - clear: function() { - for (var i = 0; i < arguments.length; i++) - $(arguments[i]).value = ''; - }, - - focus: function(element) { - $(element).focus(); - }, - - present: function() { - for (var i = 0; i < arguments.length; i++) - if ($(arguments[i]).value == '') return false; - return true; - }, - - select: function(element) { - $(element).select(); - }, - - activate: function(element) { - element = $(element); - element.focus(); - if (element.select) - element.select(); - } -} - -/*--------------------------------------------------------------------------*/ - -var Form = { - serialize: function(form) { - var elements = Form.getElements($(form)); - var queryComponents = new Array(); - - for (var i = 0; i < elements.length; i++) { - var queryComponent = Form.Element.serialize(elements[i]); - if (queryComponent) - queryComponents.push(queryComponent); - } - - return queryComponents.join('&'); - }, - - getElements: function(form) { - form = $(form); - var elements = new Array(); - - for (tagName in Form.Element.Serializers) { - var tagElements = form.getElementsByTagName(tagName); - for (var j = 0; j < tagElements.length; j++) - elements.push(tagElements[j]); - } - return elements; - }, - - getInputs: function(form, typeName, name) { - form = $(form); - var inputs = form.getElementsByTagName('input'); - - if (!typeName && !name) - return inputs; - - var matchingInputs = new Array(); - for (var i = 0; i < inputs.length; i++) { - var input = inputs[i]; - if ((typeName && input.type != typeName) || - (name && input.name != name)) - continue; - matchingInputs.push(input); - } - - return matchingInputs; - }, - - disable: function(form) { - var elements = Form.getElements(form); - for (var i = 0; i < elements.length; i++) { - var element = elements[i]; - element.blur(); - element.disabled = 'true'; - } - }, - - enable: function(form) { - var elements = Form.getElements(form); - for (var i = 0; i < elements.length; i++) { - var element = elements[i]; - element.disabled = ''; - } - }, - - findFirstElement: function(form) { - return Form.getElements(form).find(function(element) { - return element.type != 'hidden' && !element.disabled && - ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); - }); - }, - - focusFirstElement: function(form) { - Field.activate(Form.findFirstElement(form)); - }, - - reset: function(form) { - $(form).reset(); - } -} - -Form.Element = { - serialize: function(element) { - element = $(element); - var method = element.tagName.toLowerCase(); - var parameter = Form.Element.Serializers[method](element); - - if (parameter) { - var key = encodeURIComponent(parameter[0]); - if (key.length == 0) return; - - if (parameter[1].constructor != Array) - parameter[1] = [parameter[1]]; - - return parameter[1].map(function(value) { - return key + '=' + encodeURIComponent(value); - }).join('&'); - } - }, - - getValue: function(element) { - element = $(element); - var method = element.tagName.toLowerCase(); - var parameter = Form.Element.Serializers[method](element); - - if (parameter) - return parameter[1]; - } -} - -Form.Element.Serializers = { - input: function(element) { - switch (element.type.toLowerCase()) { - case 'submit': - case 'hidden': - case 'password': - case 'text': - return Form.Element.Serializers.textarea(element); - case 'checkbox': - case 'radio': - return Form.Element.Serializers.inputSelector(element); - } - return false; - }, - - inputSelector: function(element) { - if (element.checked) - return [element.name, element.value]; - }, - - textarea: function(element) { - return [element.name, element.value]; - }, - - select: function(element) { - return Form.Element.Serializers[element.type == 'select-one' ? - 'selectOne' : 'selectMany'](element); - }, - - selectOne: function(element) { - var value = '', opt, index = element.selectedIndex; - if (index >= 0) { - opt = element.options[index]; - value = opt.value; - if (!value && !('value' in opt)) - value = opt.text; - } - return [element.name, value]; - }, - - selectMany: function(element) { - var value = new Array(); - for (var i = 0; i < element.length; i++) { - var opt = element.options[i]; - if (opt.selected) { - var optValue = opt.value; - if (!optValue && !('value' in opt)) - optValue = opt.text; - value.push(optValue); - } - } - return [element.name, value]; - } -} - -/*--------------------------------------------------------------------------*/ - -var $F = Form.Element.getValue; - -/*--------------------------------------------------------------------------*/ - -Abstract.TimedObserver = function() {} -Abstract.TimedObserver.prototype = { - initialize: function(element, frequency, callback) { - this.frequency = frequency; - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - this.registerCallback(); - }, - - registerCallback: function() { - setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - onTimerEvent: function() { - var value = this.getValue(); - if (this.lastValue != value) { - this.callback(this.element, value); - this.lastValue = value; - } - } -} - -Form.Element.Observer = Class.create(); -Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.Observer = Class.create(); -Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { - getValue: function() { - return Form.serialize(this.element); - } -}); - -/*--------------------------------------------------------------------------*/ - -Abstract.EventObserver = function() {} -Abstract.EventObserver.prototype = { - initialize: function(element, callback) { - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - if (this.element.tagName.toLowerCase() == 'form') - this.registerFormCallbacks(); - else - this.registerCallback(this.element); - }, - - onElementEvent: function() { - var value = this.getValue(); - if (this.lastValue != value) { - this.callback(this.element, value); - this.lastValue = value; - } - }, - - registerFormCallbacks: function() { - var elements = Form.getElements(this.element); - for (var i = 0; i < elements.length; i++) - this.registerCallback(elements[i]); - }, - - registerCallback: function(element) { - if (element.type) { - switch (element.type.toLowerCase()) { - case 'checkbox': - case 'radio': - Event.observe(element, 'click', this.onElementEvent.bind(this)); - break; - case 'password': - case 'text': - case 'textarea': - case 'select-one': - case 'select-multiple': - Event.observe(element, 'change', this.onElementEvent.bind(this)); - break; - } - } - } -} - -Form.Element.EventObserver = Class.create(); -Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.EventObserver = Class.create(); -Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { - getValue: function() { - return Form.serialize(this.element); - } -}); -if (!window.Event) { - var Event = new Object(); -} - -Object.extend(Event, { - KEY_BACKSPACE: 8, - KEY_TAB: 9, - KEY_RETURN: 13, - KEY_ESC: 27, - KEY_LEFT: 37, - KEY_UP: 38, - KEY_RIGHT: 39, - KEY_DOWN: 40, - KEY_DELETE: 46, - - element: function(event) { - return event.target || event.srcElement; - }, - - isLeftClick: function(event) { - return (((event.which) && (event.which == 1)) || - ((event.button) && (event.button == 1))); - }, - - pointerX: function(event) { - return event.pageX || (event.clientX + - (document.documentElement.scrollLeft || document.body.scrollLeft)); - }, - - pointerY: function(event) { - return event.pageY || (event.clientY + - (document.documentElement.scrollTop || document.body.scrollTop)); - }, - - stop: function(event) { - if (event.preventDefault) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.returnValue = false; - event.cancelBubble = true; - } - }, - - // find the first node with the given tagName, starting from the - // node the event was triggered on; traverses the DOM upwards - findElement: function(event, tagName) { - var element = Event.element(event); - while (element.parentNode && (!element.tagName || - (element.tagName.toUpperCase() != tagName.toUpperCase()))) - element = element.parentNode; - return element; - }, - - observers: false, - - _observeAndCache: function(element, name, observer, useCapture) { - if (!this.observers) this.observers = []; - if (element.addEventListener) { - this.observers.push([element, name, observer, useCapture]); - element.addEventListener(name, observer, useCapture); - } else if (element.attachEvent) { - this.observers.push([element, name, observer, useCapture]); - element.attachEvent('on' + name, observer); - } - }, - - unloadCache: function() { - if (!Event.observers) return; - for (var i = 0; i < Event.observers.length; i++) { - Event.stopObserving.apply(this, Event.observers[i]); - Event.observers[i][0] = null; - } - Event.observers = false; - }, - - observe: function(element, name, observer, useCapture) { - var element = $(element); - useCapture = useCapture || false; - - if (name == 'keypress' && - (navigator.appVersion.match(/Konqueror|Safari|KHTML/) - || element.attachEvent)) - name = 'keydown'; - - this._observeAndCache(element, name, observer, useCapture); - }, - - stopObserving: function(element, name, observer, useCapture) { - var element = $(element); - useCapture = useCapture || false; - - if (name == 'keypress' && - (navigator.appVersion.match(/Konqueror|Safari|KHTML/) - || element.detachEvent)) - name = 'keydown'; - - if (element.removeEventListener) { - element.removeEventListener(name, observer, useCapture); - } else if (element.detachEvent) { - element.detachEvent('on' + name, observer); - } - } -}); - -/* prevent memory leaks in IE */ -Event.observe(window, 'unload', Event.unloadCache, false); -var Position = { - // set to true if needed, warning: firefox performance problems - // NOT neeeded for page scrolling, only if draggable contained in - // scrollable elements - includeScrollOffsets: false, - - // must be called before calling withinIncludingScrolloffset, every time the - // page is scrolled - prepare: function() { - this.deltaX = window.pageXOffset - || document.documentElement.scrollLeft - || document.body.scrollLeft - || 0; - this.deltaY = window.pageYOffset - || document.documentElement.scrollTop - || document.body.scrollTop - || 0; - }, - - realOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.scrollTop || 0; - valueL += element.scrollLeft || 0; - element = element.parentNode; - } while (element); - return [valueL, valueT]; - }, - - cumulativeOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - } while (element); - return [valueL, valueT]; - }, - - positionedOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - if (element) { - p = Element.getStyle(element, 'position'); - if (p == 'relative' || p == 'absolute') break; - } - } while (element); - return [valueL, valueT]; - }, - - offsetParent: function(element) { - if (element.offsetParent) return element.offsetParent; - if (element == document.body) return element; - - while ((element = element.parentNode) && element != document.body) - if (Element.getStyle(element, 'position') != 'static') - return element; - - return document.body; - }, - - // caches x/y coordinate pair to use with overlap - within: function(element, x, y) { - if (this.includeScrollOffsets) - return this.withinIncludingScrolloffsets(element, x, y); - this.xcomp = x; - this.ycomp = y; - this.offset = this.cumulativeOffset(element); - - return (y >= this.offset[1] && - y < this.offset[1] + element.offsetHeight && - x >= this.offset[0] && - x < this.offset[0] + element.offsetWidth); - }, - - withinIncludingScrolloffsets: function(element, x, y) { - var offsetcache = this.realOffset(element); - - this.xcomp = x + offsetcache[0] - this.deltaX; - this.ycomp = y + offsetcache[1] - this.deltaY; - this.offset = this.cumulativeOffset(element); - - return (this.ycomp >= this.offset[1] && - this.ycomp < this.offset[1] + element.offsetHeight && - this.xcomp >= this.offset[0] && - this.xcomp < this.offset[0] + element.offsetWidth); - }, - - // within must be called directly before - overlap: function(mode, element) { - if (!mode) return 0; - if (mode == 'vertical') - return ((this.offset[1] + element.offsetHeight) - this.ycomp) / - element.offsetHeight; - if (mode == 'horizontal') - return ((this.offset[0] + element.offsetWidth) - this.xcomp) / - element.offsetWidth; - }, - - clone: function(source, target) { - source = $(source); - target = $(target); - target.style.position = 'absolute'; - var offsets = this.cumulativeOffset(source); - target.style.top = offsets[1] + 'px'; - target.style.left = offsets[0] + 'px'; - target.style.width = source.offsetWidth + 'px'; - target.style.height = source.offsetHeight + 'px'; - }, - - page: function(forElement) { - var valueT = 0, valueL = 0; - - var element = forElement; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - - // Safari fix - if (element.offsetParent==document.body) - if (Element.getStyle(element,'position')=='absolute') break; - - } while (element = element.offsetParent); - - element = forElement; - do { - valueT -= element.scrollTop || 0; - valueL -= element.scrollLeft || 0; - } while (element = element.parentNode); - - return [valueL, valueT]; - }, - - clone: function(source, target) { - var options = Object.extend({ - setLeft: true, - setTop: true, - setWidth: true, - setHeight: true, - offsetTop: 0, - offsetLeft: 0 - }, arguments[2] || {}) - - // find page position of source - source = $(source); - var p = Position.page(source); - - // find coordinate system to use - target = $(target); - var delta = [0, 0]; - var parent = null; - // delta [0,0] will do fine with position: fixed elements, - // position:absolute needs offsetParent deltas - if (Element.getStyle(target,'position') == 'absolute') { - parent = Position.offsetParent(target); - delta = Position.page(parent); - } - - // correct by body offsets (fixes Safari) - if (parent == document.body) { - delta[0] -= document.body.offsetLeft; - delta[1] -= document.body.offsetTop; - } - - // set position - if(options.setLeft) target.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; - if(options.setTop) target.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; - if(options.setWidth) target.style.width = source.offsetWidth + 'px'; - if(options.setHeight) target.style.height = source.offsetHeight + 'px'; - }, - - absolutize: function(element) { - element = $(element); - if (element.style.position == 'absolute') return; - Position.prepare(); - - var offsets = Position.positionedOffset(element); - var top = offsets[1]; - var left = offsets[0]; - var width = element.clientWidth; - var height = element.clientHeight; - - element._originalLeft = left - parseFloat(element.style.left || 0); - element._originalTop = top - parseFloat(element.style.top || 0); - element._originalWidth = element.style.width; - element._originalHeight = element.style.height; - - element.style.position = 'absolute'; - element.style.top = top + 'px';; - element.style.left = left + 'px';; - element.style.width = width + 'px';; - element.style.height = height + 'px';; - }, - - relativize: function(element) { - element = $(element); - if (element.style.position == 'relative') return; - Position.prepare(); - - element.style.position = 'relative'; - var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); - var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); - - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.height = element._originalHeight; - element.style.width = element._originalWidth; - } -} - -// Safari returns margins on body which is incorrect if the child is absolutely -// positioned. For performance reasons, redefine Position.cumulativeOffset for -// KHTML/WebKit only. -if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) { - Position.cumulativeOffset = function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - if (element.offsetParent == document.body) - if (Element.getStyle(element, 'position') == 'absolute') break; - - element = element.offsetParent; - } while (element); - - return [valueL, valueT]; - } -}
\ No newline at end of file diff --git a/dogtag/tps-ui/shared/docroot/esc/sow/js/scriptaculous.js b/dogtag/tps-ui/shared/docroot/esc/sow/js/scriptaculous.js deleted file mode 100755 index dac1228fb..000000000 --- a/dogtag/tps-ui/shared/docroot/esc/sow/js/scriptaculous.js +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -var Scriptaculous = { - Version: '1.5.1', - require: function(libraryName) { - // inserting via DOM fails in Safari 2.0, so brute force approach - document.write('<script type="text/javascript" src="'+libraryName+'"></script>'); - }, - load: function() { - if((typeof Prototype=='undefined') || - parseFloat(Prototype.Version.split(".")[0] + "." + - Prototype.Version.split(".")[1]) < 1.4) - throw("script.aculo.us requires the Prototype JavaScript framework >= 1.4.0"); - - $A(document.getElementsByTagName("script")).findAll( function(s) { - return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/)) - }).each( function(s) { - var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,''); - var includes = s.src.match(/\?.*load=([a-z,]*)/); - (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider').split(',').each( - function(include) { Scriptaculous.require(path+include+'.js') }); - }); - } -} - -Scriptaculous.load();
\ No newline at end of file diff --git a/dogtag/tps-ui/shared/docroot/esc/sow/util.js b/dogtag/tps-ui/shared/docroot/esc/sow/util.js deleted file mode 100755 index 967e6e5ed..000000000 --- a/dogtag/tps-ui/shared/docroot/esc/sow/util.js +++ /dev/null @@ -1,1769 +0,0 @@ -// --- BEGIN COPYRIGHT BLOCK --- -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this program; if not, write to the Free Software Foundation, Inc., -// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Copyright (C) 2007 Red Hat, Inc. -// All rights reserved. -// --- END COPYRIGHT BLOCK --- - -// -// initialize netkey globals -var netkey; - - -var keyUITable = new Array(); -var keyTypeTable = new Array(); -var curChildWindow = null; - -var gWindow = null; - -const ErrorText = "For additional assistance contact your Technical Support"; - - -function getUIForKey(aKeyID) -{ - return keyUITable[aKeyID]; - -} - -function getTypeForKey(aKeyID) -{ - return keyTypeTable[aKeyID]; -} - - -// -// Notify callback for GECKO -// -function jsNotify() {} - -jsNotify.prototype = { - - rhNotifyKeyStateChange: function(aKeyType,aKeyID,aKeyState,aData,strData) - { - OnCOOLKeyStateChange(aKeyType, aKeyID, aKeyState, aData,strData); - }, - - QueryInterface: function(iid) - { - <!-- alert("iid: " + iid); --> - if(!iid.equals(Components.interfaces.rhIKeyNotify) && - !iid.equals(Components.interfaces.nsISupports)) - { - MyAlert("Can't find jsNotify interface"); - throw Components.results.NS_ERROR_NO_INTERFACE; - } - return this; - } -}; - -// -// Attach to the object. -// - // GECKO ONLY initialization - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - netkey = Components.classes["@redhat.com/rhCoolKey"].getService(); - netkey = netkey.QueryInterface(Components.interfaces.rhICoolKey); - gNotify = new jsNotify; - netkey.rhCoolKeySetNotifyCallback(gNotify); - } catch(e) { - MyAlert("Can't get UniversalXPConnect: " + e); - } - -// -// unregister our notify event -// -function cleanup() -{ - - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - netkey.rhCoolKeyUnSetNotifyCallback(gNotify); - } catch(e) { - MyAlert("Can't get UniversalXPConnect: " + e); - } -} - -var gScreenName = ""; -var gKeyEnrollmentType = "userKey"; - -var gCurrentSelectedRow = null; - - -var gCurKeyType = null; -var gCurKeyID = null; - -//////////////////////////////////////////////////////////////// -// -// Utility functions specific to this page. -// -//////////////////////////////////////////////////////////////// - - -// List of Error Messages to be printed out - -var Status_Messages = new Array( - - "Operation Completed Successfully.", - "Smartcard Server error.", - "Problem communicating with the smartcard.", - "Problem communicating with the smartcard.", - "Problem resetting smartcard's pin.", - "Internal Smartcard Server error.", - "Internal Smartcard Server error.", - "Smartcard enrollment error.", - "Can not communicate with the smartcard.", - "Internal Smartcard Server error.", - "Problem communicating with the Certificattion Authority.", - "Internal Smartcard Server error.", - "Error resetting the smartcard's password.", - "Internal Smartcard Server error.", - "Smartcard Server authentication failure.", - "Internal Smartcard Server error.", - "Your Smartcard is listed as disabled.", - "Problem communicating with the smartcard.", - "Internal Smartcard Server error.", - "Cannot upgrade smartcard software.", - "Internal Smartcard Server error.", - "Problem communicating with the smartcard.", - "Invalid smartcard type.", - "Invalid smartcard type.", - "Cannot publish smartcard information.", - "Cannot communicate with smartcard database.", - "Smartcard is disabled.", - "Cannot reset password value for the smartcard.", - "Connection to Smartcard Server lost.", - "Cannot create entry for smartcard in smartcard database.", - "Smartcard found to be in an inconsistent state.", - "Invalid reason for lost smartcard submitted.", - "Smartcard found to be unusable due to compromise.", - "No such inactive smartcard found.", - "Cannot process more than one active smartcard.", - "Internal Smartcard Server error.", - "Smartcard key recovery has been processed.", - "Smartcard key recovery failed.", - "Cannot process this smartcard, which has been reported lost.", - "Smartcard key archival error.", - "Problem connecting to the Smartcard TKS Server.", - "Failed to update smartcard database.", - "Internal certificate revocation error discovered.", - "User does not own this smartcard.", - "Smart Card Manager has been misconfigured.", - "Smart Card Manager can not talk to smart card reader.", - "Smart Card Manager can not establish a session with the smart card.", - "Smart Card Manager can not talk to Smart Card Server.", - "Smart Card Manager can not talk to smart card reader." - ); - -function GetAuthDataFromPopUp(aKeyType,aKeyID,aUiData) -{ - - keyUITable[aKeyID] = aUiData; - keyTypeTable[aKeyID] = aKeyType; - - //alert("GetAuthDataFromPopUp data " + aUiData); - var child = window.open("/GenericAuth.html",aKeyID,"height=400,width=400"); - - //alert("Attempted to create child window " + child); - - curChildWindow = child; - -} - -function COOLKeySetDataValue(aKeyType,aKeyID,name,value) -{ - //alert("In COOLKeySetDataValue aKeyType " + aKeyType + " aKeyID " + aKeyID + " name " + name + " value " + value); - if(netkey) - { - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - netkey.SetCoolKeyDataValue(aKeyType,aKeyID,name,value); - - - } catch(e) { - MyAlert("Error Setting data values: " + e); - } - } - -} - -function COOLKeySetTokenPin(pin) -{ - if(netkey) - { - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - netkey.SetCoolKeyDataValue(gCurKeyType,gCurKeyID,"TokenPin",pin); - - - } catch(e) { - MyAlert("Error Setting data values: " + e); - } - } -} - -function COOLKeySetUidPassword(uid,pwd) -{ - - if(netkey) - { - - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - netkey.SetCoolKeyDataValue(gCurKeyType,gCurKeyID,"UserId",uid); - - netkey.SetCoolKeyDataValue(gCurKeyType,gCurKeyID,"Password",pwd); - - } catch(e) { - MyAlert("Error Setting data values: " + e); - } - - } - -} - - -function MyGetErrorMessage(status_code) -{ - - var result = "Internal Server Error"; - - if(status_code < 0 && status_code >= Status_Messages.length) - { - return result; - - } - - return Status_Messages[status_code]; - -} - -function KeyToRowID(keyType, keyID) -{ - return keyType + "--" + keyID; -} - -function RowIDToKeyInfo(rowID) -{ - return rowID.split("--"); -} - -function GetRowForKey(keyType, keyID) -{ - return document.getElementById(KeyToRowID(keyType, keyID)); -} - -function ReportException(msg, e) -{ - MyAlert(msg + " " + e.description + "(" + e.number + ")"); -} - -function GetCOOLKeyStatus(keyType, keyID) -{ - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - return netkey.GetCoolKeyStatus(keyType, keyID); - } catch (e) { - ReportException("netkey.GetCOOLKeyStatus() failed!", e); - return 0; - } -} - -function GetCOOLKeyPolicy(keyType, keyID) -{ - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - return netkey.GetCoolKeyPolicy(keyType, keyID); - } catch (e) { - // ReportException("netkey.GetCOOLKeyPolicy() failed!", e); - return ""; - } -} - -function GetCOOLKeyRequiresAuth(keyType, keyID) -{ - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - return netkey.GetCoolKeyRequiresAuthentication(keyType, keyID); - } catch(e) { - ReportException("netkey.GetCoolKeyRequiresAuthentication() failed!", e); - return false; - } -} - -function GetCOOLKeyIsAuthed(keyType, keyID) -{ - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - return netkey.GetCoolKeyIsAuthenticated(keyType, keyID); - } catch(e) { - ReportException("netkey.GetCoolKeyIsAuthenticated() failed!", e); - return false; - } -} - -function GetAvailableCOOLKeys() -{ - try { - var keyArr; - - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - var inArray = netkey.GetAvailableCoolKeys( {} ); - keyArr = new Array(inArray.length); - var i; - - for (i=0; i < keyArr.length; i++) { - keyArr[i] = new Array( "1", inArray[i]); - } - return keyArr; - } catch(e) { - ReportException("netkey.GetAvailableCoolKeys() failed!", e); - return []; - } -} - -function EnrollCOOLKey(keyType, keyID, enrollmentType, screenname, pin,screennamepwd,tokencode) -{ - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - netkey.EnrollCoolKey(keyType, keyID, enrollmentType, screenname, pin,screennamepwd,tokencode); - } catch(e) { - ReportException("netkey.EnrollCoolKey() failed!", e); - return false; - } - - return true; -} - -function GetCOOLKeyIsEnrolled(keyType, keyID) -{ - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - return netkey.GetCoolKeyIsEnrolled(keyType, keyID); - } catch(e) { - ReportException("netkey.GetCoolKeyIsEnrolled() failed!", e); - return false; - } -} - -function CancelCOOLKeyOperation(keyType, keyID) -{ - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - netkey.CancelCoolKeyOperation(keyType, keyID); - } catch(e) { - ReportException("netkey.CancelCoolKeyOperation() failed!", e); - return false; - } - return true; -} - -function MyAlert(message) -{ - if(message) - DoMyAlert(message,"Smart Card Manager"); - -} -function DoMyAlert(message,title) -{ - - if(!message || !title) - return; - - try { - - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService); - - - prompts.alert(window,title,message); - - } catch(e) { - - - alert("Problem with nsIPromptService " + e); - } - -} - -// -// MSHTML/GECKO compatibility functions. -// -function RemoveRow(table, row) -{ - table.deleteRow(row.rowIndex); -} - -function GetCell(row, index) -{ - var cell; - - cell = row.cells[index]; - return cell; -} - -function GetNode(parent, index) -{ - var node; - node = parent.childNodes[index]; - return node; -} - -function InsertRow(table) -{ - var row; - - row = table.insertRow(table.rows.length); - return row; -} - -function InsertCell(row) -{ - var cell; - - cell = row.insertCell(row.cells.length); - return cell; -} - -function RemoveAllChildNodes(parent) -{ - var numChildren = parent.childNodes.length; - var i; - - i = numChildren; - while (numChildren) - { - parent.removeChild(GetNode(parent,0)); - numChildren--; - } - -} - - -function UpdateInfoForKeyID(keyType, keyID, keyStatus, reqAuth, isAuthed) -{ - var row = GetRowForKey(keyType, keyID); - - if (!row) - return; - - var cell = GetCell(row,1) - RemoveAllChildNodes(cell); - cell.appendChild(document.createTextNode(keyStatus)); - -// cell = GetCell(row,2); - // RemoveAllChildNodes(cell); - // cell.appendChild(document.createTextNode(reqAuth)); - - // cell = GetCell(row,3); - // RemoveAllChildNodes(cell); - // cell.appendChild(document.createTextNode(isAuthed)); -} - -function GetStatusForKeyID(keyType, keyID) -{ - var keyStatus = "BLANK"; - - var status; - - try { - status = GetCOOLKeyStatus(keyType, keyID); - } catch(e) { - status = 0; - } - - switch (status) { - case 0: // Unavailable - keyStatus = "UNAVAILABLE"; - break; - case 1: // AppletNotFound - keyStatus = "NO APPLET"; - break; - case 2: // Uninitialized - keyStatus = "UNINITIALIZED"; - break; - case 3: // Unknown - keyStatus = "UNKNOWN"; - break; - case 4: // Available - case 6: // UnblockInProgress - case 7: // PINResetInProgress - case 8: // RenewInProgress - keyStatus = PolicyToKeyType(GetCOOLKeyPolicy(keyType, keyID)); - break; - case 5: // EnrollmentInProgress - keyStatus = "BUSY"; - break; - break; - case 9: // FormatInProgress - keyStatus = "BUSY"; - break; - } - - return keyStatus; -} - -function InsertCOOLKeyIntoBindingTable(keyType, keyID) -{ - var row = GetRowForKey(keyType, keyID); - - gWindow = window; - if (!row) - { - var table = document.getElementById("BindingTable"); - if (table) - { - var keyStatus = GetStatusForKeyID(keyType, keyID); - var keyReqAuth = BoolToYesNoStr(GetCOOLKeyRequiresAuth(keyType, keyID)); - var keyIsAuthed = BoolToYesNoStr(GetCOOLKeyIsAuthed(keyType, keyID)); - - row = CreateTableRow(table, keyType, keyID, keyStatus, keyReqAuth, keyIsAuthed); - } - - if (!row) - return null; - } - - return row; -} - -function ConvertVariantArrayToJScriptArray(varr) -{ - // C++ native methods, like netkey.GetAvailableCOOLKeys(), can only - // return variant SafeArrays, so to access the data inside, you must - // first convert it to a VBArray, and then call toArray() to convert - // it to a JScript array. Lame, but that's what it takes to - // use an array returned from an ActiveX component. - - return new VBArray(varr).toArray(); -} - -function UpdateBindingTableAvailability() -{ - var arr = GetAvailableCOOLKeys(); - - if (!arr || arr.length < 1) - return; - - var i; - - for (i=0; i < arr.length; i++) - { - InsertCOOLKeyIntoBindingTable(arr[i][0], arr[i][1]); - - if (!gCurrentSelectedRow) - SelectRowByKeyID(arr[i][0], arr[i][1]); - } -} - -function InitializeBindingTable() -{ - UpdateBindingTableAvailability(); - UpdateButtonStates(); - if (UserOnDoneInitializeBindingTable) { - UserOnDoneInitializeBindingTable(); - } -} - -function KeyIsPresent(keyType, keyID) -{ - row = document.all.item(keyType, keyID); - - if (!row) - return false; - - return true; -} - -function SetStatusMessage(str) -{ - var cell = document.getElementById("statusMsg"); - - if (!cell) - return; - RemoveAllChildNodes(cell); - cell.appendChild(document.createTextNode(str)); -} - -function UpdateButtonStates() -{ - if (gCurrentSelectedRow) - { - var keyInfo = RowIDToKeyInfo(gCurrentSelectedRow.getAttribute("id")); - var keyType = keyInfo[0]; - var keyID = keyInfo[1]; - var keyStatus = GetStatusForKeyID(keyType, keyID); - - document.getElementById("enrollbtn").disabled = false; - } - else - { - document.getElementById("enrollbtn").disabled = true; - } - - refresh(); -} - -function GetCurrentKeyID() -{ - if (gCurrentSelectedRow) - { - var keyInfo = RowIDToKeyInfo(gCurrentSelectedRow.getAttribute("id")); - var keyType = keyInfo[0]; - var keyID = keyInfo[1]; - return keyID; - } else { - return "No Key Found!"; - } -} - -function SetEnrollmentType(type) -{ - gKeyEnrollmentType = type; - UpdateButtonStates(); -} - -function FindRow(node) -{ - while (node && node.tagName != "TR") - { - node = node.parentNode; - } - - return node; -} - -function SelectRow(row) -{ - if (!row || gCurrentSelectedRow == row) - return; - - if (gCurrentSelectedRow) - gCurrentSelectedRow.removeAttribute("style"); - - gCurrentSelectedRow = row; - gCurrentSelectedRow.style.backgroundColor="rgb(200,200,200)"; - UpdateButtonStates(); -} - -function SelectRowByKeyID(keyType, keyID) -{ - var row = GetRowForKey(keyType, keyID); - SelectRow(row); -} - -function DoSelectRow(event) -{ - var row; - - row = FindRow(event.parentNode); - SelectRow(row); -} - -function KeyToUIString(keyType, keyID) -{ - // If it's an COOLKey, format the keyID string. - - if (keyType == 1 && keyID.length == 20) - { - var re = /([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{4})/i; - keyID = keyID.replace(re, "$1-$2-$3-$4-$5").toLowerCase(); - } - - return keyID; -} - - - -function CreateTableRow(table, keyType, keyID, keyStatus, reqAuth, isAuthed) -{ - var row = InsertRow(table); - if (!row) - return null; - - row.setAttribute("id", KeyToRowID(keyType, keyID)); - - row.onclick = DoSelectRow; - - // Create the key ID cell. - //cell = InsertCell(row); - //cell.appendChild(document.createTextNode(KeyToUIString(keyType, keyID))); - - //cell.setAttribute("onClick", "DoSelectRow(this);"); - - // Create the keyStatus cell. - //cell = InsertCell(row); - //cell.appendChild(document.createTextNode(keyStatus)); - - // Create the requires auth cell. - // cell = InsertCell(row); - // cell.appendChild(document.createTextNode(reqAuth)); - - cell = InsertCell(row); - cell.appendChild(document.createTextNode("Enrollment Progress")); - - // Create the status bar cell - - cell = InsertCell(row); - - var progressMeter = document.createElement("div"); - progressMeter.setAttribute("id", KeyToProgressBarID(keyType, keyID)); - progressMeter.className = "ProgressMeter"; - progressMeter.style.width = "100px"; - progressMeter.style.height = "1.5em"; -// progressMeter.style.visibility = "hidden"; - progressMeter.setAttribute("value", 0); - - var progressBar = document.createElement("div"); - progressBar.className = "ProgressBar"; - progressBar.style.width = "0px"; - progressBar.style.height = "100%"; -// progressBar.style.visibility = "hidden"; - - var progressBarStatus = document.createElement("div"); - progressBarStatus.className = "ProgressBarStatus"; - progressBarStatus.appendChild(document.createTextNode("")); - - progressMeter.appendChild(progressBar); - progressMeter.appendChild(progressBarStatus); - cell.appendChild(progressMeter); - - //row.style.display ="none"; - - return row; -} - -gAnimationMSecs = 1000/30; - -function SetCylonTimer(cylonID, cylonEyeID) -{ - setTimeout("AnimateCylonStatusBar(\"" + cylonID + - "\", \"" + cylonEyeID + "\");", gAnimationMSecs); -} - -function AnimateCylonStatusBar(cylonID, cylonEyeID) -{ - var cylon = document.getElementById(cylonID); - - if (!cylon) - return; - - var active = cylon.getAttribute("cylonactive"); - - if (!active) - return; - - var eye = document.getElementById(cylonEyeID); - - if (!eye) - return; - - var dir = eye.getAttribute("direction"); - var wid = parseInt(eye.style.width); - var cywid = parseInt(cylon.style.width); - var left = parseInt(eye.style.left); - - var dx = 10; - - if (!dir || dir >= 0) - { - left += dx; - - if (left + wid > cywid) - { - left = cywid - wid; - eye.setAttribute("direction", "-1"); - } - } - else - { - left -= dx; - - if (left < 0) - { - left = 0; - eye.setAttribute("direction", "1"); - } - } - - eye.style.left = left + "px"; - - SetCylonTimer(cylonID, cylonEyeID); -} - -function StartCylonAnimation(cylonID, cylonEyeID) -{ - var cylon = document.getElementById(cylonID) - - if (!cylon) - return; - - var active = cylon.getAttribute("cylonactive"); - - if (!active) - { - cylon.setAttribute("cylonactive", "true"); - - var eye = document.getElementById(cylonEyeID); - if (eye) - { - eye.style.left = "0px"; - eye.style.visibility = "visible"; - } - - SetCylonTimer(cylonID, cylonEyeID); - } -} - -function StopCylonAnimation(cylonID, cylonEyeID) -{ - var cylon = document.getElementById(cylonID) - - if (cylon) - cylon.removeAttribute("cylonactive"); - - var eye = document.getElementById(cylonEyeID); - - if (eye) - eye.style.visibility = "hidden"; -} - -function GetProgressMeterValue(progMeterID) -{ - var progMeter = document.getElementById(progMeterID); - - if (!progMeter) - return -1; - - return parseInt(progMeter.getAttribute("value")); -} - -function SetProgressMeterValue(progMeterID, value) -{ - var progMeter = document.getElementById(progMeterID); - - if (!progMeter || value < 0) - return; - - if (value > 100) - value = 100; - - var progBar = progMeter.firstChild; - - if (value == 0) - { - progBar.style.width = "0px"; - progBar.style.visibility = "hidden"; - progMeter.setAttribute("value", 0); - return; - } - - progBar.style.visibility = "visible"; - - var newWidth = parseInt(progMeter.style.width) * value / 100 - 2; - - progBar.style.width = newWidth + "px"; - progMeter.setAttribute("value", value); -} - -function SetProgressMeterStatus(progMeterID, statusMsg) -{ - var progMeter = document.getElementById(progMeterID); - - if (!progMeter) - return; - - var progBar = progMeter.firstChild; - - // If it exists, the meter status should be - // div that is the next sibling of the progressMeter. - - var meterStatus = progBar.nextSibling; - - // Just replace the data in the text node, it's much faster, - // and reduces flashing! - - meterStatus.firstChild.replaceData(0, meterStatus.firstChild.length, statusMsg); -} - -function ClearProgressBar(progMeterID) -{ - SetProgressMeterValue(progMeterID, 0); - SetProgressMeterStatus(progMeterID, ""); -} - -function KeyToProgressBarID(keyType, keyID) -{ - return "PM" + keyType + "-" + keyID; -} - -//////////////////////////////////////////////////////////////// -// -// Functions that contact the server or talk directly to -// ESC native code. -// -// ESC Native Functions: -// -// netkey.GetAvailableCOOLKeys() -// -// - Returns an ActiveX Variant SafeArray containing the ID for each key -// that is currentlly plugged into the computer. Before accessing any -// data in this array you must convert it to a JScript Array with a -// call to ConvertVariantArrayToJScriptArray(). -// -// netkey.GetCOOLKeyIsEnrolled(keyType, keyID) -// -// - Returns true if a key has been initialized, false if it hasn't. -// Initialized means the card has been formatted with certificates -// for either an COOL HouseKey or NetKey. -// -// netkey.EnrollCOOLKey(keyType, keyID, enrollmentType, screenName, pin) -// -// - Initiates an async connection to the RA to initialize a specific -// key. If you want the key to be initialized as a HouseKey, you should -// pass "houseKey" as the enrollmentType, and null values for both -// screenName and pin. For a NetKey, use "netKey" as the enrollmentType, -// and pass a valid screenName and pin. -// -// -//////////////////////////////////////////////////////////////// - -function GetScreenNameValue() -{ - var sname = document.getElementById("snametf").value; - - if (! sname) - { - MyAlert("You must provide a valid LDAP User ID!"); - if (UserOnCOOLKeyStateError) { - UserOnCOOLKeyStateError(); // call user-level - } - return null; - } - - return sname; -} - -function GetPINValue() -{ - var pinVal = document.getElementById("pintf").value; - var rpinVal = document.getElementById("reenterpintf").value; - - if (! pinVal) - { - MyAlert("You must provide a valid Key Password!"); - if (UserOnCOOLKeyStateError) { - UserOnCOOLKeyStateError(); // call user-level - } - return null; - } - - if ( pinVal != rpinVal) - { - MyAlert("The Key Password values you entered do not match!"); - if (UserOnCOOLKeyStateError) { - UserOnCOOLKeyStateError(); // call user-level - } - return null; - } - - return pinVal; -} - -function GetScreenNamePwd() -{ - - var pwd = document.getElementById("snamepwd").value; - - if(!pwd) - { - MyAlert("You must provide a valid LDAP User ID !"); - if (UserOnCOOLKeyStateError) { - UserOnCOOLKeyStateError(); // call user-level - } - return null; - } - return pwd; -} - -function GetTokenCode() -{ - - return null; -} -function DoEnrollTempCOOLKey() -{ - - if (!gCurrentSelectedRow) - { - MyAlert("Please select a key."); - return; - } - - if(!Validate()) - return; - - var keyInfo = RowIDToKeyInfo(gCurrentSelectedRow.getAttribute("id")); - var keyType = keyInfo[0]; - var keyID = keyInfo[1]; - - var type = gKeyEnrollmentType; - var screenname = null; - var pin = null; - - var screennamepwd = null; - var tokencode = null; - - screenname = GetScreenNameValue(); - - pin = GetPINValue(); - - - screennamepwd = GetScreenNamePwd(); - - tokencode = GetTokenCode(); - - //SetStatusMessage("Enrolling UserKey \"" + KeyToUIString(keyType, keyID) + "\"..."); - - StartCylonAnimation("cylon1", "eye1"); - - var doShow = true; - - ShowProgressBar(keyType,keyID,doShow ); - - if (!EnrollCOOLKey(keyType, keyID, 'userKeyTemporary', screenname, pin,screennamepwd,tokencode)) - { - SetStatusMessage(""); - StopCylonAnimation("cylon1", "eye1"); - var doShow = false; - ShowProgressBar(aKeyType,aKeyID,doShow ); - } -} -function DoEnrollCOOLKey() -{ - - if (!gCurrentSelectedRow) - { - MyAlert("Please select a key."); - return; - } - - if(!Validate()) - return; - - var keyInfo = RowIDToKeyInfo(gCurrentSelectedRow.getAttribute("id")); - var keyType = keyInfo[0]; - var keyID = keyInfo[1]; - - var type = gKeyEnrollmentType; - var screenname = null; - var pin = null; - - var screennamepwd = null; - var tokencode = null; - - if (type == "userKey") - { - screenname = GetScreenNameValue(); - - pin = GetPINValue(); - - - screennamepwd = GetScreenNamePwd(); - - tokencode = GetTokenCode(); - - //SetStatusMessage("Enrolling UserKey \"" + KeyToUIString(keyType, keyID) + "\"..."); - } - - StartCylonAnimation("cylon1", "eye1"); - - var doShow = true; - - ShowProgressBar(keyType,keyID,doShow ); - - if (!EnrollCOOLKey(keyType, keyID, type, screenname, pin,screennamepwd,tokencode)) - { - SetStatusMessage(""); - StopCylonAnimation("cylon1", "eye1"); - var doShow = false; - ShowProgressBar(aKeyType,aKeyID,doShow ); - } -} - -function DoResetSelectedCOOLKeyPIN() -{ - if (!gCurrentSelectedRow) - return; - - if(!Validate()) - return; - - //alert("In DoResetSelectedCOOLKeyPIN!"); - var keyInfo = RowIDToKeyInfo(gCurrentSelectedRow.getAttribute("id")); - var keyType = keyInfo[0]; - var keyID = keyInfo[1]; - - var screenname = null; - var pin = null; - var screennamepwd = null; - - if (GetCOOLKeyIsEnrolled(keyType, keyID)) - { - - SetStatusMessage("Resetting PIN for \"" + keyID + "\"..."); - StartCylonAnimation("cylon1", "eye1"); - - if (!ResetCOOLKeyPIN(keyType, keyID, screenname, pin,screennamepwd)) - { - SetStatusMessage(""); - StopCylonAnimation("cylon1", "eye1"); - } - } -} - -function DoSetURLCOOLKey() -{ - if (!gCurrentSelectedRow) - return; - - if(!Validate1()) - return; - - var keyInfo = RowIDToKeyInfo(gCurrentSelectedRow.getAttribute("id")); - var keyType = keyInfo[0]; - var keyID = keyInfo[1]; - - var type = 'soUserKey'; - var screenname = null; - var pin = null; - - var screennamepwd = null; - var tokencode = null; - - SetStatusMessage("Formatting \"" + KeyToUIString(keyType, keyID) + "\" ..."); - StartCylonAnimation("cylon1", "eye1"); - - if (!FormatCoolKey(keyType, keyID, type, screenname, pin,screennamepwd,tokencode)) - { - SetStatusMessage(""); - StopCylonAnimation("cylon1", "eye1"); - } -} - -function DoFormatSoCOOLKey() -{ - if (!gCurrentSelectedRow) - return; - - if(!Validate1()) - return; - - var keyInfo = RowIDToKeyInfo(gCurrentSelectedRow.getAttribute("id")); - var keyType = keyInfo[0]; - var keyID = keyInfo[1]; - - var type = 'soCleanSOToken'; - var screenname = null; - var pin = null; - - var screennamepwd = null; - var tokencode = null; - - SetStatusMessage("Formatting \"" + KeyToUIString(keyType, keyID) + "\" ..."); - StartCylonAnimation("cylon1", "eye1"); - - if (!FormatCoolKey(keyType, keyID, type, screenname, pin,screennamepwd,tokencode)) - { - SetStatusMessage(""); - StopCylonAnimation("cylon1", "eye1"); - } -} - -function DoFormatCOOLKey() -{ - if (!gCurrentSelectedRow) - return; - - if(!Validate1()) - return; - - var keyInfo = RowIDToKeyInfo(gCurrentSelectedRow.getAttribute("id")); - var keyType = keyInfo[0]; - var keyID = keyInfo[1]; - - var type = 'soCleanUserToken'; - var screenname = null; - var pin = null; - - var screennamepwd = null; - var tokencode = null; - - SetStatusMessage("Formatting \"" + KeyToUIString(keyType, keyID) + "\" ..."); - StartCylonAnimation("cylon1", "eye1"); - - if (!FormatCoolKey(keyType, keyID, type, screenname, pin,screennamepwd,tokencode)) - { - SetStatusMessage(""); - StopCylonAnimation("cylon1", "eye1"); - } -} - -function FormatCoolKey(keyType, keyID, type, screenname, pin,screennamepwd,tokencode) -{ - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - netkey.FormatCoolKey(keyType, keyID, type, screenname, pin,screennamepwd,tokencode); - } catch(e) { - ReportException(getBundleString("errorFormatCoolKey"), e); - return false; - } - return true; -} - -function DoCancelOperation() -{ - - if (!gCurrentSelectedRow) - return; - - var keyInfo = RowIDToKeyInfo(gCurrentSelectedRow.getAttribute("id")); - var keyType = keyInfo[0]; - var keyID = keyInfo[1]; - - SetStatusMessage("Cancel operation for \"" + KeyToUIString(keyType, keyID) + "\" ..."); - StartCylonAnimation("cylon1", "eye1"); - - CancelCOOLKeyOperation(keyType, keyID); - - SetStatusMessage(""); - StopCylonAnimation("cylon1", "eye1"); -} - -function DoChallengeSelectedKey() -{ - if (!gCurrentSelectedRow) - return; - - var keyInfo = RowIDToKeyInfo(gCurrentSelectedRow.getAttribute("id")); - var keyType = keyInfo[0]; - var keyID = keyInfo[1]; - - if (!keyID) - return; - - SetStatusMessage("Generating Challenge ..."); - - var challengeArray = ChallengeCOOLKey(keyType, keyID, document.forms[0].challengedata.value); - - if (challengeArray.length != 4) - { - MyAlert("Challenge for key \"" + KeyToUIString(keyType, keyID) + "\" failed!"); - SetStatusMessage(""); - return; - } - - MyAlert("ChallengeCOOLKey(\""+ KeyToUIString(keyType, keyID) + "\") returned:\n\n" + - "challenge[0]: " + challengeArray[0] + "\n" + - "challenge[1]: " + challengeArray[1] + "\n" + - "challenge[2]: " + challengeArray[2] + "\n" + - "challenge[3]: " + challengeArray[3] + "\n"); - - SetStatusMessage(""); -} - -function DoBlinkCOOLKey() -{ - if (!gCurrentSelectedRow) - return; - - var keyInfo = RowIDToKeyInfo(gCurrentSelectedRow.getAttribute("id")); - var keyType = keyInfo[0]; - var keyID = keyInfo[1]; - - if (!keyID) - return; - - SetStatusMessage("Blinking \"" + KeyToUIString(keyType, keyID) + "\" ..."); - StartCylonAnimation("cylon1", "eye1"); - - BlinkCOOLKey(keyType, keyID, 400, 5000); - - StopCylonAnimation("cylon1", "eye1"); - SetStatusMessage(""); -} - -function OnCOOLKeyBlinkComplete(keyType,keyID) -{ - //StopCylonAnimation("cylon1", "eye1"); - //SetStatusMessage(" "); -} - -function DoHelp() -{ - if (!gCurrentSelectedRow) - return; - - var keyInfo = RowIDToKeyInfo(gCurrentSelectedRow.getAttribute("id")); - var keyType = keyInfo[0]; - var keyID = keyInfo[1]; - - if (!keyID) - return; - - var policy = GetCOOLKeyPolicy(keyType, keyID); - var type = PolicyToKeyType(policy); - MyAlert("Policy: " + policy + "\n" + "Type: " + type); -} - -//////////////////////////////////////////////////////////////// -// -// Functions called directly from ASC native code. -// -//////////////////////////////////////////////////////////////// - -function OnCOOLKeyInserted(keyType, keyID) -{ - var row = InsertCOOLKeyIntoBindingTable(keyType, keyID); - - if (!gCurrentSelectedRow) - SelectRowByKeyID(keyType, keyID); - if (UserOnCOOLKeyInserted) { - UserOnCOOLKeyInserted(keyType, keyID); - } -} - - -function OnCOOLKeyRemoved(keyType, keyID) -{ - var row = GetRowForKey(keyType, keyID); - var table = document.getElementById("BindingTable"); - - if (row && table) - { - RemoveRow(table,row); - - if (row == gCurrentSelectedRow) - gCurrentSelectedRow = null; - } - - UpdateButtonStates(); - if (UserOnCOOLKeyRemoved) { - UserOnCOOLKeyRemoved(keyType, keyID); - } -} - -var gKnownPolicies = [ - - // OID Value, precedence, name value - - [ "OID.1.3.6.1.4.1.1066.1.1000.1.0.1.1", 1, "HOUSEKEY" ], // Bronze - HouseKey - [ "OID.1.3.6.1.4.1.1066.1.1000.1.0.1.2", 2, "NETKEY" ], // Silver - Member - [ "OID.1.3.6.1.4.1.1066.1.1000.1.0.1.3", 3, "NETKEY" ], // Gold - Associate - [ "OID.1.3.6.1.4.1.1066.1.1000.1.0.1.4", 4, "NETKEY" ], // Platinum - MyDoctor - - // XXX: Remove the Old OIDs below, after the RA starts generating - // certificates with the OIDs listed above! - [ "OID.1.3.6.1.4.1.1066.1.1000.2.1", 1, "HOUSEKEY" ], // Bronze - HouseKey - [ "OID.1.3.6.1.4.1.1066.1.1000.2.2", 2, "NETKEY" ], // Silver - Member - [ "OID.1.3.6.1.4.1.1066.1.1000.2.3", 3, "NETKEY" ], // Gold - Associate - [ "OID.1.3.6.1.4.1.1066.1.1000.2.4", 4, "NETKEY" ] // Platinum - MyDoctor -]; - -function PolicyToKeyType(policy) -{ - return "ENROLLED"; -} - -function OldPolicyToKeyType(policy) -{ - var i, j; - - var knownPoliciesIndex = -1; - - - var policies; - - - if (policy.indexOf(",")== -1) - { - policies = new Array(1); - policies[0] = policy; - } - else - { - policies = policy.split(","); - } - - for (j = 0; j < policies.length; j++) - { - for (i = 0; i < gKnownPolicies.length; i++) - { - if (gKnownPolicies[i][0] == policies[j]) - { - if (knownPoliciesIndex < gKnownPolicies[i][1]) - knownPoliciesIndex = i; - } - } - } - - if (knownPoliciesIndex == -1) - return "INITIALIZED"; - - return gKnownPolicies[knownPoliciesIndex][2]; -} - -function BoolToYesNoStr(b) -{ - if (b) - return "YES"; - return "NO"; -} - -function OnCOOLKeyEnrollmentComplete(keyType, keyID) -{ - var keyStatus = PolicyToKeyType(GetCOOLKeyPolicy(keyType, keyID)); - var keyReqAuth = BoolToYesNoStr(GetCOOLKeyRequiresAuth(keyType, keyID)); - var keyIsAuthed = BoolToYesNoStr(GetCOOLKeyIsAuthed(keyType, keyID)); - - //UpdateInfoForKeyID(keyType, keyID, keyStatus, keyReqAuth, keyIsAuthed); - UpdateButtonStates(); - - StopCylonAnimation("cylon1", "eye1"); - var doShow = false; - ShowProgressBar(keyType,keyID, doShow); - SetStatusMessage(""); - MyAlert("Enrollment of smartcard complete!"); - ClearProgressBar(KeyToProgressBarID(keyType, keyID)); - - window.setTimeout("loadSuccessPage()",4); -} - -function OnCOOLKeyPINResetComplete(keyType, keyID) -{ - var keyStatus = PolicyToKeyType(GetCOOLKeyPolicy(keyType, keyID)); - var keyReqAuth = BoolToYesNoStr(GetCOOLKeyRequiresAuth(keyType, keyID)); - var keyIsAuthed = BoolToYesNoStr(GetCOOLKeyIsAuthed(keyType, keyID)); - - UpdateInfoForKeyID(keyType, keyID, keyStatus, keyReqAuth, keyIsAuthed); - UpdateButtonStates(); - - StopCylonAnimation("cylon1", "eye1"); - SetStatusMessage(""); - MyAlert("Password Reset was successful!"); - ClearProgressBar(KeyToProgressBarID(keyType, keyID)); -} - -function OnCOOLKeyFormatComplete(keyType, keyID) -{ - var keyStatus = GetStatusForKeyID(keyType, keyID); - var keyReqAuth = BoolToYesNoStr(GetCOOLKeyRequiresAuth(keyType, keyID)); - var keyIsAuthed = BoolToYesNoStr(GetCOOLKeyIsAuthed(keyType, keyID)); - - UpdateInfoForKeyID(keyType, keyID, keyStatus, keyReqAuth, keyIsAuthed); - - StopCylonAnimation("cylon1", "eye1"); - SetStatusMessage(""); - MyAlert("Format of \"" + KeyToUIString(keyType, keyID)+ "\" was successful!"); - ClearProgressBar(KeyToProgressBarID(keyType, keyID)); - if (UserOnCOOLKeyFormatComplete) { - UserOnCOOLKeyFormatComplete(); // call user-level - } -} - -function OnCOOLKeyStateError(keyType, keyID, keyState, errorCode) -{ - var keyStatus = GetStatusForKeyID(keyType, keyID); - var keyReqAuth = BoolToYesNoStr(GetCOOLKeyRequiresAuth(keyType, keyID)); - var keyIsAuthed = BoolToYesNoStr(GetCOOLKeyIsAuthed(keyType, keyID)); - - if(curChildWindow) - { - curChildWindow.close(); - curChildWindow = null; - - } - - var doShow = false; - ShowProgressBar(keyType,keyID, doShow); - - //UpdateInfoForKeyID(keyType, keyID, keyStatus, keyReqAuth, keyIsAuthed); - - StopCylonAnimation("cylon1", "eye1"); - SetStatusMessage(""); - - var typeStr = "Error(" + errorCode + ")"; - - var messageStr = " \n\n Error Response: " + MyGetErrorMessage(errorCode) ; - - var keyIDStr = KeyToUIString(keyType, keyID); - - if (keyState == 1004) - typeStr = "Enrollment of key failed. " + typeStr + messageStr ; - else if (keyState == 1016) - typeStr = "Formatting of key failed. " + typeStr + messageStr; - else if (keyState == 1010) - typeStr = "PIN Reset for key failed. " + typeStr + messageStr; - else if (keyState == 1020) - typeStr = "Operation for key canceled."; - - typeStr += " \n " + ErrorText; - MyAlert(typeStr); - ClearProgressBar(KeyToProgressBarID(keyType, keyID)); - if (UserOnCOOLKeyStateError) { - UserOnCOOLKeyStateError(); // call user-level - } -} - -function OnCOOLKeyStatusUpdate(progMeterID, statusUpdate) -{ - SetProgressMeterValue(progMeterID, statusUpdate); - SetProgressMeterStatus(progMeterID, statusUpdate + "%"); -} - -function Validate1() -{ - - var type = gKeyEnrollmentType; - var screenname = null; - var pin = null; - - var screennamepwd = null; - var tokencode = null; - - screenname = ''; - screennamepwd = 'netscape'; - pin = 'netscape' - - return 1; -} -function Validate() -{ - - var type = gKeyEnrollmentType; - var screenname = null; - var pin = null; - - var screennamepwd = null; - var tokencode = null; - - if (type == "userKey") - { - screenname = GetScreenNameValue(); - if (! screenname) - return 0; - - screennamepwd = GetScreenNamePwd(); - - if(! screennamepwd) - return 0; - - pin = GetPINValue(); - - if (! pin) - return 0; - - } - - return 1; -} - -function OnCOOLKeyStateChange(keyType, keyID, keyState, data,strData) -{ - // alert("KeyID: " + keyID + "\n" + - // "KeyState: " + keyState + "\n" + - // "Data: " + data); - //alert("State Change ="+keyState); - - switch(keyState) - { - case 1000: // KeyInserted - OnCOOLKeyInserted(keyType, keyID); - break; - case 1001: // KeyRemoved - OnCOOLKeyRemoved(keyType, keyID); - break; - case 1002: // EnrollmentStart - // OnCOOLKeyEnrollmentStart(keyType, keyID); - break; - case 1003: // EnrollmentComplete - OnCOOLKeyEnrollmentComplete(keyType, keyID); - break; - case 1004: // EnrollmentError - OnCOOLKeyStateError(keyType, keyID, keyState, data); - break; - case 1008: // PINResetStart - // OnCOOLKeyPINResetStart(keyType, keyID); - break; - case 1009: // PINResetComplete - OnCOOLKeyPINResetComplete(keyType, keyID); - break; - case 1010: // PINResetError - OnCOOLKeyStateError(keyType, keyID, keyState, data); - break; - case 1014: // FormatStart - // OnCOOLKeyFormatStart(keyType, keyID); - break; - case 1015: // FormatComplete - OnCOOLKeyFormatComplete(keyType, keyID); - break; - case 1016: // FormatError - OnCOOLKeyStateError(keyType, keyID, keyState, data); - break; - case 1017: // BlinkStatus Update? - //OnCOOLKeyStateError(keyType, keyID, keyState, data); - break; - case 1018: - OnCOOLKeyBlinkComplete(keyType, keyID); - break; - case 1020: // OperationCancelled - OnCOOLKeyStateError(keyType, keyID, keyState, data); - break; - case 1021: // OperationStatusUpdate - OnCOOLKeyStatusUpdate(KeyToProgressBarID(keyType, keyID), data); - if(UserOnCOOLKeyStatusUpdate) - UserOnCOOLKeyStatusUpdate(data); - break; - - case 1022: //Need Auth - - - gCurKeyID = keyID; - gCurKeyType = keyType; - - GetAuthDataFromPopUp(keyType,keyID,strData); - - break; - - } -} - -function refresh() -{ - window.resizeBy(0,1); - window.resizeBy(0,-1); - -} - -function loadSuccessPage() -{ - window.location="/esc/sow/EnrollSuccess.html"; -} - -function ShowProgressBar(aKeyType,aKeyID, doShow) -{ - if(!gCurrentSelectedRow) - return; - - if(doShow) - gCurrentSelectedRow.style.display="table-row"; - else - { - gCurrentSelectedRow.style.display="none"; - } -} -function DoCoolKeySetConfigValue(configValue,newValue) -{ - if(!configValue || !newValue) - return null; - - var result = null; - - if(netkey) - { - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - result = netkey.SetCoolKeyConfigValue(configValue,newValue); - - } catch(e) { - MyAlert(getBundleString("errorConfigValue") + " " + e); - } - - } - - return result; -} - -//Is the user "uid" an "agent" or "user" -// Input "type" either "agent" or "user" - -function IsAgentOrUser(uid,type) -{ - var url = window.location.href; - var lastSlash = 0; - - var result = false; - - if(!uid || !type) - return false; - - var isAgent = 0; - - if(type == "agent") - isAgent = 1; - - //Accept either uid=name or name - - if(uid.lastIndexOf("uid=") < 0) - { - uid = "uid=" + uid; - } - - if(url) - { - lastSlash = url.lastIndexOf("/"); - } - if(lastSlash > 0) - { - url = url.substring(0,lastSlash); - } - - if(isAgent) - url = url + "/is_agent.cgi?" + uid; - else - url = url + "/is_user.cgi?" + uid; - - var req = new XMLHttpRequest(); - req.open('GET',url,false); - req.send(null); - if(req.status == 200) - { - //alert(req.responseText); - if(req.responseText.lastIndexOf("yes") >= 0) - { - result = true; - } - } - return result; -} - -function GetCoolKeyIssuedTo(keyType,keyID) -{ - var keyStatus = GetStatusForKeyID(keyType,keyID); - - var issuedTo = null; - - try { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - issuedTo = netkey.GetCoolKeyUID(keyType,keyID); - - } catch (e) - { - } - return issuedTo; -} - |