$(document).ready(function() {
	$.expr[":"].acontains = function(obj, index, meta, stack) {
		if($(obj).attr('href')) return $(obj).attr('href').toLowerCase().indexOf(meta[3].toLowerCase()) >= 0;
		else return false;
	}
});

function defined(x) {return typeof(x) != 'undefined';}

function change_color(obj) {
	$(obj).toggleClass('over');
}
function inv_roller_aop(){
		$("#inv_friend").attr("value", "");
}

function remind_email_checker_show_err (err_code) {
		var msg = false;
		if (err_code == 1)
				msg = 'Введите ваш адрес электронной почты';
		if (err_code == 2)
				msg = 'Вы ошиблись при вводе адреса';
		if (err_code == 3)
				msg = 'Такого адреса нет в нашей базе. Пароль не был выслан.';
		var sign = "#ErrNode";
		if (msg) {
				remind_email_checker_show_ok(0); // Clear Ok-message
				remind_email_checker_show_wait(0); // Hide wait-message
				$(sign).removeClass('hide_it').empty().append(msg);
		} else {
				$(sign).addClass('hide_it');
		}
}

function remind_email_checker_show_ok (code) {
		var sign = "#SuccessNode";
		if (code > 0) {
				remind_email_checker_show_err(0); // Clear error-message
				remind_email_checker_show_wait(0); // Hide wait-message
				$(sign).removeClass('hide_it');
		} else {
				$(sign).addClass('hide_it');
		}
}

function remind_email_checker_show_wait (code) {
		var sign = "#WaitNode";
		if (code > 0) {
				remind_email_checker_show_err(0); // Clear error message
				remind_email_checker_show_ok(0); // Clear Ok-message
				$(sign).removeClass('hide_it');
		} else {
				$(sign).addClass('hide_it');
		}
}

function remind_email_checker() {
		var email = ($("#email") && $("#email").val()) ? $("#email").val() : false;
		if (email) {
				if (!(email.match(/@/))) {
						remind_email_checker_show_err(2); // Incorrect email
						return false;
				}
		} else {
				remind_email_checker_show_err(1); // Email not given
				return false;
		}

		var button_sign = "#submitButton";
		$(button_sign).attr("disabled", "true"); // Disable submit button
		remind_email_checker_show_wait(1); // Show wait-message

		// Make ajax request to server to send letter
		var link = '/';
		var params = {
				a:'remind_pass',
				from_ajax:1,
				email2remind:email,
				bar:4738
		};
	$.getJSON(link, params, function(json){
				if (!defined(json))
						return true; // [true] If failed to get answer from ajax script => Go to non-ajax mode => Page will be refreshed (see _a_remind_pass() in cs3_main.pm)
				var err = json.err;
				if (err > 0) {
						remind_email_checker_show_err(err);
				} else {
						remind_email_checker_show_ok(1);
				}
				$(button_sign).removeAttr("disabled"); // Enable submit button
				return false;
	});

		return false;
}

function amounter(){
	var a=parseInt($('.choose_size :selected').attr('rel')); //getting amount of goods by selected size
	var pic = $('.choose_size :selected').attr('pic');
	if(pic) {
		$('#goods_pic').remove();
		$('#super_cont').append('<img id="goods_pic" src="'+pic+'" style="display: block; margin-bottom: 15px;">');
	}
	$('.choose_num').html(''); //flush select
	if ( a == 0 ) {
		$('label[for=choose_num]').hide();
		$('.choose_num').hide();
		$('.put_in_basket').hide();
		$('.get_it_now').hide();
	} else {
		$('label[for=choose_num]').show();
		$('.choose_num').show();
		$('.put_in_basket').show();
		$('.get_it_now').show();
	}
	if ( a > 6 ) { a = 6 }; //выводить максимум по шесть
	for (var i = 0; i < a; i++) {
		$('.choose_num').append('<option value="' + (i + 1) + '">' + (i + 1) + ' шт.</option>');
	}
}

