// Conditional CDP JS Helpers
// Author: Gustavo Sandrigo
//Version: 0.5

/*
This requires breakJson.js
*/

jQuery(document).ready(checkUpdateRecommendationsTitle);

var pageNumber = 1;
var MAX_SIZE = 15;
var Featured_Max_Size = 6;

function conditional_RenderGoogleReferrerModules ()
{
	var targetDiv = "googleRefer";
	var divUmlWrap = "uml_wrap";
	var divUmlWrapFix = "uml_wrap_fix";
	var video_misc_published = "video_misc_published";
	if (referrer_IsGoogleReferrer ())
	{
		//Figure out if NSFW Keywords
		var nsfwKeywords = new Array ("sex","xxx","hot girls", "kama sutra", "sex videos", "brianna frost", "kamasutra",
								"strip","young girls", "tila tequilla", "sex video", "tila tequila naked", "girls kissing",
								"2 girls 1 cup", "tila tequila nude", "tila tequila video", "kamasutra video", "playboy video",
								"playboy", "hot chicks", "karma sutra", "strip tease", "kama sutra video", "strip video", "vida guerra",
								"break.com spicy", "pictures", "girls gone wild video", "big boobs", "video sex", "large breasts",
								"lingerie");
		//alert ("test");
		var queryVariable = getReferrerQueryString ("q") ;
		var searchTerm = ""
		if (queryVariable != null)
		{
			searchTerm = queryVariable.split("+").join(" ");
		}
		//alert (searchTerm);
		var foundNSFW = false;
		for (var i = 0 ; i < nsfwKeywords.length ; i++)
		{
			if (searchTerm.toLowerCase () == nsfwKeywords[i])
			{
					foundNSFW = true;
			}
		}
		//alert (foundNSFW);
		//We found a NSFW keyword.
		if (foundNSFW)
		{
			document.getElementById ("uml_nsfw").innerHTML = '<a class="fea_rgt_title" style="padding-right: 0pt;" href="javascript:memberMoviesEnter();">More NSFW Videos Here</a>';
			GetYouMightLikeNSFW();
			jQuery ("#"+targetDiv).addClass ("googleReferNoBackGround");
			document.getElementById (targetDiv).innerHTML = RenderReferrerGoogleNSFW (queryVariable, searchTerm);
			document.getElementById(targetDiv).style.display = "block";
			document.getElementById(divUmlWrap).style.display = "block";
			document.getElementById(divUmlWrapFix).style.display = "block";
			document.getElementById(divUmlWrapFix).style.display = "block";
			document.getElementById (video_misc_published).style.display="none";
			//document.getElementById(targetDiv).style.display = "block";
		}
		else 
		{

			GetYouMightLike ();
			jQuery ("#"+targetDiv).addClass ("googleRefer");
			document.getElementById (targetDiv).innerHTML = RenderReferrerGoogle (queryVariable, searchTerm);
			document.getElementById(targetDiv).style.display = "block";
			document.getElementById(divUmlWrap).style.display = "block";
			document.getElementById(divUmlWrapFix).style.display = "block";
			document.getElementById(divUmlWrapFix).style.display = "block";
			document.getElementById (video_misc_published).style.display="none";
		}
	}
}


function RenderReferrerGoogle (query, queryCleaned)
{
	var html = "";
	html += 'After watching, to search for more ';         
	html += '<a href="http://my.break.com/Content/Search/Search.aspx?SEARCH1=Search&s='+query+'&SearchType=Main">'+queryCleaned; 
	html += '</a>, click <a href="http://my.break.com/Content/Search/Search.aspx?SEARCH1=Search&s='+query+'&SearchType=Main">here</a>.'; 
	return html;


}


function RenderReferrerGoogleNSFW (query, queryCleaned)
{
	var html = "";
	html += 'Looking for ';
	html += '<a href="http://my.break.com/Content/Search/Search.aspx?SEARCH1=Search&s='+query+'&SearchType=Main">'+queryCleaned;
	html += '</a>? Check out our <a href="javascript:memberMoviesEnter();">NSFW Videos</a> ';
	html += 'and <a href="javascript:memberPicturesEnter();">NSFW Galleries</a>.';

	return html;

}


