(function(){
	$.fn.load_yt_video = function(options){
/*
	r = required
		r -* requrired for all queries
		r -f required for filter payloadonly
	
	o = optional parameters
	
	options = {
		(r -*) payload:'[all | filter]',
		(o) count: number, 
		(r -filter) playlist:'Athletes', 
		(o) keyword:'messi', 
		(r -*) page_type: '[ landing | content | media ]'
	}
	
	
//CALLING THIS FUNTION: 
to invoke open hls-global.js at the bottom use a jQuery selector
to call. ie 
$(page-namespace ul to-attach-to).load_yt_video({
//See legend above parameters/options
	payload: '',
	count : '', 
	playlist : '', 
	keywords: '',
	page_type : ''
})

*/
		//define variables
		var opts, utils, path, req_params, init, url_param, err_flag, entries;
		
		//opts.payload, opts.count, opts.playlist, opts.keyword, opts.page_type
		opts = options;
		
		//error checking
		err_flag = false;
		
		this.oHtml;
		
		init = function(){

			
				region = jQuery('#hiddenlocale').html();

			//SETUP PAYLOAD REQUEST
			utils.payload_setup();		
		};
		
		
		
		//define Methods
		utils = {
			get_html : function(){ return this.oHtml; },
			set_html : function(_h){this.oHtml = _h; },
			
			payload_setup : function(){
				switch(opts.payload){
					case 'all' : 
								var _path = '/'+ 'Global' + '/' +'xml' + '/' + 'yt_HomePage.xml';
					
						var _req_params = null;
					break;
						
					case 'filter' :

						//var _path = domain+'Videos';	
                        var _path = '';
						//var _req_params = 'playlist';
                        var _req_params = null;
						//alert(_req_params);
					break;
					
					default : alert('No payload type passed'+"\n"+
									'load_yt_video({payload: [filter || all], ... })');
					err_flag = true; 	alert(_path);
				};
				
				if(err_flag !== true){
					utils.set_prop({'path': _path, 'req_params': _req_params});
					if(utils.req_bool){
						utils.config_path();
					}
				}
			
			},
			
			set_prop : function(obj){ 
				for(var i in obj){
					switch(i){
						case 'req_params' : req_params = obj[i]; break;
						case 'path' : path = obj[i]; break;
					}
				}
					
			},
			
			req_bool : function(){
				if(req_params !== null){
					for(var i in opts){
						if(i === req_params && (opts['req_params'] !== 'undefined' || opts['req_params'] !== '')){
							return true;
						}
					}
				}else{ return true; }
			},
			
			config_path : function(){
				//path += '?';
				var tmp =[];
				for(var i in opts){
					if(i !== 'payload' && i !== 'page_type'){
						//alert(opts[i]);
						if(opts[i] === 'Athletes'){
						path = '/'+ 'Global' + '/' +'xml' + '/' + 'yt_Athletes.xml';
						}
						if(opts[i] === 'teams'){
						path = '/'+ 'Global' + '/' +'xml' + '/' + 'yt_Teams.xml';
						}
						if(opts[i] === 'Events'){
						path = '/'+ 'Global' + '/' +'xml' + '/' + 'yt_Events.xml';
						//alert(path);
						}
						//tmp.push(i+'='+opts[i]);
					}					
				}
				//path += tmp.join("&"); 
                entries = utils.get_xml();
				utils.build_template();
			},
			
			//set youtube duration to only 2 place after the decimal 
			//youtube duration is in seconds
			_old_duration : function(duration){
				resullt = duration/60
				//result = Math.round((duration/60)*Math.pow(10,2))/Math.pow(10,2)
				return result;
			},
			
			duration : function(secs){
				var dv_m = secs % (60*60);
				var m = Math.floor(dv_m / 60);

				var dv_s = dv_m % 60;
				var s = Math.ceil(dv_s)/100;

			var tFormat = {
			   "m" : m,
			   "s" : s,
			   "concat" : m + s
			  }
			
			var tStr = tFormat.concat.toFixed(2).toString().replace('.', ':');
			return tStr;
			
		},
			//Lets Call Something
			get_xml : function(){
				
				//var devURL = '/xml/MostRecent.xml';
				var entry = {};
               /*============================
				prod URL is ::  url : path
				==============================*/
				$.ajax({
					url: path,
					type: "GET",
					async : false,
					dataType: "xml",
					complete: function() {},
				
					success: function(data) {
						
						//alert("success");
						$(data).find('entry').each(function(idx){
												
							entry[idx] = {
								'title' : $(this).find('title').text(),
								'desc' : $(this).find('content').text(),
								'posted' : $(this).find('published').text(),
							   	'video' : $(this).find('[nodeName=media:content]:first').attr('url'),
								'thumb': $(this).find('[nodeName=media:thumbnail]:first').attr('url'),
								'duration': $(this).find('[nodeName=media:content]:first').attr('duration'),
								'views' : $(this).find('[nodeName=yt:statistics]').attr('viewCount')							
								};
							
						})//end each						
					}
				
					//error: function() {}
					
				}); //end AJAX Method
				
				
				return entry;
				
			},
			
			build_template : function(){
				var tmp = '';
				var custom_format = '';
				switch(opts.page_type){
					case 'landing' : 
					$.each(entries, function(idx, prop){
						
						if(idx ==0){ var isfirst = 'first';}else{ var isfirst =''; }
					
						tmp += '<li class="'+isfirst+'"><dl><dd class="media sprite-module-master"><span><img src="'+prop.thumb+'" alt="??" title="'+prop.title+'"/></dd></span><dd class="copy sprite-module-master">'+prop.title.slice(0, 56)+'...'+'<p class="home-media-p"><span class="duration-copy">'+utils.duration(prop.duration)+'</span>'+'<span class="posted-copy">'+$.format.date(prop.posted.replace('T', ' '), 'MM/dd/yyyy')+'</span>'+'<a class="media-browser-link" rel="yt_lightbox" href="'+prop.video+'" title="'+prop.title+'|'+$.format.date(prop.posted.replace('T', ' '), 'MM/dd/yyyy')+'">Play Video<span class="sprite-module-master home-media-span">x</span></a></p></dd></dl></li>';
						
					});
					
					break;
					case 'content' : 
					$.each(entries, function(idx, prop){
						
						if(idx ==0){ var isfirst = 'first';}else{ var isfirst =''; }
					
					tmp += '<li><span class="image"><img src="'+prop.thumb+'" alt=""  title="'+prop.title+'" /></span><p>'+prop.title.slice(0, 56)+'...'+'<span>posted on: '+$.format.date(prop.posted.replace('T', ' '), 'MM/dd/yyyy')+'</span><em>'+utils.duration(prop.duration)+'</em><a rel="yt_lightbox" href="'+prop.video+'" title="'+prop.title+'|'+$.format.date(prop.posted.replace('T', ' '), 'MM/dd/yyyy')+'">play video</a></p></li>';
					
					});
					break;
					case 'media' : 
					//Logic will probably be handled is a seperate file: 
					//@
					break;
				}
				
				utils.set_html(tmp);
				
				
			}
			
		};
		
		/*  ORIGINAL FUNCTION *****/
		/*
		build_template : function(){
				var tmp = '';
				var custom_format = '';
				switch(opts.page_type){
					case 'landing' : 
					$.each(entries, function(idx, prop){
						
						if(idx ==0){ var isfirst = 'first';}else{ var isfirst =''; }
					
						tmp += '<li class="'+isfirst+'"><dl><dd class="media sprite-module-master"><span><img src="'+prop.thumb+'" alt="??" title="'+prop.title+'"/></dd><dd class="copy sprite-module-master"></span>'+prop.title.slice(0, 56)+'...'+'<span>posted on: '+$.format.date(prop.posted.replace('T', ' '), 'MM/dd/yyyy')+'</span><p class="home-videos-p">'+utils.duration(prop.duration)+'<a rel="yt_lightbox" href="'+prop.video+'" title="'+prop.title+'|'+$.format.date(prop.posted.replace('T', ' '), 'MM/dd/yyyy')+'">Play Video<span class="sprite-module-master home-videos-span">x</span></a></p></dd></dl></li>';
						
					});
					
					break;
					case 'content' : 
					$.each(entries, function(idx, prop){
						
						if(idx ==0){ var isfirst = 'first';}else{ var isfirst =''; }
					
					tmp += '<li><span class="image"><img src="'+prop.thumb+'" alt=""  title="'+prop.title+'" /></span><p>'+prop.title.slice(0, 56)+'...'+'<span>posted on: '+$.format.date(prop.posted.replace('T', ' '), 'MM/dd/yyyy')+'</span><em>'+utils.duration(prop.duration)+'</em><a rel="yt_lightbox" href="'+prop.video+'" title="'+prop.title+'|'+$.format.date(prop.posted.replace('T', ' '), 'MM/dd/yyyy')+'">play video</a></p></li>';
					
					});
					break;
					case 'media' : 
					//Logic will probably be handled is a seperate file: 
					//@
					break;
				}
				
				utils.set_html(tmp);
				
				
			}
			
		};
		*/
	

		// FIRE THE F'n THING				
			return this.each(function(){
				init();
				$(this).html(utils.get_html());
				
			});// end this.each
		
		//*************************************
		//** fancy box
		$('#youtube-media ul.assets li a ').fancybox({
			'type': 'swf',
			'swf' : {
					'wmode' : 'transparent', 
					'allowfullscreen'   : 'true'
				},
				'titlePosition' : 'inside',
				'titleFormat' : custom_video_format,
				'overlayColor' : '#000'
		});
		
		function custom_video_format(title, currentArray, currentIndex, currentOpts){
			alert('im here!!');
			var aDesc = title.split('|');
			//return '<div class="landing-video-title"><p>'+aDesc[0]+'<span>posted on: '+aDesc[1]+'</span></p><p class="increm">'+(currentIndex+1)+' of '+currentArray.length+'</p></div>';
			return '<div class="landing-video-title"><p>'+aDesc[0]+'</p><p class="increm">'+(currentIndex+1)+' of '+currentArray.length+'</p></div>';
		}
		//*************************************
		
	};//end fn.extend
		
})(jQuery);

