/*
 * jQuery Show/hide plugin 0.1
 *
 * Copyright (c) 2009 Martin Lögdberg
 *
 */



(function($){
	$.fn.mtShowHide = function(options) {
	
		var defaults = {
			
			triggerClass: "box-header",
			contentClass: "box-content",
			animationSpeed: "normal",
			triggerSymbolClass: "trigger-symbol",
			triggedSymbolClass: "trigged-symbol",
			useSymbol: true,
			triggerText: "",
			triggedText: "",
			closeOnBlur: false	
		};
		
		var options = $.extend(defaults, options);
		
		return this.each(function() {
				
			obj = $(this);
			
			var trigger = $( "." + options.triggerClass, obj );
			var content = $( "." + options.contentClass, obj );
			
			trigger.css("cursor", "pointer");
			content.css("display", "none");
			
			trigger
			.mouseover(function(){
				trigger.css("text-decoration", "underline");
			})
			.mouseout(function(){
				trigger.css("text-decoration", "none");
			});
			
			
			/* for blur function 
			var mouse_is_inside = false;
		    obj
			.mouseover(function(){ 
		        mouse_is_inside=true;
				console.log(mouse_is_inside) 
		    })
			.mouseout(function(){ 
		        mouse_is_inside=false;
				console.log(mouse_is_inside) 
		    });
			*/
			
			if (options.useSymbol) {
				trigger.prepend("<div class='" + options.triggerSymbolClass + "'></div>");
				var triggerSymbol = trigger.find("." + options.triggerSymbolClass);
				triggerSymbol.height(triggerSymbol.parent().height());
			}
			
			/*
			if(options.closeOnBlur){
			    $("body").mouseup(function(){
					console.log("in mouseup");
					console.log(mouse_is_inside); 
			        if(!mouse_is_inside){
						console.log("in slideUp if");
						content.slideUp(options.animationSpeed);
					}
			    });
			}
			*/
			
			if(options.triggerText.length > 0){
				trigger.html(options.triggerText);
			}
			
			
			trigger.click(function(){
				
				if( content.css("display") == "none" ){
					content.slideDown(options.animationSpeed);
					if (options.useSymbol) {
						triggerSymbol.addClass(options.triggedSymbolClass);
					}
					
					if(options.triggedText.length > 0){
						trigger.html(options.triggedText);
					}
					
				
				}else{
					content.slideUp(options.animationSpeed);
					if (options.useSymbol) {
						triggerSymbol.removeClass(options.triggedSymbolClass);
					}
					
					if(options.triggerText.length > 0){
						trigger.html(options.triggerText);
					}
				}
				
			});
		
		});
		/* End of each */
		
	};
	/* End of wrapper function */
	
})(jQuery);