/*
	zmienne systemowe
*/
var animationSpeedFactor = 1;

/*
	zestaw funkcji wywoływanych przed zmianą strony
*/
function bodyOnUnload ()
{
}

/*
	zestaw funkcji wywoływanych po załadowaniu strony
*/
function bodyOnLoad ()
{
	restoreQuotasInForms();
}

/*
	przełączanie widoczności warstwy
*/
function toggleLayer( layer )
{
	new Effect.toggle(layer, "slide", {
		duration		: animationSpeedFactor * 0.2
	,	queue			: { position: 'end', scope: 'toggleLayer' }
	});
}	

/*
	przywracanie cudzysłowów w polach formularzy
	i ustawianie fokusu na pierwszym widocznym elemencie formularza
*/
function restoreQuotasInForms()
{
	var focusHasBeenSet = false;
	var forms = $$("FORM");
	forms.each( function (item) {
		for ( i=0; i<item.length; i++)
		{
			if ( item[i].value ) item[i].value = item[i].value.replace(/~/g, '"');
			if ( !focusHasBeenSet && item[i].tagName && item[i].id )
				if ( (item[i].tagName == "INPUT" || item[i].tagName == "TEXTAREA" || item[i].tagName == "SELECT") && $(item[i]).visible())
					try
					{
						item[i].focus();
						item[i].select();
						focusHasBeenSet = true;
					}
					catch(err) {}
		}
	} );
}	
		
