/*
*	Author: Peter L. Hansen <peter@tigermedia.dk>
*	
*	TODO: Support for multiple usages of tigertools per page
*	TODO: Eliminate double code
*/


(function($){  
$.tcms = {} 
$.fn.ajaxCms = function(options) {

 
  var defaults = {
   url: "/plugin.php",
   parameters: {'theme':'clean','type':'CmsJquery', 'plugin[]':'Cms'},
   title: null,
   id: null,
   fadeTime: 1000,
   type: 'html'
  };
  
  
  
  if($.tcms.didWrap == undefined){
  	this.wrapInner("<div id='tcmsWrap'></div>");
  	$.tcms.didWrap = true;
  	$.tcms.cache = new Array();
  }
  
  var options = $.extend(defaults, options);
  var currentIdentifier;

  
  if(options.title != null){
  	defaults.parameters = $.extend(defaults.parameters, {'Cms-lookuptitle':options.title});
  	currentIdentifier = options.title;
  }else{
  	defaults.parameters = $.extend(defaults.parameters, {'Cms-id':options.id});
  	currentIdentifier = options.id;
  }
  if($.tcms.cache[currentIdentifier] == undefined){
  	
  	$.get(options.url, options.parameters, function(data){
  		$.tcms.cache[currentIdentifier] = data;
		
  		//double code
  		$("#tcmsWrap").fadeOut(options.fadeTime, function(){
		  	$("#tcmsWrap").html($.tcms.cache[currentIdentifier]);
  			$("#tcmsWrap").fadeIn(options.fadeTime);
  		});
  		return;
	});
  }
  
  //normal
  $("#tcmsWrap").fadeOut(options.fadeTime, function(){
  	$("#tcmsWrap").html($.tcms.cache[currentIdentifier]);
  	$("#tcmsWrap").fadeIn(options.fadeTime);
  });
   
};



$.fn.ajaxCmsRotate = function(options) {

  var defaults = {
   random: false,
   items: null,
   interval: 10,
   fadeTime: 1000
  };
  
  var options = $.extend(defaults, options);
  
  var currentId = -1;
  
  
  
  if(options.items == null) return false;

	
	function loadNext(foo){
 		currentId = currentId + 1; 
 		
 		if(currentId == options.items.length) currentId = 0; 

 		if(isFinite(options.items[currentId])){
 			return foo.ajaxCms({fadeTime:options.fadeTime, id:options.items[currentId]});	
 		}else{
 			return foo.ajaxCms({fadeTime:options.fadeTime, title:options.items[currentId]});
 		}
 		
 		
 		
    }
  
  var bar = this;
  
  $(this).everyTime(options.interval*1000, function(){ loadNext(bar); });
  
   
};


})(jQuery); 
