var AbstractBrowserToolbox = function (){AbstractBrowserToolbox.AGENT_MZ = 1;AbstractBrowserToolbox.AGENT_OP = 2;AbstractBrowserToolbox.AGENT_IE = 3;AbstractBrowserToolbox.AGENT_SF = 4;AbstractBrowserToolbox.AGENT_FF = 5;AbstractBrowserToolbox.AGENT_NS = 6;AbstractBrowserToolbox.AGENT_UNKNOWN = 0;AbstractBrowserToolbox.CLASS_CSS2 = 1;AbstractBrowserToolbox.CLASS_UNKNOWN = 0;AbstractBrowserToolbox.SYSTEM_WIN = 1;AbstractBrowserToolbox.SYSTEM_MAC = 2;AbstractBrowserToolbox.SYSTEM_UNKNOWN = 0;this.agent = null;this.version = null;this.system = null;if(document.layers || navigator.appVersion.match(/MSIE 4/gi)){this.agent = AbstractBrowserToolbox.AGENT_UNKNOWN;this.version = -1;}else if(navigator.userAgent.match(/netscape/gi)){this.agent = AbstractBrowserToolbox.AGENT_NS;try{var agt = navigator.userAgent;this.version = navigator.userAgent.substring(agt.indexOf("Netscape/") + 9, agt.length);}catch(e){this.version = -1;}}else if(navigator.userAgent.match(/firefox/gi)){this.agent = AbstractBrowserToolbox.AGENT_FF;try{var agt = navigator.userAgent;this.version = navigator.userAgent.substring(agt.indexOf("Firefox/") + 8, agt.length);}catch(e){this.version = -1;}}else if(navigator.userAgent.match(/safari/gi)){this.agent = AbstractBrowserToolbox.AGENT_SF;this.version = -1;}else if(navigator.userAgent.match(/gecko/gi)){this.agent = AbstractBrowserToolbox.AGENT_MZ;try{var agt = navigator.userAgent;var token = agt.match(/rv:.*\)/);this.version = token[0].substring(3, token[0].length - 1);}catch(e){this.version = -1;}}else if(navigator.userAgent.match(/opera/gi)){this.agent = AbstractBrowserToolbox.AGENT_OP;try{var agt = navigator.userAgent;var token = agt.match(/Opera [0-9\.]*/gi);this.version = token[0].substring(6, token[0].length);}catch(e){this.version = -1;}}else if(navigator.userAgent.match(/msie/gi)){this.agent = AbstractBrowserToolbox.AGENT_IE;try{var agt = navigator.userAgent;var token = agt.match(/MSIE [0-9\.]*;/gi);this.version = token[0].substring(5, token[0].length -1);}catch(e){this.version = -1;}}else{this.agent = AbstractBrowserToolbox.AGENT_UNKNOWN;this.version = -1;}if(navigator.platform.match(/win/gi)){this.system = AbstractBrowserToolbox.SYSTEM_WIN;}else if(navigator.platform.match(/mac/gi)){this.system = AbstractBrowserToolbox.SYSTEM_MAC;}else{this.system = AbstractBrowserToolbox.SYSTEM_UNKNOWN;}};var toolboxBrowser = new AbstractBrowserToolbox();var PopupDatePicker ={dateFieldId :null,
initPopupDatePicker :function(type, node){if(type == "single"){var popupFileName = "popup_date_picker_single.html";var popupSize = "237,200";}else if(type == "double"){var popupFileName = "popup_date_picker_double.html";var popupSize = "441,200";}var popupName = "datePickerPopup";Page.openPopup(popupFileName, popupName, popupSize);this.setDateFieldId(node);},
setDateFieldId :function(node){node = node.previousSibling;for(var i = 0; node.className != "dateField" && i < 5;i++){node = node.previousSibling;}this.dateFieldId = node.id;},
writeToDateField :function(date, openWindow){if(this.dateFieldId){var dateField = document.getElementById(this.dateFieldId);dateField.value = date;openWindow.close();}}};var DatePicker = function(rootNodeId, customDateFormatter, displayLanguage, pastDatesDisabled, holidaysDisabled, specialDays){DatePicker.css ={DISABLED:"disable",
ENABLED:"enable",
TODAY:"today",
SPARE:"spare",
SHOW_SPARE:"show-spare",
SPECIAL_DAY:"special-day"
};DatePicker.dateFormatter = function(year, month, day){if(month < 10){month = "0" + month;}if(day < 10){day = "0" + day;}return year + "-" + month + "-" + day;};DatePicker.openInstance = null;this.id = rootNodeId;try{if(!document.getElementById(rootNodeId)){throw new Error("Date Picker:\""+rootNodeId+"\" is not a valid root node ID. The argument given to the createInstance() function must be equal to the ID of the elements root node.");}else{this.rootNode = document.getElementById(rootNodeId);}}catch(e){throw e;};this.customDateFormatter = customDateFormatter || null;var date = new Date();this.year = date.getFullYear();this.month = date.getMonth() + 1;this.day = date.getDate();this.displayMonth = this.month;this.displayYear = this.year;this.displayLanguage = displayLanguage || "en";this.pastDatesDisabled = pastDatesDisabled || null;this.holidaysDisabled = holidaysDisabled || null;this.specialDays = specialDays || null;this.linkPrevMonth = null;this.linkNextMonth = null;this.header = null;this.calendarPanel = null;this.toggleDisplay = null;this.inputField = null;this.iframe = null;this.displayStatus = "init";this.gridTable = null;this.MONTH_NAMES = new Object();this.MONTH_NAMES.en ={"1":"January", "2":"February", "3":"March", "4":"April", "5":"May", "6":"June", "7":"July", "8":"August", "9":"September", "10":"October", "11":"November", "12":"December"};this.MONTH_NAMES.de ={"1":"Januar", "2":"Februar", "3":"M\u00E4rz", "4":"April", "5":"Mai", "6":"Juni", "7":"Juli", "8":"August", "9":"September", "10":"Oktober", "11":"November", "12":"Dezember"};this.MONTH_NAMES.fr ={"1":"Janvier", "2":"F\u00E9vrier", "3":"Mars", "4":"Avril", "5":"Mai", "6":"Juin", "7":"Juillet", "8":"Ao\u00FBt", "9":"Septembre", "10":"Octobre", "11":"Novembre", "12":"D\u00E9cembre"};this.MONTH_NAMES.it ={"1":"Gennaio", "2":"Febbraio", "3":"Marzo", "4":"Aprile", "5":"Maggio", "6":"Giugno", "7":"Luglio", "8":"Agosto", "9":"Settembre", "10":"Ottobre", "11":"Novembre", "12":"Dicembre"};this.MONTH_NAMES.es ={"1":"Enero", "2":"Febrero", "3":"Marzo", "4":"Abril", "5":"Mayo", "6":"Junio", "7":"Julio", "8":"Agosto", "9":"Septiembre", "10":"Octubre", "11":"Noviembre", "12":"Diciembre"};this.DAY_NAMES = new Object();this.DAY_NAMES.en = new Array("Mo", "Tu", "We", "Th", "Fr", "Sa", "Su");this.DAY_NAMES.de = new Array("Mo", "Di", "Mi", "Do", "Fr", "Sa", "So");this.DAY_NAMES.fr = new Array("Lu", "Ma", "Me", "Je", "Ve", "Sa", "Di");this.DAY_NAMES.it = new Array("Lu", "Ma", "Me", "Gi", "Ve", "Sa", "Do");this.DAY_NAMES.es = new Array("Lu", "Ma", "Mi", "Ju", "Vi", "Sa", "Do");this.BUTTON_NAMES = new Object();this.BUTTON_NAMES.en = new Array("Close", "Today");this.BUTTON_NAMES.de = new Array("Schliessen", "Heute");this.BUTTON_NAMES.fr = new Array("Schliessen", "Heute");this.BUTTON_NAMES.it = new Array("Schliessen", "Heute");this.BUTTON_NAMES.es = new Array("Schliessen", "Heute");this.getNodes = function(){var nodes = this.rootNode.getElementsByTagName("a");for(var i = 0; i < nodes.length;i++){this.toggleDisplay = (nodes[i].className == "calendarIconLink") ? nodes[i] :null;}var inputs = this.rootNode.getElementsByTagName("input");for(var i = 0; i < inputs.length;i++){this.inputField = (inputs[i].className == "dateField") ? inputs[i] :null;}};var EventDispatcher = function(e){var node = null;if(e.srcElement){node = e.srcElement;}else if(e.target){node = e.target;}while(node && !node.callback){node = node.parentNode;}node.callback[e.type](e);};var addEvt = function(node,listener,evtType){if(node.addEventListener){node.addEventListener(evtType,listener,false);}else if(node.attachEvent){node.attachEvent("on" + evtType,listener);}else{node["on" + evtType] = listener;}};this.createCalendarPanel = function(){this.calendarPanel = document.createElement("div");var calendarPanelBody = document.createElement("div");this.linkPrevMonth = document.createElement("a");this.linkNextMonth = document.createElement("a");this.linkPrevMonth.innerHTML = "<img src=../../test1/framework/js//"/framework/img/date_picker_arrow_prev.gif/" alt=\"Arrow pointing left - previous month\" />";this.linkNextMonth.innerHTML = "<img src=../../test1/framework/js//"/framework/img/date_picker_arrow_next.gif/" alt=\"Arrow pointing right - next month\" />";this.header = document.createElement("h3");var table = this.createTable();this.gridTable = table;var closeButton = document.createElement("input");var todayButton = document.createElement("input");this.calendarPanel.className = "calendarPanel";calendarPanelBody.className = "calendarPanelBody clearfix";with(this.linkPrevMonth){className = "previousMonth";title = "Previous month";}with(this.linkNextMonth){className = "nextMonth";title = "Next month";}with(closeButton){type = "button";name = "closeButton";value = this.BUTTON_NAMES[this.displayLanguage][0];}with(todayButton){type = "button";name = "todayButton";value = this.BUTTON_NAMES[this.displayLanguage][1];}calendarPanelBody.appendChild(table);calendarPanelBody.appendChild(closeButton);calendarPanelBody.appendChild(todayButton);this.calendarPanel.appendChild(this.linkPrevMonth);this.calendarPanel.appendChild(this.linkNextMonth);this.calendarPanel.appendChild(this.header);this.calendarPanel.appendChild(calendarPanelBody);return this.calendarPanel;};this.createTable = function(){var cols = 7;var rows = 6;var table = document.createElement("table");table.callback = table;table.datePicker = this;table.click = function(e){var dp = this.datePicker;var src = (e.srcElement) ? e.srcElement :e.target;if(src.nodeName.toLowerCase() == "a"){if(src.className.indexOf("disable") < 0){dp.drawDate(src.innerHTML);dp.closeCalendarPanel();}this.blur();}};addEvt(table, EventDispatcher, "click");var colgroup = document.createElement("colgroup");var outerCol = "<col style=\"width:2.666667em;\" />";var innerCol = "<col style=\"width:2.083333em;\" />";var innerColgroup = "";for(var i = 0; i < cols; i++){innerColgroup += (i == 0 || i == 6) ? outerCol :innerCol;}colgroup.innerHTML = innerColgroup;var thead = document.createElement("thead");var headTr = document.createElement("tr");thead.appendChild(headTr);for(var i = 0; i < cols; i++){var th = document.createElement("th");if(i == 0){th.innerHTML = this.DAY_NAMES[this.displayLanguage][i];}else if(i == 6){th.innerHTML = this.DAY_NAMES[this.displayLanguage][i];}else{th.innerHTML = this.DAY_NAMES[this.displayLanguage][i];}headTr.appendChild(th);}var tbody = document.createElement("tbody");for(var r = 0; r < rows; r++){var bodyTr = document.createElement("tr");tbody.appendChild(bodyTr);for(var c = 0; c < cols; c++){var bodyTd = document.createElement("td");var linkNode = document.createElement("a");if (c == 0){bodyTd.className = "firstCol";}if (c == 6){bodyTd.className = "lastCol";}bodyTd.appendChild(linkNode);bodyTr.appendChild(bodyTd);}}table.appendChild(thead);table.appendChild(tbody);return table;};this.getNodes();this.rootNode.appendChild(this.createCalendarPanel());this.grid = this.rootNode.getElementsByTagName("td");var trs = this.rootNode.getElementsByTagName("tr");this.spareRow = trs[trs.length - 1];this.inputField = null;var daysInMonth = function(month, year){var calcFeb = function(){var days = 0;if(year % 4 == 0){if(year % 100 == 0){if(year % 400 == 0){days = 29;}else{days = 28;}}else{days = 29;}}else{days = 28;}return days;};var months ={"1":31, "2":calcFeb, "3":31, "4":30, "5":31, "6":30, "7":31, "8":31, "9":30, "10":31, "11":30, "12":31};if(typeof months[month] == "function"){return months[month]();}return months[month];};this.isSpecialDay = function(year, month, day){var ret = false;if(this.specialDays && this.specialDays[year] && this.specialDays[year][month] && this.specialDays[year][month][day]){ret = true;}return ret;};this.clearGrid = function(){for(var i = 0; i < this.grid.length;i++){var gridNode = this.grid[i];var linkNode = gridNode.getElementsByTagName("a")[0];while(linkNode.hasChildNodes()){linkNode.removeChild(linkNode.firstChild);}linkNode.className = "";}};this.populateGrid = function(year, month){this.header.innerHTML = this.MONTH_NAMES[displayLanguage][this.displayMonth] + " " + this.displayYear;var date = new Date(year, month-1);var numberOfDays = daysInMonth(month, year);var firstDay = (date.getDay() == 0) ? 6 :date.getDay()-1;var day = 1;this.clearGrid();for(var i = 0; i < this.grid.length; i++){var gridNode = 	this.grid[i];var linkNode = gridNode.getElementsByTagName("a")[0];if(i < firstDay || i > (firstDay + numberOfDays)-1){linkNode.className = DatePicker.css.DISABLED;}else{var thisDay = DatePicker.dateFormatter(year, month, day);var today = DatePicker.dateFormatter(this.year, this.month, this.day);var d = new Date(year, month-1, day);if(thisDay == today){linkNode.className = (linkNode.className == "") ? DatePicker.css.TODAY :linkNode.className + " " + DatePicker.css.TODAY;}if((d.getDay() == 0 || d.getDay() == 6) && this.holidaysDisabled){linkNode.className = (linkNode.className == "") ? DatePicker.css.DISABLED :linkNode.className + " " + DatePicker.css.DISABLED;}else if(this.isSpecialDay(year, month, day) && this.holidaysDisabled){linkNode.className = (linkNode.className == "") ? DatePicker.css.DISABLED :linkNode.className + " " + DatePicker.css.DISABLED;}else if(thisDay < today && this.pastDatesDisabled){linkNode.className = (linkNode.className == "") ? DatePicker.css.DISABLED :linkNode.className + " " + DatePicker.css.DISABLED;}else{linkNode.className = (linkNode.className == "") ? linkNode.className + DatePicker.css.ENABLED :linkNode.className ;}if (this.isSpecialDay(year, month, day)){linkNode.className = (linkNode.className == "") ? DatePicker.css.SPECIAL_DAY :linkNode.className + " " + DatePicker.css.SPECIAL_DAY;linkNode.title = this.specialDays[year][month][day];}linkNode.appendChild(document.createTextNode(day+""));linkNode.href = "javascript:void(0)";day++;}}};this.readDate = function(){try{var parts = this.inputField.value.split("-");var date = new Date(parts[0], parts[1] - 1, parts[2]);if(date.getFullYear() == parts[0] && (date.getMonth() + 1) == parts[1] && date.getDate() == parts[2]){this.displayYear = date.getFullYear();this.displayMonth = date.getMonth() + 1;}else throw "";}catch(x){var date = new Date();this.displayYear = date.getFullYear();this.displayMonth = date.getMonth() + 1;}};this.drawDate = function(day){var str = "";if(this.customDateFormatter){str = this.customDateFormatter(this.displayYear, this.displayMonth, day);}else{str = DatePicker.dateFormatter(this.displayYear, this.displayMonth, day);}this.inputField.value = str;};this.previousMonth = function(){var dp = this.datePicker;if(dp.displayMonth == 1){dp.displayYear--;dp.displayMonth = 12;}else{dp.displayMonth--;}var str = dp.MONTH_NAMES[dp.displayLanguage][dp.displayMonth] + " " + dp.displayYear;dp.header.innerHTML = str;dp.populateGrid(dp.displayYear, dp.displayMonth);this.blur();};this.nextMonth = function(){var dp = this.datePicker;if(dp.displayMonth == 12){dp.displayYear++;dp.displayMonth = 1;}else{dp.displayMonth++;}var str = dp.MONTH_NAMES[dp.displayLanguage][dp.displayMonth] + " " + dp.displayYear;dp.header.innerHTML = str;dp.populateGrid(dp.displayYear, dp.displayMonth);this.blur();};this.closeCalendarPanel = function(){var dp = this;dp.calendarPanel.style.display = "none";if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_IE && toolboxBrowser.version >= 5.5){dp.iframe.style.display = "none";}dp.displayMonth = dp.month;dp.displayYear = dp.year;dp.displayStatus = "hidden";};this.openCalendarPanel = function(){var dp = this;if(DatePicker.openInstance && DatePicker.openInstance != dp){DatePicker.openInstance.closeCalendarPanel();}DatePicker.openInstance = dp;this.readDate();if(dp.displayStatus == "init"){var coords = getCalImgCoords(this.toggleDisplay);switch(toolboxBrowser.agent){case AbstractBrowserToolbox.AGENT_IE:
if(toolboxBrowser.version < 5.5){dp.calendarPanel.style.left = (coords[0]+2)/12 + "em";dp.calendarPanel.style.top = (coords[1]+25)/12 + "em";}else{dp.calendarPanel.style.left = (coords[0])/12 + "em";dp.calendarPanel.style.top = (coords[1]+21)/12 + "em";}break;case AbstractBrowserToolbox.AGENT_OP:
if(toolboxBrowser.version >= 8.5){dp.calendarPanel.style.left = (coords[0]+2)/12 + "em";dp.calendarPanel.style.top = (coords[1]+21)/12 + "em";}else{dp.calendarPanel.style.left = (coords[0])/12 + "em";dp.calendarPanel.style.top = (coords[1]+21)/12 + "em";}break;default:
var leftColWidth = window.getComputedStyle(document.getElementById("leftCol"), null)["width"];leftColWidth = leftColWidth.substring(0,leftColWidth.length - 2);dp.calendarPanel.style.marginLeft = (coords[0] - leftColWidth - 10)/12 + "em";dp.calendarPanel.style.top = (coords[1]+17)/12 + "em";}if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_IE && toolboxBrowser.version >= 5.5){var iframe = "<iframe scrolling=\"no\" frameborder=\"0\" src=\"javascript:false;\" style=\"display:block; position:absolute; width:15.916667em; height:15.33334em;\"></iframe>";dp.calendarPanel.insertAdjacentHTML('afterEnd', iframe);dp.iframe = ifrm = this.rootNode.getElementsByTagName("iframe")[0];dp.iframe.style.left = (coords[0])/12 + "em";dp.iframe.style.top = (coords[1]+21)/12 + "em";}}dp.populateGrid(dp.displayYear, dp.displayMonth);dp.displayStatus = "show";dp.calendarPanel.style.display = "block";if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_IE && toolboxBrowser.version >= 5.5){dp.iframe.style.display = "block";}};var getCalImgCoords = function(src){var posx = 0;var posy = 0;while(src.offsetParent && src.id != "content"){if(!isNaN(src.offsetLeft) && !isNaN(src.offsetTop)){posx += src.offsetLeft;posy += src.offsetTop;}src = src.offsetParent;}return new Array(posx,posy);};this.linkPrevMonth.callback = this.linkPrevMonth;this.linkPrevMonth.datePicker = this;this.linkPrevMonth.click = this.previousMonth;this.linkPrevMonth.href = "javascript:void(0)";addEvt(this.linkPrevMonth, EventDispatcher, "click");if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_IE && toolboxBrowser.version >= 5.5){this.linkPrevMonth.dblclick = this.previousMonth;addEvt(this.linkPrevMonth, EventDispatcher, "dblclick");}this.linkNextMonth.callback = this.linkNextMonth;this.linkNextMonth.datePicker = this;this.linkNextMonth.click = this.nextMonth;this.linkNextMonth.href = "javascript:void(0)";addEvt(this.linkNextMonth, EventDispatcher, "click");if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_IE && toolboxBrowser.version >= 5.5){this.linkNextMonth.dblclick = this.nextMonth;addEvt(this.linkNextMonth, EventDispatcher, "dblclick");}this.toggleDisplay.callback = this.toggleDisplay;this.toggleDisplay.datePicker = this;this.toggleDisplay.click = function(){var dp = this.datePicker;if(dp.displayStatus == "show"){dp.closeCalendarPanel();this.blur();}else{dp.openCalendarPanel();this.blur();}};addEvt(this.toggleDisplay, EventDispatcher, "click");var inputs = this.rootNode.getElementsByTagName("input");for(var i = 0; i < inputs.length; i++){input = inputs[i];switch(input.name){case "closeButton":
input.callback = input;input.datePicker = this;input.click = function(){this.datePicker.toggleDisplay.click();};addEvt(input, EventDispatcher, "click");break;case "todayButton":
input.callback = input;input.datePicker = this;input.click = function(){var dp = this.datePicker;dp.displayMonth = dp.month;dp.displayYear = dp.year;dp.drawDate(dp.day);dp.toggleDisplay.click();};addEvt(input, EventDispatcher, "click");break;default:
this.inputField = input;}}};DatePicker.createInstance = function(rootNodeId, customDateFormatter, displayLanguage, pastDatesDisabled, holidaysDisabled, specialDays){new DatePicker(rootNodeId, customDateFormatter, displayLanguage, pastDatesDisabled, holidaysDisabled, specialDays);};var ShifterBox = function(rootNodeId){ShifterBox.css ={NORMAL:"standard",
CLICK:"selection",
MOUSE_OVER:"highlight"
};this.id = rootNodeId;try{if(!document.getElementById(rootNodeId)){throw new Error("ShifterBox:\""+rootNodeId+"\" is not a valid root node ID. The argument given to the createInstance() function must be equal to the ID of the elements root node.");}else{this.rootNode = document.getElementById(rootNodeId);}}catch(e){throw e;}this.chooseBox = this.rootNode.getElementsByTagName("tbody")[0];this.submitBox = this.rootNode.getElementsByTagName("tbody")[1];this.chooseBoxSelectAll = this.chooseBox.parentNode.parentNode.parentNode.getElementsByTagName("input")[0];this.submitBoxSelectAll = this.submitBox.parentNode.parentNode.parentNode.getElementsByTagName("input")[0];var th = this.rootNode.getElementsByTagName("thead")[0];while(this.submitBox.hasChildNodes()){th.appendChild(this.submitBox.firstChild);}this.addHolder = new Object();this.removeHolder = new Object();this.add = function(){for(var option in this.addHolder){this.addHolder[option].className = ShifterBox.css.NORMAL;this.submitBox.insertBefore(this.addHolder[option], this.submitBox.firstChild);this.addHolder[option].checkBox.checked = true;this.addHolder[option].statusMove = false;delete this.addHolder[option];}this.chooseBoxSelectAll.value = (this.chooseBoxSelectAll.value == "Deselect all") ? "Select all" :this.chooseBoxSelectAll.value;};this.remove = function(){var options = this.chooseBox.getElementsByTagName("tr");for(var option in this.removeHolder){this.removeHolder[option].className = ShifterBox.css.NORMAL;this.removeHolder[option].checkBox.checked = false;subsequentElement = this.getSubsequentElement(this.removeHolder[option].oid,options);this.chooseBox.insertBefore(this.removeHolder[option], subsequentElement);if(!navigator.userAgent.match(/opera/gi)){this.removeHolder[option].checkBox.checked = false;}this.removeHolder[option].statusMove = false;delete this.removeHolder[option];}this.chooseBoxSelectAll.value = (this.chooseBoxSelectAll.value == "Deselect all") ? "Select all" :this.chooseBoxSelectAll.value;};this.addAll = function(){var options = this.chooseBox.getElementsByTagName("tr");for(var option in this.addHolder){this.addHolder[option].statusMove = false;delete this.addHolder[option];}for(var i = options.length - 1; i >= 0; i--){var option = options[i];option.className = ShifterBox.css.NORMAL;var addedOption = this.submitBox.insertBefore(option, this.submitBox.firstChild);addedOption.checkBox.checked = true;}this.chooseBoxSelectAll.value = (this.chooseBoxSelectAll.value == "Deselect all") ? "Select all" :this.chooseBoxSelectAll.value;};this.removeAll = function(){var options = this.submitBox.getElementsByTagName("tr");var chooseBoxOptions = this.chooseBox.getElementsByTagName("tr");for(var option in this.removeHolder){this.removeHolder[option].statusMove = false;delete this.removeHolder[option];}for(var i = options.length - 1; i >= 0; i--){var option = options[i];option.className = ShifterBox.css.NORMAL;option.checkBox.checked = false;subsequentElement = this.getSubsequentElement(option.oid,chooseBoxOptions);this.chooseBox.insertBefore(option,subsequentElement);if(!navigator.userAgent.match(/opera/gi)){option.checkBox.checked = false;}}this.chooseBoxSelectAll.value = (this.chooseBoxSelectAll.value == "Deselect all") ? "Select all" :this.chooseBoxSelectAll.value;};this.selectAll = function(node){var box = node.parentNode.parentNode;var boxContainer = node.parentNode.parentNode.parentNode;var selectAllButton = boxContainer.getElementsByTagName("input")[0];var options = node.getElementsByTagName("tr");var holder = (box.className == "chooseBox") ? this.addHolder :this.removeHolder;if(countOptions(node) != countSelectedOptions(holder) && selectAllButton.value == "Select all"){for(var i = options.length - 1; i >= 0; i--){var option = options[i];holder[option.oid] = option;option.statusMove = true;option.className = ShifterBox.css.CLICK;}selectAllButton.value = "Deselect all";}else if(countOptions(node) == countSelectedOptions(holder) && selectAllButton.value == "Select all"){for(var i = options.length - 1; i >= 0; i--){var option = options[i];holder[option.oid] = option;option.statusMove = true;option.className = ShifterBox.css.CLICK;}selectAllButton.value = "Deselect all";}else{for(var i = options.length - 1; i >= 0; i--){var option = options[i];option.statusMove = false;option.className = ShifterBox.css.NORMAL;delete holder[option.oid];}selectAllButton.value = "Select all";}};this.moveUp = function(){var options = this.submitBox.getElementsByTagName("tr");var selectionCount = 0;for(var option in this.removeHolder){selectionCount++;var selectedNode = this.removeHolder[option];}if(selectionCount == 0){alert("Please select a record.");}else if(selectionCount > 1){alert("Multiple selection is not supported.");}else{if(selectedNode.previousSibling != null){var movedNode = this.submitBox.insertBefore(selectedNode, selectedNode.previousSibling);movedNode.checkBox.checked = true;}}};this.moveDown = function(){var options = this.submitBox.getElementsByTagName("tr");var selectionCount = 0;for(var option in this.removeHolder){selectionCount++;var selectedNode = this.removeHolder[option];}if(selectionCount == 0){alert("Please select a record.");}else if(selectionCount > 1){alert("Multiple selection is not supported.");}else{if(selectedNode.nextSibling){var movedNode = this.submitBox.insertBefore(selectedNode, selectedNode.nextSibling.nextSibling);movedNode.checkBox.checked = true;}}};this.getSubsequentElement = function(selectedId, chooseBoxOptions){var nextId = null;for(var i=0;i <= selectedId && !nextId;i++){try{if(chooseBoxOptions[i].oid >= selectedId){var nextId = i;break;}}catch(e){}}return (nextId != null) ? chooseBoxOptions[nextId] :nextId;};var countOptions = function(box){return box.getElementsByTagName("tr").length;};var countSelectedOptions = function(holder){var totalSelectedOptions = 0;for(var option in holder){totalSelectedOptions++;}return totalSelectedOptions;};var EventDispatcher = function(e){var node = null;if(e.srcElement){node = e.srcElement;}else if(e.target){node = e.target;}while(node && !node.callback){node = node.parentNode;}node.callback[e.type](e);};var addEvt = function(node,listener,evtType){if(node.addEventListener){node.addEventListener(evtType,listener,false);}else if(node.attachEvent){node.attachEvent("on" + evtType,listener);}else{node["on" + evtType] = listener;}};var separateValueFromUnit = function(str){var floatValue = parseFloat(str.replace(/[a-zA-Z\%]/g, ""));var unit = str.replace(/[0-9\.]/g, "");return [floatValue, unit];};var buttons = this.rootNode.getElementsByTagName("input");for(var i = 0; i < buttons.length; i++){var button = buttons[i];if(button.type && button.type == "button"){if(button.name == "add"){button.click = function(){this.shifterBox.add();};}else if(button.name == "remove"){button.click = function(){this.shifterBox.remove();};}else if(button.name == "addAll"){button.click = function(){this.shifterBox.addAll();};}else if(button.name == "removeAll"){button.click = function(){this.shifterBox.removeAll();};}else if(button.name == "moveUp"){button.click = function(){this.shifterBox.moveUp();};button.dblclick = function(){if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_OP && parseFloat(toolboxBrowser.version) < 7.3){this.shifterBox.moveDown();}else if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_IE){this.shifterBox.moveUp();}};}else if(button.name == "moveDown"){button.click = function(){this.shifterBox.moveDown();};button.dblclick = function(){if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_OP && parseFloat(toolboxBrowser.version) < 7.3){this.shifterBox.moveUp();}else if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_IE){this.shifterBox.moveDown();}};}else if(button.name == "selectAllChoose"){button.click = function(){this.shifterBox.selectAll(this.shifterBox.chooseBox);};}else if(button.name == "selectAllSubmit"){button.click = function(){this.shifterBox.selectAll(this.shifterBox.submitBox);};}if(button.click){button.shifterBox = this;button.callback = button;addEvt(button,EventDispatcher,"click");addEvt(button,EventDispatcher,"dblclick");}}};var options = this.chooseBox.getElementsByTagName("tr");for(var i = options.length -1; i >= 0; i--){var option = options[i];option.oid = i;option.shifterBox = this;option.checkBox = option.getElementsByTagName("input")[0];option.checkBox.name = option.shifterBox.id;option.callback = option;option.statusMove = false;option.click = function(){if(this.statusMove == true){if(this.checkBox.checked == false){delete this.shifterBox.addHolder[this.oid];}else{delete this.shifterBox.removeHolder[this.oid];}this.statusMove = false;this.className = ShifterBox.css.NORMAL;}else{if(this.checkBox.checked == false){this.shifterBox.addHolder[this.oid] = this;}else{this.shifterBox.removeHolder[this.oid] = this;}this.statusMove = true;this.className = ShifterBox.css.CLICK;}};option.mouseover = function(){if(this.statusMove != true){this.className = ShifterBox.css.MOUSE_OVER;}};option.mouseout = function(){if(this.statusMove != true){this.className = ShifterBox.css.NORMAL;}};addEvt(option,EventDispatcher,"click");addEvt(option,EventDispatcher,"mouseover");addEvt(option,EventDispatcher,"mouseout");if(option.checkBox.checked == true){this.submitBox.insertBefore(option, this.submitBox.firstChild);}}};ShifterBox.createInstance = function(rootNodeId){new ShifterBox(rootNodeId);};var RowSelection = function(rootNodeId, size, colTypes, sortCol, dblClickCallback){RowSelection.css ={NORMAL:"standard",
CLICK:"submit",
MOUSE_OVER:"highlight"
};RowSelection.imgs ={ARROW_UP:"/framework/img/ico_sort_blue_up.gif",
ARROW_ACTIVE_DOWN:"/framework/img/ico_sort_red_down.gif",
ARROW_ACTIVE_UP:"/framework/img/ico_sort_red_up.gif"
};for(var img in RowSelection.imgs){var im = new Image();im.src = RowSelection.imgs[img];RowSelection.imgs[img] = im;}this.id = rootNodeId;try{if(!document.getElementById(rootNodeId)){throw new Error("RowSelection:\""+rootNodeId+"\" is not a valid root node ID. The first argument given to the createInstance() function must be equal to the ID of the elements root node.");}else{this.rootNode = document.getElementById(rootNodeId);}if(!size){throw new Error("RowSelection:The argument \"size\" is mandatory.");}else if(typeof(size) != "number"){throw new Error("RowSelection:The argument \"size\" must be an Integer.");}if(!colTypes){throw new Error("RowSelection:The argument \"colTypes\" is mandatory.");}else if(typeof(colTypes) == "object" && colTypes.constructor == Array){}else{throw new Error("RowSelection:The argument \"colTypes\" must be an Array.");}if(sortCol && typeof(sortCol) != "number"){throw new Error("RowSelection:The argument \"sortCol\" must be an Integer.");}}catch(e){throw e;}this.activeSortCol = (sortCol || 0) - 1;this.dblClickCallback = dblClickCallback || new Function("return false");this.nrOfOptions ={total:0,
selected:0
};this.body = this.rootNode.getElementsByTagName("table")[0];this.head = this.body.cloneNode(false);var ps = this.rootNode.getElementsByTagName("p");this.footNote = ps[ps.length - 1];this.head.appendChild(this.rootNode.getElementsByTagName("colgroup")[0].cloneNode(true));this.head.appendChild(this.rootNode.getElementsByTagName("thead")[0]);this.rootNode.insertBefore(this.head, this.rootNode.firstChild);this.sortHandleParents = this.head.getElementsByTagName("td");this.sort = function(colNr, colType, sortOrder){if(colType == "None"){return;}var sortArray = this.createSortArray(colType, colNr);if(this.dataTypes[colType].compareValues){sortArray.sort(this.dataTypes[colType].compareValues);}else{sortArray.sort(this.compareValues);}if(sortOrder == "descending"){sortArray.reverse();}var tBody = this.body.tBodies[0];var removed = null;if(toolboxBrowser.agent != AbstractBrowserToolbox.AGENT_IE && toolboxBrowser.agent != AbstractBrowserToolbox.AGENT_OP){tBody = this.body.removeChild(this.body.tBodies[0]);removed = true;}var len = sortArray.length;if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_IE){var recheck = null;for (var i = 0; i < len; i++){recheck = null;if(sortArray[i].row.checkBox.checked){recheck = true;}tBody.appendChild(sortArray[i].row);if(recheck){sortArray[i].row.checkBox.checked = true;}}}else{for (var i = 0; i < len; i++){tBody.appendChild(sortArray[i].row);}}if(removed){this.body.appendChild(tBody);}};this.createSortArray = function(dataType, colNr){var rows = this.body.tBodies[0].rows;var len = rows.length;var a = new Array(len);for(var i = 0; i < len; i++){var cell = rows[i].getElementsByTagName("td")[colNr];a[i] ={value:this.getCellValue(cell, dataType),
row:rows[i]
};}return a;};this.getCellValue = function(cell, dataType){var cellData = null;if(this.dataTypes[dataType].collectCellData){cellData = this.dataTypes[dataType].collectCellData(cell, dataType);}else{cellData = this.collectCellData(cell);}if(this.dataTypes[dataType].getCellValue){return this.dataTypes[dataType].getCellValue(cellData, dataType);}else{return cellData;}};this.collectCellData = function(node){if (typeof node.innerText != "undefined"){return node.innerText;}else{var str = "";var children = node.childNodes;var len = children.length;for (var i = 0; i < len; i++){switch (children[i].nodeType){case 1:
str += this.collectCellData(children[i]);break;case 3:
str += children[i].nodeValue;break;}}return str;}};this.compareValues = function(n1, n2){if (n1.value < n2.value)
return -1;if (n2.value < n1.value)
return 1;return 0;};this.resetSortHandles = function(){for(var i = 0; i < this.sortHandleParents.length; i++){var sortHandle = this.sortHandleParents[i].getElementsByTagName("a")[0];if(sortHandle){sortHandle.sortOrder = "descending";sortHandle.arrow.src = RowSelection.imgs.ARROW_UP.src;}}};this.redrawFootNote = function(isInit, countNrOfOptionsSelected){var nv = this.footNote.firstChild.nodeValue;if(isInit && isInit == true){if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_OP && toolboxBrowser.version < 8){nv = nv.substring(0,nv.lastIndexOf("0")) + this.nrOfOptions.total + nv.substring(nv.lastIndexOf("0") + 1, nv.length);}else{nv = nv.replace(/-*[0-9]+(\D+)[0-9]+/, this.nrOfOptions.selected + "$1" + this.nrOfOptions.total);}}else if(countNrOfOptionsSelected && countNrOfOptionsSelected == true){var options = this.body.tBodies[0].getElementsByTagName("input");var count = 0;for(var i = 0; i < options.length; i++){if(options[i].checked == true){count++;}}this.nrOfOptions.selected = count;}nv = nv.replace(/-*[0-9]+/, this.nrOfOptions.selected);this.footNote.firstChild.nodeValue = nv;};var separateValueFromUnit = function(str){var floatValue = parseFloat(str.replace(/[a-zA-Z\%]/g, ""));var unit = str.replace(/[0-9\.]/g, "");return [floatValue, unit];};var EventDispatcher = function(e){var node = null;if(e.srcElement){node = e.srcElement;}else if(e.target){node = e.target;}while(node && !node.callback){node = node.parentNode;}node.callback[e.type](e);};var addEvt = function(node, listener, evtType){if(node.addEventListener){node.addEventListener(evtType,listener,false);}else if(node.attachEvent){node.attachEvent("on" + evtType,listener);}else{node["on" + evtType] = listener;}};var options = this.body.tBodies[0].rows;this.nrOfOptions.total = options.length;for(var i = 0; i < options.length; i++){var option = options[i];option.rowSelection = this;option.checkBox = option.getElementsByTagName("input")[0];option.checkBox.name = option.rowSelection.id;option.callback = option;option.click = function(){if(this.checkBox.checked == false){this.checkBox.checked = true;this.rowSelection.nrOfOptions.selected++;this.className = RowSelection.css.CLICK;}else{this.checkBox.checked = false;this.rowSelection.nrOfOptions.selected--;this.className = RowSelection.css.NORMAL;}this.rowSelection.redrawFootNote();};option.dblclick = function(e){this.checkBox.checked = true;this.className = RowSelection.css.CLICK;this.rowSelection.redrawFootNote(null, true);this.rowSelection.dblClickCallback(this.checkBox.value);};option.mouseover = function(){if(this.checkBox.checked != true){this.className = RowSelection.css.MOUSE_OVER;}};option.mouseout = function(){if(this.checkBox.checked != true){this.className = RowSelection.css.NORMAL;}};if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_IE){option.onselectstart = function(){event.cancelBubble = true;return false;};}addEvt(option,EventDispatcher,"click");addEvt(option,EventDispatcher,"dblclick");addEvt(option,EventDispatcher,"mouseover");addEvt(option,EventDispatcher,"mouseout");}for(var i = 0; i < this.sortHandleParents.length; i++){var sortHandle = this.sortHandleParents[i].getElementsByTagName("a")[0];if(sortHandle){sortHandle.oid = i;sortHandle.rowSelection = this;sortHandle.arrow = sortHandle.getElementsByTagName("img")[0];sortHandle.dataType = colTypes[i];sortHandle.sortOrder = "descending";sortHandle.callback = sortHandle;sortHandle.href = "javascript:void(0);";sortHandle.click = function(){if(this.rowSelection.activeSortCol != this.oid){this.rowSelection.resetSortHandles();this.rowSelection.activeSortCol = this.oid;}if(this.sortOrder == "descending"){this.sortOrder = "ascending";this.arrow.src = RowSelection.imgs.ARROW_ACTIVE_UP.src;}else{this.sortOrder = "descending";this.arrow.src = RowSelection.imgs.ARROW_ACTIVE_DOWN.src;}this.rowSelection.sort(this.oid, this.dataType, this.sortOrder);this.blur();};addEvt(sortHandle,EventDispatcher,"click");}}if(this.activeSortCol != -1){this.sortHandleParents[this.activeSortCol].getElementsByTagName("a")[0].click();}this.redrawFootNote(true, true);var scrollable = this.rootNode.getElementsByTagName("div")[0];this.rootNode.style.overflow = "visible";this.body.style.borderBottom = "0";this.head.style.borderBottom = 0;scrollable.style.height = size * 20 / 12 + "em";if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_SF){scrollable.style.height = size * 19 / 12 + "em";}scrollable.style.borderBottom = "1px solid #e3dfdb";this.body.style.width = (separateValueFromUnit(this.rootNode.style.width)[0] - 1.6666) + "em";var cols = this.body.getElementsByTagName("col");cols[cols.length - 1].style.width = (separateValueFromUnit(cols[cols.length - 1].style.width)[0] - 1.6666) + "em";};RowSelection.toDate = function (str){var tokens = str.split("-");var d = new Date(0);d.setFullYear(tokens[0]);d.setDate(tokens[2]);d.setMonth(tokens[1] - 1);return d.valueOf();};RowSelection.createInstance = function(rootNodeId, size, colTypes, sortCol, dblClickCallback){new RowSelection(rootNodeId, size, colTypes, sortCol, dblClickCallback);};RowSelection.prototype.dataTypes = {"String":{},
"Number":{"getCellValue":Number
},
"Date":{"getCellValue":RowSelection.toDate
},
"None":{}};RowSelection.prototype.addDataType = function(type, getCellValue, collectCellData, compareValues){var dataType = new Object();if(getCellValue){dataType.getCellValue = getCellValue;}if(collectCellData){dataType.collectCellData = collectCellData;}if(compareValues){datyType.compareValues = compareValues;}this.dataTypes[type] = dataType;};var SplitTable = function(rootNodeId){this.id = rootNodeId;try{if(!document.getElementById(rootNodeId)){throw new Error("SplitTable:\""+rootNodeId+"\" is not a valid root node ID. The argument given to the createInstance() function must be equal to the ID of the elements root node.");}else{this.rootNode = document.getElementById(rootNodeId);}}catch(e){throw e;}var splitWidth = null;var splitSections = null;var table = this.rootNode.getElementsByTagName("table")[0];var secondTable = table.cloneNode(false);var secondColgroup = table.getElementsByTagName("colgroup")[0].cloneNode(false);var secondTableHead = table.getElementsByTagName("thead")[0].cloneNode(false);var secondTableBody = table.getElementsByTagName("tbody")[0].cloneNode(false);var separateValueFromUnit = function(str){var floatValue = parseFloat(str.replace(/[a-zA-Z\%]/g, ""));var unit = str.replace(/[0-9\.]/g, "");return [floatValue, unit];};splitSections = [0,0];splitSections[0] = table.getElementsByTagName("td")[0].colSpan;splitSections[1] = table.getElementsByTagName("td")[1].colSpan;splitWidth = [0,0];for(var i = 0; i < splitSections[0]; i++){splitWidth[0] += separateValueFromUnit(this.rootNode.getElementsByTagName("col")[i].style.width)[0];}for(var i = splitSections[0]; i < splitSections[0] + splitSections[1]; i++){splitWidth[1] += separateValueFromUnit(this.rootNode.getElementsByTagName("col")[i].style.width)[0];}for(var i = splitSections[0] + splitSections[1] - 1; i >= splitSections[0]; i--){secondColgroup.appendChild(this.rootNode.getElementsByTagName("col")[i]);}var headRowCounter = 0;for(var tr = table.getElementsByTagName("thead")[0].firstChild; tr; tr = tr.nextSibling){if(tr.nodeType == 1){headRowCounter++;var secondTableHeadRow = secondTableHead.appendChild(tr.cloneNode(false));if(headRowCounter == 1){var td0 = tr.getElementsByTagName("td")[0];td0.colSpan = splitSections[0];var td1 = tr.getElementsByTagName("td")[1];td1.colSpan = splitSections[1];secondTableHeadRow.appendChild(td1);}else if(headRowCounter == 2){var headCellCounter = 0;var td = tr.lastChild;while(td){var node = td;td = td.previousSibling;if(node.nodeType == 1){headCellCounter++;if(headCellCounter <= splitSections[1]){if(secondTableHeadRow.firstChild){secondTableHeadRow.insertBefore(node, secondTableHeadRow.firstChild);}else{secondTableHeadRow.appendChild(node);}}}}}}}for(var tr = table.getElementsByTagName("tbody")[0].firstChild; tr; tr = tr.nextSibling){if(tr.nodeType == 1){var secondTableRow = secondTableBody.appendChild(tr.cloneNode(false));var bodyCellCounter = 0;var td = tr.lastChild;while(td){var node = td;td = td.previousSibling;if(node.nodeType == 1){if(node.rowSpan && node.rowSpan > 1){throw new Error("");}else if(node.colSpan && node.colSpan > 1){bodyCellCounter += parseInt(node.colSpan);}else{bodyCellCounter++;}if(bodyCellCounter <= splitSections[1]){if(secondTableRow.firstChild){secondTableRow.insertBefore(node, secondTableRow.firstChild);}else{secondTableRow.appendChild(node);}}else if (bodyCellCounter == splitSections[1] + 1){node.style.borderRight = "1px solid #e3dfdb";}else{break;}}}secondTableBody.appendChild(secondTableRow);}}secondTable.appendChild(secondColgroup);secondTable.appendChild(secondTableHead);secondTable.appendChild(secondTableBody);var scrollable = this.rootNode.getElementsByTagName("div")[0];scrollable.appendChild(secondTable);scrollable.style.width = (separateValueFromUnit(this.rootNode.style.width)[0] - splitWidth[0]) + "em";if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_IE){scrollable.style.overflowX = "scroll";if(parseFloat(toolboxBrowser.version) < 5.5){this.rootNode.style.width = "auto";}else if(parseInt(toolboxBrowser.version) == 6){var changeCol = this.rootNode.getElementsByTagName("col")[splitSections[0] - 1];changeCol.style.width = (separateValueFromUnit(changeCol.style.width)[0] - 0.08333) + "em";}}else{scrollable.style.overflow = "auto";}if(toolboxBrowser.agent == AbstractBrowserToolbox.AGENT_OP){this.rootNode.style.overflow = "visible";scrollable.style.paddingBottom = "0.16666em";if(toolboxBrowser.version < 8 || toolboxBrowser.system == AbstractBrowserToolbox.SYSTEM_MAC){scrollable.style.paddingBottom = "1em";}}with(table.style){width = splitWidth[0] + "em";}with(secondTable.style){width = splitWidth[1] + "em";}};SplitTable.createInstance = function(rootNodeId){new SplitTable(rootNodeId);};
