var tb_pathToImage = "/img/loadingAnimation.gif";

/* Compare routines */
function showCompare(owner) {
	if (parseInt(owner)) {
		var width = 1000;
		var height = 700;
		var x = parseInt(screen.width / 2.0) - (width / 2.0);
		var y = parseInt(screen.height / 2.0) - (height / 2.0);
		var win = window.open("/compare/"+owner+"/", "Сравнение", "top=" + y + ",left=" + x + ",status=yes, scrollbars=yes,width=" + width + ",height=" + height + ",resizable=yes");
		win.focus();
	}
}

function toCompare(owner, tbl, good_id, flag) {

	if (owner && tbl && good_id) {
		if (flag) addToCompare(owner, tbl, good_id);
		else delCompare(owner, tbl, good_id);
	}
}

function addToCompare(owner, tbl, good_id) {
	if (!in_compare(owner, tbl, good_id)) {
		var _cps = $.cookie('_cps')	;
		_cps = (_cps) ? _cps + ';' +owner+','+tbl+','+ good_id : owner+','+tbl+','+good_id;
		$.cookie('_cps', _cps, {path:'/'});
		setCompare(owner);
	}
}

function in_compare(owner, tbl, good) {
	var _cps = $.cookie('_cps')	;
	if (_cps) {
		var ar = _cps.split(";");
		for (i=0; i<=ar.length-1;  i++) {
			var val = ar[i].split(",");
			if (parseInt(good)==parseInt(val[2]) && parseInt(tbl)==parseInt(val[1]) && parseInt(owner)==parseInt(val[0])) return true;
		}
	}
  	return false;
}

function setCompare(owner) {
	var count=0;
	var _cps =   $.cookie('_cps');
	if (_cps <= '' || !parseInt(owner)) {
		$("#navigate a[@class=compare]").html('Сравнить отмеченные (0)');
	}
	else {
		var arr = _cps.split(";");
		for (i=0; i<=arr.length-1;  i++) {
			var val = arr[i].split(",");
			if (val[0]==owner) count++;
		}
		$("#navigate a[@class=compare]").html('Сравнить отмеченные ('+count+')');
	}
}

function delCompare(owner, tbl, good_id) {

	var _cps = $.cookie('_cps')	;
	if (_cps) {
		var ar = _cps.split(";");
		var loc = _cps.replace(owner+','+tbl+','+good_id, '');
		loc = loc.replace(/(\;{2,})/, ';');
		loc = loc.replace(/(^\;)|(\;$)/, '');
	} else return false;

	if (loc > '') {	$.cookie('_cps', loc, {path:'/'}); }
	else $.cookie('_cps', null, { path:'/', expires: -1 });
	setCompare(owner);
}


/* Cart routines */
function addToCart(tbl, good_id, price, count) {

	var count = parseInt(count);

	if (tbl && good_id && price && count) {
		if (in_cart(tbl, good_id)) {
			$('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />Этот товар уже есть в корзине');
		}else {
			var _ids = $.cookie('_ids')	;
			_ids = (_ids) ? _ids + ';' +tbl+','+ good_id+','+price+','+count : tbl+','+good_id+','+price+','+count;
			$.cookie('_ids', _ids, {path:'/'});
			setCart();
			$('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />Товар добавлен в корзину');
		}
	}
}

function delCart(tbl, good_id, price, count) {
	if (confirm('Удалить товар из корзины?')) {

		var _ids = $.cookie('_ids')	;
		if (_ids) {
			var ar = _ids.split(";");
			var loc = _ids.replace(tbl+','+good_id+','+price+','+count, '');
			loc = loc.replace(/(\;{2,})/, ';');
			loc = loc.replace(/(^\;)|(\;$)/, '');
		} else return false;

		if (loc > '') {	$.cookie('_ids', loc, {path:'/'}); }
		else{
			$.cookie('_ids', null, { path:'/', expires: -1 });
			window.location = "/";
			return false;
		}

		$('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />	<img src="/img/indicator.gif" /> &nbsp; Подождите...');
		setCart();
		$('#cartData').load("/tpl/ajax/cart.html", {},  function() { $('#waiter').jqmHide(); });
	}
}

