function reMasonry() {

	$('#gm_Masonry').masonry({ columnWidth: 275, itemSelector: '.gBlock', resizeable: true });
}

function sitoes_hoverImage(elementHovered, elementPreviewed) {

	var elementId = '#' + elementHovered;
	var imgPreviewed = '#' + elementPreviewed;

	$(elementId).hover(
		function() {
			// camera icon container position
			var cPosition = $(elementId).position();

			// real image src
			var imgSrc    = $(imgPreviewed).attr('src');

			var theImage = new Image();
			theImage.src = imgSrc;

			// original image offset
			var oImageLeft = cPosition.left + theImage.width + 20;

			//console.log("aaaaa");
			//console.log(elementModalWidth);

			// modal inner box width (minus border)
			if($('#mm_Modal_v4').width() <= 0)
				var modalWidth = elementModalWidth;
			else
				var modalWidth = $('#mm_Modal_v4').width() - 20;

			// original image offset is larger than modal inner width
			// the floating image will be over the right border
			if (oImageLeft > modalWidth) {
				var offsetX = -10 - (oImageLeft - modalWidth);
			} else {
				var offsetX = -24;
			}

			// if the camera icon container top is larger than image height
			// the floating image will be over the top border
			if (cPosition.top < (40 + theImage.height)) {
				var offsetY = 10;
			} else {
				var offsetY = -24 - 20 - theImage.height;
			}

			// create element
			var htmlTag = "<div id='mm_image_hover'><img src='"+ imgSrc +"' /></div>";

			$(elementId).after(htmlTag);

			// set position
			var posX = $(elementId).width() + offsetX;
			var posY = offsetY;

			// set styles
			$('#mm_image_hover').css('margin-top', posY);
			$('#mm_image_hover').css('margin-left', posX);
			$('#mm_image_hover').height(theImage.height);

			$('#mm_image_hover').fadeIn('fast');
		},
		function() {
			$('#mm_image_hover').fadeOut('fast', function() {
				$('#mm_image_hover').remove();
			});
		}
	);

}

function displaySwitch(element1, element2) {

	if ($(element1).css('display') == 'block') {
		$(element1).css('display', 'none');
		$(element2).css('display', 'block');

	} else {
		$(element2).css('display', 'none');
		$(element1).css('display', 'block');

	}
}

function resizeModal(element) {

	var modalWidth  = $(element).width() + 10;
	var modalHeight = $(element).height() + 10;

	// resize nyromodal
	$.nyroModalSettings ({
	//	width: 1000,
		height: modalHeight
	});
}

function focusBlurDefault(element, defaultValue, classname) {

	var currentValue = jQuery.trim($(element).val());

	$(element).focus(function() {
		currentValue = jQuery.trim($(this).val());

		if (currentValue == defaultValue || currentValue.length == 0) {
			$(this).val('');
			//$(this).removeClass('mm_watermark');
			$(this).removeClass(classname);
		}
	});

	$(element).blur(function() {
		currentValue = jQuery.trim($(this).val());

		if (currentValue.length == 0) {
			$(this).val(defaultValue);
			//$(this).addClass('mm_watermark');
			$(this).addClass(classname);
		}
	});
}

function modalUploadifyOnSelect(event, queueID, fileObj, containerId) {

	$('.mm_errormessage').css('display', 'none');

	var queueItem = '<div id="pie' + queueID + '" class="pie-w24 pie-h24 pie size-0">&nbsp;</div>';
	$(containerId).html(queueItem);

}

function modalUploadifyOnProgress(event, queueID, fileObj, data, prevClass) {

	var num = Math.floor(data.percentage / 5) * 5;
	var progressPieCurrentClass = 'size-' + num;
	var queueItemIdPie = $('#pie' + queueID);

	// if (queueItemIdPie.css('display') == 'none') {
		// queueItemIdPie.css('display', 'block');
	// }

	queueItemIdPie.removeClass(prevClass);
	queueItemIdPie.addClass(progressPieCurrentClass);
	progressPiePrevClass = progressPieCurrentClass;

}

function modalUploadifyOnError(event, queueID, fileObj, errorObj) {

	if (errorObj.type == 'File Size') {
		var errorMsg = 'The filesize must not exceed ' + errorObj.info/1000000 + ' MB';
	} else {
		var errorMsg = 'Upload avatar error. Please try again.';
	}

	$('.mm_errormessage').text(errorMsg);
	$('.mm_errormessage').css('display', 'block');
}

