
﻿
(function(jq){jq.fn.toggleNode=function(options){jQuery.extend(jq.fn.toggleNode.defaults,options);return this.each(function(){var panel=new ToggleNode(this);});};jq.fn.toggleNode.defaults={trigger:'h2',target:'.target',isVisible:false};function ToggleNode(elem){this.panel=elem;this.isVisible=jq.fn.toggleNode.defaults.isVisible;this.initialise();};ToggleNode.prototype={panel:null,isVisible:null,target:null,initialise:function(){var defaults=jq.fn.toggleNode.defaults;this.target=jq(defaults.target,this.panel).get(0);this.toggle(jq(defaults.trigger,this.panel),this.isVisible);if(this.isVisible)
this.open();else
this.shut();this.bind();},bind:function(){var self=this;return jq(jq.fn.toggleNode.defaults.trigger,this.panel).bind('click',function(){if(self.isVisible)
self.shut.call(self,this);else
self.open.call(self);self.toggle.call(self,this,self.isVisible);});},toggle:function(elem,bool){if(bool)
return jq(elem).removeClass('shut').addClass('open');else
return jq(elem).removeClass('open').addClass('shut');},shut:function(elem){this.isVisible=false;jq(document).trigger('toggleNodeshut',{node:this.target,trigger:elem});return jq(this.target).addClass('hide');},open:function(elem){if(jq(this.target).hasClass('hide')){this.isVisible=true;jq(document).trigger('toggleNodeopen',{node:this.target,trigger:elem});return jq(this.target).removeClass('hide');}}};})(jQuery);