function GetRecommendations(){
	GetMemberRecommendationsASHX(getCookieValue("MemberID"), pageNumber, MAX_SIZE, "renderRecommendations");
}
function GetMoreVideos(){
	GetMoreVideosFromUser(sGlobalContentID, pageNumber, MAX_SIZE, "renderMoreVideos");
}
function GetMoreVideosTVShows(){
	GetMoreVideosFromUserTVShows(sGlobalContentID, pageNumber, MAX_SIZE, "renderMoreVideosTVShows");
}
function GetFeatured(){
    GetPremiumVideos(Featured_Max_Size, "renderPremium");
}

function GetFeaturedCDPModule ()
{
	GetPremiumVideos(MAX_SIZE, "renderFeaturedCDPModule");

}

function GetRelated(){
	GetRelatedVideos(sGlobalContentID, "renderRelated");
}
function GetDugg(){
	GetMostDugg("renderMostDugg");	//thumbstrip_dugg
}
function GetYouMightLike(){
	GetYouMightLikeVideos(sGlobalContentID, "renderYouMightLike");
}
function GetYouMightLikeNSFW(){
	GetYouMightLikeNSFWVideos(sGlobalContentID, "renderYouMightLike");
}

function GetMemberRecommendationsASHX(memberId, page, pagesize, callbackFunc)
{   // if(memberId.length > 0)
    //{
		var recommendationJson = new BreakJSON();
		recommendationJson.sendBegin("http://websvc.break.com/cms/handlers/ratings/ratingsandrecommendationshandler.ashx?invoke=getrecommendations&memberid="+memberId+"&page="+page+"&pagesize="+pagesize+"&req=1", callbackFunc);
    //}
}
function GetMoreVideosFromUser(contentid, page, pagesize, callbackFunc){
	if(contentid.length > 0){
		var morevideosJson = new BreakJSON();
		morevideosJson.sendBegin("http://websvc.break.com/membership/handlers/profile/morefromthisuser/morefromthisuserhandler.ashx?invoke=getmorefromthisuser&cid=" + contentid, callbackFunc);
	}
}

function GetMoreVideosFromUserTVShows(contentid, page, pagesize, callbackFunc){
	
	if(contentid > 0){
		var morevideosJson = new BreakJSON();
		morevideosJson.sendBegin("http://websvc.break.com/membership/handlers/profile/morefromthisuser/morefromthisuserhandler.ashx?invoke=getmorefromthishuluuser&cid=" + contentid, callbackFunc);
	}
}

function GetPremiumVideos(pagesize, callback)
{ 
	var premVidJSON = new BreakJSON();
	premVidJSON.sendBegin("http://websvc.break.com/cms/Handlers/PremiumVideo/PremiumVideoHandler.ashx?invoke=getpremiumvideos&numResults=" + pagesize, callback);
}
function GetRelatedVideos(contentid, callback){
	var relatedVidJSON = new BreakJSON();
	relatedVidJSON.sendBegin("http://websvc.break.com/cms/Handlers/Content/ConditionalCDPHandler.ashx?invoke=getrelatedvideos&cid=" + contentid, callback);
}
function GetMostDugg(callback){
	var duggJSON = new BreakJSON();
	duggJSON.sendBegin("http://websvc.break.com/cms/Handlers/Digg/Digghandler.ashx?invoke=getmostdugg" , callback);
}
function GetYouMightLikeVideos(contentid, callback){
	var youmightlikeVidJSON = new BreakJSON();
	youmightlikeVidJSON.sendBegin("http://websvc.break.com/cms/Handlers/Content/ConditionalCDPHandler.ashx?invoke=getyoumightlike&numResults=2&cid=" + contentid , callback);
}
function GetYouMightLikeNSFWVideos(contentid, callback){
	var youmightlikeNSFWVidJSON = new BreakJSON();
	youmightlikeNSFWVidJSON.sendBegin("http://websvc.break.com/cms/Handlers/Content/ConditionalCDPHandler.ashx?invoke=getyoumightlikensfw&numResults=2&cid=" + contentid , callback);
}