function setCart() {

	var _ids =   $.cookie('_ids');

	if (_ids <= '') {
		$("#cartCount").html('0 шт.');
		$("#cartSum").html('0.00 руб');
		$("a[@name=cartHref]").attr("href", '');
		$("#b_h_link").hide();
	}
	else {
		var arr = calcSum(0);
		if (arr[1] >= arr[2] && arr[1] < arr[3]) arr = calcSum(1);
		if (arr[1] >= arr[3]) arr = calcSum(2);

		$("a[@name=cartHref]").attr('href', '/cart/');
        $("a[@name=cartHref]").css({'text-decoration':'underline !important', 'color':'#cc0000'});
		$("#cartCount").html(arr[0]+" шт.");
		$("#cartSum").html(numberFormat(arr[1], " ", ".")+" руб");
		$("#b_h_link").show();
	}
}

function calcSum(priceNum) {
	var _ids =   $.cookie('_ids');
	var arr = _ids.split(";");
	var sum = 0; var count = 0;
	for (i=0; i<=arr.length-1;  i++) {
			var val = arr[i].split(",");
			var prices = val[2].split(':');
			var price = parseFloat(prices[priceNum]) ? parseFloat(prices[priceNum]) : parseFloat(prices[0]);
			var dSum1 = parseFloat(prices[3]);
			var dSum2 = parseFloat(prices[4]);
			count += parseInt(val[3]);
			sum += parseFloat(price)*parseInt(val[3]);
	}
	return new Array(count, sum, dSum1, dSum2);
}

function chCount(tbl, good, price, oldCount, newCount) {
	newCount = parseInt(newCount);
	if (!newCount) return false;
	$('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />	<img src="/img/indicator.gif" /> &nbsp; Подождите...');
	var _ids =   $.cookie('_ids');
	var loc = _ids.replace(tbl+','+good+','+price+','+oldCount, tbl+','+good+','+price+','+newCount);
	$.cookie('_ids', loc, {path:'/'});
	setCart();
	$('#cartData').load("/tpl/ajax/cart.html", {},  function() { $('#waiter').jqmHide(); });
}

function in_cart(tbl, good) {
	var _ids = $.cookie('_ids')	;
	if (_ids) {
		var ar = _ids.split(";");
		for (i=0; i<=ar.length-1;  i++) {
			var val = ar[i].split(",");
			if (parseInt(good)==parseInt(val[1]) && parseInt(tbl)==parseInt(val[0])) return true;
		}
	}
  	return false;
}

function setDelivery(flag, data) {
	var	full = 0;
	var line = parseFloat($('#sum').val());
	var arr = data.split(";");

	if (parseInt(arr[0]) > 0) $.cookie('_dlv', arr[0]+';'+parseInt(arr[1]), {path:'/'});
	else $.cookie('_dlv', null, { path:'/', expires: -1 });

	if (arr[0]=='1') { $('#basketStocks').show();}
	else $('#basketStocks').hide();

	if (parseInt(flag) <= 0) {
		$("#_deliveryCost").val(0);
		$("#fullSum").html(numberFormat(line, " ", "."));
	}
	else {
		full = parseInt(arr[1])+line;

		$("#_deliveryCost").val(parseInt(arr[1]));
		$("#dlvSum").html(arr[1]);
		$("#fullSum").html(numberFormat(full, " ", "."));
	}
}

function setStock(data) {
	if (parseInt(data) > 0) $.cookie('_stk', parseInt(data), {path:'/'});
	else $.cookie('_stk', null, { path:'/', expires: -1 });
}

function checkCart() {

	if (!$.cookie('_dlv')) {alert('Укажите способ доставки'); return false; }
	else if ($('#basketStocks').css("display")!='none' && !$('#_stock').val()) {alert('Укажите склад'); return false; }
	else window.location='/order/';
}

/*** User and logon routines ************/

