	var GLOBAL_VARS = [];
	var calendar_img = "/module/calendar/images/calendar.gif";

	if (document.all && window.print) 
	{
		document.body.onclick = hideCalendars;
	}

//----------------------------------------------------------------------------
	function calendar(dest_id) 
	{
		
		this.destid = dest_id;
		// browser check
		if (!document.body || !document.body.style)
			return;
		
	  // get menu id
  	this.n_id = GLOBAL_VARS.length;

    var c_div = document.createElement("DIV");
    c_div.style.display = "none";
    c_div.innerHTML = buildCalendar(this.n_id);
    c_div.id = "calendar_block" + this.n_id;
		c_div.style.position = "absolute";
		c_div.style.margin = "15 0 0 0";

		document.write(
		"<img src=\""+calendar_img+"\" align=\"absmiddle\" id=\"cl"+this.n_id+"\" border=\"0\" style=\"cursor:pointer\" onclick=\"showCalendar("+this.n_id+")\">");

    var source_img = document.getElementById("cl"+this.n_id);
		source_img.insertAdjacentElement('afterEnd',c_div);

   	var now = new Date();
  	var nowYear  = now.getFullYear();
		var nowMonth = now.getMonth();
    var TYear = document.getElementById("Year"+this.n_id);
		var TMonth = document.getElementById('Month'+this.n_id);
		TYear.innerHTML = nowYear;
		TMonth.selectedIndex= nowMonth;

 		// register self in global collection
  	GLOBAL_VARS[this.n_id] = dest_id;
		changeCalendar(this.n_id);
	}

//----------------------------------------------------------------------------

	function showCalendar(id) 
	{
    var cl = document.getElementById("calendar_block" + id);
    if(navigator.appName.indexOf("Opera") >= 0)
    {	
	   	cl.style.left = event.clientX;
  	 	cl.style.top = event.clientY;
  	}
    cl.style.display = "block";
	}
//----------------------------------------------------------------------------
	function hideCalendar(id) 
	{
    var cl = document.getElementById("calendar_block" + id);
    cl.style.display = "none";
	}
//----------------------------------------------------------------------------
	function hideCalendars() 
	{
		
	//	alert(event.srcElement.parentElement.innerHTML);
		
		if(event.srcElement.tagName == "IMG" && event.srcElement.src.indexOf(calendar_img) >=0 )
	    return;

	  var element = event.srcElement;
 		while(element.tagName != "BODY")
 		{
	 		if(element.id == "calendar_table") return;
			element = element.parentElement;
		}

		for(i = 0; i < 10; i++)
		{
    	var cl = document.getElementById("calendar_block" + i);
    		if(typeof(cl) == "object" && cl != null)
		    	cl.style.display = "none";
	  }
	}
//----------------------------------------------------------------------------
	function PickDate(day,id) 
	{
    var dest_ctrl = document.getElementById(GLOBAL_VARS[id]);
 		var TMonth = document.getElementById('Month'+id);
		var TYears = document.getElementById("Year"+id);
		var Month = TMonth.selectedIndex + 1;
 		var Year = parseInt(TYears.innerHTML);

    dest_ctrl.value = parseInt(day.innerHTML)+"."+Month+"."+Year;
    hideCalendar(id);
	}

