(function($) {

	var region = '';
	$.fn.twitterTicker=function(user){
		
		return this.each(function(){

		var _tweeter_feed = user; 
		var $_wrapper = $(this);
		
		var $_slider;
		var $_items;
		
		var preCloneWidth = 0;
		var totalWidth = 0;
		var cloneHead = 0;
		var duration = 270000;
		var path ='';
		xmlPath_L1 =  '/'+ 'Global' + '/' +'xml' + '/' + 'API_config.xml';
			
			var env ='';
			var envapi ='';
			var currentURL = window.location.toString().split("/");
			var add = currentURL[2];
			region = jQuery('#hiddenlocale').html();	

			if((add.match(/(.*\.qa4\.*)/) !== null) || (add == 'uslaxcmsqa01')){
			 env = "qa";
			}
			else if((add.match(/(.*\.dev4\.*)/) !== null) || (add == 'uslaxcmsdev01')){
			env = "dev";
			}
			else if((add.match(/(.*\.uat\.*)/) !== null) || (add == 'uslaxcms05') || (add == 'uslaxcmsprd')){
				env = "uat";
				}
				else{
				env = "prd";
					}
			$.ajaxSetup({
						type: 'GET',
						dataType: 'xml',
						async : false
					});//end $ajaxSetup
					
					$.ajax({
						url: xmlPath_L1,
						success: function(data) {
							procXML(data,env);
						},
						  error: function(xhr, textStatus, errorThrown){alert("error");}
					});//end $.ajax

			function procXML(data,env)
				{


				//alert(data);
					//alert(env);

					$(data).find('env').each(function(idx){
					envapi = $(this).attr("name");
					//alert(envapi);

					if(env == envapi)
						{

							
						domain = $(this).attr("domain");
						

						}
					
					
					});//end $.ajax

				}





		
// ----- the Feed request ----//
		if(_tweeter_feed != "")
		{
			path = '/'+ 'Global' + '/' +'xml' + '/' + 'twitter' + '/' + 'tw_all.xml';
			
		}
		else
		{
			
			 path = '/'+ 'Global' + '/' +'xml' + '/' + 'twitter' + '/' + 'tw_all.xml';
			
			
		}
		
		$.ajax({
		  //url: 'smashingmag_min.json',
		  url: path,
		  type: 'GET',
		  dataType: 'xml',
		  data: {},
		  cache: false,
		  async : false,
		  complete: function(xhr, textStatus) {

		  },
		  success: function(data, textStatus, xhr) {
			postProcess(data);
		  },
		  error: function(xhr, textStatus, errorThrown) {
//			console.log('AJAX error: ',errorThrown);
		  }
		});
				

//----postProcess Feed data ----//

		function postProcess(data){
			var _item;
			var _html='';
			var _numItems='';
			
			
		
			$(data).find('status').each(function(idx){
_html += '<li class="tweet-'+idx+'"><span class="twitter-date-time">'+$(this).find('created_at:first').text()+' </span><span class="twitter-account-name">'+ $(this).find('name').text()+ '</span>:  '+ $(this).find('text').text()+'</li><div class="twitter-divider"></div>';
						
				_numItems=idx;
				
			});
			//alert(_numItems);
		
			
			//setting up the number of items to clon in slider
			/*if (_numItems >= 5)
			{
				_numItems = 5;
			}*/
			//---- DOM setup-----//
			
			$(_html).appendTo($_wrapper.find('>ul')); //attach _html to DOM
		
			$_slider = $_wrapper.find('> ul');
			$_items = $_slider.find('> li');

			$_items.filter(':last').after($_items.slice(0, _numItems).clone().addClass('cloned')); //get first 5. clone. append to tail
			$_items = $_slider.find('>li'); //re-query li after cloning

			$_items.each(function(idx){
				totalWidth += $(this).outerWidth();
			})//get the sizes of all the item
			
						
			$_items.slice(0,_numItems).each(function(idx){ 
				cloneHead += $(this).outerWidth(); 
			});//get combined width of cloned 5  prepended
			
			
			$_slider.css({'width': totalWidth+cloneHead })//set the sliders width
			$_wrapper.css({'overflow':'hidden'});
			
			//--- Hover Events ----//
			$_items.each(function(idx) { 
				
				$(this).hover(function() {
					$_wrapper.stop();
					

				}, function() {

					var _pxperms = (totalWidth-cloneHead) / duration;
					var newDuration = Math.ceil(duration - (totalWidth-cloneHead) - ($_wrapper.scrollLeft() / _pxperms));
					//$_wrapper.animate({scrollLeft: '+=' + ((totalWidth-cloneHead) - $_wrapper.scrollLeft() ) },  'fast' , 'linear', animCallback );
					$_wrapper.animate({scrollLeft: '+=' + ((totalWidth-cloneHead) - $_wrapper.scrollLeft() ) },  newDuration, 'linear', animCallback );
					

					
				});	
			});
						
			//----- animation -----/
			function animCallback() {
				$_wrapper.scrollLeft(0);
				processAnimate();
			}
			
			function processAnimate(){	
				//$_wrapper.animate({scrollLeft: '+=' + (totalWidth-cloneHead)}, 'fast', 'linear', animCallback );
				$_wrapper.animate({scrollLeft: '+=' + (totalWidth-cloneHead)}, duration, 'linear', animCallback );
				
			} //end processAnimation

			processAnimate();
		
		}// end postProcess	
	});//end chaining	
};//end plugin
	
	
	//$("#tweets").twitterTicker('imessi');
	
})(jQuery);//end ready



