﻿function KoledarInit(cfg)
{
	var days1 = 32 - new Date(cfg.year, cfg.month-1, 32).getDate();
	var days2 = 32 - new Date(cfg.yearto, cfg.monthto-1, 32).getDate();

	var div1 = document.createElement("div");
  div1.innerHTML="<H2 class='moduletitle RMapControl'>"+GetDictValue("kolTitle", cfg.lng)+"</H2><br/>";
  document.getElementById(cfg.calCnt).parentNode.insertBefore(div1,document.getElementById(cfg.calCnt));
	var div2 = document.createElement("div");
	s ="<br/><table border='0' cellpadding='0' cellspacing='0' style='width:100%'><tr>";
	s += "<td style='width:50%; text-align:left'>";
	s += "<select id='"+cfg.clientId+"_CalDt1'>" + CreateItemList(days1, cfg.day) + "</select>";
	s += "<select id='"+cfg.clientId+"_CalMth1' onchange='KoledarChanged(this)'>" + CreateItemList(12, cfg.month) + "</select>";
	s += "<br/>";
	s += "<select id='"+cfg.clientId+"_CalDt2'>" + CreateItemList(days2, cfg.dayto) + "</select>";
	s += "<select id='"+cfg.clientId+"_CalMth2' onchange='KoledarChanged(this)'>" + CreateItemList(12, cfg.monthto) + "</select>";
	s += "</td>";
	s += "<td style='width:50%; text-align:center'><img src='"+appSettings.iconsRepository+"Calendar/calendar_logo.gif' onclick='KoledarClicked()' style='cursor:pointer'/></td>";
	s += "</tr></table>";
  div2.innerHTML=s;
  document.getElementById(cfg.calCnt).parentNode.appendChild(div2);
	//document.getElementById(cfg.calCnt).innerHTML="<div style='text-align:center'><img src='"+appSettings.iconsRepository+appSettings.loadingImg+"'/></div>";
	document.getElementById(cfg.calCnt).innerHTML=GetDictValue("kolSelect", cfg.lng);
	
	window.calCfg=cfg;
	//KoledarLoad();
}

function CreateItemList(max,sel)
{
	var s=[];
	for(var f=1;f<=max;f++)
	{
		s.push("<option value='"+f+"'"+ (f==sel ? " selected" : "") +">"+f+" </option>");
	}
	return s.join("");
}

function KoledarChanged(mthCtrl)
{
	var days= 32 - new Date(calCfg.year, parseInt(mthCtrl.value)-1, 32).getDate();
	var dtCtrl=document.getElementById(mthCtrl.id.replace("CalMth","CalDt"));
	var sel=Math.min(parseInt(dtCtrl.value), days)-1;
	
	dtCtrl.options.length = days;
	for(f = 29; f <= days; f++)
	{
		dtCtrl.options[f-1].value = f.toString();
		dtCtrl.options[f-1].text = f;
	}
	dtCtrl.selectedIndex = sel;
}

function KoledarClicked()
{
	var dt1=document.getElementById(calCfg.clientId+"_CalDt1").value;
	var mth1=document.getElementById(calCfg.clientId+"_CalMth1").value;
	var dt2=document.getElementById(calCfg.clientId+"_CalDt2").value;
	var mth2=document.getElementById(calCfg.clientId+"_CalMth2").value;
	var y2=(parseInt(mth1)*100 + parseInt(dt1) <= parseInt(mth2)*100 + parseInt(dt2)) ? calCfg.year : calCfg.year+1;
	url=appSettings.koledarListPage+"?day="+dt1+"&month="+mth1+"&year="+calCfg.year+"&dayto="+dt2+"&monthto="+mth2+"&yearto="+y2;

	window.location=url;
}

function KoledarLoad()
{
	var url = appSettings.proxyUrl + "?method=POST&remoteUrl=" + escape(appSettings.koledarUrl) + "&remotePrms=" + escape(calCfg.lng ? "&language=" + calCfg.lng : "");
	ServerRequest(url,KoledarLoaded);
}