//----------------------------------------------------------------------------
	function changeCalendar(id) 
	{
		var now = new Date();
		var nowYear  = now.getFullYear();
		var nowMonth = now.getMonth();
		var nowDay   = now.getDate();
	
		var calDiv = document.getElementById('clbody'+id);
		var TMonth = document.getElementById('Month'+id);
		var TYears = document.getElementById("Year"+id);

		calDiv.innerHTML = "";
		var Mtbl1 = document.createElement("table");

		Mtbl1.id = "calElement"+id;
		Mtbl1.border = 0;
		Mtbl1.cellspacing = 1;
		Mtbl1.cellpadding = 2;
		
		var Month = TMonth.selectedIndex;
 		var Year = parseInt(TYears.innerHTML);
		var FirstOfMonth = new Date (Year, Month, 1);
		var StartingPos = FirstOfMonth.getDay();
		var TDate = new Date (Year, Month, 32);
		var rest = TDate.getDate();
		var Days = 32 - rest; 

		if(!StartingPos) StartingPos=7;
		Days+=StartingPos;	
		var c = 0;
		var currRow = Mtbl1.insertRow(-1); 
		var mytd = document.createElement("TD");;

		if(StartingPos > 1)
		{
			var PrevYear = Year;
			var PrevMonth = Month;
			var PrevDate;
			var PrevMonthDate;
			if(Month==0) 
			{
				PrevYear--;
				PrevMonth = 11;
				PrevDate = 31;
			}
			else 
			{
				PrevMonth--;
				PrevMonthDate = new Date(PrevYear,PrevMonth,32);
				rest = PrevMonthDate.getDate();
				PrevDate = 32 - rest;
			}		
			PrevDate -= (StartingPos-2)
			for(i = 0; i < StartingPos - 1; i++)
			{
				mytd = document.createElement("TD"); 
				mytd.className="calendar";
				mytd.width="19px";
				if(i%7==5 || i%7==6) mytd.className="weekday";
				mytd.innerHTML="<a onMouseOver='highlightYellow()' onMouseOut='highlightLastColor()' class=\"dnavi_prev\">"+PrevDate+"</a>";				
				PrevDate++;
				currRow.insertBefore(mytd,null);
			}
		}
		c = 0;//done
		for (i=StartingPos-1; i<Days-1; i++) 
		{
			if(i%7==0)
			{
				currRow = Mtbl1.insertRow(-1);
				currRow.className="calendar";
			}
			mytd = document.createElement("TD"); 
			mytd.className="calendar";
			mytd.width="19px";
			if(i%7==5 || i%7==6) mytd.className="weekday";
			c++;
			mytd.innerHTML="<a onMouseOver='highlightYellow()' onMouseOut='highlightLastColor()' class=\"dnavi\" onClick='PickDate(this,"+id+")'>"+c+"</a>";
			currRow.insertBefore(mytd,null);
		}
		if((Days-1)%7!=0)
		{
			var futureDays = Days-1;
			var futureYear = Year;
			var futureMonth = Month+1;
			if(Month==11)
			{
				futureMonth=0;
				futureYear++;
			}
			c=0;
			while(futureDays%7!=0)
			{
				mytd = document.createElement("TD"); 
				mytd.className="calendar";
				mytd.width="19px";
				if(futureDays%7==5 || futureDays%7==6) mytd.className="weekday";
				c++;
				mytd.innerHTML="<span onMouseOver='highlightYellow()' onMouseOut='highlightLastColor()' class=\"dnavi_prev\">"+c+"</span>";				
				futureDays++;
				currRow.insertBefore(mytd,null);
			}
		}

		calDiv.appendChild(Mtbl1);
		var Mtbl	= document.getElementById('calElement'+id);
		var Mtds	= Mtbl.getElementsByTagName('td');
  	  if (Month==nowMonth && Year==nowYear)  
				Mtds[nowDay+StartingPos-2].className="today";
	}
//----------------------------------------------------------------------------
	function buildCalendar(n_id) 
	{
		var cl = '<table width="160" border="0" cellspacing="0" id="calendar_table" cellpadding="0" height="25" class="table_borders">'+
		'<tr><td colspan="7" style="background-color:#7D8AA1" align="center" valign="middle">'+
				'<select name="select" class="month" id="Month'+n_id+'" onchange="changeCalendar('+n_id+')">'+
          '<option>ßíâàðü</option>'+
          '<option>Ôåâðàëü</option>'+
          '<option>Ìàðò</option>'+
          '<option>Àïðåëü</option>'+
          '<option>Ìàé</option>'+
          '<option>Èþíü</option>'+
          '<option>Èþëü</option>'+
          '<option>Àâãóñò</option> '+
          '<option>Ñåíòÿáðü</option> '+
          '<option>Îêòÿáðü</option>'+
          '<option>Íîÿáðü</option>'+
          '<option>Äåêàáðü</option>'+
        '</select>&nbsp;&nbsp;	'+
        '<span class="ch-calendar" onclick="ChangeYear(0,'+n_id+')">&lt;</span>'+
				'<span class="head-calendar" id="Year'+n_id+'"></span>'+
				'<span class="ch-calendar" onclick="ChangeYear(1,'+n_id+')">	&gt;</span>'+
			'</td></tr>'+
			'<tr>'+
				'<td class="days-calendar">Ïí</td>'+
				'<td class="days-calendar">Âò</td>'+
				'<td class="days-calendar">Ñð</td>'+
				'<td class="days-calendar">×ò</td>'+
				'<td class="days-calendar">Ïò</td>'+
				'<td class="days-calendar" style="color:#666666;">Ñá</td>'+
				'<td class="days-calendar" style="color:#666666;">Âñ</td>'+
		'</tr>'+
		'<tr><td align="center" style="background-color:#FFFFFF" valign="middle" colspan="7"><div id="clbody'+n_id+'"></div>'+
		'</td></tr>'+
	'</table>';
  	return cl;
	}
//----------------------------------------------------------------------------
	function ChangeYear(side, id)
	{
		var TYears = document.getElementById("Year"+id);
		var cc=parseInt(TYears.innerHTML);
		if(side)TYears.innerHTML=++cc;
		else TYears.innerHTML=--cc;
		changeCalendar(id);
	}
//----------------------------------------------------------------------------
	function highlightYellow()
	{
		globalLastColor = event.srcElement.parentElement.className;	
		event.srcElement.parentElement.className = "calendar_highlight";
	}
//----------------------------------------------------------------------------
	function highlightLastColor()
	{
		event.srcElement.parentElement.className=globalLastColor;
	}

