
var cloud_message_top       = 0;
var cloud_message_left      = 0;
var tagging_enabled         = false;
var cloud_massaging_enabled = false
var images_stack            = new Array();
var current_offset          = 0;
var prev_offset             = 0;
var next_offset             = 0;
var images_nr               = 0;
var img_offset;
var url_vars                = getUrlVars();

var type    = "photo";
var type_id = 0;

$(function() {
	initUserForm();
});

if(url_vars["photo-id"] != undefined) {
	$(function() {
		if(typeof(my_user_id) == "undefined") {
			my_user_id = 0;
		}
		cloud_message_top = 0;
		cloud_message_left = 0;
		tagging_enabled = false;
		cloud_massaging_enabled = false;
		console.log(images_stack);
		images_stack = new Array();
		images_stack.push(url_vars["photo-id"]);
		images_nr = 1;
		setPrevNextOffset();
		show_gallery(0);
	});
}

$(".show-image-gallery").live("click", function() {
	$(".scroll-top").click();
	var albumid = $(this).attr("albumid");
	var imageid = $(this).attr("rel");
	images = $("[albumid="+albumid+"]");
	if(images.length > 0) {
		images_nr = images.length;
		var current_stack = new Array();
		var loop = 0; 
		$(images).each(function() {
			current_stack[loop] = $(this).attr("rel");
			if(imageid == $(this).attr("rel")) {
				current_offset = loop;
			}
			loop++;
		});
		images_stack = current_stack;
	} else {
		var current_stack = new Array();
		current_stack[0] = $(this).attr("rel");
		current_offset = 0;
		images_stack = current_stack;
	}
	if(typeof(my_user_id) == "undefined") {
		my_user_id = 0;
	}
	cloud_message_top = 0;
	cloud_message_left = 0;
	tagging_enabled = false;
	cloud_massaging_enabled = false
	show_gallery(current_offset);
});

function getRedirectUrl() {
	if(type == "photo") {
		return getCurrentPhotoUrl();
	} else {
		return pending_url;
	}
}

function getCurrentPhotoUrl() {
	return http+"?params=en/photo/view/"+images_stack[current_offset];
}

function show_gallery(stack_offset) {
	current_offset = stack_offset;
	initHtml(stack_offset);
	loadImage();
	
}