function userInfo() {
	var uID = parseInt($.cookie('_user'));
	if (uID) {
		$.getJSON('/tpl/ajax/user_info.html', {uid: uID},
			function (data)	{
			$('#uName').html(data.name);
			$('#uFamily').html(data.family);
			$('#uOrg').html(data.org);
			}
		);
	}
	else logout();
}


function logout() {
	$.cookie('_user', null, { path:'/', expires: -1 });
	$('#orderHistory').html("<tr><td class='data' style='background:none'>Нет записей</td></tr>");
	$("#registerFrm").clearForm();
	$("#registerOrdFrm").clearForm();
	if (/(order)/.test(window.location)) $("a[@href=#tab1]").html("Новый покупатель");
	if (/(register)/.test(window.location)) $("a[@href=#tab1]").html("Зарегистрированный покупатель");
	$('#tab3').hide();
	$('#tab2').hide();
	$('#tab1').show();
	$('a[@href=#tab3]').removeClass('selected');
	$('a[@href=#tab2]').removeClass('selected');
	$('a[@href=#tab1]').addClass('selected');
	$('#pas').show();
	$('#cpas').show();
	$('#logon').show();
	$('#rlogon').show();
	$('#uInfo').hide();
	$('#ruInfo').hide();

}

function fillUserForm(data) {
	$('input[@name=_userID]').val(data.id);
	$('input[@name=_userMail]').val(data.email);
	$('input[@name=_userName]').val(data.name);
	$('input[@name=_userFamily]').val(data.family);
	$('#uName').html(data.name);
	$('#uFamily').html(data.family);
	$('#uOrg').html(data.org);

	$('#name').html(data.name);
	$('#family').html(data.family);
	$('#org').html(data.org);
	$('#email').html(data.email);
	$('input[@name=_userRang]').val(data.rang);
	$('input[@name=_userCity]').val(data.city);
	$('input[@name=_userAddr]').val(data.addr);
	$('input[@name=_userPhone]').val(data.phone);
	$('input[@name=_userOrg]').val(data.org);
}

function showUserInfo() {
	if (/(order)/.test(window.location)) {
		$("a[@href=#tab1]").html("Подтвердите данные");
		$('a[@href=#tab2]').removeClass('selected');
		$('a[@href=#tab1]').addClass('selected');
		$('a[@href=#tab3]').removeClass('selected');
		$('#tab3').hide();
		$('#tab2').hide();
		$('#tab1').show();
	}
	if (/(register)/.test(window.location)) {
		$("a[@href=#tab2]").html("Изменить данные");
		$('a[@href=#tab1]').removeClass('selected');
		$('a[@href=#tab2]').addClass('selected');
		$('a[@href=#tab3]').removeClass('selected');
		$('#tab3').load("/tpl/ajax/get_orders.html", {uid: $.cookie('_user')});
		$('#tab3').hide();
		$('#tab1').hide();
		$('#tab2').show();
	}

	userInfo();

	$('#logon').hide(); $('#rlogon').hide();
	$('#pas').hide();	$('#cpas').hide();
	$('#uInfo').show(); $('#ruInfo').show();
}

function successLogon(data)  {
	if (data.id <=0 ) $('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />Посетителя с таким Email и паролем не найдено');
	else {
		$.cookie('_user', data.id, {path:'/', expires: ((data.remember) ? 900 : '')});

		fillUserForm(data);
		showUserInfo();
		$('#waiter').jqmHide();
	};
}

function validLogon(formData, jqForm, options) {

    if (!jqForm[0].email.value || !jqForm[0].pass.value) {
        alert('Укажите Email и Пароль');
        return false;
    }
    else $('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />	<img src="/img/indicator.gif" /> &nbsp; Проверка данных');
}

/***** Remind Rootines ********/
function successForgot(data)  {
	if (parseInt(data.result) <=0 ) {
		$('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />	Пароль отправлен');
		$('#forgot').hide();
		$('#logon').show();
	}
	else $('#waiter').jqmShow().find('div.jqmdMSG').html('<br />Покупатель с таким адресом не зарегистрирован<br />');
}

