var cart_add_url = "/cart/";
var current_id = 0;
var current_message_box_id = null;
var message_width = 300;

var msg_box = new Array();
var msg_box_height = 0;
var msg_box_width = 0;

var effect_obj = null;
var fading_timer = null;
var show_fading_timer = null;

var NN=0, NN5=0, IE=0;
var app=navigator.appName;
var appVer=parseFloat(navigator.appVersion);

if (app.indexOf("Microsoft") != -1)
	IE = 1; 
else if(app.indexOf("Netscape") != -1)
{
	if (appVer<5)
		NN = 1;
	else if (appVer>=5)
		NN5 = 1;
}

// Create layers for message boxes
CreateMessageBox();

function clearCartAck()
{
	return confirm("Вы уверены, что хотите удалить из корзины все товары?");
}

function add_to_cart_key_down()
{
	if (event.keyCode==13)
		add_to_cart_ok();
	if (event.keyCode==27)
		add_to_cart_cancel();
}

function set_opacity(obj, value)
{
	var prop = get_opacity_property();
	if (!prop)
		return;
	if (prop=="filter")
	{
		var alpha = obj.filters['DXImageTransform.Microsoft.alpha'] || obj.filters.alpha;
		if (alpha)
			alpha.opacity = value;
		else
			obj.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+value+")";
	}
	else
		obj.style[prop] = value/100;
}

function get_opacity(obj, value)
{
	var prop = get_opacity_property();
	if (!prop)
		return;
	if (prop=="filter")
	{
		var alpha = obj.filters['DXImageTransform.Microsoft.alpha'] || obj.filters.alpha;
		if (alpha)
			return alpha.opacity;
		return 0;
	}
	return obj.style[prop]*100;
}

function get_opacity_property()
{
	if (typeof document.body.style.opacity == 'string')
		return 'opacity';
	if (typeof document.body.style.MozOpacity == 'string')
		return 'MozOpacity';
	if (typeof document.body.style.KhtmlOpacity == 'string')
		return 'KhtmlOpacity';
	if (document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1]>=5.5)
		return 'filter';
	return false;
}

function MessageBox(message, is_error)
{
	if (IE)
		ShowMessageBox(message, is_error);
	else
		alert(message);
}
		
function FindObj(n, d)
{
	var p,i,x;
	if (!d)
		d = document;
	if ((p=n.indexOf("?")) > 0 && parent.frames.length)
	{
    	d = parent.frames[n.substring(p+1)].document;
    	n = n.substring(0,p);
   	}
  	if (!(x=d[n]) && d.all)
  		x = d.all[n];
	for (i=0; !x && i < d.forms.length; i++)
		x = d.forms[i][n];
	for (i=0; !x && d.layers && i < d.layers.length;i++)
		x = FindObj(n, d.layers[i].document);
	if (!x && document.getElementById)
		x=document.getElementById(n);
   	return x; 
}

function Show(obj)
{
	obj.style.visibility = "visible";
	set_opacity(obj, 100);
}

function Hide(obj)
{
	obj.style.visibility = "visible";
	set_opacity(obj, 100);

	set_opacity(obj, 0);
	obj.style.visibility = "hidden";

	if (show_fading_timer)
	{
		clearTimeout(show_fading_timer);
		show_fading_timer = null;
	}
	if (fading_timer)
	{
		clearInterval(fading_timer);
		fading_timer = null;
	}
}

function CenterCurrentMessageBox()
{
	if (!current_message_box_id)
		return;
	var obj = document.getElementById(current_message_box_id);
	if (!obj)
		return;
	var top = Math.round((get_client_height()-obj.offsetHeight)/2);
	obj.style.top = top-20 + Math.max(document.getElementsByTagName('body')[0].scrollTop, document.documentElement.scrollTop)+"px";
	obj.style.left = ((get_client_width()-message_width)/2)+"px";
}

function get_client_height()
{
	return document.compatMode=='CSS1Compat' && !window.opera ? document.documentElement.clientHeight : document.body.clientHeight;
}

function get_client_width()
{
	return document.compatMode=='CSS1Compat' && !window.opera ? document.documentElement.clientWidth : document.body.clientWidth;
}

function CancelMessageBox()
{
	if (effect_obj)
		Hide(effect_obj);
}