function modalSwapForm(inputId_0, formId_0, default_0, inputId_1, formId_1, default_1) {

	// default value for input
	$(inputId_0).val(default_0);
	$(inputId_1).val(default_1);

	// START 0 title FOCUS - BLUR handler
	$(inputId_0).focus(function() {

		var currentValue = $(this).val();
		if (currentValue.toLowerCase() == default_0.toLowerCase()) {
			$(this).val('');
		}

		//$(formId_0).css('display', 'block');
		//$(formId_1).css('display', 'none');
		$(formId_1).fadeOut('fast', function() {
			$(formId_0).fadeIn('fast', function() {
				//resizeModal('#mm_modal');
			});
		});

		$(inputId_0).parent('div').addClass('mm_selector');
		$(inputId_1).parent('div').removeClass('mm_selector');

		// extra
		$(".stillError").parent().addClass('mm_selector_error');
		$(".stillError").addClass('mm_form_error');
	});

	$(inputId_0).blur(function() {

		var currentValue = jQuery.trim($(this).val());
		if (currentValue.length == 0) {
			$(this).val(default_0);
		}

	});
	// END 0 title FOCUS - BLUR handler

	// START 1 FOCUS - BLUR handler
	$(inputId_1).focus(function() {

		var currentValue = $(this).val();
		if (currentValue.toLowerCase() == default_1.toLowerCase()) {
			$(this).val('');
		}

		//$(formId_0).css('display', 'none');
		//$(formId_1).css('display', 'block');
		$(formId_0).fadeOut('fast', function() {
			$(formId_1).fadeIn('fast', function() {
				//resizeModal('#mm_modal');
			});
		});

		$(inputId_0).parent('div').removeClass('mm_selector');
		$(inputId_1).parent('div').addClass('mm_selector');

		// extra
		$(".stillError").parent().addClass('mm_selector_error');
		$(".stillError").addClass('mm_form_error');
	});

	$(inputId_1).blur(function() {

		var currentValue = jQuery.trim($(this).val());
		if (currentValue.length == 0) {
			$(this).val(default_1);
		}

	});
	// END 1 FOCUS - BLUR handler

}

function processModalSubmit(btnSubmitter, loading_element) {
	if(btnSubmitter == "")
		btnSubmitter = "mm_general_submit_button";

	setFormProcessingMessage(loading_element);
	$('#' + btnSubmitter).attr('disabled', 'disabled');
}

function completeModalSubmit(btnSubmitter, loading_element, success_element) {
	//setFormOkMessage();

	if(loading_element == "")
		loading_element = "#mm_Body";

	$(loading_element).parent().attr('id', '');

	if(btnSubmitter == "")
		btnSubmitter = "mm_general_submit_button";
	$('#' + btnSubmitter).removeAttr('disabled');

	if(success_element != undefined)
	{
		if(success_element.length > 0)
		{
			$(success_element).fadeIn(0);
			$(success_element).fadeOut(5000);
		}
	}
}

function processInlineSubmit() {
	$('.gm_ErrorMessage').text('');
	$('.gm_FormMessage').text('Processsing...');
	$('#gm_general_submit_button').attr('disabled', 'disabled');
}

function completeInlineSubmit() {
	$('.gm_FormMessage').text('');
	$('#gm_general_submit_button').removeAttr('disabled');
}

function removeWatermarkValue(element, defaultValue) {
	var currentValue = $(element).val();

	if (currentValue == defaultValue) {
		$(element).val('');
	}
}

/**
 * Set the image inside a container to be expandable
 *
 * @param element image
 * @param element link
 * @param array linkText
 */
jQuery.fn.an_expandableImage = function(image, link, linkText) {
	return this.each (function () {

		// set the container
		var container = $(this);

		// toggle status
		// to determine the action
		// 0 means the small/hidden
		// 1 means full image is shown
		var toggle = 0;

		// create image object
		// so we can get the width and height
		var img = new Image();
		img.src = $(image).attr('src');

		// get default width and height of image
		var imgHeight = img.height;
		var imgWidth  = img.width;

		// get default width and height of container
		var divHeight = container.height();
		var divWidth  = container.width();

		// click event for the link
		$(link).click(function() {

			if (toggle == 0) {
				container.animate({
					height: imgHeight,
					width: imgWidth

				}, function() {
					toggle = 1;
					$(link).text(linkText[toggle]);
				});

			} else {
				container.animate({
					height: divHeight,
					width: divWidth

				}, function() {
					toggle = 0;
					$(link).text(linkText[toggle]);
				});

			}

			return false;
		});

	});
};

