//-----------------------------------------------------------------------
function StringFormat(Value)
{
	return Value;
}
//=======================================================================
function getDynData()
{
//-----------------------------------------------------------------------
	var Self = null;
	var Target = null;
	var Stream = null;
	var Output = '';
//-----------------------------------------------------------------------
	this.GetOutput = function()
	{
		return Output;
	}
//-----------------------------------------------------------------------
	this.Init = function(lSelf, lTarget)
	{
		Self = lSelf;
		Target = lTarget;
	}
//-----------------------------------------------------------------------
	this.beforeBegin = function() {Target.innerHTML = "<div class=\"window_wb\" style=\"margin: 20px;\"><h2>CZEKAJ</h2><p class=\"ico_reload\">Trwa komunikacja z serwerem...</p></div>";}
	this.afterLoadedOK = function() {Target.innerHTML = Output;}
	this.afterLoadFail = function() {Target.innerHTML = "Informacja niedostępna. Błąd: " + Stream.status;}
	this.onInicjalisingFail = function() {Target.innerHTML = "Your browser does not support AJAX!";}
	this.getStreamText = function() {return Stream.responseText;}
//-----------------------------------------------------------------------
	this.Send = function(File, Form)
	{
		LoginTimer.Reset();
		Self.beforeBegin();
		try
		{
			Stream = new XMLHttpRequest(); 
		}
		catch(e)
		{
			try
			{
				Stream = new ActiveXObject("Msxml2.XMLHTTP"); 
			}
			catch(e)
			{
				try
				{
					Stream = new ActiveXObject("Microsoft.XMLHTTP"); 
				}
				catch(e)
				{
					Self.onInicjalisingFail();
					return;
				}
			}
		}

		Stream.open("POST", File, true);
		Stream.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		Stream.setRequestHeader("Content-length", Form.length);
		Stream.setRequestHeader("Connection", "close");
		Stream.send(Form);

		Stream.onreadystatechange = function()
		{
			switch(Stream.readyState)
			{
			case 0: // request not initialized
				Target.innerHTML = StringFormat("Zapytanie nie zainicjowane");
				break;
			case 1: // server connection established
				Target.innerHTML = StringFormat("Połączyłem się z serwerem");
				break;
			case 2: // request received
				Target.innerHTML = StringFormat("Uzyskałem odpowiedź");
				break;
			case 3: // processing request
				Target.innerHTML = StringFormat("Przetwarzam dane");
				break;
			case 4: // request finished and response is ready
				if (Stream.status == 200) // status ok
				{
					Output = Stream.responseText;
					Self.afterLoadedOK();
				}
				else
				{
					Self.afterLoadFail();
				}
				break;
			}
		}
	}
//-----------------------------------------------------------------------
	this.Get = function(File)
	{
		LoginTimer.Reset();
		Self.beforeBegin();
		try
		{
			Stream = new XMLHttpRequest(); 
		}
		catch(e)
		{
			try
			{
				Stream = new ActiveXObject("Msxml2.XMLHTTP"); 
			}
			catch(e)
			{
				try
				{
					Stream = new ActiveXObject("Microsoft.XMLHTTP"); 
				}
				catch(e)
				{
					Self.onInicjalisingFail();
					return;
				}
			}
		}

		Stream.open("GET", File, true);
		Stream.send(null);

		Stream.onreadystatechange = function()
		{
			switch(Stream.readyState)
			{
			case 0: // request not initialized
				Target.innerHTML = StringFormat("Zapytanie nie zainicjowane");
				break;
			case 1: // server connection established
				Target.innerHTML = StringFormat("Połączyłem się z serwerem");
				break;
			case 2: // request received
				Target.innerHTML = StringFormat("Uzyskałem odpowiedź");
				break;
			case 3: // processing request
				Target.innerHTML = StringFormat("Przetwarzam dane");
				break;
			case 4: // request finished and response is ready
				if (Stream.status == 200) // status ok
				{
					Output = Stream.responseBody;
					Self.afterLoadedOK();
				}
				else
				{
					Self.afterLoadFail();
				}
				break;
			}
		}
	}
//-----------------------------------------------------------------------
}
//-----------------------------------------------------------------------
function GetProductByCode(Catalog, Code)
{
	if (document.documentElement.clientHeight < 900)
	{
		location.href = "#stage";
	}
	var gdn = new getDynData();
	gdn.Init(gdn, document.getElementById("product_stage_0"));
	gdn.Send("getproduct.php", "act=p&catalog=" + Catalog + "&code=" + Code + "&prefix=stage");
}
//=======================================================================
function idBasket()
{
//-----------------------------------------------------------------------
	this.Add = function (i)
	{
		var moq = document.getElementById("basket_moq_" + i);
		var quantity = document.getElementById("basket_finalquantity_" + i);
		var code = document.getElementById("basket_product_id_" + i);
		var catalog = document.getElementById("basket_catalog_" + i);
		var f_count = parseFloat(quantity.value);
		var f_moq = parseFloat(moq.value);
		if (String(f_count) == "NaN")
		{
			f_count = 0;
		}
		var gdn = new getDynData();
		gdn.Init(gdn, document.getElementById("panel_basket"));
		gdn.Send("basket_manage.php", "act=u&code=" + code.value + "&catalog=" + catalog.value + "&quantity=" + String(f_count + f_moq));
	}
//-----------------------------------------------------------------------
	this.Sub = function (i)
	{
		var moq = document.getElementById("basket_moq_" + i);
		var quantity = document.getElementById("basket_finalquantity_" + i);
		var code = document.getElementById("basket_product_id_" + i);
		var catalog = document.getElementById("basket_catalog_" + i);
		var f_count = parseFloat(quantity.value);
		var f_moq = parseFloat(moq.value);
		if (String(f_count) == "NaN")
		{
			f_count = 0;
		}
		if (f_count == f_moq)
		{
			return;
		}
		var NewValue = f_count - f_moq;
		if (NewValue < f_moq)
		{
			NewValue = f_moq;
		}
		var gdn = new getDynData();
		gdn.Init(gdn, document.getElementById("panel_basket"));
		gdn.Send("basket_manage.php", "act=u&code=" + code.value + "&catalog=" + catalog.value + "&quantity=" + String(NewValue));
	}
//-----------------------------------------------------------------------
	this.Fix = function (i)
	{
		var moq = document.getElementById("basket_moq_" + i);
		var quantity = document.getElementById("basket_finalquantity_" + i);
		var code = document.getElementById("basket_product_id_" + i);
		var catalog = document.getElementById("basket_catalog_" + i);
		var f_count = parseFloat(quantity.value);
		var f_moq = parseFloat(moq.value);
		if (String(f_count) == "NaN")
		{
			f_count = f_moq;
		}
		if (f_count < f_moq)
		{
			f_count = f_moq;
		}
		var Divider = parseInt(f_count / f_moq);
		var NewValue = Divider * f_moq;
		if (NewValue < f_count)
		{
			NewValue += f_moq;
		}
		var gdn = new getDynData();
		gdn.Init(gdn, document.getElementById("panel_basket"));
		gdn.Send("basket_manage.php", "act=u&code=" + code.value + "&catalog=" + catalog.value + "&quantity=" + String(NewValue));
	}
//-----------------------------------------------------------------------
	this.Update = function (i)
	{
		var gdn = new getDynData();
		gdn.Init(gdn, document.getElementById("panel_basket"));
		gdn.Send("basket_manage.php", "act=p");
	}
//-----------------------------------------------------------------------
	this.Del = function (i)
	{
		if (!confirm('Potwierdź usunięcie'))
		{
			return;
		}
		var code = document.getElementById("basket_product_id_" + i);
		var catalog = document.getElementById("basket_catalog_" + i);
		var gdn = new getDynData();
		gdn.Init(gdn, document.getElementById("panel_basket"));
		gdn.Send("basket_manage.php", "act=u&code=" + code.value + "&catalog=" + catalog.value + "&quantity=0");
	}
//-----------------------------------------------------------------------
}
//=======================================================================
function idStage()
{
//-----------------------------------------------------------------------
	this.Add = function(Id, Moq, PriceQuantity, PriceDiscount, Currency)
	{
		var Item = document.getElementById("finalquantity_" + Id);
		var finalquantity = parseFloat(Item.value);
		if (!isFinalQuantity(finalquantity))
		{
			finalquantity = 0;
		}
		var Add = parseFloat(Moq);
		NewValue = finalquantity + Add;
		Item.value = NewValue;
		Calculate(Id, NewValue * PriceDiscount * PriceQuantity, Currency);
	}
//-----------------------------------------------------------------------
	this.Sub = function(Id, Moq, PriceQuantity, PriceDiscount, Currency)
	{
		var Item = document.getElementById("finalquantity_" + Id);
		var finalquantity = parseFloat(Item.value);
		if (!isFinalQuantity(finalquantity))
		{
			finalquantity = 0;
		}
		var Add = parseFloat(Moq);
		var NewValue = finalquantity - Add;
		if (NewValue < 0)
		{
			NewValue = 0;
		}
		Item.value = NewValue;
		Calculate(Id, NewValue * PriceDiscount * PriceQuantity, Currency);
	}
//-----------------------------------------------------------------------
	this.Fix = function(Id, Moq, PriceQuantity, PriceDiscount, Currency)
	{
		var Item = document.getElementById("finalquantity_" + Id);
		var finalquantity = Number(Obj.Item);
		if (!isFinalQuantity(finalquantity))
		{
			alert("Wybierz poprawną ilość produktu");
			return;
		}
		var Divider = parseInt(finalquantity / Moq);
		var NewValue = Divider * Moq;
		if (NewValue < finalquantity)
		{
			NewValue += Moq;
		}
		Item.value = NewValue;
		Calculate(Id, NewValue * PriceDiscount * PriceQuantity, Currency);
	}
//-----------------------------------------------------------------------
	function isFinalQuantity(Entry)
	{
		var finalquantity = Number(Entry);
		if (String(finalquantity) == "NaN")
		{
			return false;
		}
		if (finalquantity <= 0)
		{
			return false;
		}
		return true;
	}
//-----------------------------------------------------------------------
	function Calculate(Id, PriceDiscount, Currency)
	{
		var Target = document.getElementById("finalprice_" + Id);
		Target.innerHTML = Display.Money(PriceDiscount, Currency);
	}
//-----------------------------------------------------------------------
	this.SendToCarer = function(Id, ProductId, Catalog)
	{
		var gdn = new getDynData();
		gdn.Init(gdn, document.getElementById("product_" + Id));
		gdn.Send("getproduct.php", "act=a&productid=" + ProductId + "&catalog=" + Catalog);
	}
//-----------------------------------------------------------------------
	this.getProductsById = function()
	{
		var gdn;
		var code;
		var catalog;
		var ObjCount = document.getElementById("field_count");
		if (ObjCount == null)
		{
			return;
		}
		var count = parseInt(ObjCount.innerHTML);
		for (var i = 0; i < count; i++)
		{
			code = document.getElementById("search_code_" + i);
			catalog = document.getElementById("search_catalog_" + i);
			gdn = new getDynData();
			gdn.beforeBegin = function()
			{
				return true;
			}
			gdn.Init(gdn, document.getElementById("product_search_" + i));
			gdn.Send("getproduct.php", "act=p&catalog=" + catalog.innerHTML + "&code=" + code.innerHTML + "&id=" + i + "&prefix=search");
		}
	}
//-----------------------------------------------------------------------
	this.BasketLoginShow = function()
	{
		var Obj = document.getElementById("panel_basket_login");
		Obj.style.display = "block";
	}
//-----------------------------------------------------------------------
	this.BasketLoginSubmit = function()
	{
		var user = document.getElementById("id_email");
		var pass = document.getElementById("id_password");
		if ((user.value.length == 0) || (pass.value.length == 0))
		{
			return;
		}
		document.basket_login.submit();
	}
//-----------------------------------------------------------------------
	this.BasketLoginCancel = function()
	{
		var Obj = document.getElementById("panel_basket_login");
		Obj.style.display = "none";
	}
//-----------------------------------------------------------------------
	this.Submit = function(Id)
	{
		var Obj = document.getElementById("finalquantity_" + Id);
		var finalquantity = Number(Obj.value);
		if (!isFinalQuantity(finalquantity))
		{
			alert("Wybierz poprawną ilość produktu");
			return;
		}
		var Obj0 = document.getElementById("productid_" + Id);
		var productid = Obj0.value;
		var ObjCatalog = document.getElementById("catalog_" + Id);
		var catalog = ObjCatalog.value;
		var ObjPages = document.getElementById("pages_" + Id);
		var pages = ObjPages.value;
		var Obj1 = document.getElementById("name_" + Id);
		var name = Obj1.value;
		var Obj2 = document.getElementById("description_" + Id);
		var description = Obj2.value;
		var Obj3 = document.getElementById("brandname_" + Id);
		var brandname = Obj3.value;
		var Obj4 = document.getElementById("price_" + Id);
		var price = Obj4.value;
		var Obj5 = document.getElementById("pricequantity_" + Id);
		var pricequantity = Obj5.value;
		var Obj6 = document.getElementById("shippingpriceunit_" + Id);
		var shippingpriceunit = Obj6.value;
		var Obj7 = document.getElementById("moq_" + Id);
		var moq = Obj7.value;
		var Obj8 = document.getElementById("quantityunit_" + Id);
		var quantityunit = Obj8.value;
		var Obj9 = document.getElementById("currency_" + Id);
		var currency = Obj9.value;
		var Obja = document.getElementById("groupid_" + Id);
		var groupid = Obja.value;
		var Objb = document.getElementById("icon_" + Id);
		var icon = Objb.value;
		var Form = "act=b&productid=" + productid + "&catalog=" + catalog + "&pages=" + pages + "&name=" + name + "&description=" + description + "&brandname=" + brandname + "&price=" + price + "&pricequantity=" + pricequantity + "&shippingpriceunit=" + shippingpriceunit + "&moq=" + moq + "&quantityunit=" + quantityunit + "&currency=" + currency + "&groupid=" + groupid + "&icon=" + icon + "&finalquantity=" + finalquantity;
		var gdn = new getDynData();
		gdn.Init(gdn, document.getElementById("product_" + Id));
		gdn.Send("getproduct.php", Form);
	}
//-----------------------------------------------------------------------
}
//=======================================================================
function idB2b()
{
//-----------------------------------------------------------------------
	this.SearchAct = function(e)
	{
		var Key;
		if (window.event)
		{
			Key = window.event.keyCode;
		}
		else if (e)
		{
		   Key = e.which;
		}
		else
		{
		   Key = -1;
		}
		if (Key == 13)
		{
			B2b.SearchShow('0');
		}
	}
//-----------------------------------------------------------------------
	this.BasketShow = function()
	{
		var B = SetVisibility("panel_basket", ["panel_clipboard", "panel_products_history", "panel_catalog", "panel_wuzetka", "panel_search"]);
		var gdn = new getDynData();
		gdn.Init(gdn, B);
		gdn.Send("basket_manage.php", "act=s");
	}
//-----------------------------------------------------------------------
	this.CatalogsShow = function()
	{
		SetVisibility("panel_catalog", ["panel_clipboard", "panel_products_history", "panel_wuzetka", "panel_basket", "panel_search"]);
	}
//-----------------------------------------------------------------------
	this.PromotionAdd = function(Id, Sender)
	{
		var Obj0 = document.getElementById("productid_" + Id);
		var product_id = Obj0.value;
		var Obj1 = document.getElementById("catalog_" + Id);
		var catalog = Obj1.value;
		var ObjPages = document.getElementById("pages_" + Id);
		var pages = ObjPages.value;
		var Obj2 = document.getElementById("name_" + Id);
		var name = Obj2.value;
		var Obj3 = document.getElementById("description_" + Id);
		var description = Obj3.value;
		var Obj4 = document.getElementById("brandname_" + Id);
		var brandname = Obj4.value;
		var Obj5 = document.getElementById("icon_" + Id);
		var icon = Obj5.value;
		var Obj6 = document.getElementById("moq_" + Id);
		var moq = Obj6.value;
		var Obj7 = document.getElementById("retail_" + Id);
		var retail = Obj7.value;

		var gdn = new getDynData();
		gdn.Init(gdn, Sender);
		gdn.Send("promotion.php", "act=a&product_id=" + product_id + "&catalog=" + catalog + "&pages=" + pages + "&name=" + name + "&description=" + description + "&brandname=" + brandname + "&icon=" + icon + "&moq=" + moq + "&retail=" + retail);
	}
//-----------------------------------------------------------------------
	this.ClipboardShow = function()
	{
		var B = SetVisibility("panel_clipboard", ["panel_catalog", "panel_products_history", "panel_wuzetka", "panel_basket", "panel_search"]);
		var gdn = new getDynData();
		gdn.Init(gdn, B);
		gdn.Send("clipboard.php", "act=s");
	}
//-----------------------------------------------------------------------
	this.ClipboardAdd = function(Id, Sender)
	{
		//var B = SetVisibility("panel_clipboard", ["panel_catalog", "panel_products_history", "panel_wuzetka", "panel_basket", "panel_search"]);
		var B = document.getElementById("panel_clipboard");

		var Obj0 = document.getElementById("productid_" + Id);
		var product_id = Obj0.value;
		var Obj1 = document.getElementById("catalog_" + Id);
		var catalog = Obj1.value;
		var Obj2 = document.getElementById("icon_" + Id);
		var icon = Obj2.value;
		var Obj3 = document.getElementById("name_" + Id);
		var name = Obj3.value;
		var Obj4 = document.getElementById("description_" + Id);
		var description = Obj4.value;
		var Obj5 = document.getElementById("brandname_" + Id);
		var brandname = Obj5.value;
		var Obj6 = document.getElementById("pages_" + Id);
		var pages = Obj6.value;

		var gdn = new getDynData();
		gdn.Init(gdn, B);
		gdn.Send("clipboard.php", "act=a&product_id=" + product_id + "&catalog=" + catalog + "&icon=" + icon + "&name=" + name + "&description=" + description + "&brandname=" + brandname + "&pages=" + pages);
		Sender.innerHTML = "Produkt dodany do schowka";
	}
//-----------------------------------------------------------------------
	this.ClipboardRemove = function(ProductId, Catalog, Id)
	{
		var B = SetVisibility("panel_clipboard", ["panel_catalog", "panel_products_history", "panel_wuzetka", "panel_basket", "panel_search"]);
		var gdn = new getDynData();
		gdn.Init(gdn, B);
		gdn.Send("clipboard.php", "act=d&s=" + Id + "&product_id=" + ProductId + "&catalog=" + Catalog);
	}
//-----------------------------------------------------------------------
	this.ClipboardShowResult = function(Id)
	{
		var B = SetVisibility("panel_clipboard", ["panel_catalog", "panel_products_history", "panel_wuzetka", "panel_basket", "panel_search"]);
		var gdn = new getDynData();
		gdn.Init(gdn, B);
		gdn.Send("clipboard.php", "act=i&s=" + Id);
	}
//-----------------------------------------------------------------------
	function SearchShow(Phrase, StartFrom, Form)
	{
		var B = SetVisibility("panel_search", ["panel_clipboard", "panel_products_history", "panel_catalog", "panel_wuzetka", "panel_basket"]);
		if (StartFrom.length == 0)
		{
			if (B.innerHTML.length > 0)
			{
				return;
			}
		}
		var gdn = new getDynData();
		gdn.Init(gdn, B);
		gdn.afterLoadedOK = function()
		{
			B.innerHTML = gdn.getStreamText();
			Stage.getProductsById();
		}
		gdn.Send("search_simple.php", "f=" + Phrase + "&s=" + StartFrom + Form);
	}
//-----------------------------------------------------------------------
	this.CatalogShow = function(CatalogName, Count, StartFrom)
	{
		var Search = document.getElementById("id_search_simple");
		var B = SetVisibility("panel_search", ["panel_clipboard", "panel_products_history", "panel_catalog", "panel_wuzetka", "panel_basket"]);
		var gdn = new getDynData();
		gdn.Init(gdn, B);
		gdn.afterLoadedOK = function()
		{
			B.innerHTML = gdn.getStreamText();
			Stage.getProductsById();
		}
		gdn.Send("search_simple.php", "f=" + Search.value + "&k=" + CatalogName + "&c=" + Count + "&b=" + StartFrom);
	}
//-----------------------------------------------------------------------
	this.SearchShow = function(StartFrom)
	{
		var Search = document.getElementById("id_search_simple");
		location.href = "#search?" + Display.urlEncode(Search.value);
		SearchShow(Search.value, StartFrom, '');
	}
//-----------------------------------------------------------------------
	this.ProductsHistoryShowResult = function(StartFrom)
	{
		var B = SetVisibility("panel_products_history", ["panel_clipboard", "panel_search", "panel_catalog", "panel_wuzetka", "panel_basket"]);
		if (StartFrom.length == 0)
		{
			if (B.innerHTML.length > 0)
			{
				return;
			}
		}
		var gdn = new getDynData();
		gdn.Init(gdn, B);
		gdn.afterLoadedOK = function()
		{
			B.innerHTML = gdn.getStreamText();
		}
		gdn.Send("products_history.php", "s=" + StartFrom);
	}
//-----------------------------------------------------------------------
	this.SearchShowResult = function(StartFrom, CatalogName, Count, StartSection)
	{
		var Form = "&k=" + CatalogName + "&c=" + Count + "&b=" + StartSection;
		SearchShow("", StartFrom, Form);
	}
//-----------------------------------------------------------------------
	this.WuzetkaShow = function()
	{
		//SetVisibility("panel_wuzetka", ["panel_clipboard", "panel_products_history", "panel_basket", "panel_catalog", "panel_search"]);
		window.open("http://wuzetka.wz.com.pl/");
	}
//-----------------------------------------------------------------------
	function SetVisibility(Visible, Hidden)
	{
		var Obj;
		for (var i = 0; i < Hidden.length; i++)
		{
			Obj = document.getElementById(Hidden[i]);
			Obj.style.visibility = "hidden";
			Obj.style.height = "0px";
		}
		Obj = document.getElementById(Visible);
		Obj.style.visibility = "visible";
		Obj.style.height = "auto";
		return Obj;
	}
//-----------------------------------------------------------------------
}
//=======================================================================
var Basket = new idBasket;
var Stage = new idStage;
var B2b = new idB2b;
//-----------------------------------------------------------------------

