$(document).ready(function() {
    var background = (new BackgroundRotator()).init();
    var feature = new FeatureRotator();
    var navigationElement = new NavigationElement();
    
    function make_url_absolute(url) {
		if (url.substr(0, 7) == "http://")
			return url;
		else
			return "http://" + window.location.hostname + url;
	}
	
	var authPlugin;
	if (typeof($.fn.enableCapture) === 'function') {
		authPlugin = {
			name: "FormAuth",
			submitPermissions: "forceLogin",
			nestedPlugins: [{name: "UCIDLogin"}]
		};
	}
	else {
		authPlugin = {
			name: "FormAuth",
			identityManagerLogin: {
				width: 420,
				height: 260,
				url: "http://signup.universalmusic.com/openid/embed?flags=stay_in_window,no_immediate&token_url=" + encodeURIComponent(make_url_absolute("/_global/rpx.ashx") + "?bp_channel=" + Backplane.getChannelID()) + "&bp_channel="
			},
			submitPermissions: "forceLogin"
		};
	}
	
	var riverClients = []; // Array to hold all the river clients that are on the page

	$(".echo-submit-form").each(function() {
		var url = make_url_absolute($(this).attr("uniq"));
		new Echo.Submit({
			target: this,
			appkey: "dev.umg", 
			targetURL: url,
			plugins: [authPlugin]
		});
	});
	
	function commentQuery(unique) {
		return "childrenof:\"" + make_url_absolute(unique) + "\" type:comment sortOrder:chronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged";
	}
	
	$(".echo-stream").each(function() {
		new Echo.Stream({
			target: this,
			appkey: "dev.umg",
			query: commentQuery($(this).attr("uniq")),
			reTag: false,
			plugins: [{
				name: "CommunityFlag"
			}, {
				name: "Curation"
			}, {
				name: "Edit"
			}, {
				name: "AvatarLink"
			}]
		});
	});
	
	$(".echo-count").each(function() {
		new Echo.Counter({
			target: this,
			appkey: "dev.umg",
			query: commentQuery($(this).attr("uniq"))
		});
	});
	
	$(".jlo-echo-river").each(function() {
	     var riverContainer = this;
	     var self = this;
	     self.riverDiv = $('<div class="river"></div>');
		 $(this).append(self.riverDiv);
		 
		$(".selector a", riverContainer).each(function() {
			var query = unescape(this.href);
			
			if (query.substr(0, 6) == "river:") {
				query = query.substr(6);
			}
			
			this.href = "#";
			$(this).click(function(e) {
				e.preventDefault();
				var riverClient = navigationElement.instantiateEchoStream(self.riverDiv, query);
		        riverClients.push(riverClient);
				
				$(".selector a", riverContainer).removeClass("selected");
				$(this).addClass("selected");
			});
		});
		$(".selector", riverContainer).css("display", "");
		
		
		// click functionality
		$('#homeMenu .menu .twitter a').click(function() {
			resetHoverBoxes();
            feature.stop();
	        background.blur();
	        $('#overlay').stop(true, true).fadeIn(300);
			$('#contentFeed').stop(true, true).fadeIn(300);
			$('#contentFeed .selector li a').removeClass("selected");
			$('#contentFeed .selector .twitter a').addClass("selected");
			
			var query = unescape(this.href);
				
			if (query.substr(0, 6) == "river:") {
				query = query.substr(6);
			}
				var riverClient = navigationElement.instantiateEchoStream(self.riverDiv, query);
		        riverClients.push(riverClient);
			
			return false;
		});
		
		$('#homemenu .menu .facebook a').click(function() {
			resethoverboxes();  
			feature.stop();
	        background.blur();
	        $('#overlay').stop(true, true).fadeIn(300);
			$('#contentfeed').stop(true, true).fadein(300);
			$('#contentfeed .selector li a').removeclass("selected");
			$('#contentfeed .selector .facebook a').addclass("selected");
				
			var query = unescape(this.href);
				
			if (query.substr(0, 6) == "river:") {
				query = query.substr(6);
			}
				var riverClient = navigationElement.instantiateEchoStream(self.riverDiv, query);
		        riverClients.push(riverClient);
			
			return false;
		});
		
		$('#homeMenu .menu .news a').click(function() {
			resetHoverBoxes();
			feature.stop();
	        background.blur();
	        $('#overlay').stop(true, true).fadeIn(300);
			$('#contentFeed').stop(true, true).fadeIn(300);
			$('#contentFeed .selector li a').removeClass("selected");
			$('#contentFeed .selector .news a').addClass("selected");
				
			var query = unescape(this.href);
				
			if (query.substr(0, 6) == "river:") {
				query = query.substr(6);
			}
				var riverClient = navigationElement.instantiateEchoStream(self.riverDiv, query);
		        riverClients.push(riverClient);
			
			return false;
		});
		
		$('#homeMenu .menu .lovePhotos a, #lovePhotosHover a.btn_lg').click(function() {
			$('.bar1').css('width','0');
			$('.bar2').css('width','0');
		    feature.stop();
	        background.blur();
	        $('#overlay').stop(true, true).fadeIn(300);
			$('#galleryBox').stop(true, true).fadeIn(100);
			feature.stop();
			$('#overlay').hide();
			background.stop();
			return false;
		});
		
	});
	
	$(".menuHover .bar1.echo").each(function(){
	     var self = this;
	     self.riverDiv = $('<div class="echoPreview"></div>');
		 $(this).append(self.riverDiv);
		
	    // hover functionality
		$('#homeMenu .menu .twitter a').mouseover(
			function() {
				resetHoverBoxes();
				$('#twitterHover .echoPreview').hide();
				menuOffset 		= $(this).offset();
				$('#twitterHover').css( 'top', (menuOffset.top - 2) + 'px' );
				$('#twitterHover .bar1').animate({
					width: (menuOffset.left - 10) + 'px'
				}, { 
					queue: false, 
					duration: 300,
					complete: function() {
					
						var query = unescape('childrenof:http://www.jenniferlopezmusic.com/* user.id:http://twitter.com/jlo provider:Arktan source:Twitter -state:ModeratorDeleted safeHTML:false children:1 -state:ModeratorDeleted,SystemFlagged,ModeratorFlagged,CommunityFlagged -user.state:ModeratorBanned itemsPerPage:1');
				
						if (query.substr(0, 6) == "river:") {
							query = query.substr(6);
						}
						
					    var riverClient = navigationElement.instantiateEchoStream(self.riverDiv, query);
		                riverClients.push(riverClient);
						
					    $('#twitterHover .echoPreview').stop(true, true).show();
					 
					}
				});
			
				$('#twitterHover .bar2').animate({
					width: ($(window).width() - menuOffset.left + 9) + 'px'
				}, { 
					queue: false, 
					duration: 300
				});
			}
		);
		
		$('#twitterHover').mouseleave(
			function() {
				//mouse off
				$('#twitterHover .echoPreview').hide();
				$('#twitterHover .bar1').animate({
					width: '0px'
				}, { 
					queue: false, 
					duration: 300
				});
				$('#twitterHover .bar2').animate({
					width: '0px'
				}, { 
					queue: false, 
					duration: 300
				});
			}
		);
		
		$('#homeMenu .menu .facebook a').mouseover(
			function() {
				resetHoverBoxes();
				$('#fbHover .echoPreview').hide();
				menuOffset 		= $(this).offset();
				$('#fbHover').css( 'top', (menuOffset.top - 2) + 'px' );
				$('#fbHover .bar1').animate({
					width: (menuOffset.left - 10) + 'px'
				}, { 
					queue: false, 
					duration: 300,
					complete: function() {
						var query = unescape('childrenof:http://www.jenniferlopezmusic.com/* provider:Arktan source:Facebook -state:ModeratorDeleted safeHTML:false children:1 -state:ModeratorDeleted,SystemFlagged,ModeratorFlagged,CommunityFlagged -user.state:ModeratorBanned itemsPerPage:1');
				
						if (query.substr(0, 6) == "river:") {
							query = query.substr(6);
						}
						var riverClient = navigationElement.instantiateEchoStream(self.riverDiv, query);
		                riverClients.push(riverClient);
		                
						$('#fbHover .echoPreview').stop(true, true).show();
					}
				});
			
				$('#fbHover .bar2').animate({
					width: ($(window).width() - menuOffset.left + 9) + 'px'
				}, { 
					queue: false, 
					duration: 300 
				});
			}
		);
		
		$('#fbHover .bar1').mouseleave(
			function() {
				//mouse off
				$('#fbHover .echoPreview').hide();
				$('#fbHover .bar1').animate({
					width: '0px'
				}, { 
					queue: false, 
					duration: 300
				});
				$('#fbHover .bar2').animate({
					width: '0px'
				}, { 
					queue: false, 
					duration: 300
				});
			}
		);	
		
		$('#homeMenu .menu .news a').mouseover(
			function() {
				resetHoverBoxes();
				$('#newsHover .echoPreview').hide();
				menuOffset 		= $(this).offset();
				$('#newsHover').css( 'top', (menuOffset.top - 2) + 'px' );
				$('#newsHover .bar1').animate({
					width: (menuOffset.left - 10) + 'px'
				}, { 
					queue: false, 
					duration: 300, 
					complete: function() {
						var query = unescape('childrenof:http://www.jenniferlopezonline.com/* provider:Arktan source:Jenniferlopezonline.com -state:ModeratorDeleted safeHTML:false children:1 -state:ModeratorDeleted,SystemFlagged,ModeratorFlagged,CommunityFlagged -user.state:ModeratorBanned itemsPerPage:1');
					
						if (query.substr(0, 6) == "river:") {
							query = query.substr(6);
						}
						
						var riverClient = navigationElement.instantiateEchoStream(self.riverDiv, query);
		                riverClients.push(riverClient);
		                
						$('#newsHover .echoPreview').stop(true, true).show();
					}
				});
				
				$('#newsHover .bar2').animate({
					width: ($(window).width() - menuOffset.left + 9) + 'px'
				}, { 
					queue: false, 
					duration: 300 
				});
			}
		);
		
		$('#newsHover .bar1').mouseleave(
			function() {
				//mouse off
				$('#newsHover .echoPreview').hide();
				$('#newsHover .bar1').animate({
					width: '0px'
				}, { 
					queue: false, 
					duration: 300
				});
				$('#newsHover .bar2').animate({
					width: '0px'
				}, { 
					queue: false, 
					duration: 300
				});
			}
		);
		
			$('#homeMenu .menu .lovePhotos a').mouseover(
			function() {
				resetHoverBoxes();
				$('#lovePhotosHover .echoPreview').hide();
				menuOffset 		= $(this).offset();
				$('#lovePhotosHover').css( 'top', (menuOffset.top - 2) + 'px' );
				$('#lovePhotosHover .bar1, #lovePhotosHover a.btn_lg').animate({
					width: (menuOffset.left - 10) + 'px'
				}, { 
					queue: false, 
					duration: 300,
					complete: function() {
						var query = unescape('(childrenof:http://jenniferlopezmusic.com/* OR childrenof:http://jenniferlopezonline.com/*) (tags:user-submitted-photo OR (source:Twitter AND tags:onthefloor,jlove,jlo,imintoyou,papi,may3)) sanitizeHTML:false state:ModeratorApproved itemsPerPage:25');
				
						if (query.substr(0, 6) == "river:") {
							query = query.substr(6);
						}
						
						var riverClient = navigationElement.instantiateEchoStream(self.riverDiv, query);
		                riverClients.push(riverClient);
		                
						$('#lovePhotosHover .echoPreview').stop(true, true).show();
					}
				});
			
				$('#lovePhotosHover .bar2').animate({
					width: ($(window).width() - menuOffset.left + 9) + 'px'
				}, { 
					queue: false, 
					duration: 300 
				});
			}
		);
		
		$('#lovePhotosHover .bar1').mouseleave(
			function() {
				//mouse off
				$('#lovePhotosHover .echoPreview').hide();
				$('#lovePhotosHover .bar1, #lovePhotosHover a.btn_lg').animate({
					width: '0px'
				}, { 
					queue: false, 
					duration: 300
				});
				$('#lovePhotosHover .bar2').animate({
					width: '0px'
				}, { 
					queue: false, 
					duration: 300
				});
			}
		);	
	});
	
	function findItemInRiver(itemId) {
		for (var n=0; n < riverClients.length; n++) {
			if (riverClients[n].items[itemId])
				return riverClients[n].items[itemId];
				
		}
	}
	
	function publish_rpx(msg, targetURL, title) {
		RPXNOW.loadAndRun(['Social'], function () {
			var activity = new RPXNOW.Social.Activity(
				"Share your comment",
				"commented on this",
				targetURL
			);
			if (title) {
				activity.setTitle(title);
			}
			activity.setUserGeneratedContent(msg);
			RPXNOW.Social.publishActivity(activity, {finishCallback: finish_publishing_callback});
		});
	};
	
	function finish_publishing_callback(results) {
		setTimeout(RPXNOW.Util.LightBox.close, 500);
	};
	
	function strip(html) {
		return $('<div></div>').html(html).text();
	}
	
	if (typeof(noSocialPublishing) === 'undefined') {
		Echo.Broadcast.subscribe("Submit.onPostComplete",
			function(topic, args) {
				var title = null;
				var item = findItemInRiver(args.data.unique);
				if (item) {
					title = strip(item.data.object.title);
				}
				publish_rpx(args.postData.content, args.postData.target, title);
			}
		);
	}
	
	$('#galleryBox .btn_close').click(function() {
		//run close function
		
		$('#galleryBox').stop(true, true).fadeOut(300);
		background.focus();
		background.start();
		return false;
	});
	
	$('#galleryBox .text').mouseover(function() {
		$(this).toggleClass("left");
	});
	
	$('#overlay').click(function() {
		removeVideo();
		$('#overlay').stop(true, true).fadeOut(300);
		$('#contentFeed').stop(true, true).fadeOut(300);
		$('#videoBox').stop(true, true).fadeOut(300);	
		$('#galleryBox').stop(true, true).fadeOut(300);	
		background.focus();
		feature.start();
		return false;
	});
	
	$('#homeMenu .menu .events a').hover(
		function() {
			resetHoverBoxes();
			//mouse over
			menuOffset 		= $(this).offset();
			$('#eventsHover').css( 'top', (menuOffset.top - 2) + 'px' );
			$('#eventsHover .bar1').animate({
				width: (menuOffset.left - 10) + 'px'
			}, { 
				queue: false, 
				duration: 300 
			});
			
			$('#eventsHover .bar2').animate({
				width: ($(window).width() - menuOffset.left + 9) + 'px'
			}, { 
				queue: false, 
				duration: 300 
			});
		},
		function() {
			//mouse off
			$('#eventsHover .bar1').animate({
				width: '0px'
			}, { 
				queue: false, 
				duration: 300
			});
			$('#eventsHover .bar2').animate({
				width: '0px'
			}, { 
				queue: false, 
				duration: 300
			});
		}
	);
	
	$('#homeMenu .menu .video a').click(function() {
		feature.stop();
	    background.blur();
	    $('#overlay').stop(true, true).fadeIn(300);
		$('#videoBox').stop(true, true).fadeIn(300);
		embedVideo();
		feature.stop();
		return false;
	});
	$('#homeMenu .menu .video a').hover(function() {
		resetHoverBoxes();
	});
	
	// need to fix
	$('#footer .toggle a.btn_on').click(function() {
		$(this).addClass('active');
		$('#footer .toggle a.btn_off').removeClass('active');
		background.start();
		return false;
	});
	
	$('#footer .toggle a.btn_off').click(function() {
		$(this).addClass('active');
		$('#footer .toggle a.btn_on').removeClass('active');
		background.stop();
		return false;
	});
	
	$('#siteNav a.btn_open').hover(function() {
		resetHoverBoxes();
		
		$('#siteNav').addClass('open');
		background.blur();
		
		$('#siteNav .panel').animate({
			marginTop: '-90px'
		}, 300, function() {
			// animation complete
			$('#siteNav a.btn_open').hide();
			$('#siteNav a.btn_close').show();
		});
		
		return false;
	});
	
	$('#siteNav a.btn_close').click(function() {
		background.focus();
		
		$('#siteNav .panel').animate({
			marginTop: '0px'
		}, 300, function() {
			// animation complete
			$('#siteNav a.btn_close').hide();
			$('#siteNav a.btn_open').show();
			$('#siteNav').removeClass('open');
		});
		return false;
	});
	
	$('#siteNav a.btn_close').hide();
	
	// FEATURE ROTATOR 
	
	feature.start();
	
	$('#featureRotator .bullets a').click(function() {
		feature.active($(this)); //Activate the clicked paging
		//Reset Timer
		feature.stop(); //Stop the rotation
		feature.rotate(); //Trigger rotation immediately
		feature.start(); // Resume rotation timer
		return false; //Prevent browser jump to link anchor
	});
	
	background.start();
	
	$('#galleryBox .echo-gallery-item-wrapper').css('opacity', '.4');
	$('#galleryBox .echo-gallery-item-wrapper').hover(function() {
		$(this).stop().animate({opacity: 1});
		}, function() {
		$(this).stop().animate({opacity: 0.4});
	});
});

