 /**
 * Halo (Halofree.com's Ajax, Libraries, and Objects) Version: 0.9.1
 * Copyright (c) 2006, Dustin Hansen. All rights reserved.
 * Code license: http://creativecommons.org/licenses/LGPL/2.1/
 */
var Halo={bookmarks:false,shortcuts:true};Halo.extend=function(){var objPrototype=(arguments[0]==null?{}:arguments[0]);for(var i=1;i<arguments.length;i++){var obj=arguments[i];if(obj!==null&&typeof obj!='undefined'){for(var attrib in obj){objPrototype[attrib]=obj[attrib]}}}if(objPrototype.NAME&&objPrototype.VERSION){objPrototype.toString=function(){return"["+objPrototype.NAME+" v"+objPrototype.VERSION+"]"}}return objPrototype};Halo.extend(Halo,{NAME:'Halo',VERSION:'0.9.1',libraries:[],hasInitd:false,initBookmarks:[],haloRegex:/^(.+)?halo(?:-min)?\.js$/i,initialize:function(){if(typeof halo_init=='function'){halo_init()}if(this.bookmarking&&document.location.hash.match(/^\#HALO\:/)){this.loadBookmarks()}this.hasInitd=true},uninitialize:function(){},loadBookmarks:function(){if(document.location.hash.match(/^\#HALO:(.+)$/)){var urlTest=null;var savedBookmarks=RegExp.$1.split("|");for(var i=0;i<savedBookmarks.length;i++){if((urlTest=savedBookmarks[i])!=""){var ajaxRequest=urlTest.split(":");Halo.initBookmarks.push(ajaxRequest.slice());ajaxRequest[1]=(ajaxRequest[1]?ajaxRequest[1].replace(/\,/g,"','"):"");eval(decodeURIComponent(ajaxRequest[0]+"('"+ajaxRequest[1]+"')"))}}}},setEnvironment:function(){this.domain=document.location.hostname||document.location.host||false;this.domainpath=document.location.pathname||false;this.isSecure=document.location.protocol.match(/https/i)?1:0;this.isLocal=document.location.protocol.match(/file/i)?1:0;var ua=navigator.userAgent;var an=navigator.appName;this.ff=(an=="Netscape")?1:0;this.ie=(an.match(/microsoft/i))?1:0;this.op=(ua.match(/Opera/i))?1:0;this.kn=(ua.match(/Konqueror/i))?1:0;this.sf=(ua.match(/Safari/i))?1:0;var versions=[/.+MSIE (\d).+/,/.+Firefox\/(.+)$/,/.+Opera (.+)$/,/.+Konqueror\/([^\;]+);.+/];for(var i=0;i<versions.length;i++){if(ua.match(versions[i])){this.ver=RegExp.$1}}this.path=false;this.scriptTag=false;var scripts=document.getElementsByTagName("script");for(var i=0;i<scripts.length;i++){if(!scripts[i].getAttribute('src')){continue}if(scripts[i].getAttribute('src').match(this.haloRegex)){this.path=RegExp.$1;this.scriptTag=scripts[i];break}}}});Halo.setEnvironment();if(typeof Halo.util=='undefined'){Halo.util={}}Halo.extend(Halo.util,{VERSION:'0.5.1',NAME:'Halo.util',camelCase:function(_attribute){return _attribute.replace(/-(\w)/g,function(a,b){return b.toUpperCase()})},CSSCase:function(_attribute){return _attribute.replace(/([A-Z])/g,function(a,b){return"-"+b.toLowerCase()})},unloadinit:false,addLoadEvent:function(_function,_unload){var wload=(_unload?'onunload':'onload');var oldonload=window[wload];window[wload]=function(){if(oldonload instanceof Function){oldonload()}if(!_function){(wload=='onload'?Halo.initialize():Halo.uninitialize())}else{_function()}};if(!_function&&!this.unloadinit){this.unloadinit=true;this.addLoadEvent(null,1)}},eventList:[],addEvent:function(_elem,_event,_function,_capture,_args){_event=_event.replace(/^on/i,'');if(_elem.addEventListener&&!window.opera){_elem.addEventListener(_event,_function,_capture)}else if(_elem.attachEvent){_elem.attachEvent('on'+_event,_elem['e'+_event+_function]=_function)}this.eventList[(_elem.id||_elem.name)]=_event},removeEvent:function(_elem,_event,_function){_event=_event.replace(/^on/i,'');if(_elem.removeEventListener){_elem.removeEventListener(_event,_function,true)}else if(_elem.detachEvent){_elem.detachEvent('on'+_event,_function)}else{_elem['on'+_event]=null}if(this.eventList[_elem]){var elem=_elem.id||_elem.name;delete this.eventList[elem]}},mergeObjects:function(_primary,_secondary){var finalObject={};if(_primary instanceof Object&&_secondary instanceof Object){for(var mem in _primary){finalObject[mem]=_primary[mem]}for(var mem in _secondary){finalObject[mem]=_secondary[mem]}}return finalObject},preventBubble:function(_event){if(_event.stopPropagation){_event.stopPropagation()}else if(_event.preventBubble){_event.preventBubble()}},preventLeaks:function(){for(var e in this.eventList){var elem=Halo.DOM.id(e)||Halo.DOM.name(e);}},css:function(_request){if(typeof _request=='object'){$_=_request;$_.attrib=this.camelCase($_.attrib);if(typeof $_.newvalue!='undefined'){$_.newValue=$_.newvalue;delete $_.newvalue}}else{return false}if($_.elem&&!$_.elem.className&&$_.newValue){var thisElem=($_.elem.nodeType==1?$_.elem:Halo.DOM.id($_.elem));thisElem.style[$_.attrib]=$_.newValue;return}var styleAttrib=false;var cssRules=(Halo.ie)?'rules':'cssRules';$_.selector=($_.literal?$_.selector:this.regEscape($_.selector));var classRegex=new RegExp("(^|.)"+$_.selector+"(,| |$)","i");var multi=new RegExp(",");for(var i=document.styleSheets.length-1;i>=0;i--){var docStyles=document.styleSheets[i][cssRules];for(var e=docStyles.length-1;e>=0;e--){var classStyle=docStyles[e].style;if(classRegex.test(docStyles[e].selectorText)){if($_.newValue&&!(multi.test(RegExp.$_1))&&!(multi.test(RegExp.$_1))){if(Halo.ie){var dumbIE=this.camelCase($_.attrib);classStyle[dumbIE]=$_.newValue}else{classStyle.setProperty(this.CSSCase($_.attrib),$_.newValue,($_.important?"important":null))}styleAttrib=true;if(!$_.global){break}}else if(classStyle[$_.attrib]){styleAttrib=classStyle[$_.attrib];break}}}if(styleAttrib&&!$_.global){break}}return styleAttrib},escChars:["[","]","(",")",".","*","&","^","+","{","}","?","/","="],regEscape:function(_str){for(var i=0;i<this.escChars.length;i++){var escReg=new RegExp("\\"+this.escChars[i],"g");_str=_str.replace(escReg,"\\"+this.escChars[i])}return _str},getCookie:function(_name){var cookies=document.cookie.split(';');var cRegex=new RegExp(_name+"=(.*)");for(var i=0;i<cookies.length;i++){if(cRegex.test(cookies[i])){return RegExp.$1}}return 0},setCookie:function(_name,_value,_days,_path,_secure,_domain){if(_days){var date=new Date();date.setTime(date.getTime()+(_days*24*60*60*1000));var expires=date.toGMTString()}document.cookie=_name+"="+_value+(_days?";expires="+expires:"")+";path="+(_path||"/")+(Halo.domain?";domain=."+(_domain||Halo.domain):'')+(_secure?";secure":"")},delCookie:function(_name){this.setCookie(_name,null,-1)},setOpacity:function(_elem,_opacity){_elem=(_elem&&_elem.nodeType==1?_elem:Halo.DOM.id(_elem));var opacity=(Halo.ie&&!Halo.op?(_opacity*(_opacity<1?100:1)):(_opacity/(_opacity>1?100:1)));if(Halo.ie&&!Halo.op){_elem.style.filter="Alpha(Opacity="+opacity+")"}else if(Halo.kn){_elem.style.KHTMLOpacity=opacity}else if(Halo.ff&&Halo.ver<1.5){_elem.style.MozOpacity=opacity}else{_elem.style.opacity=opacity}},getOpacity:function(_elem){var theOpacity=null;if(Halo.ie&&!Halo.op){if(_elem.style.filter.match(/opacity\s?\=\s?(\d+)/i)){theOpacity=RegExp.$1/(Halo.ie&&!Halo.op?1:100)}}else if(Halo.kn){theOpacity=_elem.style.KHTMLOpacity}else if(Halo.ff&&Halo.ver<1.5){theOpacity=_elem.style.MozOpacity}else{theOpacity=_elem.style.opacity}return theOpacity}});Halo.util.addLoadEvent();if(typeof UTIL=='undefined'&&Halo.shortcuts){UTIL=Halo.util}if(typeof Halo.DOM=='undefined'){Halo.DOM={}}Halo.extend(Halo.DOM,{VERSION:'0.4.3',NAME:'Halo.DOM',id:function(){if(!arguments[0]){return false}var elements=[];for(var i=0;i<arguments.length;i++){if(typeof arguments[i]=='string'){elements.push(document.getElementById(arguments[i])||false)}else if(arguments[i].nodeType==1){elements.push(arguments[i])}}return(elements.length<=1?elements[0]:elements)},name:function(_name,_elem){var elements=false;var baseElement=(_elem&&_elem.nodeType==1?_elem:document);if(typeof _name=='string'){elements=baseElement.getElementsByName(_name)}return elements},tag:function(_tag,_elem){var elements=false;var baseElement=(_elem&&_elem.nodeType==1?_elem:document);if(typeof _tag=='string'){elements=baseElement.getElementsByTagName(_tag)}return elements},Class:function(_class,_tag,_elem){var elementList=[];if(typeof _class=="string"){var elems=this.tag((_tag||"*"),(_elem&&_elem.nodeType==1?_elem:document));var classRegex=new RegExp("(^|[^\\S])"+_class+"([^\\S]|$)");for(var i=0;i<elems.length;i++){if(classRegex.test(elems[i].className)){elementList.push(elems[i].id)}}}return elementList},attrib:function(_attr,_attrValue,_tag,_top){var possNodes=this.tag((_tag||"*"),((typeof _top=='object'?_top:this.id(_top))||""));var nodesList=[];for(var i=0;i<possNodes.length;i++){var nodeValue='';if(nodeValue=possNodes[i].getAttribute(_attr)){if(_attrValue){if(nodeValue==_attrValue){nodesList.push(possNodes[i])}}else{nodesList.push(possNodes[i])}}}return nodesList},prependChild:function(_elem,_parent,_childElem){if(_elem.nodeType==1){if(typeof _parent=='string'){_parent=this.id(_parent)}_parent.insertBefore(_elem,(_childElem?_childElem:_parent.firstChild))}},insertAfter:function(_elem,_sibling){if(_elem.nodeType==1){if(typeof _sibling=='string'){_sibling=this.id(_sibling)}_sibling.parentNode.insertBefore(_elem,_sibling.nextSibling)}},createElement:function(_tag,_attribs){if(_tag instanceof Object){_attribs=_tag;_tag=_attribs.elem;delete _attribs.elem}var elem=document.createElement(_tag);for(var attr in _attribs){switch(attr){case"event":case"events":if(_attribs[attr]instanceof Object){for(var evt in _attribs[attr]){if(_attribs[attr][evt].func){Halo.util.addEvent(elem,evt,_attribs[attr][evt].func,(_attribs[attr][evt].capture||false))}}}break;case"cssText":case"style":case"css":elem.style.cssText=_attribs[attr];break;case"className":case"class":elem.className=_attribs[attr];break;case"innerHTML":case"html":case"content":if(_attribs[attr].nodeType==1){elem.appendChild(_attribs[attr])}else{elem.innerHTML=_attribs[attr]}break;case"parent":case"insert":case"append":case"after":break;default:elem.setAttribute(attr,_attribs[attr])}}if(_attribs.parent&&_attribs.parent.nodeType==1){if(_attribs.after){this.insertAfter(elem,_attribs.after)}else if(_attribs.insert&&_attribs.insert=='prepend'){this.prependChild(elem,_attribs.parent,(_attribs.append?_attribs.append:null))}else{_attribs.parent.appendChild(elem)}return true}return elem},destroyElements:function(_tag,_parent,_attrib,_attribValue){var elements=[];if(_attrib){elements=this.attrib(_attrib,_attribValue,_tag,_parent)}else{elements=this.tag(_tag,_parent)}for(var i=elements.length-1;i>=0;i--){if(typeof elements[i]=='object'){elements[i].parentNode.removeChild(elements[i])}}},swapElements:function(_elemOne,_elemTwo){var elem1Clone=(typeof _elemOne!='object'?Halo.DOM.id(_elemOne):_elemOne).cloneNode(true);var elem2Clone=(typeof _elemTwo!='object'?Halo.DOM.id(_elemTwo):_elemTwo).cloneNode(true);_elemTwo.parentNode.insertBefore(elem1Clone,_elemTwo);_elemOne.parentNode.insertBefore(elem2Clone,_elemOne);_elemOne.parentNode.removeChild(_elemOne);_elemTwo.parentNode.removeChild(_elemTwo)},getComputed:function(_elem,_attrib){if(!_elem||!_attrib){return false}var elem=(_elem.nodeType==1?_elem:this.id(_elem));var attValue=false;if(elem.currentStyle){attValue=elem.currentStyle[Halo.util.camelCase(_attrib)]}else if(window.getComputedStyle){attValue=document.defaultView.getComputedStyle(elem,null).getPropertyValue(Halo.util.CSSCase(_attrib))}return attValue}});if(typeof $=='undefined'&&Halo.shortcuts){$=Halo.DOM}if(typeof Halo.colours=='undefined'){Halo.colours={}}Halo.extend(Halo.colours,{VERSION:'0.3.1',NAME:'Halo.colours',hexRegex:/^\#?([0-9a-f]{3}|[0-9a-f]{6})$/i,rgbRegex:/^(?:rgb\()?((?:\d{1,3},?){3})\)?/,rgbRegex2:/^((?:rgb\()(?:\d{1,3}\s*,?\s*){3}\)?)/,isDarker:function(){},isLighter:function(){},colourToRGB:function(_colour){var rgbColour=null;(_colour instanceof Array?_colour=_colour.toString():'');var colourName=(_colour instanceof String?_colour.toLowerCase():_colour.replace(/ /g,''));if(typeof this.colourNames[colourName]!='undefined'){rgbColour=this.colourToRGB(this.colourNames[colourName])}else if(colourName.match(this.hexRegex)){rgbColour=[];colourName=colourName.replace(/^#/,'');if(colourName.length==3){for(i=0;i<3;i++){var hex=colourName.substr(i,1);rgbColour.push(parseInt(hex+hex,16))}}else{for(var i=0;i<6;i+=2){var hex=colourName.substr(i,2);rgbColour.push(parseInt(hex,16))}}}else if(colourName.match(this.rgbRegex)){rgbColour=RegExp.$1.split(',');for(var i=0;i<3;i++)rgbColour[i]=parseInt(rgbColour[i])}return rgbColour},colourToHex:function(_colour){var hexColour=null;(_colour instanceof Array?_colour=_colour.toString():'');var colourName=(_colour instanceof String?_colour.toLowerCase():_colour.replace(/ /g,''));if(typeof this.colourNames[colourName]!='undefined'){hexColour=this.colourNames[colourName]}else if(colourName.match(this.hexRegex)){hexColour=colourName}else if(colourName.match(this.rgbRegex)){hexColour='';var rgbColour=RegExp.$1.split(',');for(var i=0;i<3;i++){var rgb=Math.round(rgbColour[i]);var hex=rgb.toString(16);hexColour+=(hex<16?'0'+hex:hex)}}else{hexColour=_colour}return hexColour},colourToName:function(_colour){var nameColour=null;(_colour instanceof Array?_colour=_colour.toString():'');var colourName=(_colour instanceof String?_colour.toLowerCase():_colour.replace(/ /g,''));if(colourName.match(this.rgbRegex)){colourName='#'+this.colourToHex(RegExp.$1)}else if(!(colourName.match(this.hexRegex))){return colourName}colourName=(colourName.match(/^\#/)?colourName:'#'+colourName);for(var color in this.colourNames){if(this.colourNames[color]==colourName){nameColour=color;break}}return nameColour},currentColour:function(_elem,_attrib){var elem=(typeof _elem=='object'?_elem:Halo.DOM.id(_elem))||null;var colour=null;if(elem&&elem.currentStyle){colour=elem.currentStyle[Halo.util.camelCase(_attrib)]}else if(elem&&window.getComputedStyle){colour=document.defaultView.getComputedStyle(elem,null).getPropertyValue(Halo.util.CSSCase(_attrib))}if(!colour){colour=elem.style[Halo.util.camelCase(_attrib)];if(colour.match(this.rgbRegex2)){colour=RegExp.$1}}while(colour=='transparent'){if((!colour||colour=='transparent')&&elem.parentNode.tagName.toLowerCase()=='body'){colour='FFFFFF';break}colour=(elem.parentNode?this.currentColour(elem.parentNode,Halo.util.camelCase(_attrib)):null)}return colour},colourGraph:function(){},colourCompliments:function(){},morphColour:function(_startColour,_endColour,_shades){if(!_startColour||!_endColour||!_shades){return false}var startColour=(_startColour instanceof Array?_startColour:this.colourToRGB(_startColour)).slice();var endColour=(_endColour instanceof Array?_endColour:this.colourToRGB(_endColour)).slice();var colourWheel=[startColour];var diff=this.differences(startColour,endColour);for(var i=1;i<=_shades;i++){var thisShade=colourWheel[colourWheel.length]=[];for(var e=0;e<3;e++){var thisStep=parseInt(startColour[e]+(diff[e]*(i/_shades)));thisStep=(thisStep>255?255:thisStep<0?0:thisStep);thisShade[e]=parseInt(startColour[e]+(diff[e]*(i/_shades)))}}return colourWheel},differences:function(_colourOne,_colourTwo){var diffs=[];for(var i=0;i<_colourOne.length;i++){diffs[i]=parseFloat(_colourTwo[i]-_colourOne[i])}return diffs}});Halo.extend(Halo.colours,{colourNames:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}});if(typeof COLOR=='undefined'&&Halo.shortcuts){COLOR=Halo.colours}if(typeof Halo.effects=='undefined'){Halo.effects={}}Halo.extend(Halo.effects,{VERSION:'0.2.1',NAME:'Halo.effects',intervals:[],minMax:function(){},showHide:function(){},slideIn:function(){},slideAround:function(){}});Halo.effects.slideOut=function(_request){if(!_request.elem){return false}_request.elem=(_request.elem.nodeType==1?_request.elem:Halo.DOM.id(_request.elem));new Halo.effects._slideOut(_request)};Halo.effects._slideOut=function(_request){this.$_=_request;this.marginDir="margin-"+(this.$_.dir.match(/(top|bottom)/i)?'top':'left');this.shrinkDir=(this.$_.dir.match(/(top|bottom)/i)?'height':'width');this.cycles=0;this.steps=this.$_.steps||10;this.interval=this.$_.interval||40;if(!this.$_.elem.getAttribute("fx_slide")){this.$_.elem.setAttribute("fx_slide","-")}this.$_.elem.setAttribute("fx_overflow",Halo.DOM.getComputed(this.$_.elem,'overflow'));this.$_.elem.style.overflow="hidden";this.area=(this.marginDir.match(/top$/)?this.$_.elem.clientHeight:this.$_.elem.clientWidth);this.offset=parseInt(this.area/this.steps);var contentClone=Halo.DOM.createElement("div",{"id":this.$_.elem.id+"__sliding","content":this.$_.elem.innerHTML});this.$_.elem.innerHTML="";this.$_.elem.appendChild(contentClone);this.slideElem=Halo.DOM.id(this.$_.elem.id+"__sliding");this.slideElem.style.width=this.slideElem.clientWidth+"px";this.slideElem.style.height=this.slideElem.clientHeight+"px";var self=this;this.intervalIndex=Halo.effects.intervals.length;Halo.effects.intervals[this.intervalIndex]=window.setInterval(function(){self._startSlideOut.call(self)},this.interval)};Halo.effects._slideOut.prototype={_startSlideOut:function(){var newMargin=parseInt(this.area*(this.cycles/this.steps));newMargin=Math.abs(newMargin)*(this.$_.dir.match(/(bottom|right)$/)?1:-1);Halo.util.css({elem:this.slideElem,attrib:this.marginDir,newValue:newMargin+"px"});if(this.$_.shrink){Halo.util.css({elem:this.$_.elem,attrib:this.shrinkDir,newValue:(this.area+newMargin)+"px"})}this.cycles++;if(this.cycles>this.steps){window.clearInterval(Halo.effects.intervals[this.intervalIndex]);delete Halo.effects.intervals[this.intervalIndex];this.$_.elem.setAttribute("fx_slide","out")}}};Halo.effects.fadeSwap=function(_request){if(_request.elem&&_request.elem instanceof Array){_request.elemOne=(typeof _request.elem[0]!='object'?Halo.DOM.id(_request.elem[0]):_request.elem[0]);_request.elemTwo=(typeof _request.elem[1]!='object'?Halo.DOM.id(_request.elem[1]):_request.elem[1]);_request.elemOneID=_request.elemOne.id;_request.elemTwoID=_request.elemTwo.id}if(!_request.elemOne||!_request.elemTwo||!_request.elemOneID||!_request.elemTwoID){return false}else{new Halo.effects._fadeSwap(_request)}};Halo.effects._fadeSwap=function(_request){this.req=_request;this.cycles=0;this.shadeSide=1;this.elemOpacity=100;this.delay=_request.delay||5;this.interval=_request.interval||40;var self=this;this.intervalIndex=Halo.effects.intervals.length;Halo.effects.intervals[this.intervalIndex]=window.setInterval(function(){self._startFadeswap.call(self)},this.interval)};Halo.effects._fadeSwap.prototype={_startFadeswap:function(){if(this.cycles>10&&this.shadeSide){this.shadeSide=0;this.elemOpacity=0;this.cycles=-this.delay;Halo.DOM.swapElements(this.req.elemOne,this.req.elemTwo);this.req.elemOne=Halo.DOM.id(this.req.elemOneID);this.req.elemTwo=Halo.DOM.id(this.req.elemTwoID)}if(this.cycles>=0){(this.shadeSide?this.elemOpacity-=10:this.elemOpacity+=10);this.elemOpacity=(this.elemOpacity<0?0:this.elemOpacity>100?100:this.elemOpacity);Halo.util.setOpacity(this.req.elemOne,this.elemOpacity);Halo.util.setOpacity(this.req.elemTwo,this.elemOpacity)}this.cycles++;if(this.cycles>10&&!this.shadeSide){window.clearInterval(Halo.effects.intervals[this.intervalIndex]);delete Halo.effects.intervals[this.intervalIndex]}}};Halo.effects.fadeOut=function(_request){_request.elem=(_request.elem&&_request.elem.nodeType==1?_request.elem:Halo.DOM.id(_request.elem));if(_request.elem.nodeType==1){new Halo.effects._fadeOut(_request)}else{return false}};Halo.effects._fadeOut=function(_request){this.req=_request;this.interval=_request.interval||40;this.shades=_request.shades||10;this.destroy=_request.destroy||false;this.opacity=100;this.minOpacity=_request.minOpacity||0;this.eachStep=parseInt(this.opacity/this.shades);Halo.util.setOpacity(this.req.elem,this.opacity);var self=this;this.intervalIndex=Halo.effects.intervals.length;Halo.effects.intervals[this.intervalIndex]=window.setInterval(function(){self._startFadeout.call(self)},this.interval)};Halo.effects._fadeOut.prototype={_startFadeout:function(){this.opacity-=this.eachStep;if(this.opacity>=this.minOpacity){Halo.util.setOpacity(this.req.elem,this.opacity)}else{if(this.destroy){this.req.elem.parentNode.removeChild(this.req.elem)}window.clearInterval(Halo.effects.intervals[this.intervalIndex]);delete Halo.effects.intervals[this.intervalIndex];if(this.req.elem.getAttribute("halodisplay")){this.req.elem.style.display=this.req.elem.getAttribute("halodisplay")}}}};Halo.effects.fadeIn=function(_request){_request.elem=(_request.elem&&_request.elem.nodeType==1?_request.elem:Halo.DOM.id(_request.elem));if(_request.elem.nodeType==1){new Halo.effects._fadeIn(_request)}else{return false}};Halo.effects._fadeIn=function(_request){this.req=_request;this.interval=_request.interval||40;this.shades=_request.shades||10;this.opacity=0;this.eachStep=parseInt(100/this.shades);Halo.util.setOpacity(this.req.elem,this.opacity);if(this.req.elem.style.display=="none"){this.req.elem.setAttribute("halodisplay","none");this.req.elem.style.display="block"}var self=this;this.intervalIndex=Halo.effects.intervals.length;Halo.effects.intervals[this.intervalIndex]=window.setInterval(function(){self._startFadein.call(self)},this.interval)};Halo.effects._fadeIn.prototype={_startFadein:function(){this.opacity+=this.eachStep;if(this.opacity<=100){Halo.util.setOpacity(this.req.elem,this.opacity)}else{window.clearInterval(Halo.effects.intervals[this.intervalIndex]);delete Halo.effects.intervals[this.intervalIndex]}}};Halo.effects.highlight=function(_request){_request.elem=(typeof _request.elem=='object'?_request.elem:Halo.DOM.id(_request.elem)||null);_request.cssElem=_request.cssElem||_request.cssElem||null;if(!_request.color||(!_request.elem&&!_request.cssElem)){return false}else{new Halo.effects._highlight(_request)}};Halo.effects._highlight=function(_request){this.req=_request;this.cycles=0;this.shades=_request.shades||10;this.global=_request.global;this.interval=_request.interval||40;this.cssAttribute=Halo.util.camelCase(_request.cssAttribute||"backgroundColor");_request.color=_request.color||'yellow';var colourNow=(this.req.cssElem?Halo.util.css({"selector":this.req.cssElem,"attrib":this.cssAttribute,"global":this.global}):Halo.colours.currentColour(this.req.elem,this.cssAttribute))||'FFF';this.colourBack=[];this.colourWheel=Halo.colours.morphColour(colourNow,_request.color,this.shades);var self=this;this.intervalIndex=Halo.effects.intervals.length;Halo.effects.intervals[this.intervalIndex]=window.setInterval(function(){self._startHighlight.call(self)},this.interval)};Halo.effects._highlight.prototype={_startHighlight:function(){if(this.colourWheel.length==0&&this.colourBack){this.colourBack.reverse();this.colourWheel=this.colourBack.slice();delete this.colourBack;this.cycles=-8}else{if(this.cycles>=0){var thisColour=this.colourWheel.shift();if(this.colourBack){this.colourBack.push(thisColour)}if(this.req.cssElem){Halo.util.css({"selector":this.req.cssElem,"attrib":this.cssAttribute,"newValue":"rgb("+thisColour+")","global":this.global})}else{this.req.elem.style[this.cssAttribute]="rgb("+thisColour+")"}}this.cycles++}if(this.colourWheel.length<1&&!this.colourBack){window.clearInterval(Halo.effects.intervals[this.intervalIndex]);delete Halo.effects.intervals[this.intervalIndex]}}};Halo.effects.newColour=function(_request){_request.elem=(typeof _request.elem=='object'?_request.elem:Halo.DOM.id(_request.elem));if(!_request.color||(!_request.elem&&!_request.cssElem)){return false}else{new Halo.effects._newColour(_request)}};Halo.effects._newColour=function(_request){this.req=_request;this.shades=this.req.shades||10;this.cssElem=_request.cssElem||null;this.global=_request.global;this.interval=_request.interval||40;this.cssAttribute=Halo.util.camelCase(_request.cssAttribute||"backgroundColor");this.currentColour=(this.req.cssElem?Halo.util.css({"selector":this.req.cssElem,"attrib":this.cssAttribute,"global":this.global}):Halo.colours.currentColour(this.req.elem,this.cssAttribute))||'FFF';this.colourWheel=Halo.colours.morphColour(this.currentColour,this.req.color,this.shades);var self=this;this.intervalIndex=Halo.effects.intervals.length;Halo.effects.intervals[this.intervalIndex]=window.setInterval(function(){self._morphColour.call(self)},this.interval)};Halo.effects._newColour.prototype={_morphColour:function(){var thisColour=this.colourWheel.shift();if(this.req.cssElem){Halo.util.css({"selector":this.req.cssElem,"attrib":this.cssAttribute,"newValue":"rgb("+thisColour+")","global":this.global})}else{this.req.elem.style[this.cssAttribute]="rgb("+thisColour+")"}if(this.colourWheel.length<=0){window.clearInterval(Halo.effects.intervals[this.intervalIndex]);delete Halo.effects.intervals[this.intervalIndex]}}};if(typeof FX=='undefined'&&Halo.shortcuts){FX=Halo.effects}if(typeof Halo.net=='undefined'){Halo.net={}}Halo.extend(Halo.net,{VERSION:'0.9.5',NAME:'Halo.net',xml:null,text:null,timeout:60,retries:3,session:{'async':true,'error':null,'method':'GET','sends':null,'userAgent':'Halo Ajax Object'},_activeXObjects:['MSXML2.XMLHTTP','Microsoft.XMLHTTP','MSXML2.XMLHTTP.4.0']});Halo.net.ajax=function(_options){this.opts=Halo.util.mergeObjects(Halo.net.session,_options);if(this.opts.url==null){this.opts.error="No valid URL";this.opts.onFail.call(this)}else{if(this.opts.url.match(/^\w+:/)){this.opts.url=Halo.path+"ajax/halo-proxy.php?url="+this.opts.url}this.opts.method=(this.opts.method.match(/^[post|get]$/i)?this.opts.method.toUpperCase():'GET');if(typeof this.opts.params!='undefined'){if(this.opts.params.nodeType==1){if(this.opts.params.tagName.toLowerCase()=="form"){}}else if(typeof this.opts.params=='object'){}else{this.opts.url+=(this.opts.url.match(/\?/)?"&":"?")+this.opts.params}}this.opts.sends=(this.opts.method=="GET"?null:this.opts.params);this.request()}};Halo.net.ajax.prototype={request:function(url){if(this.XHR=this.createXHR()){try{var self=this;this.XHR.onreadystatechange=function(){self.onReadyState.call(self)};this.opts.startTime=new Date().getTime();this.XHR.open(this.opts.method,this.opts.url,this.opts.async);this.setXHRHeaders();this.XHR.send(this.opts.sends)}catch(err){if(typeof this.opts.onFail=='function'){this.opts.onFail.call(this)}else if(this.opts.onFail=='default'){this.defaultError.call(this)}}}},createXHR:function(){var XHRObject=false;if(window.XMLHttpRequest){XHRObject=new XMLHttpRequest()}else if(window.ActiveXObject){for(var i=0;i<Halo.net._activeXObjects.length;i++){try{XHRObject=new window.ActiveXObject(Halo.net._activeXObjects[i])}catch(e){}}}return XHRObject},onReadyState:function(){if(new Date().getTime()>(this.opts.startTime+Halo.net.timeout)){}switch(this.XHR.readyState){case 0:case 1:case 2:case 3:if(typeof this.opts.onWait=='function'){this.opts.onWait.call(this)}break;case 4:if(this.XHR.status==200||this.XHR.status==0||window.location.href.indexOf("http")==-1){this.xml=this.XHR.responseXML;this.text=this.XHR.responseText;if(typeof this.opts.onComplete=='function'){this.opts.onComplete.call(this)}}else{if(this.opts.onFail instanceof Function){this.opts.onFail.call(this)}}break;default:}},setXHRHeaders:function(){this.XHR.setRequestHeader("User-agent",this.opts.userAgent);this.XHR.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT");if(this.opts.headers instanceof Object){for(var head in this.opts.headers){this.XHR.setRequestHeader(head,this.opts.headers[head])}}if(this.opts.method=="POST"&&typeof this.opts.params!='undefined'){this.XHR.setRequestHeader("Content-type","application/x-www-form-urlencoded");this.XHR.setRequestHeader("Content-length",this.opts.params.length);this.XHR.setRequestHeader("Connection","close")}},abortXHRConnect:function(){this.XHR.abort();delete this.XHR},defaultError:function(){var XHR=this.XHR;throw"Error at "+XHR.readyState+" readyState, status: "+XHR.status+" "+XHR.statusText+"\nheaders: "+XHR.getAllResponseHeaders()},_setBookmark:function(_callee,_arguments,_setUnique){_callee.match(/^function ([^\(]+)/);var funcCall=RegExp.$1;var funcArgs='';for(var i=0;i<_arguments.length;i++){if(funcArgs)funcArgs+=",";funcArgs+=_arguments[i]}if(_setUnique==true){document.location.hash="HALO:"+funcCall+":"+funcArgs}else{var hashStart=(document.location.hash.match(/^\#HALO:(.+)/)?RegExp.$1+"|":"");document.location.hash=this._uniqueHash(hashStart+funcCall+":"+funcArgs,_setUnique)}},_uniqueHash:function(_bookmarks,_setUnique){var uniqRegex=(_setUnique=="function"?/^[^\:]+/:/^.+$/);var bookmarks=arguments[0].split("|");for(var i=0;i<bookmarks.length;i++){for(var j=(i+1);j<bookmarks.length;j++){if(bookmarks[i]&&bookmarks[j]){if(bookmarks[i].match(uniqRegex)==bookmarks[j].match(uniqRegex)){delete bookmarks[j]}}}}bookmarks=encodeURIComponent("HALO:"+(bookmarks.length>1?bookmarks.join("|"):bookmarks));return bookmarks.replace(/\|{2,}/g,"\|")}};Halo.net.include=function(_request){this.request=_request;this._sendRequest()};Halo.net.include.prototype={_sendRequest:function(){var appendElem=(typeof this.request.insert=='object'?this.request.insert:(Halo.DOM.tag('head')[0]||Halo.DOM.tag('html')[0]));if(Halo.DOM.id(this.request.id)){appendElem.removeChild(Halo.DOM.id(this.request.id))}var noCacheIE=((this.request.source.match(/\?/))?'&':'?')+'noCacheIE='+(new Date()).getTime();var script=Halo.DOM.createElement("script",{"src":this.request.source+noCacheIE,"type":"text/javascript","id":this.request.id,"defer":true});appendElem.appendChild(script);if(this.request.onComplete instanceof Function){Halo.DOM.id(this.request.id).onload=this.request.onComplete;}}};if(typeof NET=='undefined'&&Halo.shortcuts){NET=Halo.net}if(typeof Halo.dataio=='undefined'){Halo.dataio={}}Halo.extend(Halo.dataio,{VERSION:'0.0.4',NAME:'Halo.dataio',jsonObj:function(_string){},jsonStr:function(_object){},parseFormJSON:function(_JSON){if(!(_JSON instanceof Object)){return false}var i=0;var jsonString='';for(elem in _JSON){if(jsonString!=''){jsonString+="&"}switch(typeof _JSON[elem]){case'string':case'number':jsonString+=(elem+"="+escape(_JSON[elem]));break;case'boolean':jsonString+=(elem+"="+escape(_JSON[elem].toString()));break;case'object':if(_JSON[elem]instanceof Array){var arrayTemp='';for(i=0;i<_JSON[elem].length;i++){arrayTemp+=((arrayTemp!=''?',':'')+_JSON[elem][i])}jsonString+=(elem+"="+escape(arrayTemp))}else if(_JSON[elem]instanceof Object){jsonString+=this.parseFormJSON(_JSON[elem])}else{}break;case'function':case'undefined':break;default:}}return jsonString}});if(typeof DATA=='undefined'&&Halo.shortcuts){DATA=Halo.dataio}
