
	function Cart(input, mode)
	{
		var elem, val;

		elem=GO(input);

		val=Math.abs(elem.value);

		if(isNaN(val)) val=1;

		if(mode == 3)
		{

		}
		else if(mode == 2)
		{
			val-=1;
		}
		else
		{
			val+=1;
		}

		if(val < 0) val=0;

		if(val == 0)
		{
			elem.style.color='silver';
			elem.style.fontWeight='normal';
		}
		else
		{
			elem.style.color='black';
			elem.style.fontWeight='bold';
		}

		elem.value=val;

		return val;
	}


	var cart=Array();
	var crun=Array();

	function Cart2(input, mode)
	{
		var val;

		val=Cart('cart-' + input, mode);

		if((cart[input] != undefined) && (cart[input] == GO('cart-' + input).value))
		{
			return;
		}

		if(!crun[input])
		{
			crun[input]=true;
			cart[input]=val;

			GO('cart-price-sum-' + input).innerHTML='';
			GO('cart-price-delivery').innerHTML='';
			GO('cart-price-sum').innerHTML='';
			GO('cart-body').innerHTML='';
			CCS('cart-price-sum-td-' + input, 'background', 'rgb(255,121,2)');
			CCS('cart-price-sum-td-' + input, 'background', 'rgb(220,232,247)');

			CartU('items', input + '/' + val);
		}
	}


	var cv=Array();

	function CartUC(mode, v1, v2, v3, v4)
	{
		switch(mode)
		{
			case 'item':
				CCS('cart-price-sum-td-' + v2, 'background', 'none');
				GO('cart-price-sum-' + v2).innerHTML=v1;
				break;

			case 'price-delivery':
				GO('cart-price-delivery').innerHTML=v1;
				break;

			case 'price-sum':
				GO('cart-price-sum').innerHTML=v1;
				break;

			case 'body':
				GO('cart-body').innerHTML=v1;
				break;

			case 'recheck':
				crun[v1]=false;
				Cart2(v1, 3);
				break;

			case 'set':
				cv['state']=v1;
				cv['delivery']=v2;
				cv['payment']=v3;
				break;

			case 'locate':
				if(v1)
				{
					CCS('cart-eur', 'display', 'table-row');
					GO('cart-price-sum-eur').innerHTML=v1;
				}
				else
				{
					CCS('cart-eur', 'display', 'none');
				}
				break;

			case 'delivery':
				CCS('delivery-block-' + v1, 'display', (v2 ? 'block' : 'none'));

				if(v3)
				{
					GO('cart-delivery').value=v4;
					GO('delivery-' + v1).checked=true;
					CCS('descr-delivery-' + v1, 'display', 'block');
				}
				else
				{
					GO('delivery-' + v1).checked=false;
					CCS('descr-delivery-' + v1, 'display', 'none');
				}
				break;

			case 'payment':
				CCS('payment-block-' + v1, 'display', (v2 ? 'block' : 'none'));

				if(v3)
				{
					GO('cart-payment').value=v4;
					GO('payment-' + v1).checked=true;
					CCS('descr-payment-' + v1, 'display', 'block');
				}
				else
				{
					GO('payment-' + v1).checked=false;
					CCS('descr-payment-' + v1, 'display', 'none');
				}

				if(GO('payment-' + v1).disabled)
				{
					GO('payment-' + v1).disabled=false;
				}

				break;

			case 'payment-block':
				GO('payment-' + v1).disabled=true;
				break;

			case 'free-delivery':
				if(v1)
				{
					CCS('cart-delivery-free', 'display', 'block');
					GO('cart-delivery-free').innerHTML=v1;
				}
				else
				{
					CCS('cart-delivery-free', 'display', 'none');
					GO('cart-delivery-free').innerHTML='';
				}
				break;

			case 'person_end':
				SD['run']=false;

				if(SD['next_run'])
				{
					SD['next_run']=false;
					Cart_SDP('person');
				}
				break;

			case 'person':
				var img;

				elem=GO('cart-sd-' + v1);

				if(elem)
				{
					elem.src='/images/other/cart_sd_' + v2 + '.gif';
					if(v3)
					{
						elem.alt=v3;
						elem.title=v3;
					}
				}
				break;

			case 'person_login':
				if(SD['login']) return;

				v1=v1.replace('*', "\n\n");

				SD['login']=true;

				if(confirm(v1))
				{
					var login_name=prompt(v2);
					var login_password=prompt(v3);

					if(login_name && login_password)
					{
						GO('login-name').value=login_name;
						GO('login-password').value=login_password;
						GO('login').submit();
					}
				}
				else
				{
					CartU('nologin');
				}
				break;

			case 'kupony':
				v1=v1.replace('*', "\n\n");

				alert(v1);

				location.reload();

				break;

			case 'kupony-cena':
				if(GO('cart-price-kupony'))
				{
					GO('cart-price-kupony').innerHTML=v1;
				}
				break;
		}
	}


	var SD=Array();
	SD['run']=false;
	SD['vals']=Array();

	function Cart_SDP(mode, val, val2)
	{
		switch(mode)
		{
			case 'state':
				var state=GO('cart-state').value;

				if(val != state)
				{
					CCS('descr-state-' + state, 'display', 'none');

					state=GO('cart-state').value=val;

					CCS('descr-state-' + state, 'display', 'block');

					CartU();
				}
				break;

			case 'delivery':
				var delivery=GO('cart-delivery').value;

				if(delivery != val)
				{
					delivery=GO('cart-delivery').value=val;

					CartU();
				}
				break;

			case 'payment':
				var payment=GO('cart-payment').value;

				if(payment != val)
				{
					payment=GO('cart-payment').value=val;

					CartU();
				}
				break;

			case 'person':
				if(val2)
				{
					var person=GO('cart-person').value;

					if(person != val2)
					{

						if(val2 == 2)
						{
							CCS('cart-fa', 'display', 'block');
							GO('cart-info-left').innerHTML=GO('cart-info-right').innerHTML;
							GO('cart-info-right').innerHTML='';
						}
						else
						{
							CCS('cart-fa', 'display', 'none');
							GO('cart-info-right').innerHTML=GO('cart-info-left').innerHTML;
							GO('cart-info-left').innerHTML='';
						}

						CCS('descr-person-type-' + person, 'display', 'none');

						person=GO('cart-person').value=val2;

						CCS('descr-person-type-' + person, 'display', 'block');
					}
				}

				if(!SD['run'])
				{
					var upd=false, v;

					SD['run']=true;

					vals=Array('name', 'surname', 'street', 'cp', 'city', 'psc', 'email', 'phone', 'brand_name', 'ic', 'dic', 'descr', 'delivery_name', 'delivery_surname', 'delivery_street', 'delivery_cp', 'delivery_city', 'delivery_psc', 'reporter');
					//vals=Array('name', 'reporter');

					var tx='cf[person_type]=' + (GO('person-type-1').checked ? 1 : 2);
					for(key in vals)
					{
						elem=GO('cart-' + vals[key]);

						if(vals[key] == 'reporter')
						{
							v=elem.checked ? 1 : 0;

							tx+='&cf[' + vals[key] + ']=' + v;

							if(SD['vals'][vals[key]] != v)
							{
								upd=true;
							}

							SD['vals'][vals[key]]=v;
						}
						else if(elem)
						{
							v=elem.value;
							v=v.replace(/&/g, '**am**');
							v=v.replace(/=/g, '**eq**');
							v=v.replace(/\+/g, '**pl**');

							tx+='&cf[' + vals[key] + ']=' + v;

							if(!upd)
							{
								if(SD['vals'][vals[key]] != elem.value)
								{
									upd=true;
								}
							}

							SD['vals'][vals[key]]=elem.value;
						}
					}

					//alert(tx);

					if(upd)
					{
						CartU('person', tx);
					}
					else
					{
						CartUC('person_end');
					}

				}
				else
				{
					SD['next_run']=true;
				}

				break;

			case 'person_nologin':

				break;
		}
	}





	function CartU(mode, vals)
	{
		var head, loader, script, cache;

		switch(mode)
		{
			case 'person':
				var person=GO('cart-person').value;
				break;

			case 'nologin':
				break;

			default:
				var state=GO('cart-state').value;
				var delivery=GO('cart-delivery').value;
				var payment=GO('cart-payment').value;
				break;
		}


	    	head=document.getElementsByTagName('head')[0];
	    	loader=document.getElementById('loader');

	    	if(loader)
	    	{
	    		head.removeChild(loader);
	    	}

	    	script=document.createElement('script');
	    	script.id='loader';

	    	if(mode == 'nologin')
	    	{
	    		script.src='/cart/nologin/' + Math.random();
	    	}
	    	else if(mode == 'person')
	    	{
	    		script.src='/cart/person/?random=' + Math.random() + '&' + vals;
	    	}
	    	else if(mode == 'items')
	    	{
	    		script.src='/cart/' + mode + '/' + state + '/' + delivery + '/' + payment + '/' + vals + '/' + Math.random();
	    	}
		else
		{
			script.src='/cart/none/' + state + '/' + delivery + '/' + payment + '/' + Math.random();
		}

		//alert(script.src);
		//window.open(script.src);

		cache=document.getElementsByTagName('head')[0];
	    	cache.appendChild(script);

	    	return false;
	}
