//Cufon Text
Cufon.replace('.b-links .copyrights, .slider-meta .total');
Cufon.replace('.testimonial h2', { hover:true });
Cufon.replace(".navigation a", { hover:true });
Cufon.replace('.t-links a, .b-links a, .slider-meta a',{hover: true});
Cufon.replace('.slider-meta .current');
Cufon.replace("#fader .data p", { hover:true });

//Cufon Now for IE
function PageLoaded(){
	//Cufon.now();
};

function preloadImage( $element )
{
	if( !$element.data("loaded") )
	{
		var $img = $("<img />");
		$img.attr("src", $element.data("image"));
		$element.html("");
		$img.appendTo($element);
		$img.load(function() {
			$element.data("loaded", true);
		});
	}	
}

function preloadImages( $element )
{
	preloadImage($element);
	/*
	preloadImage($element.prev());
	preloadImage($element.prev().prev());
	
	preloadImage($element.next());
	preloadImage($element.next().next());
	*/
}

function createFaders(faders)
{
	var fader, scrollbar, faderPrev, currentFader;
	// Creating the scroll
	$("#fader .scroll").scrollBar({
		count: $("#fader .holder ul:eq(0) li").size(),
		onInit: function(scr) {
			scrollbar = scr;
		},
		onChange: function(idx) {
			fader.fadeTo(idx);
		},
		onStart: function() {
			fader.stop();
		},
		onEnd: function(idx) {
			fader.start();
		}
	});
			
	
	// Preparing functions
	nextCollection = function() {
		var nextFaderIndex = currentFader+1 >= faders.length ? 0 : currentFader+1;
		var nextFaderId = faders[nextFaderIndex].id;
		$(".navigation a[href=" + nextFaderId + "]").click();
	}
	
	previousCollection = function() {
		var nextFaderIndex = currentFader != 0 ? currentFader-1 : faders.length-1;
		var nextFaderId = faders[nextFaderIndex].id;
		$(".navigation a[href=" + nextFaderId + "]").click();		
	}
	
	
	// Creating click actions
	$("#fader .fader-play").click(function() {
		$("#fader .fader-play").addClass("fader-active");
		$("#fader .fader-pause").removeClass("fader-active");
		Cufon.refresh("#fader .data p", { hover:true });
		fader.start();
		return false;
	});
	$("#fader .fader-pause").click(function() {
		$("#fader .fader-play").removeClass("fader-active");
		$("#fader .fader-pause").addClass("fader-active");
		Cufon.refresh("#fader .data p", { hover:true });
		fader.stop();
		return false;
	});
	$("#fader .fader-prev").click(function() {
		fader.prev();
		return false;
	});
	$("#fader .fader-next").click(function() {
		fader.next();
		return false;
	});
	$("#fader .collection-prev").click(function() {
		if( $("#fader ul:animated").size() == 0 ) previousCollection();
		return false;
	});
	$("#fader .collection-next").click(function() {
		if( $("#fader ul:animated").size() == 0 ) nextCollection();
		return false;
	});
	
	
	// Initiating faders
	for( var i = 0; i < faders.length; i++ )
	{
		var faderId = faders[i];
		var thisFader;
		
		$(faderId).easyFader({
			auto: 4000,
			duration: 800,
			onInit: function(f) {
				thisFader = f;
			},
			onFade: function(f, idx) {
				scrollbar.set(idx);
				$("#fader .fader-current span").text(idx);
				Cufon.replace("#fader .data p", { hover:true });
				faderPrev = idx;
				preloadImages( f.find("li").eq(idx-1) );
			},
			onBeginning: previousCollection,
			onEnd: nextCollection
		});
		thisFader.stop();
		
		faders[i] = {
			id: faderId,
			handle: thisFader
		}
	}
		
	$(".navigation a").bind('click', function() {
		var href = $(this).attr("href");
		var theFader = -1;
		for(var i=0; i<faders.length; i++)
		{
			if( faders[i].id == href )
			{
				theFader = i;
				break;
			}
		}
		
		if( theFader>=0 && theFader != currentFader )
		{
			currentFader = theFader;
			theFader = faders[theFader].handle;
			
			if(fader)
			{
				fader.stop();
				fader.css({ zIndex: 1 });
				fader.addClass("fader-to-hide");
			}
			
			theFader.css({ zIndex:2 });
			theFader.fadeTo(1, { force: true });
			
			if( fader )
			{
				theFader.fadeIn(800, function() {
					$(".fader-to-hide").hide().removeClass("fader-to-hide");
					fader.start();
				});	
			}
			else
			{
				theFader.show();
				theFader.start();
			}
			
			scrollbar.setCount( theFader.find("li").size() );
			
			$(".fader-count").text( theFader.find("li").size() );
			Cufon.refresh(".fader-count");
			
			fader = theFader;
		}
		fader.fadeTo(1, { force:true });
		$(".navigation a").removeClass("active");
		$(this).addClass("active");
		Cufon.refresh(".navigation a");
		
		return false;
	}).eq(0).click();
}

function loadImages(xmlUrl)
{
	var toReturn = new Array();

	$.ajax({
		url: xmlUrl,
		success: function(data) {
			var $data = $(data);
			
			$data.find("collection").each(function() {
				var collectionId = $(this).attr("id");
				var $collection = $("<ul />");
				$collection.attr("id", collectionId);
				
				$(this).find("image").each(function() {
					var src = $(this).text();
					var $li = $("<li />");
					$li.data("image", src);
					$li.data("loaded", false);
					$li.appendTo($collection);
				});
				
				$collection.appendTo($("#fader .holder"));
				
				toReturn.push("#" + collectionId);
			});
			
			createFaders(toReturn);
		}		
	});
}

$(function() {	
	
	if( $("#fader").size() ) loadImages("images.xml");
	
	$("#content .content-inner").jScrollPane({ showArrows:true });
	
	/* 
		This is the part that centers the slider in the page
	*/
	var $header = $("#header");
	var $footer = $("#footer");
	var $main = $("#main");
	
	$(window).resize(function() {
		var extra = $(window).height() - ( $header.outerHeight(true) + $main.height() + $footer.outerHeight(true) );
		var padd =  extra/2;
		
		if( padd < 0 ) padd = 0;
		
		$("#main").css({
			padding: padd + "px 0"
		});
	}).resize().load(function() {
		 $(window).resize(); 
	});
});