function renderRecommendations(jsonData){
	var activediv = jQuery("#thumbstrip_rec");
	if ((jsonData.Response.Code == 0) && (jsonData.Response.Contents.MemberRecommendations) && (jsonData.Response.Contents.MemberRecommendations.Recommendation.length > 0))
	{
		fillThumbnailsRec(activediv, jsonData.Response.Contents.MemberRecommendations.Recommendation);
	}
	else
	{
		displayThumbError(activediv, 3);
	}
	tooltip.init(); // initialize qtip
}

function renderMoreVideos(jsonData){
	var activediv = jQuery("#thumbstrip_partner");
	if ((jsonData.Response.Code == 0) && (jsonData.Response.MoreVideo))
	{
		fillThumbnailsMore(activediv, jsonData.Response.MoreVideo);
	}
	else
	{
		displayThumbError(activediv, 3);
	}
	tooltip.init();
}

function renderMoreVideosTVShows(jsonData){
	var activediv = jQuery("#thumbstrip_ads");
	
	if ((jsonData.Response.Code == 0) && (jsonData.Response.MoreVideo))
	{
		fillThumbnailsMoreTvShows(activediv, jsonData.Response.MoreVideo);
	}
	else
	{
		displayThumbError(activediv, 5);
	}
	tooltip.init();
	initThumbScroller(activediv)
}

function renderPremium(jsonData){
	var activediv = jQuery("#side_featured");
	if((jsonData.premiumvideos) && (jsonData.premiumvideos.length))
	{
		fillThumbnailsPremium(activediv, jsonData.premiumvideos);
	}
	else
	{
		displayThumbError(activediv, 6);
	}
	tooltip.init();
}

function renderRelated(jsonData){
	var activediv = jQuery("#thumbstrip_related");
	if((jsonData.ContentRelatedVideos.Content) && (jsonData.ContentRelatedVideos.Content.length))
	{
		fillThumbnailsRelated(activediv, jsonData.ContentRelatedVideos.Content);
	}
	else
	{
		displayThumbError(activediv, 3);
	}
	tooltip.init();
}


function renderFeaturedCDPModule(jsonData){
	var activediv = jQuery("#thumbstrip_featured");
	if((jsonData.premiumvideos) && (jsonData.premiumvideos.length))
	{
		fillThumbnailsFeatured(activediv, jsonData.premiumvideos);
	}
	else
	{
		displayThumbError(activediv, 3);
	}
	tooltip.init();
}

function renderMostDugg(jsonData){
	var activediv = jQuery("#thumbstrip_dugg");
	if(jsonData.ContentList && jsonData.ContentList.Content){
		fillThumbnailsMostDugg(activediv, jsonData.ContentList.Content);
	}
	else {
		displayThumbError(activediv, 3);
	}
	tooltip.init();
}

function renderYouMightLike(jsonData){
	var activediv = jQuery("#thumbstrip_alsolike");
	if(jsonData.ContentYouMightLikeVideos && jsonData.ContentYouMightLikeVideos.Content){
		fillThumbnailsYouMightLike(activediv, jsonData.ContentYouMightLikeVideos.Content);
	}
	else {
		displayThumbError(activediv, 2);
	}
	tooltip.init();
}

function displayThumbError(div, length){
	var html = '';
	for (i = 0; i < length; i++)
	{
		html += "<div class=\"rgt_fea_item\"><img src=\"http://media1.break.com/static/live/v1/img/site/img_na.gif\" border=\"0\" width=\"125\" alt=\"Video not available\"  class=\"module_thumb_fea\" /></div>";
	}
	div.html(html);	
	div.parent().siblings().addClass('disabled');
	div.parent().siblings('.navi').css('visibility', 'hidden');
}


function fillThumbnailsFeatured(div, data){
	div.empty();
	if(data.length){
		var limit = MAX_SIZE;
		if(data.length < limit)
			limit = data.length;
		for(var i=0;i<limit;i++){
		    div.append(thumbstripRenderItem(data[i].ThumbnailURL, data[i].ContentURL, data[i].ContentName, data[i].ContentDescription));
		}
	}
	else{
	    div.append(thumbstripRenderItem(data.ThumbnailURL, data.ContentURL, data.ContentName, data.ContentDescription));
	}
}

