// if console is not defined, e.g., Firebug console is not enabled or Non-Firefox browser
if (typeof console == 'undefined') {
    var console = {};
    console.log = function(msg) {
        return;
    };
}

/**
  * @author Sean Hsieh envsn.com
  */

var kc = (typeof kc == 'undefined') ? [] : kc;

kc.panels = {
	entryId:null,
	infoHolder:null,
	
	_init: function () {
		if ($('infocomments')) {
		    $('toggle').observe('click', kc.panels.togglePanels);
		    $('toggle').removeClassName('show');
		    kc.panels.infoHolder = $('InfoHolder');
		    kc.panels.infoPanel._init();
		    kc.panels.commentPanel._init();
		} 
    },
	
	show: function () {
		$('infocomments').show();
	},
	
	hideAll: function() {
	    //kc.panels.hidePanels();
	    $('infocomments').hide();
	},
	
	hidePanels: function() {
	    kc.panels.infoHolder.hide();
	    if ($('commentsWrapper')) {$('commentsWrapper').hide();}
	    if ($('informationWrapper')) {$('informationWrapper').hide();}
	},
	
	setEntryId: function (id) {
		kc.panels.entryId = id;
		kc.panels.commentPanel._loaded = false;
		kc.panels.infoPanel._loaded = false;
		kc.panels.updatePanels();
		kc.panels.blogPanel._init(kc.panels.entryId);
		urlForEmail = kc.panels.entryId;
	},
	
    failture: function(transport, e) {
		if (e) {	//If this exists then XHR threw an exception
			alert('Exception: ' + e.message);	
		} else {	//Server must have done something funky
			alert('('+transport.status +') '+ transport.statusText);
		}
    },
    
    togglePanels: function(e) {
        e.stop();
        // open up the info & comments panel
        if (kc.panels.infoHolder.getStyle('display') == 'none') {
            //kc.panels.infoHolder.show();
            var effect1 = new Effect.SlideDown(kc.panels.infoHolder, { duration: 0.75, queue: { position: 'end', scope: 'panels'}});
            var effect2 = new Effect.Appear('commentsWrapper', { duration: 0.25, queue: { position: 'end', scope: 'panels' },
                afterFinish: function() {
                    kc.panels.commentPanel.togglePanel();
                    kc.panels.commentPanel.resetScrolling();
                }
            });
            var effect3 = new Effect.Appear('informationWrapper', { duration: 0.25, queue: { position: 'end', scope: 'panels' },
                afterFinish: function() {
                    kc.panels.infoPanel.togglePanel();
                }
            });
            kc.panels.expand();
            $('toggle').removeClassName('show');
        } else {
            kc.panels.hidePanels();
            kc.panels.shrink();
            $('toggle').addClassName('show');
        }
    },
    
    updatePanels: function() {
        kc.panels.infoPanel.getInfo();
        kc.panels.commentPanel.getComments();
    },
    
    // this is a hack for the page height, sticky footer needs to be fixed in order to take these functions out
    expand: function() {
        var currentHeight = $('ContentWrapper').getStyle('height');
        var newHeight = parseInt(currentHeight, 10) + 260;
        $('ContentWrapper').setStyle({height: newHeight+'px'});
    },
    
    shrink: function() {
        var currentHeight = $('ContentWrapper').getStyle('height');
        var newHeight = parseInt(currentHeight) - 260;
        $('ContentWrapper').setStyle({height: newHeight+'px'});
    },
    
    determinePages: function(elementID) {
	    var totalHeight = parseInt($(elementID).getStyle('height'));
        var pages = Math.ceil(totalHeight / kc.panels.commentPanel._pageHeight);
        return pages;
	},
	
	blogPanel: {
		
		position: 0,
		toMove: 36,
		
		_init: function(id) {
			new Ajax.Request('/landingpage/blogposts/'+id+'/', {
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON();
					
					if(json.length > 0)
					{
						$('ChannelGuideRegion').setStyle({'marginBottom':'13px'});
						$('PlayerRight').insert({after: '<div id="blog_panel"><h2>Related Blog Stories</h2><a href="#" id="blog_panel_top">top arrow</a><a href="#" id="blog_panel_bottom">bottom arrow</a><div id="blog_panel_mask"><ul id="blog_panel_scroller"></ul></div></div>'});
						
						for(var i=0; i<json.length; i++)
						{
							var theDate = new Date(json[i].date);
							var theMonth = (theDate.getMonth() < 9) ? '0'+parseInt(theDate.getMonth()+1) : parseInt(theDate.getMonth()+1);
							var theDay = (theDate.getDate() < 9) ? '0'+parseInt(theDate.getDate()) : parseInt(theDate.getDate()+1);
							var theYear = String(theDate.getFullYear()).substr(2,2);
							
							var parsedDate = theMonth+'/'+theDay+'/'+theYear;
							
							$('blog_panel_scroller').innerHTML = $('blog_panel_scroller').innerHTML + '<li>'+parsedDate+' <a href="'+json[i].link+'">'+json[i].title+'</a></li>';
						}
						
						$('blog_panel_top').observe('click', function(e) {
							e.preventDefault();
								if(kc.panels.blogPanel.position < 0)
								{
									kc.panels.blogPanel.position = kc.panels.blogPanel.position+kc.panels.blogPanel.toMove;
									$('blog_panel_scroller').setStyle({'top':kc.panels.blogPanel.position+'px'});
								}
						});

						$('blog_panel_bottom').observe('click', function(e) {
							e.preventDefault();
							
								if(kc.panels.blogPanel.position > (-($$('#blog_panel_scroller li').length-1))*kc.panels.blogPanel.toMove )
								{
									kc.panels.blogPanel.position = kc.panels.blogPanel.position-kc.panels.blogPanel.toMove;
									$('blog_panel_scroller').setStyle({'top':kc.panels.blogPanel.position+'px'});
								}
						});
					}
				}
			});
			

			
		},
		
	},
    
    infoPanel: {
		_loaded:false,
		_open:false,
		_pageMax:0,
		_currentPage:0,
		_pageHeight:125,
		submitURL: "/system/extensions/info.php",
		//submitURL: "/system/extensions/test_info_response.js",
		
        _init: function() {
            // $('add').observe('click', kc.panels.infoPanel.handleFavorite);
            //          $('infoUp').observe('click', kc.panels.infoPanel.previousPage);
            // $('infoDown').observe('click', kc.panels.infoPanel.nextPage);
        },
        
        togglePanel: function() {
            if (!kc.panels.infoPanel._loaded) {
				kc.panels.infoPanel._loaded = true;
                kc.panels.infoPanel.getInfo();
			}
        },
        
        getInfo: function() {
            var ajax = new Ajax.Request(kc.panels.infoPanel.submitURL, {
				method: 'get',
				parameters: {'entry_id':kc.panels.entryId,'cacheid':(new Date()).getTime()},
				requestHeaders: {Accept: 'application/json'},
				onSuccess: kc.panels.infoPanel.success,
				onFailure: kc.panels.failure,
				onException: kc.panels.failure
			});
        },
        
        success: function(transport) {
            var json = transport.responseText.evalJSON();
            if (json.error) {
                kc.panels.failture(json);
                return;
            }
            
			//build favorite link
			
            // if (!json.favorited) {
            //     $('add').removeClassName('added');
            // }
            // else {
            //     $('add').addClassName('added');
            // }
		    
			
			$('vidTitle').innerHTML = json.title;
			if (json.title.length >= 30) {
			    $('vidTitle').setStyle({fontSize: '12px'});
			} else {
			    $('vidTitle').setStyle({fontSize: '18px'});
			}
			//$('vidSeason').innerHTML = '<span>Season:</span>' + json.season;
            var runtimeMin = parseInt((json.runtime / 60), 10);
            var runtimeSec = parseInt((json.runtime), 10) - (runtimeMin * 60);
            $('vidRuntime').innerHTML = runtimeMin + 'min. ' + runtimeSec + 'sec. ';
            var locationURL = 'http://www.koldcast.tv/video/'+json.url_title;
            var videoTitle = json.title;
            var shareHTML = "<script language='javascript'>function fbs_click() {u='"+locationURL+"';t='"+videoTitle+"';window.open('http://www.facebook.com/share.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');return false;}</script>" +
                "<a class=\"sicon\" href=\"http://www.facebook.com/share.php?u="+encodeURIComponent(locationURL)+"\" class=\"fb_share_button\" onclick=\"return fbs_click()\" target=\"_blank\" style=\"text-decoration:none;\"><img src=\"/images/sicon_facebook_round.png\" border=\"0\"></a>" +
                "<a class=\"sicon\" href=\"http://del.icio.us/post\" onclick=\"window.open('http://delicious.com/save?noui&url="+encodeURIComponent(locationURL)+"&title="+encodeURIComponent(videoTitle)+"&share=yes', 'delicious','toolbar=no,width=700,height=400'); return false;\"><img src=\"/images/sicon_delicious_round.png\" border=\"0\"></a>" +
                "<a class=\"sicon\" href=\"javascript://\" onClick=\"window.open('http://www.stumbleupon.com/submit?url="+encodeURIComponent(locationURL)+"&title="+encodeURIComponent(videoTitle)+"', 'stumble upon', 'toolbar=no,width=800,height=500'); return false;\"> <img src=\"/images/sicon_stumble.png\" border=\"0\"> </a> " +
                "<a class=\"sicon\" href=\"javascript://\" onClick=\"window.open('http://reddit.com/submit?url="+encodeURIComponent(locationURL)+"&title="+encodeURIComponent(videoTitle)+"');return false;\"> <img src=\"/images/sicon_reddit_round.png\" border=\"0\"> </a> " +
                "<a class=\"sicon\" href=\"http://digg.com/submit?url="+encodeURIComponent(locationURL)+"&title="+encodeURIComponent(videoTitle)+"&media=news&topic=people\" target='_blank'><img src=\"/images/sicon_digg.png\" border=\"0\"></a>" +
                "<a class=\"sicon\" href='javascript://' onclick=\"string:javascript:(function(){open('http://buzz.yahoo.com/buzz?targetUrl="+encodeURIComponent(locationURL)+"','buzz','toolbar=no,width=700,height=250')})()\"><img width=\"16\" src=\"/images/sicon_buzz.png\" height=\"16\" /></a>" +
				"<span id=\"email_button\"><a href=\"#\" id=\"showShare\"><img src=\"/images/btn_email.gif\" alt=\"Email Button\" border=\"0\"></a></span>" +
				"<span id=\"reTweetMe\"><iframe height=\"20\" frameborder=\"0\" width=\"90\" scrolling=\"no\" style=\"margin-bottom: 50px;\" src=\"http://api.tweetmeme.com/button.js?url=http%3A//www.koldcast.tv/video/"+json.url_title+"&amp;style=compact&amp;source=KoldcastTV\"></iframe></span>";
            $('vidShare').innerHTML = shareHTML;
            $('vidDescription').innerHTML = json.description + '<br><br>';
            $('infocredits').innerHTML = '<div class="credits"><span>Credits:</span>' + json.credits + '</div>';
            
            kc.panels.infoPanel._pageMax = kc.panels.determinePages('infoDetails');
            kc.panels.infoPanel._currentPage = 0;
            kc.panels.infoPanel._open = true;
            var info_scrollbar = new Control.ScrollBar('infoDetails','info_scrollbar_track');
        },
        
		handleFavorite: function(event) {
		    
            var ajax = new Ajax.Request('/system/extensions/favorite.php', {
                method: 'get',
                parameters: { 'entry_id':kc.panels.entryId, 'cacheid':(new Date()).getTime() },
                requestHeaders: {Accept: 'application/json'},
                onSuccess: kc.panels.infoPanel.favoriteSuccess,
                onFailure: kc.panels.failure,
                onException: kc.panels.failure
            });
            
		},
		
		favoriteSuccess: function (transport) {
			var json = transport.responseText.evalJSON();
			alert(json.message);
            // $('add').addClassName('added');
		},
		
		resetScrolling: function() {
		    var effect1 = new Effect.Move('infoDetails', {x:0, y:(kc.panels.infoPanel._currentPage * kc.panels.infoPanel._pageHeight), scope: 'infoScroll', position: 'end'});
		    kc.panels.infoPanel._pageMax = kc.panels.determinePages('infoDetails');
		    kc.panels.infoPanel._currentPage = 0;
		},
		
		nextPage: function() {
			if (kc.panels.infoPanel._currentPage < kc.panels.infoPanel._pageMax) {
			    var effect1 = new Effect.Move('infoDetails', {x:0, y:(-1 * kc.panels.infoPanel._pageHeight), duration:0.2, scope:'infoScroll', position: 'end'});
			    kc.panels.infoPanel._currentPage += 1;
			}
		},

		previousPage: function() {
			if (kc.panels.infoPanel._currentPage > 0) {
			    var effect1 = new Effect.Move('infoDetails', {x:0, y:kc.panels.infoPanel._pageHeight, duration:0.2, scope:'infoScroll', position: 'end'});
			    kc.panels.infoPanel._currentPage -= 1;
			}
		}
    },
    
    commentPanel: {
		_currentPage:1,
		_pageMax:1,
		_comments:null,
		_loaded:false,
		_open:false,
		_pageHeight:125, //please set this to the height of the commentMask/2
		//submitURL: "/system/extensions/test_comment_response.js",  // development URL
		submitURL: "/system/extensions/commentsGrab.php",
		
        _init: function() {
            if ($('infoform')) {
                $('commentAddButton').observe('click', kc.panels.commentPanel.submitComment);
                // $('commentTypeArea').observe('focus', kc.panels.commentPanel.shakeText);
                // $('commentTypeArea').observe('blur', kc.panels.commentPanel.bakeText);
                // $('commentTypeArea').value = "What's your 2 cents?";
    			$('commentStatus').hide();
		    }
            //          $('commentsUp').observe('click', kc.panels.commentPanel.previousPage);
            // $('commentsDown').observe('click', kc.panels.commentPanel.nextPage);
        },
        
        loadComments: function(entry_id) {
            //write rest of code in here to load 
        },
        
        togglePanel: function() {
			if ( !kc.panels.commentPanel._loaded ) {
				kc.panels.commentPanel.getComments();	
			}
			kc.panels.commentPanel.resetSubmission();
        },
		
        // shakeText: function(e) {
        //     e.stop();
        //     if ($('commentTypeArea').value == "What's your 2 cents?") {
        //         $('commentTypeArea').value = '';
        //         $('commentTypeArea').setStyle({color: '#000', fontSize: '10px', lineHeight: 'auto'});
        //     }
        // },
        // 
        // bakeText: function(e) {
        //     e.stop();
        //     if ($('commentTypeArea').value == '') {
        //                 // $('commentTypeArea').value = "What's your 2 cents?";
        //         $('commentTypeArea').setStyle({color: '#aaa', fontSize: '14px', lineHeight: '27px'});
        //     }
        // },

		getComments: function() {
            var ajax = new Ajax.Request(kc.panels.commentPanel.submitURL, {
				method: 'get',
				parameters: {'entry_id':kc.panels.entryId,'cacheid':(new Date()).getTime()},
				requestHeaders: {Accept: 'application/json'},
				onSuccess: kc.panels.commentPanel.updateComments,
				onFailure: kc.panels.failure,
				onException: kc.panels.failure
			});
			
		},
		
		updateComments: function (transport) {
			var comments = transport.responseText.evalJSON();
			if (comments.error) {
				kc.panels.failture(comments);
				return;
			}
			kc.panels.commentPanel._comments = comments;

			var content = '';
			for(n=0; n<comments.entries.length; n++) {
				var entry = comments.entries[n];
				content += '<li>';
				content += '<div class="comment">'+entry.comment+'</div>';
				var profile_url = "/socialprofile/"+entry.name;
				content += '<strong>from</strong> <a href="'+profile_url+'">'+entry.name+'</a> - '+entry.date+'';
				content += '</li>';
			}
			$('commentItems').innerHTML = content;
			kc.panels.commentPanel._loaded = true;
            kc.panels.commentPanel.resetScrolling();
            var comment_scrollbar = new Control.ScrollBar('commentItems','comments_scrollbar_track');
		},
		
		revealCommentForm: function() {
		    if ($('infoform'))
		    $('infoform').show();
		},
		
		hideCommentForm: function() {
		    if ($('infoform'))
		    $('infoform').hide();
		},
		
		resetScrolling: function() {
		    var effect1 = new Effect.Move('commentItems', {x:0, y:0, mode: 'absolute', scope: 'commentScroll', position: 'end'});
		    kc.panels.commentPanel._currentPage = 1;
		    kc.panels.commentPanel._pageMax = kc.panels.determinePages('commentItems');
		    if (kc.panels.commentPanel._pageMax > 1) {
		        $('commentsUp').show();
		        $('commentsDown').show();
		    }
		},
		
		nextPage: function() {
			if (kc.panels.commentPanel._currentPage < kc.panels.commentPanel._pageMax) {
			    var effect1 = new Effect.Move('commentItems', {x:0, y:(-1 * kc.panels.commentPanel._pageHeight), duration:0.2, scope:'commentScroll', position: 'end'});
			    kc.panels.commentPanel._currentPage += 1;
			}
			else {
			    var effect1 = new Effect.Move('commentItems', {x:0, y:0, mode: 'absolute', duration:0.2, scope:'commentScroll', position: 'end'});
			    kc.panels.commentPanel._currentPage = 1;
			}
		},
		
		previousPage: function() {
			if (kc.panels.commentPanel._currentPage > 1) {
			    var effect1 = new Effect.Move('commentItems', {x:0, y:kc.panels.commentPanel._pageHeight, duration:0.2, scope:'commentScroll', position: 'end'});
			    kc.panels.commentPanel._currentPage -= 1;
			}
		},
		
		submitComment: function (event) {
			event.stop(); //prevent form form actually submitting
			$('commentEntryId').value = kc.panels.entryId;
			$('infoform').request({
				onSuccess: kc.panels.commentPanel.displaySubmitMessage,
				onFailure: kc.panels.failure,
				onException: kc.panels.failure
			});
		},
		
		displaySubmitMessage: function(transport) {
			var response = transport.responseText.evalJSON();
			
			$('commentStatus').innerHTML = response.message;
			
            $('commentTypeArea').setStyle({color: '#aaa', fontSize: '14px', lineHeight: '27px'});
			
			kc.panels.commentPanel.getComments();
            
			var effect1 = new Effect.Appear('commentStatus', {
                duration: 0.4,
                transition: Effect.Transitions.sinoidal,
				queue: {position:'end', scope: 'commentSubmit'}
			});
            var effect2 = new Effect.Fade('commentStatus', {
                delay: 3,
				duration: 0.4,
                transition: Effect.Transitions.sinoidal,
				queue: {position:'end', scope: 'commentSubmit'}
            });
			
            var comm = $('commentTypeArea').value;
            RPXNOW.init('clippebjcckjjafecggj', '/rpx_xdcomm.html');
       	    RPXNOW.loadAndRun(['Social'], function () {  
	            //RPX stuff
	            
	       	    var vid_url = $('vid_url').value;
	       	    var swf_url = "http://www.koldcast.tv/EmbeddedVideoPlayer.swf?video="+vid_url;
	       	    vid_url = "http://www.koldcast.tv/video/"+vid_url+'/';
	       	    var vid_name = $('vid_name').value;
	       	    var preview_img = $('vid_img').value;
	       	    var post_msg = "@KoldCastTV - " + comm;
	       	    //console.log(post_msg);
	       	    //var preview_img = $('vid_img').value;
	       	 
	       	    //var vid_item = new RPXNOW.Social.FlashMediaItem(swf_url, preview_img);
	       	    var vid_item = new RPXNOW.Social.VideoMediaItem(swf_url, preview_img);
	       	    var activity = new RPXNOW.Social.Activity("Share your comment", post_msg, vid_url);
	       	    
	            activity.setMediaItem(vid_item);
	       	    activity.setDescription($('vid_desc').value);
	       	    activity.setUserGeneratedContent($('commentTypeArea').value);
	       	    RPXNOW.Social.publishActivity(activity);
            });	 
            
       	 $('commentTypeArea').value = "";
			
		},
		
		resetSubmission: function() {
		    /*
			$$('#commentInputWrapper FORM')[0].show();
			$$('#commentForm .success')[0].hide();	
			*/
		    if ($('infoform'))
            $('commentTypeArea').value = '';        
		}
    }
};

