/**
 * 
 */
function mwl_get_obj_by_id(name)
{
	_obj = null;
	if (document.getElementById)
  	{
  		_obj = document.getElementById(name);
  	}
  	else if (document.all)
  	{
		_obj = document.all[name];
  	}
  	else if (document.layers)
  	{
   		_obj = document.layers[name];
  	}
  	return _obj;
}

/**
 * 
 */
function mwl_get_child_by_id(parent_obj, name)
{
	_obj = null;
	if (parent_obj.getElementById)
  	{
  		_obj = parent_obj.getElementById(name);
  	}
  	else if (parent_obj.all)
  	{
		_obj = parent_obj.all[name];
  	}
  	else if (parent_obj.layers)
  	{
   		_obj = parent_obj.layers[name];
  	}
  	return _obj;
}


/**
 * Funkcja otwiera okno kalendarza wyboru daty
 * @param sCtrlId ID kontrolki input, do której ma być wstawiona wybrana data
 */
function mwl_choose_date_open(sCtrlId)
{
	var oDateInput = mwl_get_obj_by_id(sCtrlId);
	var sDate = oDateInput.value;
	sParams = "titlebar=no,toolbar=no,menubar=no,width=200,height=190,scrollbars=no,location=no";
	window.open("mwl-ui-choose_date-form.php?id=" + sCtrlId + "&date=" + sDate, "", sParams);
}


/**
 * Funkcja otwiera okno kalendarza wyboru daty i godziny
 * @param sCtrlId ID kontrolki input, do której ma być wstawiona wybrana data i godzina
 */
function mwl_choose_datetime_open(sCtrlId)
{
	var oDateInput = mwl_get_obj_by_id(sCtrlId);
	var sDate = oDateInput.value;
	sParams = "titlebar=no,toolbar=no,menubar=no,width=200,height=210,scrollbars=no,location=no";
	window.open("mwl-ui-choose_date-form.php?id=" + sCtrlId + "&date=" + sDate + "&use_time=1", "", sParams);
}


/**
 * Funkcja zmienia wartość numeryczną kontrolki
 * @param cOperation rodzaj operacji: '+', '-'
 * @param sCtrlId ID kontrolki input, której zawartość ma być zmieniona
 * @param nMinValue wartość minimalna, którą kontrolka może przyjąć
 * @param nMaxValue wartość maksymalna, którą kontrolka może przyjąć
 */
function mwl_change_input_number_value(cOperation, sCtrlId, nMinValue, nMaxValue)
{
	var oCtrl = mwl_get_obj_by_id(sCtrlId);
	var nValue = oCtrl.value;
	if (cOperation=="+")
	{
		nValue++;
	}
	else if (cOperation=="-")
	{
		nValue--;
	}

	/* walidacja */
	if (nValue < nMinValue)
	{
		nValue = nMinValue;
	}
	else if (nValue > nMaxValue)
	{
		nValue = nMaxValue;
	}

	if (isNaN(nValue))
		nValue = 0;

	oCtrl.value = nValue;
}

/**
 * Funkcja obsługi zdarzenia onkeydown kontrolki liczby (funkcja mwl_get_input_number)
 * @param sCtrlId ID kontrolki input, której zawartość ma być zmieniona
 * @param nMinValue wartość minimalna, którą kontrolka może przyjąć
 * @param nMaxValue wartość maksymalna, którą kontrolka może przyjąć
 */
function mwl_onkeydown_input_number(sCtrlId, nMinValue, nMaxValue)
{
	if (event.keyCode==38)
	{
		mwl_change_input_number_value("+", sCtrlId, nMinValue, nMaxValue);
	}
	else if (event.keyCode==40)
	{
		mwl_change_input_number_value("-", sCtrlId, nMinValue, nMaxValue);
	}
}


/**
 * Funkcja ustawia styl wyświetlania kontrolki lub kolekcji kontrolek
 * @param sIdElement ID kontrolki
 * @param sDisplay styl np. 'inline', 'none'
 */
function mwl_set_element_display_style(sIdElement, sDisplay)
{
	if (sIdElement.length==0)
	{
		return;
	}

	var el = document.all(sIdElement);
	var len = el.length;
	if (len!=null)
	{
		for(i=0; i<len; i++)
		{
			el.item(i).style.display = sDisplay;
		}
	}
	else
	{
		el.style.display = sDisplay;
	}
}

/**
 * Funkcja wyświetla kontrolkę lub kolekcję kontrolek.
 * @param sIdElement ID kontrolki
 */
function mwl_show_element(sIdElement)
{
	mwl_set_element_display_style(sIdElement, 'inline');
}


/**
 * Funkcja ukrywa kontrolkę lub kolekcję kontrolek.
 * @param sIdElement ID kontrolki
 */
function mwl_show_element(sIdElement)
{
	mwl_set_element_display_style(sIdElement, 'none');
}




/**
 * Funkcja ustawia styl wyświetlania wielu kontrolek na podstawie listy
 * identyfikatorów kontrolek oddzielonych znakiem przecinka
 * @param sElements identyfikatory kontrolek
 * @param sDisplay styl np. 'inline', 'none'
 */
function mwl_set_element_list_display_style(sElements, sDisplay)
{
	var a = sElements.split(',');
	var len = a.length;
	for(i=0; i<len; i++)
	{
		var sId = a[i];
		if (sId.length>0)
		{
			mwl_set_element_display_style(sId, sDisplay);
		}
	}
}


/**
 * Funkcja wyświetla wiele kontrolek na podstawie listy ich
 * identyfikatorów oddzielonych znakiem przecinka.
 * @param sElements identyfikatory kontrolek
 */
function mwl_show_element_list(sElements)
{
	mwl_set_element_list_display_style(sElements, 'inline');
}


/**
 * Funkcja ukrywa wiele kontrolek na podstawie listy ich
 * identyfikatorów oddzielonych znakiem przecinka.
 * @param sElements identyfikatory kontrolek
 */
function mwl_hide_element_list(sElements)
{
	mwl_set_element_list_display_style(sElements, 'none');
}


