var tb_pathToImage = "/img/loadingAnimation.gif";

/* Cart routines */
function addToCart(tbl, good_id, param_id, price, count) {

	var count = parseInt(count);
  var price = parseFloat(price);

	if (tbl && good_id && param_id && price && count) {
		if (in_cart(tbl, good_id, param_id)) {
			$('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />Этот товар уже есть в корзине');	
		}else {
			var _ids = $.cookie('_ids')	;
			_ids = (_ids) ? _ids + escape(';' + tbl+','+ good_id+','+ param_id+','+price+','+count) : escape(tbl+','+good_id+','+ param_id+','+price+','+count);
			$.cookie('_ids', _ids, {path:'/'});
			$('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />Товар добавлен в корзину');
         setCart();
		}
	}
}

function delCart(tbl, good_id, param_id, price, count) {
	var count = parseInt(count);
  var price = parseFloat(price);

	if (confirm('Удалить товар из корзины?')) {
		
		var _ids = unescape($.cookie('_ids'));
		if (_ids) {
			var ar = _ids.split(";");	
			var loc = _ids.replace(tbl+','+good_id+','+param_id+','+price+','+count, '');
			loc = loc.replace(/(\;{2,})/, ';');
			loc = loc.replace(/(^\;)|(\;$)/, '');
		} else return false;
		
		if (loc > '') {	$.cookie('_ids', escape(loc), {path:'/'}); }
		else{ 
			$.cookie('_ids', null, { path:'/', expires: -1 }); 
			window.location = "/shop_index/";
			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 arr = calcSum();

	if (!arr[0] || !arr[1]) {
		$("#basketCount").html('0');
		$("#basketSum").html('0.00');
		$("#basket").find("a.basket").attr("href", "");
	}
	else {			
		$("#basketCount").html(parseInt(arr[0])+" ");
		$("#basketSum").html(numberFormat(parseFloat(arr[1]), " ", "."));
		$("#basket").find("a.basket").attr("href", "/shop_cart/");
	}
}

function calcSum() {
	var _ids =   unescape($.cookie('_ids'));
	var arr = _ids.split(";");

	var sum = 0; var count = 0;
	for (var key in arr) {
		var val = arr[key].split(",");
		var price = parseFloat(val[3]);
		count += parseInt(val[4]);
		sum += price*parseInt(val[4]);
	}
	return new Array(count, sum);	
}

function chCount(tbl, good, param, 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 =   unescape($.cookie('_ids'));
	var loc = _ids.replace(tbl+','+good+','+param+','+price+','+oldCount, tbl+','+good+','+param+','+price+','+newCount);
	$.cookie('_ids', escape(loc), {path:'/'});
	setCart();
	$('#cartData').load("/tpl/ajax/cart.html", {},  function() { $('#waiter').jqmHide(); });	
}

function in_cart(tbl, good, param) {
	var _ids = unescape($.cookie('_ids'));
	if (_ids) {
		var ar = _ids.split(";");
		for (i=0; i<=ar.length-1;  i++) { 
			var val = ar[i].split(",");
			if (parseInt(tbl)==parseInt(val[0]) && parseInt(good)==parseInt(val[1]) && parseInt(param)==parseInt(val[2])) return true;
		}
	}		
  	return false;
}

function checkCart() {
	
	if (!$.cookie('_dlv')) {alert('Укажите способ доставки'); return false; }	
	else window.location='/order/';
}

/*** User and logon routines ************/

function logout() { 
	$.cookie('_user', null, { path:'/', expires: -1 });
	$('#orderHistory').html("<tr><td class='data' style='background:none'>Нет записей</td></tr>");
	$("#registerFrm").clearForm(); 
	$("#registerOrdFrm").clearForm();
	$("#logonFrm").clearForm(); 
	if (/(order)/.test(window.location)) {
		$("a[href=#tab2]").html("Зарегистрированный покупатель");
		$("a[href=#tab1]").html("Новый покупатель");
	}
	$('#tab2').hide();
	$('#tab1').show();
	$('a[href=#tab2]').removeClass('selected');
	$('a[href=#tab1]').addClass('selected');
	$('#pas').show();
	$('#cpas').show();
   $('#uInfo').hide();
   $('#logon').show();
   $('#auth').show();
}

function fillUserForm(data) { 
	$('input[name=_userID]').val(data.id); 
	$('input[name=_userMail]').val(data.email);
   $('input[name=_pass]').val(data.pass);
	$('input[name=_userName]').val(data.name);
	$('input[name=_userFamily]').val(data.family);	
	$('input[name=_userCity]').val(data.city);
	$('input[name=_userAddr]').val(data.addr);
	$('input[name=_userPhone]').val(data.phone);
	$('#uName').html(data.family);
   $('#_family').html(data.family);
   $('#_name').html(data.name);
   $('#_email').html(data.email);

}
 
function showUserInfo() {
	if (/(order)/.test(window.location)) {
		$("a[href=#tab1]").html("Подтвердите данные");
		$('a[href=#tab1]').addClass('selected');
   	$('a[href=#tab2]').removeClass('selected');
		$('a[href=#tab3]').removeClass('selected');
		$('#tab3').hide();
		$('#tab2').hide();
		$('#tab1').show();
	}
	if (/(register)/.test(window.location)) {
		$("a[href=#tab1]").html("Изменить данные");
		$('a[href=#tab1]').addClass('selected');
		$('a[href=#tab2]').removeClass('selected');
		$('a[href=#tab3]').removeClass('selected');
		$('#tab3').load("/tpl/ajax/get_orders.html", {uid: $.cookie('_user')});
		$('#tab3').hide();
		$('#tab2').hide();
		$('#tab1').show();
	}
   $('#auth').hide();
   $('#topInfo').show();
	
	$('#logon').hide();
	$('#uInfo').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();
      $('#loginer').hide();
		$('#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 Routines ********/
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 Order Routines ********/
function successOrder(data)  {
	if (parseInt(data.result) <=0 ) { 
		$.cookie('_ids', null, { path:'/', expires: -1 });
		$.cookie('_dlv', null, { path:'/', expires: -1 });
		$('#ordData').hide();
		$('#ordNumber').html(data.number);
      setCart();
		$('#ordResult').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 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] input[name=_code]').val()) { alert('Укажите код'); return false; }
    $('#waiter').jqmShow().find('div.jqmdMSG').html('<br /><br />	<img src="/img/indicator.gif" /> &nbsp; Проверка данных'); 
}


/***************************************************************************************/

$().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'  
	});
	
	$("#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'
	});
		
	if ($.cookie('_user')) showUserInfo();
	else logout();
	
	if (/(cart)/.test(window.location))	$('#cartData').load("/tpl/ajax/cart.html");
  
	
  setCart();
});
	
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));
}	