function declension(number, labels) {
	var c = number % 100;
	if(c > 6 && c< 21 ) return labels[2];
	else {
		c = (c % 10);
		if(c==1) return labels[0];
		else if(c>1 && c<5) return labels[1];
		else return labels[2];
	}
}

function change_photo(address){ //photoslider functions
	$("div#full_photo > img").attr('src', address);
}
function change_photo2(address_medium, address_full){
	$("#big_photo").attr('src', address_medium);
	$("#img").attr('src', address_full);
	$(".full_photo a").attr('href', address_full);
	$('.zoom a').attr('href', address_full);
}

function CheckProductPropsVals(id) {
	var is_checked = $("#ppv"+id).attr('checked'); // TODO
		var signature = "#ppval"+id;
		if (is_checked) {
				$(signature).removeClass('hide_it');
		} else {
				$(signature).addClass('hide_it');
		}
		return true;
}

function checkee (ff){
	var err=1;
	if ((document.getElementById("message").value=='') && (err==1)){
		alert('Ошибка! Пустой комментарий');
		err=0;
		document.getElementById("message").focus();
		
		return false;
	}
	
}

function delete_dialog()
{
	return confirm("Удалить комментарий?");
}

function checkusername() {
    var name = $('#nickname').val(); // escape($('#nickname').val());
    if (!name) {
        $("#checkitvalue").html('<span style="color:red;">Имя не может быть пустым</span>');	
        return false;
    }
    $('#checkitvalue').html('проверка...');
    var params = {
        a:'check_user_name',
        name:name,
        bar:35
    };
	$.getJSON('/', params, function (data) {
        //alert('checkusername (1): error='+data.error+', empty='+data.empty+', used='+data.used);
		$('#checkitvalue').fadeIn();
		if ( data.error > 0 ) {
            $("#checkitvalue").html('<span style="color:red;">Произошла ошибка, попробуйте позднее</span>');	
		} else if ( data.empty > 0 ) {
            $("#checkitvalue").html('<span style="color:red;">Имя не может быть пустым</span>');	
		} else if ( data.used > 0 ) {
            $("#checkitvalue").html('<span style="color:red;">К сожалению такое имя занято.</span>');	
		} else {
            $("#checkitvalue").html('<span style="color:green;">Имя свободно, Вы можете его использовать.</span>');	
		}
		setTimeout("$('#checkitvalue').fadeOut()",5000)
	});
	
	return false; //cuz it's a link
}


// Woring with sizes tables :

function add_size_table_td (table_id)
{
	var tr_cnt = size_tables_counters[table_id]['tr_cnt'];
	var td_cnt = size_tables_counters[table_id]['td_cnt'];
	//alert('td_cnt='+td_cnt);
	var td_id = td_cnt + 1;
	size_tables_counters[table_id]['td_cnt'] = td_id;
	// Go through all TR's in table & add cell to the end of each TR :
	for ( var i = 2; i <= tr_cnt; i++ ) {
			var str = '<td><input type="text" name="cell_'+table_id+'_'+i+'_'+td_id+'" value=""></td>';
			$("#size_table_tr_"+table_id+"_"+i).append(str);
	}
	return false;
}

function add_size_table_tr (table_id)
{
	var tr_cnt = size_tables_counters[table_id]['tr_cnt'];
	var td_cnt = size_tables_counters[table_id]['td_cnt'];
	//alert('tr_cnt='+tr_cnt);
	var tr_id = tr_cnt + 1;
	size_tables_counters[table_id]['tr_cnt'] = tr_id;
	var str = get_new_tr_for_size_table(table_id, tr_id, td_cnt);
	$("table#size_table_"+table_id).append(str);
	return false;
}

