function LoadFromFrame() {
	window.parent.document.getElementById("SelectNews").innerHTML = document.body.innerHTML;
}

function getDateFromUrl() {
	var urlStr=window.location.href;
	if(urlStr.indexOf("did=",0)==-1) {
		var curdate=new Date();
		return curdate;
	}
	else {
		var archiveDate=urlStr.substr(urlStr.indexOf("did=",0)+4,10);
		var curdate=new Date(archiveDate.substr(0,4), archiveDate.substr(5,2)-1, archiveDate.substr(8,2));
		return curdate;
	}
		
}

var archDayId="";

 function getArchiveStr(lang) {
	 switch(lang) {
		 case "a": archStr="Arxiv"; break;
		 case "e": archStr="Archive"; break;
		 case "r": archStr="Архив"; break;
		 case "f": archStr="Archives"; break;
	 }
	var urlStr=window.location.href;
	if(urlStr.indexOf("did=",0)==-1) {
		return "";
	}
	else {
		var archiveDate=urlStr.substr(urlStr.indexOf("did=",0)+4,10);
		var archDate=archiveDate.substr(8,1)*10+parseInt(archiveDate.substr(9,1)), archMonth=archiveDate.substr(5,2), archYear=archiveDate.substr(0,4);
		var todaysDate=new Date();
		if((todaysDate.getDate()==archDate)&&(todaysDate.getMonth()==archMonth-1)&&(todaysDate.getFullYear()==archYear))
			return "";
		return archStr+": "+archiveDate.substr(8,2)+"."+archiveDate.substr(5,2)+"."+archiveDate.substr(0,4);
	}
		
} 

function loadCalendar(lang, today) {
	var archDate;
	if(today) {
		archDate=getDateFromUrl();
		document.getElementById("inputm").selectedIndex=archDate.getMonth();
		document.getElementById("inputy").selectedIndex=archDate.getFullYear()-2005;
	}
	else {
		var month=document.getElementById("inputm").selectedIndex;
		var year=document.getElementById("inputy").selectedIndex+2005;
		
		archDate=new Date(year,month,1);		
	}
	document.getElementById("monthYear").innerHTML=getMonthName(document.getElementById("inputm").selectedIndex,lang) + " " + (document.getElementById("inputy").selectedIndex+2005);
	document.getElementById("calday").innerHTML=writeCal(lang, archDate);
	if(archDayId!="") {
		document.getElementById(archDayId).style.backgroundColor="#FFEB90";
		document.getElementById(archDayId).style.color="#4F4100";
	}
	var archStr=getArchiveStr(lang);
	if(archStr=="") 
		document.getElementById("archiveBox").style.display="none";
	else
		document.getElementById("archiveBox").style.display="block";
}

function writeCal(lang, date) {
	year=date.getFullYear(); month=date.getMonth();
	
	var firstDayInstance = new Date(year, month, 1);
	var firstDay = firstDayInstance.getDay();
	if(firstDay==0) 
	   firstDay = 7;
	firstDayInstance = null;
	var days = getDays(month, year);
	return drawCal(firstDay, days, month, year, lang);
}

//-------------------------------------------------------------------------------
//
//-------------------------------------------------------------------------------

 function loadnews(digit, month, year, lang)
 {
	 if(digit<10) digit="0"+digit;
	 if(month<10) month="0"+month;
	 
	switch(lang) {
		case "a":lang="az"; break;
		case "e":lang="en"; break;
		case "r":lang="ru"; break;
		case "f":lang="fr"; break;
		case "d":lang="de"; break;
	}
	 
	 var StrCgi=window.location.href;
	 
	 var questPos=StrCgi.indexOf("?", 0);
	 if(questPos != -1) {
		 StrCgi = StrCgi.substr(0, questPos);
	 }
	 
	 var StrCgi = StrCgi+ "?lang=" + lang +
	 			   "&did=" + year + "-" + month + "-" + digit;
	 window.location.href=StrCgi;
 }
 
