//PACKED
//eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[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}('s.1B()5 g={w:{},1r:4(a,b){3.R(a,b,"6")},1q:4(a,b){3.R(a,b,"9")},1R:4(a){5 $=s 5 b=$(\'.\'+a)$(\'.\'+3.w[a]+\':1k\').I(4(){b.l(r($(3).j(\'C\'))).t()})},1A:4(a){5 $=s 5 b=$(\'.\'+a)$(\'.\'+3.w[a]+\':S\').I(4(){b.l(r($(3).j(\'C\'))).t()})},R:4(a,b,c){5 $=s 5 d=$(\'.\'+a).l(b)5 e=$(\'.\'+3.w[a]).l(b)7(A c=="L"||c=="6"&&e.10(":1k")||c=="9"&&e.10(":S"))d.t()},Y:4(a,b,c,d){b.1Q(c.1j,4(){c.p(a.q(0),r(a.j(\'y\')),b.z(\'x\'),d)})3.F(a,c,"6")},O:4(a,b,c,d){b.1K(c.1j,4(){c.p(a.q(0),r(a.j(\'y\')),b.z(\'x\'),d)})3.F(a,c,"9")},F:4(a,b,c){a.1J((c=="6")?b.u.6:b.u.9).1E((c=="6")?b.u.9:b.u.6)7(b.8.o==\'15\'){a=(a.10("19"))?a:a.Q(\'19\').l(0)a.j(\'15\',(c=="6")?b.8.6:b.8.9)}B 7(b.8.o=="14")a.Q(\'.1d\').P((c=="6")?b.8.6:b.8.9)B 7(b.8.o=="1g")a.Q(\'.13\').P((c=="6")?b.8.6:b.8.9)},N:4(a){5 b=12.o.1m.M(11 Z(a+"=((\\\\d+)(,(\\\\d+))*)","i"))7(b!=1l)b=Z.$1.X(\',\')K b},1i:4(a){5 b=11 Z(a+"=[^;]+","i")7(m.W.M(b))K m.W.M(b)[0].X("=")[1]K 1l},1h:4(a,b){m.W=a+"="+b},1O:4(f){m.V(\'<1f 1N="1M/z">\\n\')m.V(\'.\'+f.G+\'{x: 1b}\\n\')m.V(\'<\\/1f>\')s(m).1L(4($){g.N(f.k)g.w[f.k]=f.G f.u={9:f.1a[0],6:f.1a[1]}f.8={o:f.U[0],9:f.U[1],6:f.U[2]}f.E=(A f.E=="L")?4(){}:f.E f.p=(A f.p=="L")?4(){}:f.p 5 c={}5 d=g.N(f.k)||((f.18)?g.1i(f.k):f.1I)7(A d==\'1H\')d=d.1G(/c/1F,\'\').X(\',\')5 e=$(\'.\'+f["G"])7(!(d 1D 1C))d=[]7(f["17"]&&d.16>1)d=[d.1z()]$(\'.\'+f["k"]).I(4(a){7(/(14)|(1g)/i.1y(f.8.o)&&$(3).P()!=""){$(\'<J 1e="1d"></J>\').1x(3)$(\'<J 1e="13"></J>\').1w(3)}$(3).j(\'y\',a+\'h\')e.l(a).j(\'C\',a+\'c\')5 b=e.l(a)7(s.1v(a,d)!=-1){7(f.1u==D)b.1t()g.Y($(3),b,f,D)c={$v:$(3),$T:b}}B{b.1s()f.p($(3).q(0),r($(3).j(\'y\')),b.z(\'x\'),D)g.F($(3),f,"9")}})$(\'.\'+f["k"]).t(4(){5 a=e.l(r($(3).j(\'y\')))7(a.z(\'x\')=="1b"){g.Y($(3),a,f,H)7(f["17"]&&c.$v&&$(3).q(0)!=c.$v.q(0)){g.O(c.$v,c.$T,f,H)}c={$v:$(3),$T:a}}B{g.O($(3),a,f,H)}K D})f.E($(\'.\'+f["k"]).q(),d)$(12).1p(\'1o\',4(){$(\'.\'+f["k"]).1P(\'t\')5 b=[]$(\'.\'+f["G"]+":S").I(4(a){b.1n($(3).j(\'C\'))})7(f.18==H){b=(b.16==0)?\'-1c\':b g.1h(f.k,b)}})})}}',62,116,'|||this|function|var|expand|if|htmlsetting|collapse|||||||ddaccordion|||attr|headerclass|eq|document||location|onopenclose|get|parseInt|jQuery|click|cssclass|header|contentclassname|display|headerindex|css|typeof|else|contentindex|false|oninit|transformHeader|contentclass|true|each|span|return|undefined|match|urlparamselect|collapseit|html|find|toggleone|visible|content|togglehtml|write|cookie|split|expandit|RegExp|is|new|window|accordsuffix|prefix|src|length|collapseprev|persiststate|img|toggleclass|none||accordprefix|class|style|suffix|setCookie|getCookie|animatespeed|hidden|null|search|push|unload|bind|collapseone|expandone|hide|show|animatedefault|inArray|appendTo|prependTo|test|pop|collapseall|noConflict|Array|instanceof|removeClass|ig|replace|string|defaultexpanded|addClass|slideUp|ready|text|type|init|unbind|slideDown|expandall'.split('|'),0,{}))

