/* 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 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){
        var xml=a2('act=loadEvents','calendar');
        specDates=loadXML(xml);
        specDates=specDates.getElementsByTagName('calendardata')[0];
    }
    if(!specDates){return false;}
    
    var cd=specDates.childNodes;
	//console.log(cd);
    for(var ei=0;cd.length>ei;ei++){
        var g=cd[ei].getAttribute('cid');
	//console.log(g);
        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('click', function(){
                                $('#calendarlayer').remove();
				//alert(showEventPopupu(this.id));
                                $('<div id="calendarlayer"><div><div style="padding:3px; cursor:pointer; font-weight:bold; text-decoration:underline;" id="closepop">'+lng[3]+'</div>'+showEventPopupu(this.id)+'</div></div>')
                                    .appendTo($("#showev"))
                                    .show();
				$("#closepop").bind('click', function() { $('#calendarlayer').remove(); });
                            })
                            .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==parseInt(month)){
		    //alert(m);
                    var dienas=menesi[ii].getElementsByTagName('d');
                    for(var iii=0;dienas.length>iii;iii++){
                        var d=parseFloat(dienas[iii].getAttribute('cid'));
			//alert(dienas[iii]+'=='+day);
                        if(d==parseInt(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" align="center"></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);
            $('#calendarBody>*').each(function(){$(this).remove()});
            setcalendar()
        })
        .appendTo($(td1));
    $('<a></a>')
        .text('>')
        .addClass('next')
        .click(function(){
            cal.setFullYear(year);
            cal.setMonth(month+1);
            $('#calendarBody>*').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($('#calendarBody'));
    markToday();
    markSpecDates(year,month);
    /*$('.cube')
        .click(function(){
            var link=getEventArticleLink(this.id);
            if(link==''){link='/'+sys_lang+'/'+booking_module;}
            window.location=link
        });*/
}
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;
}



