/*  Stupid Tab Plugin                                         */
/*  Created by Freeman Yam freeman@gillesie.com.au 05/11/2010 */

(function($) {//tip message

   var defaults={
      tabClass:"mytab",
	  trigger:'mouseover',
	  effect:'simple',
      loadingImageSrc:""	  
    };
	
	var tabR={};
	var current_id=[];
	
 myTab=$.fn.myTab=function(params) {
 
    defaults=$.extend(defaults,params);
	

   
 return  this.each(function(k) {
 
     var $wrapper=$(this);	 
 
    $(this).find('.'+defaults.tabClass).each(function(i) {
   
     $t=$(this);
	 var hashTab= myTab.readHash();
	 var contentid=$t.attr('contentid');	
	 tabR[contentid]=k;
	 
	 switch(defaults.effect) {
	case "fade":
	 if(i==0) {		 	 
		 $t.addClass('tab-on');		 
	    current_id[k]=contentid;
		
		//change css of parent
		$('#'+contentid).parent().css("position","relative");
		var classStr=$('#'+contentid).attr("class");
		$("<div class='"+classStr+"' id='current"+k+"' style='position:absolute;z-index:100'></div>").insertBefore($('#'+contentid))
		.html($('#'+contentid).html());
	 }
	
	   
		//$('#'+contentid).hide();
		$('#'+contentid).css({
            position:'absolute',
            opacity:0           
		});
	 
	 
	 $t.bind(defaults.trigger,function() {
		 
		 if(contentid!=current_id) {
		  resetAll();
		 $(this).addClass('tab-on');
		 
		  
		  
		  $('#current'+k).html($('#'+contentid).html());
		$('#current'+k).css({
             opacity:0
	   }).animate({opacity:1},800);
   
       // $('#'+current_id).css({
             //opacity:1
	  // }).animate({opacity:0},1000);
		 
	    current_id[k]=contentid;
		$.get("click.ajax.php?tab="+contentid);  // add to record the open tab 10/11/10
	 }
	 });	 
     break;
	 
	 
	 case "visibility":
	 if(i==0) {		 	 
		 $t.addClass('tab-on');		 
	    current_id[k]=contentid;
		
		//change css of parent
		$('#'+contentid).parent().css("position","relative");
		var classStr=$('#'+contentid).attr("class");
		$("<div class='"+classStr+"' id='current"+k+"' style='position:absolute;z-index:100'></div>").insertBefore($('#'+contentid))
		.html($('#'+contentid).html());
	 }
	
	   
	
		$('#'+contentid).css({
            position:'absolute',
            visibility:'hidden'           
		});
	 
	 
	 $t.bind(defaults.trigger,function() {
		 
		 if(contentid!=current_id) {
		  resetAll();
		 $(this).addClass('tab-on');
		 
		  
		  
		  $('#current'+k).html($('#'+contentid).html());
		$('#current'+k).css({
             visibility:'visible'
	   });
   
   
		 
	    current_id[k]=contentid;
		$.get("click.ajax.php?tab="+contentid);  // add to record the open tab 10/11/10
	 }
	 });	 
     break;
	 
	case "simple":
	if(i==0) {		 	 
		 $t.addClass('tab-on');
	 }
	 else {
	    
		$('#'+contentid).hide();
	 }
	
	 
	 $t.bind(defaults.trigger,function() {	    
		
		 if(defaults.loadingImageSrc)
             var $loadingImg=$("<img src='"+defaults.loadingImageSrc+"'/>");		 // new added on 14/09/10
		 else 
		     var $loadingImg=$("<span>");
		  //insert loading image
		  $(this).append($loadingImg); // new added on 14/09/10
		  
		  resetAll();
		 $(this).addClass('tab-on');
		 
		 var contentid=$(this).attr('contentid');
		 
		 $.get("click.ajax.php?tab="+contentid);  // add to record the open tab 10/11/10
		 
		 $('#'+contentid).show('fast',function() {$loadingImg.remove();});  // new call back added on 14/09/10
		 
	 });
	 
	break;	 
	default:
	break;
	 }/*--end of switch--*/
   if(hashTab) {	   
	      myTab.goTo(hashTab);	 
	}
	
	
	function resetAll() {
       
		switch (defaults.effect) {
		case 'fade':
		$wrapper.find('.'+defaults.tabClass).removeClass('tab-on');	
		break;
		case 'visibility':
		$wrapper.find('.'+defaults.tabClass).removeClass('tab-on');	
		break;
		case 'simple':
		$wrapper.find('.'+defaults.tabClass).removeClass('tab-on')
		.each(function() {
		  var contentid=$(this).attr('contentid');		 
		  $('#'+contentid).hide();
		});
		break;
		default:
		break;
		}	
	};
	
	}); //end of each
   });
 /* end of return---*/ 
  
};


	
	myTab.goTo=function(contentid) {
	   //myTab.resetAll();
	   var $temp=$(".tab[contentid='"+contentid+"']");
	   $temp.addClass('tab-on');
	   $temp.parent().siblings().each(function() {
		      $(this).find('a').removeClass('tab-on');
		});
	   
	   switch(defaults.effect) {
	   case "simple":	   
	   $('#'+contentid).show();
	  
	   break;
	   
	   case "fade":
	    $('#current'+tabR[contentid]).html($('#'+contentid).html());
		$('#current'+tabR[contentid]).css({
             opacity:0
	   }).animate({opacity:1},800);
	   break;
	   
	   case "visibility":
	    $('#current'+tabR[contentid]).html($('#'+contentid).html());
		$('#current'+tabR[contentid]).css({
             visibility:'visible'
	   });
	   break;
	   
	   current_id[tabR[contentid]]=contentid;
	}
	}
	 myTab.readHash=function() {
	 var url=location.href;
	 var parts=url.split("#");
	 return parts[1];
  };
})(jQuery)