var menuOffset;
var vidEmbedCode 	= ('<object width="575" height="324"><param name="movie" value="http://www.vevo.com/VideoPlayer/Embedded?videoId=USUV71101382&playlist=false&autoplay=0&playerId=62FF0A5C-0D9E-4AC1-AF04-1D9E97EE3961&playerType=embedded&env=0"></param><param name="wmode" value="transparent"></param><param name="bgcolor" value="#000000"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.vevo.com/VideoPlayer/Embedded?videoId=USUV71101382&playlist=false&autoplay=0&playerId=62FF0A5C-0D9E-4AC1-AF04-1D9E97EE3961&playerType=embedded&env=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="575" height="324" bgcolor="#000000" wmode="transparent"></embed></object>');

function embedVideo() {
	$('#videoBox .videoPlayer').html('');
	$('#videoBox .videoPlayer').append(vidEmbedCode);
};

function removeVideo() {
	$('#videoBox .videoPlayer').html('');
};

function resetHoverBoxes() {
	//mouse off
	$('.echoPreview').hide();
	$('.bar1').stop(true, true).animate({
		width: '0px'
	}, { 
		queue: false, 
		duration: 300
	});
	$('.bar2').stop(true, true).animate({
		width: '0px'
	}, { 
		queue: false, 
		duration: 300
	});
};