function ShowMessageBox(message, is_error)
{
	var id_text;
	current_message_box_id = is_error ? "msg_error" : "msg";

	if (effect_obj)
		Hide(effect_obj);

	if ((obj=FindObj(current_message_box_id)) != null)
	{
		effect_obj = obj;

		Hide(effect_obj);
		CenterCurrentMessageBox();
		Show(effect_obj);

		id_text = document.getElementById(current_message_box_id + "_t");
		id_text.innerHTML = message;

		if (show_fading_timer)
			clearTimeout(show_fading_timer);
		show_fading_timer = setTimeout("FadeMessageBox()", 2000);

	}
}

function FadeMessageBox()
{
	if (show_fading_timer)
	{
		clearTimeout(show_fading_timer);
		show_fading_timer = null;
	}
	if (fading_timer)
		clearInterval(fading_timer);
	
	fading_timer = setInterval("fade()", 60);
}

function fade()
{
	if (effect_obj)
	{
		var opacity = get_opacity(effect_obj, 100);
		if (opacity > 0)
			set_opacity(effect_obj, opacity-10);
		else
		{
			effect_obj.style.visibility = "hidden";
			if (fading_timer)
			{
				clearInterval(fading_timer);
				fading_timer = null;
			}
			effect_obj = null;
		}
	}
}

function CreateMessageBox()
{

	CreateBox("msg", message_width, 300, 255, '<div class="messagebox"><p id="msg_t">&nbsp;</p><p><input type="button" align="center"onclick="javascript:CancelMessageBox();return false;" value="  Ok  "></p></div>');
  	CreateBox("msg_error", message_width, 300, 255, '<div class="messagebox error"><p id="msg_t">&nbsp;</p><p><input type="button" align="center"onclick="javascript:CancelMessageBox();return false;" value="  Ok  "></p></div>');
}

function CreateBox(name, w, h, zindex, text) 
{
	msg_box_height = h;
	msg_box_width = w;
	if (!NN)
 	{
  		var str="<div id=\""+name+"\" style=\"position:absolute; top:0; left:0; width:"+w+"; height:"+h+"; z-index:"+zindex+";filter:alpha(opacity=0);object.style.opacity=0;visibility:hidden\">"+text+"</div>";
		document.writeln(str);
	}
}

function add_to_cart(id, message)
{
	ExecuteQuery(cart_add_url + "?cart_add="+id+":1");
}

function change_quantity(offset)
{
	var obj, value;
	obj = eval("document.form_add_to_cart.quantity");
	value = parseInt(obj.value);
	value += parseInt(offset);
	if (value < 1) value = 1;
	if (value > 999) value = 999;
	obj.value = value;
}

function cart_add(list)
{
	var query_string = "";
	var form = document.forms["list"];
	var value_preffix = "qnty_";

	for (var i=0; i<form.length; i++)
	{
		if ((form[i].type=="text") && (form[i].value > 0))
		{
			if (query_string)
				query_string += ";";
			query_string += form[i].name.substring(value_preffix.length) + ":" + form[i].value;
			form[i].value = "";
		}
	}

	if (query_string)
		ExecuteQuery(cart_add_url+"?cart_add="+query_string);
	else 
		MessageBox("Не указано заказываемое количество", 1);
}

function ExecuteQuery(url)
{
	var req = null;
	if (typeof(XMLHttpRequest) != 'undefined')
		req = new XMLHttpRequest();
	else if (window.ActiveXObject)
	{
		var xmlhttp_type = (navigator.userAgent.toLowerCase().indexOf('msie 5') != -1) ? 'Microsoft' : 'Msxml2';
		req = new ActiveXObject(xmlhttp_type + '.XMLHTTP');
	}
	else
		return;

	url += "&rnd="+Math.random();
	req.open('GET', url, true);
	req.send(null);
	req.onreadystatechange=function()
	{
	    if (req.readyState == 4)
	    {
			var response = req.responseText.split("|");
			if (response[0].length>0)
			{
				show_cart_sum(response[0]);
				MessageBox(response[1], 0);
			}
			else
				MessageBox(response[1], 1);
		}
		delete req;
	}
}

function show_cart_sum(sum)
{
	var obj = document.getElementById("cart");
	if (!obj)
		return;
	obj.className = "nonempty";
	obj.getElementsByTagName("SPAN")[0].innerHTML = sum;
}

add_event_listener("scroll", CenterCurrentMessageBox);
add_event_listener("resize", CenterCurrentMessageBox);
