function addLoadListener(fn) { if (typeof window.addEventListener != 'undefined') { window.addEventListener('load', fn, false); } else if (typeof document.addEventListener != 'undefined') { document.addEventListener('load', fn, false); } else if (typeof window.attachEvent != 'undefined') { window.attachEvent('onload', fn); } else { var oldfn = window.onload; if (typeof window.onload != 'function') { window.onload = fn; } else { window.onload = function() { oldfn(); fn(); }; } } } function attachEventListener(target, eventType, functionRef, capture) { if (typeof target.addEventListener != "undefined") { target.addEventListener(eventType, functionRef, capture); } else if (typeof target.attachEvent != "undefined") { target.attachEvent("on" + eventType, functionRef); } else { eventType = "on" + eventType; if (typeof target[eventType] == "function") { var oldListener = target[eventType]; target[eventType] = function() { oldListener(); return functionRef(); }; } else { target[eventType] = functionRef; } } } function getEventTarget(event) { var targetElement = null; if (typeof event.target != "undefined") { targetElement = event.target; } else { targetElement = event.srcElement; } while (targetElement.nodeType == 3 && targetElement.parentNode != null) { targetElement = targetElement.parentNode; } return targetElement; } function stopDefaultAction(event) { event.returnValue = false; if (typeof event.preventDefault != "undefined") { event.preventDefault(); } return true; } function engage(event) { if (typeof event == "undefined") { event = window.event; } alert("Engage!"); stopDefaultAction(event); return false; } function http_request() { var request; var handler; var method; var url; var content; var arg = http_request.arguments; if (arg[0]) { url = arg[0]; } if (arg[1].toLowerCase() == "post") { method = "POST"; } else { method = "GET"; } if (arg[2]) { handler = arg[2]; } else { handler = null; } if (arg[3]) { content = arg[3]; } var handler_arg = "request"; for (i=0; i 3) { handler_arg += ",'" + arg[i] + "'"; } } try { request = new XMLHttpRequest(); } catch (e) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { request = null; } } if (request) { request.onreadystatechange = function() { if (request.readyState == 4) { if (request.status == 200) { if (handler) { eval(handler + "(" + handler_arg + ");"); } } else { } } }; request.open(method,url,true); if (method == "POST") { request.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); } request.send(content); } } function ajax_request_handler() { var arg = ajax_request_handler.arguments; var request = arg[0]; var id = arg[1]; document.getElementById(id).innerHTML = request.responseText; } function ajax_url() { var arg = ajax_url.arguments; var contentfile = arg[0]; var contentid = arg[1]; var handler = "ajax_request_handler"; http_request(contentfile,'POST',handler,'',contentid); return false; } /**********************************************************************************/ /* */ /* Function Name: ajax_fetch_url() */ /* Description: */ /* Parameters url, content */ /* Input: */ /* Output: object */ /* */ /* Author: Raymond Chow */ /* Date: 17 October 2007 */ /* */ /**********************************************************************************/ function ajax_fetch_url() { var arg = ajax_fetch_url.arguments; var ajaxurl = arg[0]; var targetid = arg[1]; var input = ""; var handler = "ajax_request_handler"; http_request(ajaxurl,'GET',handler,input,targetid); return false; } /**********************************************************************************/ /* */ /* Function Name: ajax_fetch_url_tab() */ /* Description: */ /* Parameters */ /* Input: */ /* Output: */ /* */ /* Author: Raymond Chow */ /* Date: 18 October 2007 */ /* */ /**********************************************************************************/ function ajax_fetch_url_tab() { var arg = ajax_fetch_url_tab.arguments; var thistab = arg[0]; var ajaxurl = arg[1]; var id = arg[2]; var activetabclass = "tab_on"; var inactivetabclass = "tab_off"; var tab = getElementsByAttribute('class',activetabclass); for (i=0; i= 7) { return "opera7"; } else if (version >=5) { return "opera5" } return false; } else if (typeof document.all != "undefined") { if (typeof document.getElementById != "undefined") { var browser = agent.replace(/.*ms(ie[\/ ][^ $]+).*/,"$1").replace(/ /, ""); if (typeof document.uniqueID != "undefined") { if (browser.indexOf("5.5") != -1) { return browser.replace(/(.*5\.5).*/,"$1"); } else { return browser.replace(/(.*)\..*/,"$1"); } } else { return "ie5mac"; } } return false; } else if (typeof document.getElementById != "undefined") { if (navigator.vendor.indexOf("Apple Computer, Inc.") != -1) { if (typeof window.XMLHttpRequest != "undefined") { return "safari1.2"; } else if (agent.indexOf("gecko") != -1) { return "mozilla"; } } return false; } return false; }function navigate_photosetphoto(evt) { evt = (evt) ? evt : ((event) ? event : null); if ((evt) && (document.getElementById('photoset'))) { var photoset = document.getElementById('photoset'); var nextid = photoset.photosetphotoid_next.value; var previd = photoset.photosetphotoid_previous.value; var thingPressed = ""; var elem = (evt.target) ? evt.target : evt.srcElement; thingPressed = (evt.charCode) ? evt.charCode : evt.keyCode; if (thingPressed == "39") { // next photo ajax_fetch_url('ajax_photosetphoto.php?photosetphotoid=' + nextid, 'photosetphoto'); } else if (thingPressed == "37") { // previous photo ajax_fetch_url('ajax_photosetphoto.php?photosetphotoid=' + previd, 'photosetphoto'); } } return false; } function initKeyDetect() { attachEventListener(document, "keydown", function (evt) { navigate_photosetphoto(evt); }, false); return true; } addLoadListener(initKeyDetect);function initTooltips() { var tips = getElementsByAttribute("class", "hastooltip"); for (var i=0; i viewportSize[0] - 25) { tip.style.left = scrollingPosition[0] + viewportSize[0] - 25 - tip.offsetWidth + "px"; } else { tip.style.left = cursorPosition[0] + 10 + "px"; } if (cursorPosition[1] - scrollingPosition[1] + 10 + tip.offsetHeight > viewportSize[1] - 25) { if (event.clientX > (viewportSize[0] - 25 - tip.offsetWidth)) { tip.style.top = cursorPosition[1] - tip.offsetHeight - 10 + "px"; } else { tip.style.top = scrollingPosition[1] + viewportSize[1] - 25 - tip.offsetHeight + "px"; } } else { tip.style.top = cursorPosition[1] + 10 + "px"; } tip.style.visibility = "visible"; return true; } function hideTip(event) { if (typeof event == "undefined") { event = window.event; } var target = getEventTarget(event); while (target.className == null || !/(^| )hastooltip( |$)/.test(target.className)) { target = target.parentNode; } if (target.tooltip != null) { target.setAttribute("title",target.tooltip.childNodes[0].nodeValue); target.tooltip.parentNode.removeChild(target.tooltip); } return false; } function getElementsByAttribute(attribute, attributeValue) { var elementArray = new Array(); var matchedArray = new Array(); if (document.all) { elementArray = document.all; } else { elementArray = document.getElementsByTagName("*"); } for (var i=0; i 0) { position = [document.documentElement.scrollLeft,document.documentElement.scrollTop]; } else if (typeof document.body.scrollTop != 'undefined') { position = [document.body.scrollLeft, document.body.scrollTop]; } return position; } function getViewportSize() { var size = [0,0]; if (typeof window.innerWidth != 'undefined') { size = [window.innerWidth,window.innerHeight]; } else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) { size = [document.documentElement.clientWidth,document.documentElement.clientHeight]; } else { size = [document.getElementsByTagName('body')[0].clientWidth, document.getElementsByTagName('body')[0].clientHeight,]; } return size; } function return_select_value() { var arg = return_select_value.arguments; var obj = arg[0]; if (obj.options.length > 0) { for (i=0; i