function initHtml(stack_offset) {
	var html = '<div id="gallery-overlay"></div>';
	html += '<div id="photo-gallery">';
	html += '<div class="photo-container">';
	// alert(offset);
	setPrevNextOffset();

	// close button
	html += '<a id="close-gallery" class="close-button pointer" title="Close">&nbsp;</a>';

	// prev
	html += '<a class="prev pointer" id="prev-photo" rel="'+prev_offset+'">&nbsp;</a>';
	html += '<div class="cloud-message-container">';

	// image
	html += '<div id="large-photo-container">';
	html += '<table>';
	html += '<tr>';
	html += '<td style="vertical-align: middle; text-align: center; width: 600px; height: 400px;">';
	html += '<img id="large-photo" alt="photo" src="" />';
	html += '</td>';
	html += '</tr>';
	html += '</table>';
	html += '</div>';

	// cloud message form
	if(user_logged_id()) {
		html += '<div class="cloud-message-form cloud-message-form-left" style="display: none;">';
		html += '<div class="cloud-message-form-elements">';
		html += '<textarea rows="4" cols="15" id="cloud-message-description"></textarea>';
		html += '<a class="turn-right pointer"></a>';
		html += '<a class="turn-left pointer"></a>';
		html += '<a class="hide-cloud-message-form pointer"></a>';
		html += '<a class="submit-cloud-message-form pointer"></a>';
		html += '</div>';
		html += '</div>';
	}

	// tagging form
	if(user_logged_id()) {
		html += '<div class="tagging-form" style="display: none;">';
		html += '<input type="text" id="tag-people" />';
		html += '</div>';
	}

	// cloud message texts
	html += '<div class="cloud-message-texts">';
	html += '</div>';

	// image tags
	html += '<div class="image-tags">';
	html += '</div>';

	html += '</div>';

	// next
	html += '<a class="next pointer" id="next-photo" rel="'+next_offset+'">&nbsp;</a>';
	html += '</div><!-- END photo-container -->';

	// tag cloud message links
	html += '<div class="tag-pane">';
	// if(user_logged_id()) {
		html += '<a title="Tag this photo" class="tag-photo tag-people pointer">Start Tagging</a>';
		html += '<a title="Tag this photo" class="tag-photo leave-cloud-message pointer">Create Cloud</a>';
	// }
	
	// share options
	// if(user_logged_id()) {
		// var url = getCurrentPhotoUrl();
		html += '<ul class="share">';
		// html += '<li class="facebook"><a href="javascript:void(window.open(\'http://www.facebook.com/sharer/sharer.php?u='+url+'\',\'ptm\',\'height=450,width=550\').focus())"><img src="'+images_dir+'gallery/facebook_share.png" /></a></li>'
		// html += '<li class="twitter"><a href="javascript:void(window.open(\'http://twitter.com/home?status=Currently reading '+url+'\',\'ptm\',\'height=450,width=550\').focus())"><img src="'+images_dir+'gallery/twitter_share.png" /></a></li>'
		// html += '<li class="myspace"><a href="javascript:void(window.open(\'http://www.myspace.com/Modules/PostTo/Pages/?u='+url+'\',\'ptm\',\'height=450,width=550\').focus())"><img src="'+images_dir+'gallery/myspace_share.png" /></a></li>';
		// html += '<li class="google-plus"><a onclick=" window.open(\'https://m.google.com/app/plus/x/?v=compose&content='+url+'\',\'gplusshare\',\'width=450,height=300,left='+(screen.availWidth/2-225)+',top='+(screen.availHeight/2-150)+'\'); return false;" href="'+url+'"><img src="'+images_dir+'gallery/google_plus_share.png" /></a></li>';
		html += '</ul>';
	// }
	html += '</div><!-- END tag-pane -->';
	// tagged users names
	html += '<div id="tagged-users">';
	html += '<ul></ul>';
	html += '</div>';


	// left side
	html += '<div class="comments-container">';
	html += '<div class="comment-tools">';
	html += '<ul>';
	html += '<li class="first"><span class="by">By</span><a title="user" href="#" id="photo-creator" class="user"></a></li>';
	html += '<li><a title="Download" id="download-photo" href="">Download</a></li>';
	html += '<li><a title="" id="i-was-there" href=""></a></li>';
	html += '<li>';

	html += '</li>';
	html += '</ul>';
	html += '</div><!-- END comment-tools -->';

	// cloud message users avatars
	html += '<div class="list-users" id="cloud-message-users">';
	
	html += '<a class="cloud-prev"></a>';
	html += '<div class="scrollable">';
	html += '<ul class="items">';
	html += '</ul>';
	html += '</div>';
	html += '<a class="cloud-next"></a>';
			
	// html += '<span class="comment-header">Cloud Messaging</span>';
	// html += '<ul>';
	// html += '</ul>';
	html += '</div><!-- END list-users -->';
	// $().ready(function() {
	// 	$("#cloud-message-users").scrollable({next: ".cloud-next", prev: ".cloud-prev"});
	// });
	
	// image comments
	html += '<div class="comments-holder">';
	// if(user_logged_id()) {
		html += '<span class="comment-header">Comments -- </span><a class="add-desc pointer" id="add-comment">Add a comment</a>';
	// }
	html += '<ul class="comments">';
	html += '</ul>';

	// comment form
	if(user_logged_id()) {
		html += '<div id="post-comment-form" style="display: none;">';
		html += '<h2>Add a comment</h2>';
		html += '<textarea id="comment-description"></textarea>';
		html += '<ul class="post-comment-links">';
		html += '<li id="submit-comment"><a>Submit</a></li>';
		html += '<li id="cancel-comment"><a>Cancel</a></li>';
		html += '</ul>';
		html += '</div>';
	}

	html += '</div><!-- END comments-holder -->';
	html += '</div><!-- END comments-container -->';


	html += '</div>';

	// html += '<div id="img-comments">';
	// html += '</div>';

	$(".pop-up-window").remove();
	$("body").append('<div class="pop-up-window"></div>');
	$(".pop-up-window").html(html);
	
	$("body").append('<div class="pop-up-window"></div>');
	
}

// handle keyboard clicks
$.fn.returnPress = function(x) {
	return this.each( function() {
		$(this).keypress( function(e) {
			if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
				x();
				return false;
			} else {
				return true;
			}
		});
	});
};
$.fn.escPress = function(x) {
	return this.each( function() {
		$(this).keypress( function(e) {
			if ((e.which && e.which == 27) || (e.keyCode && e.keyCode == 27)) {
				x();
				return false;
			} else {
				return true;
			}
		});
	});
};
$("#close-gallery").live("click", function() {
	$(".pop-up-window").html("");
})
// handle image clicks
$(".cloud-message-container img").live("click", function(e) {
	if(cloud_massaging_enabled) {
		showCloudMessageForm(e);
	} else if(tagging_enabled) {
		showTaggingForm(e);
	}
});
// image tag hover
$(".cloud-message-container .image-tag").live("mouseover", function() {
	if(!tagging_enabled) {
		$(this).find(".image-tag-outter-border").hide();
		$(this).find(".image-tag-username").show();
		$(this).css("opacity", 1);
	}
}
);

$(".cloud-message-container .image-tag").live("mouseleave", function() {
	$(this).find(".image-tag-outter-border").show();
	$(this).css("opacity", 0);
}
);

$("#tagged-users ul li a").live("mouseover", function() {
	if(!tagging_enabled) {
		$(".image-tag-"+$(this).attr("rel")).find(".image-tag-username").hide();
		$(".image-tag-"+$(this).attr("rel")).find(".image-tag-outter-border").show();
		$(".image-tag-"+$(this).attr("rel")).css("opacity", 1);
	}
}
);

$("#tagged-users ul li a").live("mouseleave", function() {
	$(".image-tag-"+$(this).attr("rel")).find(".image-tag-username").show();
	$(".image-tag-"+$(this).attr("rel")).css("opacity", 0);
}
);

