function addEvent(obj, evType, fn, useCapture) {var ua = navigator.userAgent;var konq = ua.indexOf('KHTML') != -1 && ua.indexOf('Safari') == -1 && obj == window && evType == 'load';if (obj.addEventListener && !konq) {obj.addEventListener(evType, fn, useCapture);return true;} else if (obj.attachEvent) {return obj.attachEvent('on' + evType, fn);} else {if (!obj.cb_events) {obj.cb_events = new Object();obj.cb_ftemp = null;}var events = obj.cb_events[evType];if (!events) {events = new Array();obj.cb_events[evType] = events;}var i = 0;while ((i < events.length) && (events[i] != fn)) {i++;}if (i == events.length) {events[i] = fn;obj['on' + evType] = new Function("var ret=false,e=this.cb_events['"+evType+"'];if(e){for(var i=0;i<e.length;i++){this.cb_ftemp=e[i];ret=this.cb_ftemp()||ret;}return ret;}");}return true;}}function removeEvent(obj, evType, fn, useCapture) {var ua = navigator.userAgent;var konq = ua.indexOf('KHTML') != -1 && ua.indexOf('Safari') == -1 && obj == window && evType == 'load';if (obj.removeEventListener && !konq) {obj.removeEventListener(evType, fn, useCapture);return true;} else if (obj.detachEvent) {return obj.detachEvent('on' + evType, fn);} else {var ret = false;if (obj.cb_events) {var events = obj.cb_events[evType];if (events) {var dest = 0;for (var src = 0; src < events.length; src++) {if (dest != src) {events[dest] = events[src];}if (events[dest] == fn) {ret = true;} else {dest++;}}events.length = dest;}}return ret;}}var ss_INTERVAL, ss_cury, ss_deltay;function ss_fixAllLinks() {if (document.getElementsByTagName) {var allLinks = document.getElementsByTagName('a');for (var i = 0; i < allLinks.length; i++) {var lnk = allLinks[i];if ((lnk.href && lnk.href.indexOf('#') != -1) &&( (lnk.pathname == location.pathname) ||('/' + lnk.pathname == location.pathname) ) &&(lnk.search == location.search)) {addEvent(lnk, 'click', ss_smoothScroll, false);}}}}function ss_smoothScroll(e) {if (window.event) {target = window.event.srcElement;} else if (e) {target = e.target;} else {return false;}if (target.nodeType == 3) {target = target.parentNode;}if (target.nodeName.toLowerCase() != 'a') {target = target.parentNode;if (target.nodeName.toLowerCase() != 'a') {return false;}}anchor = target.hash.substr(1);var destinationLink = document.getElementById(anchor);if (!destinationLink) {var allLinks = document.getElementsByTagName('a');for (var i = 0; i < allLinks.length; i++) {var lnk = allLinks[i];if (lnk.name && (lnk.name == anchor)) {destinationLink = lnk;break;}}}if (!destinationLink) {return true;}var destx = destinationLink.offsetLeft;var desty = destinationLink.offsetTop;var thisNode = destinationLink;while (thisNode.offsetParent && (thisNode.offsetParent != document.body)) {thisNode = thisNode.offsetParent;destx += thisNode.offsetLeft;desty += thisNode.offsetTop;}clearInterval(ss_INTERVAL);cypos = ss_getCurrentYPos();ss_cury = cypos;ss_deltay = 0;ss_INTERVAL = setInterval('ss_scrollWindow(' + cypos + ',' + desty + ',"' + anchor + '")', 10);if (window.event) {window.event.cancelBubble = true;window.event.returnValue = false;}if (e) {if (e.preventDefault) {e.preventDefault();}if (e.stopPropagation) {e.stopPropagation();}}return false;}function ss_scrollWindow(srcy, desty, anchor) {var midy = (desty + srcy) / 2;ss_deltay += ((desty > srcy && ss_cury < midy || desty < srcy && ss_cury > midy) ? 1 : -1) * 2;ss_cury += Math.min(9999, ss_deltay) * ((desty > srcy) ? 1 : -1);if (desty > srcy && ss_cury > desty || desty < srcy && ss_cury < desty) {ss_cury = desty;ss_deltay = 0;}window.scrollTo(0, ss_cury);if (ss_deltay == 0) {clearInterval(ss_INTERVAL);window.scrollTo(0, srcy);location.hash = anchor;}}function ss_getCurrentYPos() {if (document.body && document.body.scrollTop) {return document.body.scrollTop;}if (document.documentElement && document.documentElement.scrollTop) {return document.documentElement.scrollTop;}if (window.pageYOffset) {return window.pageYOffset;}return 0;}addEvent(window, 'load', ss_fixAllLinks, false);function emaillinks_subject(ele, link) {var subject = emaillinks_config.subj.exec(ele.childNodes[0].nodeValue);if (subject) {link.setAttribute('href', link.getAttribute('href') + '?subject=' + subject[1]);}}function _emaillinks_process(ele) {var cfg = emaillinks_config;var text = ele.childNodes[0].nodeValue;var name = (cfg.name) ? cfg.name.exec(text) : null;var addr = (cfg.addr) ? cfg.addr.exec(text) : null;if (addr) {var title = ele.getAttribute('title');addr = addr[1];if (cfg.unobs) {for (var i = 0; i < cfg.unobs.length; i++) {var r = cfg.unobs[i];addr = addr.replace(r.re, r.txt);}}var ns = document.getElementsByTagName('html')[0].namespaceURI;var link = ns ? document.createElementNS(ns, 'a') : document.createElement('a');var attrs = ele.attributes;for (var i = 0; i < attrs.length; i++) {var attr = attrs.item(i);if (attr.specified) {link.setAttribute(attr.name, attr.value);}}text = (name) ? name[1] : (title != null && title != '') ? title : addr;link.appendChild(document.createTextNode(text));link.setAttribute('href', 'mailto:' + addr);if (cfg.process) {for (var i = 0; i < cfg.process.length; i++) {cfg.process[i](ele, link);}}ele.parentNode.insertBefore(link, ele);ele.parentNode.removeChild(ele);return true;}return false;}function _emaillinks_processAll() {var className = (emaillinks_config.className) ? emaillinks_config.className : 'email';var eles = document.getElementsByTagName('a');for (var i = 0; i < eles.length; i++) {var ele = eles[i];if (ele.className && ele.className.indexOf(className) != -1) {if (_emaillinks_process(ele)) {i--;}}}}var emaillinks_config = {className:'email',addr:/<([^>]*)>/,name:/"([^"]*)"/,subj:/with subject "([^"]*)"/,process:[emaillinks_subject],unobs:[{re:/\s+at\s+/ig , txt:'@'},{re:/\s+dot\s+/ig, txt:'.'},{re:/\s+-at-\s+/ig , txt:'@'},{re:/\s+-dot-\s+/ig, txt:'.'},{re:/\s+\(at\)\s+/ig , txt:'@'},{re:/\s+\(dot\)\s+/ig, txt:'.'},{re:/[\.]?invalid$/i, txt:''},{re:/\s+/g, txt:''}]};addEvent(window, 'load', _emaillinks_processAll, false);function fixSearchKeywordsField(id) {var e = document.getElementById(id);if (e) {addEvent(e, 'focus'    , function(e) {var evt = e ? e : window.event;var ele = (evt.target) ? evt.target : evt.srcElement;if (ele.value == 'search keywords') ele.value = '';ele.focussed = true;}, false);addEvent(e, 'mouseover', function(e) {var evt = e ? e : window.event;var ele = (evt.target) ? evt.target : evt.srcElement;if (ele.value == 'search keywords') ele.value = '';}, false);addEvent(e, 'blur'     , function(e) {var evt = e ? e : window.event;var ele = (evt.target) ? evt.target : evt.srcElement;if (ele.value == '') ele.value = 'search keywords';ele.focussed = false;}, false);addEvent(e, 'mouseout' , function(e) {var evt = e ? e : window.event;var ele = (evt.target) ? evt.target : evt.srcElement;if (!ele.focussed && ele.value == '') ele.value = 'search keywords';}, false);}}addEvent(window, 'load', function() { fixSearchKeywordsField('searchkeywords') }, false);function highlightWord(node,word,n) {if (node.hasChildNodes) {for (var hi_cn=0;hi_cn<node.childNodes.length;hi_cn++) {highlightWord(node.childNodes[hi_cn],word,n);}}if (node.nodeType == 3) {var tempNodeVal = node.nodeValue.toLowerCase();var tempWordVal = word.toLowerCase();var ni = tempNodeVal.search(new RegExp('\\b' + tempWordVal + '\\b'));if (ni != -1) {var pn = node.parentNode;if (pn && (!pn.className || pn.className.indexOf('searchword') == -1)) {var nv = node.nodeValue;var before = document.createTextNode(nv.substr(0,ni));var docWordVal = nv.substr(ni,word.length);var after = document.createTextNode(nv.substr(ni+word.length));var hiwordtext = document.createTextNode(docWordVal);var ns = document.getElementsByTagName('html')[0].namespaceURI;var hiword = ns ? document.createElementNS(ns, 'span') : document.createElement('span');hiword.className = 'searchword searchword' + n;hiword.appendChild(hiwordtext);pn.insertBefore(before,node);pn.insertBefore(hiword,node);pn.insertBefore(after,node);pn.removeChild(node);}}}}function googleSearchHighlight() {if (!document.createElement) return;var ref = document.referrer;if (ref.indexOf('?') == -1) return;var qs = ref.substr(ref.indexOf('?')+1);var qsa = qs.split('&');for (var i=0;i<qsa.length;i++) {var qsip = qsa[i].split('=');if (qsip.length == 1) continue;if (qsip[0] == 'q' || qsip[0] == 'p') {var words = unescape(qsip[1].replace(/\+/g,' ')).split(/\s+/);for (var w=0;w<words.length;w++) {var hider = document.getElementById('searchwordhider');if (hider) {hider.style.display = 'block';}highlightWord(document.getElementsByTagName('body')[0],words[w],w+1);}}}}function googleSearchUnhighlight() {var words = document.getElementsByTagName('span');for (var w=0;w<words.length;w++) {if (words[w].className.indexOf('searchword') != -1) {words[w].className = '';}}var hide = document.getElementById('searchwordhider');if (hide) {hide.style.display = 'none';}}addEvent(window, 'load', googleSearchHighlight, false);