function get_new_tr_for_size_table (table_id, tr_id, td_cnt)
{
	var str = '';
	str += ('<tr id="size_table_tr_'+table_id+'_'+tr_id+'">');
	var tag1 = '<th>';
	var tag2 = '</th>';
	for ( var i = 1; i <= td_cnt; i++ ) { // 1st cell - TH, rest - TD :
			str += (tag1+'<input type="text" name="cell_'+table_id+'_'+tr_id+'_'+i+'" value="">'+tag2);
			tag1 = '<td>';
			tag2 = '</td>';
	}
	str += '</tr>';
	return str;
}

function add_size_table (rows_cnt, cols_cnt)
{
	size_tables_cnt++;
	var table_id = size_tables_cnt;
	size_tables_counters[table_id] = {'tr_cnt':rows_cnt, 'td_cnt':cols_cnt};
	var str = '';
	str += '<div id="size_table_wrap_'+table_id+'" class="size_table tmp">';
	str += '<div class="table_del" onclick="return del_size_table('+table_id+')"></div>';
	str += ('<input type="text" name="cell_'+table_id+'_1_1" value="" class="size_block_h">');
	str += (' <a href="#" onclick="return add_size_table_td('+table_id+')">Добавить колонку »</a>');
	str += ('<table id="size_table_'+table_id+'" class="adminko_size_table">');
	for ( var i = 2; i <= rows_cnt; i++ )
	{
		str += get_new_tr_for_size_table(table_id, i, cols_cnt);
	}
	str += '</table>';
	str += ('<a href="#" onclick="return add_size_table_tr('+table_id+')">Добавить строку »</a>');
	str += '</div>';
	$("#main_size_tables_container").append(str);
	return false;
}

function del_size_table (table_id)
{
	size_tables_counters[table_id] = null;
	$('div#size_table_wrap_'+table_id).fadeOut('slow', function(){
		$('div#size_table_wrap_'+table_id).remove();
	});
}

$(function(){
	$(".size_block_h").keypress(function(){
		var ttp = $(this).val().length;
		if (ttp < 6) {ttp=6;}
		if (ttp > 30) {ttp=30;}
		$(this).width(ttp*8);
	});
	$(".adminko_size_table input").keypress(function(){
		var ttp = $(this).val().length;
		if (ttp < 6) {ttp=6;}
		if (ttp > 20) {ttp=20;}
		$(this).width(ttp*8);
	});
});

//### Basket

