/*
 * 	Easy Slider - jQuery plugin
 *	written by Alen Grakalic	
 *	Modifief by Paul McCarthy
 *
 *	Built for jQuery library
 *	http://jquery.com
 *
 */

(function(jQuery) {

	jQuery.fn.easySlider = function(options){
	  
		// default configuration properties
		var defaults = {
			prevId: 		'prevBtn',
			prevText: 		'<',
			nextId: 		'nextBtn',	
			nextText: 		'>',
			orientation:	'', //  'vertical' is optional;
			speed: 			800			
		}; 
		
		var options = jQuery.extend(defaults, options);  
		
		return this.each(function() {  
		
			var intbannerTime = 5000 // in ms
		
			obj = jQuery(this); 				
			var s = jQuery("li", obj).length;
			var w = obj.width(); 
			var h = obj.height(); 
			var ts = s-1;
			var t = 0;
			var vertical = (options.orientation == 'vertical');
			var strListItems;
			var strText = ""
			var intListItems = 1;
			
			jQuery("ul", obj).css('width',s*w);			
			if(!vertical) jQuery("li", obj).css('float','left');
								
				strListItems = jQuery("li" ,obj);
				
				jQuery.each(strListItems, function() {
					if(intListItems == 1){
						strText += '<li><a class="sliderItems active" href="#"><span>'+intListItems+'</span></a></li>';
					}else{
						strText += '<li><a class="sliderItems" href="#"><span>'+intListItems+'</span></a></li>';
					}
					intListItems++;
				});
								
				jQuery(obj).after('<div id="cbolds-sliderControl"><ul><li><span id="'+ options.prevId +'"><a class="prevLink" href=\"javascript:void(0);\"><span>'+ options.prevText +'</span></a></span></li>' + strText + '<li><span id="'+ options.nextId +'"><a class="nextLink" href=\"javascript:void(0);\"><span>'+ options.nextText +'</span></a></span></li></ul></div>');		

			
			//jQuery("a","#"+options.nextId).addClass("enabled");
			//alert("begin population")
			
			//jQuery("h2#cbolds-firsth2").html(jQuery("#slider ul li:nth-child(1) h2").html());
			//jQuery("a#cbolds-firstactiontext span span span").text(jQuery("#cbolds-slidecontent ul li:nth-child(1) span.action").text());
			

			jQuery("#cbolds-slide").hover(
			      function () {
			        jQuery(this).addClass("cbolds-slide-over");
			      }, 
			      function () {
			         jQuery(this).removeClass("cbolds-slide-over");
			      }
			);
						
			jQuery("#cbolds-slidecontent,#cbolds-sliderControl").click(function(){

				return false;
			});

			jQuery("#cbolds-slide").click(function(){
			
				var itemNum = jQuery("a.active").text();
				window.location = jQuery("#cbolds-slidecontent ul li:nth-child(" + itemNum +") a").attr("href");
				return false;
			});
			
			
			jQuery("a","#"+options.nextId).click(function(){	
				
				if(t<ts){
					selectItem(t + 2);
					loadText(parseInt(t + 2));
				}
				
				stopTimers();
				startTimers();
				
				if (t>=ts){
					jQuery(this).removeClass("enabled");
					
				}else{
					jQuery(this).addClass("enabled");
					animate("next");
				}
				if (t<=0){
					jQuery("a","#"+options.prevId).removeClass("enabled");
				}else{
					jQuery("a","#"+options.prevId).addClass("enabled");
				}
				return false;
			});
			
			jQuery("a.sliderItems").click(function(){
				stopTimers();
				startTimers();
				selectItem(jQuery(this).text());
				loadText(jQuery(this).text());
				animate("item" + jQuery(this).text());
				
				if (t>=ts){
					jQuery("a","#"+options.nextId).removeClass("enabled");
					
				}else{
					jQuery("a","#"+options.nextId).addClass("enabled");
				}
				if (t<=0){
					jQuery("a","#"+options.prevId).removeClass("enabled");
				}else{
					jQuery("a","#"+options.prevId).addClass("enabled");
				}
				return false;
			});
			
			jQuery("a","#"+options.prevId).click(function(){

				stopTimers();
				startTimers();
				
				if(t > 0){
					selectItem(t);
					loadText(parseInt(t));
				}
				
				animate("prev");
				//if (t<=0) jQuery(this).fadeOut();
				if (t<=0){
					jQuery(this).removeClass("enabled");
				}else{
					jQuery(this).addClass("enabled");
				}
				if (t>=ts){
					jQuery("a","#"+options.nextId).removeClass("enabled");
					
				}else{
					jQuery("a","#"+options.nextId).addClass("enabled");
				}
				
				return false;
			});
			
			function selectItem(itemnum){				
				jQuery("#cbolds-sliderControl a").removeClass("active")
				jQuery("#cbolds-sliderControl li:nth-child(" + (parseInt(itemnum) + 1) +") a").addClass("active");
			}
			
			function loadText(itemnum){	
				//var itemNum = itemnum.split("item");

				jQuery("h2#cbolds-firsth2").html(jQuery("#cbolds-slidecontent ul li:nth-child(" + itemnum +") h2").html());
				jQuery("a#cbolds-firstactiontext span span span").text(jQuery("#cbolds-slidecontent ul li:nth-child(" + itemnum +") span.action").text());
			};
			
			function animate(dir){
									
				if(!vertical) {
				
					if(dir.indexOf('item') >= 0){                                                                        
						var itemNum = dir.split("item");
						t = itemNum[1] - 1;
						var nextItemCheck = dir.replace(/item/,"");
									
					}else if(dir == "next"){
						var nextItemCheck = t + 2;
						t = (t>=ts) ? ts : t+1;          
					} else {
						var nextItemCheck = t - 2;
						t = (t<=0) ? 0 : t-1;
									
					};
					

					if(jQuery("#cbolds-slidecontent ul li:nth-child(" + nextItemCheck +")").hasClass("cbolds-box-caroussel-empty")){
						jQuery("#cbolds-firstinner").hide();
						//jQuery("#cbolds-slidemask").hide();
					}else{
						jQuery("#cbolds-firstinner").fadeIn();
						//jQuery("#cbolds-slidemask").fadeIn();
					}
					

					p = (t*w*-1);
					jQuery("ul",obj).animate(
						{ marginLeft: p }, 
						options.speed
					);				
					} else {
					p = (t*h*-1);
					
					
					jQuery("ul",obj).animate(
						{ marginTop: p }, 
						options.speed
					);					
				}
			};
			if(s>1) jQuery("a","#"+options.nextId).fadeIn();
			
			
			startTimers();
		
			function startTimers(){
				jQuery(document).everyTime(intbannerTime, function(i) {
					thisItem = parseInt(jQuery("#cbolds-sliderControl .active").text())
					nextItem =  thisItem + 1;
					if(nextItem > (intListItems - 1)){
						selectItem(1);
						loadText(1)
						animate("item1");
					}else{
						selectItem(nextItem);
						loadText(nextItem)
						animate("item" + nextItem);
					}
				}, 0);
			}
			
			function stopTimers(){
				jQuery(document).stopTime();
			}
		});
		
		
	  
	};

})(jQuery);