/**
 * Check flash plugin availability
 * http://www.prodevtips.com/2008/11/20/detecting-flash-player-version-with-javascript/
 * http://jquery.lukelutman.com/plugins/flash/
 */
function getFlashVersion()
{
	// ie
	try
	{
		try
		{
			// avoid fp6 minor version lookup issues
			// see: http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
			var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
			try
			{
				axo.AllowScriptAccess = 'always';
			}
			catch(e)
			{
				return '6,0,0';
			}
		}
		catch(e) {}

		return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];

	}

	// other browsers
	catch(e)
	{
		try
		{
			if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)
			{
				return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
			}
		} catch(e) {}
	}

	return '0,0,0';
}

/**
 * Check flash version using getFlashVersion function
 * return flash version number if available
 * return 0 if no flash
 */
function checkFlashVersion()
{
	var version = getFlashVersion().split(',').shift();
	return version;
}

/* slideshow navigation handler */
function slideshow_selectSlide() {
	$(this)
		.parent('li') // get li
			.parent('ul') // get ul
				.find('li') // find all li
					.removeClass('gm_Slideshow_selected') // remove class
				.end() // back to ul
			.end() // back to li
			.addClass('gm_Slideshow_selected') // add class
		.end() // back to (this)

	return false;
}

/**
 * used to hide/show all community modules when searching for user who bear badges
 *
 *
 */

function hideCommunityModules(type)
{
	$('.ads').addClass("isHidden");
	$('.topEntry').addClass("isHidden");
	$('#topUser').addClass("isHidden");
	$("#greetnewbie").addClass("isHidden");
	$("#becomeMayor").addClass("isHidden");
	$("#bloggerlist").addClass("isHidden");
	$("#communityupdate").addClass("isHidden");
	$("#meeteditor").addClass("isHidden");
	$("#randombadge").addClass("isHidden");
	$("#recentLoved").addClass("isHidden");
	$("#recentSubmit").addClass("isHidden");
	$("#popularTopic").addClass("isHidden");
	$("#recommendedByMayor").addClass("isHidden");
	$("#localOriginalDish").addClass("isHidden");
	$("#friendfinder").addClass("isHidden");
	$(".communitySidebar").parent().css("position", "");


}

function showCommunityModules()
{
	$('.ads').removeClass("isHidden");
	$('.topEntry').removeClass("isHidden");
	$('#topUser').removeClass("isHidden");
	$("#recentLoved").removeClass("isHidden");
	$("#recentSubmit").removeClass("isHidden");
	$("#popularTopic").removeClass("isHidden");
	$("#greetnewbie").removeClass("isHidden");
	$("#becomeMayor").removeClass("isHidden");
	$("#bloggerlist").removeClass("isHidden");
	$("#communityupdate").removeClass("isHidden");
	$("#meeteditor").removeClass("isHidden");
	$("#randombadge").removeClass("isHidden");
	$("#friendfinder").removeClass("isHidden");
	$("#recommendedByMayor").removeClass("isHidden");
	$("#localOriginalDish").removeClass("isHidden");
	$(".communitySidebar").parent().css("position", "absolute");
}

// connect with twitter link handler
function connectWithTwitter() {

	var width = 600;
	var height = 300;

	var left = (screen.width/2) - (width/2);
	var top  = (screen.height/2) - (height/2);

	// open pop up window to connect with twitter
	var win = window.open('/twitter/login','facebooklogin_window','width='+width+',height='+height+',top='+top+',left='+left+',status=0,toolbar=0');
	var timer = setInterval(function() {

		// pop up window is closed
		if(win.closed) {
			clearInterval(timer);

			// get next action
			var nextAction = $('#twitterNextAction').val();

			// user is available, reload the page
			if (nextAction == 'reload') {
				// $.nyroModalSettings({
					// endRemove: function() {
						// window.location.reload();
					// }
				// });

				// $.nyroModalRemove();

				window.location.reload();

			// open register modal
			} else if (nextAction == 'register') {

				$.nyroModalManual({
					url: '/goorme/register'
				});

			}
		}
	}, 1000);

}