function KoledarLoaded(result)
{
	var obj=GetEval(result);
	if(obj!=null && obj.koledar!=null && obj.koledar.dan!=null && obj.koledar.dan.length!=null)
	{
		for(var f=0;f<obj.koledar.dan.length;f++)
		{
			
			var dt=obj.koledar.dan[f].datum;
			var html1=obj.koledar.dan[0].opisMorning;
			var html2=obj.koledar.dan[0].opisAfternoon;
			document.getElementById(calCfg.calCnt).innerHTML=dt.format(GetDictValue("datFormat", calCfg.lng)) + "<br/><br/>" + html1 + "<br/><br/>" + html2;
		}
	}
	else
	{
		// TODO WHAT ?
	}

}





function KoledarIzpisInit(cfg)
{
	var div = document.createElement("div");
	var s=[];
	var y=parseInt(cfg.date.split(".")[2]);
	s.push("<H2 class='moduletitle RMapControl'>"+GetDictValue("kolTitle", cfg.lng)+"</H2><br/>");
	s.push("<table border='0' cellpadding='0' cellspacing='0' style='width:100%'><tr>");
	s.push("<td style='text-align:center' colspan='2'>"+(y-1)+"</td>");
	s.push("<td style='text-align:center' colspan='14'>"+(y)+"</td>");
	s.push("<td style='text-align:center' colspan='2'>"+(y+1)+"</td>");
	s.push("</tr><tr>");
	var months=GetDictValue("months", cfg.lng);
	for(var f=-2;f<14;f++)
	{
		if(f==0 || f==12)
			s.push("<td style='text-align:center'> | </td>");
			
		var ff=f;
		var yy=y;
		if(f<0)
		{
			ff+=12;
			yy--;
		}
		else if(f>11)
		{
			ff-=12;
			yy++;
		}
		
		var dt2= 32 - new Date(yy, ff, 32).getDate();
		url=appSettings.koledarListPage+"?day=1&month="+(ff+1)+"&year="+yy+"&dayto="+dt2+"&monthto="+(ff+1)+"&yearto="+yy;
		s.push("<td style='text-align:center'><a href='"+url+"'>"+months[ff]+"</a></td>");
	}
	s.push("</tr></table><br/>");
  div.innerHTML=s.join("");
  document.getElementById(cfg.calCnt).parentNode.insertBefore(div,document.getElementById(cfg.calCnt));
 	document.getElementById(cfg.calCnt).innerHTML="<div style='text-align:center'><img src='"+appSettings.iconsRepository+appSettings.loadingImg+"'/></div>";

	cfg.dt1=new Date(cfg.year,cfg.month-1,cfg.day);
	cfg.dt2=new Date(cfg.yearto,cfg.monthto-1,cfg.dayto);
	window.calListCfg=cfg;
	KoledarIzpisLoad(cfg.dt1,cfg.dt2);
}

function KoledarIzpisLoad(dt1,dt2)
{
	var url = appSettings.proxyUrl + "?method=POST&remoteUrl=" + escape(appSettings.koledarUrl) + "&remotePrms=" + escape((calListCfg.lng ? "&language=" + calListCfg.lng : "") + "&fromDate=" + dt1.format("yyyy-MM-dd") + "&toDate=" + dt2.format("yyyy-MM-dd"));
	ServerRequest(url,KoledarIzpisLoaded);
}

