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(text, link) {var subject = emaillinks_config.subj.exec(text);if (subject) {link.setAttribute('href', link.getAttribute('href') + '?subject=' + subject[1]);}}function _emaillinks_process(ele) {var i, r, title, newText;var cfg = emaillinks_config;var node = ele.childNodes[0];var txtLink = node.nodeType == 3;var imgLink = node.nodeType == 1 && node.tagName.toLowerCase() == 'img';var text = null;if (txtLink) text = node.nodeValue;if (imgLink) text = node.getAttribute('alt');if (!text) return;var name = (cfg.name) ? cfg.name.exec(text) : null;var addr = (cfg.addr) ? cfg.addr.exec(text) : null;if (addr) {title = ele.getAttribute('title');addr = addr[1];if (cfg.unobs) {for (i = 0; i < cfg.unobs.length; i++) {r = cfg.unobs[i];addr = addr.replace(r.re, r.txt);}}newText = (name) ? name[1] : (!title) ? addr : title;if (txtLink) node.nodeValue = newText;if (imgLink) node.setAttribute('alt', newText);ele.setAttribute('href', 'mailto:' + addr);if (cfg.process) {for (i = 0; i < cfg.process.length; i++) {cfg.process[i](text, ele);}}}}function _emaillinks_processAll() {var classNameRE = new RegExp('\\b' + ((emaillinks_config.className) ? emaillinks_config.className : 'email') + '\\b');var i, ele, eles = document.getElementsByTagName('a');for (i = 0; i < eles.length; i++) {ele = eles[i];if (ele.className && classNameRE.test(ele.className) && !ele.getAttribute('href')) {_emaillinks_process(ele);}}}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) {var hi_cn, tempNodeVal, tempWordVal, ni, pn, nv, before, docWordVal, after, hiwordtext, ns, hiword;if (node.hasChildNodes) {for (hi_cn=0;hi_cn<node.childNodes.length;hi_cn++) {highlightWord(node.childNodes[hi_cn],word,n);}}if (node.nodeType == 3) {tempNodeVal = node.nodeValue.toLowerCase();tempWordVal = word.toLowerCase();ni = tempNodeVal.search(new RegExp('\\b' + tempWordVal + '\\b'));if (ni != -1) {pn = node.parentNode;if (pn && (!pn.className || pn.className.indexOf('searchword') == -1)) {nv = node.nodeValue;before = document.createTextNode(nv.substr(0,ni));docWordVal = nv.substr(ni,word.length);after = document.createTextNode(nv.substr(ni+word.length));hiwordtext = document.createTextNode(docWordVal);ns = document.getElementsByTagName('html')[0].namespaceURI;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() {var ref, qs, qsa, i, qsip, words, w, hider;if (!document.createElement) return;if (!document.referrer) return;ref = document.referrer;i = ref.indexOf('?');if (i == -1) return;qs = ref.substr(i+1);qsa = qs.split('&');for (i=0;i<qsa.length;i++) {qsip = qsa[i].split('=');if (qsip.length == 1) continue;if (qsip[0] == 'q' || qsip[0] == 'p') {words = unescape(qsip[1].replace(/\+/g,' ')).split(/\s+/);for (w=0;w<words.length;w++) {hider = document.getElementById('searchwordhider');if (hider) {hider.style.display = 'block';}highlightWord(document.getElementsByTagName('body')[0],words[w],w+1);}}}}function googleSearchUnhighlight() {var hide, w, words = document.getElementsByTagName('span');for (w=0;w<words.length;w++) {if (words[w].className.indexOf('searchword') != -1) {words[w].className = '';}}hide = document.getElementById('searchwordhider');if (hide) {hide.style.display = 'none';}}addEvent(window, 'load', googleSearchHighlight, false);addEvent(window, 'load', function() {var headingTags = ['h2','h3'];for (var i = 0; i < headingTags.length; i++) {var headingElements = document.getElementsByTagName(headingTags[i]);for (var j = 0; j < headingElements.length; j++) {var id = headingElements[j].getAttribute('id');if (id && id != '') {var title = headingElements[j].getAttribute('title');if (!title || title == '') {headingElements[j].setAttribute('title', '#' + id);}}}}}, false);