var new_instance = false; // js_general
var pid_of_product;		// get.description

function callRoot() {
	a.s(0); a.updateDescrCookie('undefined');
	$("#search_data, #otherdata, #calldata").hide();
	$("#home").fadeIn();
}
function preDescription(goods_id, currency_type, archive) {
	var url = '/product/'+goods_id+'/';
	url+= currency_type == '1' ? 'usd/' : 'uah/';
	url+= archive ? 'archive/' : '';
	$("#calldata").hide().load(url, {code:goods_id, pt:currency_type, a:archive },
	function(data, status, XMLHttpRequest) {
		if (status == "success") {
			a.updateDescrCookie(goods_id);
			$("#search_data, #otherdata, #home").hide();
			$(this).slideDown(150);
			if (new_instance || pid_of_product) {
				a.openTo(a.getNum(pid_of_product),true,true);
			}
		}
		if (status == "error") alert('callRoot Error: AHAH no response...');
	});
}
function callDescription(code, archive) {
	if (typeof(tinyMCE)!='undefined') tinyMCE.execCommand('mceRemoveControl', false, 'des');
	preDescription(code, a.getCookie('cta'), archive);
}

function preFolder(goods_id, ob_folder, currency_type) {
	var url = ob_folder ? '/category/': '/catalog/';
	url+= goods_id+'/';
	url+= currency_type == '1' ? 'usd/' : 'uah/';
	$("#calldata").hide().load(url, {code:goods_id, folder:ob_folder, pt:currency_type},
	function(data, status, XMLHttpRequest) {
		if (status == "success") {
			a.updateDescrCookie('undefined');
			$.address.title(ob_folder ? 'Категория #'+goods_id : 'Каталог #'+goods_id);
			$("#search_data, #otherdata, #home").hide();
			$(this).slideDown("fast");}
		if (status == "error") alert('callRoot Error: AHAH no response...')
	});
}
function callFolder(code, ob_folder) {
	/*if (ob_folder) */if (code) a.openTo(a.getNum(code),true,true);
	preFolder(code, ob_folder, a.getCookie('cta'));
}

function changePrice(currency_type) {
	$("#pt_box").hide().load("/shop/get.currency.php", { pt:currency_type},
	function(data, status, XMLHttpRequest) {
		if (status == "success") $(this).fadeIn("slow");
		if (status == "error") $(this).html("<span style=\"color:red;font-weight:bold\">(ошибка скрипта)</span>").fadeIn();
	});
}
function updateData(price_type) {
	//a.updateTypeCookie(price_type);
	var url = $.address.pathNames();
	if ($("#otherdata").is(':hidden')) $(".sub_header div.hide").click();
	if (url[1] !== undefined) { // && parseInt(url[1]) != 0) {
		if (url[0] == "product") {
			if ($.cookie("cda") != undefined && $("#calldata").html().length && $.cookie("cda") == url[1]) changePrice(price_type);
			else callDescription(url[1], url[4] == undefined ? false : true);
		} else {
			if (!$("#calldata").html().length || $.cookie("csa") != url[1] || url[0] !== "category")
				callFolder(url[1], (url[0] == "category" ? true : false));
			$.cookie("csa", url[1]);
		}
	} else {
		callRoot();
		$.cookie("csa", 0);
	}
}

function addToCart(code, price, name, quantity) {
	var warning1 = "В режиме розничной покупки максимальное закупочное количество - 500 штук.\nИзмените, пожалуйста, закупочное количество до разумных пределов\nили повторите оформление закупки несколько раз.";
	var warning2 = "Вы можете добавить ещё ";
	var warning3 = "Неверно введено количество товаров для закупки.\n(Возможно, Вы ввели не числовой аргумент или 0)";
	var parsed = parseInt(quantity, 10);
	if (!isNaN(parsed) && parsed > 0) {
		if (parsed <= 500) {
			//var poststr = "code="+code+"&q="+parsed+"&price="+escape(price)+"&name="+encodeURIComponent(name);
			var found = false;
			var arr1 = a.getCartArrCookie('cca');
			var l = arr1.length;
			if (l > 0) { for (var n=0;n<l;n++) { if (arr1[n]==code) { found = true; break; }}}
			var sum = 0;
			//$("#cart_summary").show(0);
			if (found) {
				var id = a.getQCookie(code);
				sum = id + parsed;
				var allowed = 500-id;
				if (sum > 500) { $("#quantity_"+code).val(allowed); alert(warning2 + allowed + " товаров"); }
				else {
					a.addCartCookie(code, parsed);
					$("#q"+code).html(sum);
					$("#x"+code).show(0);
					if (sum > 1) showControls('#minus'+code, true);
					changeSummary(parsed, price);
				}
			} else {
				a.addCartCookie(code, parsed);
				$.post('/shop/get.cartitem.php', { code:code, q:parsed, price:escape(price), name:name },
					function(data, status) {
					if (status == "success") {
						if (data.error) alert(data.error);
						else {
							$("#cart_empty").hide(0);
							$("#cart_items").append(data.html);
							$("#cell"+code).slideDown("fast");
							$("#c_td_q > span").html(data.c_q);
							$("#c_td_sum > span").html(data.c_sum);
							//if ($("#cart_summary").is(":hidden")) 
							$("#cart_summary, #cart_control").show(0);
						}
					}
				}, "json");
			}
		} else { $("#quantity_"+code).val(500); alert(warning1); }
	} else {
		$("#quantity_"+code).val(1).focus();
		alert(warning3);
	}
}