function connectWithFacebook() {

	var left = (screen.width/2) - (500/2);
	var top  = (screen.height/2) - (300/2);

	var win = window.open('/users/facebook_login','facebooklogin_window','width=500,height=300,top='+top+',left='+left+',status=0,toolbar=0');
	var timer = setInterval(function() {
		if(win.closed) {
			clearInterval(timer);

			// get next action
			var nextAction = $('#facebookNextAction').val();

			// user is available, reload the page
			if (nextAction == 'reload') {
				// $.nyroModalSettings({
					// endRemove: function() {
						// window.location.reload();
					// }
				// });

				// $.nyroModalRemove();

				window.location.reload();

			// open register modal
			} else if (nextAction == 'register') {

				$.nyroModalManual({
					url: '/goorme/register_step_profile/facebook'
				});

			}

		}
	}, 1000);
}

function rateClick(gridType) {

	if(gridType == 'login') {
		$('.rateLink').live('click', function() {
			var id = $(this).attr('id');
			var rel = $(this).attr('rel');

			return false;
		});

	} else {
		$('.rateLink').live('click', function() {
			$('body').css('cursor', 'wait');

			var id = $(this).attr('id');


			var relElement = $(this).attr('rel');
			var splits = relElement.split('-');
			var rel = splits[1];
			var tableId = splits[0];

			$('#message-' + rel).html('Saving...');
			$('#container_rate_bookmark-' + rel).addClass("isHidden");
			$('#rateLoading-' + rel).removeClass("isHidden");

			$(this).unbind('click');
			$(this).nextAll().unbind('click');
			$(this).prevAll().unbind('click');
			$(this).unbind('mouseenter mouseleave');
			$(this).unbind('mouseenter').unbind('mouseleave')


			$.get('/reviews/ajax_rate/' + tableId + '/' + rel + '/' + id, function(responseData) {

				if(responseData != null)
				{
					var temp_var = jQuery.parseJSON(responseData);

					var data = temp_var.flag;
					var rate_number = parseInt(temp_var.rate_number);

					if(data == "1" || data == "2" || data == "3") {

						if(id > 2) {
							var count = $('#lovedCount-' + rel).text();
							var afterCountid = $('#lovedCount-' + rel);
							var afterRate =  (parseInt(count) + parseInt("1"));
							afterCountid.prev().addClass('isOn');
							afterCountid.html(afterRate);

							if($('#total_loved').length > 0)
							{
								number_of_loved++;

								  $('#total_loved').fadeOut(animation_speed, function() {
									$("#total_loved").text(number_of_loved);
									$("#total_loved").fadeIn(animation_speed);
								  });
							}
						}

						if(id >= 1 && id <= 5) {
							var count = $('#triedCount-' + rel).text();
							var afterCountid = $('#triedCount-' + rel);
							var afterRate =  (parseInt(count) + parseInt("1"));
							afterCountid.prev().addClass('isOn');
							afterCountid.html(afterRate);

							if($('#total_tried').length > 0)
							{
								number_of_tried++;

							  $('#total_tried').fadeOut(animation_speed, function() {
									$("#total_tried").text(number_of_tried);
									$("#total_tried").fadeIn(animation_speed);

							  });
							}

						}

						//var afterRate =  (parseInt(count) + parseInt("1"));
						$.get('/reviews/ajax_get_rating/' + tableId + '/' + rel + '/' + id + '?from=' + rate_from, function(rating) {

							$('#ratedCount-' + rel).html(rating);
							$("#ratedCount-" + rel).fadeIn(animation_speed);
							//$('#ratedCount-' + rel).siblings().addClass("isRated");
							//$('#ratedCount-' + rel).siblings().removeClass("isRating");
							//afterCountid.prev().addClass('isOn');
						});


						$('#message-' + rel).html('Thank You');
						$('#defaultMessage-' + rel).html('You rated this item');
						//afterCountid.html(afterRate);

						//console.log(gridType);
						if(gridType != 'quickrate') {
							//$('#gridRate-' + rel).addClass('isHidden');
							//$('#gridFooter' + rel).removeClass('isHidden');
						}
						$('body').css('cursor', 'auto');
						$('#container_rate_bookmark-' + rel).removeClass("isHidden");
						$('#rateLoading-' + rel).addClass("isHidden");

						$(this).removeClass("realRating");

						//console.log('#container_rate_bookmark-' + rel);
						//console.log($('#container_rate_bookmark-' + rel));

						var children_result = $('#container_rate_bookmark-' + rel).children("a").children(".rateResult");
						//console.log(children_result);
						for(var i = 0 ; i < children_result.length ; i++)
						{
							var temp = children_result[i];
							//console.log(temp);
							if(i < id)
							{
								//$(temp).removeClass("doRate");
								//$(temp).addClass("isRated");
								//$('#container_rate_bookmark-' + rel).children("a").children(".rateResult")[i].removeClass("doRate");
								//$('#container_rate_bookmark-' + rel).children("a").children(".rateResult")[i].addClass("isRated");
								temp.className += " doRate isOn";
							}
							else
							{
								temp.className += " doRate";
							}
						}
						//console.log(children_result);
						/*
						for(var i = 0 ; i < children_result.length ; i++)
						{
							var temp = children_result[i];

							console.log(temp);
						}

						$('#container_rate_bookmark-' + rel).children(".rateResult").removeClass("isHidden");
						$('#container_rate_bookmark-' + rel).children(".rateAssign").addClass("isHidden");
						*/
						$('#container_rate_bookmark-' + rel).children("a").children(".rateResult").removeClass("isHidden");
						$('#container_rate_bookmark-' + rel).children("a").children(".rateAssign").addClass("isHidden");


						//if(id <= 2)
						//	$('#triedCount-' + rel).siblings(".isTried").addClass("isOn");
						//else
						//	$('#lovedCount-' + rel).siblings(".isLoved").addClass("isOn");

						if($("#number_left").length > 0)
						{
							rate_left--;
							var number_shown = rate_left;

							$('#number_left').fadeOut(animation_speed, function() {
								$("#number_left").text(number_shown);
								$("#number_left").fadeIn(animation_speed);
							});

							if(rate_left <= 0)
							{
								rate_left = limit_rate;
								//console.log(user_is_verified);
								$("#default_msg").addClass("isHidden");
								$("#after_qr_limit").removeClass("isHidden");
//console.log(number_of_tried);
								if(number_of_tried == limit_rate)
								{
								//	console.log("kok g isa seh");
									$(".wrapper_popup_QR").removeClass("isHidden");

								}
								else
								{
									//$("#default_msg").addClass("isHidden");
								//	$("#after_qr_limit").removeClass("isHidden");
								}
								//console.log(rate_left);
								$("#number_left").text(rate_left);
							}

							else
							{
								if($("#default_msg").hasClass("isHidden") == true)
								{
									$("#default_msg").removeClass("isHidden");
									$("#after_qr_limit").addClass("isHidden");
								}
							}
						}

					}
				}
					$(".rateAssign").prevAll().removeClass('isLoved');
					$(".rateAssign").nextAll().removeClass('isLoved');

					$(".rateAssign").prevAll().removeClass('isTried');
					$(".rateAssign").nextAll().removeClass('isTried');

					$(".rateAssign").nextAll().addClass('doRate');
					$(".rateAssign").prevAll().addClass('doRate');
					$(".bookmark_tooltip").removeClass('doRate');
			});

			return false;
		});
	}

}

