﻿/** ------------------------- 
* watch.js
* functionality that appear on the watch page
*/

var Vevo = window.Vevo || {};

Vevo.WatchActions = function() {

	var CONSTANTS = {
		share: "#watchShare", embed: "#watchEmbed", link: "#watchLink" , add: "#watchAdd" , action: "#watchAction" , close: "#closeWatchAction" , embedContent: "#embedContent" , shareContent: "#shareContent" , linkContent: "#linkContent"
	};

	var MEMBERS = {
		contents: {}, tabs: {} , tabLinks: {}
	};

	var C = CONSTANTS;
	var M = MEMBERS;

	var toggleContent = function(target) {
		for (var i in M.contents) {
			M.contents[i].hide();
		}
		M.contents[target].show();
	};

	var showAction = function(e) {
		if (e) { e.preventDefault(); }
		toggleContent(e.data.type);
		M.action.slideDown();

		if (e.data.callback){
			e.data.callback.apply(this);
		}
	};

	var hideAction = function(e) {
		if (e) { e.preventDefault(); }
		M.action.slideUp();
	};

	var tabClick = function(ev) {
		 ev.preventDefault();
		var t = $(this);
		$("div.tabs a.tab-activator").removeClass('active');
		var tabcontent = $("div.a-tab").addClass('ui-hide-important');
		t.addClass('active');
		$('.closeComment:visible').trigger('click');
		$(t.attr('href')).removeClass('ui-hide-important');
		if($(this).attr('href') === '#Comments' && $.trim($('#Comments').html()) === '') {
			switch(Vevo.pageData.pageType) {
				case 'watchPlaylist':
					break;
				case 'watchVideo':
					var canonUrl = $('link[rel=canonical]').attr('href');
					//console.log(canonUrl);
					Vevo.Facebook.renderCommentWidget('Comments', canonUrl, Vevo.pageData.isrc, $('meta[property=og:title]').attr('content'));
					break;
			}
		}
	};

	var getMembers = function() {
		M.share = $(C.share);
		M.embed = $(C.embed);
		M.link = $(C.link);
		M.add = $(C.add);
		M.action = $(C.action);
		M.close = $(C.close);

		M.contents.embed = $(C.embedContent);
		M.contents.share = $(C.shareContent);
		M.contents.link = $(C.linkContent);
	};
		
	var setHandlers = function() {
		$(M.share).bind("click", { type: "share" }, showAction);
		$(M.embed).bind("click", { type: "embed", callback: function() { $(":text", "#embedContent")[0].select(); } }, showAction);
		$(M.link).bind("click", { type: "link" }, showAction);
		$(M.close).bind("click", hideAction);
		/*  init tabs */
		$("div.tabs a.tab-activator").bind("click", tabClick);
		/* find the default active one and click it */
		var active =$('div.tabs a.active').length==1?$('div.tabs a.active'):$('div.tabs a[href="#MoreVideos"]');
		$(active).trigger('click');
	};

	return {
		init: function() {
			getMembers();
			setHandlers();
		}
	};
} ();

/** -------------------------
page load initialize
*/
$(document).ready(function() {
	Vevo.WatchActions.init();
});