function Panel() {
	this.showed = false;
	this.opened = false;
	this.userOpened = false;
	this.argumentsOpened = false;

	this.currentUser = null;
	this.currentProduct = null;
		
	Panel.prototype.update = function() {
		var userHtml = "";
		var argumentsHtml = "";
		/*
		userHtml += "<h2>Produkty evidovány v pobočkovém systému</h2>";
		if (this.currentUser == null || this.currentUser.account == null || this.currentUser.account.services.length == 0) {
			userHtml += "<p>Informace o službách nejsou k dispozici.</p>";
		}
		else {
			userHtml += "<ul>";
			for (var i = 0; i < this.currentUser.account.services.length; i++) {
				var service = this.currentUser.account.services[i];
				userHtml += "<li>" + service.name + "</li>";
			}
			userHtml += "</ul>";
		}
		userHtml += "<h2>Kontaktní údaje</h2>";
		if (this.currentUser != null) {
			userHtml += "<p>";
			userHtml += 	this.currentUser.firstName + " " + this.currentUser.lastName + "<br />";
			userHtml += 	this.currentUser.phone + "<br />";
			userHtml += "</p>";
		}
		else {
			userHtml += "<p>";
			userHtml += 	"Informace o uživateli nejsou k dispozici.";
			userHtml += "</p>";
		}
		*/
		userHtml += "<h2>Zůstatkové pásmo</h2>";
		if (this.currentUser == null || this.currentUser.account == null || this.currentUser.account.tariffName == null) {
			userHtml += "<p>Informace o zůstatkovém pásmu není k dispozici.</p>";
		}
		else {
			userHtml += "<p>";
			userHtml += "<strong>" + this.currentUser.account.tariffName + "</strong><br />";
			userHtml += this.currentUser.account.characterName;
			userHtml += "</p>";
		}
		userHtml += "<ul>";
		for (var i = 0; i < this.currentUser.account.services.length; i++) {
			var service = this.currentUser.account.services[i];
			if (service.type == "PS") {
				userHtml += "<li>" + service.name + "</li>";
			}
		}
		userHtml += "</ul>";
		userHtml += "<h2>Internet konfigurace</h2>";
		userHtml += "<ul>";
		// UPDATE: hlaska o prazdnem seznamu
		if (this.currentUser.account.services.length == 0) {
			userHtml += "<li>Nebyl nakonfigurován žádný produkt</li>"
		}
		else {
			for (var i = 0; i < this.currentUser.account.services.length; i++) {
				var service = this.currentUser.account.services[i];
				if (service.type == "IE") {
					// UPDATE: verze "old" produktu je aktivni odkaz
					var product = c.products.find(service.productId);
					if (product != null && product.isOld()) {
						userHtml += "<li><a href=\"javascript:void(0)\" ";
						userHtml += "onclick=\"if (c.page3.selectProduct(c.products.find(" + service.productId + "), ";
						userHtml += service.amount + ")) {c.panel.removeAccountService(" + service.productId + ")}\">";
						userHtml += service.name + "</a> (" + service.amount + "&times)</li>";
					}
					// v pripade "noveho" produktu zustava puvodni chovani
					else {
						userHtml += "<li>" + service.name + "</li>";
					}
				}
			}
		}
		userHtml += "</ul>";
		// UPDATE: prodejni argumentace zrusena
		/*if (this.currentProduct == null) {
			argumentsHtml += "<h2>Prodejní argumantace</h2>";
			argumentsHtml += "<p>Pro zobrazení prodejní argumantace musíte nejdříve vybrat produkt.</p>";
		}
		else {
			argumentsHtml += "<h2 class=\"product\">" + this.currentProduct.name + "</h2>";
			argumentsHtml += "<ul class=\"arguments\">";
			for (var i = 0; i < this.currentProduct.arguments.length; i++) {
				var argument = this.currentProduct.arguments[i];
				argumentsHtml += 	"<li class=\"no" + (argument.type) + "\">" + argument.text + "</li>";
			}
			argumentsHtml += "</ul>";
		}*/
		$("panel-body-user").innerHTML = userHtml; 
		// UPDATE: prodejni argumentace zrusena
		//$("panel-body-arguments").innerHTML = argumentsHtml; 
	};
	
	Panel.prototype.setUser = function(user) {
		this.currentUser = user;
		this.update();
	};

	Panel.prototype.setProduct = function(product) {
		this.currentProduct = product;
		// UPDATE: prodejni argumentace zrusena
		/*if (!this.argumentsOpened) {
			this.toggleArguments();
		}*/
		this.update();
	};

	Panel.prototype.show = function() {
		if (this.showed == true) {
			return;
		}
		this.showed = true;
		this.toggle();
		this.toggleUser();
	};

	Panel.prototype.overSwitcher = function() {
		$("panel-switcher").style.left = "0px";
	};

	Panel.prototype.outSwitcher = function() {
		$("panel-switcher").style.left = "-4px";
	};

	Panel.prototype.toggle = function() {
		this.opened = !this.opened;
		$("panel-switcher").style.visibility = this.opened ? "hidden" : "visible";
		$("panel-switcher").onmouseover = delegate(this, this.overSwitcher);
		$("panel-switcher").onmouseout = delegate(this, this.outSwitcher);
		$("panel-background").style.visibility = this.opened ? "visible" : "hidden";
		$("panel").style.visibility = this.opened ? "visible" : "hidden";
	};

	Panel.prototype.toggleUser = function() {
		if (this.argumentsOpened) {
			this.toggleArguments();
		}
		this.userOpened = !this.userOpened;
		$("panel-body-user").style.display = this.userOpened ? "block" : "none";
		$("panel-folder-user").className = this.userOpened ? "folder-user make-expanded" : "folder-user make-collapsed";
	};

	Panel.prototype.toggleArguments = function() {
		if (this.userOpened) {
			this.toggleUser();
		}
		this.argumentsOpened = !this.argumentsOpened;
		// UPDATE: prodejni argumentace zrusena
		//$("panel-body-arguments").style.display = this.argumentsOpened ? "block" : "none";
		//$("panel-folder-arguments").className = this.argumentsOpened ? "folder-arguments make-expanded" : "folder-arguments make-collapsed";
	};

	Panel.prototype.addAccountService = function(type, name, productId, amount) {
		var service = new AccountService();
		service.type = type;
		service.name = name;
		service.productId = productId;
		service.amount = amount;
		this.currentUser.account.services.push(service);
		this.update();
	};

	Panel.prototype.removeAccountService = function(productId) {
		var index = -1;
		for (var i = 0; i < this.currentUser.account.services.length; i++) {
			if (this.currentUser.account.services[i].productId == productId) {
				index = i;
				break;
			}
		}
		if (index > -1) {
			this.currentUser.account.services.splice(index, 1);
		}
		this.update();
	};

}