function bookmarkClick(bookmarkType, gridType) {

	if(gridType == 'login') {
		if(bookmarkType == 'bookmark') {
			$('.bookmarkLink').live('click', function() {
				return false;
			});

	} else if(bookmarkType == 'dislike') {

		$('.dislikeLink').live('click', function() {
			return false;
		});
	}

	} else {
		if(bookmarkType == 'bookmark') {
			$('.bookmarkLink').live('click', function() {
				$('body').css('cursor', 'wait');
				var element = $(this).attr('id');
				var splits = element.substring(2).split('-');

				var tableId = splits[1];
				var id = splits[2];

				$('#message-' + id).html('Saving...');
				var defaultTitle = $('#defaultMessage-' + id).text();

				$('#defaultMessage-' + id).html('Saving...');
				$('#container_rate_bookmark-' + id).addClass("isHidden");
				$('#rateLoading-' + id).removeClass("isHidden");

				$.get('/bookmarks/bookmark/' + tableId + '/' + id, function(data) {
					if(data == "1") {
						$('#' + element).addClass('isOn');
						$('#' + element).addClass('unbookmarkLink');
						$('#' + element).removeClass('bookmarkLink');
						$('#' + element).unbind('click');
						$('#message-' + id).html('Thank You');
						$('#defaultMessage-' + id).html(defaultTitle);
						$('body').css('cursor', 'auto');

						$('#container_rate_bookmark-' + id).removeClass("isHidden");
						$('#rateLoading-' + id).addClass("isHidden");
						$('#' + element).attr('titleku', 'You bookmarked this item. Cancel?');

						//console.log($('#' + element).attr('titleku'));
					}
				});
				return false;
			});

			$('.unbookmarkLink').live('click', function() {
				$('body').css('cursor', 'wait');
				var element = $(this).attr('id');
				var splits = element.substring(2).split('-');

				var tableId = splits[1];
				var id = splits[2];

				$('#message-' + id).html('Saving...');
				var defaultTitle = $('#defaultMessage-' + id).text();

				$('#defaultMessage-' + id).html('Saving...');
				$('#container_rate_bookmark-' + id).addClass("isHidden");
				$('#rateLoading-' + id).removeClass("isHidden");

				$.get('/bookmarks/unbookmark/' + tableId + '/' + id, function(data) {
					if(data == "1") {

						$('#' + element).removeClass('isOn');
						$('#' + element).removeClass('unbookmarkLink');
						$('#' + element).addClass('bookmarkLink');

						$('#message-' + id).html('Thank You');
						$('body').css('cursor', 'auto');

						$('#container_rate_bookmark-' + id).removeClass("isHidden");
						$('#rateLoading-' + id).addClass("isHidden");
						$('#' + element).attr('titleku', 'Save it to try later');
						$('#defaultMessage-' + id).html(defaultTitle);
						//console.log($('#' + element).attr('titleku'));
					}
				});
				return false;
			});

		} else if(bookmarkType == 'dislike') {

			$('.dislikeLink').live('click', function() {
				$('body').css('cursor', 'wait');
				var element = $(this).attr('id');
				var splits = element.substring(2).split('-');

				var tableId = splits[1];
				var id = splits[2];

				$('#message-' + id).html('Saving...');
				var defaultTitle = $('#defaultMessage-' + id).text();

				$('#defaultMessage-' + id).html('Saving...');
				$('#container_rate_bookmark-' + id).addClass("isHidden");
				$('#rateLoading-' + id).removeClass("isHidden");

				$.get('/bookmarks/bookmark/' + tableId + '/' + id + '/0', function(data) {
					if(data == "1") {
						$('#' + element).addClass('isOn');
						$('#' + element).removeClass('dislikeLink ');
						$('#' + element).addClass('undislikeLink');


						$('#message-' + id).html('Thank You');
						$('#defaultMessage-' + id).html(defaultTitle);
						$('body').css('cursor', 'auto');

						$('#container_rate_bookmark-' + id).removeClass("isHidden");
						$('#rateLoading-' + id).addClass("isHidden");
						$('#' + element).attr('titleku', 'You disliked this item. Cancel?');
					}
				});
				return false;
			});

			$('.undislikeLink').live('click', function() {
				$('body').css('cursor', 'wait');
				var element = $(this).attr('id');
				var splits = element.substring(2).split('-');

				var tableId = splits[1];
				var id = splits[2];

				$('#message-' + id).html('Saving...');
				var defaultTitle = $('#defaultMessage-' + id).text();

				$('#defaultMessage-' + id).html('Saving...');
				$('#container_rate_bookmark-' + id).addClass("isHidden");
				$('#rateLoading-' + id).removeClass("isHidden");

				$.get('/bookmarks/unbookmark/' + tableId + '/' + id + '/0', function(data) {
					if(data == "1") {

						$('#' + element).removeClass('isOn');
						$('#' + element).removeClass('dislikeLink');
						$('#' + element).addClass('dislikeLink');

						$('#message-' + id).html('Thank You');
						$('#defaultMessage-' + id).html(defaultTitle);
						$('body').css('cursor', 'auto');

						$('#container_rate_bookmark-' + id).removeClass("isHidden");
						$('#rateLoading-' + id).addClass("isHidden");
						$('#' + element).attr('titleku', "I don't like this");
					}
				});
				return false;
			});
		}

	}

}

