if(!SAPO.Widget||typeof(SAPO.Widget)=='undefined'){SAPO.namespace('Widget');} SAPO.Widget.Calendar=function(options){if(options!='undefined'){this.init(options);}else{this.init({});}} SAPO.Widget.Calendar.prototype={_calendars:{'sapo_sessions':{objectName:'sapo_sessions',label:'Sapo Sessions',url:'http://agenda.intra.sapo.pt/sapo.sessions.json'},'sapo_master_classes':{objectName:'sapo_master_classes',label:'Sapo Master Classes',url:'http://agenda.intra.sapo.pt/sapo.master.classes.json'},'eventos_software_livre':{objectName:'eventos_software_livre',label:'Eventos Software Livre',url:'http://agenda.intra.sapo.pt/eventos.software.livre.json'}},_calendars_test:{'sapo_sessions':{objectName:'sapo_sessions',label:'Sapo Sessions',url:'http://js.sapo.pt/SAPO/Widget/Calendar/sapo.sessions.json'},'sapo_master_classes':{objectName:'sapo_master_classes',label:'Sapo Master Classes',url:'http://js.sapo.pt/SAPO/Widget/Calendar/sapo.master.classes.json'},'eventos_software_livre':{objectName:'eventos_software_livre',label:'Eventos Software Livre',url:'http://js.sapo.pt/SAPO/Widget/Calendar/eventos.software.livre.json'}},init:function(options){options=SAPO.extendObj({elementId:'sapo_widget_calendar'+Math.floor(Math.random()*99999),target:false,month:{1:'Janeiro',2:'Fevereiro',3:'Março',4:'Abril',5:'Maio',6:'Junho',7:'Julho',8:'Agosto',9:'Setembro',10:'Outubro',11:'Novembro',12:'Dezembro'},wDay:{0:'Domingo',1:'Segunda',2:'Terça',3:'Quarta',4:'Quinta',5:'Sexta',6:'Sabado'},jsonUrl:'',multiEventDayColor:'#990000',cssURI:'http://js.sapo.pt/Assets/Images/Calendar/style.css',calendars:[{name:'sapo_sessions',color:'#336600'},{name:'sapo_master_classes',color:'#ff6600'},{name:'eventos_software_livre',color:'#0066cc'}]},arguments[0]||{});this.options=options;this.events={};this.syndication=new SAPO.Communication.Syndication();for(var _i=0;_i');this.containerObject=s$(this.options.elementId);}else{this.containerObject=document.getElementById(this.options.target);this.containerObject.className='sWidget_sapoCalendar';} this._setCss();var top=document.createElement('div');top.className='sapoCal_month_selector_container';var prev=document.createElement('div');prev.className='sapoCal_month_selector_previous';prev.appendChild(document.createElement('a'));prev.childNodes[0].href='#prev';prev.childNodes[0].innerHTML='«';prev.childNodes[0].className='swc_prev_link';var next=document.createElement('div');next.className='sapoCal_month_selector_next';next.appendChild(document.createElement('a'));next.childNodes[0].href='#next';next.childNodes[0].innerHTML='»';next.childNodes[0].className='swc_next_link';this.monthCurrent=document.createElement('div');this.monthCurrent.className='sapoCal_month_selector_current';this.monthContainer=document.createElement('div');this.monthContainer.className='sapoCal_month_container';top.appendChild(prev);top.appendChild(this.monthCurrent);top.appendChild(next);this.containerObject.appendChild(top);this.containerObject.appendChild(this.monthContainer);if(this.options.calendars.length>1){var footer=document.createElement('div');footer.className='sapoCal_calendar_caption';for(var _ix=0;_ix'+this.options.wDay[i].substring(0,3)+'';} html+='';var counter=0;html+='
';if(wDayFirst){for(j=0;j';} html+='
';counter++;}}else{html+='
';} var wDay=wDayFirst;var dateYM=ano+"-"+((mes.length==2)?mes:"0"+mes)+"-";for(i=1;i<=maxDay;i++){if(counter==7){counter=0;html+='
';} idx='swc_'+((i.length==2)?i:"0"+i);var dayHasEvents=[];var color=false;for(var _calsI=0;_calsI1)?this.options.multiEventDayColor:dayHasEvents[0].color)+'">'+i;html+='
';html+='
';html+='
';for(var _ix=0;_ix';html+='

';if(!eventos[index].allday){var hourStart=eventos[index].DTSTART.local_c.hour;hourStart=(String(hourStart).length==1)?"0"+hourStart:hourStart;var minuteStart=eventos[index].DTSTART.local_c.minute;minuteStart=(String(minuteStart).length==1)?"0"+minuteStart:minuteStart;var hourEnd=eventos[index].DTEND.local_c.hour;hourEnd=(String(hourEnd).length==1)?"0"+hourEnd:hourEnd;var minuteEnd=eventos[index].DTEND.local_c.minute;minuteEnd=(String(minuteEnd).length==1)?"0"+minuteEnd:minuteEnd;if(typeof(eventos[index].URL)!='undefined'){html+=''+hourStart+':'+minuteStart+' - '+hourEnd+':'+minuteEnd+' :: '+eventos[index].SUMMARY+'';}else{html+=hourStart+':'+minuteStart+' - '+hourEnd+':'+minuteEnd+' :: '+eventos[index].SUMMARY;}}else{if(typeof(eventos[index].URL)!='undefined'){html+=''+eventos[index].SUMMARY+'';}else{html+=eventos[index].SUMMARY;}} var dataIni=String(ano)+((String(mes).length==1)?"0"+String(mes):String(mes))+((String(i).length==1)?"0"+String(i):String(i))+"T"+hourStart+minuteStart+"00";var dataFim=String(ano)+((String(mes).length==1)?"0"+String(mes):String(mes))+((String(i).length==1)?"0"+String(i):String(i))+"T"+hourEnd+minuteEnd+"00";html+='

';html+='
';}} html+='
';html+='
';html+='
';}else{html+='
'+i+'
';} counter++;if(counter==7){html+='
';}} if(counter!=7){for(i=counter;i<7;i++){html+='
';} html+='';} html+='';this.monthCurrent.innerHTML=this.options.month[mes]+' de '+ano;this.monthContainer.innerHTML=html;},_getEventosOrdered:function(hoje){var arrEventos=[];var added=false;for(var evento in hoje){if(evento=='color'){continue;} if(arrEventos.length>0){for(var i=0;ihoje[evento].DTSTART.local_c.hour){if(arrEventos[i].DTSTART.local_c.hour==hoje[evento].DTSTART.local_c.hour&&arrEventos[i].DTSTART.local_c.minute>hoje[evento].DTSTART.local_c.minute){continue;} arrEventos.splice(i,0,hoje[evento]);added=true;break;}} if(!added){arrEventos.push(hoje[evento]);}else{added=false;}}else{arrEventos[0]=hoje[evento];}} return arrEventos;},debug:function(){}}