/**
 * @author max
 */
/*if (!+"\v1") { // определение IE
	DD_belatedPNG.fix('.basketblock .m, .basketblock .l, .basketblock .r, .boxheader');
}*/

function loadUrl(f) {
	var chosen;
	if (f == '#') {return;}
	chosen=f.options[f.selectedIndex].value;
	self.location=chosen;
}

function add2Fav(x){
	if (document.all  && !window.opera) {
		if (typeof window.external == "object") {
			window.external.AddFavorite(document.location, document.title);
			return true;
		} else return false;

	} else {
		x.href=document.location;
		x.title=document.title;
		x.rel = "sidebar";
		return true;
	}
}

Shadowbox.loadSkin('infernal', '/assets/templates/elite/shadowbox/skin');
Shadowbox.loadLanguage('ru', '/assets/templates/elite/shadowbox/lang');
Shadowbox.loadPlayer(['flv', 'img', 'html', 'iframe'], '/assets/templates/elite/shadowbox/player');

$(window).load(function(){
	var options = {
		flvPlayer: '/assets/templates/elite/shadowbox/flvplayer.swf',
		displayNav: true,
		continuous: true,
		handleUnsupported:  'remove',
		autoplayMovies: true,
		animate: true,
		animateFade: true,
		overlayOpacity: 0.85
	};

	Shadowbox.init(options);
	
	$('.tnum1').keyfilter(/[0-9]/);
	
	$("#print_orders").click(function(){
		$("#orders-table").printArea();
	});
});

function runEffect(effect, from) {
	var effect = effect;
	var from = from;
	options = { to: "#cart-image", className: 'ui-effects-transfer' };
	$("#product-img-"+from).effect(effect, options, 1000);
};

function feedbackProcess(sid) {
	var sid = sid;
	
	var name = $('#client').val();
	var email = $('#email').val();
	var phone = $('#phone').val();
	var message = $('#message').val();
	
	$.post("/assets/snippets/cart/ajax_feedback.php", { name: name, email: email, phone: phone, message: message, sid: sid }, function(data) {
		$("#feedbackResults").html(data);
		if (substrCount(data, 'success')) {
			$('#contact').slideToggle('slow');
		}
	});
}

function addToCart(obj_id, lang, sid) {
	var obj_id = obj_id;
	var sid = sid;
	var lang = lang;
	var msg = '';
	var header = '';
	
	switch(lang) {
		case 'Ukr':
			msg = 'Обраний продукт був доданий до кошика';
			header = 'Статусне повідомлення';
		break;    
		case 'Eng':
			msg = 'This product was added to cart';
			header = 'Status message';
		break;
		default:
			msg = 'Выбранный продукт был добавлен в корзину';
			header = 'Статусное сообщение';
	}
	
	$.post("/assets/snippets/cart/ajax_add2cart.php", { obj_id: obj_id, sid: sid }, function(data){
		$('#cart-amount').html(Number($('#cart-amount').html())+1);
		$('#cart-money').html(round(Number($('#cart-money').html())+Number(data), 2));
	});
	
	runEffect('transfer', obj_id);
	
	$.jGrowl(msg, {
			theme: 'manilla',
			header: header,
			sticky: false,
			speed: 'slow',
			life: 5000
	});
}

