// 
//  birthday.js
//  Take 40 25th Birthday Feature
//  
//  Created by Victor Nguyen on 2009-03-30.
//  Copyright 2009 igloo. All rights reserved.
// 

var upClose = {
	
	MediaPlayer: {
		
		AUTOPLAY_PLAYLIST_ID: '378252',
		PLAYER_ID: 'uc-mediaplayer',
		
		getPlayer: function (movieName) {
			if (window.document[movieName]) { return window.document[movieName]; }

			if (navigator.appName.indexOf("Microsoft Internet")==-1)
			{
				if (document.embeds && document.embeds[movieName])
				return document.embeds[movieName];
			}
			else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
			{
				return document.getElementById(movieName);
			}
		},

		playPlaylistCall: function (playlistid, position, player) {
			// console.log(arguments);
			$(player).playPlaylist(playlistid, position);
			// upClose.MediaPlayer.getPlayer(player).playPlaylist(playlistid, position);
		},
		
		playTrackCall: function (propertyid, genericType, player) {
			$(player).playTrack(propertyid, genericType);
			// var mp = mediaplayer.getPlayer('mediaPlayer');
			// mp.playTrack(propertyid, genericType);
		},
		
		pauseCall: function (player) {
			$(player).pause();
			// upClose.MediaPlayer.getPlayer(player).pause();
		},
		
		scrollTo: function () {
			var scroll = new Fx.Scroll(window, {
				offset: {'x': 0, 'y': 8}
			});
			scroll.toElement($('uc-wrap'));
		},
		
		removeFlashObjects: function () {
			var els = document.getElementsByTagName('object');
			if (els && els.length) {
				for (var i=els.length-1; 0<=i; i--) {
					var parent = els[i].parentNode;
					parent.removeChild(els[i]);
				}
			}
		},
		
		embed: function(embedid, mediaid, propertyid) {
			if (!$(embedid)) return;
			
			var flashvars = {
				'allowAddToPlaylist': true,
				'allowAdvertising': false,
				'allowAdvertisingSkip': false,
				'allowTrackPlayOnInitialize': true,
				'allowPopOutPlayer': true,
				'allowShareMedia': true,
				'allowTrackQuickStart': true,
				'allowTracking': true,
				'interviewId': 'null', // strangely enough, this needs to be set as a null *string*, so when mediaplayer.popMediaPlayerFlash is called, it passes the correct value
				'location': 'thehothits',
				'playlistId': mediaid,
				'propertyId': propertyid,
				'mediaType': 3
			};
			
			var params = {
				allowFullScreen: "true",
				allowScriptAccess: "always",
				wmode: 'opaque'
			};
			
			var attributes = {  };

			_embedMediaPlayerPanel();

			function _embedMediaPlayerPanel () {
				return swfobject.embedSWF("http://static.thehothits.com/mcm_as3_mediaplayer_thehothits.swf", embedid, "592", "468", "9.0.0","/flash/mediaplayer/expressInstall.swf",  flashvars, params, attributes);
			}
		}
		
	},
	
	
	// Links constants
	
	Links: {
		
		WRAPPER_ID: 'uc-featured-artists',
		INFO_WRAPPER_CLASS: 'uc-featuring',
		
		handleClick: function (e) {
			var event = new Event(e);
			var target = upClose.Links.getTarget(event);
			
			if (target.hasClass('play-music')) {
				event.stop();
			
				// update player
				upClose.MediaPlayer.playPlaylistCall(upClose.Links.getPlaylistId(target), upClose.Links.getPlaylistPos(target), upClose.MediaPlayer.PLAYER_ID);
				
				// update info
				upClose.Links.hideAllArtistInfo();
				upClose.Links.showArtistInfo(target);
				
				// scroll to mediaplayer
				upClose.MediaPlayer.scrollTo();
			}
			
		},
		
		getTarget: function (event) {
			var target = $(event.target);
			if (target.getTag() == 'img') target = target.getParent();
			return target;
		},
		
		getPlaylistId: function (link) {
			var id = link.getProperty('href');
			id = id.split('#')[1]; // remove '#'
			id = id.split('.')[0]; // remove position value
			return id;
		},
		
		getPlaylistPos: function (link) {
			var pos = link.getProperty('href');
			pos = pos.split('.')[1]; // remove playlist id
			return pos;
		},
		
		getPropertyId: function (link) {
			var rel = link.getProperty('rel');
			return rel;
		},
		
		getInfoId: function (link) {
			var id = link.getProperty('rel');
			return id;
		},
		
		hideAllArtistInfo: function () {
			$$('.'+upClose.Links.INFO_WRAPPER_CLASS).setStyle('display', 'none');
		},
		
		showArtistInfo: function (link) {
			var infoid = upClose.Links.getInfoId(link);
			$(infoid).setStyle('display', 'block');
		},
		
		init: function () {
			if (!($(upClose.Links.WRAPPER_ID))) return false;
			$(upClose.Links.WRAPPER_ID).addEvent('click', upClose.Links.handleClick);
		}
		
	},
	
	Gallery: {
		
		GALLERY_CLASS: 'uc-gallery',
		BUTTON_CLASS: 'btn-photo-gallery',
		BUTTON_WRAPPER_ID: 'latest-thumbs',
		
		handleClick: function (e) {
			var event = new Event(e);			
			var target = _getLink(event);
			event.stop();
			
			// if clicked element is not gallery button, return false
			if (!target) return false;

			// hide all galleries and remove current class from all buttons
			$$('.'+upClose.Gallery.GALLERY_CLASS).setStyle('display', 'none');
			$$('.'+upClose.Gallery.BUTTON_CLASS).removeClass('current');
			
			// display relevant gallery and add current class to relevant button			
			$(_getGalleryId(target)).setStyle('display', 'block');
			target.addClass('current');
			
			// gets clicked element and makes sure it's a gallery button
			function _getLink(event) {
				var target = $(event.target);
				if (target.hasClass(upClose.Gallery.BUTTON_CLASS)) {
					return target;
				} else {
					return false;
				}
			}
			
			// gets gallery id from href of passed element
			function _getGalleryId(el) {
				var linkid = el.getProperty('href');
				linkid = linkid.split('#')[1];
				return linkid;
			}
			
		},
		
		init: function () {
			if (!($(upClose.Gallery.BUTTON_WRAPPER_ID))) return false;
			$(upClose.Gallery.BUTTON_WRAPPER_ID).addEvent('click', upClose.Gallery.handleClick);
		}
		
	},
	
	Offer: {

		ID: 'uc-offer',
		URL: 'http://offer.mcminteractive.com/1502/offer.swf',
		EXPRESS_INSTALL_URL: '/flash/mediaplayer/expressInstall.swf', 
		WIDTH: '760',
		HEIGHT: '450',
		MIN_FLASH_VER: '9.0.0',
		
		
		embed: function (embedid) {
			
			if (!$(embedid)) return;
			
			var flashvars = {
				lcId: new Date().getTime(),
				offerUrl: 'http://offer.mcminteractive.com/1502/offer.swf',
				referredFromEntryId: '',
				link_origin: 'upclose_feature',
				siteId: '2'
			};
			
			var params = {
				allowScriptAccess: "always",
				wmode: 'opaque'
			};
			
			var attributes = {  };

			_embedOffer();

			function _embedOffer () {
				return swfobject.embedSWF(upClose.Offer.URL, embedid, upClose.Offer.WIDTH, upClose.Offer.HEIGHT, upClose.Offer.MIN_FLASH_VER, upClose.Offer.EXPRESS_INSTALL_URL,  flashvars, params, attributes);
			}
		}
		
	}
	
};



window.addEvents({
	
	'domready': function() {
		upClose.MediaPlayer.embed(upClose.MediaPlayer.PLAYER_ID, upClose.MediaPlayer.AUTOPLAY_PLAYLIST_ID, null);
		upClose.Links.init();
		upClose.Gallery.init();
		upClose.Offer.embed(upClose.Offer.ID);
	},
	
	'beforeunload': function() {
		upClose.MediaPlayer.removeFlashObjects();
	}
	
});