//-------------------------------------------------------------------------------
//
//-------------------------------------------------------------------------------
function getMonthName(month, lang) 
{
  var ar = new Array(12);
  switch(lang) {
    case "a":
      ar[0] = "Yanvar"; 
	  ar[1] = "Fevral"; 
	  ar[2] = "Mart"; 
	  ar[3] = "Aprel";
      ar[4] = "May"; 
	  ar[5] = "&#304;yun"; 
	  ar[6] = "&#304;yul"; 
	  ar[7] = "Avqust";
      ar[8] = "Sentyabr"; 
	  ar[9] = "Oktyabr"; 
	  ar[10] = "Noyabr"; 
	  ar[11] = "Dekabr";
	  break;
    case "e":
      ar[0] = "January"; 
	  ar[1] = "February"; 
	  ar[2] = "March"; 
	  ar[3] = "April";
      ar[4] = "May"; 
	  ar[5] = "June"; 
	  ar[6] = "July"; 
	  ar[7] = "August";
      ar[8] = "September"; 
	  ar[9] = "October"; 
	  ar[10] = "November"; 
	  ar[11] = "December";
	  break;
    case "r":
      ar[0] = "Январь"; 
	  ar[1] = "Февраль"; 
	  ar[2] = "Март"; 
	  ar[3] = "Апрель";
      ar[4] = "Май"; 
	  ar[5] = "Июнь"; 
	  ar[6] = "Июль"; 
	  ar[7] = "Август";
      ar[8] = "Сентябрь"; 
	  ar[9] = "Октябрь"; 
	  ar[10] = "Ноябрь"; 
	  ar[11] = "Декабрь";
	  break;
    case "f":
      ar[0] = "Janvier"; 
	  ar[1] = "Février"; 
	  ar[2] = "Mars"; 
	  ar[3] = "Avril";
      ar[4] = "Mai"; 
	  ar[5] = "Juin"; 
	  ar[6] = "Juillet"; 
	  ar[7] = "Août";
      ar[8] = "Septembre"; 
	  ar[9] = "Octobre"; 
	  ar[10] = "Novembre"; 
	  ar[11] = "Décembre";
	  break;
   }
  return ar[month]
}

//-------------------------------------------------------------------------------
//
//-------------------------------------------------------------------------------
function getDays(month, year) {
  var ar = new Array(12)
      ar[0] = 31; 
	  ar[1] = (leapYear(year)) ? 29 : 28; 
	  ar[2] = 31;
      ar[3] = 30; 
	  ar[4] = 31; 
	  ar[5] = 30; 
	  ar[6] = 31; 
	  ar[7] = 31;
      ar[8] = 30; 
	  ar[9] = 31; 
	  ar[10] = 30; 
	  ar[11] = 31;
  return ar[month]
}

//-------------------------------------------------------------------------------
//
//-------------------------------------------------------------------------------
function leapYear(year) {
  if(year % 4 == 0) // basic rule
     return true; // is leap year
        /* else */ // else not needed when statement is "return"
  return false; // is not leap year
}

//-------------------------------------------------------------------------------
//
//-------------------------------------------------------------------------------