function fillThumbnailsRec(div, data){
	div.empty();
	if(data.length){
		for(var i=0;i<data.length;i++){
		    div.append(thumbstripRenderItem(data[i].ThumbnailURL, data[i].ContentURL, data[i].ContentName, data[i].ContentDescription));
		}
	}
	else{
	    div.append(thumbstripRenderItem(data.ThumbnailURL, data.ContentURL, data.ContentName, data.ContentDescription));
	}
}
function fillThumbnailsMore(div, data){
	div.empty();
	if(data.length){
		for(var i=0;i<data.length;i++){
		    div.append(thumbstripRenderItem(data[i].ThumbnailURL, data[i].StaticURL, data[i].ContentName, data[i].ContentDescription));
		}
	}
	else{
		if (parseInt(data.ContentId) == parseInt(sGlobalContentID))
		{
			jQuery("#partnervids").hide();
		}
		else
		{
			div.append(thumbstripRenderItem(data.ThumbnailURL, data.StaticURL, data.ContentName, data.ContentDescription));
		}
	}
}

function fillThumbnailsMoreTvShows(div, data){
	div.empty();
	if(data.length){
		for(var i=0;i<data.length;i++){
		    div.append(thumbstripRenderItemTvShow(data[i].ThumbnailURL, data[i].StaticURL, data[i].ContentName, data[i].ContentDescription, data[i].Season, data[i].Episode));
		}
	}
	else{
		if (parseInt(data.ContentId) == parseInt(sGlobalContentID))
		{
			jQuery("#hulu").hide();
		}
		else
		{
			div.append(thumbstripRenderItemTvShow(data.ThumbnailURL, data.StaticURL, data.ContentName, data.ContentDescription, data.Season, data.Episode));
		}
	}
}

function fillThumbnailsPremium(div, data){
	div.empty();
	div.append("<div class=\"rgt_featured_title\">More Hot Videos</div>");
	if(data.length){
		for(var i=0;i<data.length;i++){
		    div.append(sideBarRenderItem(data[i].ThumbnailURL, data[i].ContentURL, data[i].ContentName, data[i].ContentDescription));
		}
	}
	else{
	    div.append(sideBarRenderItem(data.ThumbnailURL, data.ContentURL, data.ContentName, data.ContentDescription));
	}
}
function fillThumbnailsRelated(div, data){
	div.empty();
	if(data.length){
		var limit = MAX_SIZE;
		if(data.length < limit)
			limit = data.length;
		for(var i=0;i<limit;i++){
		    div.append(thumbstripRenderItem(data[i].ThumbnailURL, data[i].ContentPageURL, data[i].ContentName, data[i].ContentDescription));
		}
	}
	else{
	    div.append(thumbstripRenderItem(data.ThumbnailURL, data.ContentPageURL, data.ContentName, data.ContentDescription));
	}
}

function fillThumbnailsYouMightLike(div, data){
	div.empty();
	if(data.length) {
		if (data.length >= 2){
			var limit = 2;
			for(var i=0;i<limit;i++){
				div.append(thumbstripRenderItem(data[i].ThumbNailURL, data[i].StaticURL, data[i].ContentName, data[i].ContentDescription));
		    }
		}
	}
	else{
	    div.append(thumbstripRenderItem(data.ThumbNailURL, data.StaticURL, data.ContentName, data.ContentDescription));
	}
}

function fillThumbnailsMostDugg(div, data){
	div.empty();
	if(data.length){
		var limit = MAX_SIZE;
		if(data.length < limit)
			limit = data.length;
		for(var i=0;i<limit;i++){
		    div.append(thumbstripRenderItem(data[i].ThumbnailURL, data[i].StaticURL, data[i].ContentName, data[i].ContentDescription));
		}
	}
	else{
	    div.append(thumbstripRenderItem(data.ThumbnailURL, data.StaticURL, data.ContentName, data.ContentDescription));
	}
}

function thumbStrip_html_entity_decode(str){
try
{
var tarea=document.createElement('textarea');
tarea.innerHTML = str; return tarea.value;
tarea.parentNode.removeChild(tarea);
}
catch(e)
{
//for IE add <div id="htmlconverter" style="display:none;"></div> to the page
document.getElementById("htmlconverter").innerHTML = '<textarea id="innerConverter">' + str + '</textarea>';
var content = document.getElementById("innerConverter").value;
document.getElementById("htmlconverter").innerHTML = "";
return content;
}
}

