//# jQuery - Horizontal Accordion//# Version 2.00.00 Alpha 1//#//# portalZINE(R) - New Media Network//# http://www.portalzine.de//#//# Alexander Graef//# portalzine@gmail.com//#//# Copyright 2007-2009(function($) {	$.hrzAccordion = {       	   	   setOnEvent: function(i, container, finalWidth, settings){			$("#"+container+"Handle"+i).bind(settings.eventTrigger,function() {			 			   									var status = $('[rel='+container+'ContainerSelected]').data('status');												if(status ==1 && settings.eventWaitForAnim === true){						 return false;							}												if( $("#"+container+"Handle"+i).attr("rel") != container+"HandleSelected"){			    								  settings.eventAction;														$('[id*='+container+'Handle]').attr("rel","");			   							   											$('[id*='+container+'Handle]').attr("class",settings.handleClass);					   				$("#"+container+"Handle"+i).addClass(settings.handleClassSelected);										   			   									$("."+settings.contentWrapper).css({width: finalWidth+"px" });														switch(settings.closeOpenAnimation)							{							case 1:      				   						if($('[rel='+container+'ContainerSelected]').get(0)  ){						$('[rel='+container+'ContainerSelected]').data('status',1);														//current_width = $('[rel='+container+'ContainerSelected]').width();														$('[rel='+container+'ContainerSelected]').animate({width: "0px",opacity:"0"}, { queue:true, duration:settings.closeSpeed ,easing:settings.closeEaseAction,complete: function(){					 																																								$('[rel='+container+'ContainerSelected]').data('status',0);																																											} ,step: function(now){																																																		 							width = $(this).width();													//new_width = finalWidth- (finalWidth  * (width/current_width));							new_width = finalWidth - width;							$('#'+container+'Content'+i).width(Math.ceil(new_width)).css("opacity","1");														}});								}else{							$('[rel='+container+'ContainerSelected]').data('status',1);															$('#'+container+'Content'+i).animate({width: finalWidth,opacity:"1"}, { queue:false, duration:settings.closeSpeed ,easing:settings.closeEaseAction,complete: function(){																																																	  $('[rel='+container+'ContainerSelected]').data('status',0);																																																		  }});																						}														break;							case 2:								$('[id*='+container+'Content]').css({width: "0px"});								$('#'+container+'Content'+i).animate({width: finalWidth+"px",opacity:"1"}, { queue:false, duration:settings.openSpeed ,easing:settings.openEaseAction, complete:  settings.completeAction																																																									});																				break;							}							$('[id*='+container+'Content]').attr("rel","");										$("#"+container+"Handle"+i).attr("rel",container+"HandleSelected");							$("#"+container+"Content"+i).attr("rel",container+"ContainerSelected");																								}											});	}	    };		$.fn.extend({	   		hrzAccordionLoop: function(options) {			return this.each(function(a){  								var container = $(this).attr("id") || $(this).attr("class");				var elementCount = $('#'+container+' > li, .'+container+' > li').size();				var settings = $(this).data('settings');								variable_holder="interval"+container ;				var i =0;				var loopStatus  = "start";								variable_holder = window.setInterval(function(){															$("#"+container+"Handle"+i).trigger(settings.eventTrigger);								if(loopStatus =="start"){						i = i + 1;					}else{						i = i-1;						}										if(i==elementCount && loopStatus  == "start"){						loopStatus  = "end";						i=elementCount-1;					}										if(i==0 && loopStatus  == "end"){						loopStatus  = "start";						i=0;					}												},settings.cycleInterval);												});			},		hrzAccordion: function(options) {			this.settings = {			eventTrigger	   		: "click",			containerClass     		: "container",			listItemClass      		: "listItem",								contentContainerClass  	: "contentContainer",			contentWrapper     		: "contentWrapper",			contentInnerWrapper		: "contentInnerWrapper",			handleClass        		: "handle",			handleClassOver    		: "handleOver",			handleClassSelected		: "handleSelected",			handlePosition     		: "right",			handlePositionArray		: "", // left,left,right,right,right			closeEaseAction    		: "swing",			closeSpeed     			: 500,			openEaseAction     		: "swing",			openSpeed      			: 500,			openOnLoad		   		: 1,			hashPrefix		   		: "tab",			eventAction		   		: function(){								 	//add your own extra clickAction function here								 	},			completeAction	   		: function(){								 	//add your own onComplete function here								 	},			closeOpenAnimation 		: 1,// 1 - open and close at the same time / 2- close all and than open next			cycle			   		: false, // not integrated yet, will allow to cycle through tabs by interval			cycleInterval	   		: 10000,			fixedWidth				: "",			eventWaitForAnim		: true						};			if(options){			$.extend(this.settings, options);		}			var settings = this.settings;												return this.each(function(a){    										var container = $(this).attr("id") || $(this).attr("class");											$(this).data('settings', settings);								$(this).wrap("<div class='"+settings.containerClass+"'></div>");							var elementCount = $('#'+container+' > li, .'+container+' > li').size();																var containerWidth =  $("."+settings.containerClass).width();								var handleWidth = $("."+settings.handleClass).css("width");						handleWidth =  handleWidth.replace(/px/,"");			    var finalWidth;				var handle;								if(settings.fixedWidth){					finalWidth = settings.fixedWidth;				}else{					finalWidth = containerWidth-(elementCount*handleWidth)-handleWidth;				}								$('#'+container+' > li, .'+container+' > li').each(function(i) {								$(this).attr('id', container+"ListItem"+i);			   		$(this).attr('class',settings.listItemClass);		       		$(this).html("<div class='"+settings.contentContainerClass+"' id='"+container+"Content"+i+"'>"								 +"<div class=\""+settings.contentWrapper+"\">"								 +"<div class=\""+settings.contentInnerWrapper+"\">"								 +$(this).html()								 +"</div></div></div>");			   							if($("div",this).hasClass(settings.handleClass)){										var html = $("div."+settings.handleClass,this).attr("id",""+container+"Handle"+i+"").html();					$("div."+settings.handleClass,this).remove();										 handle = "<div class=\""+settings.handleClass+"\" id='"+container+"Handle"+i+"'>"+html+"</div>";					}else{					 handle = "<div class=\""+settings.handleClass+"\" id='"+container+"Handle"+i+"'></div>";					}																			if(settings.handlePositionArray){						splitthis 				= settings.handlePositionArray.split(",");						settings.handlePosition = splitthis[i];					}										switch(settings.handlePosition ){						case "left":						$(this).prepend( handle );						break;						case "right":							$(this).append( handle );							break;						case "top":							$("."+container+"Top").append( handle );							break;						case "bottom":							$("."+container+"Bottom").append( handle );							break;					}														$("#"+container+"Handle"+i).bind("mouseover", function(){						$("#"+container+"Handle"+i).addClass(settings.handleClassOver);					});			    					$("#"+container+"Handle"+i).bind("mouseout", function(){						if( $("#"+container+"Handle"+i).attr("rel") != "selected"){							$("#"+container+"Handle"+i).removeClass(settings.handleClassOver);						}					});														$.hrzAccordion.setOnEvent(i, container, finalWidth, settings);														if(i == elementCount-1){						$('#'+container+",."+container).show();										}																							if(settings.openOnLoad !== false && i == elementCount-1){							var location_hash = location.hash;							location_hash  = location_hash.replace("#", "");								if(location_hash.search(settings.hashPrefix) != '-1' ){							var tab = 1;							location_hash  = location_hash.replace(settings.hashPrefix, "");							}														if(location_hash && tab ==1){						 		$("#"+container+"Handle"+(location_hash)).attr("rel",container+"HandleSelected");								$("#"+container+"Content"+(location_hash)).attr("rel",container+"ContainerSelected");										$("#"+container+"Handle"+(location_hash-1)).trigger(settings.eventTrigger);																			}else{								$("#"+container+"Handle"+(settings.openOnLoad)).attr("rel",container+"HandleSelected");							    $("#"+container+"Content"+(settings.openOnLoad)).attr("rel",container+"ContainerSelected");									$("#"+container+"Handle"+(settings.openOnLoad-1)).trigger(settings.eventTrigger);							}										}					});									if(settings.cycle === true){					$(this).hrzAccordionLoop();				}			});						}			});})(jQuery);	
