/**
 * Collapsible - jQuery Plugin
 * 
 * This plugin enables the management of 
 * collapsibles on the page with cookie support.
 * 
 * Copyright (c) 2010 John Snyder (snyderplace.com)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 */
(function($){$.fn.collapsible=function(options){var opts=$.extend({},$.fn.collapsible.defaults,options);var opened=new Array();this.each(function(){var $this=$(this);if(opts.bind=='mouseenter'){$this.bind('mouseenter',function(e){e.preventDefault();toggle($this,opts);});}if(opts.bind=='mouseover'){$this.bind('mouseover',function(e){e.preventDefault();toggle($this,opts);});}if(opts.bind=='click'){$this.bind('click',function(e){e.preventDefault();toggle($this,opts);});}if(opts.bind=='dblclick'){$this.bind('dblclick',function(e){e.preventDefault();toggle($this,opts);});}id=$this.attr('id');if(!useCookies(opts)){dOpenIndex=inDefaultOpen(id,opts);if(dOpenIndex===false){$this.addClass(opts.cssClose);$this.next().hide();}else{$this.addClass(opts.cssOpen);$this.next().show();opened.push(id);}}else{if(issetCookie(opts)){cookieIndex=inCookie(id,opts);if(cookieIndex===false){$this.addClass(opts.cssClose);$this.next().hide();}else{$this.addClass(opts.cssOpen);$this.next().show();opened.push(id);}}else{dOpenIndex=inDefaultOpen(id,opts);if(dOpenIndex===false){$this.addClass(opts.cssClose);$this.next().hide();}else{$this.addClass(opts.cssOpen);$this.next().show();opened.push(id);}}}});if(opened.length>0&&useCookies(opts)){setCookie(opened.toString(),opts);}else{setCookie('',opts);}return this;};function toggle($this,opts){if($this.hasClass(opts.cssClose)){$this.removeClass(opts.cssClose).addClass(opts.cssOpen);$this.next().slideDown(opts.speed);if(useCookies(opts)){id=$this.attr('id');appendCookie(id,opts);}}else{$this.addClass(opts.cssClose).removeClass(opts.cssOpen);$this.next().slideUp(opts.speed);if(useCookies(opts)){id=$this.attr('id');unsetCookieId(id,opts);}}return false;}function useCookies(opts){if(!$.cookie||opts.cookieName==''){return false;}return true;}function appendCookie(value,opts){if(!useCookies(opts)){return false;}if(!issetCookie(opts)){setCookie(value,opts);return true;}if(inCookie(value,opts)){return true;}cookie=$.cookie(opts.cookieName);cookie=unescape(cookie);cookieArray=cookie.split(',');cookieArray.push(value);setCookie(cookieArray.toString(),opts);return true;}function unsetCookieId(value,opts){if(!useCookies(opts)){return false;}if(!issetCookie(opts)){return true;}cookieIndex=inCookie(value,opts);if(cookieIndex===false){return true;}cookie=$.cookie(opts.cookieName);cookie=unescape(cookie);cookieArray=cookie.split(',');cookieArray.splice(cookieIndex,1);setCookie(cookieArray.toString(),opts);}function setCookie(value,opts){if(!useCookies(opts)){return false;}$.cookie(opts.cookieName,value,opts.cookieOptions);}function inCookie(value,opts){if(!useCookies(opts)){return false;}if(!issetCookie(opts)){return false;}cookie=unescape($.cookie(opts.cookieName));cookieArray=cookie.split(',');cookieIndex=$.inArray(value,cookieArray);if(cookieIndex==-1){return false;}return cookieIndex;}function issetCookie(opts){if(!useCookies(opts)){return false;}if($.cookie(opts.cookieName)==null){return false;}return true;}function inDefaultOpen(id,opts){defaultOpen=getDefaultOpen(opts);index=$.inArray(id,defaultOpen);if(index==-1){return false;}return index;}function getDefaultOpen(opts){defaultOpen=new Array();if(opts.defaultOpen!=''){defaultOpen=opts.defaultOpen.split(',');} return defaultOpen;}$.fn.collapsible.defaults={cssClose:'collapse-close',cssOpen:'collapse-open',cookieName:'collapsible',cookieOptions:{path:'/',expires:7,domain:'',secure:''},defaultOpen:'',speed:300,bind:'click'};})(jQuery);
