
Classes.Porownywarka = new Class();
Classes.Porownywarka.prototype = {

	__construct: function () {
		var e, i, n, elements, tbodies, browser = new Classes.Browser();
		//emuluj klasę ":hover" dla IE6
		if (browser.isIE && !browser.isIE7) {
			tbodies = document.getElementsByTagName('tbody');
			for (i = 0, n = tbodies.length; i < n; ++i) {
				if (hasClass(tbodies[i], 'autoselect')) {
					elements = tbodies[i].getElementsByTagName('tr');
					for (i = 0, n = elements.length; i < n; ++i) {
						e = elements[i];
						addEvent(e, 'mouseover', this.selectRow.bind(e));
						addEvent(e, 'mouseout', this.deselectRow.bind(e));
					}
				}
			}
		}
	},

	selectRow: function () {
		addClass(this, 'selected');
	},

	deselectRow: function (e) {
		removeClass(this, 'selected');
	},

	onTakClick: function(pid) {
		this.addProduct(pid,1,1);
	},
	onNieClick: function(pid) {
		this.addProduct(pid,1,0);
	},
	addProduct: function (pid) {
		var nocheck = arguments[1] ? 1 : 0;
		var clear = arguments[2] ? 1 : 0;
		ajax.callMethod('PorownywarkaKomponent', 'addProduct', null, 'productID=' + pid+'&clear='+clear+'&nocheck='+nocheck, this,
			function (obj) {
				var root = this.getResponseXML(showMessage), div = _e('porownProdukty');
				if (root) {
					if ('error' === _xn(root.firstChild)) {
						showMessage(_xv(root.firstChild));
					} else
					if ('confirm' === _xn(root.firstChild)) {
						var v = _int(_xv(root.firstChild),0);
						var c = 0;
						if(v>1)
							c = showConfirmMessage('Do porównywarki dodawany jest produkt z innej kategorii niż umieszczone do porównania, czy usunąć zawartość porównywarki, pozostawiając produkty z jednej kategorii',obj.onTakClick.bindArgs(obj,pid),obj.onNieClick.bindArgs(obj,pid));
						else
							c = showConfirmMessage('Do porównywarki dodawany jest produkt z innej kategorii, czy usunąć zawartość porównywarki',obj.onTakClick.bindArgs(obj,pid),obj.onNieClick.bindArgs(obj,pid));
					} else if (div) {
						div.innerHTML = ajax.xhtmlConvert(_xv(root.firstChild));
						if (!div.innerHTML) {
							hide(div);
						} else {
							show(div);
						}
					} else {
						showMessage('Produkt został dodany do porównania.');
					}
				}
			}
		);
	},

	porownUsun: function (productID) {
		var data = {
			productID: productID,
			handler: this
		};
		ajax.callMethod('PorownywarkaKomponent', 'removeProduct', null, 'productID=' + data.productID, data, this.callbackPorownUsun);
	},

	callbackPorownUsun: function (params) {
		var root = this.getResponseXML(), e = _e('porownProdukty');
		if (root && params && params.handler) {
			if ('error' === _xn(root.firstChild)) {
				showMessage(_xv(root.firstChild));
			} else if (e) {
				e.innerHTML = ajax.xhtmlConvert(_xv(root.firstChild));
				if (!e.innerHTML) {
					hide(e);
				} else {
					show(e);
				}
			} else {
				showMessage('Produkt został usunięty z porównania.');
			}
		}
	},

	formPorownUsun: function (productID) {
		var form = _e('formPorownUsun');
		if (form) {
			form.productID.value = productID;
			form.submit();
		}
	}
};