function oneItem(code, price, addOne) {
	var amount_id = "#q"+code;
	var pdiv_id = "#x"+code;
	var amount = a.getQCookie(code);
	var res;
	if (addOne) {
		a.addCartCookie(code, 1);
		$(pdiv_id).fadeIn();
		$(amount_id).text(++amount);
		showControls('#minus'+code, true);
		res = 1;
	} else {
		a.addCartCookie(code, -1);
		amount--;
		if (amount > 1) $(amount_id).text(amount)
		else {
			$(pdiv_id).hide(0);
			$(amount_id).text('1');
		}
		if (amount < 2) showControls('#minus'+code, false);
		res = -1;
	}
	changeSummary(res, price);
}

function invoiceHide() {
	var undefined;
	if ($("#order_done") !== null) {
		if (!$("#otherdata").is(":hidden") && $("#all_removable").html().length) {
			$("#otherdata").slideUp();
			if ($.cookie('csa')=="0") $("#home").fadeIn(); else $("#calldata").fadeIn();
		}
	}
}

function changeSummary(quantity, price) {
	$.post('/shop/get.cartsummary.php', { q:quantity, price:escape(price) },
		function(data, status) {
		if (status == "success") {
			if (data.error) alert(data.error);
			else {
				if (data.se) {
					$("#cart_items, #c_td_q > span, #c_td_sum > span").empty();
					$("#cart_summary, #cart_control").hide(0);
					$("#cart_empty").fadeIn();
					invoiceHide();
				} else {
					$("#c_td_q > span").html(data.c_q);
					$("#c_td_sum > span").hide(0).html(data.c_sum).fadeIn("slow");
				}
			}
		}
	}, "json");
}

function delAllItems(ask) {
	if (ask) {
		if (confirm('Вы действительно хотите очистить всё содержимое товарной корзины?')) {
			a.delCookie('cca');
			a.delCookie('cqa');
			changeSummary(0,0);
			invoiceHide();
		}
	} else {
		a.delCookie('cca');
		a.delCookie('cqa');
		changeSummary(0,0);
	}
}

function delItem(code) {
	a.delCartCookie(code);
	var q = $("#q"+code).text(); q = -q;
	var p = $(".cart_td_price", "#table"+code).text();
	$("#cell"+code).remove();
	if (a.getCookie('cca')!='undefined') changeSummary(q, p);
	else delAllItems(false);
}

function updateCart() {
	var cca = a.getCookie('cca');
	var cqa = a.getCookie('cqa');
	if (cca && cca!='undefined') {
		$.post('/shop/get.cart.php', { code:cca, q:cqa },
			function(data, status) {
			if (status == "success") {
				if (data.error) alert(data.error);
				else {
					$("#cart_empty").hide(0);
					$("#cart_items").empty().append(data.html);
					$(".c_item").show(0);
					$("#c_td_q > span").html(data.c_q);
					$("#c_td_sum > span").html(data.c_sum);
					//if ($("#cart_summary").is(":hidden")) 
					$("#cart_summary, #cart_control").show(0);
				}
			}
		}, "json");
	} else {
		a.delCookie('cca');
		a.delCookie('cqa');
		changeSummary(0,0);
	}
}

function showControls(what, flag) { if (flag) $(what).css({ display:"inline" }); else $(what).hide();}

var dropdown = function() {
	var t=10,z=50,s=3,a;
	function dd(n){this.n=n; this.h=[]; this.c=[]}
	dd.prototype.init=function(p,c){
		a=c; var w=document.getElementById(p), s=w.getElementsByTagName('ul'), l=s.length, i=0;
		for(i;i<l;i++){
			var h=s[i].parentNode; this.h[i]=h; this.c[i]=s[i];
			h.onmouseover=new Function(this.n+'.st('+i+',true)');
			h.onmouseout=new Function(this.n+'.st('+i+')');
			h.onclick=new Function(this.n+'.st('+i+')');
		}
	}
	dd.prototype.st=function(x,f){
		var c=this.c[x], h=this.h[x], p=h.getElementsByTagName('a')[0];
		clearInterval(c.t); c.style.overflow='hidden';
		if(f){
			p.className+=' '+a;
			if(!c.mh){c.style.display='block'; c.style.height=''; c.mh=c.offsetHeight; c.style.height=0}
			if(c.mh==c.offsetHeight){c.style.overflow='visible'}
			else{c.style.zIndex=z; z++; c.t=setInterval(function(){sl(c,1)},t)}
		}else{p.className=p.className.replace(a,''); c.t=setInterval(function(){sl(c,-1)},t)}
	}
	function sl(c,f){
		var h=c.offsetHeight;
		if((h<=0&&f!=1)||(h>=c.mh&&f==1)){
			if(f==1){c.style.filter=''; c.style.opacity=1; c.style.overflow='visible'}
			clearInterval(c.t); return
		}
		var d=(f==1)?Math.ceil((c.mh-h)/s):Math.ceil(h/s), o=h/c.mh;
		c.style.opacity=o; c.style.filter='alpha(opacity='+(o*100)+')';
		c.style.height=h+(d*f)+'px'
	}
	return{dd:dd}
}();

function enterPressed(e) {
	var keycode;
	if (window.event) keycode = window.event.keyCode; else if (e) keycode = e.which; else return false; 
	return (keycode == 13);
}