function KoledarIzpisLoaded(result)
{
	var obj=GetEval(result);
	if(obj!=null && obj.koledar!=null && obj.koledar.dan!=null && obj.koledar.dan.length!=null)
	{
		var days=GetDictValue("days",calListCfg.lng);
		var frm=GetDictValue("datFormat",calListCfg.lng);
		var cc=appSettings.tblBrdColor;
		var hh=appSettings.tblHdrColor;
		var obd=calListCfg.dt1.format(frm);
		if(calListCfg.dt1.getTime()<calListCfg.dt2.getTime())
			obd+=" - "+calListCfg.dt2.format(frm);	
		var s=[];

		s.push("<span class='title RMapControl'>"+GetDictValue("kolSubtitle",calListCfg.lng)+" "+ obd +"</span><br/>&nbsp;");
		s.push("<table border='0' cellpadding='3' cellspacing='0' style='width:100%;'>");
		s.push("<tr style='background:"+hh+"'>");
		s.push("<td style='text-align:center; border-top:"+cc+" 1px solid; border-bottom:"+cc+" 1px solid; border-left:"+cc+" 1px solid; border-right:"+cc+" 0px solid'>&nbsp;</td>");
		s.push("<td style='text-align:left; border-top:"+cc+" 1px solid; border-bottom:"+cc+" 1px solid; border-right:"+cc+" 0px solid' colspan='2'><b>"+GetDictValue("cldDop",calListCfg.lng)+"</b></td>");
		s.push("<td style='text-align:left; border-top:"+cc+" 1px solid; border-bottom:"+cc+" 1px solid; border-right:"+cc+" 0px solid' colspan='2'><b>"+GetDictValue("cldPop",calListCfg.lng)+"</b></td>");
		s.push("<td style='text-align:left; border-top:"+cc+" 1px solid; border-bottom:"+cc+" 1px solid; border-right:"+cc+" 1px solid' colspan='2'><b>"+GetDictValue("cldOp",calListCfg.lng)+"</b></td>");
		s.push("</tr>");
		for(var f=obj.koledar.dan.length-1;f>=0;f--)
		{
			var item=obj.koledar.dan[f];
			var day=item.datum.getDay();
			var statusAfternoon
			if(item.statusMorning<29)
				item.statusMorningImage=KoledarIzpisCompatImg(item.statusMorning);
			if(item.statusAfternoon<29)
				item.statusAfternoonImage=KoledarIzpisCompatImg(item.statusAfternoon);
			s.push("<tr class='PrometPanelItem' "+(day==0 || day==6 ? "style='background-color:#EEEEEE'" : "")+">");
			s.push("<td style='text-align:left; vertical-align:top; border-left:"+cc+" 1px solid; border-bottom:"+cc+" 1px solid; padding-right:10px; width:1px;'>"+days[day]+",&nbsp;"+item.datum.format(frm)+"</td>");
			s.push("<td style='text-align:left; vertical-align:top; border-bottom:"+cc+" 1px solid; width:1px;'><img style='width:20px; height:14px; margin-right:4px; border:"+cc+" 1px solid' src='"+appSettings.iconsRepository + "Calendar/"+item.statusMorningImage+"'/></td>");
			s.push("<td style='text-align:left; vertical-align:top; border-bottom:"+cc+" 1px solid;'>"+item.smerMorning+"&nbsp; </td>");
			s.push("<td style='text-align:left; vertical-align:top; border-bottom:"+cc+" 1px solid; width:1px;'><img style='width:20px; height:14px; margin-right:4px; border:"+cc+" 1px solid' src='"+appSettings.iconsRepository + "Calendar/"+item.statusAfternoonImage+"'/></td>");
			s.push("<td style='text-align:left; vertical-align:top; border-bottom:"+cc+" 1px solid;'>"+item.smerAfternoon+"&nbsp; </td>");
			s.push("<td style='text-align:left; vertical-align:top; border-bottom:"+cc+" 1px solid; border-right:"+cc+" 1px solid;'>"+item.opomba+"&nbsp; </td>");
			s.push("</tr>");
		}
		
		s.push("</table>");
		document.getElementById(calListCfg.calCnt).innerHTML=s.join("");
	}
	else
	{
		// TODO WHAT ?
	}

}

function KoledarIzpisCompatImg(stat)
{
	if(stat<=1)
		return "images/koledar_white.gif"; //29
	else if(stat<=10)
		return "images/koledar_yellow.gif"; //30
	else if(stat<=19)
		return "images/koledar_orange.gif"; //31
	else
		return "images/koledar_red.gif"; //32		
}