function urldecode(str){var histogram={},histogram_r={},code=0,str_tmp=[]; var ret = str.toString(); var replacer = function(search, replace, str){var tmp_arr = []; tmp_arr = str.split(search); return tmp_arr.join(replace);}; histogram['!'] = '%21'; histogram['%20'] = '+'; for (replace in histogram){search = histogram[replace]; ret = replacer(search, replace, ret);} ret = decodeURIComponent(ret); return ret;}
var cal=new Date();
var specDates=null;
var langtest=new RegExp('/lv/');
var ln=(langtest.test(window.location))?'lv':'en';
function daysInMonth(m,y){return 32-new Date(y,m,32).getDate();}
function weeksFirstDay(m,y){return new Date(y,m,0).getDay();}
function markToday(){
	var today=new Date();
	var id=today.getDate()+'_'+(today.getMonth()+1)+'_'+today.getFullYear();
	var cube=document.getElementById(id);
	if(cube){cube.className='today';}
}
function oskarStyleXMLParsing(){
	var answerRoot = xmlhttp.responseXML.documentElement;
	var ConfirmContent = answerRoot.getElementsByTagName('data')[0].textContent;
}
function markSpecDates(year,month){
	if(!specDates){specDates=a2('act=loadEvents','calendarajax');}
	if(!specDates){return false;}

	var cd=specDates.childNodes;
	for(var ei=0;cd.length>ei;ei++){
		var g=cd[ei].getAttribute('cid');
		if(g=='yearly'||g==year){
			if(g=='yearly'){var g=year;}
			var menesi=cd[ei].getElementsByTagName('m');
			for(var ii=0;menesi.length>ii;ii++){
				var m=menesi[ii].getAttribute('cid');
				if(m==(month+1)){
					var dienas=menesi[ii].getElementsByTagName('d');
					for(var iii=0;dienas.length>iii;iii++){
						var d=parseFloat(dienas[iii].getAttribute('cid'));
						if(String(m).substr(0,1)=='0'){m=m.replace('0','');}
						if(String(d).substr(0,1)=='0'){d=d.replace('0','');}
						var cubeID=d+'_'+m+'_'+g;
						var el=document.getElementById(cubeID);
						if(el){
							el.onmouseover=function(){
								var pop=document.getElementById('calendarlayer');
								if(!pop||pop=='undefined'){
									var pop=document.createElement('div');
									pop.id='calendarlayer';
								}
								pop.innerHTML=showEventPopupu(this.id);
								pop.style.display='block';
								this.appendChild(pop);
							}

							el.style.color='#102A7D';
							el.onclick=function(){
								var date=this.id.split('_');var g=date[2];var m=date[1];var d=date[0];
								window.location='/'+ln+'/calendar/'+g+'-'+m+'-'+d;
							}
							el.onmouseout=function(){
								var pop=this.getElementsByTagName('div');
								if(pop&&pop.length>0){pop[0].style.display='none';}
							}
						}
					}
				}
			}
		}
	}
}

