/***************************************/
// jQuery Tabber
// By Jordan Boesch
// www.boedesign.com
// Dec 25, 2007 (Merry Christmas!)
/***************************************/

(function($){

		$.jtabber = function(params){
				
				// parameters
				var navDiv = params.mainLinkTag;
				var selectedClass = params.activeLinkClass;
				var hiddenContentDiv = params.hiddenContentClass;
				var showDefaultTab = params.showDefaultTab;
				var showErrors = params.showErrors;
				var effect = params.effect;
				var effectSpeed = params.effectSpeed;
				var movementCheck = params.checkMove;
				var buttonCheck = params.buttonInit;
				
				// If error checking is enabled
				if(showErrors){
					if(!$(navDiv).attr('title')){
						alert("ERROR: The elements in your mainLinkTag paramater need a 'title' attribute.\n ("+navDiv+")");	
						return false;
					}
					else if(!$("."+hiddenContentDiv).attr('id')){
						alert("ERROR: The elements in your hiddenContentClass paramater need to have an id.\n (."+hiddenContentDiv+")");	
						return false;
					}
				}
				
				// If we want to show the first block of content when the page loads
				if(!isNaN(showDefaultTab)){
					showDefaultTab--;
					$("."+hiddenContentDiv+":eq("+showDefaultTab+")").css('display','block');
					$(navDiv+":eq("+showDefaultTab+")").addClass(selectedClass);	
				}
				
				// each anchor
				$(navDiv).each(function(){
										
					$(this).click(function(){
						if (movementCheck($('.' + selectedClass).attr('title'))) {
							// once clicked, remove all classes
							$(navDiv).each(function(){
								$(this).removeClass();
							})
							// hide all content
							$("."+hiddenContentDiv).css('display','none');
						
							// now lets show the desired information
							$(this).addClass(selectedClass);
							var contentDivId = $(this).attr('title');
						
							if(effect != null){
							
								switch(effect){
									
									case 'slide':
									$("#"+contentDivId).slideDown(effectSpeed);
									break;
									case 'fade':
									$("#"+contentDivId).fadeIn(effectSpeed);
									break;
								
								}
									
							}
							else {
								$("#"+contentDivId).css('display','block');
							}

							buttonCheck($('.' + selectedClass).attr('title'));
							
							return false;
						}
					})
				})
			
			}
	
})(jQuery);	