$("#i-was-there").live("click", function() {
	if(!user_logged_id()) {
		show_login_form(getRedirectUrl());
	} else {
		var rel = $(this).attr("rel");
		if(rel == 0) {
			sendIWasNotThere();
		} else {
			sendIWasThere();
		}
	}
	return false;
}
);

function prepare_tagging(element) {
	$(".cloud-message-container img").css("cursor", "crosshair");
	$(".cloud-message-container img").css("position", "relative");
	$(".cloud-message-container img").css("z-index", "2000");

	if($(element).hasClass("tag-people")) {
		tagging_enabled         = true;
		cloud_massaging_enabled = false;
		$(element).html("Finish Tagging");
	} else if($(element).hasClass("leave-cloud-message")) {
		tagging_enabled         = false;
		cloud_massaging_enabled = true;
		$(element).html("Finish");
	}
}

function finish_tagging(element) {
	$(".cloud-message-container img").css("cursor", "auto");
	$(".cloud-message-container img").css("position", "static");
	$(".cloud-message-container img").css("z-index", "auto");

	// alert('finish tagging');
	if($(element).hasClass("tag-people")) {
		// alert("if");
		$(".tagging-form").hide();
		tagging_enabled = false;
		loadImageTags();
		$(element).html("Start Tagging");
	} else if($(element).hasClass("leave-cloud-message")) {
		// alert("else");
		// cloud_massaging_enabled = false;
		$(".cloud-message-form").hide();
		if(!cloud_massaging_enabled) {
			// alert("false");
			cloud_massaging_enabled = true;
			$(".cloud-message-container img").css("cursor", "crosshair");
			$(this).html("Finish");
		} else {
			// alert("true");
			$(".cloud-message-container img").css("cursor", "auto");
			// alert($(".cloud-message-new").length);
			if($(".cloud-message-new").length > 0) {

				var params = "fun=rvPostCloudMessage&imgId="+type_id+"&userId="+my_user_id;
				var loop = 0;
				$(".cloud-message-new").each( function() {
					var left_css = $(this).css("left");
					var top_css = $(this).css("top");
					var direction = '';
					if($(this).hasClass("cloud-message-text-right")) {
						direction = 'right';
					} else {
						direction = 'left';
					}
					params += '&clouds['+loop+'][message]='+$(this).find("p.description").html();
					params += '&clouds['+loop+'][left]='+parseInt(left_css.substr(0, left_css.length-2));
					params += '&clouds['+loop+'][top]='+parseInt(top_css.substr(0, top_css.length-2));
					params += '&clouds['+loop+'][direction]='+direction;
					loop++;
				});
				$.ajax({
					type: "POST",
					url: "?params=en/cloud-message/ajax",
					data: params, // "fun=rvPostCloudMessage&imgId="+type_id+"&userId=&message="+message+"&top="+top+"&left="+left,
					dataType: "html",
					success: function(_response) {
						loadCloudMessages();
					}
				});
			}
			cloud_massaging_enabled = false;
			$(this).html("Create Cloud");
		}

		//loadCloudMessages();
		$(element).html("Create Cloud");
	}
}

$(".tag-people").live("click", function() {
	if(!user_logged_id()) {
		show_login_form(getRedirectUrl());
	} else {
		if(!cloud_massaging_enabled) {
			if(!tagging_enabled) {
				prepare_tagging($(this));
			} else {
				finish_tagging($(this));
			}
		}
	}
});
$(".cloud-message-form .turn-left").live("click", function() {
	$(".cloud-message-form").removeClass("cloud-message-form-right");
	$(".cloud-message-form").addClass("cloud-message-form-left");
});
$(".cloud-message-form .turn-right").live("click", function() {
	$(".cloud-message-form").removeClass("cloud-message-form-left");
	$(".cloud-message-form").addClass("cloud-message-form-right");
});
$(".hide-cloud-message-form").live("click", function() {
	cancelSendingCloudMessage();
});
$(".submit-cloud-message-form").live("click", function() {
	var form = $(".cloud-message-form");
	var left = $(form).css("left");
	var top = $(form).css("top");
	var direction_cls = '';
	if($(form).hasClass("cloud-message-form-left")) {
		direction_cls = 'cloud-message-text-left';
	} else {
		direction_cls = 'cloud-message-text-right';
	}
	var new_cloud_html = '<div style="visibility: visible; left: '+left+'; top: '+top+';" class="cloud-message-new cloud-message-text '+direction_cls+'">';
	new_cloud_html += '<p class="description">'+$("#cloud-message-description").val()+'</p></div>';
	$(".cloud-message-texts").prepend(new_cloud_html);
	$( ".cloud-message-new" ).draggable({
		containment: $("#large-photo").parent(),
		cursor: "move"
	});
	$(form).val("");
	$(form).hide();
});
$(".leave-cloud-message").live("click", function() {
	if(!user_logged_id()) {
		show_login_form(getRedirectUrl());
	} else {
		if(!tagging_enabled) {
			if(!cloud_massaging_enabled) {
				prepare_tagging($(this));
			} else {
				finish_tagging($(this));
			}
		}
	}
});
$("#cloud-message-users ul li a").live("mouseover", function() {
	var rel	= $(this).attr("rel");
	$(".cloud-message-"+rel).css("opacity", 1);
}
);
$("#cloud-message-users ul li a").live("mouseleave", function() {
	var rel	= $(this).attr("rel");
	$(".cloud-message-"+rel).css("opacity", 0);
}
);

