//Функции сериализации в формат php(не универсальные)
function gcart_serialize( gcart )
{
	len = 0;
	str = "";
	for( var i in gcart )
	{
		str += ("i:"+i+";a:3:{s:2:\"id\";i:"+gcart[i].id+";s:3:\"num\";i:"+gcart[i].num+";s:5:\"price\";d:"+gcart[i].price+";}");
		len++;
	}
	str = "a:"+len+":{"+str+"}";
	return str;
}

function gcart_unserialize( str )
{
	cart1 = [];
	r     = new RegExp('"id";i:([0-9]+);s:3:"num";i:([0-9]+);s:5:"price";d:([0-9\.]+)',"g");
	i     = 0;
	while( (arr = r.exec(str)) != undefined )
	{
//		cart1.push({'id':arr[1],'num':arr[2],'price':arr[3]});
		cart1[arr[1]] = {'id':arr[1],'num':parseInt(arr[2]),'price':parseFloat(arr[3])};
	}
	return cart1;
}






function gcart_goodAddOne( id, price )
{
	if (!navigator.cookieEnabled)
	{
		alert( "Для заказа товаров на нашем сайте в Вашем браузере должны быть включены cookies!" );
		return 0;
	}

	if( gcart[id] )
		gcart[id].num++;
	else
		gcart[id] = {id:id,num:1,price:price};

	var expdate = new Date();
	expdate.setTime (expdate.getTime() + (3 * 24 * 60 * 60 * 1000) ); // 3 days from now
	SetCookie("profix_cart",gcart_serialize( gcart ),expdate,"/",HTTP_SERVER_NAME);

	gcart_updateHTML();
}

function gcart_goodRemOne( id )
{
	if (!navigator.cookieEnabled)
	{
		alert( "Для заказа товаров на нашем сайте в Вашем браузере должны быть включены cookies!" );
		return 0;
	}

	if( gcart[id] && gcart[id].num>0 )
		gcart[id].num--;

	var expdate = new Date();
	expdate.setTime (expdate.getTime() + (3 * 24 * 60 * 60 * 1000) ); // 3 days from now
	SetCookie("profix_cart",gcart_serialize( gcart ),expdate,"/",HTTP_SERVER_NAME);

	gcart_updateHTML();
}

function gcart_goodNum( id, price, e )
{
	if (!navigator.cookieEnabled)
	{
		alert( "Для заказа товаров на нашем сайте в Вашем браузере должны быть включены cookies!" );
		return 0;
	}

	permission = [0,8,13];// Tab, Back. Enter
	chars      = "1234567890";

//	alert( e.keyCode );
	if( e.keyCode == 37 || e.keyCode == 39 ) return true;
	if( e.keyCode == 38 ) return gcart_goodAddOne( id, price );
	else if( e.keyCode == 40 ) return gcart_goodRemOne( id, price );

	num = document.getElementById("good_qtty_"+id);
	if( num.value=='' ) num.value=num.defaultValue;
	if( /\D/.test(num.value) ) num.value=num.defaultValue;
	else num.defaultValue=num.value;

	gcart[id].num = parseInt( num.value );

//	if( cart[id].num <= 0 )
//	{
//		delete cart[id];
//		document.getElementById("tr_good_"+id).parentNode.removeChild(document.getElementById("tr_good_"+id));
//	}

	var expdate = new Date();
	expdate.setTime (expdate.getTime() + (3 * 24 * 60 * 60 * 1000) ); // 3 days from now
	SetCookie("profix_cart",gcart_serialize( gcart ),expdate,"/",HTTP_SERVER_NAME);

	gcart_updateHTML();
}

function gcart_goodRoll( id, price )
{
	if (!navigator.cookieEnabled)
	{
		alert( "Для заказа товаров на нашем сайте в Вашем браузере должны быть включены cookies!" );
		return 0;
	}

// Обновление картинки
	img = document.getElementById("img_goods_cart_"+id);
	div_cart_text = document.getElementById("cart_text");
	if( !gcart[id] )
	{
		gcart[id] = {id:id,num:1,price:price};
		img.src = SITE_FOLDER+"images/ico_cart_active_mover.gif";
		img.title = "Убрать из заказа";
		img.alt = "Товар заказан";
		img.onmouseover = function() { this.src=SITE_FOLDER+"images/ico_cart_active_mover.gif"; }
		img.onmouseout = function() { this.src=SITE_FOLDER+"images/ico_cart_active.gif"; }
		if( div_cart_text )
			div_cart_text.innerHTML = "Убрать из корзины ";
	}
	else
	{
		delete gcart[id];
		img.src = SITE_FOLDER+"images/ico_cart_mover.gif";
		img.title = "Заказать товар!";
		img.alt = "В корзину";
		img.onmouseover = function() { this.src=SITE_FOLDER+"images/ico_cart_mover.gif"; }
		img.onmouseout = function() { this.src=SITE_FOLDER+"images/ico_cart.gif"; }
		if( div_cart_text )
			div_cart_text.innerHTML = "Добавить в корзину ";
	}

	var expdate = new Date();
	expdate.setTime (expdate.getTime() + (3 * 24 * 60 * 60 * 1000) ); // 3 days from now
	SetCookie("profix_cart",gcart_serialize( gcart ),expdate,"/",HTTP_SERVER_NAME);

	gcart_updateHTML();
//	DeleteCookie( "profix_cart","/",HTTP_SERVER_NAME);
}

