﻿$(function()
{
	if ( $.browser.msie && parseInt($.browser.version, 10)<7)
	{}
	else
	{
		$(".with_tooltip").tooltip({
			bodyHandler: function() 
			{         
				return $(this).next().html();     
			},
			showURL: false,
			delay: 0
		});
	}
	$(document).keydown(function (e)
	{
		if (e.which == 27)
		{  // escape, close box 
			CloseWaitDialog();
		}
	}); 
	

});

//#region Basket
var BasketDialogTimerId=null;
var IsBasketDialogInited=false;

function AddToBasket(ProductId)
{
	var __data = "ProductId=" + encodeURIComponent(ProductId) + "&Count=1";
	ShowWaitDialog('Добавляем товар в корзину.');

	$.ajax({
		type: "POST",
		url: BasketUrls.AddToBasket,
		data: __data,
		success: SuccessAddToBasket,
		error: BasketLoadError,
		dataType: "json"
	})
	return false;
}

function SuccessAddToBasket(data)
{
	CloseWaitDialog();

	if(!IsBasketDialogInited)
	{
		$('#ctrl_basket_dialog').jqm({modal: true});
		IsBasketDialogInited=true;
	}
	$('#ctrl_basket_dialog').jqmShow(); 

	if (data.LoadSuccess)
	{
		if (data.Basket.Items && data.ProductId)
		{
			for (__i = 0; __i < data.Basket.Items.length; __i++)
			{
				var __Item = data.Basket.Items[__i];
				if(__Item.ProductId==data.ProductId)
				{
					$('#ctrl_basket_dialog .dialog_block .dialog_content .dialog_message span').text(__Item.ProductLabel);
				}				
			}
		}

		ShowBasket(data);
	}
	if (BasketDialogTimerId)
	{window.clearTimeout(BasketDialogTimerId);}
	BasketDialogTimerId=window.setTimeout(function(){CloseBasketDialog()}, 15000);
}

function CloseBasketDialog()
{
	if(!IsBasketDialogInited){return;}
	$('#ctrl_basket_dialog').jqmHide();
	if (BasketDialogTimerId)
	{window.clearTimeout(BasketDialogTimerId);}
	BasketDialogTimerId=null;
}

function GotoBasket()
{
	CloseBasketDialog()
	ShowWaitDialog('Переходим к оформлению заказа.');
	window.location=BasketUrls.BasketView;
}

function ShowBasket(data)
{
	if (data.LoadSuccess)
	{
		$("#basket_top_count").text("Всего товаров: " + data.Basket.Count);
		$("#basket_top_amount").text("На сумму: " + data.Basket.Amount + " руб.");
		if (0==data.Basket.Count){$("#basket_top_order").text("");}
		else{$("#basket_top_order").text("Оформить заказ");}
		if (data.Basket.Items)
		{
			for (__i = 0; __i < data.Basket.Items.length; __i++)
			{
				var __Item = data.Basket.Items[__i];
				//alert(".basket_" + __Item.ProductId);
				$(".basket_" + __Item.ProductId).html('<span class="goods_view_in_basket">в корзине</span>');
				$(".center_basket_" + __Item.ProductId).html('<span class="center_item_in_basket" title="уже в корзине"></span>');
				
			}
		}
	}
	else
	{
		alert(data.LoadException);
	}
}

function BasketLoadError(Request, TextStatus)
{
	CloseWaitDialog();
	alert('Не удается загрузить корзину.\n' + TextStatus);
};
//#endregion

//#region UserRate
var UserRateTimerId;

function OnMouseOverUserRate(Rate, Label)
{
	if (UserRateTimerId){window.clearTimeout(UserRateTimerId);}
	UserRateTimerId=false;
	var __EmptySrc=$('#user_rate_star_1').attr('src').replace('star_full.gif','star_empty.gif');
	var __FullSrc=$('#user_rate_star_1').attr('src').replace('star_empty.gif','star_full.gif');
	
	if(Rate>=1){$('#user_rate_star_1').attr('src',__FullSrc);}
	else{$('#user_rate_star_1').attr('src',__EmptySrc);}
	
	if(Rate>=2){$('#user_rate_star_2').attr('src',__FullSrc);}
	else{$('#user_rate_star_2').attr('src',__EmptySrc);}
	
	if(Rate>=3){$('#user_rate_star_3').attr('src',__FullSrc);}
	else{$('#user_rate_star_3').attr('src',__EmptySrc);}
	
	if(Rate>=4){$('#user_rate_star_4').attr('src',__FullSrc);}
	else{$('#user_rate_star_4').attr('src',__EmptySrc);}
	
	if(Rate>=5){$('#user_rate_star_5').attr('src',__FullSrc);}
	else{$('#user_rate_star_5').attr('src',__EmptySrc);}
	
	$('#user_rate_star_label').text(Label);
}

