$(function() {
	$('.giftsList li').mouseover(giftMouseOver);
	$('.giftsList li').mouseout(giftMouseOut);

	sending = false; // need to execute one handler when one handler is assigned on many objects
	$('.sendGift a.signed').click(function(e) {
		if (sending) {
			return;
		}
		var clickEvent = $.extend({}, e);
		l = this;
		if (typeof l.ajaxContentLoaded == 'undefined' || l.ajaxContentLoaded === false) {
			var metaData = $('#sendAGiftLnk').metadata();
			sending = true;
			$.mrAjax({
				data: {
					handler :      'AJAX_JSON_Gift',
					__callHandler: 'getHtmlContent',
					profileOwnerId: metaData.profileOwnerId
				},
				clickEvent: clickEvent,
				callback: function (stat, data) {
					var n = this.clickEvent.target;
					n.ajaxContentLoaded = true;
					n.ajaxContent = data.Response.content;
					var c = n.ajaxContent;
					$(n).mrPopup({
						url: '',
						minWidth: 485,
						maxHeight: 5000,
						content: c,
						onReady: function() {
							popupFunction();
						},
						event: 'ajaxContentLoaded'
					}).trigger('ajaxContentLoaded');
					sending = false;
				}
			});
		} else {
			$(l).trigger('ajaxContentLoaded');
		}
	});

	function popupFunction() {
		var metaData = $('#sendAGiftLnk').metadata();
		$('table.giftsT a.giftImg').click(function() {
			$('table.giftsT a.giftImg').removeClass('activeGift');
			$(this).addClass('activeGift');
			$('#next_btn').attr('disabled', false);
		});
		$('a.cancel').click(function(e) {
			$('div.close a.close').trigger('click');
		});
		$('p.cancel a').click(function(e) {
			$('div.close a.close').trigger('click');
		});

		$('#finish_btn').click(function() {
			jQuery(this).attr('disabled', 'disabled');
			accountBalance = $('#account_balance_lnk').metadata().accountBalance;
			currencyString = $('#account_balance_lnk').metadata().currencyString;
			//accountBalance = $('#account_balance_lnk b').text();
			giftMetadata = $('table.giftsT a.activeGift').metadata();
			var sText = $('.sendForm1 input.input').val();
			if (accountBalance >= giftMetadata.price) {
				//show account balance payment
				$('div.account_balance_payment').show();
				$('div.sms_payment').hide();
				$('#acc_price').text(giftMetadata.price);

				$.mrAjax({
					data: {
						handler :      'AJAX_JSON_Gift',
						__callHandler: 'sendGift',
						profileOwnerId: metaData.profileOwnerId,
						giftId: giftMetadata.id,
						message: sText,
						bySms: false,
						isPrivate: jQuery('#chckPrivate').attr('checked') ? 'Y' : 'N'
					},
					async: true,
					callback: function (stat, data) {
						if (data.Response && (data.Response.error==0)) {
							/*$('#account_balance_lnk b').text(data.Response.amount);*/
							/*
							<a href="http://www.sylcom.bigjohn.dev.mrise.ru/bigjohn/showBalance" class="" id="account_balance_lnk"><b>5.50</b></a>
							*/
							var on = $('#account_balance_lnk');
							on.replaceWith($(
								'<a href="' + on.attr('href') + '" id="' + on.attr('id') +
								'" class="{accountBalance: ' +  data.Response.amount +
								', currencyString: \'' + currencyString + '\'' +
								'}"><b>' + currencyString + data.Response.amount + '</b></a>'
							));
							$('div.close a.close').trigger('click');
						} else {
							alert('error');
						}
					}
				});

			} else {
				//show sms payment
				$('div.account_balance_payment').hide();
				$('div.sms_payment').show();
				var priceElement = $('#sms_price');
				if (priceElement) priceElement.text(giftMetadata.price);

				$.mrAjax({
					data: {
						handler :      'AJAX_JSON_Gift',
						__callHandler: 'sendGift',
						profileOwnerId: metaData.profileOwnerId,
						giftId: giftMetadata.id,
						message: sText,
						bySms: true,
						isPrivate: jQuery('#chckPrivate').attr('checked') ? 'Y' : 'N'
					},
					async: true,
					callback: function (stat, data) {
						$('div.close a.close').trigger('click');
					}
				});
			}
		});

		$('#next_btn').attr('disabled', true);

		$('#next_btn').click(function() {
			if($('table.giftsT a').hasClass('activeGift')) {

				var sText = htmlspecialchars($('.sendForm1 input.input').val());
				accountBalance = $('#account_balance_lnk').metadata().accountBalance;
				giftMetadata = $('table.giftsT a.activeGift').metadata();
				if (accountBalance >= giftMetadata.price) {
					//show account balance payment
					$('div#acc_payment').show();
					$('div.gift_sms_payment').hide();
					$('#acc_price').text(giftMetadata.price);
				} else {
					//show sms payment
					$('div#acc_payment').hide();
					$('div.gift_sms_payment').show();
					var priceElement = $('#sms_price');
					if (priceElement) priceElement.text(giftMetadata.price);
					var mass = new Array();
					var rows = $('table.giftsT tr').length;
					$('table.giftsT tr').each(function() {
						mass.push(this);
					});
					for (var i = 0; i <= rows; i++) {
						giftImg = $(mass[i]).find('a.giftImg');
						if (giftImg.hasClass('activeGift')) {
							var codes = $('#user-code').metadata();
							var code = codes['code' + giftImg.metadata().type];
							$('#user-code').text(code);
							break;
						}
					}
				}
				$('#sendGiftStep1').hide();
				$('#sendGiftStep2').show();
				$('.chosenImg img').attr({
					src: $('table.giftsT a.activeGift img').attr('src'),
					width: $('table.giftsT a.activeGift img').attr('width'),
					height: $('table.giftsT a.activeGift img').attr('height')
				});
				if(sText) {
					$('.popupGifts .giftBlock').show();
					$('.popupGifts .giftFrom .m p').html(sText);
				} else {
					$('.popupGifts .giftBlock').hide();
				}
				jQuery('#finish_btn').removeAttr('disabled');
			} else {
				$('#next_btn').attr('disabled', true);
				return;
			}
		});
		$('a.editGift').click(function() {
			$('#sendGiftStep2').hide();
			$('#sendGiftStep1').show();
		});

		initSmsOperators();
	}

	page = 1;
	var moregifts = function() {
		$.mrAjax({
			data: {
				handler :       'AJAX_JSON_Gift',
				__callHandler:  'more',
				profileOwnerId: $(this).metadata().profileOwnerId,
				page:           page
			},
			async: true,
			callback: function (stat, data) {
				if (data.Response) {
					if (!data.Response.isMore) {
						$('#giftsList .morePhoto').hide();
					}
					if (data.Response.rows) {
						$('#giftsList').append($('#giftsList .morePhoto'));
						$('#lessGifts').show();
						$('.giftsList li').mouseover(giftMouseOver);
						$('.giftsList li').mouseout(giftMouseOut);
						page++;
					}
				}
				$('#moreGifts').one('click', moregifts);
			}
		});
	};
	$('#moreGifts').one('click', moregifts);

	$('#lessGifts').click(function() {
		page = 1;
		giftsPerPage = $(this).metadata().giftsPerPage;
		elems = $('#giftsList').find('li');
		index = 0;
		for (i=0; i<elems.length; i++) {
			elem = $(elems[i]);
			if (!elem.hasClass('morePhoto')) {
				if (index >= giftsPerPage) {
					elem.remove();
				}
				else {
					index++;
				}
			}
		}
		$('#giftsList').append($('#giftsList .morePhoto'));
		$('#giftsList .morePhoto').show();
		$('#lessGifts').hide();
	});
});
function giftMouseOver() {
	jQuery(this).find('.giftFrom').show();
}
function giftMouseOut() {
	jQuery(this).find('.giftFrom').hide();
}
/**
 * Callback when new gift added
 */
function reloadGiftsList(giftsPerPage) {
	jQuery('#giftsList').show();
	jQuery('#giftListTopLine').show();
	jQuery('#giftsList').prepend(jQuery('#giftsList').find('li:last'));
	elems = jQuery('#giftsList li');
	if (elems.length - 1 > giftsPerPage * page) {
		jQuery(elems[elems.length - 2]).remove();
		jQuery('#giftsList .morePhoto').show();
	}
	jQuery('.giftsList li').mouseover(giftMouseOver);
	jQuery('.giftsList li').mouseout(giftMouseOut);
}
/**
 * Escapes HTML entities
 */
function htmlspecialchars(html) {
      html = html.replace(/&/g, "&amp;");
      html = html.replace(/</g, "&lt;");
      html = html.replace(/>/g, "&gt;");
      html = html.replace(/"/g, "&quot;");
      return html;
}