   cal_arr = new Array();
   cache_arr = new Array();
   js = document.createElement("SCRIPT");
//-====================| Forming Calendar |====================-
//Last Update: 18.08.2004 11:36:35
// Version: 1.0
// FNC: 1

   function forming_calendar(mn,yr)
   {
	   var now_date = new Date();
	   var now_month = now_date.getMonth()+1;
	   var now_year = now_date.getYear();
      var now_day = now_date.getDate();
      var check_yr=false;
      var check_mn=false;
      var body="";

      if(parseInt(mn)>0) var month = mn;
      else  var month = now_month;

      if(parseInt(yr)>0)   var year = yr;
      else var year = now_year;

      (now_year==year)? check_yr=true : check_yr=false;
      (now_month==month)? check_mn=true : check_mn=false;

      var total_days = get_methods(month,year,0);
      var car_day = get_methods(month,year,1);
      var last_day = 7-get_methods(month,year,2);

      body=calendar_display(car_day,now_day,check_yr,check_mn,last_day,total_days)

      set_cache(month,year,body);

      document.all.calendar.innerHTML=body;
   }


//-====================| Get Total Days |====================-
//Last Update: 18.08.2004 11:36:27
// Version: 2.0a
// FNC: 2
   function get_methods(month,year,type)
   {
      //alert(year);
      switch(type)
      {
      	case 0:
                  var obj= new Date(year,month-1,0)
                  val = obj.getDate();
         			break;
         case 1:
      				var obj= new Date(year,month-1,1);
                  cur_day = obj.getDay();
                  (cur_day==0)? val=7 : val=cur_day;
         			break;
         case 2:
                  total_days=get_methods(month,year,0);
                  var obj= new Date(year,month-1,total_days);
                  //alert(obj);
                  last_day = obj.getDay();
                  //alert(last_day);
                  (last_day==0)? val=7 : val=last_day;
                  break;
      }
      return val;
   }


//-====================| Check href |====================-
//Last Update: 18.08.2004 17:36:55
// Version: 2.0
// FNC: 3
   function calendar_main_day(mas,now_day,n_m,n_y)
   {
      var td="";

      if(mas[0]==now_day && n_m==true && n_y==true) td+="<span style='font-weight:bold;'>";
      if(mas[1]==true)	td+="<a href='"+mas[2]+"'>"+mas[0]+"</a>";
      else td+=mas[0];
      if(mas[0]==now_day) td+="</span>";

      return td;
   }

//-====================| Set Cache |====================-
//Last Update: 18.08.2004 18:10:26
// Version: 1.0
// FNC: 4
   function set_cache(month,year,body)
   {
      //alert(month+"-"+year);
      date_arr= new Array(month,year,body);
	   id=cache_arr.length;
	   cache_arr[id]=date_arr;
   }

//-====================| calendar_header |====================-
//Last Update: 28.09.2004 15:29:35
// Version: 1.0
// FNC: 5
	function calendar_header()
   {
      var body="<tr>";

      for(var i=0;i<days_of_week.length;i++)
      {
         (i>4)? body+="<td style='color:red;'>"+days_of_week[i]+"</td>" : body+="<td>"+days_of_week[i]+"</td>";
      }
      body+="</tr><tr>";
      body+="<td colspan=7 height=1 bgcolor=#DED7CA></td></tr>";

      return body;
   }

//-====================| calendar_display |====================-
//Last Update: 28.09.2004 16:09:45
// Version: 1.0
// FNC: 6
	function calendar_display(car_day,now_day,check_yr,check_mn,last_day,total_days)
   {
      var cal_arr = new  Array(total_days);
      var table_class="vote";

      for(var i=0;i<total_days;i++)
      {
         temp = new Array(i+1,false,"");
         cal_arr[i]=temp;
      }

      for(j=0;j<cal_new.length;j++)
      {
         cal_arr[cal_new[j][0]-1][1]=true;
         cal_arr[cal_new[j][0]-1][2]=cal_new[j][1];
      }

      body="<table border=0 celpadding=0 cellspacing=0 class="+table_class+" width=100%>";

      body+=calendar_header();

      body+=calendar_main_data(cal_arr,car_day,now_day,check_yr,check_mn,last_day);

      body+="</table>";

      return body;

   }

//-====================| calendar_show_data |====================-
//Last Update: 28.09.2004 15:29:35
// Version: 1.0
// FNC: 7
	function calendar_main_data(tmp_arr,cur_day_week,now_day,check_yr,check_mn,last_day)
   {
      var body="<tr>";
      var cur_day=cur_day_week;
      var cal_arr=tmp_arr;

      for(var i=1;i<=cur_day;i++)
      {
         if(i==cur_day) break;
         else  body+="<td>&nbsp;</td>";
      }

      for(var k=0;k<cal_arr.length;k++)
      {
         if(i==8)
         {
            body+="</tr><tr><td>";
            i=1;
         }
         else if(i==6 || i==7) body+="<td style='color:#ff0000;'>";
         else  body+="<td>";

         body+=calendar_main_day(cal_arr[k],now_day,check_yr,check_mn)+"</td>";
         i++;
      }

      for(i=0;i<last_day;i++)
      body+="<td>&nbsp;</td>";

      body+="</tr>";

      return body;
   }

