var frontPanelWindow; // dostava promenou frontPanelWindow do globalniho scopu

/**
 * proved, az je dokument pripraven
 */
$(document).ready(function() {
	// zneviditelnuje nasledujici 2 taby
	$("#product-aditional-info-parameters-content").addClass("invisible");
	$("#product-aditional-info-accessory-content").addClass("invisible");
	$("#product-aditional-info-discussion-content").addClass("invisible");
	
	// zneviditelnuje h2 nadpisi v jednotlivych obsazich
	$("#product-aditional-info > div > h2").each(function() {
		$(this).addClass("invisible");
	});
	
	// pridava onclick na jednotlive taby
	$("#product-aditional-info-switcher > a").each(function() {
		var _this = $(this);
		_this.click(function() {
			// prepina zalozky
			$("#product-aditional-info-switcher > a").each(function() {
				$(this).removeClass("active");
			});
			_this.addClass("active");
			
			// prepina obsah
			$("#product-aditional-info > div").each(function() {
				$(this).addClass("invisible");
			});
			var makeVisibleName = "#"+ _this.attr("id") +"-content";
			$(makeVisibleName).removeClass("invisible");
		});
	});
	
	// zviditelnuje div obsahujici taby
	$("#product-aditional-info-switcher").removeClass("invisible");
	
	// prepne na zalozku z prislusenstvim
	$("div#show-all-accessory").click(function() {
		var accessoryTab = $("#product-aditional-info-accessory");
		
		// prepina zalozky
		$("#product-aditional-info-switcher > a").each(function() {
			$(this).removeClass("active");
		});
		accessoryTab.addClass("active");
		
		// prepina obsah
		$("#product-aditional-info > div").each(function() {
			$(this).addClass("invisible");
		});
		var makeVisibleName = "#product-aditional-info-accessory-content";
		$(makeVisibleName).removeClass("invisible");
		
		// odscrolluje na dalsi informace
		$('html, body').animate({scrollTop:$("#more-info-header").offset().top}, 500);
	});
	
	// navazuje nastavovani  
	var editOffsetLink = $("p#offset-discount-product a");
	
	frontPanelWindow = new FrontPanelWindow();
	
	editOffsetLink.click(function() {
		frontPanelWindow.resetContent(constructOffsetDiscountWindow);
		frontPanelWindow.setSize(420, 565);
		frontPanelWindow.open();
	});
	editOffsetLink.removeAttr("href");
	editOffsetLink.css("cursor", "pointer");
	
	// více o typu zboží  
	var moreTypeLink = $("a#more-type");
	moreTypeLink.click(function() {
		frontPanelWindow.resetContent(function (content) {
			content.html("<p><strong>Nové</strong>: Telefony z oficiální české distribuce určené pro český trh.<br/><br/>"+
						"<strong>Zánovní</strong>: Telefony, které nikdy nebyly používány, pouze u nich mohlo být např. otevřené balení a telefon byl krátce puštěn. Jde např. o telefony, které firmy či jednotlivci získali jako bonus od operátora a nevyužijí je. Poskytujeme na ně záruku 24 měsíců.<br/><br/>"+
						"<strong>Použité</strong>: Telefony dříve používané. Obvykle pouze s nabíječkou. Poskytujeme na ně plnou šestiměsíční záruku na skryté vady.</p>");
		});
		frontPanelWindow.setSize(400, 300);
		frontPanelWindow.open();
	});
	moreTypeLink.removeAttr("href");
	moreTypeLink.css("cursor", "pointer");
});

/**
 * sestavi obsah okna na nastaveni produktu na protiucet
 * @param content
 * @return
 */
function constructOffsetDiscountWindow(content) {
	content.html("<p>Zadejte název zboží (telefonu nebo fotoaparátu), " +
			"který vlastníte a můžete ho nabídnout na protiúčet kliknutím na něj:</p>" +
			"<form onSubmit=\"return false;\" autocomplete=\"off\">" +
			"<label>Zadejte zde: </label><input type=\"text\" name=\"find\" class=\"defedit\" />"+
			"</form>"+
			"<ul></ul>" +
			"<p>Pokud Vám při zápisu není nabízen Váš telefon nebo fotoaparát, nevykupujeme jej již.<br/>"+
			"Již vybrané zboží můžete změnit výběrem jiného, " +
			"nebo můžete provést jeho odebrání na <a href=\""+ offsetDiscountConfig.editOffsetDiscountProductsUrl +"\">této stránce</a>.</p>");
	var sourceForm = content.find("form");
	var resultsContainer = content.find("ul");
	content.find("form input[name=find]").keyup(function(e) {
		getFoundProducts(e, sourceForm, resultsContainer);
	});
	// naplni alespon nejakymi daty
//	getFoundProducts(null, sourceForm, resultsContainer);
}

