/* copyright by graftik ltd - from 2010 till the end of the world, all rights reserved. */
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 setDate(e){
	$(focusedInput).val($(e).attr('id').replace(/\_/gi,'.')+'.');
	$('#cal').hide();
}
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 markDate(d,m,y){
	$('.today').removeClass('today').addClass('cube');
	$('#'+d+'_'+m+'_'+y).addClass('today');
}
function oskarStyleXMLParsing(){
	var answerRoot = xmlhttp.responseXML.documentElement;
	var ConfirmContent = answerRoot.getElementsByTagName('data')[0].textContent;
}
function markSpecDates(year,month){
	if(!specDates){
		var xml=a('act=loadEvents',0,'calendarajax');
		specDates=loadXML(xml);
		specDates=specDates.getElementsByTagName('calendardata')[0];
	}
	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'));
						var color=urldecode(dienas[iii].getAttribute('color'));
						if(String(m).substr(0,1)=='0'){m=m.replace('0','');}
						if(String(d).substr(0,1)=='0'){d=d.replace('0','');}
						var el=$('#'+d+'_'+m+'_'+g);
						if(el){
							$(el)
							.hover(function(){if(getEventArticleLink(this.id).length){$(this).css({'text-decoration':'underline'})}},function(){})
							.bind('mouseover', function(){
								$('#calendarlayer').remove();
								$('<div id="calendarlayer"><div>'+showEventPopupu(this.id)+'</div></div>')
									.appendTo($(this))
									.show()
							})
							.css({'background':'#'+color})
							.addClass('_'+color)
							.bind('mouseout',function(){
								$(this).css({'text-decoration':'none'});
								$('#calendarlayer').remove()
							});
						}
					}
				}
			}
		}
	}
}

function getEventArticleLink(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 link='';
	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++){
								link=urldecode(events[ev].getAttribute('art'));
							}							
						}
					}
				}
			}
		}
	}
	return link;
}

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'));
							}							
						}
					}
				}
			}
		}
	}
	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=$('<thead></thead>').appendTo($(monthView));
	var tr=$('<tr></tr>').appendTo($(thead));
	var td1=$('<td colspan="2"></td>').appendTo($(tr)).css({'width':'50%','text-align':'right','padding-right':'10px'});
	var td2=$('<td colspan="3"></td>').addClass('middle').appendTo($(tr));
	var td3=$('<td colspan="2"></td>').appendTo($(tr)).css({'width':'50%','text-align':'left','padding-left':'10px'});
	$('<a></a>')
		.text('<')
		.addClass('prev')
		.click(function(){
			cal.setFullYear(year);
			cal.setMonth(month-1);
			$('#cal>*').each(function(){$(this).remove()});
			setcalendar()
		})
		.appendTo($(td1));
	$('<a></a>')
		.text('>')
		.addClass('next')
		.click(function(){
			cal.setFullYear(year);
			cal.setMonth(month+1);
			$('#cal>*').each(function(){$(this).remove()});
			setcalendar()
		})
		.appendTo($(td3));
	$('<div></div>')
		.html(monthlist[month]+', '+year)
		.appendTo($(td2));

	var tfoot=$('<tfoot></tfoot>').appendTo($(monthView));
	var tr=$('<tr></tr>').appendTo($(tfoot));
	var td=$('<td colspan="7"></td>').appendTo($(tr));
	var today=new Date();
	var dm=today.getDate();
	//$('<a href="/'+sys_lang+'/'+booking_module+'">'+lng[2]+' &gt;</a>').appendTo($(td));

	$(monthView).appendTo($('#cal'));
	markToday();
	//markSpecDates(year,month);
	$('.cube')
		.click(function(){
			setDate($(this));
		});
}

function drawCalendar(m,y){
	var days=daysInMonth(m,y);
	var firstday=weeksFirstDay(m,y);
	var table=$('<table cellPadding="0" id="calendar" cellSpacing="0"></table>');
	var tbody=$('<tbody></tbody>').appendTo(table);
	var d=1;
	var dayindex=firstday;
	for(var w=1; w<8; w++){
		var tr=$('<tr></tr>').appendTo(tbody);
		if(w==1&&firstday>0){for(var emptydays=firstday; emptydays>0; emptydays--) var td=$('<td>&nbsp;</td>').appendTo($(tr));}
		for(var rrr=0;days>=d;d++){
			dayindex++;
			var td=$('<td></td>').appendTo(tr);
			$('<div></div>')
				.attr({'id':d+'_'+(m+1)+'_'+y})
				//.addClass('_'+days[d].getAttribute('color'))
				.addClass('cube')
				.appendTo(td)
				.html(d);
			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;
}