function OnMouseOutUserRate()
{
	if (UserRateTimerId){window.clearTimeout(UserRateTimerId);}
	UserRateTimerId=false;
	UserRateTimerId=window.setTimeout(function(){OnMouseOverUserRate(0, '')},2000);
}

function SaveUserRate(ProductId,Rate)
{
	var __data = "ProductId=" + encodeURIComponent(ProductId) + "&Rate="+ encodeURIComponent(Rate);

	$.ajax({
		type: "POST",
		url: RateUrls.SaveUserRate,
		data: __data,
		success: ShowUserRate,
		error: SaveUserRateError,
		dataType: "json"
	});
}

function ShowUserRate(data)
{
	$("#goods_view_user_label").text("Ваша оценка:");
	
	$("#user_rate_star_1").attr('onmouseover','');
	$("#user_rate_star_2").attr('onmouseover','');
	$("#user_rate_star_3").attr('onmouseover','');
	$("#user_rate_star_4").attr('onmouseover','');
	$("#user_rate_star_5").attr('onmouseover','');
	
	$("#user_rate_star_1").attr('onclick','');
	$("#user_rate_star_2").attr('onclick','');
	$("#user_rate_star_3").attr('onclick','');
	$("#user_rate_star_4").attr('onclick','');
	$("#user_rate_star_5").attr('onclick','');	
	
	$("#user_rate_star_1").attr('onmouseout','');
	$("#user_rate_star_2").attr('onmouseout','');
	$("#user_rate_star_3").attr('onmouseout','');
	$("#user_rate_star_4").attr('onmouseout','');
	$("#user_rate_star_5").attr('onmouseout','');	

	OnMouseOverUserRate(data.Rate,'');
	
	$("#goods_view_full_rate").text(data.FullRate);
	$("#goods_view_full_voice_count").text(data.FullVoiceCount);
}

function SaveUserRateError(Request, TextStatus)
{
	alert('Не удается сохранить оценку.\n' + TextStatus);
};
//#endregion

//#region Comment
var IsCommentDialogInited=false;

function ShowAddCommentDialog()
{
	if(!IsCommentDialogInited)
	{
		$('#add_comment').jqm({modal: false});
		IsCommentDialogInited=true;
	}
	$('#add_comment').jqmShow(); 
}

function CloseAddCommentDialog()
{
	if(!IsCommentDialogInited){return;}
	$('#add_comment').jqmHide();
}

function AddCommentSubmit(Form)
{
	var __data=$(Form).serialize();
	$.ajax({
		type: "POST",
		url: RateUrls.AddComment,
		data: __data,
		success: AddCommentSuccess,
		error: AddCommentError,
		dataType: "json"
	});
	return false;
}

function AddCommentSuccess(data)
{
	if (data.success)
	{
		$('#goods_view_comments_count').text(data.data.CommentsCount);
		$('#goods_view_comments').html(data.data.Comments);
		CloseAddCommentDialog();
		document.getElementById('goods_view_similar_products').scrollIntoView(false);
	}
	else if(data.IsValid)
	{
		if(data.exceptions)
		{
			var __msg ='Не удается сохранить комментарий.\n';
			for(__i=0;__i<data.exceptions.length;__i++ )
			{
				__msg=__msg + data.exceptions[__i].Message;
			}
		}
			alert(__msg);
	}
	else
	{
		if(data.errors)
		{
			for(__i=0;__i<data.errors.length;__i++ )
			{
				var __error=data.errors[__i];
				$("#errComment" + __error.id).text(__error.msg);
			}
		}
	}
	return false;
}

function AddCommentError(Request, TextStatus)
{
	alert('Не удается сохранить комментарий.\n' + TextStatus);
	return false;
};
//#endregion

//#region WaitDialog
var IsWaitDialogInited=false;

function ShowWaitDialog(message)
{
		if (!IsWaitDialogInited)
		{
			$('#ctrl_wait_dialog').jqm({modal: true});
			IsWaitDialogInited=true;
		}
		$('#ctrl_wait_dialog .dialog_block .dialog_message').html(message);
		$('#ctrl_wait_dialog').jqmShow(); 
}

function CloseWaitDialog()
{
	if (!IsWaitDialogInited){return;}
	$('#ctrl_wait_dialog').jqmHide(); 
}
//#endregion