// handle comment clicks
$("#add-comment").live("click", function() {
	if(!user_logged_id()) {
		show_login_form(getCurrentPhotoUrl());
	} else {
		$("#post-comment-form").show();
		$("#comment-description").val("");
		$("#comment-description").focus();
	}
});

$("#cancel-comment").live("click", function() {
	$("#post-comment-form").hide();
});

$("#submit-video-comment").live("click", function() {
	var description = $("#comment-description").val();
	$("#comment-description").val('');
	$.ajax({
		type: "POST",
		url: "?params=en/comment/ajax",
		data: "fun=rvPostVideoComment&videoId="+type_id+"&description="+description,
		dataType: "html",
		success: function(_response) {
			var obj = $.parseJSON(_response);

			buildHtml ='<li>';
			buildHtml +='<span class="left">';
			buildHtml +='<span class="date">'+obj[0].time+'</span>';
			buildHtml +='<span class="frame">';
			// buildHtml +='<img src="'+images_dir+'gallery/img_frame.png" alt="Image Frame" class="img-frame">';
			buildHtml +='<img src="'+obj[0].avatar_url+'" alt="Avatar" class="avatar">';
			buildHtml +='</span>';
			buildHtml +='</span>';
			buildHtml +='<span class="right">';
			buildHtml +='<a class="like" title="Like this comment" rel="'+obj[0].id+'">Like</a>';
			buildHtml +='<span class="comment">'+obj[0].description+'</span>';
			buildHtml +='</span>';
			buildHtml +='</li>';

			$("ul.comments").prepend(buildHtml);
		}
	});
});

$("#submit-comment").live("click", function() {
	var description = $("#comment-description").val();
	$("#comment-description").val('');
	$.ajax({
		type: "POST",
		url: "?params=en/comment/ajax",
		data: "fun=rvPostComment&imgId="+type_id+"&userId="+my_user_id+"&description="+description,
		dataType: "html",
		success: function(_response) {
			var obj = $.parseJSON(_response);

			buildHtml ='<li>';
			buildHtml +='<span class="left">';
			buildHtml +='<span class="date">'+obj[0].time+'</span>';
			buildHtml +='<span class="frame">';
			buildHtml +='<img src="'+images_dir+'gallery/img_frame.png" alt="Image Frame" class="img-frame">';
			buildHtml +='<img src="'+obj[0].avatar_url+'" alt="Avatar" class="avatar">';
			buildHtml +='</span>';
			buildHtml +='</span>';
			buildHtml +='<span class="right">';
			buildHtml +='<a class="like" title="Like this comment" rel="'+obj[0].id+'">Like</a>';
			buildHtml +='<span class="comment">'+obj[0].description+'</span>';
			buildHtml +='</span>';
			buildHtml +='</li>';

			$("ul.comments").prepend(buildHtml);
		}
	});
});

$(".like, .dislike").live("click", function() {
	var like = $(this);
	if($(this).hasClass("like")) {
		var fun = "rvLikeComment";
	} else {
		var fun = "rvDislikeComment";
	}
	var comment_id = $(this).attr("rel");
	$.ajax({
		type: "POST",
		url: "?params=en/like/ajax",
		data: "fun="+fun+"&commentId="+comment_id+"&userId="+my_user_id,
		dataType: "html",
		success: function(_response) {
			if($(like).hasClass("like")) {
				$(like).addClass("dislike");
				$(like).removeClass("like");
				$(like).html("Unlike");
			} else {
				$(like).addClass("like");
				$(like).removeClass("Unlike");
				$(like).html("Like");
			}
		}
	});
});

function setPrevNextOffset() {
	if(images_nr > 1) {
		prev_offset = (current_offset-1)%images_nr;
		next_offset = (current_offset+1)%images_nr;
		
		if(prev_offset < 0) prev_offset += images_nr;
	} else {
		current_offset = 0
		prev_offset    = 0;
		next_offset    = 0;
	}
}

$("#prev-photo").live("click", function() {
	if(tagging_enabled) {
		alert("Please finish tagging");
	} else if(cloud_massaging_enabled) {
		alert("Please finish cloud messagging");
	} else {
		current_offset = prev_offset;
		loadImage();
	}
});

$("#next-photo").live("click", function() {
	if(tagging_enabled) {
		alert("Please finish tagging");
	} else if(cloud_massaging_enabled) {
		alert("Please finish cloud messagging");
	} else {
		current_offset = next_offset;
		loadImage();
	}
});

function setImageMargins() {
	
}