function delFromCart(sid, lang, arr_id) {
	var sid = sid;
	var arr_id = arr_id;
	var lang = lang;
	
	var allsumm = Number($('#allsumm').html());
	var summ = Number($('#summ'+arr_id+'').html());
	
	var rows_cnt = 0;
	var prev_id, next_id, img_str, msg, header, empty, btn;

	switch(lang) {
		case 'Ukr':
			msg = 'Обраний продукт був вилучений з кошика';
			header = 'Статусне повідомлення';
			empty = '<p class="cart-empty">Ваш кошик поки порожній</p><br />';
			btn = 'ukr';
			alt = 'Видалити';
		break;    
		case 'Eng':
			msg = 'This product was deleted from cart';
			header = 'Status message';
			empty = '<p class="cart-empty">You cart is empty</p><br />';
			btn = 'eng';
			alt = 'Delete';
		break;
		default:
			msg = 'Выбранный продукт был удалён из корзины';
			header = 'Статусное сообщение';
			empty = '<p class="cart-empty">Ваша корзина пока пуста</p><br />';
			btn = 'rus';
			alt = 'Удалить';
	}

	$.post("/assets/snippets/cart/ajax_delfromcart.php", { sid: sid, arr_id: arr_id }, function(data){
		if ($('#cart-amount').html() == 1) {
			$('#cart-table').empty().html(empty);
			$('#cart-process').remove();
			$('#cart-amount').html('0');
			$('#cart-money').html('0');
		} else {
			$('#cart-amount').html(Number($('#cart-amount').html())-1);
			$('#allsumm').html(round(allsumm-summ, 2));
			$('#cart-money').html(round(allsumm-summ, 2));
			
			$('#tr'+arr_id+'').slideDown("slow", function(){
				$('#tr'+arr_id+'').remove();
			});

			$('#cart-table > table > tbody > tr').each(function(quan) {
				rows_cnt++;
			})

			for (i=arr_id; i<=rows_cnt; i++) {
				next_id = Number(i)+1;
				button_str = "<a href=\"javascript:void(0);\" onclick=\"delFromCart('"+sid+"', '"+lang+"', "+i+");\" class=\"del\" style=\"background:url(/assets/templates/elite/images/btn_del-"+btn+".png) no-repeat top;\">"+alt+"</a>";
				
				$('#tr'+next_id+'').attr("id", 'tr'+i+'');
				$('#price'+next_id+'').attr("id", 'price'+i+'');
				$('#quan'+next_id+'').attr("id", 'quan'+i+'');
				$('#summ'+next_id+'').attr("id", 'summ'+i+'');
				$('#del'+next_id+'').html(button_str).attr('id', 'del'+i+'');
			}
			
			// определяем класс last для последнего элемента таблицы
			$("#cart-table > table > tbody > tr.last").removeClass("last");
			$("#cart-table > table > tbody > tr:last").addClass("last");
			
		}
		
		$.jGrowl(msg, {
			theme: 'manilla',
			header: header,
			sticky: false,
			speed: 'slow',
			life: 5000
		});
	});
}

function recalcCart(sid, lang) {
	var sid = sid;
	var lang = lang;
	var fieldID = new Array();
	var fieldValue = new Array();
	var allsumm = 0;
	var ident, price, count;

	switch(lang) {
		case 'Ukr':
			msg = 'Дані кошика були перераховані';
			header1 = 'Статусне повідомлення';
		break;    
		case 'Eng':
			msg = 'Cart data was recalculed';
			header1 = 'Status message';
		break;
		default:
			msg = 'Данные корзины были пересчитаны';
			header1 = 'Статусное сообщение';
	}

	$('.tnum1').each(function(value) {
		value = $('.tnum1').get(value);
		fieldValue.push(value.value);
	})
	
	$('.tnum1').each(function(id) {
		id = $('.tnum1').get(id);
		fieldID.push(id.id);
	})
	
	for (i=0; i<fieldID.length; i++) {
		ident = str_replace('quan', '', fieldID[i]);
		
		if (intval(fieldValue[i]) <= 0) {
			count = 1;
			$('#quan'+ident+'').val(count);
		} else {
			count = intval(fieldValue[i]);
		}

		$('#summ'+ident+'').html(round(Number($('#price'+ident+'').html())*count, 2));
		allsumm += round(Number($('#price'+ident+'').html())*count, 2);
	}
	$('#allsumm').html(round(allsumm, 2));
	$('#cart-money').html(round(allsumm, 2));
	
	$.post("/assets/snippets/cart/ajax_recalc.php", { 'value[]': fieldValue, 'id[]': fieldID, sid: sid }, function(data){
		$.jGrowl(msg, {
			theme: 'manilla',
			header: header1,
			sticky: false,
			speed: 'slow',
			life: 5000
		});
	});
}

