/**
 * @author jordand
 */


if(typeof NICK == "undefined" || !NICK) var NICK = {};
NICK.namespace("shows");

NICK.shows.response = "";

$(document).ready(function() {
	NICK.shows.setupPoll();
});

NICK.shows.setupMessageboards = function(){
	var nick_url = NICK.utils.getNickDomain();
	var uri = "";
	if(NICK.config.SITE_NAME != "nick"){
		uri = "http://www.nick.com"
	}
	var messageCap = 3;
	if($('div.messageboards.s1x2').length > 0){
		messageCap = 6
	}
	if($('div.messageboards.s1x1').length > 0){
		messageCap = 2
	}
	NICK.request.doRequest({
		dataType:"jsonp",
		url: "http://www.nick.com/sbcom/data/json/messageboard_listing.jhtml",
		data: {bID:NICK.shows.messageBoardID,cap:messageCap},
		onSuccess: function(response) {
			NICK.utils.doLog("Message Board response: onSuccess");
			NICK.utils.doLog(response.data);
			var messages = '';
			
			if($("div.messageboards").length > 0){
				for (var message in response.data) {
					
					var messageData = response.data[message];
					var messageSubject = NICK.shows.treatText(messageData.subject);
					if(messageSubject.length > 70){
						messageSubject = messageSubject.substring(0,70) + "...";
					}
					
					var messageTxt = NICK.shows.treatText(messageData.msgText);
					if(messageTxt.length > 130){
						messageTxt = messageTxt.substring(0,130) + "...";
					}
					messages += '<li class="clearfix"><h4><a href="' + uri + '/mynick/messageboards/viewthread.jhtml?bID='+NICK.shows.messageBoardID+'&tID='+messageData.threadID+'&mID='+messageData.rootMsgID+'&offset=0">'+messageSubject+'</a></h4><p>'+messageTxt+'</p></li>'
				}
				$(".messages").html(messages)
			
				if(KIDS.get("adfree") == "true"){
					$('.messages a').bind("click", NICK.utils.doBumperOverride);
				}
			}
		},
		onFail: function(errors) {
			for(var error in errors) {
				NICK.utils.doLog("JSON Response: Error: "+error+" - "+errors[error]);
			}
		}				
	});
}

NICK.shows.setupPoll = function(){
		$("div.poll-tout form input.poll-button").show();
		$("div.poll-tout form input.reset-poll-button").hide();
		$("div.poll-tout form input.poll-button").click(function() { 
			NICK.shows.getPoll("vote");
			return false;
		});  
		$("div.poll-tout form input.reset-poll-button").click(function() { 
			NICK.shows.getPoll("setup");
			return false;
		});
		NICK.shows.getPoll("setup");
}
	
NICK.shows.getPoll = function(version){
	
	var nick_url = NICK.utils.getNickDomain();
	var pollName = $("div.poll-tout form").attr("pollName");
	var votedNum = $("div.poll-tout form input:radio:checked").val();
	var requestData = {};
	
	if(version == "setup"){
		$("div.poll-tout form input.poll-button").show();
		$("div.poll-tout form input.reset-poll-button").hide();
		requestData = {poll:pollName};
	}else{
		$("div.poll-tout form input.poll-button").hide();
		$("div.poll-tout form input.reset-poll-button").show();
		requestData = {poll:pollName, ballot:'PollOptions', vote:votedNum};
	}
		
	NICK.request.doRequest({
		dataType:"jsonp",
		url: "http://"+nick_url+"/sbcom/data/json/poll_to_json.jhtml",
		data: requestData,
		onSuccess: function(response) {
			NICK.utils.doLog("Poll response: onSuccess");
			NICK.utils.doLog("Poll Data "+response.data[0].ballots);
			$("div.poll-tout form ul").html("");
			var polls = '';
			
				for (var ballot in response.data[0].ballots) {
					var ballotData = response.data[0].ballots[ballot]
					NICK.utils.doLog("Ballot: "+ ballotData.name);
					if(ballotData.name == 'PollOptions'){

						for (var poll in ballotData.lineItems) {

							var pollData = ballotData.lineItems[poll]
							NICK.utils.doLog("Poll: "+ pollData.name);
							var $clone = $('.show-poll-template').clone().removeClass("show-poll-template");
							$clone.find('div.poll-text').text(NICK.shows.treatText(pollData.texts[0]));
							
							if(version == "setup"){
								$clone.find('div.poll-percent-bar').hide();
								if(NICK.shows.treatText(pollData.texts[1]).length > 1){
									$clone.find('div.poll-image').append( $('<img>').attr('src',NICK.shows.treatText(pollData.texts[1])) );
								}else{
									$clone.find('div.poll-image').hide();
								}
								$clone.find('input').attr("id","RadioGroup1_"+poll+"");
								$clone.find('input').attr("value",poll);
							}else{
								$clone.find('div.poll-image').hide();
								$clone.find('div.poll-percent-text').text(NICK.shows.treatText(pollData.votePercent)+"%");
								var perc = 235 *(NICK.shows.treatText(pollData.votePercent) *.01);
								$clone.find('div.poll-percent-bar').animate({
									width:perc+"px"
								},1000, function(){})
								$clone.find('input').hide();
							}
							$("div.poll-tout form ul").append($clone)
						}
						
					}
				}
		},
		onFail: function(errors) {
			for(var error in errors) {
				NICK.utils.doLog("JSON Response: Error: "+error+" - "+errors[error]);
			}
		}				
	});
	
}



NICK.shows.treatText = function(text){
	/*Titles and descriptions coming from json calls are treated with an URL encoding
	 * This unescapes the URL encoding, and also replaces the "+" signs with spaces.
	 */
	text = text.replace("%3Cbr%3E", " ");
	text = text.replace("%0Ad", " ");
	text = unescape(text).replace(/\+/g, " ");
	text = text.replace(/(\r|\n)/, " ");
	text = text.replace("<br>", " ");
	text = text.replace("<br/>", " ");
	return text;
}


/* quote pod */

NICK.shows.aLength = 0;

NICK.shows.setQuote = function() {

		/* random number based on the total number of quotes */
		if (NICK.shows.aLength){
			var rand = NICK.utils.randomBetween(0,NICK.shows.aLength-1);
		} 
		/* the 'picked' quote's class name */
		var picked = 'quote' + rand;
	
		/* initializes all quotes to invisible */
		$('div.quoteblock').each(function(index) {
			$('div.quote' + index).css('display','none');
		});

		/* set the 'picked' quote to visible */
		$('div.quote' + rand).css('display','block');
		
		/* set the background to match the 'picked' quote */
		$('div.quotelist').attr('style', function() {
			return 'background: transparent url(' + qBkg[rand] + ') no-repeat;';
		});
	
		/* set the font size based on character count */
		if (qLength[rand] < 241) {
			qsize = 14;
			csize = 12;
			if (qLength[rand] < 151) {
				qsize = 16;
				csize = 12;
				if (qLength[rand] < 51) {
					qsize = 18;
					csize = 12;
					if (qLength[rand] < 26) {
						qsize = 26;
						csize = 20;
					}
				}
			}
		}
		else {
			qsize = 12;
			csize = 12;
		}
	
		$('p.quote').css('font-size',qsize + 'px');
		$('p.character').css('font-size',csize + 'px');
	}

NICK.shows.qRefresh = function() {
	
		/* on refresh, resets all quotes to invisible */
		$('div.quoteblock').each(function(index) {
			$('div.quote' + index).css('display','none');
		});

		NICK.shows.setQuote();
	}