function loadImage() {
	var el = $(this);
	if(current_offset == undefined) {
		current_offset = 0;
	}
	var imgid = images_stack[current_offset];
	$.ajax({
		type: "POST",
		url: http+"?params=en/photo/ajax",
		data: "fun=rvGetPhotoById&photoId="+imgid,
		dataType: "html",
		success: function(_response) {
			var obj = $.parseJSON(_response);
			var large_image_container_height = 418;
			type_id = obj.id;
			$("#large-photo").attr("src", obj.image_url);
			/*
			$("#large-photo").ready(function() {
				var margin_top = (large_image_container_height-parseInt($("#large-photo").height()))/2;
				$("#large-photo").css('margin-top', margin_top);
			});
			*/
			
			setPrevNextOffset();
			$("#download-photo").attr("href", obj.image_url);

			// load creator
			loadCreator(obj.creator);
			
			// fetch comments
			$("#large-photo").attr("rel", obj.id);
			loadComments();

			// fetch cloud messages
			loadCloudMessages();
			loadImageTags();

			// i was there
			initWasThere();
			
			// share buttons
			initSocialNetworksSharing();
		}
	});
}

function initSocialNetworksSharing() {
	var url = getCurrentPhotoUrl();
	var html = '';
	html += '<li class="facebook"><a href="javascript:void(window.open(\'http://www.facebook.com/sharer/sharer.php?u='+url+'\',\'ptm\',\'height=450,width=550\').focus())"><img src="'+images_dir+'gallery/facebook_share.png" /></a></li>'
	html += '<li class="twitter"><a href="javascript:void(window.open(\'http://twitter.com/home?status=Currently reading '+url+'\',\'ptm\',\'height=450,width=550\').focus())"><img src="'+images_dir+'gallery/twitter_share.png" /></a></li>'
	html += '<li class="myspace"><a href="javascript:void(window.open(\'http://www.myspace.com/Modules/PostTo/Pages/?u='+url+'\',\'ptm\',\'height=450,width=550\').focus())"><img src="'+images_dir+'gallery/myspace_share.png" /></a></li>';
	html += '<li class="google-plus"><a onclick=" window.open(\'https://m.google.com/app/plus/x/?v=compose&content='+url+'\',\'gplusshare\',\'width=450,height=300,left='+(screen.availWidth/2-225)+',top='+(screen.availHeight/2-150)+'\'); return false;" href="'+url+'"><img src="'+images_dir+'gallery/google_plus_share.png" /></a></li>';
	
	$("#photo-gallery ul.share").html(html);
}

function initWasThere() {
	$.ajax({
		type: "POST",
		url: "?params=en/i-was-there/ajax",
		data: "fun=rvCheckIWasThere&type="+type+"&typeId="+type_id,
		dataType: "html",
		success: function(_response) {
			var obj = $.parseJSON(_response);
			element = $("#i-was-there");
			if(obj.msg==0) {
				$(element).html("I was not there");
				$(element).attr("rel", 0);
			} else {
				$(element).html("I was there");
				$(element).attr("rel", 1);
			}
		}
	});
}

function sendIWasThere() {
	$.ajax({
		type: "POST",
		url: "?params=en/i-was-there/ajax",
		data: "fun=rvIWasThere&type="+type+"&typeId="+type_id,
		dataType: "html",
		success: function(_response) {
			var obj = $.parseJSON(_response);
			element = $("#i-was-there");
			$(element).html("I was not there");
			$(element).attr("rel", 0);
		}
	});
}

function sendIWasNotThere() {
	$.ajax({
		type: "POST",
		url: "?params=en/i-was-there/ajax",
		data: "fun=rvIWasNotThere&type="+type+"&typeId="+type_id,
		dataType: "html",
		success: function(_response) {
			var obj = $.parseJSON(_response);
			element = $("#i-was-there");
			$(element).html("I was there");
			$(element).attr("rel", 1);
		}
	});
}

function loadVideoTags() {
	$.ajax({
		type: "POST",
		url: "?params=en/tag/ajax",
		data: "fun=rvGetVideoTags&videoId="+type_id,
		dataType: "html",
		success: function(_response) {
			var obj = $.parseJSON(_response);
			var users_tagged_id = new Array();
			var buildHtml = '';
			if(obj.msg != 1) {
				for(var i in obj) {
					var arr = new Array();
					arr["id"] = obj[i].id;
					arr["user_id"] = obj[i].tagged_user_id;
					arr["username"] = obj[i].username;
					users_tagged_id[i] = arr;
				}
			}
			
			$(".image-tags").html(buildHtml);

			var buildHtmlUsers = '';
			var loop = 0;
			if(users_tagged_id.length > 0) {
				for(var i in users_tagged_id) {
					buildHtmlUsers += '<li>';
					if(loop > 0) {
						buildHtmlUsers += ', ';
					}
					buildHtmlUsers += '<a href="'+getUserProfileLink(users_tagged_id[i]["user_id"])+'" class="pointer" rel="'+users_tagged_id[i]["id"]+'">';
					buildHtmlUsers += '<span>';
					buildHtmlUsers += users_tagged_id[i]["username"];
					buildHtmlUsers += '</span>';
					buildHtmlUsers += '</a>';
					buildHtmlUsers += '</li>';
					loop++;
				}
			}
			$("#tagged-users ul").html(buildHtmlUsers);

			$(document).ready( function() {
				$.ajax({

					type: "POST",
					url: "?params=en/user/ajax",
					data: "fun=rvGetVideoTaggingFriends&videoId="+type_id,
					dataType: "html",
					success: function(_response) {
						var obj = $.parseJSON(_response);
						var users = new Array();
						var source = new Array();
						for(var i in obj) {
							users[obj[i].username] = obj[i].id;
							source.push(obj[i].username);
						}
						
						$("#tag-people").autocomplete({
							source: source,
							select: function(event, ui) {
								sendVideoTag(users[ui.item.value]);
							}
						});
					}
				});
			});
		}
	});
}