//Accordion Content script: By Dynamic Drive, at http://www.dynamicdrive.com
//Created: Jan 7th, 08'
//Version 1.3: April 3rd, 08':
//**1) Script now no longer conflicts with other JS frameworks
//**2) Adds custom oninit() and onopenclose() event handlers that fire when Accordion Content instance has initialized, plus whenever a header is opened/closed
//**3) Adds support for expanding header(s) using the URL parameter (ie: http://mysite.com/accordion.htm?headerclass=0,1)
//April 9th, 08': Fixed "defaultexpanded" setting not working when page first loads

jQuery.noConflict()

var ddaccordion={
	
	contentclassname:{}, //object to store corresponding contentclass name based on headerclass

	expandone:function(headerclass, selected){ //PUBLIC function to expand a particular header
		this.toggleone(headerclass, selected, "expand")
	},

	collapseone:function(headerclass, selected){ //PUBLIC function to collapse a particular header
		this.toggleone(headerclass, selected, "collapse")
	},

	expandall:function(headerclass){ //PUBLIC function to expand all headers based on their shared CSS classname
		var $=jQuery
		var $headers=$('.'+headerclass)
		$('.'+this.contentclassname[headerclass]+':hidden').each(function(){
			$headers.eq(parseInt($(this).attr('contentindex'))).click()
		})
	},

	collapseall:function(headerclass){ //PUBLIC function to collapse all headers based on their shared CSS classname
		var $=jQuery
		var $headers=$('.'+headerclass)
		$('.'+this.contentclassname[headerclass]+':visible').each(function(){
			$headers.eq(parseInt($(this).attr('contentindex'))).click()
		})
	},

	toggleone:function(headerclass, selected, optstate){ //PUBLIC function to expand/ collapse a particular header
		var $=jQuery
		var $targetHeader=$('.'+headerclass).eq(selected)
		var $subcontent=$('.'+this.contentclassname[headerclass]).eq(selected)
		if (typeof optstate=="undefined" || optstate=="expand" && $subcontent.is(":hidden") || optstate=="collapse" && $subcontent.is(":visible"))
			$targetHeader.click()
	},

	expandit:function($targetHeader, $targetContent, config, isclicked){
		$targetContent.slideDown(config.animatespeed, function(){config.onopenclose($targetHeader.get(0), parseInt($targetHeader.attr('headerindex')), $targetContent.css('display'), isclicked)})
		this.transformHeader($targetHeader, config, "expand")
	},

	collapseit:function($targetHeader, $targetContent, config, isclicked){
		$targetContent.slideUp(config.animatespeed, function(){config.onopenclose($targetHeader.get(0), parseInt($targetHeader.attr('headerindex')), $targetContent.css('display'), isclicked)})
		this.transformHeader($targetHeader, config, "collapse")
	},

	transformHeader:function($targetHeader, config, state){
		$targetHeader.addClass((state=="expand")? config.cssclass.expand : config.cssclass.collapse) //alternate btw "expand" and "collapse" CSS classes
		.removeClass((state=="expand")? config.cssclass.collapse : config.cssclass.expand)
		if (config.htmlsetting.location=='src'){ //Change header image (assuming header is an image)?
			$targetHeader=($targetHeader.is("img"))? $targetHeader : $targetHeader.find('img').eq(0) //Set target to either header itself, or first image within header
			$targetHeader.attr('src', (state=="expand")? config.htmlsetting.expand : config.htmlsetting.collapse) //change header image
		}
		else if (config.htmlsetting.location=="prefix") //if change "prefix" HTML, locate dynamically added ".accordprefix" span tag and change it
			$targetHeader.find('.accordprefix').html((state=="expand")? config.htmlsetting.expand : config.htmlsetting.collapse)
		else if (config.htmlsetting.location=="suffix")
			$targetHeader.find('.accordsuffix').html((state=="expand")? config.htmlsetting.expand : config.htmlsetting.collapse)
	},

	urlparamselect:function(headerclass){
		var result=window.location.search.match(new RegExp(headerclass+"=((\\d+)(,(\\d+))*)", "i")) //check for "?headerclass=2,3,4" in URL
		if (result!=null)
			result=RegExp.$1.split(',')
		return result //returns null, [index], or [index1,index2,etc], where index are the desired selected header indices
	},

	getCookie:function(Name){ 
		var re=new RegExp(Name+"=[^;]+", "i") //construct RE to search for target name/value pair
		if (document.cookie.match(re)) //if cookie found
			return document.cookie.match(re)[0].split("=")[1] //return its value
		return null
	},

	setCookie:function(name, value){
		document.cookie = name + "=" + value
	},

	init:function(config){
	document.write('<style type="text/css">\n')
	document.write('.'+config.contentclass+'{display: none}\n') //generate CSS to hide contents
	document.write('<\/style>')
	jQuery(document).ready(function($){
		ddaccordion.urlparamselect(config.headerclass)
		var persistedheaders=ddaccordion.getCookie(config.headerclass)
		ddaccordion.contentclassname[config.headerclass]=config.contentclass //remember contentclass name based on headerclass
		config.cssclass={collapse: config.toggleclass[0], expand: config.toggleclass[1]} //store expand and contract CSS classes as object properties
		config.htmlsetting={location: config.togglehtml[0], collapse: config.togglehtml[1], expand: config.togglehtml[2]} //store HTML settings as object properties
		config.oninit=(typeof config.oninit=="undefined")? function(){} : config.oninit //attach custom "oninit" event handler
		config.onopenclose=(typeof config.onopenclose=="undefined")? function(){} : config.onopenclose //attach custom "onopenclose" event handler
		var lastexpanded={} //object to hold reference to last expanded header and content (jquery objects)
		var expandedindices=ddaccordion.urlparamselect(config.headerclass) || ((config.persiststate && persistedheaders!=null)? persistedheaders : config.defaultexpanded)
		if (typeof expandedindices=='string') //test for valid cookie ('string'), invalid being null or 1st page load
			expandedindices=expandedindices.replace(/c/ig, '').split(',') //if valid, change to array value
		var $subcontents=$('.'+config["contentclass"])
		if (!(expandedindices instanceof Array)) //check for invalid expandedindices value
			expandedindices=[]
		if (config["collapseprev"] && expandedindices.length>1)
			expandedindices=[expandedindices.pop()] //return last array element as an array (for sake of jQuery.inArray())
		$('.'+config["headerclass"]).each(function(index){ //loop through all headers
			if (/(prefix)|(suffix)/i.test(config.htmlsetting.location) && $(this).html()!=""){ //add a SPAN element to header depending on user setting and if header is a container tag
				$('<span class="accordprefix"></span>').prependTo(this)
				$('<span class="accordsuffix"></span>').appendTo(this)
			}
			$(this).attr('headerindex', index+'h') //store position of this header relative to its peers
			$subcontents.eq(index).attr('contentindex', index+'c') //store position of this content relative to its peers
			var $subcontent=$subcontents.eq(index)
			if (jQuery.inArray(index, expandedindices)!=-1){ //check for headers that should be expanded automatically
				if (config.animatedefault==false)
					$subcontent.show()
				ddaccordion.expandit($(this), $subcontent, config, false) //Last Boolean value sets 'isclicked' parameter
				lastexpanded={$header:$(this), $content:$subcontent}
			}  //end check
			else{
				$subcontent.hide()
				config.onopenclose($(this).get(0), parseInt($(this).attr('headerindex')), $subcontent.css('display'), false) //Last Boolean value sets 'isclicked' parameter
				ddaccordion.transformHeader($(this), config, "collapse")
			}
		})
		$('.'+config["headerclass"]).click(function(){ //assign behavior when headers are clicked on
				var $subcontent=$subcontents.eq(parseInt($(this).attr('headerindex'))) //get subcontent that should be expanded/collapsed
				if ($subcontent.css('display')=="none"){
					ddaccordion.expandit($(this), $subcontent, config, true) //Last Boolean value sets 'isclicked' parameter
					if (config["collapseprev"] && lastexpanded.$header && $(this).get(0)!=lastexpanded.$header.get(0)){ //collapse previous content?
						ddaccordion.collapseit(lastexpanded.$header, lastexpanded.$content, config, true) //Last Boolean value sets 'isclicked' parameter
					}
					lastexpanded={$header:$(this), $content:$subcontent}
				}
				else{
					ddaccordion.collapseit($(this), $subcontent, config, true) //Last Boolean value sets 'isclicked' parameter
				}
				return false
 	})
		config.oninit($('.'+config["headerclass"]).get(), expandedindices)
		$(window).bind('unload', function(){ //clean up and persist on page unload
			$('.'+config["headerclass"]).unbind('click')
			var expandedindices=[]
			$('.'+config["contentclass"]+":visible").each(function(index){ //get indices of expanded headers
				expandedindices.push($(this).attr('contentindex'))
			})
			if (config.persiststate==true){ //persist state?
				expandedindices=(expandedindices.length==0)? '-1c' : expandedindices //No contents expanded, indicate that with dummy '-1c' value?
				ddaccordion.setCookie(config.headerclass, expandedindices)
			}
		})
	})
	}
}
