/**include
//_javascript/js-wrapper.js;
*/
var calendar_arhiv = {

    init : function (winWr)
    {
        this.winWr = winWr != undefined ? winWr : _wrapper;
		this.winWr.setOnloadListener(this);
	},

	onload : function ()
	{

		this.oYear = this.winWr.getElement('year');
		this.oYear.addListener(this, "onchange");

		this.oMonth = this.winWr.getElement('month');
		this.oMonth.addListener(this, "onchange");



		this.oDay = this.winWr.getElement('day');
		this.oDay.addListener(this, "onchange", "onchangeDay");


		this.sDay = this.oDay.elm.value;

		this.oWeek = this.winWr.getElement('week');
		this.oWeek.addListener(this, "onchange", "onchangeWeek");


        while(this.oWeek.elm.firstChild) {
			this.oWeek.elm.removeChild(this.oWeek.elm.firstChild);
		}

		this.__onchange();

	},

	onchange : function (evtWr)
	{
	    this.__onchange();
	},

	__onchange : function ()
	{
        var iMonth = this.oMonth.elm.value;
		var oStartDay = new Date(this.oYear.elm.value, iMonth-1, 1);
		var oEndDay = new Date(this.oYear.elm.value, iMonth, 0);

		var sStartSaturday = oStartDay.getDay()+1 > 6 ? -1 : oStartDay.getDay();
        var sEndSaturday   = oEndDay.getDay()+1   > 6 ? -1 : oEndDay.getDay();

        var x = oStartDay.getDate() - sStartSaturday;
        var y = oEndDay.getDate() + (6 - sEndSaturday);

		while(this.oDay.elm.firstChild) {
			this.oDay.elm.removeChild(this.oDay.elm.firstChild);
		}
		this.addOption(this.oDay, "", "");
		for (var i = 1; i <= oEndDay.getDate(); i++) {
			this.addOption(this.oDay, i, i, this.sDay);
        }

        while(this.oWeek.elm.firstChild) {
			this.oWeek.elm.removeChild(this.oWeek.elm.firstChild);
		}

		this.addOption(this.oWeek, "", "");
		for (i = x; i < oEndDay.getDate() + (y-oEndDay.getDate()); i=i+7) {
		    var date = new Date(this.oYear.elm.value, this.oMonth.elm.value, i-1);
		    var sDateText = this._forwardZero(date.getDate())+"."+this._forwardZero(date.getMonth())+"."+date.getFullYear();
		    var sDateValue = date.getFullYear()+"-"+this._forwardZero(date.getMonth())+"-"+this._forwardZero(date.getDate());
			this.addOption(this.oWeek, sDateValue, sDateText);
        }
	},

	onchangeWeek : function (evtWr)
	{
	    this.oDay.elm.selectedIndex = 0;
	},

	onchangeDay : function (evtWr)
	{
	    this.oWeek.elm.selectedIndex = 0;
		this.sDay = evtWr.elmWr.elm.value;
	},


    _forwardZero : function(val)
    {
        return (val>9 ? "" : "0") + val;
    },



	addOption : function (element, value, text, defaultId)
	{
	    var opt = this.winWr.doc.createElement("option");
		opt.setAttribute("value", value);
		if (defaultId == value){
            opt.setAttribute("selected", "selected");
		}
		opt.appendChild(this.winWr.doc.createTextNode(text));
		element.elm.appendChild(opt);
	},


    config : {
        "selState" : "selectState",
        "idCountry" : "id_country"
    }
}