/*
 	file: jquery.xmlMiniSlider.js    
    file usage: xml Driven Slider
    Author: Speed730
    Author URI: http://themeforest.net/user/Speed730
*/
(function($){
    $.fn.xmlMiniSlider = function(options)
	{
		var defaults = 
		{
			xmlFile : "",
			imgContainer: $("#imgWrapper"),
			imgContainerWidth : "",
			imgContainerHeight : "",
			sliderButtonsContainer: $("#buttonsWrapper"),
			autoRotation : true, // enable auto slide
			rotationSpeed : 3			
		}, settings = $.extend({}, defaults, options);		
		var sliderButtonsHeight = $(settings.sliderButtonsContainer).height();
		var container = $(this)
		.css({
			width : settings.imgContainerWidth,
			height: settings.imgContainerHeight + sliderButtonsHeight
			});
		var imgContainer = settings.imgContainer;
		var interval = '';
		$.ajax({
			type: "GET",
			dataType: "xml",
			url: settings.xmlFile,
			dataType: "xml", 
			success: function(xmlDoc, status){							            
				processXMLDoc(xmlDoc);
			},
			complete: function(xhr, status){				
				if (status == 'parsererror') {					
					xmlDoc = null;					
					if (!window.DOMParser) {
						xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
						xmlDoc.async = "false";
						xmlDoc.loadXML(xhr.responseText);
					}
					else {
						parser = new DOMParser();
						xmlDoc = parser.parseFromString(xhr.responseText, "text/xml");
					}
					processXMLDoc(xmlDoc);
				}
			},
			error: function(xhr, status, error){
			}
		});
		
		function processXMLDoc(xmlDoc){
			var newsPosts = $(xmlDoc).find('featured');
			var imgSrc = $(xmlDoc).find('imgSrc');			
			var imghref = $(xmlDoc).find("imghref");
			var imgTitle = $(xmlDoc).find("imgheader");
			var firstImgTitle = $(imgTitle[0]);			
			var imgText = $(xmlDoc).find("imgText");								
			var SliderBtn = settings.sliderButtonsContainer;						
			var titleContainer = $('#xmlNewsTitle').text(firstImgTitle.text());						
			$(imgContainer).css(
			{
				height: settings.imgContainerHeight,
				width: settings.imgContainerWidth * imgSrc.length
			});			
									
			for (var i = 0; i < imgSrc.length; i++) 
			{
				var aLink = $("<a class='ImgWrapper preloader'></a>").appendTo(imgContainer).attr('title', $(imgSrc[i]).text()).attr('href', $(imghref[i]).text()).addClass('xmlImg').css({
					width: settings.imgContainerWidth,
					height: settings.imgContainerHeight,
					display: 'block',
					'float': 'left'
				});
				var titleContainer = $('<div class="newsTitle"></div>').appendTo();				
			}			
			$('.xmlImg').imgLoader(
			{
				img_Src: 'title',
				callBackFn: function()
				{
					$("a.ImgWrapper").removeClass('preloader');
					start_rotation();															
				}
			});
						
			var titleContainer = $('#xmlNewsTitle').removeAttr("filter");			
			var imgHolder = $(".ImgWrapper");						
			for (var i = 0; i < imgHolder.length; i++) {
				var textPreviewHolder = $('<div class="xmlTextBg"></div>').appendTo(imgHolder[i]).css({
					width: settings.imgContainerWidth,
					backgroundColor: "#000",
					opacity: 0.8	
				}).wrap('<div class="xmlTextContainer" />').text($(imgText[i]).text());
				
				var thisText = $(".xmlTextContainer").css({
					position: "relative"
				}).fadeOut();
			}
									
			var j = 0;
			function start_rotation(){
			
				$("#RightxmlSliderBtn").bind("click", function(event){
					if (j < imgHolder.length - 1) {
						j++;
						
						titleContainer.stop(true, true).fadeOut(750, function(){
							$(this).removeAttr("filter").text($((imgTitle)[j]).text()).fadeIn(750, function(){
								$(this).removeAttr("filter");
							});
						});
						
						imgContainer.animate({
							left: -(settings.imgContainerWidth * j)
						});	
						$(textPreviewHolder).css({
							top: 0
						});
					}
					return false;
				});
				
				$("#LeftxmlSliderBtn").bind("click", function(event){
					if (j != 0) {
						j--;
						
						titleContainer.stop(true, true).fadeOut(750, function(){
							$(this).removeAttr("filter").text($((imgTitle)[j]).text()).fadeIn(750, function(){
								$(this).removeAttr("filter");
							});
						});
						
						$(imgContainer).animate({
							left: -(settings.imgContainerWidth * j)
						});
						$(textPreviewHolder).animate({
							top: 0
						});
					}
					return false;
				});
			}		
			
			$(imgHolder).each(function(i){
				($(imgHolder[i])).hover(function(e){					
					$(thisText).stop(true, true).fadeIn(550, function()
					{
						$(this).removeAttr("filter");						
					});
				}, function(){
					$(thisText).stop(true, true).fadeOut(550, function()
					{
						$(this).removeAttr("filter");												
					});
				});
			});
			
			function TriggerSliderRight()
			{				
				$('#RightxmlSliderBtn').trigger('click');
			}
			
			function TriggerSliderLeft()
			{				
				$('#LeftxmlSliderBtn').trigger('click');
			}
			
			function intervalActivate()
			{
				if (settings.autoRotation) 
				{
					interval = setInterval(function()
					{	
						if (j == imgHolder.length - 1) 
						{
							$(imgContainer).animate(
							{	
								left : 0
							});
							j = 0;
														
							$(titleContainer).stop().animate(
							{
								opacity: 0.0
							}, 750, function()
							{
								$(this).text(firstImgTitle.text());
								
							}).animate({
								opacity: 1.0
							}, 650);														
						}
						else 
						{
							TriggerSliderRight();
						}
					}, (parseInt(settings.rotationSpeed) * 1500));
				}
			}
						
			$(container).mouseover(function(event)
			{
				clearInterval(interval);								
			});
			
			$(container).mouseout(function(event)
			{			
				intervalActivate();				
			});			
			intervalActivate();			
		}
		return this;
	}
})(jQuery);

// Images Loader

(function($){
    $.fn.imgLoader = function(options){
        var defaults = {
            imgLink: '', // image Link container that with the Ajax Icon Loader
            fadeInSpeed: 1600, //show Image Speed,
            callBackFn: null, //CallBack Function if needed
            img_Src: '', //Attrib where is the http:// image location to load,
            Alt_Src: '', // ALT Attrib Text for Current Image Loading,
            readyElem_Count: 0 // function will activate at this point of progress	  
        }, settings = $.extend({}, defaults, options);
		
        
            $(this).each(function(i){
            
                var $this = $(this);
                var img = new Image();
                var imgSrc = $(this).attr(settings.img_Src);                
                $(img).load(function(){
                    $(img).appendTo($this).css({
                        opacity: 0
                    }).animate({
                        opacity: 1
                    }, settings.fadeInSpeed,function()
					{
						$(this).parent().parent().removeClass('image_preloader');
						
						if(i == settings.readyElem_Count)
						{								
							settings.callBackFn();
						}																		
					});                    
                }).attr("src", imgSrc);
                $(this).attr(settings.img_Src, "");
            });
		return this;
    }
})(jQuery);