function loadImageTags() {
	imgId = $("#large-photo").attr("rel");
	$.ajax({

		type: "POST",
		url: "?params=en/tag/ajax",
		data: "fun=rvGetImageTags&imgId="+imgId,
		dataType: "html",
		success: function(_response) {
			var obj = $.parseJSON(_response);
			var users_tagged_id = new Array();
			var buildHtml = '';
			if(obj.msg != 1) {
				for(var i in obj) {
					var img_width = 600;
					var img_height = 400;
					var tag_width = 86;
					var tag_height = 86;
					
					var left = obj[i].left-tag_width/2;
					var top  = obj[i].top-tag_height/2
					
					if(left < 0) left = 0;
					if(top < 0) top = 0;
					
					var img_parent_width  = $("#large-photo").parent().width();
					var img_parent_height = $("#large-photo").parent().height();
					var img_width         = $("#large-photo").width();
					var img_height        = $("#large-photo").height();
					
					left = (img_parent_width - img_width)/2+left;
					top  = (img_parent_height - img_height)/2+top;
					
					buildHtml +='<div';
					buildHtml +=' class="image-tag-'+obj[i].id+' image-tag"';
					buildHtml +=' style="visibility: visible; left: '+(left)+'px; top: '+(top)+'px;">';
					buildHtml +='<div class="image-tag-outter-border"><div class="image-tag-inner-border"></div></div>';
					buildHtml +='<div class="image-tag-username"><a class="pointer" href="'+getUserProfileLink(obj[i].tagged_user_id)+'">'+obj[i].username+'</a></div>';
					buildHtml +='</div>';
					var arr = new Array();
					arr["id"] = obj[i].id;
					arr["user_id"] = obj[i].tagged_user_id;
					arr["username"] = obj[i].username;
					users_tagged_id[i] = arr;
				}
			}
			
			$(".image-tags").html(buildHtml);

			var buildHtmlUsers = '';
			var loop = 0;
			if(users_tagged_id.length > 0) {
				for(var i in users_tagged_id) {
					buildHtmlUsers += '<li>';
					if(loop > 0) {
						buildHtmlUsers += ', ';
					}
					buildHtmlUsers += '<a href="'+getUserProfileLink(users_tagged_id[i]["user_id"])+'" class="pointer" rel="'+users_tagged_id[i]["id"]+'">';
					buildHtmlUsers += '<span>';
					buildHtmlUsers += users_tagged_id[i]["username"];
					buildHtmlUsers += '</span>';
					buildHtmlUsers += '</a>';
					buildHtmlUsers += '</li>';
					loop++;
				}
			}
			$("#tagged-users ul").html(buildHtmlUsers);

			$(".cloud-message-container .image-tag").css("opacity", 0);

			$(document).ready( function() {
				$.ajax({

					type: "POST",
					url: "?params=en/user/ajax",
					data: "fun=rvGetTaggingFriends&imgId="+imgId,
					dataType: "html",
					success: function(_response) {
						var obj = $.parseJSON(_response);
						var users = new Array();
						var source = new Array();
						for(var i in obj) {
							users[obj[i].username] = obj[i].id;
							source.push(obj[i].username);
						}
						
						$("#tag-people").autocomplete({
							source: source,
							select: function(event, ui) {
								sendTag(users[ui.item.value]);
							}
						});
					}
				});
			});
		}
	});
}

