// ---------------- // Table sorting function setSort(inName, inValue) { var sort = document.getElementById(inName + "_sort"); if(sort) { sort.value = inValue; } } function sendemail(inEmail, inSubject, inMessage) { var url = "mailto:" + inEmail + "?subject=" + inSubject + "&body=" + inMessage; window.location.href = url; } function sendErrorReport(inLanguage) { sendErrorReport(inLanguage, null); } function sendErrorReport(inLanguage, inURL) { if(inLanguage == "en") { inLanguage = ""; } else { inLanguage = "_" + inLanguage; } if(inURL == null || inURL == "") { inURL = "/server/html/errorreport"; } window.open(inURL + inLanguage + '.html', 'errorreport', 'height=300,width=400,toolbar=no,status=no,scrollbars=yes,resizable=yes'); } // ---------------- // Pickers var pickerElementID; var pickerChangeAction; function openPicker(inURL, inElementID, inChangeAction) { pickerElementID = inElementID; pickerChangeAction = inChangeAction; open(inURL, 'picker', 'width=640,height=640,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no'); } function getPickerElement() { if(pickerElementID) { var element = document.getElementById(pickerElementID); if(element) { return element.value; } } return null; } function updatePickerElement(inValue, inHTML) { if(pickerElementID) { var fireChange = false; var element = document.getElementById(pickerElementID); if(element) { element.value = inValue; } var elementHTML = document.getElementById(pickerElementID + "_html"); if(elementHTML) { elementHTML.innerHTML = inHTML; } if(pickerChangeAction) { eval(pickerChangeAction); } } pickerElementID = null; } // ---------------- // Date Picker var dateElementID; function openDatePicker(inElementID, inLocale) { dateElementID = inElementID; var url = "/server/calendar/calendar.html"; if(inLocale) { url += "?locale=" + inLocale; } open(url, 'date_picker', 'width=220,height=220,menubar=no,resizable=yes,scrollbars=no,status=no,toolbar=no'); } function getDatePicker() { if(dateElementID) { return document.getElementById(dateElementID); } return null; } function setDatePicker(inYear, inMonth, inDay) { var dateElement = getDatePicker(); if(dateElement) { var hourElement = document.getElementById(dateElement.id + "_hour"); var minuteElement = document.getElementById(dateElement.id + "_min"); var hour = 0; var minute = 0; if(hourElement) { hour = parseInt(hourElement.value); minute = parseInt(minuteElement.value); dateElement.value = "" + inYear + "-" + inMonth + "-" + inDay + "-" + hour + "-" + minute; } else { dateElement.value = "" + inYear + "-" + inMonth + "-" + inDay; } updateDateControls(dateElementID); } self.focus(); } function resetDatePicker() { var dateElement = getDatePicker(); if(dateElement) { dateElement.value = ""; } } function updateDatePicker(inElementID) { var dateElement = document.getElementById(inElementID); if(dateElement) { var yearElement = document.getElementById(inElementID + "_year"); var monthElement = document.getElementById(inElementID + "_month"); var dayElement = document.getElementById(inElementID + "_day"); var hourElement = document.getElementById(inElementID + "_hour"); var minuteElement = document.getElementById(inElementID + "_min"); var year = parseInt(yearElement.value); var month = parseInt(monthElement.value); var day = parseInt(dayElement.value); var hour = 0; var minute = 0; if(hourElement) { hour = parseInt(hourElement.value); minute = parseInt(minuteElement.value); } dateElement.value = year + "-" + month + "-" + day + "-" + hour + "-" + minute; updateDateControls(inElementID); } } function updateDateControls(inElementID) { var dateElement = document.getElementById(inElementID); var yearElement = document.getElementById(inElementID + "_year"); var monthElement = document.getElementById(inElementID + "_month"); var dayElement = document.getElementById(inElementID + "_day"); var hourElement = document.getElementById(inElementID + "_hour"); var minuteElement = document.getElementById(inElementID + "_min"); var parts = dateElement.value.split("-"); var year = parseInt(parts[0]); var month = parseInt(parts[1]); var day = parseInt(parts[2]); var hour = 0; var minute = 0; if(parts.length > 3) { hour = parseInt(parts[3]); minute = parseInt(parts[4]); } var i; if(yearElement) { yearElement.value = year; } if(monthElement) { for(i = 0; i < monthElement.options.length; i++) { if(monthElement.options[i].value == month) { monthElement.options[i].selected = true; } else { monthElement.options[i].selected = false; } } var daysInMonth = new Date(year, month, 0).getDate(); if(day > daysInMonth) { day = daysInMonth; dateElement.value = year + "-" + month + "-" + day + "-" + hour + "-" + minute; } } if(dayElement) { var count = 0; for(i = 1; i <= 31; i++) { if(i <= daysInMonth) { var name = new String(i); dayElement.options[count] = new Option(name, name); if(i == day) { dayElement.options[count].selected = true; } count++; } else { dayElement.options[count] = null; } } } if(hourElement) { for(i = 0; i < hourElement.options.length; i++) { if(hourElement.options[i].value == hour) { hourElement.options[i].selected = true; } else { hourElement.options[i].selected = false; } } } if(minuteElement) { for(i = 0; i < minuteElement.options.length; i++) { if(minuteElement.options[i].value == minute) { minuteElement.options[i].selected = true; } else { minuteElement.options[i].selected = false; } } } } // ------------- // Browser checking function checkCookies() { var cookietest = getCookie("cookietest"); var cookies = false; if(cookietest) { cookies = cookietest == "ok"; } var detector = document.getElementById("cookiedetector"); if(!cookies) { detector.style.display = ""; } else { detector.style.display = "none"; } } function checkCapsLock(e) { var myKeyCode = 0; var myShiftKey = false; var myCapsLock = false; if(document.all) // Internet Explorer { e = window.event; myKeyCode = e.keyCode; myShiftKey = e.shiftKey; } else if(document.layers) // Netscape 4 { myKeyCode = e.which; myShiftKey = (myKeyCode == 16) ? true : false; } else if(document.getElementById) // Netscape 6 { myKeyCode = e.which; myShiftKey = e.shiftKey || ( e.modifiers && ( e.modifiers & 4 ) ); } if((myKeyCode >= 65 && myKeyCode <= 90) && !myShiftKey) { myCapsLock = true; } else if((myKeyCode >= 97 && myKeyCode <= 122) && myShiftKey) { myCapsLock = true; } var detector = document.getElementById("capslockdetector"); if(myCapsLock) { detector.style.display = ""; } else { detector.style.display = "none"; } } // ------------- function verify(msg) { if (!confirm(msg)) { if(browser.ie) { event.cancelBubble = true; } return false; } return true; } var alreadyVerified = false; function verifyOnce(msg) { if(!alreadyVerified) { alreadyVerified = verify(msg); } return alreadyVerified; } // ------------------- function toggleRadioCheckBoxes(current) { var isChecked = current.checked; for(i=0 ; i < eval('current.form.' + current.name + '.length'); i++) { eval('current.form.' + current.name + '[' + i + ']').checked = false; } if(isChecked) { current.checked = true; } } // ------------------- function togglePanel(idDiv, idSpan, title, hide, show) { var obj = document.getElementById(idDiv); if(obj.style.display == "none") { document.getElementById(idSpan).innerHTML = show + ' ' + title; obj.style.display = ""; } else { document.getElementById(idSpan).innerHTML = hide + ' ' + title; obj.style.display = "none"; } } // ------------------- function updateRadioButtons(inName, inID, inTotal) { for(var i = 1; i <= inTotal; i++) { var element = document.getElementById("other" + inName + i); if(element) { if(i == inID) { element.style.display = ""; } else { element.style.display = "none"; } } } } // ------------------- var inlineFrames = new Array(); function registerFrame(inName) { inlineFrames[inlineFrames.length] = inName; resizeFrame(inName); } function resizeFrame(inName) { var frame = document.getElementById("frameid_" + inName); if(frame) { var source = window.frames["framename_" + inName].document; if(source) { var offset = 0; if(document.getElementById && !document.all) { offset=20; } if (navigator.appName.indexOf("Microsoft")!=-1) { frame.height = source.body.scrollHeight; } else { frame.height = source.body.offsetHeight + offset; } } } } function resizeFrames() { for(i = 0; i < inlineFrames.length; i++) { resizeFrame(inlineFrames[i]); } } // ------------------- var clickOnceButtons = new Array(); function resetClickOnce() { clickOnceButtons = new Array(); } function clickOnce(inButton) { for(i = 0; i < clickOnceButtons.length; i++) { if(clickOnceButtons[i] == inButton.name) { return false; } } clickOnceButtons[clickOnceButtons.length] = inButton.name; return true; } // ------------------- // Browser Functions Object.extend(document.viewport, { getBounds: function() { var topLeft = this.getScrollOffsets(); return { top: topLeft.top, left: topLeft.left, bottom: topLeft.top + this.getHeight(), right: topLeft.left + this.getWidth() }; }, getWidth: function() { return this.pickResults ( window.innerWidth ? window.innerWidth : 0, document.documentElement ? document.documentElement.clientWidth : 0, document.body ? document.body.clientWidth : 0); }, getHeight: function() { return this.pickResults ( window.innerHeight ? window.innerHeight : 0, document.documentElement ? document.documentElement.clientHeight : 0, document.body ? document.body.clientHeight : 0); }, pickResults: function(n_win, n_docel, n_body) { var n_result = n_win ? n_win : 0; if (n_docel && (!n_result || (n_result > n_docel))) { n_result = n_docel; } return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result; } }); function Browser() { this.version = navigator.appVersion; this.agent = navigator.userAgent; this.dom = document.getElementById?1:0; this.opera5 = this.agent.indexOf("Opera 5")>-1; this.ie4 = (document.all && !this.dom && !this.opera5)?1:0; this.ie5 = (this.version.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; this.ie6 = (this.version.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0; this.ie7 = (this.version.indexOf("MSIE 7")>-1 && this.dom && !this.opera5)?1:0; this.ie = this.ie4||this.ie5||this.ie6||this.ie7; this.mac = this.agent.indexOf("Mac")>-1; this.ns6 = (this.dom && parseInt(this.version) >= 5) ?1:0; this.ns4 = (document.layers && !this.dom)?1:0; this.bw = (this.ie7 || this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5); return this; } browser = new Browser(); function setCookie(name, value, expirydays, path) { var expiry; if(!name || name == "") return; if(expirydays && expirydays > 0) { var expiryDate = new Date(); expiryDate.setTime(expiryDate.getTime() + (expirydays * 24 * 60 * 60 * 1000)); expiry = expiryDate.toGMTString(); } var cookieString = name + "=" + escape(value) + ((!expiry) ? "" : ("; expires=" + expiry)) + ((!path) ? "" : ("; path=" + path)); document.cookie = cookieString; } function getCookie(name) { var arg = name + "="; var arglength = arg.length; var cookielength = document.cookie.length; var i = 0; while(i < cookielength) { var j = i + arglength; if(document.cookie.substring(i, j) == arg) { k = document.cookie.indexOf(";", j); if(k < 0) { k = cookielength; } return unescape(document.cookie.substring(j, k)); } i = document.cookie.indexOf(" ", i) + 1; if(i == 0) { break; } } return ""; } function debug(object) { var keys = Object.keys(object).sort(); for(var i = 0; i < keys.length; i++) { try { var value = object[keys[i]]; console.log(keys[i] + ' = ' + value); } catch(e) { console.log(keys[i] + ' = ' + e); } } } if(browser.ie && !browser.ie7) { window.attachEvent("onload", fixPNG); for(var i = 0; i < document.styleSheets.length; i++) { for(var j = 0; j < document.styleSheets[i].rules.length; j++) { if(document.styleSheets[i].rules[j].selectorText == ".png") { document.styleSheets[i].rules[j].style.visibility = 'hidden'; } } } } function fixPNG() { if(browser.ie && !browser.ie7) { for(var i = 0; i < document.all.length; i++) { var element = document.all[i]; if(element.className.indexOf('png') >= 0 && element.tagName == 'IMG') { fixSinglePNG(element); } else if(element.className.indexOf('png') >= 0) { fixBackgroundPNG(element); } } } } function fixSinglePNG(element) { if(browser.ie && !browser.ie7) { if(element) { var width = element.width; var height = element.height; var source = element.src; element.src = '/server/images/spacer.gif?version=1'; element.width = width; element.height = height; element.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + source + "', sizingMethod='image', enabled='true')"; element.style.visibility = 'visible'; } } } function fixBackgroundPNG(element) { if(browser.ie && !browser.ie7) { if(element) { var bg = element.currentStyle.backgroundImage; var img = bg.substring(5,bg.length-2); var position = element.style.backgroundPosition; element.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+img+"', sizingMethod='scale')"; element.style.backgroundImage = "url('/server/images/spacer.gif?version=1')"; element.style.backgroundPosition = position; // reapply element.style.visibility = 'visible'; } } } function autoResize() { if(browser.ie) { window.resizeBy(document.body.scrollWidth - document.body.clientWidth, document.body.scrollHeight - document.body.clientHeight); } else { var maxWidth = 0; var maxHeight = 0; for(var i = 0; i < document.body.childNodes.length; i++) { if(document.body.childNodes[i].offsetWidth) { var width = document.body.childNodes[i].offsetLeft + document.body.childNodes[i].offsetWidth; var height = document.body.childNodes[i].offsetTop + document.body.childNodes[i].offsetHeight; if(width > maxWidth) { maxWidth = width; } if(height > maxHeight) { maxHeight = height; } } } var extraY = window.outerHeight - window.innerHeight; var extraX = window.outerWidth - window.innerWidth; if(extraX < 0) { extraX *= -1; } window.resizeTo(maxWidth + extraX, maxHeight + extraY); } } function maxLength(inEvent, inElement, inLength) { if(browser.ie) { ; } else { if(inElement.selectionStart != inElement.selectionEnd) { return true; } else if(inEvent.which == 0 || inEvent.which == inEvent.DOM_VK_BACK_SPACE) { return true; } } if(inElement.value.length >= inLength) { inElement.value = inElement.value.substring(0, inLength); return false; } return true; } function trimLength(element, length) { if(element.value.length >= length) { element.value = element.value.substring(0, length); } } function Message(inName, inMessage) { this.name = inName; this.message = inMessage; } var messages = new Array(); function addMessage(inName, inMessage) { messages[messages.length] = new Message(inName, inMessage); } function getMessage(inName) { for(i = 0; i < messages.length; i++) { if(messages[i].name == inName) { return messages[i].message; } } } function preventEvent(event) { if(event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; } } function cancelEvent(event) { if(!event) { event = window.event; } if(event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubble = true; } if(browser.ie) { var targetElement = event.srcElement; } else { var targetElement = event.target || event.srcElement; } return false; } function addEvent(obj, type, fn) { if (obj.attachEvent) { obj['e'+type+fn] = fn; obj[type+fn] = function(e){obj['e'+type+fn](e);} obj.attachEvent( 'on'+type, obj[type+fn] ); } else { obj.addEventListener( type, fn, false ); } } function removeEvent(obj, type, fn) { if(obj.detachEvent) { obj.detachEvent( 'on'+type, obj[type+fn] ); obj[type+fn] = null; obj['e'+type+fn] = null; } else { obj.removeEventListener( type, fn, false ); } }