// SeViR Simple Horizontal Accordion @2007
// http://letmehaveblog.blogspot.com
jQuery.fn.extend({
  haccordion: function(params){
    var jQ = jQuery;
    var params = jQ.extend({
      speed: 500,
      headerclass: "header",
      contentclass: "content",
      contentwidth: 828,
      startIndex: 0,
      rotationTime: 8000
    },params);
    
    var t = null;
    
    var rotate = function(){
		//Get the next item and simulate a click
		var $next = jQ("."+params.contentclass+".selected").next("."+params.headerclass);
		if ($next.length > 0)
		{
			$next.click();
		}
		else
		{
			jQ("."+params.headerclass+":first").click();
		}
    }
    
    if (params.startIndex != -1)
    {
		var startItem = jQ(this).children()[params.startIndex];
		this[0].opened = startItem;
		jQ(startItem).next("div."+params.contentclass).css("width", params.contentwidth);
		jQ(startItem).addClass("selected");
		jQ(startItem).next("div."+params.contentclass).addClass("selected")
		
		if (params.rotationTime > 0)
		{
			t=setTimeout(rotate,params.rotationTime);
		}
    }
    
    jQ("."+params.headerclass+":last").addClass("last-header");
    return this.each(function(){
      jQ("."+params.headerclass,this).click(function(){
        var p = jQ(this).parent()[0];
        
        if ((p.opened != "undefined" && p.opened == this) || jQ(this).parent().hasClass("animating")){ return; }		
        
        if (p.opened != "undefined"){
			jQ(p.opened).next("div."+params.contentclass).removeClass("selected")
			jQ(p.opened).removeClass("selected").next("div."+params.contentclass).animate({
            width: "0px"
          },params.speed);
        }
        p.opened = this;
        jQ(this).parent().addClass("animating");
        jQ(this).addClass("selected");
        jQ(this).next("div."+params.contentclass).addClass("selected").animate({
          width: params.contentwidth + "px"
        }, params.speed, null, function(){
			jQ(this).parent().removeClass("animating");
			
			if (params.rotationTime > 0)
			{
				if (t)
				{
					clearTimeout(t);
				}
				t=setTimeout(rotate,params.rotationTime);
			}
			
        });
      });
    });
  }
});