function gridHover() {
	$('.gridHoverArea').hover(
		function() {
			var element = $(this).children(".rateInfo").attr('id');
			var split_text 	= element.substring(2).split('-');
			var id = split_text[1];

			$('#gridRate-' + id).removeClass('isHidden');
			$(this).children(".rateInfo").addClass('isHidden');

		},
		function() {
			var element = $(this).children(".rateInfo").attr('id');
			var split_text 	= element.substring(2).split('-');
			var id = split_text[1];

			$('#gridFooter-' + id).removeClass('isHidden');
			$(this).children(".ratingArea").addClass('isHidden');
			//$(".realRating").removeClass("isOn");
		});

	$('.ratingArea').hover(
		function() {

		},
		function() {
			/*
			var element = $(this).attr('id');
			var split_text 	= element.substring(2).split('-');
			var id = split_text[1];

			$('#gridFooter-' + id).removeClass('isHidden');

			$(this).addClass('isHidden');
			*/

	});

	//$(".rate_tooltip").tooltip();
	//$(".bookmark_tooltip").tooltip();
}

function ratingStarHover() {
	$(".realRating").hover(function() {
		var rateClass = new Array();
		rateClass[1]="isTried";       // argument to control array's size)
		rateClass[2]="isTried";
		rateClass[3]="isLoved";
		rateClass[4]="isLoved";
		rateClass[5]="isLoved";


		//remove start icon
		$(this).prevAll().removeClass('doRate');
		$(this).nextAll().removeClass('doRate');
		var element_id = $(this).attr('id');

		switch(element_id) {
			case '1' :
				$(this).nextAll().addClass('isLoved');
				$(this).next().removeClass('isLoved');
				$(this).next().addClass('isTried');
				$(this).addClass('isTried');
				break;
			case '2' :
				$(this).nextAll().addClass('isLoved');
				$(this).prevAll().addClass('isTried');
				$(this).addClass('isTried');
				break;
			case '3' :
				$(this).nextAll().addClass('isLoved');
				$(this).prevAll().addClass('isTried');
				$(this).addClass('isLoved');
				break;
			case '4' :
				$(this).next().addClass('isLoved');
				$(this).addClass('isLoved');
				$(this).prevAll().addClass('isTried');
				$(this).prev().addClass('isLoved');
				break;
			case '5' :
				$(this).addClass('isLoved');
				$(this).prevAll().addClass('isTried');
				$(this).prev().addClass('isLoved');
				$(this).prev().prev().addClass('isLoved');
				break;
		}
		$('.bookmark_tooltip').removeClass('isLoved');

		// NOT WORKING
		//for(i=1; i<=5; i++) {
		//	$('#' + i).addClass(rateClass[i]);
		//}

		$(this).addClass('isOn');
		$(this).prevAll().addClass('isOn');
		$(this).nextAll().removeClass('isOn');

		var element = $(this).attr('rel');

		var split_text 	= element.split('-');
		var id = split_text[1];
		var title = $(this).attr('titleku');

		$("#message-" + id).text(title);
	},

	function() {

		$(this).removeClass('isOn');
		var element = $(this).attr('rel');
		$('.realRating').addClass('doRate');
		var split_text 	= element.split('-');
		var id = split_text[1];
		var title = $('#defaultMessage-' + id).text();



		$('.realRating').removeClass('isLoved');
		$('.realRating').removeClass('isTried');
		$("#message-" + id).text(title);
		$(".realRating").removeClass("isOn");
	});


	$(".bookmark_tooltip").hover(function() {

		var element = $(this).attr('rel');

		var split_text 	= element.split('-');
		var id = split_text[1];
		var title = $(this).attr('titleku');

		$("#message-" + id).text(title);
	},
	function() {
		var element = $(this).attr('rel');

		var split_text 	= element.split('-');
		var id = split_text[1];
		var title = $('#defaultMessage-' + id).text();

		$("#message-" + id).text(title);
	});

	$(".rateResult").hover(function() {
		var element = $(this).attr('rel');

		var split_text 	= element.split('-');
		var id = split_text[1];
		var title = $(this).attr('titleku');

		$("#message-" + id).text(title);
	},
	function() {
		var element = $(this).attr('rel');

		var split_text 	= element.split('-');
		var id = split_text[1];
		var title = $('#defaultMessage-' + id).text();

		$("#message-" + id).text(title);
	});
}