function loadCloudMessages() {
	imgId = $("#large-photo").attr("rel");
	$.ajax({

		type: "POST",
		url: "?params=en/cloud-message/ajax",
		data: "fun=rvGetCloudMessages&imgId="+imgId,
		dataType: "html",
		success: function(_response) {
			var obj = $.parseJSON(_response);
			var conversations_id = new Array();
			var buildHtml = '';
			var loop = 0;
			if(obj.msg != 1) {
				for(var i in obj) {
					var img_width = 800;
					var img_height = 600;
					var message_cls = '';
					var direction_cls = '';
					var avatar = '';
					var user_id = '';
	
					// message_cls = "cloud-message-text-left";
	
					if(typeof(obj[i].results) != "undefined") {
						for(var j=0; j<obj[i].results.length; j++) {
							if(obj[i].results[j].direction == 'left') {
								direction_cls = 'cloud-message-text-left';
							} else {
								direction_cls = 'cloud-message-text-right';
							}
							buildHtml +='<div class="cloud-message-'+obj[i].hash+' cloud-message-text '+direction_cls+'" style="opacity:0; visibility: visible; left: '+(obj[i].results[j].left)+'px; top: '+(obj[i].results[j].top)+'px;">';
							buildHtml +='<p class="description">'+obj[i].results[j].message+'</p>';
							buildHtml +='</div>';
							avatar = obj[i].results[j].avatar_url;
							user_id = obj[i].results[j].user_id;
						}
						conversations_id[loop] = new Array();
						conversations_id[loop]["id"] = obj[i].hash;
						conversations_id[loop]["avatar"] = avatar;
						conversations_id[loop]["user_id"] = user_id;
						loop++;
					}
				}
			}
			$(".cloud-message-texts").html(buildHtml);

			var buildHtmlUsers = '';
			// buildHtmlUsers += '<a class="cloud-prev"></a>';
			// buildHtmlUsers += '<div class="scrollable">';
			// buildHtmlUsers += '<ul class="items">';
			for(var i=0; i<conversations_id.length; i++) {
				buildHtmlUsers += '<li>';
				buildHtmlUsers += '<a href="'+getUserProfileLink(conversations_id[i]["user_id"])+'" class="pointer" rel="'+conversations_id[i]["id"]+'" title="'+conversations_id[i]+'">';
				buildHtmlUsers += '<span class="left">';
				buildHtmlUsers += '<span class="frame">';
				buildHtmlUsers += '<img class="img-frame" alt="Image Frame" src="'+images_dir+'gallery/img_frame.png" />';
				// buildHtmlUsers += '<img class="avatar" alt="Avatar" src="images/avatar.png" />';
				buildHtmlUsers += '<img src="'+conversations_id[i]["avatar"]+'" alt="Avatar" class="avatar">';
				buildHtmlUsers += '</span>';
				buildHtmlUsers += '</span>';
				buildHtmlUsers += '</a>';
				buildHtmlUsers += '</li>';
			}
			// buildHtmlUsers += '</ul>';
			// buildHtmlUsers += '</div>';
			// buildHtmlUsers += '<a class="cloud-next"></a>';
			// alert(buildHtmlUsers);
			$("#cloud-message-users ul.items").html(buildHtmlUsers);
			// $("#cloud-message-users ul.items").css("left", 0);
			$("#cloud-message-users").scrollable({next: ".cloud-next", prev: ".cloud-prev"});
			var api = $("#cloud-message-users").data("scrollable");
			api.seekTo(0, 0);
			
			// $("#cloud-message-users").scrollable({next: ".cloud-next", prev: ".cloud-prev"});

			$("#cloud-message-description").escPress( function() {
				cancelSendingCloudMessage();
			});

			$(".cloud-message-container .cloud-message-text").css("opacity", 0);

		}
	});
}

function cancelTagging() {
	$(".tagging-form").hide();
	$("#tag-people").val("");
}

function cancelSendingCloudMessage() {
	$(".cloud-message-form").hide();
	$("#cloud-message-description").val("");
}

function showTaggingForm(e) {

	var img_width  = $("#large-photo").width();
	var img_height = $("#large-photo").height();
	
	var tagging_form_width = 86;
	var tagging_form_height = 86;

	var img_offset = $("#large-photo").parent().offset();
	var left       = e.pageX-img_offset.left;
	var top        = e.pageY-img_offset.top;
	
	if(tagging_enabled) {
		$(".tagging-form input").val("");
		$(".tagging input").focus();

		$(".tagging-form").css('left', left+'px');
		$(".tagging-form").css('top', top+'px');
		$(".tagging-form").show();

	}
}

function sendVideoTag(taggeduserid) {

	$.ajax({
		type: "POST",
		url: http+"?params=en/tag/ajax",
		data: "fun=rvTagVideo&videoId="+type_id+"&taggedUserId="+taggeduserid,
		dataType: "html",
		success: function(_response) {
			loadVideoTags();
		}
	});
}

function sendTag(taggeduserid) {

	var form = $(".tagging-form");
	var left = $(form).css("left");
	var top = $(form).css("top");
	
	var img_parent_offset = $("#large-photo").parent().offset();
	var img_offset        = $("#large-photo").offset();
	
	left = parseInt(left) - (img_offset.left - img_parent_offset.left);
	top  = parseInt(top) - (img_offset.top - img_parent_offset.top);
	
	$.ajax({
		type: "POST",
		url: http+"?params=en/tag/ajax",
		data: "fun=rvTagImage&imgId="+type_id+"&userId="+my_user_id+"&taggedUserId="+taggeduserid+"&left="+left+"&top="+top,
		dataType: "html",
		success: function(_response) {
			loadImageTags();
		}
	});
	$(".tagging-form").hide();
	// $(".tag-people").click();

}