function validForgot(formData, jqForm, options) {
    if (!$('form[@name=forgotFrm] input[@name=email]').val()) { alert('Укажите Емейл'); return false; }
    $('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />	<img src="/img/indicator.gif" /> &nbsp; Проверка данных');
}

/***** Register Rootines ********/
function successRegister(data)  {
	if (parseInt(data.result) <=0 ) {
		$('#regData').hide();
		$('#regResult').show();
		$('#waiter').jqmHide();
	}
	else {
		if (parseInt(data.result)==1)  $('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />Вы ввели неверный код');
		if (parseInt(data.result)==2)  $('#waiter').jqmShow().find('div.jqmdMSG').html('<br />Пользователь с таким Email зарегистрирован. <br /><br />Необходимо выполнить вход');
	}
}

function validRegister(formData, jqForm, options) {
    if (!$('form[@name=registerFrm] input[@name=_userMail]').val()) { alert('Укажите Email'); return false; }
    if ($('#pas').css("display") == "block") {
   		if (!$('form[@name=registerFrm] input[@name=_pass]').val()) { alert('Укажите Пароль'); return false; }
   		if ($('form[@name=registerFrm] input[@name=_ch_pass]').val()!=$('input[@name=_pass]').val()) { alert('Проверьте пароль'); return false; }
    }
    if (!$('form[@name=registerFrm] input[@name=_userFamily]').val()) { alert('Укажите Фамилию'); return false; }
    if (!$('form[@name=registerFrm] input[@name=_userPhone]').val()) { alert('Укажите Телефон'); return false; }
    if (!$('form[@name=registerFrm] input[@name=_code]').val()) { alert('Укажите код'); return false; }
    $('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />	<img src="/img/indicator.gif" /> &nbsp; Проверка данных');
}


/***** Register Order Rootines ********/
function successOrder(data)  {
	if (parseInt(data.result) <=0 ) {
		$.cookie('_ids', null, { path:'/', expires: -1 });
		$.cookie('_dlv', null, { path:'/', expires: -1 });
		$.cookie('_stk', null, { path:'/', expires: -1 });
		$('#ordData').hide();
		$('#ordNumber').html(data.number);
		$('#ordResult').show();
		setCart();
		$('#waiter').jqmHide();
	}
	else {
		if (parseInt(data.result)==1)  $('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />Вы ввели неверный код');
		if (parseInt(data.result)==2)  $('#waiter').jqmShow().find('div.jqmdMSG').html('<br />Пользователь с таким Email зарегистрирован. <br /><br />Необходимо выполнить вход');
	}
}

function validOrder(formData, jqForm, options) {
    if (!$('form[@name=registerOrdFrm] input[@name=_userMail]').val()) { alert('Укажите Email'); return false; }
    if (!$('form[@name=registerOrdFrm] input[@name=_userPhone]').val()) { alert('Укажите Телефон'); return false; }
    if ($('#pas').css("display") == "block") {
	 	if (!$('form[@name=registerOrdFrm] input[@name=_pass]').val()) { alert('Укажите Пароль'); return false; }
	   	if ($('form[@name=registerOrdFrm] input[@name=_ch_pass]').val()!=$('input[@name=_pass]').val()) { alert('Проверьте пароль'); return false; }
    }
    if (!$('form[@name=registerOrdFrm] input[@name=_userFamily]').val()) { alert('Укажите Фамилию'); return false; }
    if (!$('form[@name=registerOrdFrm] select[@name=_userCity]').val()) { alert('Укажите город'); return false; }
    if (!$('form[@name=registerOrdFrm] input[@name=_userAddr]').val()) { alert('Укажите адрес доставки'); return false; }
    if (!$('form[@name=registerOrdFrm] input[@name=_code]').val()) { alert('Укажите код'); return false; }
    $('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />	<img src="/img/indicator.gif" /> &nbsp; Проверка данных');
}

