jQuery.iAccordion = {
	init : function(options)
	{
	    root = jQuery.iAccordion;
		  this.each(
        function()
        {
            var el = this;
            el.accordionCfg = {
      					panelHeight			: options.panelHeight||300,
      					headerSelector		: options.headerSelector,
      					panelSelector		: options.panelSelector,
      					activeClass			: options.activeClass||'iAccordionCurrent',
      					headers				: jQuery(options.headerSelector, this),
      					panels				: jQuery(options.panelSelector, this),
      					ospeed				: options.ospeed||800,
      					cspeed      : options.cspeed||800,
                currentPanel		: options.currentPanel||0
      				};
            //-- hide all panels
            el.accordionCfg.panels.css({height: el.accordionCfg.panelHeight + 'px',display: 'block'}).hide();
            
            //--
            el.accordionCfg.headers.each(function(nr){this.accordionPos = nr;})
            .click(
              function(e)
              {
                
                
                var st = el.accordionCfg.panels.eq(this.accordionPos).is(":visible");
                
                if(st)
                {
                //-- close opened panel   
                el.accordionCfg.headers.eq(this.accordionPos).parent().removeClass(el.accordionCfg.activeClass);
                root.mootoggle(el, this.accordionPos, el.accordionCfg.cspeed);
                }
                else
                {
                if(el.accordionCfg.panels.eq(el.accordionCfg.currentPanel).is(":visible"))
                {
                //-- close opened panel   
                el.accordionCfg.headers.eq(el.accordionCfg.currentPanel).parent().removeClass(el.accordionCfg.activeClass);
                root.mootoggle(el, el.accordionCfg.currentPanel, el.accordionCfg.cspeed);                   
                }
                //-- set current panel    
                el.accordionCfg.currentPanel = this.accordionPos;
   
                //-- open panel
                root.mootoggle(el, el.accordionCfg.currentPanel, el.accordionCfg.ospeed);
                el.accordionCfg.headers.eq(el.accordionCfg.currentPanel).parent().addClass(el.accordionCfg.activeClass);
                }
                
                
                
                
              }
            );
            
            //-- open first
            /*
            el.accordionCfg.headers.eq(0).parent().addClass(el.accordionCfg.activeClass);
            root.mootoggle(el, 0, el.accordionCfg.ospeed);
            el.accordionCfg.st = true;
            */  
        } 
      ); 
	},
	
	mootoggle: function(el, current, speed)
	{
  
  el.accordionCfg.panels.eq(current)
        .animate({height: ['toggle', 'swing']}, 
                {
                duration: speed,
                        specialEasing: {height: 'easeOutBounce'}
                }
    		)
    		
  }
	
	
};

jQuery.fn.Accordion = jQuery.iAccordion.init;
