var xmlHttp;
var xmlHttp2;
var arr_days;
var arr_city;
var dayDetail;

function getNewsDays(ym_date){
	//cityList()
	
	
	dDate = ym_date;
	if((dDate[0] < range[0]) && (dDate[1] == range[1])){
		dDate[0] = range[0];
	}
	
	selectMonth(ym_date[0]);
	
	xmlHttp = GetXmlHttpObject();
	if(xmlHttp == null){
		alert ("Browser does not support HTTP Request");
		return;
	}
	var url = '/holidayList.php?y='+ym_date[1]+'&m='+ym_date[0]+'&sid='+Math.random();
	
	xmlHttp.onreadystatechange = stateChanged; //function than recives  the data that is returned by server

	//send request to the server
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChanged(){ 
//Handles data recived from the server 
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){ 
	/* xmlHttp.readyState - hold's the status of the server's response
	   xmlHttp.responseText - hold's data sent back from the server */		
		arr_days = xmlHttp.responseText.split(',');
		lang = arr_days.pop();
		showCalendar(dDate,arr_days, lang);
		//alert(arr_days);
	}
	
	
}

function getMonthCaption(month, lang){
	//var months_arr = new Array('ßÍÂÀÐÜ','ÔÅÂÐÀËÜ','ÌÀÐÒ','ÀÏÐÅËÜ','ÌÀÉ','ÈÞÍÜ','ÈÞËÜ','ÀÂÃÓÑÒ','ÑÅÍÒßÁÐÜ','ÎÊÒßÁÐÜ','ÍÎßÁÐÜ','ÄÅÊÀÁÐÜ');
	var months_arr;
	if (lang == "rus\n"){
		months_arr = new Array('ßíâàðü','Ôåâðàëü','Ìàðò','Àïðåëü','Ìàé','Èþíü','Èþëü','Àâãóñò','Ñåíòÿáðü','Îêòÿáðü','Íîÿáðü','Äåêàáðü');		
	}
	if (lang == "ua\n"){
		months_arr = new Array('Ñ³÷åíü','Ëþòèé','Áåðåçåíü','Êâ³òåíü','Òðàâåíü','×åðâåíü','Ëèïåíü','Ñåðïåíü','Âåðåñåíü','Æîâòåíü','Ëèñòîïàä','Ãðóäåíü');		
	}
	if (lang == "eng\n"){
		months_arr = new Array('January','February','March','April','May','June','July','August','September','October','November','December');		
	}

	return months_arr[month-1];
}

function daysPerMonth(m,year){
	var arr31 = new Array(0,2,4,6,7,9,11);
	var arr30 = new Array(3,5,8,10);
	
	for(var i=0; i<arr31.length; i++){
		if(arr31[i] == m-1){
			return 31;						
		}
	}
	for(i=0; i<arr30.length; i++){
		if(arr30[i] == m-1){
			return 30;						
		}
	}	
	if((year%4) == 0) return 29; else return 28;
}

