
		if (self.location.href != top.location.href) {
			top.location.href = self.location.href;
		}

		//if (document.createElementNS && window.DOMParser) document.createElement = function(elName) {
		//	document.createElementNS("http://www.w3.org/1999/xhtml", elName); }

		var savedhighlighttagid = '';

		var W3CDOM = (document.createElement && document.getElementsByTagName && document.getElementById);

		function trim (text) {
			text = text.replace(/^\s*|\s*$/g,"");
			return text;
		}

		function highlight(tagid) {
			if (!W3CDOM) return;
			var listid = tagid.substring(3);
			document.getElementById('list' + listid).className = 'activelist';
		}

		function savehighlight(tagid) {
			if (!W3CDOM) return;
			var listid = tagid.substring(3);
			if (document.getElementById('list' + savedhighlighttagid)) {
				document.getElementById('list' + savedhighlighttagid).className = 'inactivelist';
			}
			if (savedhighlighttagid == listid) {
				savedhighlighttagid = '';
				document.getElementById('list' + listid).className = 'activelist';
			} else {
				savedhighlighttagid = listid;
				document.getElementById('list' + listid).className = 'savedactivelist';
			}
		}

		function dehighlight(tagid) {
			if (!W3CDOM) return;
			var listid = tagid.substring(3);
			if (savedhighlighttagid == listid) {
				document.getElementById('list' + listid).className = 'savedactivelist';
			} else {
				document.getElementById('list' + listid).className = 'inactivelist';
			}
		}

		/* 
			By Simon Willison
			http://www.sitepoint.com/blogs/2004/05/26/closures-and-executing-javascript-on-page-load/
		*/
		function addLoadEvent(func) {
			var oldonload = window.onload;
			if (typeof window.onload != 'function') {
					window.onload = func;
				} else {
					window.onload = function() {
					if (oldonload) {
						oldonload();
					}
					func();
				}
			}
		}

		/* 
			Based on code by Simon Willison
			http://www.sitepoint.com/blogs/2004/05/26/closures-and-executing-javascript-on-page-load/
		*/
		function addClickEvent(func) {
			var oldonclick = window.onclick;
			if (typeof window.onclick != 'function') {
					window.onclick = func;
				} else {
					window.onclick = function() {
					if (oldonclick) {
						oldonclick();
					}
					func();
				}
			}
		}

		/* 
			Based on code by Simon Willison
			http://www.sitepoint.com/blogs/2004/05/26/closures-and-executing-javascript-on-page-load/
		*/
		function addScrollEvent(func) {
			var oldonscroll = window.onscroll;
			if (typeof window.onscroll != 'function') {
					window.onscroll = func;
				} else {
					window.onscroll = function() {
					if (oldonscroll) {
						oldonscroll();
					}
					func();
				}
			}
		}

        /*
            Developed by Robert Nyman, http://www.robertnyman.com
            Code/licensing: http://code.google.com/p/getelementsbyclassname/
        */
        var getElementsByClassName = function (className, tag, elm){
            if (document.getElementsByClassName) {
                getElementsByClassName = function (className, tag, elm) {
                    elm = elm || document;
                    var elements = elm.getElementsByClassName(className),
                        nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
                        returnElements = [],
                        current;
                    for(var i=0, il=elements.length; i<il; i+=1){
                        current = elements[i];
                        if(!nodeName || nodeName.test(current.nodeName)) {
                            returnElements.push(current);
                        }
                    }
                    return returnElements;
                };
            }
            else if (document.evaluate) {
                getElementsByClassName = function (className, tag, elm) {
                    tag = tag || "*";
                    elm = elm || document;
                    var classes = className.split(" "),
                        classesToCheck = "",
                        xhtmlNamespace = "http://www.w3.org/1999/xhtml",
                        namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
                        returnElements = [],
                        elements,
                        node;
                    for(var j=0, jl=classes.length; j<jl; j+=1){
                        classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
                    }
                    try	{
                        elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
                    }
                    catch (e) {
                        elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
                    }
                    while ((node = elements.iterateNext())) {
                        returnElements.push(node);
                    }
                    return returnElements;
                };
            }
            else {
                getElementsByClassName = function (className, tag, elm) {
                    tag = tag || "*";
                    elm = elm || document;
                    var classes = className.split(" "),
                        classesToCheck = [],
                        elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
                        current,
                        returnElements = [],
                        match;
                    for(var k=0, kl=classes.length; k<kl; k+=1){
                        classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
                    }
                    for(var l=0, ll=elements.length; l<ll; l+=1){
                        current = elements[l];
                        match = false;
                        for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
                            match = classesToCheck[m].test(current.className);
                            if (!match) {
                                break;
                            }
                        }
                        if (match) {
                            returnElements.push(current);
                        }
                    }
                    return returnElements;
                };
            }
            return getElementsByClassName(className, tag, elm);
        };

        eval(function(p,a,c,k,e,r){e=function(c){return c.toString(36)};if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'\\w'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('3.5=r;3.7=[];3.6=4(){1(d.9.8){n}d.9.8=u;1(5){q(5)}f a;for(i in 7){1(typeof(a=7[i])=="4"){a.g(2)}}};4 onDOMLoad(a){7.push(a);1(d.9.8){n}d.9.8=u;1(2.k){2.k("DOMContentLoaded",6,r)}else 1(2.all&&!3.opera){2.write(\'<j type="text/t" id="s" l="l" src="t:void(0);"><\\/j>\');f b=2.getElementById("s");b.onreadystatechange=4(){1(this.o=="m"){6.g(2)}}}1(/Safari/i.p(navigator.userAgent)){5=setInterval(4(){1(/loaded|m/.p(2.o)){q(5);6.g(2)}},10)}f c=(3.h)?3.h:4(){};3.h=4(e){c(e);6()}}',[],31,'|if|document|window|function|sFT|callDLFs|onDLFs|done|callee||||arguments||var|apply|onload||script|addEventListener|defer|complete|return|readyState|test|clearInterval|false|contentloadtag|javascript|true'.split('|'),0,{}))
