	/**
	 * Module: what people are saying (user comments on user profile page only)
	 **/

	function insertUserComment(display, listener_id, zoner)
	{
		params = '&display='+display+'&listener_id='+listener_id+'&zoner='+zoner;
		new Ajax.Updater('user_comments'+zoner,
		                 location.protocol+'//'+location.host+'/myprofile/mods/user_comments/comments.php',
						 { method:'post', parameters:params, evalScripts:true });
		displayOutText('');
	}

	function submitUserInsert(display, listener_id, edit, zoner)
	{
		var s = document.comment_update.comment.value.strip();
		if (s == "" || s == "undefined") {
			alert("Please enter your comment.");
			document.comment_update.comment.value = "";
			document.comment_update.comment.focus();
	    } else {
			params = '&display='+display+'&listener_id='+listener_id+'&edit='+edit+'&zoner='+zoner+
					 '&comment_title='+document.comment_update.comment_title.value+
					 '&comment='+escape(document.comment_update.comment.value);
			new Ajax.Updater('user_comments'+zoner,
							location.protocol+'//'+location.host+'/myprofile/mods/user_comments/comments.php',
							{ method:'post', parameters:params });
	    }
	}

	function editUserComment(display, comment_id, listener_id, zoner)
	{
		params = '&display='+display+'&comment_id='+comment_id+'&listener_id='+listener_id+'&zoner='+zoner;
		new Ajax.Updater('user_comments'+zoner,
		                 location.protocol+'//'+location.host+'/myprofile/mods/user_comments/comments.php',
						 { method:'post', parameters:params, evalScripts:true });
		displayOutText('');
	}

	function submitUserEdit(display, listener_id, edit, zoner)
	{
		var s = document.comment_update.comment.value.strip();
		if (s == "" || s == "undefined") {
			alert("Please enter your comment.");
			document.comment_update.comment.value = "";
			document.comment_update.comment.focus();
		} else {
			params = '&display='+display+'&listener_id='+listener_id+'&zoner='+zoner+'&edit='+edit+
					 '&comment_id='+document.comment_update.comment_id.value+
					 '&comment_title='+document.comment_update.comment_title.value+
					 '&comment='+escape(document.comment_update.comment.value);
			new Ajax.Updater('user_comments'+zoner,
			                 location.protocol+'//'+location.host+'/myprofile/mods/user_comments/comments.php',
							 { method:'post', parameters:params });
			displayOutText('');
		}
	}

    function confirmDeleteUserComment(comment_id, listener_id, poster_id, zoner)
    {
    	var agree=confirm("Are you sure you wish to delete this comment?");
        if (agree)
	    	deleteUserComment(+comment_id, +listener_id, +poster_id, +zoner);
 	}

	function deleteUserComment(comment_id, listener_id, poster_id, zoner)
	{
		params = '&display=default&delete=1&comment_id='+comment_id+'&listener_id='+listener_id+
				 '&poster_id='+poster_id+'&zoner='+zoner;
		new Ajax.Updater('user_comments'+zoner,
		                 location.protocol+'//'+location.host+'/myprofile/mods/user_comments/comments.php',
						 { method:'post', parameters:params });
	}

	function closeUserComment(display, listener_id, zoner)
	{
		params = '&display='+display+'&zoner='+zoner+'&listener_id='+listener_id;
		new Ajax.Updater('user_comments'+zoner,
		                 location.protocol+'//'+location.host+'/myprofile/mods/user_comments/comments.php',
						 { method:'post', parameters:params });
		displayOutText('');
	}

	function changeUserCommentStatus(display, comment_id, listener_id, poster_id, ff_flag, zoner)
	{
		params = '&display='+display+'&comment_id='+comment_id+'&listener_id='+listener_id+'&poster_id='+poster_id+
				 '&ff_flag='+ff_flag+'&zoner='+zoner;
		new Ajax.Updater('user_comments'+zoner,
		                 location.protocol+'//'+location.host+'/myprofile/mods/user_comments/comments.php',
						 { method:'post', parameters:params });
		displayOutText('');
	}

	/**
	 * Module: My Channels
	 **/
	var displayedChannel = '';
	var lockScrollButtons = false;
	
	function getMyChannel(listener_id, channel_id, module_id, zoner, this_view)
	{
		params = {
			listener_id : listener_id,
			channel_id : channel_id,
			module_id : module_id,
			new_view: this_view,
			zone_id : zoner
		}
		/*if(this_view!='NULL'){
			var exdate=new Date();
			var expiredays = 7;
			exdate.setDate(exdate.getDate()+expiredays);
			document.cookie="this_view="+this_view+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
		}*/
		new Ajax.Updater('channel_'+module_id+'_content_'+zoner,
		                 location.protocol+'//'+location.host+'/myprofile/mods/my_playlists/display.php',
						 { method:'post', parameters:$H(params).toQueryString(), evalScripts:true });
	}
	
	function swapColor(element)
	{
		displayedChannel.style.backgroundColor = '';
		displayedChannel = $(element);
		$(element).style.backgroundColor = '#999';
	}

	function scrollMyChannel(direction, bound, speed, listener_id, channel_id, left_pos, module_id, zoner)
	{
		var currentLeftPos = parseInt($(module_id + '_thumb_strip').style.left.replace('px',''));
		var stripWidth = parseInt($(module_id + '_thumb_strip').offsetWidth);
		
		if (direction === "left") {
			if ( currentLeftPos < 0 ) { 
				slideThumbnails((module_id + '_thumb_strip'), speed, currentLeftPos, bound);
			} else {				
				alert("can't move left");
			}
		} else {
			if ( Math.abs(currentLeftPos) + bound < stripWidth ) {
				slideThumbnails((module_id + '_thumb_strip'), speed * -1, currentLeftPos, bound);
			} else {
				alert("can't move right");
			}
		}
	}
	
	function slideThumbnails(id, speed, currentPos, bound)
	{
		currentPos = currentPos + parseInt(speed);
		
		$(id).style.left = currentPos + "px";
		
		bound = bound - Math.abs(speed);
		
		if (bound > 0) {
			setTimeout('slideThumbnails(\'' + id + '\',' + speed + ',' + currentPos + ',' + bound + ')', 5);
		}
	}
	
	function scrollChannels(direction, bound, speed, module_id)
	{
		var currentTopPos = parseInt($('channel_lineup_'+module_id).style.top.replace('px',''));
		var listHeight = parseInt($('channel_lineup_'+module_id).offsetHeight);
		
		if (direction === "up") {
			if ( currentTopPos < 0 ) { 
				slideChannelList(('channel_lineup_'+module_id), speed, currentTopPos, bound);
			} else {				
				//alert("can't move up");
			}
		} else {
			if ( Math.abs(currentTopPos) + bound < listHeight ) {
				slideChannelList(('channel_lineup_'+module_id), speed * -1, currentTopPos, bound);
			} else {
				//alert("can't move down");
			}
		}
	}	
	
	function slideChannelList(id, speed, currentPos, bound)
	{
		currentPos = currentPos + parseInt(speed);
		
		$(id).style.top = currentPos + "px";
		
		bound = bound - Math.abs(speed);
		
		if (bound > 0) {
			if (!lockScrollButtons) {
				lockScroll();
				lockScrollButtons = true;
			}
			setTimeout('slideChannelList(\'' + id + '\',' + speed + ',' + currentPos + ',' + bound + ')', 5);
		} else {
			unlockScroll(id.replace('channel_lineup_',''));
		}
	}
	
	function lockScroll()
	{
		if (document.all) {
			//eval("$('scrollUpBtn').setAttribute(\"onclick\", \"\"");
			//eval("$('scrollDownBtn').setAttribute(\"onclick\", \"\"");
		} else {
			$('scrollUpBtn').setAttribute("onclick", "");
			$('scrollDownBtn').setAttribute("onclick", "");
		}
	}
	
	function unlockScroll(module_id)
	{
		if (lockScrollButtons) {
			if (document.all) {
				//eval("$('scrollUpBtn').setAttribute(\"onclick\", " + "scrollChannels('up', 231, 11, '" + module_id + "')" + ")");
				//eval("$('scrollDownBtn').setAttribute(\"onclick\", " + "scrollChannels('down', 231, 11, '" + module_id + "')" + ")");
			} else {
				$('scrollUpBtn').setAttribute("onclick", "scrollChannels('up', 231, 11, '" + module_id + "')");
				$('scrollDownBtn').setAttribute("onclick", "scrollChannels('down', 231, 11, '" + module_id + "')");
			}
			lockScrollButtons = false;
		}
	}
	
	/**
	 * Module: My Digs
	 **/

	function getMoreDigs(listener_id, start_row)
	{
		params = '&listener_id='+listener_id+'&start_row='+start_row;
		new Ajax.Updater('digs',
		                 location.protocol+'//'+location.host+'/myprofile/mods/my_digs/display.php',
						 { method:'post', parameters:params });
		displayOutText('');
	}

	/**
	 * Module: My Blog Post
	 **/

	function getMoreBlogs(listener_id, start_row)
	{
		params = '&listener_id='+listener_id+'&start_row='+start_row;
		new Ajax.Updater('blogs',
		                 location.protocol+'//'+location.host+'/myprofile/mods/my_blog/display.php',
						 { method:'post', parameters:params });
		displayOutText('');
	}

    function getBlogItem(post_id, display, listener_id)
    {
		params = '&post_id='+post_id+'&display='+display+'&listener_id='+listener_id;
		new Ajax.Updater('blogs',
		                 location.protocol+'//'+location.host+'/myprofile/mods/my_blog/display.php',
						 { method:'post', parameters:params });
		displayOutText('');
	}

	function closeBlogItem(display, listener_id)
	{
		params = '&display='+display+'&listener_id='+listener_id;
		new Ajax.Updater('blogs',
		                 location.protocol+'//'+location.host+'/myprofile/mods/my_blog/display.php',
						 { method:'post', parameters:params });
		displayOutText('');
	}

	/**
	 * Module: "comments I've posted" (user profile page only)
	 **/

	function editAllComment(display, comment_id, feature, zoner)
	{
		params = '&display='+display+'&comment_id='+comment_id+'&feature='+feature+'&zoner='+zoner;
		new Ajax.Updater('all_comments'+zoner,
		                 location.protocol+'//'+location.host+'/myprofile/mods/all_comments/display.php',
						 { method:'post', parameters:params, evalScripts:true });
		displayOutText('');
	}

	function submitAllCommentEdit(display, listener_id, edit, feature, zoner)
	{
		var s = document.comment_update.comment.value.strip();
		if (s == "" || s == "undefined") {
			alert("Please enter your comment.");
			document.comment_update.comment.value = "";
			document.comment_update.comment.focus();
	    } else {
	    	var comment = escape(document.comment_update.comment.value);
			params = '&display='+display+'&listener_id='+listener_id+'&edit='+edit+'&zoner='+zoner+
					 '&feature='+feature+'&comment_id='+document.comment_update.comment_id.value+
					 '&comment='+comment;
			new Ajax.Updater('all_comments'+zoner,
			                 location.protocol+'//'+location.host+'/myprofile/mods/all_comments/display.php',
							 { method:'post', parameters:params });
	    }
	}

	function cancelEditAllComment(display, listener_id, feature, zoner)
	{
		params = '&display='+display+'&listener_id='+listener_id+'&feature='+feature+'&zoner='+zoner;
		new Ajax.Updater('all_comments'+zoner,
		                 location.protocol+'//'+location.host+'/myprofile/mods/all_comments/display.php',
						 { method:'post', parameters:params, evalScripts:true });
		displayOutText('');
	}

	function deleteMyComment(display, comment_id, listener_id, feature, zoner)
    {
    	var agree=confirm("Are you sure you wish to delete this comment?");
    	if (agree) {
			params = '&display='+display+'&comment_id='+comment_id+'&listener_id='+listener_id+
					 '&delete=1'+'&feature='+feature+'&zoner='+zoner;
			new Ajax.Updater('all_comments'+zoner,
							 location.protocol+'//'+location.host+'/myprofile/mods/all_comments/display.php',
							 { method:'post', parameters:params} );
    	}
	}

	/**
	 * Module: Show Comments (show profile page only)
	 **/

	function getShowComment(display, comment_id, show_id, zoner, start_row)
	{
		params = '&display='+display+'&comment_id='+comment_id+'&show_id='+show_id+'&zoner='+zoner+
				 '&start_row='+start_row;
		new Ajax.Updater('show_comments'+zoner,
		                 location.protocol+'//'+location.host+'/myprofile/mods/show_comments/display.php',
						 { method:'post', parameters:params, evalScripts:true });
		displayOutText('');
	}

	function insertNewComment(display, show_id, zoner, start_row)
	{
		params = '&display='+display+'&show_id='+show_id+'&zoner='+zoner+'&start_row='+start_row;
		new Ajax.Updater('show_comments'+zoner,
		                 location.protocol+'//'+location.host+'/myprofile/mods/show_comments/display.php',
						 { method:'post', parameters:params, evalScripts:true });
		displayOutText('');
	}

	function saveShowComment(display, edit, comment_id, show_id, zoner, start_row)
	{
		var cmt = document.comment_update.comment.value.strip();
		if (cmt == "" || cmt == "undefined") {
			alert("Please enter your comment.");
			document.comment_update.comment.value = "";
			document.comment_update.comment.focus();
		} else {
			params = '&display='+display+'&show_id='+show_id+'&key_id='+show_id+'&zoner='+zoner+
					 '&start_row='+start_row+'&edit='+edit+'&comment_id='+comment_id+
					 '&comment_title='+document.comment_update.comment_title.value+'&comment='+escape(cmt);
			new Ajax.Updater('show_comments'+zoner,
			                 location.protocol+'//'+location.host+'/myprofile/mods/show_comments/display.php',
							 { method:'post', parameters:params, evalScripts:true });
			displayOutText('');
		}
	}

    function deleteShowComment(display, comment_id, show_id, poster_id, zoner, start_row)
    {
    	var agree = confirm("Are you sure you wish to delete this comment?");
        if (agree) {
        	params = '&display='+display+'&comment_id='+comment_id+'&show_id='+show_id+
        			 '&poster_id='+poster_id+'&case=delete&zoner='+zoner+'&start_row='+start_row;
			new Ajax.Updater('show_comments'+zoner,
		                 	 location.protocol+'//'+location.host+'/myprofile/mods/show_comments/display.php',
						 	 { method:'post', parameters:params, evalScripts:true });
        }
 	}

 	function cancelShowComment(display, show_id, zoner, start_row)
 	{
 		params = '&display='+display+'&show_id='+show_id+'&zoner='+zoner+'&start_row='+start_row;
 		new Ajax.Updater('show_comments'+zoner,
 						 location.protocol+'//'+location.host+'/myprofile/mods/show_comments/display.php',
 						 { method:'post', parameters:params, evalScripts:true });
 	}

	function changeShowCommentStatus(display, comment_id, show_id, poster_id, ff_flag, zoner, start_row)
	{
		params = '&display='+display+'&comment_id='+comment_id+'&show_id='+show_id+'&poster_id='+poster_id+
				 '&ff_flag='+ff_flag+'&zoner='+zoner+'&start_row='+start_row;
		new Ajax.Updater('show_comments'+zoner,
		                 location.protocol+'//'+location.host+'/myprofile/mods/show_comments/display.php',
						 { method:'post', parameters:params });
	}

	/**
	 * Module: show I've reviewed (user profile page only)
	 **/

   	function editShowReview(display, review_id, start_row)
   	{
		params = '&display='+display+'&review_id='+review_id+'&start_row='+start_row;
		new Ajax.Updater('show_reviews',
		                 location.protocol+'//'+location.host+'/myprofile/mods/show_reviews/display.php',
						 { method:'post', parameters:params });
		displayOutText('');
	}

	function getMoreShowReviews(persona_id, start_row)
	{
		params = '&display=show&persona_id='+persona_id+'&start_row='+start_row;
		new Ajax.Updater('show_reviews',
		                 location.protocol+'//'+location.host+'/myprofile/mods/show_reviews/display.php',
						 { method:'post', parameters:params });
		displayOutText('');
	}

	function submitReviewEdit(display, persona_id, edit, review_id, start_row)
	{
		if (validateUpdateReview()) {
			var title = escape($('review_update').review_title.value.strip());
			var review = escape($('review_update').review.value.strip());
			params = '&display='+display+'&persona_id='+persona_id+'&edit='+edit+'&review_id='+review_id+
					 '&review_title='+title+'&review='+review+'&start_row='+start_row;
			new Ajax.Updater('show_reviews',
			                 location.protocol+'//'+location.host+'/myprofile/mods/show_reviews/display.php',
							 { method:'post', parameters:params });
			displayOutText('');
		}
	}

	function validateUpdateReview()
	{
		var result = true;
		var s1 = $('review_update').review_title.value.strip();
		var s2 = $('review_update').review.value.strip();
		var err = "";
		if (s1 == "" || s1 == "undefined" || s2 == "" || s2 == "undefined") {
			result = false;
			if (s1 == "" || s1 == "undefined") {
				err = err + "Please enter a title for this review.\n\n";
				$('review_update').review_title.value = "";
			}
			if (s2 == "" || s2 == "undefined") {
				err = err + "Please enter the review.\n";
				$('review_update').review.value = "";
			}
			alert(err);
		}
		return result;
	}

	function cancelReviewEdit(persona_id, start_row)
	{
		params = '&display=show&persona_id='+persona_id+'&start_row='+start_row;
		new Ajax.Updater('show_reviews',
		                 location.protocol+'//'+location.host+'/myprofile/mods/show_reviews/display.php',
						 { method:'post', parameters:params, evalScripts:true });
		displayOutText('');
	}

 	/**
	 * Static Module: "latest review" (show profile page only)
	 **/

    function makeFeature(display, show_id, review_id, poster_id, flow)
    {
		params = '&display='+display+'&show_id='+show_id+'&review_id='+review_id+
				 '&poster_id='+poster_id+'&flow='+flow;
		new Ajax.Updater('reviews',
		                 location.protocol+'//'+location.host+'/shows/reviews/profile_reviews.php',
						 { method:'post', parameters:params, evalScripts:true });
		displayOutText('');
	}

    function addShowReview(display, show_id)
    {
    	$('review_button').style.display = 'none';
    	$('latest_review_title').innerHTML = 'add a review';
    	params = '&display='+display+'&show_id='+show_id;
		new Ajax.Updater('reviews',
						 location.protocol+'//'+location.host+'/shows/reviews/profile_reviews.php',
						 { method:'post', parameters:params, evalScripts:true });
		displayOutText('');
	}

    function submitShowReview(display, show_id, edit)
    {
    	var s2 = $('reviews_form').review.value.strip();
		params = '&checkXML='+s2;
		new Ajax.Request(location.protocol+'//'+location.host+'/shows/reviews/XMLvalidator.php', {
			method: "post",
			onSuccess: function(transport) {
				if (transport.responseText == "true") {
					if (validateAddReview()) {
			    		var title = escape($('reviews_form').review_title.value.strip());
			    		var review = escape($('reviews_form').review.value.strip());
			    		params = '&display='+display+'&show_id='+show_id+'&edit='+edit+'&title='+title+'&review='+review;
			    		new Ajax.Updater('reviews',
									 	 location.protocol+'//'+location.host+'/shows/reviews/profile_reviews.php',
									 	 { method:'post', parameters:params, evalScripts:true });
			    	}
				} else {
					alert("Your review text contains text that could break the rest of the page!");
					return false;
				}
			},
			parameters: params
			}
		);
    	$('review_button').style.display = '';
	}

    function updateShowReview(display, review_id, show_id)
    {
    	$('review_button').style.display = 'none';
    	$('latest_review_title').innerHTML = 'edit review';
    	params = '&display='+display+'&review_id='+review_id+'&show_id='+show_id;
	    new Ajax.Updater('reviews',
						 location.protocol+'//'+location.host+'/shows/reviews/profile_reviews.php',
						 { method:'post', parameters:params, evalScripts:true });
		displayOutText('');
	}

    function submitUpdateShowReview(display, show_id, review_id, edit)
    {
    	var s2 = $('reviews_form').review.value.strip();
		params = '&checkXML='+s2;
		new Ajax.Request(location.protocol+'//'+location.host+'/shows/reviews/XMLvalidator.php', {
			method: "post",
			onSuccess: function(transport) {
				if (transport.responseText == "true") {
					if (validateAddReview()) {
			    		var title = escape($('reviews_form').review_title.value.strip());
			    		var review = escape($('reviews_form').review.value.strip());
			    		params = '&display='+display+'&show_id='+show_id+'&review_id='+review_id+'&edit='+edit+
			    				 '&title='+title+'&review='+review;
			    		new Ajax.Updater('reviews',
									 	 location.protocol+'//'+location.host+'/shows/reviews/profile_reviews.php',
									 	 { method:'post', parameters:params, evalScripts:true });
			    	}
				} else {
					alert("Your review text contains text that could break the rest of the page!");
					return false;
				}
			},
			parameters: params
			}
		);
    	$('review_button').style.display = '';
	}

	function cancelUpdateReview(display, show_id)
	{
		$('review_button').style.display = '';
		params = '&display='+display+'&show_id='+show_id;
		new Ajax.Updater('reviews',
		                 location.protocol+'//'+location.host+'/shows/reviews/profile_reviews.php',
						 { method:'post', parameters:params, evalScripts:true });
		displayOutText('');
	}

	function changeShowReviewStatus(display, review_id, show_id, poster_id, ff_flag)
	{
		params = '&display='+display+'&review_id='+review_id+'&show_id='+show_id+'&poster_id='+poster_id+
				 '&ff_flag='+ff_flag;
		new Ajax.Updater('reviews',
		                 location.protocol+'//'+location.host+'/shows/reviews/profile_reviews.php',
						 { method:'post', parameters:params });
	}

	function validateAddReview(){
		var result = true;
		var s1 = $('reviews_form').review_title.value.strip();
		var s2 = $('reviews_form').review.value.strip();
		var err = "";
		if (s1 == "" || s1 == "undefined" || s2 == "" || s2 == "undefined") {
			result = false;
			if (s1 == "" || s1 == "undefined"){
				err = err + "Please enter a title for this review.\n\n";
				$('reviews_form').title.value = "";
			}
			if (s2 == "" || s2 == "undefined") {
				err = err + "Please enter the review.\n";
				$('reviews_form').review.value = "";
			}
			alert(err);
		}
		return result;
	}
	
	/**
	 * My movies
	 **/
	 function SetMovieCookie(cookieName,cookieValue,nDays) {
		 var today = new Date();
		 var expire = new Date();
		 if (nDays==null || nDays==0) nDays=1;
		 expire.setTime(today.getTime() + 3600000*24*nDays);
		 var minCookie = cookieValue.replace(/^.*guid=(.*)\".*$/, '$1');
		 var finalCookie = minCookie.substr(0,32);
		 document.cookie = cookieName+"="+escape(finalCookie)
		                 + ";expires="+expire.toGMTString();
		                
	}