function showCalendar (dDate,arr_days, lang){	
	/*var  sDate = dates[0]; //selected date
	var  dDate = dates[1]; //displayed date  
	*/	
	var cur_d = dDate[0];
	var cur_m = dDate[0];
	var cur_year = dDate[1];
	
	var dpM = daysPerMonth(cur_m, cur_year);
	var first_date = new Date(cur_year, cur_m-1, 1);
	var first_day = first_date.getDay();
	if(first_day == 0)
		first_day = 7;
		
	var table = document.getElementById('tbl_calendar');
	
	//clear table
	while(table.rows.length >1){
		table.deleteRow(table.rows.length-1);
	}

/*	table.rows[0].cells[0].innerHTML = cur_year +'<a class="cal_asc" onclick="getNewsDays(['+cur_m+','+(cur_year+1)+'])" >'+'></a>';	
	if(cur_year != range[1]){
		table.rows[0].cells[0].innerHTML = '<a class="cal_desc" onclick="getNewsDays(['+cur_m+','+(cur_year-1)+'])">'+'<</a>' + table.rows[0].cells[0].innerHTML;
	} */
	
	/**** End/start of the year handler ******/
	var prev_m = cur_m - 1;	
	var prev_year = cur_year;
	if(cur_m == 1){
		prev_m = 12;
		prev_year = cur_year - 1;
	}
	
	var next_m = cur_m + 1;
	var next_year = cur_year;
	if(cur_m == 12){ 
		next_m = 1;
		next_year = cur_year + 1;
	}
	/*****************************************/
	
	table.rows[0].cells[0].innerHTML = '<div id="h_cal"><a class="n_month" onclick="getNewsDays(['+prev_m+','+cur_year+'])" >< '+getMonthCaption(prev_m, lang)+'</a>&nbsp;<span class="c_month">' + getMonthCaption(cur_m, lang) +'</span>&nbsp;<a class="n_month" onclick="getNewsDays(['+next_m+','+next_year+'])" >'+getMonthCaption(next_m, lang)+' ></a></div>';	
//	if(!((cur_year == range[1]) && (cur_m == range[0])))
//		table.rows[0].cells[0].innerHTML = '<a class="cal_desc" onclick="getNewsDays(['+prev_m+','+prev_year+'])" >'+'<</a>' + table.rows[0].cells[0].innerHTML;	

	var row = table.insertRow(table.rows.length);
	row.setAttribute("class", "day_name");
	if(lang == "rus\n"){
		row.insertCell(0).innerHTML = 'âñ';
		row.insertCell(0).innerHTML = 'ñá';
		row.insertCell(0).innerHTML = 'ïò';
		row.insertCell(0).innerHTML = '÷ò';
		row.insertCell(0).innerHTML = 'ñð';
		row.insertCell(0).innerHTML = 'âò';
		row.insertCell(0).innerHTML = 'ïí';
	}
	if(lang == "ua\n"){
		row.insertCell(0).innerHTML = 'íä';
		row.insertCell(0).innerHTML = 'ñá';
		row.insertCell(0).innerHTML = 'ïò';
		row.insertCell(0).innerHTML = '÷ò';
		row.insertCell(0).innerHTML = 'ñð';
		row.insertCell(0).innerHTML = 'âò';
		row.insertCell(0).innerHTML = 'ïí';
	}
	if(lang == "eng\n"){
		row.insertCell(0).innerHTML = 'su';
		row.insertCell(0).innerHTML = 'sa';
		row.insertCell(0).innerHTML = 'fr';
		row.insertCell(0).innerHTML = 'th';
		row.insertCell(0).innerHTML = 'we';
		row.insertCell(0).innerHTML = 'tu';
		row.insertCell(0).innerHTML = 'mo';
	}
	
	
	
	var row = table.insertRow(table.rows.length);
	for(var j = 1; j < first_day; j++){
		var cell = row.insertCell(0);
		cell.innerHTML = '&nbsp;';
	}
	
	var day_counter = j;	
	var k = 0;	
	for(var i = 1; i < dpM + 1; i++){
		if(day_counter > 7){
			row = table.insertRow(table.rows.length);
			day_counter = 1;
		}
		var cell = row.insertCell(row.cells.length);
		//cell.width = 20;
		//cell.height = 20;
		
		if(i > arr_days[k])
			k++;
		
		if(i == arr_days[k]){
			//cell.innerHTML = '<a href="?page=news&d='+i+'&m='+dDate[0]+'&y='+dDate[1]+'">'+i+'</a>';
			//cell.innerHTML = '<a href="/archive/'+dDate[1]+'/'+dDate[0]+'/'+i+'/">'+i+'</a>';
			cell.setAttribute("class", "day_find");
			cell.innerHTML = '<a class="day_find_link" onclick="selectDay('+cur_m+','+i+')">'+i+'</a>';
			
		}
		else cell.innerHTML = i;		
		
		//if((day_counter == 6) || (day_counter == 7)) cell.className = 'weekend';
				
		if((sDate[0] == i ) && (sDate[1] == dDate[0]) && (sDate[2] == dDate[1])){
			cell.className = cell.className + ' today';
//			cell.style['border'] = '1px solid #FF7107';
			row.className = 'current_week';
//			row.style['border-top'] = '1px solid #CDCDCD';
//			row.style['border-bottom'] = '1px solid #CDCDCD';
		}
		
		day_counter++;
	}
	
	for(day_counter; day_counter <= 7; day_counter++){
		var cell = row.insertCell(row.cells.length);
		cell.innerHTML = '&nbsp;';
	}
}

function selectDay(month, day){
	xmlHttp = GetXmlHttpObject();
	if(xmlHttp == null){
		alert ("Browser does not support HTTP Request");
		return;
	}
	
	var url = '/holidayDetail.php?m='+month+'&d='+day+'&sid='+Math.random();	
	xmlHttp.onreadystatechange = daystateChanged; //function than recives  the data that is returned by server

	//send request to the server
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);	
	
}

function daystateChanged(){
//Handles data recived from the server 
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){ 
	/* xmlHttp.readyState - hold's the status of the server's response
	   xmlHttp.responseText - hold's data sent back from the server */
	/*çàïèñûâàåì äàííûå*/
		//arr_days = xmlHttp.responseText.split(',');
		var td = document.getElementById('tbl_cal_days_l');
		td.innerHTML = xmlHttp.responseText;
		//showCalendar(dDate,arr_days);
		//alert(arr_days);
	} 	
}


function selectMonth(month){
	xmlHttp2 = GetXmlHttpObject();
	if(xmlHttp2 == null){
		alert ("Browser does not support HTTP Request");
		return;
	}
	
	var url = '/monthholidayDetail.php?m='+month+'&sid='+Math.random();	
	xmlHttp2.onreadystatechange = monthtateChanged; //function than recives  the data that is returned by server

	//send request to the server
	xmlHttp2.open("GET",url,true);
	xmlHttp2.send(null);	
	
}


function monthtateChanged(){
//Handles data recived from the server 
	if (xmlHttp2.readyState == 4 || xmlHttp2.readyState == "complete"){ 
	/* xmlHttp.readyState - hold's the status of the server's response
	   xmlHttp.responseText - hold's data sent back from the server */
	/*çàïèñûâàåì äàííûå*/
		//arr_days = xmlHttp.responseText.split(',');
		var td = document.getElementById('tbl_cal_days_l');
		td.innerHTML = xmlHttp2.responseText;
		//showCalendar(dDate,arr_days);
		//alert(arr_days);
	} 	
}