function showEventPopupu(datums){
	if(!specDates){return false;}
	var datums=datums.split('_');
	var day=datums[0];
	day=(day.substr(0,1)=='0')?day.replace('0',''):day;
	var month=datums[1];
	month=(month.substr(0,1)=='0')?month.replace('0',''):month;
	var year=datums[2];
	var text='';
	try{var cd=specDates.getElementsByTagName('y');}catch(L){var cd=specDates.childNodes;}
	for(var ei=0;cd.length>ei;ei++){
		var g=cd[ei].getAttribute('cid');
		if(g=='yearly'||g==year){
			if(g=='yearly') var g=year;
			var menesi=cd[ei].getElementsByTagName('m');
			for(var ii=0;menesi.length>ii;ii++){
				var m=menesi[ii].getAttribute('cid');
				if(m==month){
					var dienas=menesi[ii].getElementsByTagName('d');
					for(var iii=0;dienas.length>iii;iii++){
						var d=parseFloat(dienas[iii].getAttribute('cid'));
						if(d==day){
							var events=dienas[iii].getElementsByTagName('event');
							for(var ev=0;events.length>ev;ev++){
								text+=urldecode(events[ev].getAttribute('value'))+'<br />';
							}							
						}
					}
				}
			}
		}
	}
	return text;
}
function setcalendar(year,month){
	if(!year||parseFloat(year)!=year)var year=cal.getFullYear();
	if(!month||parseFloat(month)!=month)var month=cal.getMonth();
	var monthView=drawCalendar(month,year);
	var thead=document.createElement('thead');
	var tr=document.createElement('tr');
	
	var prev=document.createElement('img');
	prev.src='/img/calendar/back.gif';
	prev.onclick=function(){
		cal.setFullYear(year);
		cal.setMonth(month-1);
		while(target.childNodes.length>0){target.removeChild(target.childNodes[0]);}
		setcalendar();
	}
	
	var next=document.createElement('img');
	next.src='/img/calendar/next.gif';
	next.onclick=function(){
		cal.setFullYear(year);
		cal.setMonth(month+1);
		while(target.childNodes.length>0){target.removeChild(target.childNodes[0]);}
		setcalendar();
	}
	
	var curr=document.createElement('div');
	var html=monthlist[month]+', '+year;
	curr.innerHTML=html;
	
	var td1=document.createElement('td');td1.colSpan='1';tr.appendChild(td1);td1.appendChild(prev);
	var td2=document.createElement('td');td2.colSpan='5';tr.appendChild(td2);td2.appendChild(curr);td2.className='middle'
	var td3=document.createElement('td');td3.colSpan='1';tr.appendChild(td3);td3.appendChild(next);
	monthView.appendChild(thead);
	thead.appendChild(tr);
	monthView.appendChild(thead);
	
	var tfoot=document.createElement('tfoot');
	var tr=document.createElement('tr');
	var td=document.createElement('td');
	var detlink=document.createElement('a');
	var langtest=new RegExp('/lv/');
	var today=new Date();
	var asda=today.getDate();
	if(langtest.test(window.location)){
		detlink.innerHTML='Detalizētāk >';
		detlink.href='/lv/calendar/'+year+'-'+(month+1)+'-'+asda;
	}else{
		detlink.innerHTML='More info >';
		detlink.href='/en/calendar/'+year+'-'+(month+1)+'-'+asda;
	}
	
	tfoot.appendChild(tr);
	tr.appendChild(td);
	td.colSpan='7';
	td.appendChild(detlink);
	monthView.appendChild(tfoot);
	target.appendChild(monthView);
	markToday();
	markSpecDates(year,month);
}
function drawCalendar(m,y){
	var days=daysInMonth(m,y);
	var firstday=weeksFirstDay(m,y);
	var table=document.createElement('table');
	table.cellPadding='0';
	table.cellSpacing='0';
	var tbody=document.createElement('tbody');
	table.appendChild(tbody);
	var d=1;
	var dayindex=firstday;
	for(var w=1; w<8; w++){
		var tr=document.createElement('tr');
		tbody.appendChild(tr);
		if(w==1&&firstday>0){
			for(var emptydays=firstday;emptydays>0;emptydays--){
				var td=document.createElement('td');
				tr.appendChild(td);
				td.innerHTML='&nbsp;';
			}
		}
		for(var rrr=0;days>=d;d++){
			dayindex++;
			var td=document.createElement('td');
			td.style.width='19px';
			td.style.height='11px';
			var cube=document.createElement('div');
			td.appendChild(cube);
			cube.className='cube';
			cube.id=d+'_'+(m+1)+'_'+y;
			cube.innerHTML=d;
			tr.appendChild(td);

			if(dayindex==7){d++;break;}
			if(dayindex==14){d++;break;}
			if(dayindex==21){d++;break;}
			if(dayindex==28){d++;break;}
			if(dayindex==35){d++;break;}
		}

	}
	return table;
}
