/*
 * Copyright (c) 2009 Massimiliano Balestrieri
 * 
 * $Date: 2009-10-01 15:07:41 +0200 (gio, 01 ott 2009) $
 * $Rev: 197 $
 * @requires jQuery v1.3.2
 * 
 * Copyright (c) 2008 Massimiliano Balestrieri
 * Examples and docs at: http://maxb.net/blog/
 * Licensed GPL licenses:
 * http://www.gnu.org/licenses/gpl.html
 */
 
(function($){

var YToggle = function(){
	
	//1.2.6 non ha la proprietà core .selector
	//console.log($(this).selector);	
	//console.log(this.selector);	
	return this.each(function(){
		//DA COSI'
		//<a href="#" id="toggle_handle_2" class="folder toggle_handle collapse">Altre spese</a>
		
		//A COSI'
		//<a href="#">
		//<a href="#" title="chiudi sezione" class="folder toggle_handle collapse" id="toggle_handle_2">
		//<span class="nascosto">nascondi </span>
		//Altre spese
		//</a>
		//</a>

		//MEGLIO COSI'
		//<a href="#" title="chiudi sezione" id="toggle_handle_2" class="folder toggle_handle collapse">
		//<span class="nascosto">nascondi </span>Altre spese</a>
		
		//console.log(this);
		var that = this;

		var _is_a = $(that).is("a");
		var _state = $(that).is(".collapse");
		var _id = that.id;
		
		var boxCI = $("div#tab1");
		var boxAD = $("div#tab2");
		
		var _css_on = 'espandi';
		var _css_off = 'collapse';
		
		var _title_on = 'espandi sezione';
		var _title_off = 'chiudi sezione';
		var _span_title_on = '<span class="nascosto">visualizza </span>';
		var _span_title_off = '<span class="nascosto">nascondi </span>';
		
		var _class_active_on = 'tabAttivo';
		var _class_active_off = 'tabNonattivo';
		
		var _container = $(this).parents(".toggle_alternate");
		var _is_alternate = _container.length > 0;
		
		
		if (!_is_a) {
			var _classes = $(that).attr("class");
			var _title = _state ? _title_off : _title_on;
			
			var _handler = $('<a id="' + _id + '" class="' + _classes + '" title="' + _title + '" href="#"></a>');
			
			$(that).removeAttr("class").removeAttr("id").removeAttr("title");
			$(that).wrap(_handler);
		}
		
		if(!_id)
			return;
			
		var _target = _id.split("_").slice(2);//toggle_handle_1 -> 1
		var _css_target = '.toggle_target_' + _target;
		
		
		if(!_state){
			$(_css_target).hide();
			$(that).prepend(_span_title_on);
		}else{
			$(that).prepend(_span_title_off);
		}
		
		var _tobind = _handler ? $(that).parent() : that;
		
		$(_tobind)
		.bind("apri", function(){
		    $(this).find("span.nascosto").remove();
			$(this).removeClass(_css_on).addClass(_css_off);
			$(this).attr("title", _title_off);
			$(this).prepend(_span_title_off);
			var obj = $(this).parent();
			obj.removeClass(_class_active_off).addClass(_class_active_on);
			_state = true;
			$(_css_target).show();
		})
		.bind("chiudi", function(){
		    $(this).find("span.nascosto").remove();
			$(this).removeClass(_css_off).addClass(_css_on);
			$(this).attr("title", _title_on);
			$(this).prepend(_span_title_on); 
			var obj = $(this).parent();
			obj.removeClass(_class_active_on).addClass(_class_active_off);
			_state = false; 
			$(_css_target).hide();
		})
		.bind("mytoggle", function(){
		        
		    $(this).find("span.nascosto").remove();
			!_state ? $(this).removeClass(_css_on).addClass(_css_off) : $(this).removeClass(_css_off).addClass(_css_on);
			!_state ? $(this).attr("title", _title_off) : $(this).attr("title", _title_on);
			!_state ? $(this).prepend(_span_title_off) : $(this).prepend(_span_title_on);
			
			if (_state) {
                boxCI.removeClass(_class_active_on).addClass(_class_active_off);
                boxAD.removeClass(_class_active_off).addClass(_class_active_on);
			} else {
                boxCI.removeClass(_class_active_off).addClass(_class_active_on);
                boxAD.removeClass(_class_active_on).addClass(_class_active_off);
			}
			
			_state = !_state;  	
			//console.log(_css_target);
			$(_css_target).toggle();
		})
		.click(function(){
			if (_is_alternate) {
				$('.toggle_handle', _container).not(this).trigger("chiudi");
				$(_tobind).trigger("apri");
			} else {
				$(_tobind).trigger("mytoggle");
			}
			return false;
		});;
		
	});
};

$.fn.ytoggle = YToggle;	

 
////////////////////////////////////////////////////////////////////////////////
//*********** AUTOLOAD *********************************************************
////////////////////////////////////////////////////////////////////////////////

$(document).ready(function(){
	$("a.toggle_handle,span.toggle_handle").ytoggle();
});

})(jQuery);