/**
 * TODO predelat toto do tridy
 * vrati nalezene produkty odpovidajici informacim zadamym do sourceForm
 * a vysledky navaze do resultsContainer
 * @param e
 * @param sourceForm
 * @param resultsContainer
 * @return
 */
function getFoundProducts(e, sourceForm, resultsContainer) {
	jQuery.get(offsetDiscountConfig.findBazaarProductUrl, // je nutne nastavit
			sourceForm.serialize(),
			function(data) {	
				resultsContainer.empty();
				resultsContainer.append(data);
				resultsContainer.find("li").each(function() {
					var link = $(this).find("a");
					var productCode = link.attr("href");
					link.removeAttr("href");
					$(this).click(function() {
						updateOffserProductDiscount(productCode);
					});
				});
			}
		);
}

/**
 * upravi offset discount podle toho do vybere uzivatel
 * @param productCode
 * @return
 */
function updateOffserProductDiscount(productCode) {
	jQuery.getJSON(offsetDiscountConfig.setOffsetDiscountProductsUrl, // je nutne nastavit
			{code: productCode},
			function(data, textStatus) {
				if(textStatus == "success") {
					if(data.error) {
						alert(data.error);
						return false;
					}
					
					frontPanelWindow.setSize(420, 245);
					frontPanelWindow.resetContent(function(content) {
						var product = data.result[0];
						var totalDiscountPrice = offsetDiscountConfig.product.actualPriceWithVat;
						if(offsetDiscountConfig.product.checkPrice > 0 
							&& offsetDiscountConfig.product.minBuyoutProductPrice < product.actualBuyoutPrice)
							totalDiscountPrice = offsetDiscountConfig.product.checkPrice;
						totalDiscountPrice -= product.actualBuyoutPrice;
						var infoText = "<p>Na protiúčet jste zvolili <strong>"+ product.name +
										"</strong>. Za něj Vám můžeme nabídnout výkupní cenu až <strong>"+
										formatNumber(product.actualBuyoutPrice) +" Kč</strong>.</p>"+
										"<p>Vámi vybraný <strong>"+ offsetDiscountConfig.product.name +"</strong> ";
						if(totalDiscountPrice < 0) {
							infoText += "a navíc dostanete ještě ";
							totalDiscountPrice *= -1;
						} else {
							infoText += "Vám tak můžeme nabídnout již za:</p>";
						}
						infoText += "<p class=\"center-content\"><strong class=\"huge\">"+ 
										formatNumber(totalDiscountPrice) +
										" kč</strong>.</p>";
						if(offsetDiscountConfig.product.checkPrice > 0
							&& offsetDiscountConfig.product.minBuyoutProductPrice < product.actualBuyoutPrice)
							infoText += "<p>(Tato cena platí při využití akce šek)</p>";
						infoText += "<form class=\"center-content\">"+
										"<input class=\"defbackbutton\" type=\"submit\" value=\"Změnit\" />"+
										"<input class=\"defbutton\" type=\"submit\" value=\"Zavřít\" />"+
										"</form>";
						content.html(infoText);
						// navazuje onclick na zmenit
						content.find("form input:nth-child(1)").click(function(e) {
							if(offsetDiscountConfig.product.checkPrice > 0)
								frontPanelWindow.setSize(420, 585);
							else
								frontPanelWindow.setSize(420, 565);
							frontPanelWindow.resetContent(constructOffsetDiscountWindow);
							return false;
						});
						// navazuje onclick na zavrit
						content.find("form input:nth-child(2)").click(function(e) {
							window.location.reload();
							return false;
						});
					});
				} else {
					alert("Při provádění vašeho požadavku došlo k chybě.");
					return false;
				}
			});
	return false;
}