/***** Quest Rootines ********/
function successQuest(data)  {
	if (parseInt(data.result) <=0 )
		$('#waiter').jqmShow().find('div.jqmdMSG').html('<br />Ваш вопрос добавлен. <br /><br />После проверки он будет доступен на сайте');
	else {
		if (parseInt(data.result)==1)  $('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />Вы ввели неверный код');
	}
}

function validQuest(formData, jqForm, options) {
    if (!$('form[@name=questForm] input[@name=_name]').val()) { alert('Укажите Имя'); return false; }
    if (!$('form[@name=questForm] input[@name=_email]').val()) { alert('Укажите Email'); return false; }
 	if (!$('form[@name=questForm] textarea[@name=_quest]').val()) { alert('Укажите Вопрос'); return false; }
    if (!$('form[@name=questForm] input[@name=_code]').val()) { alert('Укажите код'); return false; }
    $('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />	<img src="/img/indicator.gif" /> &nbsp; Проверка данных');
}

/***************************************************************************************/

function setBottomBg() {
	var img = [];
	img[1] = "bottomCar.jpg";
	img[2] = "bottomCar_1.jpg";
// img[3] = "bottomCar_2.jpg";
	var url = "url(/img/"+img[rand(1,3)]+") no-repeat 100% 0%";
	$('#bottomWrapper2').css("background", url);
}



$().ready(function() {
    $('#waiter').jqm({overlay:30, modal:true, trigger:false, overlayClass:'jqmOverlay'});

    $.ajax.timeout=3000;

	$("#logonFrm").ajaxForm ({
        target:        null,
        beforeSubmit:  validLogon,
        success:       successLogon,
        url:           "/tpl/ajax/login.html",
        type:          'post' ,
        dataType:      'json'
	});

	$("#rlogonFrm").ajaxForm ({
        target:        null,
        beforeSubmit:  validLogon,
        success:       successLogon,
        url:           "/tpl/ajax/login.html",
        type:          'post' ,
        dataType:      'json'
	});

	$("#registerFrm").ajaxForm ({
        target:        null,
        beforeSubmit:  validRegister,
        success:       successRegister,
        url:           "/tpl/ajax/register_check.html",
        type:          'post' ,
        dataType:      'json'
	});

	$("#registerOrdFrm").ajaxForm ({
        target:        null,
        beforeSubmit:  validOrder,
        success:       successOrder,
        url:           "/tpl/ajax/order_check.html",
        type:          'post' ,
        dataType:      'json'
	});

	$("#forgotFrm").ajaxForm ({
        target:        null,
        beforeSubmit:  validForgot,
        success:       successForgot,
        url:           "/tpl/ajax/mail_remind.html",
        type:          'post' ,
        dataType:      'json'
	});

	$("#questForm").ajaxForm ({
        target:        null,
        beforeSubmit:  validQuest,
        success:       successQuest,
        url:           "/tpl/ajax/quest_check.html",
        type:          'post' ,
        dataType:      'json'
	});

	if ($.cookie('_user')) showUserInfo();
	else logout();

	if (/(cart)/.test(window.location))	$('#cartData').load("/tpl/ajax/cart.html");

	if (/(catalog)/.test(window.location))	{

		var reg = /(catalog)(\/)(.*?)(\/)([0-9]+)(\/)/;
		var str = reg.exec(window.location);
		if (str) setCompare(str[5]);
	}

	if ($.cookie('_ids')) setCart();

	setBottomBg();

});



function rand(mini, maxi) {
	var range = maxi  - mini ;
	var n = Math.floor(Math.random()*range) + mini ;
	return n;
}



function numberFormat(num, thousands, decimals) {
	num = new String(parseFloat(num).toFixed(2));

    var re = /(-?\d+)(\d{3})(\.?)(\d+)?/;
    while (re.test(num)) {
        num = num.replace(re, "$1"+thousands+"$2"+decimals+"$4");
    }
    return unescape(escape(num));
}

function getBlock(div, plc, uri) {
	$.post("/tpl/blocks/show.html?place="+plc+"&url="+escape(uri)+"&layer="+div, function(data) {
		$('#'+div).html(data);
		$('#'+div).show();
	});
}