function intval(mixed_var, base) { 
	var tmp;

	if( typeof( mixed_var ) == 'string' ) {
		tmp = parseInt(mixed_var*1);
		if(isNaN(tmp) || !isFinite(tmp)) {
			return 0;
		} else {
			return tmp.toString(base || 10);
		}
	} else if( typeof( mixed_var ) == 'number' && isFinite(mixed_var)) {
		return (mixed_var == '0' ? 1 : Math.floor(mixed_var));
	} else {
		return 0;
	}
}

function str_replace(search, replace, subject) {
	return subject.split(search).join(replace);
}

function sendCart(f, form_tpl, achtung_container_tpl, achtung_row_tpl, success_tpl, sid) {
	var form_tpl = form_tpl;
	var sid = sid;
	var achtung_container_tpl = achtung_container_tpl;
	var achtung_row_tpl = achtung_row_tpl;
	var success_tpl = success_tpl;
	var errMSG = "";
	for (var i = 0; i<f.elements.length; i++)
		if (null!=f.elements[i].getAttribute("required"))
		if (isEmpty(f.elements[i].value))
		errMSG += "  " + f.elements[i].id + "\n";
	if ("" != errMSG) {
		alert("Не заполнены обязательные поля:\n" + errMSG);
	} else {
		var client = document.sendForm.client.value;
		var phone = document.sendForm.phone.value;
		var email = document.sendForm.email.value;
		var icq = document.sendForm.icq.value;
		var address = document.sendForm.address.value;
		var note = document.sendForm.note.value;
		
		$("#sendFormBlock").load("assets/snippets/cart/php/send.php", { client: client, phone: phone, email: email, icq: icq, address: address, note: note, form_tpl: form_tpl, achtung_container_tpl: achtung_container_tpl, achtung_row_tpl: achtung_row_tpl, success_tpl: success_tpl, sid: sid }, function(data){
			if (substrCount(data, '</script>') > 0) {
				$('#cart_goods').html('0');
			}
		});
	}
}

function isEmpty(str) {
	for (var i = 0; i < str.length; i++)
	if (" " != str.charAt(i))
		return false;
		return true;
}

function substrCount(string, substring, start, length) {
	var c = 0;
	if (start) {string = string.substr(start);}
	if (length) {string = string.substr(0,length);}
	for (var i=0; i<string.length; i++) {
		if (substring == string.substr(i, substring.length))
		c++;
	}
	return c;
}

function round(val, precision) {
	return parseFloat(parseFloat(val).toFixed(precision));
}

function clearOrders(sid, lang, user_id) {
	var sid = sid;
	var lang = lang;
	var user_id = user_id;
	
	switch(lang) {
		case 'Ukr':
			qst = 'Ви дійсно бажаєте очистити список замовлених продуктів?';
			ans = '<p class="cart-empty">Список Ваших замовлень порожній.</p><br />';
			ans1 = 'Список Ваших замовлень порожній';
			header = 'Запит на видалення';
		break;    
		case 'Eng':
			qst = 'Do you really want to clear the list of ordered products?';
			ans = '<p class="cart-empty">Your order\'s list is empty.</p><br />';
			ans1 = '<p class="cart-empty">Your order\'s list is empty</p><br />';
			header = 'Confirmation Dialog';
		break;
		default:
			qst = 'Вы действительно желаете очистить список заказанных продуктов?';
			ans = '<p class="cart-empty">Список Ваших заказов пуст.</p><br />';
			ans1 = 'Список Ваших заказов пуст';
			header = 'Запрос удаления';
	}
	
	jConfirm(qst, header, function(r) {
		if (r == true) {
			jAlert(ans1, header);
			$.post("/assets/snippets/orders/ajax_orders.php", { sid: sid }, function(data) {
				$('#orders-table').html(ans);
				$('#orders-process').slideToggle().remove();
			});
		}
	});
}

function saveOrder(sid, form) {
	var form = form;
	var sid = sid;
	var comment = $('#order-comments').val();
	
	$.post("/assets/snippets/orders/ajax_confirm.php", { sid: sid, comment: comment }, function(data) {
		form.submit();
	});
}