/**
 * @fileoverview Pozwala wyswietlac modulu kalendarza
 * ulatwiajacy wprowadzanie daty do formularzy.
 *
 * @used IE, FF, Opera
 *
 * @example
 *		//MyCalendar.fileCSS = 'calendar-blue.css';
 *		MyCalendar.init({inputField: 'f_date_c'});
 *		lub
 *		MyCalendar.init({inputObject: document.formula.data_od});
 *		// w tym przydadku nie trzeba przypisywac do pola formularza atrybutu id
 *		// wystarczy atrybut name
 *
 * @version 1.1 2006/01/04
 */

Import('jsCalendar/calendar.js');
//Import('jsCalendar/lang/calendar-pl.js');
Import('jsCalendar/calendar-setup.js');
Import('myLib/util/Random.js');
Import('myLib/native/Object.js');

/**
 * @constuctor
 */
function MyCalendar(){};

MyCalendar.params = {
	ifFormat: '%Y-%m-%d',
	singleClick: true
};

MyCalendar.path = 'jsCalendar/';

MyCalendar.fileIcon = 'img.gif';

MyCalendar.fileCSS = 'calendar-win2k-cold-1.css';

MyCalendar.fileLang = 'calendar-pl-utf8.js';

/**
 * @public
 * @param	Object	Parametry uruchomieniowe.
 * @return	void
 */
MyCalendar.init = function(p){
	var params = Object.clone(MyCalendar.params);
	params['button'] = Random.string(10);

    MyCalendar.mergeParams(params, p);

	MyCalendar.loadIcon(params['button']);
	MyCalendar.loadStyle();
	MyCalendar.loadLang();

    MyCalendar.setup(params);
};

/**
 * @public
 * @param	Object	Parametry.
 * @param	Object	Parametry.
 * @return	void
 */
MyCalendar.mergeParams = function(params, p){
	if(typeof(p) == 'object'){
	    for(var i in p){
	    	if(i == 'inputObject'){
	    		p[i].id = p[i].name;
	    		params['inputField'] = p[i].name;
	    	}
	    	else{
	    		params[i] = p[i];
	    	}
	    }
    }
    //return params;
};

/**
 * @public
 * @param	Object	Parametry uruchomieniowe.
 * @return	void
 */
MyCalendar.setup = function(params){
    Calendar.setup(params);
};

/**
 * @public
 * @return	void
 */
MyCalendar.loadIcon = function(id, file){
	var path = 'img/';
	var file = System.getValue(file, MyCalendar.fileIcon);

	document.write('<img src="' + Import.getPath() + MyCalendar.path + path + file
	+ '" id="' + id + '" alt="" style="cursor: pointer;" />');
	// onmouseover="alert(this.onclick);"
};

/**
 * @public
 * @return	void
 */
MyCalendar.loadStyle = function(file){
	var path = 'styles/';
	var file = System.getValue(file, MyCalendar.fileCSS);

	Import.style(MyCalendar.path + path + file);
};

/**
 * @public
 * @return	void
 */
MyCalendar.loadLang = function(file){
	var path = 'lang/';
	var file = System.getValue(file, MyCalendar.fileLang);

	Import(MyCalendar.path + path + file);
};
