﻿jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') {
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString();
        }
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else {
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

function ShowHideBasketItems(){
	if($.cookie('basket-show') == 1)
		$('#basket-items').show();
	else
		$('#basket-items').hide();
};

function AJAXLnk(itemId, URL, ctrl, event) {
	$('.rel-div').hide();
    AsyncRequest(URL, '#basket', ctrl, event);
}
function ItemFullViewAddBasket(URL, ctrl, event) {
    tail = $('#CodeSelect').length == 0 ? 0 : $('#CodeSelect').val();
    if (tail == -1) {
        $('#Select_Code_Notifier').show();
        return false;
    } else
        $('#Select_Code_Notifier').hide();
    AsyncRequest(URL + '/' + tail, '#basket', ctrl);
}
function AsyncRequest(url, updateElementId, ctrl, event) {
    try {
        url = url.replace(/ /g, '%20');
        $(updateElementId).load(url,
			function () {
				ShowHideBasketItems();
				$('#basket-add').show();
				$('#basket-add').fadeOut(2000);
				var offset = $(ctrl).offset();
				PopUpBalloon(offset.top - 10 + 'px', offset.left - 10 + 'px');
			}
		);
        StopPropagation(event);
    }
    catch (e) { }
}
function ChangeRate(id,_mark){
	$('#rate'+id).load('/ChangeRating',{merchId:id,mark:_mark});
}
function OrderTabClick(tabName){
	$('#OrderDiv').load('/Purchase/'+tabName, function(){InitAutoCompleteField();});
}
$(document).ready(
	function(){
		setTextProtection("", "protected"); 
		setImageProtection("", "protected");
		$('#excl-img').hover(function(){$(this).attr('src','/Content/img/exclusive-on.png');},function(){$(this).attr('src','/Content/img/exclusive-off.png');});
		ShowHideBasketItems();
		if($.browser.msie && $.browser.version == 6){
			$('.buy-menu li:not(.nobr)').hover(function(){$(this).addClass('hover');},function(){$(this).removeClass('hover');});
			$('.catalog .l-col, .catalog .r-col, .content-cell').hover(function(){$(this).css('background-color','#ede5e5');},function(){$(this).css('background-color','fff');});
		}
		$('#slide-shops').cycle({ 
			delay:  400, 
			speed:  600
		}); 
		Slider_Initialise('#slide-goods');		
		// $(window).resize(function() {
			// $('#width').html($(window).width());
		// });
	}
);
function ToggleBasket(){
	if($.cookie('basket-show') == 1){
		$.cookie('basket-show', '0', {path:'/'});
		$('#basket-items').hide();
	}
	else{
		$.cookie('basket-show', '1', { path: '/' });
		$('#basket-items').show();
	}
}
function AddToCompareList(ctrl,url){
	$('#compare').load(url.replace(/ /g, '%20'),function(){$(ctrl).hide();});
	StopPropagation(event);
	return false;
}
function ClearCompareList(url){
	$('#compare').load(url.replace(/ /g, '%20'));
	return false;
}

//goods slider
//Настраивает css и анимирует панель (тестировано на div) слайдера
//jqString - строка запроса jquery (формат такой же как у css-выборки: (<tag> | #<ID_Value> | <Class_Name>)*)
//скрипт должен быть выполнен после загрузки настраиваемого элемента
function Slider_Initialise(jqString) {
    var animationDuration = 600;//длительность анимации
    var animationPeriod = 6000;//интервал между прокруткой
    var slideHeight = 200;//высота слайда
    var itemsShown = 3;//число слайдов, отображаемых одновременно, на панели слайдера (>=1)

    var jqoSlider = $(jqString);
    jqoSlider.css('overflow', 'hidden');
    jqoSlider.css('position', 'relative');
    jqoSlider.css('display', 'block');

    var jqoSlidingDivs = jqoSlider.children('div');
    var slideStep = slideHeight + parseInt(jqoSlidingDivs.css('margin-top')) + parseInt(jqoSlidingDivs.css('margin-bottom'));
    var sliderHeight = itemsShown*slideStep;
    jqoSlider.css('height', sliderHeight);
    
    jqoSlidingDivs.each(
        function(i) {
            $(this).css('height', slideHeight);
            $(this).css('position', 'relative');
            $(this).css('top', 0);
        }
    );
    setInterval(function() { Slider_Animate(jqoSlidingDivs, animationDuration, slideStep, itemsShown); }, animationPeriod);
}

function Slider_Animate(jqoSlidingDivs, animationDuration, animationStep, itemsShown) {
    var minTop = animationStep *(itemsShown-jqoSlidingDivs.length);
    jqoSlidingDivs.each(
        function(i) {
            if (parseInt($(this).css("top")) + i * animationStep <= minTop)
                $(this).css("top", animationStep * (itemsShown - i));
            $(this).animate({ top: '-=' + animationStep }, animationDuration);
        }
    );
}
function StopPropagation(e){
	if(e.stopPropagation)
	{
		e.stopPropagation();
	}
	else
	{
		e.cancelBubble = true;
	}
}
function RemoveInstruction(divId, merchId, file){
	$.post('/RemoveInstruction',{itemId:merchId, filename:file}, function(){
		$(divId).hide();
	});
	return false;
}
function OnRegionChange(ctrl){
	GetEMSTariffForRegion();
	if(ctrl.value == '00'||ctrl.value == '-1'){
		$('#result').text('');
		$('#districts').html('');
		return false;
	}	
	$('#expand-link').text('уточните город');
	$('#districts').load('/Calculator/GetDistricts',{regionId:ctrl.value},function(){CalculateDeliveryCost();});
}
function OnDisctrictChange(ctrl, _regionId){
	$('#localities').load('/Calculator/GetLocalities', {regionId:_regionId, districtId:ctrl.value},
		function(){
			CalculateDeliveryCost();
			if(ctrl.value != '-1'){
				$('#expand-link').text($('#districtId option:selected').text());
			}
			else
				$('#expand-link').text('уточните город');
		}
	);
}
function OnLocalityChange(ctrl){
	 CalculateDeliveryCost();
	 if(ctrl.value != '-1'){
		$('#expand-link').text($('#districtId option:selected').text()+' - '+$('#localityId option:selected').text());
	 }
	 else
		$('#expand-link').text('уточните город');
}
function CalculateDeliveryCost(){
	var region = $('#regions').val() && $('#regions').val()!='-1' ? $('#regions').val(): '00';
	var district = $('#districtId').val() && $('#districtId').val()!='-1' ? $('#districtId').val(): '000';
	var locality = $('#localityId').val() && $('#localityId').val()!='-1' ? $('#localityId').val(): '000';
	var localityname = $('#localityName').length >0?$('#localityName').val():'';
	$('#result').load('/Calculator/CalculateDeliveryCost',
		{
			regionId:region, districtId:district, localityId:locality, weight:$('#weight').val(), price:$('#price').val(), localityName:localityname
		}
	);
}
function GetEMSTariffForRegion(){
	var region = $('#regions').val() && $('#regions').val()!='-1' ? $('#regions').val(): '00';
	if(region == '00'){
		$('#ems-tariff-text').hide();
		return;
	}
	$('#ems-tariff-text').show();
	$.post('/Calculator/GetEMSTariff',{regionId:region, weight:$('#weight').val()},
		function(data){
			if(data =='0' || !data){$('#ems-tariff-text').hide();}else{$('#ems-price').text(data);} 
		}
	);
}
function FadeInNotify(num){
	var id = '#notify'+num;
	$(id).show();
	$(id).fadeOut(3000);
}
function ChangeOzonDeliveryType(isPageFirstInit){
	var checkedVal = $('@name=[OZON_DELIVERY_TYPE] @checked=[checked]').val();
	if(checkedVal == 'ozon'){
		$('.ozon-delivery-field').show();
	}
	else{
		$('.ozon-delivery-field').hide();
	}
	UpdateDelivery();
}
function OnChangeOzonDeliveryCity(processChecked){
	var deliveryType = $('@name=[OZON_DELIVERY_TYPE] @checked=[checked]').val();
	var selected = $('#OZON_DELIVERY_CITY option:selected');
	var selectedValue = selected.val();
	var selectedText = selected.text();
	$('#locality').val(selectedText);
	if(deliveryType != 'ozon' && processChecked){
		$('@name=[OZON_DELIVERY_TYPE] @checked=[checked]').removeAttr('checked');
	}
	$('#ekat-self-delivery-group, #tver-self-delivery-group, #spb-self-delivery-group, #tyumen_self-delivery-group, #moscow-self-delivery-group, #outsideKAD-msg,#perm_self-delivery-group,#novosibirsk_self-delivery-group,#nnovgorod_self-delivery-group,#vladivostok_self-delivery-group').hide();
	$('#delivery-type').show();
	switch(selectedValue){
		case '7800000000000': $('#spb-self-delivery-group').show(); break;
		case '6600000100000': $('#ekat-self-delivery-group').show(); break;
		case '6900000100000': $('#tver-self-delivery-group').show(); break;
		case '7200000100000': $('#tyumen_self-delivery-group').show(); break;
		case '7700000000000': $('#moscow-self-delivery-group').show();break;
		case '5900000100000': $('#perm_self-delivery-group').show(); break;
		case '5400000100000': $('#novosibirsk_self-delivery-group').show(); break;
		case '5200000100000': $('#nnovgorod_self-delivery-group').show(); break;
		case '2500000100000': $('#vladivostok_self-delivery-group').show(); break;
		default:
			if (selectedValue != '' && selectedValue != '-1') {
				$('#OZON_DELIVERY_TYPE1').attr('checked', 'checked');
				$('#delivery-type').hide();
				$('.ozon-delivery-field, #outsideKAD-msg').show();
			}
			break;
	}
}
function ShowHideCalculator(isExpand){
	$('#calc-form').toggleClass('hide');
	if(isExpand){
		$('#expand-link').hide();
		$('#collapse-link').show();
	}else{
		$('#expand-link').show();
		$('#collapse-link').hide();
	}
	return false;
}
function SelectOptState(ctrl, merchId){
	if(ctrl!=null){
		$.post('/Opt/ChangeWholesaleState',{merchID:merchId, value:ctrl.value});
	}
}
function OnChecked(area, ctrl, merchID){
	if(ctrl){
		$.post('/MarketsExport/ChangeExportingFlag',{exportArea:area, param:merchID+'_'+ctrl.checked});
	}
}
function SetBackground() {
 var my_div = $('<div id="fon"></div>');
    my_div.appendTo(document.body);

    var footer = document.getElementById('footer');
    if ($('#fon').length < 1 || footer == null)
        return;
	hideSelectBoxes();
	hideFlash();
    $('#fon').css({'height': (footer.offsetTop + footer.offsetHeight),'width':document.body.scrollWidth,'opacity':'0.4','position':'absolute','background-color':'#000','top':0,'left':0,'z-index':99}).show();
}
function RemoveBackground(){
	showFlash();
	showSelectBoxes();
	$('#fon').remove();
}
function showSelectBoxes() {
    var selects = document.getElementsByTagName("select");
    for (i = 0; i != selects.length; i++) {
        selects[i].style.visibility = "visible";
    }
}
function hideSelectBoxes() {
    var selects = document.getElementsByTagName("select");
    for (i = 0; i != selects.length; i++) {
        selects[i].style.visibility = "hidden";
    }
}
function showFlash() {
    var flashObjects = document.getElementsByTagName("object");
    for (i = 0; i != flashObjects.length; i++) {
        flashObjects[i].style.visibility = "visible";
    }

    var flashEmbeds = document.getElementsByTagName("embeds");
    for (i = 0; i != flashEmbeds.length; i++) {
        flashEmbeds[i].style.visibility = "visible";
    }
}
function hideFlash() {
    var flashObjects = document.getElementsByTagName("object");
    for (i = 0; i != flashObjects.length; i++) {
        flashObjects[i].style.visibility = "hidden";
    }

    var flashEmbeds = document.getElementsByTagName("embeds");
    for (i = 0; i != flashEmbeds.length; i++) {
        flashEmbeds[i].style.visibility = "hidden";
    }
}
function GetRequestCallHtml(merchId){
	return '<div class="request-call-div">\
	<form method="post" action="#" id="request-call-form"><input type="hidden" name="merchId" value="'+merchId+'" />\
		<table class="request-call">\
			<tr><td>Ваше имя</td><td><input class="text" type="text" name="name" value="" /></td></tr>\
			<tr><td>Телефон для связи</td><td><input class="text" type="text" name="phone" value=""/></td></tr>\
			<tr><td>Желаемая дата звонка</td><td><select name="data"><option value="0">сегодня</option><option value="1">завтра</option><option value="2">послезавтра</option></select></td></tr>\
			<tr><td>Желаемое время звонка</td><td>с&nbsp;<select name="timefrom" onchange="var timeTo=Number(this.value)+2; $(\'#timeto\').text(\'до \'+timeTo)"><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option></select>&nbsp;<span id="timeto">до 12</span>&nbsp;(по Московскому времени)</td></tr>\
			<tr><td>Сообщение</td><td><textarea name="msg" class="text" cols="20" rows="3"></textarea></td></tr>\
			<tr><td></td><td style="text-align:right;"><input class="button" type="button" value="Заказать" onclick="RequestCall();" /><input class="button" type="button" value="Закрыть"  onclick="$(\'.request-call-wrapper\').remove();RemoveBackground();" /></td></tr>\
		</table></form></div>';
}
function PopUpRequestCallDialog(merchId){
	SetBackground();
	var wrapper = '<div class="request-call-wrapper"></div>'
	$(document.body).append(wrapper);
	$('.request-call-wrapper').append(GetRequestCallHtml(merchId));
	var wsize = windowWorkSize();
	var left = wsize[0]/2 - 200 + "px";
	var top  = wsize[1]/2 - 100 + (document.body.scrollTop || document.documentElement.scrollTop) + "px";	
	$('.request-call-wrapper').css('top', top).css('left', left);
	return false;
}
function windowWorkSize(){
	var wwSize = new Array();
	if (window.innerHeight !== undefined){
		wwSize = [window.innerWidth,window.innerHeight];
	}
	else{
		wwSizeIE = (document.body.clientWidth) ? document.documentElement : document.body; 
		wwSize = [wwSizeIE.clientWidth, wwSizeIE.clientHeight];
	};
	return wwSize;
};
function RequestCall(){
	var formData = $("#request-call-form").serializeArray();
	$.post('/RequestCall/SendCallRequest',formData, function(data){
		if(data && data=="True"){
			$('.request-call-wrapper').html('<center><b>Запрос успешно отправлен</b><br /><br /><input type="button" class="button" value="OK" style="padding:2px 15px;" /></center>');
			$('.request-call-wrapper,#fon').click(function(){$('.request-call-wrapper').remove();RemoveBackground();});
		}
		else{
			$('.request-call-wrapper').html(GetRequestCallHtml(''));
			$('#request-call-form input[name=merchId]').val(formData[0].value);
			$('#request-call-form input[name=name]').val(formData[1].value);
			$('#request-call-form input[name=phone]').val(formData[2].value);
			$('#request-call-form select[name=data]').val(formData[3].value);
			$('#request-call-form select[name=timefrom]').val(formData[4].value);
			var timeTo = Number(formData[4].value) + 2;
			$('#timeto').text('до '+timeTo);
			$('#request-call-form textarea[name=msg]').val(formData[5].value);
			$('.request-call-wrapper').append('<br /><span class="error">Не указано или указано неверно одно или несколько полей</span>');
		}
	});
	$('.request-call-wrapper').html('<center><img src="/Content/images/loading.gif" alt="Отправление запроса" /></center>');
}
function GetBalloonHtml(){
	return '<div class="balloon-wrapper">\
				<div class="balloon">\
					<b class="b1"></b><b class="b-balloon2"></b><b class="b-balloon3"></b>\
					<div class="round-box" style="background-color:#ecf4f9;padding:3px 5px;"><div class="balloon-content"></div></div>\
					<b class="b-balloon3"></b><b class="b-balloon2"></b><b class="b1"></b>\
				</div>\
			</div>';
}
function PopUpBalloon(top, left){
	$(document.body).append(GetBalloonHtml());
	$('.balloon-wrapper .balloon-content').html($('.balloon-content-container').html());
	$('.balloon-wrapper').css('top', top).css('left', left).fadeIn(500).fadeOut(3500,function(){$('.rel-div').show();});
}
function ShowMap(ctrl){
	var wsize = windowWorkSize();
	var top = wsize[1]/2 -400 + (document.body.scrollTop || document.documentElement.scrollTop) + "px";
	$(ctrl).children('span').css({'top':top, 'left':0}).fadeIn();
}
function InitBubbleUp(selector_li){
	$(selector_li).hover(
		function(){$(this).find('img').stop().css({'z-index' : 100, 'top' : 0, 'left' : 0, 'width' : 24 }).animate({left: '-=4',top: '-=4',width: 32, 'opacity': 1}, 100);},
		function(){$(this).find('img').stop().animate({left: 0,top: 0,width: 24, opacity: 0.7}, 100, function() {$(this).css({'z-index' : 0});});}
	).find('img').css('opacity', 0.7);
}
function GetBuyInOneClickHtml(merchId){
	return '<div class="balloon-wrapper one-click-buy">\
				<div style="width:420px;">\
					<b class="b1"></b><b class="b-balloon2"></b><b class="b-balloon3"></b>\
					<div class="round-box" style="background-color:#ecf4f9;padding:3px 5px;">\
						<div class="balloon-content">\
							<form method="post" action="#" id="request-oneclick-purchase"><input type="hidden" name="merchId" value="'+merchId+'" />\
								<table class="request-call">\
									<tr><td colspan="2" style="font-size:12px;font-weight:bold;">Укажите своё имя и телефон, что бы наши операторы связались с вами для уточнения вашего заказа<br /><br /></td></tr>\
									<tr><td>Ваше имя</td><td><input class="text" type="text" name="name" value="" /></td></tr>\
									<tr><td>Телефон для связи</td><td><input class="text" type="text" name="phone" value=""/></td></tr>\
									<tr><td></td><td style="text-align:right;"><input class="button" type="button" value="Купить" onclick="RequestOneClickPurchase();" /><input class="button" type="button" value="Закрыть"  onclick="$(\'.one-click-buy\').remove();RemoveBackground();" /></td></tr>\
								</table></form>\
							<center id="OK-result" class="hide"><b>Запрос успешно отправлен</b><br /><br /><input type="button" class="button" value="OK" style="padding:2px 15px;" /></center>\
							<center id="ERROR-result" class="hide"><span class="error">Не указано или указано неверно одно или несколько полей</span></center>\
							<center id="LoadingMsg" class="hide"><img src="/Content/images/loading.gif" alt="Отправка запроса" /></center>\
						</div>\
					</div>\
					<b class="b-balloon3"></b><b class="b-balloon2"></b><b class="b1"></b>\
				</div>\
			</div>';
}
function PopUpBuyInOneClickDialog(merchId, e){
	SetBackground();
	$(document.body).append(GetBuyInOneClickHtml(merchId));
	var wsize = windowWorkSize();
	var _left = wsize[0]/2 - 200 + "px";
	var _top  = wsize[1]/2 - 100 + (document.body.scrollTop || document.documentElement.scrollTop) + "px";
	$('.balloon-wrapper').css({top: _top, left:_left}).fadeIn(500);
	StopPropagation(e);
}
function RequestOneClickPurchase(){
	var formData = $('#request-oneclick-purchase').serializeArray();
	$.post('/Order/RequestOneClickPurchase',formData, function(data){
		if(data && data=="True"){
			$('#request-oneclick-purchase, #LoadingMsg, #ERROR-result').hide();
			$('#OK-result').show();
			$('.one-click-buy .balloon-content,#fon, #OK-result .button').click(function(){$('.one-click-buy').remove();RemoveBackground();});
		}else{
			$('#request-oneclick-purchase, #ERROR-result').show();
			$('#LoadingMsg,#OK-result,').hide();
		}
	});
	$('#request-oneclick-purchase, #OK-result, #ERROR-result').hide();
	$('#LoadingMsg').show();
}

function InitAutoCompleteField() {
	$('#locality').autocomplete({
		serviceUrl: '/LocalitiesSelect',
		minChars: 3,
		delimiter: /(,|;)\s*/,
		width: 'auto',
		onSelect: function (value, data) { $('#DESTINATION_KLADRID').val(data); UpdateDelivery(); return false; },
		noCache: true
	});
}
function UpdateDelivery() {
	$('#order-calculator').load('/CalculateDelivery', $("#orderform").serializeArray());
}