function save (good)
{
	$('#ajax-error').text('');
	var quantity = parseInt( $(good).val() ) || 0;
	var matches = $(good).attr('id').match(/amount_(\d+)/) || new Array();
	var item_id = parseInt( matches[1] ) || 0;

	if ( quantity < 0 )
	{
		quantity = 1; //dats because users usually typing bullshit in our lovely inputs
	}
	
	$(good).parent().children('img.ajax-loader').show(); // Показываем индикатор загрузки
	
	this_error = $(good).parent().children('#ajax-error'); //dat's global
	$(this_error).text('');
	$(this_error).ajaxError(function(){
		$('img.ajax-loader').hide();
		$(this).text('Ошибка!');
	});

	if ( item_id > 0 ) // Если ID товара больше 0
	{
		$.getJSON('/?a=quantity&id='+item_id+'&amount='+quantity, function(data){
			if ( data.need_auth )
			{
				document.location.href="/?a=cart"; //в случае если у юзера истекла кука
			}
			if ( ( typeof( data ) == 'object' ) && ( !isNaN( data.amount ) ) ) //на случай если кто-то чето сломал
			{
				//getting values part
				$(good).val( data.amount ); //getting new amount

				$('#total_'+item_id).html( //recalculate total sum for one good cuz amount changed
					parseInt( data.amount ) * parseInt( $('#price_'+item_id+' strong').text()	)+'&nbsp;руб.'
				)

				var superprice = parseInt( data.superprice ) || 0; //recalculate super total sum for all goods

				var superamount = 0; //recalculate super total amount for all goods
				for (var i = 0; i < $('input[name=amount]').length; i++)
				{
					superamount = superamount + parseInt( $(($('input[name=amount]'))[i]).val() ); //i said DON'T
				}

				
				//bonuses part
				if ( data.bonuses && data.bonuses.length )
				{
					//смотрим какой бонус
					var current_bonus_amount = -parseInt($('#bonus').text()) || 0;
					
					var new_bonus_amount = current_bonus_amount;
					var current_bonus_min_sum = 0;
					
					for ( var bonus in data.bonuses )
					{
						if ( data.bonuses[bonus].amount == current_bonus_amount )
						{
							current_bonus_min_sum = data.bonuses[bonus].min_sum;
						}
					}

					

					var new_bonus_min_sum = current_bonus_min_sum;
					if ( current_bonus_min_sum > superprice ) //общая сумма стала меньше
					{
						new_bonus_min_sum = 0;
						for ( var bonus in data.bonuses )
						{
							if ( data.bonuses[bonus].min_sum <= superprice &&
							     data.bonuses[bonus].min_sum > new_bonus_min_sum )
							{
								//если находим бонус который нам подходит
								new_bonus_min_sum = data.bonuses[bonus].min_sum;
								new_bonus_amount = data.bonuses[bonus].amount;
							} 
						}
						if ( current_bonus_amount == new_bonus_amount)
						{
							//удалить строчку
							$('#bonus').parent().remove();
							new_bonus_amount = 0;
							new_bonus_min_sum = 0;
						} else {
							$('#bonus').html('-'+new_bonus_amount+'&nbsp;руб.');
						}
					}
					else
					{
						for ( var bonus in data.bonuses )
						{
							if ( ( data.bonuses[bonus].min_sum >= current_bonus_min_sum ) &&
							     ( data.bonuses[bonus].min_sum <= superprice ) )
							{
								//если находим бонус который нам подходит
								new_bonus_min_sum = data.bonuses[bonus].min_sum;
								new_bonus_amount = data.bonuses[bonus].amount;
							}		
						}
						if ( current_bonus_amount == new_bonus_amount)
						{
							//do practically nothing
							superprice = superprice - new_bonus_amount;
						}
						else
						{
							if (($('#bonus')).length)
							{
								$('#bonus').html('-'+new_bonus_amount+'&nbsp;руб.');
								superprice = superprice - new_bonus_amount;
							}
							else
							{
								//нарисовать строку
								var parity = ( $('tr.tfoot').prev().attr('class') == 'odd' ) ? 'even' : 'odd';
								$('tr.tfoot').before(
									'<tr class="'+parity+'">'+
									'<td class="product_pic"></td>'+
									'<td colspan="2" class="product_name"><strong>У вас использована персональная скидка</strong></td>'+
									'<td id="bonus" class="price">-'+new_bonus_amount+'&nbsp;руб</td>'+
									'<td class="del_position"></td>'+
									'</tr>'
								);
								superprice = superprice - new_bonus_amount;

								//убрать купончик снизу
								$('.coupon').fadeOut('slow');
							}
						}
					}
					
					//$('p.warning[rel]').remove();
					
					for ( var bonus in data.bonuses )
					{
						var bonus_min_sum = parseInt(data.bonuses[bonus].min_sum);
						if ( bonus_min_sum > (superprice + new_bonus_amount) )
						{
							//если нет то нарисуем
							if (($('.coupon')).length <= 0 ){
								$('.personal_discount').html(
									'<div class="coupon" style="display:none">'+
									'<img src="/_img/coupon.png" alt="Купон">'+
									'<p rel="'+data.bonuses[bonus].amount+'">При заказе на сумму не менее <em>'+data.bonuses[bonus].min_sum+'&nbsp;рублей</em><br>вы получите <strong>'+data.bonuses[bonus].amount+'</strong>&nbsp;рублей.</p>'+
									'</div>'
								);
							}
							$('.coupon').fadeIn('slow');//и покажем
							//$('.basket').before(
							//	'<p class="warning" rel="'+data.bonuses[bonus].amount+'">У вас есть бонус '+
							//	'<strong>'+data.bonuses[bonus].amount+' руб</strong>, который можно использовать '+
							//	'при покупке на сумму не менее <strong>'+data.bonuses[bonus].min_sum+' руб</strong></p>'
							//);
						}
					}
				}

				$('th#summa').html( superprice + '&nbsp;руб.' ); //replacing it
				$('th.sum_products strong').html( superamount );

				//presents part
				for (var i = 0;i < $('dl.order_gifts').length;i++)
				{
					var min_sum = parseInt($(($('dl.order_gifts'))[i]).attr('rel')) || 0;
					var presents = $('dl.order_gifts[rel='+min_sum+'] dd > div.gift');

					if ( min_sum < superprice ) //little tricks with presents
					{
						for (var j = 0; j < $(presents).length; j++)
						{
							var present = ($(presents))[j];
							var present_id = parseInt($(present).attr('rel')) || 0;

							if ( (($(present).has('a.add_to_basket')).length == 0) && ( ($(present).has('.picked')).length == 0 ))
							{
								$('.get_money_mf', present).remove(); 
								$(present).children('div.gift_info').append(
									'<a class="add_to_basket" href="/?a=add_present_to_cart&id='+present_id+'" title="Положить в корзину">Положить в корзину</a>'
								);
							}
						}
					}
					else //cuz we don't want to give our expensive presents to that sneaky little bastards
					{
						for (var j = 0; j < $(presents).length; j++)
						{
							var present = ($(presents))[j];
							var present_id = parseInt($(present).attr('rel')) || 0;

							if ( ($(present).has('a.add_to_basket')).length == 1 )
							{
								$(present).children('div.gift_info').children('a.add_to_basket').remove();
								$(present).children('div.gift_info').append(
									'<span class="get_money_mf">Для получения подарка не&nbsp;хватает <strong>'+(min_sum - superprice)+'&nbsp;руб.</strong></span>'
								);
							} else {
								$('.get_money_mf > strong', present).html((min_sum - superprice)+'&nbsp;руб.');
							}

							if ( ($(present).has('.picked')).length == 1 )
							{
								$(present).children('div.gift_info').children('.picked').remove();
								$('.present_price').parent().remove();
								$('.dont_forget_present p').show();
							}
						}
					}
				}
	
				$('img.ajax-loader').hide(); //best part
			} else {
				$('img.ajax-loader').hide(); //best part
				$('#ajax-error').text('Ошибка!');
			}
		});
	} else {
		$('img.ajax-loader').hide(); //best part
		$(good).parent().children('#ajax-error').text('Ошибка!');
	}
}


function delete_confirm( id, item )
{
	var messages = {
		address:'Вы действительно хотите удалить адрес "'+item+'"?',
		good:'Вы действительно хотите удалить из корзины товар "'+item+'"?',
		order:'Вы действительно хотите отменить заказ?',
		simple:'Точно удалить?'
	};
	return confirm(messages[id]);
}


function next_step( address_id, city_id ) //user choosing address
{
	var result = undefined;
	if ( summa < 500 ) 
	{
		
		alert('Для заказа на этот адрес Вам необходима сумма не меньше 500 руб.');
		result = false;
	}
	else if ( summa < 1000 )
	{
		var remains = 1000 - summa;
		alert('Внимание, при заказе на сумму от 500 до 1000 рублей - доставка платная, 100 рублей. Для того чтобы доставка была бесплатной необходимо доложить в корзину товар на сумму от '+remains+' рублей');
		result = true;
	}
	else if ( city_id == 3 && summa < 3000 )
	{
		alert('Для заказа на этот адрес Вам необходима сумма не меньше 3000 руб.');
		result = false;
	}
	else
	{
		result = true;
	}

	return result;
}