function drawCal(firstDay, lastDate, month, year, lang)
{
  var date=new Date();
  var urlDate=getDateFromUrl();
  var hMonth1=year*12+month, hMonth2=date.getFullYear()*12+date.getMonth(), hMonth3=urlDate.getFullYear()*12+urlDate.getMonth();
  var day=urlDate.getDate();
  date=date.getDate();
  
  var monthName = getMonthName(month, lang);
  var text = "";
  text += '<TABLE CELLpadding=0 CELLSPACING=0 class="caltable">';
  var openCol = '<TD class=TabTopColumnCell>'
  var closeCol = '</TD>'

  var weekDay = new Array(7);
  switch(lang) {
    case "a":
      weekDay[0] = "B.e"; 
	  weekDay[1] = "&#199;.a"; 
	  weekDay[2] = "&#199;"; 
	  weekDay[3] = "C.a"
      weekDay[4] = "C"; 
	  weekDay[5] = "&#350;"; 
	  weekDay[6] = "<font color=red>B</font>";
	  break;
    case "e":
      weekDay[0] = "Mo"; 
	  weekDay[1] = "Tu"; 
	  weekDay[2] = "We"; 
	  weekDay[3] = "Th"
      weekDay[4] = "Fr"; 
	  weekDay[5] = "St"; 
	  weekDay[6] = "<font color=red>Su</font>";
	  break;
    case "r":
      weekDay[0] = "Пн"; 
	  weekDay[1] = "Вт"; 
	  weekDay[2] = "Ср"; 
	  weekDay[3] = "Чт"
      weekDay[4] = "Пт"; 
	  weekDay[5] = "Сб"; 
	  weekDay[6] = "<font color=red>Вс</font>";
	  break;
    case "f":
      weekDay[0] = "Dim"; 
	  weekDay[1] = "Lun"; 
	  weekDay[2] = "Mar"; 
	  weekDay[3] = "Mer"
      weekDay[4] = "Jeud"; 
	  weekDay[5] = "Ven"; 
	  weekDay[6] = "<font color=red>Sam</font>";
	  break;
   }
  // create first row of table to set column width and specify week day
  text += '<TR ALIGN="center" VALIGN="center">';
  for (var dayNum = 0; dayNum < 7; ++dayNum) {
       text += openCol + weekDay[dayNum] + closeCol;
   }
  text += '</TR>';
  
  // declaration and initialization of two variables to help with tables
  var digit = 1;
  var curCell = 1;
  archDayId="";

  for(var row = 1; row <= Math.ceil((lastDate + firstDay - 1)/7); ++row) {
      text += '<TR ALIGN="right" VALIGN="top">';	  
      for(var col = 1; col <= 7; ++col) {
		  if((day==digit) && (hMonth1==hMonth3))
			  archDayId="id_"+row+col;
		  
          if(curCell < firstDay) {
             text += '<TD class=EmptyCell>&nbsp;</TD>';
             curCell++;
             continue;
           }
          if(digit > lastDate) {
             text += '<TD class=EmptyCellAfterLastDay>&nbsp;</TD>';
             continue;
		   }
		   
		   if((hMonth1>hMonth2) || (hMonth1<24068)) {
			 if(col==7)
				 text += "<TD class=TabSundayCellInFuture>";
			 else	 
				 text += "<TD class=TabNextdayCell>";
             text += digit;
             text += '</TD>';
			 digit++;
			 continue;
		   }
		   
		   if(hMonth1<hMonth2) {
			   if(col==7) {
				  text += "<TD class=TabSundayCell id='id_"+row+col+"' onmouseover=light('id_"+row+col+"') onmouseout=dark('id_"+row+col+"') ";
			  	  text += "onclick=loadnews(" + digit + "," + (month+1) + "," + year + ",\'" + lang + "\')>";
			   }
		      else {
	             text += "<TD class=TabColumnCell id='id_"+row+col+"' onmouseover=light('id_"+row+col+"') onmouseout=dark('id_"+row+col+"') ";
			     text += "onclick=loadnews(" + digit + "," + (month+1) + "," + year + ",\'" + lang + "\')>";
			  }
             text += digit;
             text += '</TD>';
			 digit++;
			 continue;
		   }
		   
		   if((col == 7)&&(digit != date)) {
			  var state=(digit>date)?"InFuture":" id='id_"+row+col+"' onmouseover=light('id_"+row+col+"') onmouseout=dark('id_"+row+col+"') onclick=loadnews(" + digit + "," + (month+1) + "," + year + ",\'" + lang + "\')";
             text += "<TD class=TabSundayCell"+state+">" 
             text += digit;
             text += '</TD>';
		   }
		   
		  else if(date==100) {//dunno what this is
             text += "<TD class=TabNextdayCell>";
             text += digit;
             text += '</TD>';
		   }
		  else if(date==-100||digit <= date) {
	         text += "<TD class=TabColumnCell id='id_"+row+col+"' onmouseover=light('id_"+row+col+"') onmouseout=dark('id_"+row+col+"') ";
			 text += "onclick=loadnews(" + digit + "," + (month+1) + "," + year + ",\'" + lang + "\')>";
             text += digit;
             text += '</TD>';
			              
		   } 
		  else {
             text += "<TD class=TabNextdayCell>";
             text += digit;
             text += '</TD>';
		   }	
          digit++;		  
       }
    }
  text += '</TABLE>';
  return text;
}

//-------------------------------------------------------------------------------
//
//-------------------------------------------------------------------------------
function light(id)
{
	return;
 document.getElementById(id).style.backgroundColor = "#86b5ee";
 document.getElementById(id).style.color = "#ffffff";
}

//-------------------------------------------------------------------------------
//
//-------------------------------------------------------------------------------
function dark(id)
{
	return;
document.getElementById(id).style.backgroundColor = "#edf4fd";
document.getElementById(id).style.color = "#257ade";
}

