/*
	This file is part of the hatatitla.biz
	Copyright (C) 2002-2010 Hatatitla
	All Rights Reserved
*/

var ie4 = document.all && navigator.userAgent.indexOf("Opera")==-1;
var ns6 = document.getElementById;
var ns4 = document.layers;

function mwl_ie() {return ie4 ? true : false;}
function mwl_ns6() {return ns6 ? true : false;}
function mwl_ns4() {return ns4 ? true : false;}

function mwl_obj_doc(d, id)
{
	if (d.getElementById)
  		return d.getElementById(id);
  	else if (d.all)
		return d.all[id];
  	else if (d.layers)
   		return d.layers[id];
  	return null;
}

// Gets object by id
function mwl_obj(id)
{
	return mwl_obj_doc(document, id);
}

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

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

/**
 * Funkcja zmienia wartość numeryczną kontrolki
 * @param op rodzaj operacji: '+', '-'
 * @param id ID kontrolki input, której zawartość ma być zmieniona
 * @param minVal wartość minimalna, którą kontrolka może przyjąć
 * @param maxVal wartość maksymalna, którą kontrolka może przyjąć
 */
function mwl_change_input_number_value(op, id, minVal, maxVal)
{
	var ctrl = mwl_obj(id);
	var v = ctrl.value;
	if (op=="+")
		++v;
	else if (op=="-")
		--v;

	// walidacja
	if (v < minVal)
		v = minVal;
	else if (v > maxVal)
		v = maxVal;

	if (isNaN(v))
		v = 0;

	ctrl.value = v;
}

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

/**
 * Funkcja ustawia styl wyświetlania kontrolki lub kolekcji kontrolek
 * @param sIdElement ID kontrolki
 * @param di styl np. 'inline', 'none'
 */
function mwl_set_element_display_style(sIdElement, di)
{
	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 = di;
		}
	}
	else
	{
		el.style.display = di;
	}
}

/**
 * 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_hide_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 el identyfikatory kontrolek
 * @param di styl np. 'inline', 'none'
 */
function mwl_set_element_list_display_style(el, di)
{
	var a = el.split(',');
	var len = a.length;
	for(i=0; i<len; ++i)
	{
		if (a[i].length>0)
			mwl_set_element_display_style(a[i], di);
	}
}

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

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