function thumbstripRenderItem(ThumbnailURL, ContentURL, ContentTitle, ContentDescription) {
	var re= /<\S[^><]*>/g
	var html = "";
	if (ThumbnailURL =="")
		ThumbnailURL = "http://media1.break.com/static/live/v1/img/notavailable.gif";
	html += "<div class=\"rgt_fea_item\">";
//shortcut ContentDescription.replace(re, "").replace('"',"'").replace(/'&gt;/,"")
	html += "<a href=\"" + ContentURL + "\" title=\"" + thumbStrip_html_entity_decode(ContentDescription).replace(re, "").replace('"',"'").replace(/'&gt;/,"") + "\">";
	html += "<img src=\"" + ThumbnailURL + "\" border=\"0\" width=\"125\" height=\"92\" class=\"module_thumb_fea\" onError=\"thumberror(this);\"/></a><br />";
	html += "<div style=\"padding-right:5px;\">";
	html += "<a href=\"" + ContentURL + "\" class=\"fea_rgt_title\">" + ContentTitle + "</a><br />";
	html += "</div></div>";
	return html;
}


function thumbstripRenderItemTvShow(ThumbnailURL, ContentURL, ContentTitle, ContentDescription, Season, Episode) {
	var re= /<\S[^><]*>/g
	var html = "";
	if (ContentTitle.length > 20)
		ContentTitle = ContentTitle.substring(0,20) + "...";
	if (ThumbnailURL =="")
		ThumbnailURL = "http://media1.break.com/static/live/v1/img/notavailable.gif";
	html += "<div class=\"rgt_fea_item\">";
	html += "<div style=\"padding-right:5px;\">";
		html += "<a href=\"" + ContentURL + "\" class=\"fea_rgt_title\">" + ContentTitle  + "</a><br />";
	html += "</div>";
	html += "<a href=\"" + ContentURL + "\" title=\"" + thumbStrip_html_entity_decode(ContentDescription).replace(re, "").replace('"',"'").replace(/'&gt;/,"") + "\">";
	html += "<img src=\"" + ThumbnailURL + "\" border=\"0\" width=\"125\" height=\"92\" class=\"module_thumb_fea\" onError=\"thumberror(this);\"/></a><br />";
	html += "<div style=\"padding-right:5px;\">";
	if (Season != null && Season > 0 && Episode != null && Episode > 0)
	{
	html += "<a href=\"" + ContentURL + "\" class=\"fea_rgt_title\"> Season " + Season + " : Episode " +Episode + "</a><br /></div>";
	}
	html += "</div>";
	return html;
}

function sideBarRenderItem(ThumbnailURL, ContentURL, ContentTitle, ContentDescription) {
    var re= /<\S[^><]*>/g
    var html = "";
    if (ThumbnailURL == "")
        ThumbnailURL = "http://media1.break.com/static/live/v1/img/notavailable.gif";

    html += "<div class=\"rgt_fea_item\">";
    html += "<a href=\"" + ContentURL + "\" title=\"" + thumbStrip_html_entity_decode(ContentDescription).replace(re, "").replace('"',"'").replace(/'&gt;/,"") + "\">";
    html += "<img src=\"" + ThumbnailURL + "\" width=\"125\" class=\"module_thumb_fea\" border=\"0\" />";
    html += "</a><br />";
	html += "<div style=\"padding-right:5px;\">";
    html += "<a href=\"" + ContentURL + "\" class=\"fea_rgt_title\">" + ContentTitle + "</a><br /></div></div>";

    return html;
}


function thumberror(image){
	image.src = "http://media1.break.com/static/live/v1/img/notavailable.gif";
}

function checkUpdateRecommendationsTitle(){
    if(IsLoggedIn()){
		jQuery("#recvids_title_message").text("Recommended for " + GetNicknameFromCookie());
    }
}

function handlePostLink(link){
    if(!IsLoggedIn()){
        return;
    }
    toggleBox('comment_bot',1);
	toggleBox('disable_comment_box',0);
    toggleBox('post_box', 1);
    return false;
}


function setCommentsCookie(val){
	var xp = new Date();
	set_cookie('showcommentsalltime', val, xp.getFullYear() + 2, xp.getMonth(), xp.getDate(), '/', 'break.com', false);
}

function changeCommentsCookie(checkBox){
	if(checkBox.checked){
		setCommentsCookie('1');
	}
	else{
		setCommentsCookie('0');
	}
}

function setFeaThumbsCookie(val){
	var xp = new Date();
	set_cookie('showfeathumbs', val, xp.getFullYear() + 2, xp.getMonth(), xp.getDate(), '/', 'break.com', false);
}

function changeFeaThumbsCookie(){
	var cookieState = getCookie('showfeathumbs');
	if(cookieState == 1){
		setFeaThumbsCookie('0');
	}
	else{
		setFeaThumbsCookie('1');
	}
}
//////
function setRecThumbsCookie(val){
	var xp = new Date();
	set_cookie('showrecthumbs', val, xp.getFullYear() + 2, xp.getMonth(), xp.getDate(), '/', 'break.com', false);
}

function changeRecThumbsCookie(){
	var cookieState = getCookie('showrecthumbs');
	if(cookieState == 1){
		setRecThumbsCookie('0');
	}
	else{
		setRecThumbsCookie('1');
	}
}

// Thumbnails animation
function adjustModuleCounter(module,diff) {
	switch(module) {
		case 'rec':
			counterRecommended += diff;
			break;
		case 'partner':
			counterPartner += diff;
			break;
		case 'related':
			counterRelated += diff;
			break;
		case 'ads':
			counterAds += diff;
			break;
		case 'dugg':
			counterDugg += diff;
			break;
		case 'featured':
			counterFeatured += diff;
			break;
		case 'channel':
			counterChannel += diff;
			break;
	}
}
		
function getCurrentCounter(module) {
	var result;
	switch(module) {
		case 'rec':
			result = counterRecommended;
			break;
		case 'partner':
			result = counterPartner;
			break;
		case 'related':
			result = counterRelated;
			break;
		case 'ads':
			result = counterAds;
			break;
		case 'dugg':
			result = counterDugg;
			break;
		case 'featured':
			result = counterFeatured;
			break;
		case 'channel':
			result = counterChannel;
			break;
	}
	return result;
}
	
function animateThumbs(module,dir) {
	var scrollContainer = jQuery("#thumbstrip_" + module);
	var totalThumbs = scrollContainer.children().length;
	var currScrollPos = getCurrentCounter(module);
	var leftOffset = currScrollPos * 140;
		
	if(dir == '1') { // going up
		if(currScrollPos < totalThumbs - 5) {
			leftOffset = (leftOffset + 420);
			adjustModuleCounter(module,3);
		}
		else if(currScrollPos == totalThumbs - 5) {
			leftOffset = (leftOffset + 280);
			adjustModuleCounter(module,2);
		}
		else if(currScrollPos == totalThumbs - 4) {
			leftOffset = (leftOffset + 140);
			adjustModuleCounter(module,1);
		}
	}
	else { // going down
		if(currScrollPos > 2) {
			leftOffset = (leftOffset - 420);
			adjustModuleCounter(module,-3);
		}
		else if(currScrollPos == 2) {
			leftOffset = (leftOffset - 280);
			adjustModuleCounter(module,-2);
		}
		else if(currScrollPos == 1) {
			leftOffset = (leftOffset - 140);
			adjustModuleCounter(module,-1);
		}
		else {
			leftOffset = 0;
		}
	}
	leftOffset = leftOffset * -1;
	scrollContainer.animate({left: leftOffset}, 350);
}

// Brought into this file for Hulu CDP
function initThumbScroller(module) {
	jQuery(function($) {
		$(module).parent().scrollable({
			size : 5,
			speed : 500,
			items : '.thumbstrip'
		});
	});	
	adjNaviOffset();
}

function adjNaviOffset() {
	jQuery(function($) {
		var navbars = $('.navi');
		if(navbars.length) {
			navbars.each(function(i) {
			var target = navbars.eq(i);
			var numEl = target.children().length;
			var offset = 295 - ( (numEl - 1) * 8);
			if ( $(this).hasClass('hulu-navi') ) { // hulu version is wider, adjusting
				offset += 157; 
			}
			if (numEl > 1) {
				target.css('margin-left', offset+'px');
			}
		});
		}
	});
}