 	var siteUsername = '';
 	var gDelHis = '';
 	var viewNavInUse = false;
 	
 	var RecaptchaOptions = {
	   theme : 'clean'
	};
	
	function manage_friends_unfollow(lUid)
	{
		$.post('/ajax.php', { action: 'remove_friend', user_id: lUid}, function(data)
		{
			var xmlResult = data.getElementsByTagName('result')[0].firstChild.nodeValue;
	
			if (xmlResult == 'REMOVED')
			{
				xmlFriendId = xmlGetNodeValue(data, 'friend_id');
				xmlFriendUsername = xmlGetNodeValue(data, 'username');

				$('#friend_follow_'+xmlFriendId).show();
				$('#friend_unfollow_'+xmlFriendId).hide();
			}
			else
			{
				flash_message(xmlResult, 3);
			}
		});
 
		return false;
	}
		
	function manage_followers_follow(lUid)
	{
		$.post('/ajax.php', { action: 'add_friend', user_id: lUid}, function(data)
		{
			var xmlResult = data.getElementsByTagName('result')[0].firstChild.nodeValue;
	
			if (xmlResult == 'ADDED')
			{
				xmlFriendId = xmlGetNodeValue(data, 'friend_id');
				xmlFriendUsername = xmlGetNodeValue(data, 'username');

				$('#friend_follow_'+xmlFriendId).hide();
				$('#friend_unfollow_'+xmlFriendId).show();
			}
			else
			{
				flash_message(xmlResult, 3);
			}
		});

		return false;
	}
		
 	
	$(window).load(function(){
		$("#item_action_rotate").show();
	});
	
	$(document).ready(function()
	{
		$(".view_nav_previous").bind('click', function(){
			if (!$(this).hasClass("disabled") && !viewNavInUse) {
				viewNavInUse = true;
				$.post("/ajax.php", {action:'post_navigation_previous', post_id: $("#post_previous_id").val(), user_id: postingUserId}, function(data){
					var xmlResult = data.getElementsByTagName('result')[0].firstChild.nodeValue;
					
					if (xmlResult == 'OK')
					{
						xmlResultImg = data.getElementsByTagName('resultImg')[0].firstChild.nodeValue;
						xmlResultID = data.getElementsByTagName('resultId')[0].firstChild.nodeValue;
						
						if (xmlResultID == 0) {
							$(".view_nav_previous").addClass("disabled");
							$(".view_nav_previous").attr("href", "#");  
						}
						else
							$(".view_nav_previous").attr("href", "/user/" + siteUsername + "/view/" + xmlResultID); 
						
						$(".view_nav_next").removeClass("disabled");
						
						if ($("#view_navigation_thumbs a").size() == 2)
							$("#view_navigation_thumbs img:last").remove();
						else
							$("#view_navigation_thumbs a:last").remove();
						
						$("#view_navigation_thumbs").prepend(xmlResultImg);
						
						$("#post_next_id").val($("#post_middle_id").val());
						$("#post_middle_id").val($("#post_previous_id").val());
						$("#post_previous_id").val(xmlResultID);
					}
					
					viewNavInUse = false;
				});
			}
	
			return false;
		});
		
		$(".view_nav_next").bind('click', function(){
			if (!$(this).hasClass("disabled") && !viewNavInUse) {
				viewNavInUse = true;
				$.post("/ajax.php", {action:'post_navigation_next', post_id: $("#post_next_id").val(), user_id: postingUserId}, function(data){
					var xmlResult = data.getElementsByTagName('result')[0].firstChild.nodeValue;
					
					if (xmlResult == 'OK')
					{
						xmlResultImg = data.getElementsByTagName('resultImg')[0].firstChild.nodeValue;
						xmlResultID = data.getElementsByTagName('resultId')[0].firstChild.nodeValue;
						
						if (xmlResultID == 0) {
							$(".view_nav_next").addClass("disabled");
							$(".view_nav_next").attr("href", "#");  
						} else {
							$(".view_nav_next").attr("href", "/user/" + siteUsername + "/view/" + xmlResultID);  
						}
						
						$(".view_nav_previous").removeClass("disabled");
						
						if ($("#view_navigation_thumbs a").size() == 2)
							$("#view_navigation_thumbs img:first").remove();
						else
							$("#view_navigation_thumbs a:first").remove();
						
						$("#view_navigation_thumbs").append(xmlResultImg);
						
						$("#post_previous_id").val($("#post_middle_id").val());
						$("#post_middle_id").val($("#post_next_id").val());
						$("#post_next_id").val(xmlResultID)
					}
					
					viewNavInUse = false;
				});
			}
	
			return false;
		});
		
		$("#tag_add_link").bind('click', function(){
			$("#tag_add").slideToggle(500);
			
			if ($(this).hasClass("tag_add_shown"))
				$(this).html('<span class="green">+</span> add').removeClass('tag_add_shown');
			else
				$(this).html('<span class="green">-</span> hide').addClass('tag_add_shown');
				
			$(this).blur();
			
			return false;
		});
		
		$(".delete_button").live('mouseover', function(){
			$(this).addClass("delete_button_hover");
		}).live('mouseout', function(){
			$(this).removeClass("delete_button_hover");
		})
		
		$("#tag_add_button").bind('click', function(){
			newTags = $("#tag_add_tags").val();
			
			if (newTags != ''){
				$.post("/ajax.php", {action:'post_tag_add', post_id: postingId, tags: newTags}, function(data){
					var xmlResult = data.getElementsByTagName('result')[0].firstChild.nodeValue;
					
					if (xmlResult == 'OK')
					{
						try {
							resultTags = data.getElementsByTagName('resultTags')[0].firstChild.nodeValue;							;
							$("#no_tags").remove();
							
							$("#info_tag_list .info_item_tag:first").prepend(", ");
							
							firstChild = true;

							$("#info_tag_list").prepend(resultTags);
						} catch(err){}
							
						try {
							message = data.getElementsByTagName('message')[0].firstChild.nodeValue;
							
							if (message != '')
								flash_message(message, 3, "#tag_flash");
								
						} catch(err){}
					}
				});
			}
			
			$("#tag_add").slideUp(500, function(){
				$("#tag_add_tags").val('');
				$("#tag_add_link").html('<span class="green">+</span> add').removeClass('tag_add_shown');
			});
		});
		
		$("#tag_dummy_form").bind('submit', function(){
			$("#tag_add_button").click();
			return false;
		})
		
		$("#navigation_search_form").bind('submit', function()
		{
			if ($("#navigation_search").val() == 'search for...')
				$("#navigation_search").val('');
		});
		
		$(".tag_delete").live('click', function(){
			$delParent = $(this).parent();
			
			$delParent.addClass('grey');

			$.post("/ajax.php", {action:'post_tag_remove', post_id: postingId, tag_id: $delParent.children(".tag_text").attr('id').substr(4)}, function(data){
				var xmlResult = data.getElementsByTagName('result')[0].firstChild.nodeValue;
				
				if (xmlResult == 'OK')
				{
					$delParent.fadeOut(500, function(){
						$(this).remove();
						firstElement = $("#info_tag_list .info_item_tag:first");
						if (firstElement.html() != null)
							firstElement.html(firstElement.html().replace(", ", ""));
							
						if ($("#info_tag_list .info_item_tag").length == 0)
							$("#info_tag_list").prepend('<div class="info_item_tag grey" id="no_tags">No tags yet</div>');
					});
				}
			});
			
			return false;
		});
		
		$("#partof_add a").bind('click', function(){
			$("#partof_add_form").slideToggle(800);
			return false;
		});
		
		$("#partof_add_group_cancel").bind('click', function(){
			$("#partof_add_form").slideUp(800);
			return false;
		});
		
		$("#partof_add_group").bind('click', function(){
			$.post("/ajax.php", {action:'group_add_post', post_id: postingId, group_id: $("#partof_group_id").val()}, function(data){
				var xmlResult = data.getElementsByTagName('result')[0].firstChild.nodeValue;
				
				if (xmlResult == 'OK')
				{
					$(".no_partof").slideUp(600);
					
					listResult = data.getElementsByTagName('listoption')[0].firstChild.nodeValue;
					
					listResult = listResult.replace("  ", "&nbsp;&nbsp;");
					
					$("#partof_add_form").slideUp(700, function(){
						$("#partof_list .hidden").slideDown(600, function(){
							$(this).removeClass('hidden');
						});
					}).after(listResult);
				}
				else
				{
					flash_message(xmlResult, 4, "#partof_flash");
				}
			});
			return false;
		});
		
		$(".partof_list_delete").live('click', function(){
			if (confirm("are you sure you want to remove this post from this group?")) {
				gDelHis = $(this).parent().parent();
				
				$(this).parent().html($(this).parent().children("a").html()).addClass("grey");
				
				$.post("/ajax.php", {action:'group_delete_post', post_id: postingId, group_id: gDelHis.children(".partof_id").val()}, function(data){
					var xmlResult = data.getElementsByTagName('result')[0].firstChild.nodeValue;
					
					if (xmlResult == 'OK')
					{
						gDelHis.fadeOut(500, function(){
							gDelHis.next("br").remove();
							gDelHis.remove();
						});
						
						if ($(".partof_item").size() == 0) {
							$("#partof_list").append('<div class="no_partof hidden">This post is not part of a group or event, click the button above to add this to a group or event.</div>');
							
							$("#partof_list .hidden").slideDown(600, function(){
								$(this).removeClass('hidden');
							});
						}
					}
					else
					{
						flash_message(xmlResult, 4, "#partof_flash");
					}
				});
			}
			return false;
		});
		
		$("#sizes_picker a").focus(function(){
			$(this).blur();
			return false;
		}).live('click', function(){
			$(".size_selected").removeClass('size_selected');
			$(this).addClass('size_selected');
			$("#photo").attr('src', $(this).attr('href'));
			return false;
		});
		
		$("#tweet_this").click(function(){
			if ($("#user_has_twitter").val() == 1){
				$("#bookmark_twitter").slideToggle('400');
				$('#twit_message').keyup();
				return false;
			} else {
				return true;
			}
		});
		
		$(".layout_calendar .days .nopost").live('click', function()
		{
			return false;
		});
			
		$("#item_action_rotate a").live('click', function(){
			$('#main_picture').rotate(-90);
			$('#main_picture').css('border','1px solid #b2b2b2').css('padding','1px'); 
			return false;
		});
				
		$(".app_fan_toggle").bind('click', function(){
			$.post('/ajax.php', { action: 'toggle_fan', app_id: appId}, function(data)
			{
				var xmlResult = data.getElementsByTagName('result')[0].firstChild.nodeValue;
				
				
				
				if (xmlResult == 'ADDED')
				{
					$(".app_fan_toggle").removeClass('no_fan').addClass('is_fan').html('your a fan!');
					$("#fan_counter").html(($("#fan_counter").html() - 1)+2);
				}
				else if (xmlResult == 'REMOVED')
				{
					$(".app_fan_toggle").removeClass('is_fan').addClass('no_fan').html('become a fan!');
					$("#fan_counter").html($("#fan_counter").html() - 1);
				}
				else
					flash_message(xmlResult, 3);
			});
			
			return false;
		});
		
		$("#item_action_favorite a").live('click', function(){
			$.post('/ajax.php', { action: 'toggle_favorite', post_id: postingId}, function(data)
			{
				var xmlResult = data.getElementsByTagName('result')[0].firstChild.nodeValue;

				oToggleFavorite = document.getElementById('add_favorite');
				if (!oToggleFavorite)
					oToggleFavorite = document.getElementById('del_favorite');
				
				if (xmlResult == 'ADDED')
					oToggleFavorite.id = "del_favorite";
				else if (xmlResult == 'REMOVED')
					oToggleFavorite.id = "add_favorite";
				else
					flash_message(xmlResult, 3);
			});

			return false;
		});
		
				
		$("#invite_submit").live('click', function()
		{
			manage_invite_disable_input();
			
			oResults = document.getElementById('results_container');
			oResults.innerHTML = '';
			
			$('#services .service .checkbox input[type="checkbox"]').checked = false;
			$('#manage_invite #invite_submit').attr("disabled", true);
			$('#manage_invite #invite_submit').val('Searching...');

			for (i = 0; i < moby_svc_ids.length; i++)
			{
				serviceId = moby_svc_ids[i];
				serviceName = moby_svc_names[i];
				oCheckbox = document.getElementById('service_check_'+serviceId);
				
				if (oCheckbox.checked == true)
				{
					moby_svc_cid = i;
					manage_invite_fetch_friends(serviceId, serviceName);
					break;
				}
			}
			
			
			return false;

		});
		
		$("#manage_invite_selectall").live('click', function()
		{
			$('#manage_invite .result .checkbox input').attr('checked', 'checked');
		});
		
		function manage_invite_disable_input()
		{
			$('#manage_invite .checkbox_input').attr("disabled", true);
		}

		function manage_invite_fetch_friends(sServiceId, sServiceName)
		{
			$('#service_check_'+sServiceId).css('display', 'none');
			$('#service_loading_'+sServiceId).css('display', 'inline');
			$('#service_'+sServiceId+' .description').css('display', 'none');
			
			oUsername = document.getElementById('service_username_'+sServiceId);
			
			if (sServiceName == 'twitter')
				oUsername.innerHTML = 'Searching... (May take a while)';
			else
				oUsername.innerHTML = 'Searching...';
			
			$.post('/ajax.php', { action: 'service_get_friends', sid: sServiceId}, function(data)
			{
				var xmlResult = data.getElementsByTagName('result')[0].firstChild.nodeValue;
				var xmlServiceId = data.getElementsByTagName('service_id')[0].firstChild.nodeValue;
				
				xmlFriends = data.getElementsByTagName('friend');

				oResults = document.getElementById('results_container');
				
				serviceId = moby_svc_ids[moby_svc_cid];
				
				oUsername = document.getElementById('service_username_'+sServiceId);
				
				if (xmlFriends.length == 1)
					oUsername.innerHTML = 'Found <b>'+xmlFriends.length+'</b> friend';
				else if (xmlFriends.length > 1)
					oUsername.innerHTML = 'Found <b>'+xmlFriends.length+'</b> friends';
				else 
					oUsername.innerHTML = 'Found no friends';
				
				for (i = 0; i < xmlFriends.length; i++)
				{
					xmlFriend = xmlFriends.item(i);
					xmlFriendHtml = xmlGetNodeValue(xmlFriend, 'html');
					xmlFriendHash = xmlGetNodeValue(xmlFriend, 'hash');
					
					if (manage_invite_user_exists(xmlFriendHash) == false)
					{
						node = document.createElement('div');
						node.id = 'result_'+xmlFriendHash;
						node.innerHTML = xmlFriendHtml;
						
						oResults.appendChild(node);
						
						oResultSites = document.getElementById('sites_'+xmlFriendHash);
						nodeSiteResult = document.createElement('img');
						nodeSiteResult.src = 'http://layout.mobypicture.com/v1/button_service_'+moby_svc_names[moby_svc_cid]+'.gif';
						nodeSiteResult.id = 'site_'+xmlFriendHash+'_'+serviceId;
						oResultSites.appendChild(nodeSiteResult);
						
						$('#invite_add_friends_form').css('display', 'inline');
					}
					else
					{
						oResultSites = document.getElementById('sites_'+xmlFriendHash);
						nodeSiteResult = document.createElement('img');
						nodeSiteResult.src = 'http://layout.mobypicture.com/v1/button_service_'+moby_svc_names[moby_svc_cid]+'.gif';
						nodeSiteResult.id = 'site_'+xmlFriendHash+'_'+serviceId;
						oResultSites.appendChild(nodeSiteResult);
					}
				}
				
				oLoading = document.getElementById('service_loading_'+xmlServiceId);
				oLoading.style.display = 'none';
				
				moby_svc_cid = moby_svc_cid + 1;
				moby_svc_found = false;
					
				for (i = moby_svc_cid; i < moby_svc_ids.length; i++)
				{
					serviceId = moby_svc_ids[i];
					serviceName = moby_svc_names[i];
					oCheckbox = document.getElementById('service_check_'+serviceId);
					
					if (oCheckbox.checked == true)
					{
						moby_svc_cid = i;
						moby_svc_found = true;
						manage_invite_fetch_friends(serviceId, serviceName);
						break;
					}
				}
				
				if (moby_svc_found === false)
				{
					manage_invite_input(true);
					$('#manage_invite #invite_submit').attr("disabled", false);
					$('#manage_invite #invite_submit').val('Find your friends!');
				}
			});
		}
		
		function manage_invite_input(bEnabled)
		{
			if (bEnabled == true)
			{
				$('#services .checkbox_input').css('display', 'inline');
				$('#manage_invite .checkbox_input').attr("disabled", false);
			}
			else
			{
				$('#services .checkbox_input').css('display', 'none');
			}
		}
		
		function manage_invite_user_exists(sHash)
		{
			oUserRow = document.getElementById('result_'+sHash);
			if (oUserRow == undefined)
				return false;
			else
				return true;
		}
	
		$("#user_action_addfriend").live('click', function()
		{
			$.post('/ajax.php', { action: 'toggle_friend', user_id: postingUserId}, function(data)
			{
				var xmlResult = data.getElementsByTagName('result')[0].firstChild.nodeValue;
		
				if (xmlResult == 'ADDED')
				{
					oToggleFollowing = document.getElementById('user_action_addfriend');
					oToggleFollowing.innerHTML = 'Unfollow '+postingUsername;
					
					flash_message('You are now following '+postingUsername, 3);
				}
				else if (xmlResult == 'REMOVED')
				{
					oToggleFollowing = document.getElementById('user_action_addfriend');
					oToggleFollowing.innerHTML = 'Follow '+postingUsername;
					
					flash_message('You are no longer following '+postingUsername, 3);
				}
				else
				{
					flash_message(xmlResult, 3);
				}
			});

			return false;
		});
		
		$("#main_header_choose_language_link").click(function()
		{
			$("#navigationCountryList").fadeIn(200);
		});

		$("#main_header_choose_language_icon").click(function()
		{
			$("#navigationCountryList").fadeIn(200);
		});

		$('#twit_message').keyup(function() {
			var charLength = $(this).val().length;
			$('#twit_counter').html((140 - charLength) + ' characters left');
		});
		
		$("#twit_submit").click(function(){
			if ($("#twit_message").val().length > 140){
				alert("Your message is to long");
				return false;
			} else {
				$("#twitter_loader").fadeIn("slow");
				
				twitMessage = $("#twit_message").val();

				$.post('/ajax_twitter.php', { message: twitMessage, postID: postingId}, function(data){
					$("#twitter_loader").fadeOut("slow");
					$("#bookmark_twitter").slideUp('400');
					$("#twit_message").val('');
					bookmark_flash('Twitter message saved!');
				});
				return true;
			}
		});
		

		$("#comment_totwitter").click(function(){
			if ($("#poster_twitteraccount").val() != ""){
				if ($(this).is(":checked")) {
					if ($("#comment").val().substring(0,1) != "@"){
						$("#comment").val($("#poster_twitteraccount").val() + $("#comment").val());
					} 
				} else {
					accountLength = $("#poster_twitteraccount").val().length;
					
					if ($("#comment").val().substring(0,accountLength) == $("#poster_twitteraccount").val()){
						$("#comment").val($("#comment").val().substring(accountLength));
					} 
				}
			}
		});
	

		$("#service_hyves_enabled").change( function() 
		{
			if ($(this).is(":checked")) 
			{
				window.open('http://www.mobypicture.com/hyves_auth.php','hyvesauth','toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');
			}
		});
		

		$("#flickr_enabled").change( function() 
		{
			if ($(this).is(":checked")) 
			{
				window.open('http://www.mobypicture.com/flickr_auth.php','flickrauth','toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');
			}
		});

		$("#listview_style_list").click(function()
		{
			window.location = siteCurrentUrl + '/list';
		});

		$("#listview_style_grid").click(function()
		{
			window.location = siteCurrentUrl + '/grid';
		});
		
		$("#getblogs").click(function (){
			getBloggerId();
		});
		
		if($('#service_blogger_enabled'))
		{
		    if ($('#service_blogger_enabled').val() == '1')
			{
				repopulateBlogs($('#service_blogger_username').val());
			}
		}
		
		if($('#service_hyves_enabled'))
		{
		    if ($('#service_hyves_enabled').val() == '1')
			{
				services_hyves_populate_albums();
			}
		}
		
		$("#latest_updates_scroller_right #latest_nav_right img").fadeIn("medium");
		
		$("#latest_nav_right").click (function(){
			latestScroll(-1);
			return false;
		});
		
		$("#latest_nav_left").click (function(){
			latestScroll(1);
			return false;
		});
		
		$("#nav_loves_twitter_left").click (function(){
			twitterPanel(twitterCurrentPanel-1);
			return false;
		});
		
		$("#nav_loves_twitter_rigbt").click (function(){
			twitterPanel(twitterCurrentPanel+1);
			return false;
		});
	
		
		$("#user_view_item_title_header").click (function(){
			user_view_edit_title();
		});
		
		$("#user_view_item_description_text").click (function(){
			user_view_edit_description();
		});
		
		$("#item_action_delete #delete_post").click (function(){
			user_view_delete();
			return false;
		});
	
		$("#site_messages .flash").each(function(){
			$(this).after('<br class="clear" />');
			$(this).prepend('<div class="right"><a href="#" class="close">x</a></div>');
			
			
			if ($(this).children("input").val() != 0) {
				$(this).oneTime($(this).children("input").val() * 1000, function() {
					$(this).animate({height: 0, marginTop: 0, marginBottom: 0, paddingTop: 0, paddingBottom: 0, border: 0}, 1000, function(){$(this).next("br.clear").remove();$(this).hide();});
				});
			}
		});
		
		$('.close').live('click', function(){
			$(this).parent().parent().stopTime().animate({height: 0, marginTop: 0, marginBottom: 0, paddingTop: 0, paddingBottom: 0, border: 0}, 400, function(){$(this).next("br.clear").remove(); $(this).hide();});
			return false;
		});
		
		$("#bookmark_embed, #bookmark_directlink, .select_this").live('click', function(){
			$(this).focus();
			$(this).select();
		});
		
		$(".app_form #email_by_account").bind('click', function(){app_new_emailcheck();})
		
		$(".pic_viewer_left, .pic_viewer_right, .pic_viewer_pics_wrapper").live('click', function(){
			if (picViewerBussy == false){
				picViewerBussy = true;
				
				$picViewer = $(this).parents('.pic_viewer');
				$picWrapper = $picViewer.find('.pic_viewer_pics_wrapper');
				
				picWidth = $picViewer.width();
				
				currentMargin = $picWrapper.css('marginLeft').replace('px', '').replace(' ', '');
				if (currentMargin == 'auto')
					currentMargin = 0;
				
				totalPositions = $picWrapper.find("img").length;
				currentPosition = Math.floor(((currentMargin - picWidth) / picWidth) * -1);
		
				if ($(this).hasClass("pic_viewer_left"))
					newPosition = currentPosition - 1;
				else
					newPosition = currentPosition + 1;;
					
				if (newPosition > totalPositions)
					newPosition = 1;
				else if (newPosition == 0)
					newPosition = totalPositions;
				
				newMargin = ((newPosition * picWidth) * -1) + picWidth;
				
				$picViewer.find(".pic_viewer_counter").html(newPosition + " / " + totalPositions);
				
				$picWrapper.animate({marginLeft: newMargin}, 1000, null, function(){
					picViewerBussy = false;
				});
			}
			
			return false;
		});
		
		$("#app_add_catagory").bind('click', function(){
			$("#app_cat_chooser").show();
			$(this).blur();
			return false;
		});
		
		$("#app_hide_catagory").bind('click', function(){
			catCount = 0;
			$currentCats = $("#cats_current");
			
			$("#app_cat_chooser").hide();
			$currentCats.html('');
			$("#app_cat_chooser input").each(function(){
				if ($(this).is(":checked"))
				{
					catCount++;
					if (catCount > 1)
						$currentCats.append(", ");
					$currentCats.append($(this).next('label').html());
				}
			});
			
			if (catCount == 0)
				$currentCats.html('Please select your categories');
				
			return false;
		});
	});
	
	catCount = 0;
	picViewerBussy = false;
	
	function flash_message(message, timeout, location)
	{
		if (timeout === undefined){timeout = 0;}
		if (location === undefined){location = "#site_messages";}
		
		tempID = "flash_" + Math.round((Math.random() * 10000));
		
		$(location).append('<div class="hidden flash" id="' + tempID + '"><div class="right"><a href="#" class="close">x</a></div>' + message + '<br class="clear" /></div>');
		
		$("#" + tempID).slideDown(500, function(){
			if (timeout != 0)
			{
				$(this).oneTime(timeout * 1000, function() {
					$(this).animate({height: 0, marginTop: 0, marginBottom: 0, paddingTop: 0, paddingBottom: 0, border: 0}, 1000, function(){$(this).hide();});
				});
			}
		});
	}

	var twitterCurrentPanel;
	var twitterBusy = 0;
	twitterCurrentPanel = 1;
	
	function twitterPanel(directionPanel){
		if (twitterBusy == 0){
			twitterBusy = 1;
			
			if (directionPanel == 0) {
				directionPanel = 3;
			} else if (directionPanel == 4) {
				directionPanel = 1;
			}
			twitterCurrentPanel = directionPanel;
			
			newMargin = ((354 * twitterCurrentPanel) - 354) * -1;
			
			$("#loves_twitter_pics_wrapper").animate({marginLeft: newMargin}, 1000, null, function(){
				twitterBusy = 0;
			});
		}
	}
	
	var scrollerBusy;
	var scrollerMaxLoaded;
	var scrollerCurrentPage;
	var scrollDepth;
	var defaultScrollDepth;
	scrollerCurrentPage = 1;
	scrollerMaxLoaded = 4;
	scrollerBusy = 0;
	defaultScrollDepth = 714;
	
	function latestScroll(depth){
		if (scrollerBusy == 0) {
			scrollerBusy = 1;
			
			scrollDepth = defaultScrollDepth * depth;
			
			if (scrollDepth <= 0) {
				scrollerCurrentPage++;
			} else {
				scrollerCurrentPage--;
			}
			
			if (scrollerCurrentPage == scrollerMaxLoaded) {
				$("#scroller_loader").show();
				$.get("/ajax_scroller.php", { offset: ((scrollerMaxLoaded) * 7)+1 },
					function(data){
						$("#latest_updates_scroller").append(data);
						$("#scroller_loader").hide();
						scrollerMaxLoaded++;
						doScroll();
					}
				);
			} else {
				doScroll();
			}
		}
	}
	
	function doScroll(){
		currentMargin =  $("#latest_updates_scroller").css("marginLeft");
		currentMargin = currentMargin.replace(/-/, "");
		currentMargin = currentMargin.replace(/px/, "");
		currentMargin = currentMargin * - 1;
		
		newMargin = currentMargin + scrollDepth;
		
		if (newMargin >= 0) {
			newMargin = 0;
			//#latest_updates_scroller_left img
			scrollerCurrentPage = 1;
			$("#latest_updates_scroller_left img").fadeOut("medium");
		} else if (scrollerCurrentPage == 2) {
			$("#latest_updates_scroller_left img").fadeIn("medium");
		}
		
		$("#latest_updates_scroller").animate({marginLeft: newMargin}, 1500, null, function(){
			scrollerBusy = 0;
		});
	}
	
	function bookmark_flash(message){
		$("#bookmark_flash").hide();
		$("#bookmark_flash").html(message);
		$("#bookmark_flash").slideDown(400, function(){
			$("#bookmark_flash").animate({opacity: 1.0}, 1000).animate({height: 0, marginTop: 0, marginBottom: 0, paddingTop: 0, paddingBottom: 0, border: 0, opacity: 0}, 400, function(){
				$("#bookmark_flash").hide();
			})
		});
	}
	
	
	/* Dit kan vast veel makkelijker met jQuery, maar ja :P */
	/* Rob: whooo slowchat in de code! beschouw het als een egg.... */
	/* Voor de echte egg, ga naar: http://bit.ly/4kb77v */

	function user_view_delete()
	{
		var lResult; 

		lResult = window.confirm('Are you sure you want to delete this photo?');

		if (lResult === true)
		{
			var oSaveTitle = new MobyAjax(user_view_delete_callback, '/ajax', 'action=delete_post&post_id='+postingId, 'post');
	
			//oHeaderEdit = document.getElementById('user_view_item_title_edit');
			//oHeaderEdit.style.display = 'none';
			//oHeader = document.getElementById('user_view_item_title_header');
			//oHeader.innerHTML = 'saving...';
			//oHeader.style.display = 'block';
		}

		return false;
	}

	function user_view_delete_comment(lCid)
	{
		var lResult; 

		lResult = window.confirm('Are you sure you want to delete this comment?');

		if (lResult === true)
		{
			var oDeleteComment = new MobyAjax(user_view_delete_comment_callback, '/ajax', 'action=delete_comment&comment_id='+lCid, 'post');
		}

		return false;
	}

	function user_view_delete_comment_callback(oXml)
	{
		var xmlResult = oXml.getElementsByTagName('result')[0].firstChild.nodeValue;
		var xmlData = oXml.getElementsByTagName('data')[0].firstChild.nodeValue;

		if (xmlResult == 'OK')
		{
			$('#item_comment_'+xmlData).fadeOut(600);
		}
		else
		{
			flash_message('Could not delete this comment. Please try again later.', 3);
		}
	}
	
	function group_join()
	{
		oButton = document.getElementById('group_joinleave_button');
		oButton.disabled = true;
		var oJoinGroup = new MobyAjax(group_join_callback, '/ajax', 'action=join_group&group_id='+groupId, 'post');
	}

	function group_join_callback(oXml)
	{
		var xmlResult = oXml.getElementsByTagName('result')[0].firstChild.nodeValue;

		oButton = document.getElementById('group_joinleave_button');
		oButton.disabled = false;

		if (xmlResult == 'OK')
		{
			var xmlUsername = oXml.getElementsByTagName('username')[0].firstChild.nodeValue;
			var xmlUserid = oXml.getElementsByTagName('userid')[0].firstChild.nodeValue;
			var xmlAvatar = oXml.getElementsByTagName('avatar')[0].firstChild.nodeValue;

			oButton.value = 'leave group';
			oButton.onclick = function()
				{
					group_leave();
				};

			var oMemberItem = document.createElement('a');
			oMemberItem.href = '/user/'+xmlUsername;
			oMemberItem.id = 'group_member_'+xmlUserid;
			var oMemberImage = document.createElement('img');
			oMemberImage.src = xmlAvatar;
			oMemberImage.className = 'member';
			oMemberItem.appendChild(oMemberImage);

			oMembers = document.getElementById('group_members_list');

			//oMemberList = oMembers.getElementsByTagName('a');

			oMembers.insertBefore(oMemberItem, oMembers.firstChild);

			flash_message('Joined group.', 3);
		}
		else
		{
			var xmlData = oXml.getElementsByTagName('data')[0].firstChild.nodeValue;
			flash_message('Could not join this group. Please try again later.', 3);
		}
	}
	
	function group_leave()
	{
		oButton = document.getElementById('group_joinleave_button');
		oButton.disabled = true;
		var oJoinGroup = new MobyAjax(group_leave_callback, '/ajax', 'action=leave_group&group_id='+groupId, 'post');
	}

	function group_leave_callback(oXml)
	{
		var xmlResult = oXml.getElementsByTagName('result')[0].firstChild.nodeValue;

		oButton = document.getElementById('group_joinleave_button');
		oButton.disabled = false;

		if (xmlResult == 'OK')
		{
			var xmlUsername = oXml.getElementsByTagName('username')[0].firstChild.nodeValue;
			var xmlUserid = oXml.getElementsByTagName('userid')[0].firstChild.nodeValue;

			oMemberList = document.getElementById('group_members_list');
			oMemberItem = document.getElementById('group_member_'+xmlUserid);

			oButton = document.getElementById('group_joinleave_button');
			oButton.value = 'join group!';
			oButton.onclick = function()
				{
					group_join();
				};

			try
			{
				oMemberList.removeChild(oMemberItem);
			}
			catch (e)
			{

			}

			flash_message('Left group.', 3);
		}
		else
		{
			var xmlData = oXml.getElementsByTagName('data')[0].firstChild.nodeValue;
			flash_message('Could not leave this group. Please try again later.', 3);
		}
	}

	function activity_show(bId)
	{
		$('#list_item_content_comments_'+bId).toggle('slow');
	}


	function event_join()
	{
		oButton = document.getElementById('event_joinleave_button');
		oButton.disabled = true;
		var oJoinEvent = new MobyAjax(event_join_callback, '/ajax', 'action=join_event&event_id='+eventId, 'post');
	}

	function event_join_callback(oXml)
	{
		var xmlResult = oXml.getElementsByTagName('result')[0].firstChild.nodeValue;

		oButton = document.getElementById('event_joinleave_button');
		oButton.disabled = false;

		if (xmlResult == 'OK')
		{
			var xmlUsername = oXml.getElementsByTagName('username')[0].firstChild.nodeValue;
			var xmlUserid = oXml.getElementsByTagName('userid')[0].firstChild.nodeValue;
			var xmlAvatar = oXml.getElementsByTagName('avatar')[0].firstChild.nodeValue;

			oButton.value = 'leave event';
			oButton.onclick = function()
				{
					event_leave();
				};

			var oMemberItem = document.createElement('a');
			oMemberItem.href = '/user/'+xmlUsername;
			oMemberItem.id = 'event_member_'+xmlUserid;
			var oMemberImage = document.createElement('img');
			oMemberImage.src = xmlAvatar;
			oMemberImage.className = 'member';
			oMemberItem.appendChild(oMemberImage);

			oMembers = document.getElementById('event_members_list');
			oMembers.insertBefore(oMemberItem, oMembers.firstChild);

			flash_message('Joined event.', 3);
		}
		else
		{
			var xmlData = oXml.getElementsByTagName('data')[0].firstChild.nodeValue;
			flash_message('Could not join this event. Please try again later.', 3);
		}
	}
	
	
	function event_leave()
	{
		oButton = document.getElementById('event_joinleave_button');
		oButton.disabled = true;
		var oEventGroup = new MobyAjax(event_leave_callback, '/ajax', 'action=leave_event&event_id='+eventId, 'post');
	}

	function event_leave_callback(oXml)
	{
		var xmlResult = oXml.getElementsByTagName('result')[0].firstChild.nodeValue;
	
		oButton = document.getElementById('event_joinleave_button');
		oButton.disabled = false;

		if (xmlResult == 'OK')
		{
			var xmlUsername = oXml.getElementsByTagName('username')[0].firstChild.nodeValue;
			var xmlUserid = oXml.getElementsByTagName('userid')[0].firstChild.nodeValue;

			oMemberList = document.getElementById('event_members_list');
			oMemberItem = document.getElementById('event_member_'+xmlUserid);

			oButton = document.getElementById('event_joinleave_button');
			oButton.value = 'join event!';
			oButton.onclick = function()
				{
					event_join();
				};

			try
			{
				oMemberList.removeChild(oMemberItem);
			}
			catch (e)
			{

			}

			flash_message('Left event.', 3);
		}
		else
		{
			var xmlData = oXml.getElementsByTagName('data')[0].firstChild.nodeValue;
			flash_message('Could not leave this event. Please try again later.', 3);
		}
	}


	function user_view_delete_callback(oXml)
	{
		var xmlResult = oXml.getElementsByTagName('result')[0].firstChild.nodeValue;
		var xmlData = oXml.getElementsByTagName('data')[0].firstChild.nodeValue;

		if (xmlResult == 'OK')
		{
			window.location = '/user/'+xmlData;
		}
		else
		{
			flash_message('Could not delete this photo. Please try again later.', 3);
		}
	}
	
	function user_view_edit_title()
	{
		try
		{
			oHeader = document.getElementById('user_view_item_title_header');
			oHeaderEdit = document.getElementById('user_view_item_title_edit');
			oHeaderInput = document.getElementById('item_title_edit_input');
			oTitle = document.getElementById('user_view_item_title');

			oHeaderEdit.style.display = 'block';
			oHeaderInput.value = postingTitle;
			oTitle.className = 'item_title';
			oHeader.style.display = 'none';
			oHeaderInput.focus();
		}
		catch(err)
		{

		}
	}
		
	function user_view_edit_description()
	{
		try
		{
			oDescription = document.getElementById('user_view_item_description_text');
			oDescriptionEdit = document.getElementById('user_view_item_description_edit');
			oDescriptionEditInput = document.getElementById('item_description_edit_input');

			oDescriptionEdit.style.display = 'block';

			if (postingDescription.value == 'click here if you want to add a description and/or source to this photo')
				oDescriptionEditInput.value = '';
			else
				oDescriptionEditInput.value = postingDescription;

			oDescription.style.display = 'none';

			oDescriptionEditInput.focus();
		}
		catch(err)
		{

		}
	}
	
	function user_view_edit_title_callback(oXml)
	{
		var xmlResult = oXml.getElementsByTagName('result')[0].firstChild.nodeValue;
		var xmlTitleHtml = oXml.getElementsByTagName('data')[0];
		var xmlTitle = oXml.getElementsByTagName('dataextra')[0];

		if (xmlTitleHtml.childNodes.length == 0)
		{
			xmlTitleHtml = '';
			xmlTitle = '';
		}
		else
		{
			xmlTitleHtml = xmlTitleHtml.firstChild.nodeValue;
			xmlTitle = xmlTitle.firstChild.nodeValue;
		}

		try
		{
			if (xmlResult == 'OK')
			{
				oTitle = document.getElementById('user_view_item_title');
				oHeader = document.getElementById('user_view_item_title_header');
				postingTitle = xmlTitle;

				if (xmlTitle.length > 0)
				{
					oTitle.className = 'item_title';
					oHeader.innerHTML = xmlTitleHtml;
				}
				else
				{
					oTitle.className = 'item_title_empty';
					oHeader.innerHTML = 'click here if you want to add a description and/or source to this photo';
				}

			}
			else
			{
				flash_message('Could not change title', 3);
			}
		}
		catch(err)
		{

		}
	}

	function group_addpost_showgrouplist()
	{
		oGrouplist = document.getElementById('user_grouplist');
		oGrouplist.style.display = 'block';
	}
	
	function user_view_edit_description_callback(oXml)
	{
		var xmlResult = oXml.getElementsByTagName('result')[0].firstChild.nodeValue;
		var xmlDescriptionHtml = oXml.getElementsByTagName('data')[0];
		var xmlDescription = oXml.getElementsByTagName('dataextra')[0];

		if (xmlDescriptionHtml.childNodes.length == 0)
		{
			xmlDescriptionHtml = '';
			xmlDescription = '';
		}
		else
		{
			xmlDescriptionHtml = xmlDescriptionHtml.firstChild.nodeValue;		
			xmlDescription = xmlDescription.firstChild.nodeValue;	
		}

		if (xmlResult == 'OK')
		{
			oDescription = document.getElementById('user_view_item_description_text');
			oDescription.innerHTML = xmlDescriptionHtml;

			postingDescription = xmlDescription;

			if (xmlDescription.length > 0)
				oDescription.className = 'item_description';
			else
			{
				oDescription.className = 'item_description_empty';
				oDescription.innerHTML = 'click here if you want to add a description and/or source to this photo';
			}
		}
		else
		{
			flash_message('Could not change title: '+xmlResult, 3);
		}
	}
	
	function user_view_save_title(lPostId)
	{
		oHeaderInput = document.getElementById('item_title_edit_input');

		var oSaveTitle = new MobyAjax(user_view_edit_title_callback, '/ajax', 'action=save_title&post_id='+lPostId+'&title='+encodeURIComponent(oHeaderInput.value), 'post');
	
		oHeaderEdit = document.getElementById('user_view_item_title_edit');
		oHeaderEdit.style.display = 'none';
		
		oHeader = document.getElementById('user_view_item_title_header');
		oHeader.innerHTML = 'saving...';
		oHeader.style.display = 'block';
	}
	
	function user_view_cancel_title()
	{
		oHeaderEdit = document.getElementById('user_view_item_title_edit');
		oHeaderEdit.style.display = 'none';

		oTitle = document.getElementById('user_view_item_title');

		if (postingTitle.length == 0)
			oTitle.className = 'item_title_empty';
		else
			oTitle.className = 'item_title';
	
		oHeader = document.getElementById('user_view_item_title_header');
		oHeader.style.display = 'block';
	}
	
	function user_view_save_description(lPostId)
	{
		oDescriptionInput = document.getElementById('item_description_edit_input');

		var oSaveTitle = new MobyAjax(user_view_edit_description_callback, '/ajax', 'action=save_description&post_id='+lPostId+'&description='+encodeURIComponent(oDescriptionInput.value), 'post');
	
		oDescriptionEdit = document.getElementById('user_view_item_description_edit');
		oDescriptionEdit.style.display = 'none';
		
		oDescription = document.getElementById('user_view_item_description_text');
		oDescription.innerHTML = 'saving...';
		oDescription.style.display = 'block';
	}
	
	function user_view_cancel_description()
	{
		oDescription = document.getElementById('user_view_item_description_text');
		oDescriptionEdit = document.getElementById('user_view_item_description_edit');
		oDescriptionEditInput = document.getElementById('item_description_edit_input');

		if (oDescriptionEditInput.value == '')
			oDescription.innerHTML = 'click here if you want to add a description and/or source to this photo';

		oDescriptionEdit.style.display = 'none';
		oDescription.style.display = 'block';
	}
	
	function account_show_country_code(countryId)
	{
		countryCode = countryCallingCodes[countryId];
	
		oCountryCodeSpan = document.getElementById('account_country_code');
		oCountryCodeSpan.innerHTML = countryCode;
	}
	
	function signup_show_country_code(countryId)
	{
		countryCode = countryCallingCodes[countryId];
	
		oCountryCodeSpan = document.getElementById('register_country_code');
		oCountryCodeSpan.innerHTML = countryCode;
	}
	
	function navigation_search_focus()
	{
		oInput = document.getElementById('navigation_search_input');
		if (oInput.value == 'search for...')
		{
			oInput.value = '';
			oInput.className = 'searchBoxFilled';
		}
	}
 
	function navigation_search_blur()
	{
		oInput = document.getElementById('navigation_search_input');
		if (oInput.value.length == 0)
		{
			oInput.className = 'searchBoxEmpty';
			oInput.value = 'search for...';
		}
		else
		{
			oInput.className = 'searchBoxFilled';
		}
	}
	
	function navigation_search_user()
	{
		oInput = document.getElementById('navigation_search_user');
	
		if ((oInput.value != 'search for...') && (oInput.value != ''))
			window.location = '/user/'+urlencode(oInput.value);
	
		return false;
	}
	
	function user_view_fill_rating(lRating)
	{
		for (i = 1; i <= 5; i++)
		{
			oStar = document.getElementById('rating_star_'+i);
	
			if (i <= lRating)
				oStar.src = 'http://layout.mobypicture.com/v1/button_rating_filled.png';
			else
				oStar.src = 'http://layout.mobypicture.com/v1/static/layout/button_rating.png';
		}
	}
	
	function user_view_clear_rating()
	{
		for (i = 1; i <= 5; i++)
		{
			oStar = document.getElementById('rating_star_'+i);
			oStar.src = 'http://layout.mobypicture.com/v1/static/layout/button_rating.png';
		}
	}

	
	function services_hyves_populate_albums()
	{
		var oHyvesAlbums = new MobyAjax(services_hyves_populate_albums_callback, '/ajax', 'action=hyves_getalbums', 'post');
	}
	
	function services_hyves_populate_albums_callback(oXml)
	{
		var xmlResult = oXml.getElementsByTagName('result')[0].firstChild.nodeValue;
		var xmlAlbums = oXml.getElementsByTagName('album');
	
		if (xmlResult == 'OK')
		{
			oAlbumSelect = document.getElementById('services_hyves_albums');
			oAlbumSelect.innerHTML = '';
	
			for (i = 0; i < xmlAlbums.length; i++)
			{
				oAlbum = xmlAlbums[i];
	
				var oOption = document.createElement('option');
				oOption.value = oAlbum.getAttribute('id');
				oOption.innerHTML = oAlbum.getAttribute('title');
	
				if (service_hyves_albumid == oOption.value)
					oOption.selected = true;
	
				oAlbumSelect.appendChild(oOption);
			}
		}
	}

	

	function urlencode_utf8(string)
	{
		return escape(utf8encode(string));
	}
	
	function urldecode_utf8(string)
	{
		return utf8decode(unescape(string));
	}
	
	function utf8encode(string)
	{
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	}
	
	function utf8decode(string)
	{
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
 
		while ( i < utftext.length ) {
 
			c = utftext.charCodeAt(i);
 
			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
 
		}
 
		return string;
	}
	
	function urlencode(value)
	{
		var SAFECHARS = "0123456789" +					// Numeric
						"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
						"abcdefghijklmnopqrstuvwxyz" +
						"-_.!~*'()";					// RFC2396 Mark characters
		var HEX = "0123456789ABCDEF";
	
		var plaintext = value;
		var encoded = "";
		for (var i = 0; i < plaintext.length; i++ ) {
			var ch = plaintext.charAt(i);
		    if (ch == " ") {
			    encoded += "+";				// x-www-urlencoded, rather than %20
			} else if (SAFECHARS.indexOf(ch) != -1) {
			    encoded += ch;
			} else {
			    var charCode = ch.charCodeAt(0);
				if (charCode > 255) {
					encoded += "+";
				} else {
					encoded += "%";
					encoded += HEX.charAt((charCode >> 4) & 0xF);
					encoded += HEX.charAt(charCode & 0xF);
				}
			}
		} // for
	
		return encoded;
	}

	function urldecode(value)
	{
	   var HEXCHARS = "0123456789ABCDEFabcdef";
	   var encoded = value;
	   var plaintext = "";
	   var i = 0;
	   while (i < encoded.length)
	   {
	       var ch = encoded.charAt(i);
		   if (ch == "+")
		   {
		       plaintext += " ";
			   i++;
		   }
		   else if (ch == "%")
		   {
				if (i < (encoded.length-2)
						&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1
						&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 )
				{
					plaintext += unescape( encoded.substr(i,3) );
					i += 3;
				}
				else
				{
					plaintext += "%[ERROR]";
					i++;
				}
			}
			else
			{
			   plaintext += ch;
			   i++;
			}
		}
	   return plaintext;
	}

	function MobyAjax (callbackFunction, requestUrl, requestData, requestMethod)
	{
		var _callbackFunction = callbackFunction;
		var _requestObject;

		try { _requestObject = new ActiveXObject("Msxml2.XMLHTTP"); }
		catch (e) { try { _requestObject = new ActiveXObject("Microsoft.XMLHTTP"); }
		catch (e) { try { _requestObject = new XMLHttpRequest(); _requestObject.overrideMimeType("text/xml");; }
		catch (e) { _requestObject = false; }}}

		_requestObject.onreadystatechange = function()
		{
			if ((_requestObject.readyState == 4) && (_requestObject.status == 200))
			{
				_callbackFunction(_requestObject.responseXML);
			}
		}

		if (requestMethod == 'post')
			_requestObject.open('POST', requestUrl, true);
		else
		{
			if (requestData.length > 0)
				_requestObject.open('GET', requestUrl + '?' + requestData, true);
			else
				_requestObject.open('GET', requestUrl, true);
		}

		if (requestMethod == 'post')
		{
			_requestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			_requestObject.send(requestData);
		}
		else
		{
			_requestObject.send(null);
		}

		this.getNodeValue = function (obj, tag)
		{
			if(obj.getElementsByTagName(tag)[0].firstChild)
		    	return obj.getElementsByTagName(tag)[0].firstChild.nodeValue;
		    else
		    	return '';
		}
	}
	
	function xmlGetNodeValue(obj, tag)
	{
		if(obj.getElementsByTagName(tag)[0].firstChild)
	    	return obj.getElementsByTagName(tag)[0].firstChild.nodeValue;
	    else
	    	return '';
	}
	
	function playYoutubeVideo(searchFor, sImage)
	{
		$('#youtube_video').html('');

		
		
		

		var s1 = new SWFObject("http://www.mobypicture.com/static/flash/player.swf","ply","500","360","9","#FFFFFF");
		s1.addParam("allowfullscreen","true");
		s1.addParam("allownetworking","all");
		s1.addParam("allowscriptaccess","always");
		s1.addParam("flashvars","file=http://www.youtube.com/watch?v=RAfG3iKZAGA&feature=youtube_gdata&image="+sImage+'&autostart=true');
		s1.write("youtube_video");
				/*
				
		$.getJSON('http://gdata.youtube.com/feeds/api/videos?orderby=relevance&max-results=10&v=2&category=Music&format=5&client=mobypicture&alt=json-in-script&callback=?', {q: searchFor}, function(oResponse)
		{
			
			$totalResults = oResponse.feed.openSearch$totalResults.$t;
			
			if ($totalResults > 0)
			{
				oBestResult = oResponse.feed.entry[0];
				
				var s1 = new SWFObject("http://www.mobypicture.com/static/flash/player.swf","ply","500","360","9","#FFFFFF");
				s1.addParam("allowfullscreen","true");
				s1.addParam("allownetworking","all");
				s1.addParam("allowscriptaccess","always");
				s1.addParam("flashvars","file="+oBestResult.link[0].href+"&image="+sImage+'&autostart=true');
				s1.write("youtube_video");
			}
			/
			$.each(oResponse.feed.entry, function(i, item)
			{
				if (parseInt(item.id) > me.dataSourceMaxId)
					me.dataSourceMaxId = parseInt(item.id);
	
				me.callbackNewTweet(item.id, item.text, item.created_at, item.from_user, item.profile_image_url);
			});

			//me.dataTwitterCallback(oResponse)
		});*/
		
	}

	function htmlspecialchars(str) 
	{
		if (typeof(str) == "string") 
		{
			str = str.replace(/&/g, "&amp;"); /* must do &amp; first */
			str = str.replace(/"/g, "&quot;");
			str = str.replace(/'/g, "&#039;");
			str = str.replace(/</g, "&lt;");
			str = str.replace(/>/g, "&gt;");
		}
		return str;
	}
	
	
 	function googlePlusOneCallback(plusOne)
 	{
 		likeValue = (plusOne.state == 'on' ? 1 : 0);
		$.post('/ajax', { 
			action: 'addExternalLike', source: 'googleplus', url: plusOne.href, value: likeValue}, 
			function(data){}
		);
 	}
	

	function getFlashMovieObject(movieName)
	{
		if (window.document[movieName])
		{
			return window.document[movieName];
		}
	
		if (navigator.appName.indexOf("Microsoft Internet")==-1)
		{
			if (document.embeds && document.embeds[movieName])
				return document.embeds[movieName];
		}
		else
		{
			return document.getElementById(movieName);
		}
	} 
	
	
		if (!this.JSON) 
	{
	    this.JSON = {};
	}
	(function () 
	{
	    function f(n) 
	    {
	        return n < 10 ? '0' + n : n;
	    }
	
	    if (typeof Date.prototype.toJSON !== 'function') 
	    {
	        Date.prototype.toJSON = function (key) 
	        {
	
	            return isFinite(this.valueOf()) ?
	                   this.getUTCFullYear()   + '-' +
	                 f(this.getUTCMonth() + 1) + '-' +
	                 f(this.getUTCDate())      + 'T' +
	                 f(this.getUTCHours())     + ':' +
	                 f(this.getUTCMinutes())   + ':' +
	                 f(this.getUTCSeconds())   + 'Z' : null;
	        };
	
	        String.prototype.toJSON =
	        Number.prototype.toJSON =
	        Boolean.prototype.toJSON = function (key) {
	            return this.valueOf();
	        };
	    }
	
	    var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
	        escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
	        gap,
	        indent,
	        meta = {
	            '\b': '\\b',
	            '\t': '\\t',
	            '\n': '\\n',
	            '\f': '\\f',
	            '\r': '\\r',
	            '"' : '\\"',
	            '\\': '\\\\'
	        },
	        rep;
	
	
	    function quote(string) 
	    {
	        escapable.lastIndex = 0;
	        return escapable.test(string) ?
	            '"' + string.replace(escapable, function (a) {
	                var c = meta[a];
	                return typeof c === 'string' ? c :
	                    '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
	            }) + '"' :
	            '"' + string + '"';
	    }
	
	
	    function str(key, holder) 
	    {
	        var i,          
	            k,          
	            v,         
	            length,
	            mind = gap,
	            partial,
	            value = holder[key];
	
	        if (value && typeof value === 'object' &&
	                typeof value.toJSON === 'function')
	            value = value.toJSON(key);
	
	        if (typeof rep === 'function')
	            value = rep.call(holder, key, value);
	
	        switch (typeof value) {
	        case 'string':
	            return quote(value);
	
	        case 'number':
	
	            return isFinite(value) ? String(value) : 'null';
	
	        case 'boolean':
	        case 'null':
	
	            return String(value);
	
	        case 'object':
	
	            if (!value) {
	                return 'null';
	            }
	            
	            gap += indent;
	            partial = [];
	
	            if (Object.prototype.toString.apply(value) === '[object Array]') 
	            {
	                length = value.length;
	                for (i = 0; i < length; i += 1) 
	                {
	                    partial[i] = str(i, value) || 'null';
	                }
	
	                v = partial.length === 0 ? '[]' :
	                    gap ? '[\n' + gap +
	                            partial.join(',\n' + gap) + '\n' +
	                                mind + ']' :
	                          '[' + partial.join(',') + ']';
	                gap = mind;
	                return v;
	            }
	
	            if (rep && typeof rep === 'object') 
	            {
	                length = rep.length;
	                for (i = 0; i < length; i += 1) 
	                {
	                    k = rep[i];
	                    if (typeof k === 'string') 
	                    {
	                        v = str(k, value);
	                        if (v) 
	                        {
	                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
	                        }
	                    }
	                }
	            } 
	            else 
	            {
	                for (k in value) 
	                {
	                    if (Object.hasOwnProperty.call(value, k)) 
	                    {
	                        v = str(k, value);
	                        if (v) 
	                        {
	                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
	                        }
	                    }
	                }
	            }
	
	            v = partial.length === 0 ? '{}' :
	                gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' +
	                        mind + '}' : '{' + partial.join(',') + '}';
	            gap = mind;
	            return v;
	        }
	    }
	
	    if (typeof JSON.stringify !== 'function') 
	    {
	        JSON.stringify = function (value, replacer, space) 
	        {
	            var i;
	            gap = '';
	            indent = '';
	
	            if (typeof space === 'number') 
	            {
	                for (i = 0; i < space; i += 1) 
	                {
	                    indent += ' ';
	                }
	            } 
	            else if (typeof space === 'string') 
	            {
	                indent = space;
	            }
	
	            rep = replacer;
	            if (replacer && typeof replacer !== 'function' &&
	                    (typeof replacer !== 'object' ||
	                     typeof replacer.length !== 'number')) 
				{
	                throw new Error('JSON.stringify');
	            }
	
	            return str('', {'': value});
	        };
	    }
	
	    if (typeof JSON.parse !== 'function') 
	    {
	        JSON.parse = function (text, reviver) 
	        {
	            var j;
	
	            function walk(holder, key) 
	            {
	                var k, v, value = holder[key];
	                if (value && typeof value === 'object') 
	                {
	                    for (k in value) 
	                    {
	                        if (Object.hasOwnProperty.call(value, k)) 
	                        {
	                            v = walk(value, k);
	                            if (v !== undefined) 
	                            {
	                                value[k] = v;
	                            } 
	                            else 
	                            {
	                                delete value[k];
	                            }
	                        }
	                    }
	                }
	                return reviver.call(holder, key, value);
	            }
	
	            cx.lastIndex = 0;
	            if (cx.test(text)) 
	            {
	                text = text.replace(cx, function (a) 
	                {
	                    return '\\u' +
	                        ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
	                });
	            }
	
	            if (/^[\],:{}\s]*$/.
	test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').
	replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
	replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) 
				{
	                j = eval('(' + text + ')');
	
	                return typeof reviver === 'function' ?
	                    walk({'': j}, '') : j;
	            }
	
	            throw new SyntaxError('JSON.parse');
	        };
	    }
	}());

