﻿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="";
var req;
function loadCalendar(lang, today) {
	var archDate; 
	if(today) {
		archDate = new Date();
		document.getElementById("inputm").selectedIndex=archDate.getMonth();
		document.getElementById("inputy").selectedIndex=archDate.getFullYear()-2006;
	}
	else {
		var month=document.getElementById("inputm").selectedIndex;
		var year=document.getElementById("inputy").selectedIndex+2006;
		
		archDate=new Date(year,month,1);		
	}
	document.getElementById("monthYear").innerHTML=getMonthName(document.getElementById("inputm").selectedIndex,lang) + " " + (document.getElementById("inputy").selectedIndex+2006);
	document.getElementById("calday").innerHTML=writeCal(lang, archDate);
	if(archDayId!="") {
		document.getElementById(archDayId).style.backgroundColor="#FFEB90";
		document.getElementById(archDayId).style.color="#4F4100";
	}

}

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 processReqChange() 
{ 
	 
	 if (req.readyState == 4)
	 { 
	   if (req.status == 200) 
	   {
	   	    if(lang=='r')
	   	    {
	   	    	if(digit==curdigit) document.getElementById("heading").innerHTML = "<nobr>&nbsp;&nbsp;&nbsp;&nbsp;Новости<nobr>";
	   	    	else document.getElementById("heading").innerHTML = "<nobr>&nbsp;&nbsp;&nbsp;&nbsp;Архив новостей за "+year+" - "+month+" - "+digit+"<nobr>";
	   	    	forLoadDocuments.document.location.href = url;
	   	    }
	   	     if(lang=='a')
	   	    {
	   	    	if(digit==curdigit)document.getElementById("heading").innerHTML = "<nobr>&nbsp;&nbsp;&nbsp;&nbsp;X&#601;b&#601;rl&#601;r<nobr>";
	   	    	else document.getElementById("heading").innerHTML = "<nobr>&nbsp;&nbsp;&nbsp;&nbsp;"+year+" - "+month+" - "+digit+"&nbsp; tarixinə olan xəbərlərin arxivi<nobr>";
	   	    	forLoadDocuments.document.location.href = url;
	   	    }
	   	     if(lang=='e')
	   	    {
	   	    	if(digit==curdigit)document.getElementById("heading").innerHTML = "<nobr>&nbsp;&nbsp;&nbsp;&nbsp;News<nobr>";
	   	    	else document.getElementById("heading").innerHTML = "<nobr>&nbsp;&nbsp;&nbsp;&nbsp;News archive by "+year+" - "+month+" - "+digit+"<nobr>";
	   	    	forLoadDocuments.document.location.href = url;
	   	    }
	   }
	   else 
	   {
	   	   if(lang=='r')
	   	   {
	   	    	document.getElementById("maindiv").innerHTML = "<br><p class='mhead'>В архиве, для указанной даты новостей не содержится!"
	   	   		document.getElementById("heading").innerHTML = "<nobr>&nbsp;&nbsp;&nbsp;&nbsp;Архив новостей за "+year+" - "+month+" - "+digit+"<nobr>";
	   	   }
	   	   if(lang=='e')
	   	   {
	   	    	document.getElementById("maindiv").innerHTML = "<br><p class='mhead'>There is no news in the archive for the specified date!"
	   	   		document.getElementById("heading").innerHTML = "<nobr>&nbsp;&nbsp;&nbsp;&nbsp;News archive by "+year+" - "+month+" - "+digit+"<nobr>";
	   	   }
	   	   if(lang=='a')
	   	   {
	   	    	document.getElementById("maindiv").innerHTML = "<br><p class='mhead'>Arxivdə göstərilən tarixə xəbərlər yoxdur!"
	   	   		document.getElementById("heading").innerHTML = "<nobr>&nbsp;&nbsp;&nbsp;&nbsp;"+year+" - "+month+" - "+digit+"&nbsp; tarixinə olan xəbərlərin arxivi<nobr>";
	   	   }
	   }
	 }
}
//-------------------------------------------------------------------------------
function loadXMLDoc(url,year,month,digit,lang,curdigit) {
		
	this.url = url;
	this.year = year;
	this.month = month;
	this.digit = digit;
	this.curdigit = curdigit;
	this.lang = lang
	req = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest) {
    	try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
	if(req) { 
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send("");
	}

}

//-------------------------------------------------------------------------------
 function loadnews(digit, month, year, lang)
 {   
	 var curdate=new Date()
	 curdigit = curdate.getDate();
	 if(digit<10) digit="0"+digit;
	 if(curdigit<10) curdigit="0"+curdigit;
	 if(month<10) month="0"+month;
	 var StrCgi=window.location.href;
	 StrCgi = StrCgi.substring(StrCgi.indexOf("http"),StrCgi.indexOf("/index"));
	 if(digit==curdigit) var path = "/news/news_"+lang+".html"
	 else var path = "/news/news_archive/"+year+"/"+month+"/news"+"_"+year+"_"+month+"_"+digit+"_"+lang+".html";
	 StrCgi = StrCgi + path;
	 loadXMLDoc(StrCgi,year,month,digit,lang,curdigit)
	   //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="top">';
  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";
}