function showCloudMessageForm(e) {

	var img_width  = $("#large-photo").width();
	var img_height = $("#large-photo").height();
	
	var cloud_message_form_width = 250;
	var cloud_massaging_enabled  = 125;

	var img_offset = $("#large-photo").parent().offset();
	var left       = e.pageX-img_offset.left;
	var top        = e.pageY-img_offset.top;

	if(cloud_massaging_enabled) {
		if(left < 0) {
			left = 0;
		}
		if(top < 0) {
			top = 0;
		}
		cloud_message_top = top;
		cloud_message_left = left;

		$(".cloud-message-form textarea").val("");
		$(".cloud-message-form textarea").focus();

		$(".cloud-message-form").show();

		if($(".cloud-message-form").hasClass("cloud-message-form-right")) {

			$(".cloud-message-form").css('left', left+'px');
			$(".cloud-message-form").css('top', top+'px');
			$(".cloud-message-form").removeClass("cloud-message-form-left");
			$(".cloud-message-form").addClass("cloud-message-form-right");

		} else {

			$(".cloud-message-form").css('left', left+'px');
			$(".cloud-message-form").css('top', top+'px');
			$(".cloud-message-form").removeClass("cloud-message-form-right");
			$(".cloud-message-form").addClass("cloud-message-form-left");
		}

		$(".cloud-message-form").show();

	}
}

function loadCreator(user_id) {
	imgId = $("#large-photo").attr("rel");
	$.ajax({

		type: "POST",
		url: http+"?params=en/user/ajax",
		data: "fun=rvGetUserByID&id="+user_id,
		dataType: "html",
		success: function(_response) {
			var obj = $.parseJSON(_response);
			$("#photo-creator").html(obj.name);
			$("#photo-creator").attr("href", obj.url);
			
		}
	});
	
}

function loadVideoComments() {
	$.ajax({

		type: "POST",
		url: http+"?params=en/comment/ajax",
		data: "fun=rvGetVideoComments&videoId="+type_id,
		dataType: "html",
		success: function(_response) {
			var obj = $.parseJSON(_response);
			var buildHtml = '';
			if(obj.msg != 1) {
				for(var i in obj) {
					var like_type = '';
					var like_cls = '';
					if(obj[i].like == '1') {
						like_type = 'Unlike';
						like_cls = 'dislike';
					} else {
						like_type = 'Like';
						like_cls = 'like';
					}
					buildHtml +='<li>';
					buildHtml +='<span class="left">';
					buildHtml +='<span class="date">'+obj[i].time+'</span>';
					buildHtml +='<span class="frame">';
					buildHtml +='<a href="'+getUserProfileLink(obj[i].user_id)+'" class="pointer">';
					buildHtml +='<img src="'+images_dir+'gallery/img_frame.png" alt="Image Frame" class="img-frame">';
					buildHtml +='<img src="'+obj[i].avatar_url+'" alt="Avatar" class="avatar">';
					buildHtml +='</a>';
					buildHtml +='</span>';
					buildHtml +='<span class="title">'+obj[i].username+'</span>';
					buildHtml +='</span>';
					buildHtml +='<span class="right">';
					buildHtml +='<a class="'+like_cls+'" title="'+like_type+' this comment" rel="'+obj[i].id+'">'+like_type+'</a>';
					buildHtml +='<span class="comment">'+obj[i].description+'</span>';
					buildHtml +='</span>';
					buildHtml +='</li>';
				}
			}
			$("ul.comments").html(buildHtml);
		}
	});
}

function loadComments() {
	imgId = $("#large-photo").attr("rel");
	$.ajax({

		type: "POST",
		url: http+"?params=en/comment/ajax",
		data: "fun=rvGetComments&imgId="+imgId,
		dataType: "html",
		success: function(_response) {
			var obj = $.parseJSON(_response);
			var buildHtml = '';
			// console.log(obj);
			if(obj.msg != 1) {
				for(var i in obj) {
					var like_type = '';
					var like_cls = '';
					if(obj[i].like == '1') {
						like_type = 'Unlike';
						like_cls = 'dislike';
					} else {
						like_type = 'Like';
						like_cls = 'like';
					}
					buildHtml +='<li>';
					buildHtml +='<span class="left">';
					buildHtml +='<span class="date">'+obj[i].time+'</span>';
					buildHtml +='<span class="frame">';
					buildHtml +='<a href="'+getUserProfileLink(obj[i].user_id)+'" class="pointer">';
					buildHtml +='<img src="'+images_dir+'gallery/img_frame.png" alt="Image Frame" class="img-frame">';
					buildHtml +='<img src="'+obj[i].avatar_url+'" alt="Avatar" class="avatar">';
					buildHtml +='</a>';
					buildHtml +='</span>';
					buildHtml +='<span class="title">'+obj[i].username+'</span>';
					buildHtml +='</span>';
					buildHtml +='<span class="right">';
					buildHtml +='<a class="'+like_cls+'" title="'+like_type+' this comment" rel="'+obj[i].id+'">'+like_type+'</a>';
					buildHtml +='<span class="comment">'+obj[i].description+'</span>';
					buildHtml +='</span>';
					buildHtml +='</li>';
				}
			}
			$("ul.comments").html(buildHtml);
		}
	});
}

function hideCommentForm(a) {
	$(a).removeClass("enabled");
	$(a).addClass("disabled");
	$("post-comment-form").hide();
}

function getUserProfileLink(userid) {
	return http+"?params=en/user/profile/"+userid;
}
