/*
 	file: jquery.xmlNewsBar.js    
    file usage: xml Driven new Bar
    Author: Speed730
    Author URI: http://themeforest.net/user/Speed730
*/

(function($){
    $.fn.xmlNewsBar = function(options)
	{
		var defaults = 
		{
			xmlFile: '../xml/news.xml', // xml file used
			textContainer:'#newsTextArea', // div contaier for text
			movingSpeed : 250 // time for text show off but it's not real time there is some changen in code below to count text length								
		}, settings = $.extend({}, defaults, options);	
		
		var container = $(this);
		var textContainer = settings.textContainer;
		
		$.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('news');
			var imgSrc = $(xmlDoc).find('imgSrc');			
			var imghref = $(xmlDoc).find("imghref");												
			var imgText = $(xmlDoc).find("imgText");			
			var interval = "";			
			
			for (var i = 0; i < imgSrc.length; i++) 
			{								
				var aLink = $("<a class='ImgNewsBar preloader'></a>")
				.appendTo("#newsBar").attr('title', $(imgSrc[i]).text())
				.attr('href', $(imghref[i]).text()).addClass('ImgLoader')
				.css({
					position : "absolute",
					zIndex : (imgSrc.length)-i
					});					
				var textSpan = $("<span class='xmlTextNews'></span>").text($(imgText[i]).text())
				.appendTo(textContainer);
			}
						
			$('.ImgLoader').imgLoader(
			{
				img_Src: 'title',	
				callBackFn: function()
				{
					$("a.ImgNewsBar").removeClass('preloader');															
				}
			});
			
			var xmlNewText = $('.xmlTextNews');
			var aLinkImg = $('.ImgNewsBar');
						
			$(aLinkImg).not(aLinkImg[0]).css({opacity:0.0});
			var aLinkImgCount = $(aLinkImg).length;
			
			$(xmlNewText)
			.css({				
					left: 850
				});
							
			var j = 0;
			function newsMoving()
			{
				var currentTextLength = ($(xmlNewText[j]).text()).length;
				var currentText = $(xmlNewText[j]);		
				
				$(aLinkImg[j]).css({zIndex : aLinkImgCount+1}).animate({opacity : 1.0});				
				currentText.css(
				{
					position : "relative",
					left : 750
				});
				
				currentText.animate(
				{
					left: -($(xmlNewText[j]).width())
				}, settings.movingSpeed * currentTextLength , function()
				{					
					$(this).css(
					{
						position : "absolute"												
					});
					$(aLinkImg[j]).css({zIndex : aLinkImgCount}).animate({opacity : 0.0});					
					
					j++
					if(j == xmlNewText.length)
					{
						j = 0;																								
					}
					newsMoving();
				});
			}
			newsMoving();		
		}
		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);
                var altText = ($this.parent("a").find(settings.Alt_Src).text());
                $(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).attr("alt", altText);
                $(this).attr(settings.img_Src, "");
            });
		return this;
    }
})(jQuery);