function detectScreen() {

var width = screen.width;
var screenClass = '';

if(width <= 1266)
	screenClass = 'r2';
else if(width <= 1532 && width > 1266)
	screenClass = 'r3';
else if(width <= 1800 && width > 1532)
	screenClass = 'r4';
else if(width > 1800)
	screenClass = 'r5';

$('#gm_Container').attr('class', screenClass);

}

function urlencode(str) {
  //  return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
  return String(str).replace(/&/g, '%252526');
}

function urldecode(str) {
  //  return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
  return String(str).replace(/&/g, '%252526');
}

function focusBlurBehaviour(element, form, label_class) {
	var currentValue = jQuery.trim($(element).val());
	var listen_timer;

	if (currentValue != "")
		$(element).siblings("label." + label_class).removeClass("isFocus").addClass("isOff");

	$(element).focus(function() {
		var container = $(this);

		// listener for autofill
		listen_timer = setInterval(function() {
			if (container.val())
				$(element).siblings("label." + label_class).removeClass("isFocus").addClass("isOff");
		}, 100);

		//take care of watermark
		if (label_class != "mm_GoormeURL") {
			currentValue = jQuery.trim(container.val());

			if (currentValue.length == 0)
				$(element).siblings("label." + label_class).removeClass("isOff").addClass("isFocus");
		}

		//take care of green / red tooltip
		if (container.siblings(".good_tooltip").length > 0)
			container.siblings(".good_tooltip").removeClass("isHidden");
		else if (container.hasClass("element_is_error")) {
			var content = container.siblings(".element_error").text();
			content = trim(content);
			if (content != "")
				container.siblings(".element_error").removeClass("isHidden");
		}
	});

	$(element).blur(function() {
		var container = $(this);

		clearInterval(listen_timer);

		if (label_class != "mm_GoormeURL") {
			currentValue = jQuery.trim(container.val());

			if (currentValue.length == 0)
				$(element).siblings("label." + label_class).removeClass("isFocus").removeClass("isOff");
			else
				$(element).siblings("label." + label_class).removeClass("isFocus").addClass("isOff");
		}

		container.siblings(".element_error").addClass("isHidden");

		if (container.siblings(".good_tooltip").length > 0)
			container.siblings(".good_tooltip").addClass("isHidden");

		$(form).validate().element(element);
	});

	$(element).keyup(function() {
		currentValue = jQuery.trim($(this).val());

		if (currentValue == "")
			$(element).siblings("label." + label_class).removeClass("isOff").addClass("isFocus");
		else
			$(element).siblings("label." + label_class).removeClass("isFocus").addClass("isOff");
	});
}

