/**
  * zobrazi okno s velkym obrazkem k produktu 
  */
function showArticleBigPicture(jmeno, sirka, vyska, popis) {
	wokno=window.open("", "_blank", "resizeable=yes,toolbar=no,status=no,menubar=no,scrollbars=no,directories=no,location=no,resize=yes,width="+sirka+",height="+vyska);
	wokno.document.write("<html><head><title>"+popis+"</title></head><body leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">");
	wokno.document.write("<img src=\""+jmeno+"\" width="+sirka+" height="+vyska+" border=0 alt=\""+popis+"\" onClick=\"window.close();\">");
	wokno.document.write("</body></html>");
}

/**
 * otevre okno se stavy skladu pro dany produkt
 */
function showStoreStates(adress) {
	var width = 400;
	var height = 370;
 	window.open(adress, "_blank", "resizeable=yes,toolbar=no,status=no,menubar=no,scrollbars=no,directories=no,location=no,resize=yes,width="+ width +",height="+ height);
}

/**
 * sformatuje cislo do stringu tak aby se dobre cetlo
 * @param numbrer
 * @return
 */
function formatNumber(number) {
	var formated = "";
	var times = 0;
	do {
		if(times == 3 || times == 6 )
			formated = "&nbsp;"+ formated;
		formated = (number % 10) + formated;
		number = Math.floor(number / 10);
		times++;
	} while(number > 0);
	return formated;
}

/**
 * TODO upravit tak, aby se dalo vytvorit a otevirat vice oken
 * je zavisle na jQuery
 * reprezentuje predni panel s jednim oknem, do ktereho se da kreslit cololi
 * @return
 */
function FrontPanelWindow() {
	// frontpanel do ktereho se umistuje okno
	var frontPanel = $("#front-panel");
	var frontPanelWindow = $("#front-panel div.front-panel-window");
	var contentContainer = $("#front-panel div.front-panel-window-content");
	// zaviraci tlacitko
	var closeButton = $("#front-panel a.front-panel-window-close");
	// TODO melo by kontrolovat jestli takova promena exustuje a pokud ne tak vytvaret
	
	/**
	 * urcuje, jestli je okno otevrene
	 */
	var opened = false;
	
	var width = 0;
	var height = 0;
	
	/**
	 * provede prenastaveni obsahu okna
	 * k tomu se pouziva funnkce generatorCallback(content)
	 * s parametrem:
	 * content - reprezentuje jquery objekt do ltereho se ma content vlozit
	 */
	this.resetContent = function(generatorCallback) {
		// pokud je okno otevrene, vyprazdni ho a zavre
		if(opened) {
			contentContainer.empty();
			frontPanelWindow.hide("normal", function() {
				generatorCallback(contentContainer);
			});
		} else {
			// vyprazdni container 
			contentContainer.empty();
			// nastavi obsah pomoci callbacku
			generatorCallback(contentContainer);
		}
		
		// vypocet pozice aby okno bylo uprostred
		frontPanelWindow.css("top", (($(window).height() - height) / 3) +"px");
		frontPanelWindow.css("left", (($(window).width() - width) / 3) +"px");
		
		// schova contentContainer
		contentContainer.hide();
		
		// pokud bylo okno otevreno opet ho otevre s obsahem
		if(opened) {
			frontPanelWindow.show("normal", function() {
				contentContainer.show();
			});
		}
	}
	
	/**
	 * otevre okno
	 */
	this.open = function() {
		frontPanel.height($(document).height());
		frontPanel.show();
		
		// vypocet pozice aby okno bylo uprostred
		frontPanelWindow.css("top", (($(window).height() - height) / 3) +"px");
		frontPanelWindow.css("left", (($(window).width() - width) / 3) +"px");
		
		// spusti animaci otevreni okna a potom az se okno otevre zobrazi obsah
		frontPanelWindow.show("normal", function() {
			contentContainer.show();
		});
		opened = true;
	}
	
	/**
	 * provede uzavreni okna
	 * napred vyrazdni obsah okna, potom ho zavre a nakonec schova fromt panel
	 */
	this.close = function(e) {
		contentContainer.hide();
		frontPanelWindow.hide("normal", function() { // uzavre okno a potom uzavre panel
			frontPanel.hide();
		});
		opened = false;
	}
	
	/**
	 * nastavuje dodatecnou akci, ktera se ma provezt pri zavirani
	 */
	this.setAditionalCloseAction = function(aditionalCloseCallback) {
		var _close = this.close;
		closeButton.unbind('click');
		closeButton.click(function(e) {
			_close(e);
			aditionalCloseCallback(e);
		});
	}
	
	this.setSize = function(_width, _height) {
		width = _width;
		height = _height;
		frontPanelWindow.width(width);
		frontPanelWindow.height(height);
	}
	
	/**
	 * nastavuje udalost na zavirani okna
	 */
	closeButton.click(this.close);
}

/**
 * zavisle na jquery, otevira okno v sedem panelu podombnem compose
 * @param callback funkce, ktera ma toto okno napnit daty
 */
function openFrontPanelWindow(width, height, callback) {
	// zobrazuje panel
	var frontPanel = $("#front-panel");
	frontPanel.height($(document).height());
	frontPanel.show();
	
	/// otevira okno
	var fpWindow = $("#front-panel div.front-panel-window");
	fpWindow.width(width);
	fpWindow.height(height);
	// vypocet pozice aby okno bylo uprostred
	fpWindow.css("top", (($(window).height() - height) / 3) +"px");
	fpWindow.css("left", (($(window).width() - width) / 3) +"px");
	// ziskava a vyprazdnuje
	var content = $("#front-panel div.front-panel-window-content");
	// po otevreni vola callback funkci s elementem, do ktereho vlozit obsah
	fpWindow.show("normal", function() {
		callback(content);
	});
	
	// zajistuje zavirani
	var close = $("#front-panel a.front-panel-window-close");
	close.click(function() {
		content.empty();
		fpWindow.hide("slow", function() { // uzavre okno a potom uzavre panel
			frontPanel.hide();
		});
	});
}
