// ikonki - pusta, rozwinięte i zwinięte dla pierwszego wiersza i reszty
var gExpandIcons = {empty: {primary: 'images/ico/ico_przezr.gif',
														secondary: 'images/ico/ico_strzalka2.gif'},
										collapsed: {primary: 'images/ico/ico_plus.gif', 
																secondary: 'images/ico/ico_plus.gif'}, 
										expanded: {primary: 'images/ico/ico_strzalka1.gif',
																secondary: 'images/ico/ico_strzalka2.gif'}};

/**
 * Pomocnicza funkcja - zwraca odpowiednią ikonkę
 *
 * @param String pType - empty, collapsed, lub expanded
 * @param boolean pDeep - false, gdy 1 poziom, true, gdy pozostałe
 * @return String - ścieżka do ikonki
 */
function icon(pType, pDeep) 
{ 
	if (pDeep)
		return gExpandIcons[pType].secondary;
	return gExpandIcons[pType].primary; 
}




$(document).ready(function(){
	// szukamy wszystkich "plusików" i "minusików" w drzewkach
	$('img[alt="(+)"], img[alt="(-)"]').css('cursor', 'pointer').click(function(){ expand($(this)); });
	// szukamy SELECT-a z markami
	$('select[name="marki_combo"]').change(function(){
		var index = $(this).val();
		if (index == 'clear')
			openLoc('default/list/index/clear/brand');
		else
			openLoc('default/list/index/brand/' + index);
	});
});


/**
 * (Ro)zwiń element drzewa marek/grup
 *
 * @param jQuery pImg - element img, w który klikamy
 */
function expand(pImg)
{
	// pobieramy diva, w którym siedzi plusik/minusik i diva, w którym powinny być dzieci
	var vParentDiv = pImg.parent();
	var vDiv = vParentDiv.find('div:first');
	
	// czy element, w który kliknęliśmy jest głębiej niż na 1 poziomie
	var vParentIsDeep = vParentDiv.hasClass('grupy_lev_2');
	
	// tłumaczenia
	var vTrans = {expand: $('#translExpand').val(), collapse: $('#translCollapse').val()};
	
	if (vDiv.length > 0)  // div został wcześniej pobrany, więc obywamy się bez AJAX-a
		if (pImg.attr('alt') == '(+)')  // plusik, czyli rozwijamy
		{
			vDiv.css('display', 'block');
			pImg.attr('alt', '(-)');
			pImg.attr('src', icon('expanded', vParentIsDeep));
			pImg.attr('title', vTrans.collapse);
		}
		else if (pImg.attr('alt') == '(-)')  // minusik, czyli zwijamy
		{
			vDiv.css('display', 'none');
			pImg.attr('alt', '(+)');
			pImg.attr('src', icon('collapsed', vParentIsDeep));
			pImg.attr('title', vTrans.expand);
		}
		else {}
	else  // dzieci nie zostały wcześniej zaciągnięte, więc idzie AJAX
	{
		pImg.attr('alt', '(-)');
		pImg.attr('src', icon('expanded', vParentIsDeep));
		pImg.attr('title', vTrans.collapse);
		
		// dodajemy "oczekiwacz"
		vParentDiv.append('<div>' + $('#translPleaseWait').val() + '</div>');
		
		// pobieramy kod danej marki/grupy i typ (czy marka, czy grupa)
		var vHid = vParentDiv.find(':hidden:first');
		var vClass = vHid.val();
		var vCode = vHid.attr('id').substr(3);
		
		// tworzymy adres URL, pod który powędrujemy AJAX-em
		var vUrl = 'default/tree/children/type/' + vClass + '/code/' + vCode;
		/*alert("vClass: \"" + vClass + "\"\nvCode: \"" + vCode + "\"\nvUrl: \"" + vUrl + "\"");*/
		// jedziemy AJAX-em
		$.getJSON(vUrl, function(vData){
			// czyścimy diva z poczekajką
			vDiv = vParentDiv.find('div:first');
			vDiv.text('');
			
			for (var k in vData)
			{
				// budujemy element
				var vHtml = '<div class="grupy_lev_2">'
										+ '<input type="hidden" id="' + vClass.substr(0, 3) 
																									+ vData[k]['CODE'] 
																									+ '" value="' 
																									+ vClass
																									+ '" />'
				if (vData[k]['HAS_CHILDS'] > 0)
					vHtml += '<img src="' + icon('collapsed', true) + '" alt="(+)" />';
				else
					vHtml += '<img src="' + icon('empty', true) + '" alt="" />';
				vHtml += '<a href="default/list/index/' + vClass 
																								+ '/' 
																								+ vData[k]['CODE'] 
																								+ '">' 
																								+ vData[k]['NAME'] 
																								+ '</a></div>';
				vDiv.append(vHtml);
			}
			
			// nadajemy nowo dodanym elementom odpowiedniego eventa
			vDiv.find('img[alt="(+)"], img[alt="(-)"]').click(function(){ expand($(this)); });
		});
	}
}