/*
	wywołanie strony głównej portalu
*/
function goToHome( url, delayed )
{
	if ( !url ) var url = "/home.html";
	if ( !delayed ) var delayed = false;
	var delay = delayed ? 2000 : 0;
	setTimeout("window.location='" + url.replace(/\//g, "\\/") + "'", delay);
}

/*
	funkcja otwierająca popUp
function windowOpen ( url, width, height )
	{
		var w = !width ? 650 : width;
		var h = !height ? 500 : height;
		var l = parseInt( screen.width/2 - w/2 );
		var t = parseInt( screen.height/2 - h/2 );
		var winID = url.replace(/[\/\.\,=?\&\-]/gi, "");
		var winObj = window.open(url, winID, "left=" + l + ",top=" + t + ",width=" + w + ",height=" + h + ",resizable=yes,status=no,scrollbars=yes,dependent=no");
		return winObj;
	}
*/
/*
	funkcja otwierająca popUp - nowa
*/
function windowOpen ( url, width, height )
	{
		var w = !width ? 650 : width;
		var h = !height ? 500 : height;
		var l = parseInt( screen.width/2 - w/2 );
		var t = parseInt( screen.height/2 - h/2 );
		//var winID = url.replace(/[\/\.\,=?\&\-/gi, "");
		var winID = Math.ceil(100*Math.random());
		var winObj = window.open(url, winID, "left=" + l + ",top=" + t + ",width=" + w + ",height=" + h + ",resizable=yes,status=no,scrollbars=yes,dependent=no");
		return winObj;
	}
/*
	Obsługuje podwójne listy wyboru. Wymagane są trzy pola:
	TYP(hidden):	nazwa_pola		--> tu zapisywana jest wartość wybranych opcji z pola _b
	TYP(select):	nazwa_pola_a	--> lista opcji do wyboru
	TYP(select):	nazwa_pola_b	--> lista wybranych opcjami
	na obu selectach należy ustawić obsługę zdarzenia onDblClick="doubleSelectMoveItem(this)" 
*/
function doubleSelectMoveItem( sel )
{
	//	określam kierunek przepływu
	var selFromSfx	= sel.id.substring(sel.id.length-1, sel.id.length);
	var selToSfx	= selFromSfx == "a" ? "b" : "a" ;
	
	// ustawiam wskaźniki do obiektów
	var selField	= $( sel.id.substring(0, sel.id.length-2) );
	var selFrom		= $( selField.id + "_" + selFromSfx );
	var selTo		= $( selField.id + "_" + selToSfx );
	var selRes		= $( selField.id + "_b" );
	
	//	zapamiętuję dane przenoszonej opcji i usuwam ją z listy źródłowej
	var option		= selFrom.options[selFrom.selectedIndex];
	selFrom.options[selFrom.selectedIndex] = null;

	//	dodaję opcję do listy docelowej
	selTo.options[selTo.options.length] = option;
	
	// tworzę tymczasową tablicę wyników i przepisuję wynik do pola formularza jako listę oddzieloną przecinkami
	var resArray	= new Array();
	for ( i=0; i<selRes.options.length; i++ ) resArray.push(selRes.options[i].value);
	selField.value = resArray.join(",");
	
	// sortuję tablicę docelową
	var toArray		= new Array();
	var toCounter	= 0;
	for ( i=0; i<selTo.options.length; i++ ) toArray.push([selTo.options[i].text, selTo.options[i].value]);
	selTo.options.length = 0;
	toArray.sort().each(	function ( opt )
							{
								selTo.options[ toCounter ] = new Option( opt[0], opt[1], true, true );
								toCounter++;
							}
	);

	//	usuwam zaznaczenie z obu list wyboru
	selFrom.selectedIndex	= -1;
	selTo.selectedIndex		= -1;
	
	// wywołuję funkcję zwrotną
	try
	{
		eval(selField.id + "_callBack($(selField.id + '_a'), $(selField.id + '_b'))");
	}
	catch(err) {} 
	
}


function highlightTab ( tab )
{
	if ( !$(tab).hasClassName("tabs_item_selected") )
	{
		if ( $(tab).hasClassName("tabs_item") )
		{
			$(tab).removeClassName("tabs_item");
			$(tab).addClassName("tabs_item_highlighted");
		} else {
			$(tab).removeClassName("tabs_item_highlighted");
			$(tab).addClassName("tabs_item");
		}
	}
}

function swapTab ( tab )
{
	if ( !$(tab).hasClassName("tabs_item_selected") )
	{
		var tabSelected = null;
		$(tab).siblings().each(	function( item )
									{
										if ( item.hasClassName("tabs_item_selected") ) tabSelected = item;
									}
								);
		if ( tab != tabSelected )
		{
			$(tab).removeClassName("tabs_item");
			$(tab).removeClassName("tabs_item_highlighted");
			$(tab).addClassName("tabs_item_selected");
			$(tabSelected).removeClassName("tabs_item_selected");
			$(tabSelected).addClassName("tabs_item");
			/*
				wersja bez animacji
			*/			
//			if( $(tabSelected.id + "_content") ) $(tabSelected.id + "_content").hide();
//			if( $(tab.id + "_content") ) $(tab.id + "_content").show();
			/*
				wersja z animacją
			*/			
			if( $(tabSelected.id + "_content") ) toggleLayer( $(tabSelected.id + "_content") );
			if( $(tab.id + "_content") ) toggleLayer( $(tab.id + "_content") );

		}
	}
}

function return_value_default_language( id_item, scope_variable, field_variable, type_field ) {
	
	/* field_variable = id_elementu */
	
	if ( type_field == 'richtext' ) {
		var ed = tinyMCE.get( field_variable ); //pobieramy uchwyt do pola o id=""
		ed.setProgressState(true, 0);
	}

	new Ajax.Request(  "/admin/_get_value_default_language.html?id_item="+id_item+"&scope_variable="+scope_variable+"&field_variable="+field_variable, {
			asynchronous		: true
		,	method				:'get'
		,	evalScripts			: true
		/*,	parameters			: list*/
		,   onSuccess			: function(transport) {
		
									var response = transport.responseText;

									if ( type_field == 'text' ) {
										$(top).$( field_variable ).value = response;
										new Effect.Highlight( field_variable , {} );
									}
									if ( type_field == 'textarea' ) {
										$( field_variable ).value = response;
										new Effect.Highlight( field_variable , {} );
									}
									if ( type_field == 'richtext' ) {
									
												tinyMCE.execInstanceCommand( field_variable, 'mceSetContent', false, response);
												ed.setProgressState(false, 2000);
										
										/*
											var ed = tinyMCE.get( field_variable ); //pobieramy uchwyt do pola o id=""
											var element_body = ed.getBody();
											new Effect.Highlight( element_body , {} );
										*/
											
										//header_ifr
									}
							    }
		,	onFailure			: function(t) {
									alert('Error: common.js ...');
							    }
								
		} );	
}


function removeDuplicateElement(arrayName) {
  var newArray=new Array();
  
  label:for(var i=0; i < arrayName.length; i++ ) {  
    for(var j=0; j < newArray.length;j++ ) {
      if (newArray[j].city_name == arrayName[i].city_name) 
      continue label;
    }
    
    newArray[newArray.length] = arrayName[i];
  }
  return newArray;
}