function trim(str) {
    return str.replace(/^\s+|\s+$/g,'');
}

function focusBlurBehaviourRecipe(element, form, label_class) {
	var currentValue = jQuery.trim($(element).val());
	var listen_timer;

	if (currentValue != "")
		$(element).siblings("label." + label_class).removeClass("isFocus").addClass("isOff");

	$(element).focus(function() {
		var container = $(this);

		// listener for autofill
		listen_timer = setInterval(function() {
			if (container.val())
				$(element).siblings("label." + label_class).removeClass("isFocus").addClass("isOff");
		}, 100);

		//take care of watermark
		if (label_class != "mm_GoormeURL") {
			currentValue = jQuery.trim($(this).val());

			if (currentValue.length == 0)
				$(element).siblings("label." + label_class).removeClass("isOff").addClass("isFocus");
		}

		//take care of green / red tooltip
		if (container.parent().siblings(".good_tooltip").length > 0)
			container.parent().siblings(".good_tooltip").removeClass("isHidden");
		else if (container.hasClass("element_is_error")) {
			var content = container.siblings(".element_error").text();
			content = trim(content);
			if (content != "")
				container.siblings(".element_error").removeClass("isHidden");
		}
	});

	$(element).blur(function() {
		var container = $(this);

		clearInterval(listen_timer);

		if (label_class != "mm_GoormeURL") {
			currentValue = jQuery.trim($(this).val());

			if (currentValue.length == 0)
				$(element).siblings("label." + label_class).removeClass("isFocus").removeClass("isOff");
			else
				$(element).siblings("label." + label_class).removeClass("isFocus").addClass("isOff");
		}

		container.siblings(".element_error").addClass("isHidden");

		if(container.parent().siblings(".good_tooltip").length > 0)
			container.parent().siblings(".good_tooltip").addClass("isHidden");

		$(form).validate().element(element);
	});

	$(element).keyup(function() {
		currentValue = jQuery.trim($(this).val());

		if (currentValue == "")
			$(element).siblings("label." + label_class).removeClass("isOff").addClass("isFocus");
		else
			$(element).siblings("label." + label_class).removeClass("isFocus").addClass("isOff");
	});
}

