/**
*
* JS funkce pro detail produktu
*
* @package		SEVT
* @subpackage	libs
* @version		$Id$
* @encoding		UTF-8
* @author		Filip Zach <filip.zach@e4you.cz>
* @copyright	(c) e4you spol. s r.o. 2002-2008, <design@e4you.cz>
*
* Obsah tohoto souboru je majetkem e4you spol. s r.o. Jeho kopírování,
* pozměňování, šíření a jakékoli další využití je možné výhradně
* se souhlasem e4you spol. s r.o.
*
*/

/// pokud neexistuje jmenný prostor sevt vytvoříme ho
if(!sevt) { var sevt = {} };

/**
* Modul pro detail produktu
*/
sevt.product = {

	images: new Array(),

	/**
	 * funkce zobrazí tab s předaným css id a ostatní skryje
	 * také se postará o nastavení barvy pozadí řádků tabulky s daty produktu
	 *
	 * @param tab_id string css id zvoleného tabu
	 *
	 */
	showTab: function (tab_id) {

		try {

			/// skryjeme všechny taby
			var tabs = getObject('product_detail_tabs').getElementsByTagName('li');
			for (var i = 0 ; i<tabs.length; i++) {
				tabs[i].className='';
			}

			/// označíme zvolený tab jako vybraný
			getObject(tab_id).className='selected';

			/// uložíme do cookie informaci o tom, který tab je vybraný
			document.cookie = "tab="+tab_id;

			/// projdeme tagy v rámci detailu produktu
			var elements = getObject('product_detail_inner').getElementsByTagName('*');
			for (i=0; i<elements.length ;i++) {
				/// nejprve všechny označíme jako skryté
				if (elements[i].className.match('tab_[0-9]')) {
					elements[i].style.display='none';
				}
				/// zobrazíme prvky, které se mají zobrazit ve zvoleném tabu, jsou identifikovány css třídou
				/// druhý tab obsahuje jak prvky z prvního, tak druhého tabu
				//if (tab_id=='tab_2') {
				//	if (elements[i].className.match('tab_(1|2)')) {
				//		elements[i].style.display='block';
				//	}
				//} else {
					if (elements[i].className.match(tab_id)) {
						elements[i].style.display='block';
					}
				//}
			}

			/// nastavíme správné podbarvení zobrazených řádků tabulky
			var line_counter = 1;
			var table_rows = getObject('product_info_table').getElementsByTagName('tr');
			for (var i=0; i<table_rows.length ;i++) {
				if (table_rows[i].style.display!='none') {
					if (line_counter%2==0) {
						replaceCssClass(table_rows[i],'odd','even');
					} else {
						replaceCssClass(table_rows[i],'even','odd');
					}
					line_counter++;
				}
			}
		} catch (e) {}
	},


	/**
	 * Vyčistí formulář pro zadání diskusního příspěvku
	 *
	 */
	clearReply: function () {
		form = document.forms['productForum'];
		form.elements['forum[parent_id]'].value = 0;
		form.elements['forum[subject]'].value = '';
		form.elements['forum[message]'].value = '';
		getObject('answer_to_message').innerHTML = '';
		form.elements['forum[message]'].focus();
	},


	/**
	 * Nastaví správné hodnoty do formuláře pro odpověď na diskusní příspěvek
	 *
	 * @param id id diskusního příspěvku, na který odpovídáme
	 * @param answer_subject předmět příspěvku, na který odpovídáme
	 *
	 */
	reply: function (id,answer_subject) {
		subj = document.getElementById('msg_'+id);
		form = document.forms['productForum'];
		form.elements['forum[parent_id]'].value = id;
		rexp = new RegExp("^Re: +","gi");
		getObject('answer_to_message').innerHTML = '<p class="emphasize"> Odpověď na příspěvek: '+answer_subject+' <br><strong><a href="javascript:sevt.product.clearReply()">Vyčistit formulář</a></strong> </p>';
		if(subj) {
			subject = subj.innerHTML;
			form.elements['forum[subject]'].value = 'Re: '+subject.replace(rexp,'');
		}
		form.elements['forum[message]'].focus();
	},


	/**
	 * Nastaví onclick handlery pro zobrazení předchozího a dalšího obrázku
	 *
	 * @param string image_url Cesta k obrázku
	 */
	setImageHandlers: function(image_url) {

		var prev_url = null;
		var next_url = null;

		/// projdeme pole s url všech obrázků
		for (var key in sevt.product.images) {

			/// najdeme-li v pole požadované url
			if (image_url === sevt.product.images[key]) {

				/// zjistíme url předchozího obrázku, pokud předchozí obrázek není k dispozici, zvolíme poslední obrázek v v pořadí
				/// var prev_key = sevt.product.images[parseInt(key)-1] ? parseInt(key)-1 : parseInt(sevt.product.images.length)-1;
				/// prev_url = sevt.product.images[prev_key];

				/// zjistíme url předchozího obrázku, pokud předchozí obrázek není k dispozici, nastavíme null
				var prev_key = sevt.product.images[parseInt(key)-1] ? parseInt(key)-1 : null;
				prev_url = sevt.product.images[prev_key];

				/// zjistíme url dalšího obrázku, pokud další obrázek není k dispozici, nastavíme null
				var next_key = sevt.product.images[parseInt(key)+1] ? parseInt(key)+1 : null ;
				next_url = sevt.product.images[next_key];

				break;
			}
		}

		/// pokud je známo url předchozího a dalšího obrázku, nastavíme ovládacím prvkům ovladače
		try {
			if (next_url) {
				sl.dom.getElement('image_arrow_right').style.display = 'block';
				sl.dom.getElement('image_arrow_right').onclick = function() { sevt.product.showImage(next_url) }
				sl.dom.getElement('compact_gallery_main_image').onclick = function() { sevt.product.showImage(next_url) };
			} else {
				sl.dom.getElement('compact_gallery_main_image').onclick = function() { };
				sl.dom.getElement('image_arrow_right').style.display = 'none';
			}

			if (prev_url) {
				sl.dom.getElement('image_arrow_left').style.display = 'block';
				sl.dom.getElement('image_arrow_left').onclick = function() { sevt.product.showImage(prev_url) }
			} else {
				sl.dom.getElement('image_arrow_left').style.display = 'none';
			}
		} catch (e) {}

	},


	/**
	 * Zobrazí velkou verzi obrázku po kliknutí na náhled v záložce v detailu produktu
	 *
	 * @param string image_url Cesta k obrázku
	 */
	showImage: function(image_url) {

		/// zavoláme funkci, která zobrazí požadovaný obrázek
		sl.image.showCompactGalleryImage(image_url);

		/// nastavíme handlery pro zobrazení předchozího a dalšího obrázku
		sevt.product.setImageHandlers(image_url);

		return false;
	}

}
