﻿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) {
    if ($('#' + itemId).length == 1)
        $('#' + itemId).css('visibility', 'visible');
    AsyncRequest(URL, '#basket');
	$('#notify'+itemId).show();
	$('#notify'+itemId).fadeOut(3000);
}
function ItemFullViewAddBasket(URL) {
    tail = $('#CodeSelect').length == 0 ? 0 : $('#CodeSelect').val();
    if (tail == -1) {
        $('#Select_Code_Notifier').show();
        return false;
    } else
        $('#Select_Code_Notifier').hide();
	$('#notify').show();
	$('#notify').fadeOut(1000);
    AsyncRequest(URL + '/' + tail, '#basket');
}
function AsyncRequest(url, updateElementId) {
    try {
        url = url.replace(/ /g, '%20');
        $(updateElementId).load(url,
			function(){
				$('#basket-add').show();
				$('#basket-add').fadeOut(2000);
			}
		);
        StopPropagation(event);
    }
    catch (e) { }
}
function ChangeRate(id,_mark){
	$('#rate'+id).load('/ChangeRating',{merchId:id,mark:_mark});
}
function OrderTabClick(tabName){
	$('#OrderDiv').load('/Purchase/'+tabName);
}
$(document).ready(
	function(){
		setTextProtection("", "protected"); 
		setImageProtection("", "protected");
		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
			//before: onBefore
		}); 
		Slider_Initialise('#slide-goods');
		
	}
);
function ToggleBasket(){
	if($.cookie('basket-show') == 1){
		$.cookie('basket-show','0');
		$('#basket-items').hide();
	}
	else{
		$.cookie('basket-show','1');
		$('#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('/GetDistricts/'+ctrl.value,function(){CalculateDeliveryCost();});
}

function OnDisctrictChange(ctrl, regionId){
	$('#localities').load('/GetLocalities/'+regionId+'/'+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';
	$('#result').load('/CalculateSubmit',
		{
			regionId:region, districtId:district, localityId:locality, weight:$('#weight').val(), price:$('#price').val()
		}
	);
}
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('/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();
	}
}
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();
	$('#CITY').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').hide();
	$('#delivery-type').show();
	switch(selectedValue){
		case '2801':
			$('#spb-self-delivery-group').show();
			if(selectedText!='Санкт-Петербург'){
				$('#OZON_DELIVERY_TYPE1').attr('checked','checked');
				$('#delivery-type').hide();
				$('.ozon-delivery-field, #outsideKAD-msg').show();
			}
			break;
		case '1861':$('#ekat-self-delivery-group').show(); break;
		case '1858':$('#tver-self-delivery-group').show(); break;
		case '1869':$('#tyumen_self-delivery-group').show();break;
		case '2800':
			$('#moscow-self-delivery-group').show();
			if(selectedText!='Москва'){
				$('#OZON_DELIVERY_TYPE1').attr('checked','checked');
				$('#delivery-type').hide();
				$('.ozon-delivery-field, #outsideKAD-msg').show();
			}
			break;
	}//}else{$('#OZON_DELIVERY_TYPE1').attr('checked','checked');$('.ozon-delivery-field').show()};
}
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 SetEditorBackground() {
    var my_div = $('<div id="fon"></div>');

    my_div.appendTo(document.body);

    var footer = document.getElementById('footer');
    if ($('#fon').length < 1 || footer == null)
        return;

	$('#fon').css('height', footer.offsetTop + footer.offsetHeight);
    $('#fon').css('width', document.body.scrollWidth);
}

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, #fon\').remove();showSelectBoxes();" /></td></tr>\
		</table></form></div>';
}
function PopUpRequestCallDialog(merchId){
	SetEditorBackground();
	hideSelectBoxes();
	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, #fon').remove();showSelectBoxes();});
		}
		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/img/loading.gif" alt="Отправление запроса" /></center>');
}
