jQuery.fn.isChildOf = function(b){
    return (this.parents(b).length > 0);
};

$(document).ready(function(){

    // Highlight first tabs along with their content
	$(".tab_navigation > a:first").addClass("current");
	$('ul.tabs > .tab_content').hide();
	
	$.each($(".tab_navigation a:first"), function(i, elem){
		$(($(elem).attr('href'))).show();
	});
	
	// Tabs switching handling
    $(".tab_navigation > a").click(function(e){
 	   $(e.target).parents(".tab_navigation").find("> a").removeClass("current");

 	    // User clicked a nested tag inside the <a>, find the <a> and activate it
        if ($(e.target).isChildOf(".tab_navigation > a")){

	 	   $(e.target).parents('a:first').addClass("current");
 	       
 	       $(e.target).parents('ul.tabs:first').find('.tab_content').hide();	   		   
 	       $($(e.target).parents('a:first').attr('href')).show();
        }
        else{ // User clicked the a, just activate it.
     	   $(e.target).addClass("current");
     	   $(e.target).parents('ul.tabs:first').find('.tab_content').hide();	   		   
 	       $($(e.target).attr('href')).show();
        }
        return false;
    });
	 
    // Main open/close code when one clicks one of the action_main elements
    $(".action_list").click(function(e){

        // If the user click inside a link of an active panel follow the link
 	   if ($(e.target).isChildOf(".show_panel") && $(e.target).isChildOf('.action_list li ul')){
 		    return true;
 	   }
        if ($(this).find('.action_main').hasClass("show_panel")){
            $(this).find('.action_main').removeClass("show_panel");
        }
        else{
            $('.action_main').removeClass("show_panel");
            $(this).find('.action_main').addClass("show_panel");
        }
        e.preventDefault();
    })
	    
    // Close when one clicks outside the action_main elements
    $(document).click(function(e){
        if (!$(e.target).isChildOf(".action_list") && $(".action_main").hasClass("show_panel")){ 
            $(".action_main").removeClass("show_panel");
            e.preventDefault();
        }
    });
});