function gcart_goodDel( id, price )
{
	if (!navigator.cookieEnabled)
	{
		alert( "Для заказа товаров на нашем сайте в Вашем браузере должны быть включены cookies!" );
		return 0;
	}
	if( !confirm( "Удалить товар?" ) )
		return 0;

	delete gcart[id];

	var expdate = new Date();
	expdate.setTime (expdate.getTime() + (3 * 24 * 60 * 60 * 1000) ); // 3 days from now
	SetCookie("profix_cart",gcart_serialize( gcart ),expdate,"/",HTTP_SERVER_NAME);

	if( row = document.getElementById("tr_good_"+id) )
	{
		row.parentNode.removeChild(row);
		order_table_refresh();
	}

	gcart_updateHTML();
}










function gcart_updateHTML()
{
	if (!navigator.cookieEnabled)
	{
		alert( "Для заказа товаров на нашем сайте в Вашем браузере должны быть включены cookies!" );
		return 0;
	}

	goods_summ = 0;
	goods_num = 0;
	for( var i in gcart ) {
		this_summ = gcart[i].price * gcart[i].num;
		goods_num += gcart[i].num;
		goods_summ+= this_summ;

		if( this_summ_container = document.getElementById("div_good_"+i+"_summ") )
			this_summ_container.innerHTML = formatted_number( this_summ, 2, " ");
		if( this_qtty_container = document.getElementById("good_qtty_"+i) )
			this_qtty_container.value = gcart[i].num;
	}
	if( order_tbl_summ_container = document.getElementById("div_good_all_summ") ) {
		if( !goods_num )
		{
			document.location.reload();
			return;
		}
		order_tbl_summ_container.innerHTML = formatted_number( goods_summ, 2, " " );
	}

	div = document.getElementById("div_order_info_data");

	if( goods_num )
	{
		div.innerHTML = "В корзине "+writeNumber( goods_num, "<b>%number%</b> товар", "<b>%number%</b> товара", "<b>%number%</b> товаров" ) + "<br />"
			+ "На сумму <b>"+formatted_number( goods_summ, 2, " " )+"</b> руб.";
	}
	else
		div.innerHTML = "Корзина пуста."
}

function order_table_refresh()
{
	tbl = document.getElementById("goods_table");
	for( i=1; i<tbl.rows.length-2; i++ )
		tbl.rows[i].className=i%2?"odd":"even";
}

gcart = gcart_unserialize( GetCookie( "profix_cart" ) );

// Просмотр изображений во всплывающем окне
function ibrowser(width,height,good_id)
{
	//alert(wlink+"\n"+width+"\n"+height+"\n"+object_id);
	var url = SITE_FOLDER+"inc/modules/goods/ibrowser.php?gid="+good_id;
    width+=40;
    height+=170;	
	var left = parseInt((screen.availWidth/2) - (width/2));
    var top = parseInt((screen.availHeight/2) - (height/2));
 	var windowFeatures = "width=" + width + ",height=" + height + 
        ",resizable=no,left=" + left + ",top=" + top + 
        "screenX=" + left + ",screenY=" + top;
	window.open(url, "", windowFeatures);
	return false;
}
























function goods_compare_checkAll( f )
{
	chk = document.getElementById("chk_goods_compare_all");
	for( i=0; i<f.elements.length; i++ )
	{
		if( f.elements[i].type == "checkbox" )
		{
			if( f.elements[i].checked != chk.checked )
			{
				f.elements[i].checked = chk.checked;
				goods_compare_roll( f.elements[i].id.substring( f.elements[i].id.lastIndexOf("_")+1 ) );
			}
		}
	}
}

function goods_compare_goodDel( id )
{
	tbl = document.getElementById("tbl_goods_compare");
	for( i=1; i<tbl.rows[0].cells.length; i++ )
		if( tbl.rows[0].cells[i].id == "th_goods_compare_"+id )
			break;
	if( i == tbl.rows[0].cells.length ) return;

	for( j=0; j<tbl.rows.length; j++ )
		tbl.rows[j].deleteCell(i);

	var re=new RegExp('(&|^)'+id+'&');
	gcompare = gcompare.replace( re, "$1" );

	var expdate = new Date ();
	expdate.setTime (expdate.getTime() + (12 * 60 * 60 * 1000)); // 12 hrs from now
	SetCookie("profix_goods_compare", gcompare, expdate, "/", HTTP_SERVER_NAME);

	if( tbl.rows[0].cells.length == 1 )
		document.location.reload();
}

goods_compare_set_null = 0;
function goods_compare_roll( id )
{
	if (!navigator.cookieEnabled)
	{
		window.alert('К сожалению ваш браузер не поддерживает возможность работы с нашей системой через cookies или эта возможность отключена. Позвоните нам, и мы сможем оформить ваш заказ вручную.');
		return 0;
	}

	if( !gcompare || gcompare==null || goods_compare_set_null )
		gcompare = "";

	var re=new RegExp('(&|^)'+id+'&');
	if( document.getElementById("good_compare_"+id).checked )
	{
		if( !re.test( gcompare ) )
			gcompare += id+"&";
	}
	else
		gcompare = gcompare.replace( re, "$1" );

	var expdate = new Date ();
	expdate.setTime (expdate.getTime() + (12 * 60 * 60 * 1000)); // 12 hrs from now
	SetCookie("profix_goods_compare", gcompare, expdate, "/", HTTP_SERVER_NAME);

	num_goods = gcompare.substr_count("&");
	if( div_num = document.getElementById("div_goods_compare_num") )
		div_num.innerHTML = num_goods;
}

gcompare = GetCookie("profix_goods_compare");