function prepLike(entry_id)
{
	new Ajax.Request('/socialbar/member_json.php',
			  {
			    method:'get',
			    onSuccess: function(transport)
			    {
			      var response = transport.responseText || "no response text";
			      response = response.evalJSON();
			      //alert("Success! \n\n" + response);
			      var member_id = response.member_id;
			      sendLike(member_id, entry_id);
			      //alert('member_id: ['+member_id+'] friend_id: ['+friend_id+']');
			    },
			    onFailure: function(){ alert('Something went wrong...') }
			  });
    
	RPXNOW.init('clippebjcckjjafecggj', '/rpx_xdcomm.html');
	 RPXNOW.loadAndRun(['Social'], function () {  
		 
		 var vid_url = $('vid_url').value;
		 var swf_url = "http://www.koldcast.tv/EmbeddedVideoPlayer.swf?video="+vid_url;
		 vid_url = "http://www.koldcast.tv/video/"+vid_url+'/';
		 var vid_name = $('vid_name').value;
		 var preview_img = $('vid_img').value;
		 //var preview_img = $('vid_img').value;
		 
		 //var vid_item = new RPXNOW.Social.FlashMediaItem(swf_url, preview_img);
		 var vid_item = new RPXNOW.Social.VideoMediaItem(swf_url, preview_img);
		 var activity = new RPXNOW.Social.Activity("Share what you like", "Liked '"+vid_name+"' @KoldCastTV", vid_url);
		 
	     activity.setMediaItem(vid_item);
		 activity.setDescription($('vid_desc').value);
		 RPXNOW.Social.publishActivity(activity);
	 });
	//Effect.DropOut('btn-friendrq');
}


function sendLike(member_id, entryid)
{
	//alert('member_id: ['+member_id+'] video_id: ['+kc.panels.entryId+']');
	//alert('member_id: ['+member_id+'] friend_id: ['+friend_id+']');
	new Ajax.Request('/socialbar/like_video.php',
			  {
			    method: 'post',
			    parameters: {entry_id : entryid},
			    onSuccess: function(transport)
			    {
			      var response = transport.responseText || "no response text";
			      response = response.evalJSON();
			      if(response.stat == 'success')
			    	 Effect.DropOut('likebutton');
			      else
			         alert(response.stat);
			      //alert('member_id: ['+member_id+'] friend_id: ['+friend_id+']');
			    },
			    onFailure: function(){ alert('Something went wrong...') }
			  });
}


 document.observe('dom:loaded', function() {
	 //console.log("dom:loaded");
	 //console.log($('show_like_button').value);
     if($('show_like_button').value == 'disabled')
	     {
	    	 $('likebutton').hide();
	     }
 });