var viewType;
var todayDate = new Date();
function Calendar()
{
this.idEl;
this.lastId;
this.colorCellSelected = "LIGHTYELLOW";
this.nextView;
this.previousView;
}
Calendar.prototype.dialog = function() {
var divAddDialog = document.getElementById("divAddDialog");
if (_dragArea.initEvent > _dragArea.endEvent){
var temp = _dragArea.initEvent;
_dragArea.initEvent = _dragArea.endEvent;
_dragArea.endEvent = temp;
}
if(divAddDialog && divAddDialog.style.display != "none"){
divAddDialog.style.display = "none";
for (var hour = parseInt(_dragArea.initEvent); hour <= parseInt(_dragArea.endEvent);(hour%100 == 30)?hour+=70:hour+=30)
document.getElementById(hour).style.background = "";
_dragArea.initEvent = null;
_dragArea.endEvent = null;
try {
document.getElementById("div_main").style.opacity = 1;
document.getElementById("div_main").filters.alpha.opacity=100;
} catch (e) { }
return true;
}
var cell = document.getElementById(_dragArea.endEvent);
try {
document.getElementById("div_main").style.opacity = 0.5;
document.getElementById("div_main").filters.alpha.opacity=50;
} catch (e) {};
var data = ''+calendar.parseDate(id2timeStamp(_dragArea.initEvent))+'';
var xsl = XMLTools.load('xsl/addDialog.xsl?'+ Date.parse(new Date));
if(!divAddDialog) {
divAddDialog = document.createElement("DIV");
divAddDialog.id = 'divAddDialog';
divAddDialog.style.zIndex = "10";
divAddDialog.style.position = "absolute";
divAddDialog.style.display = "none";
document.body.appendChild(divAddDialog);
}
divAddDialog.style.left = "300px"; //cell.offsetLeft + document.body.scrollLeft;
divAddDialog.style.top = "200px"; //cell.offsetTop - 100 + document.getElementById('div_main').offsetTop;
var elData = XMLTools.ParseXmlXsl(data, xsl);
divAddDialog.style.display = "block";
divAddDialog.innerHTML = elData.innerHTML;
document.getElementById('dragEventSubject').focus();
document.getElementById('addEventLink').innerHTML = get_lang("Add this event");
this.lastId = _dragArea.endEvent;
}
Calendar.prototype.getView = function(idEl, type, data)
{
this.idEl = idEl;
var _this = this;
this.lastId = null;
var handler_getView = function(XMLdata)
{
try {
_this.parseView(XMLdata,type);
if (viewType == "Week"){
this.previousView = document.getElementById('day').firstChild.id;
this.nextView = document.getElementById('day').firstChild.id;
var dayInt = parseInt(this.nextView.substr(4,2),10)+7;
this.nextView = this.nextView.substr(0,4)+(dayInt+7)+this.nextView.substr(6,2);
}
if (viewType == "Day"){
this.nextView = document.getElementById('day').firstChild.id;
this.previousView = document.getElementById('day').firstChild.id;
var dayInt = parseInt(this.nextView.substr(4,2),10);
this.nextView = this.nextView.substr(0,4)+(dayInt+1)+this.nextView.substr(6,2);
var dayInt = parseInt(this.previousView.substr(4,2),10);
this.previousView = this.previousView.substr(0,4)+(dayInt-1)+this.previousView.substr(6,2);
}
document.getElementById("l_date").innerHTML = "\<\< ";
if (viewType == "Week")
document.getElementById("l_date").innerHTML += calendar.parseWeek(id2timeStamp(document.getElementById('day').firstChild.id));
else
document.getElementById("l_date").innerHTML += calendar.parseDate(id2timeStamp(document.getElementById('day').firstChild.id));
document.getElementById("l_date").innerHTML += " \>\>";
}catch(e){ alert(e); }
var events = document.getElementById('returnEvents');
while(typeof(events.firstChild.id) == 'string'){
createEventDiv(events.firstChild);
}
};
XMLTools.__RETURN_MODE__ = 'XML';
viewType = type;
screenTable = new Array();
XMLTools.request('$this.uicalendar.getView'+type+(data?data:''), 'GET', handler_getView);
};
Calendar.prototype.parseView = function(data,type)
{
var _this = this;
try {
var xsl = XMLTools.load('xsl/view'+type+'.xsl?'+ Date.parse(new Date));
var div = document.getElementById(this.idEl);
div.innerHTML = XMLTools.transform(data, xsl);
}
catch(e){
alert(e);
}
if (type == 'Week' || type == 'Month'){
var trWeek = document.getElementById('tr_week');
for (var i=0; i < trWeek.childNodes.length; i++)
trWeek.childNodes[i].innerHTML = get_lang(trWeek.childNodes[i].innerHTML);
}
};
Calendar.prototype.parseTime = function (first, last) {
var hour = first.substring(8,10);
var minute = first.substring(10,12);
var startHour = hour+":"+minute;
if(last && first != last) {
hour = last.substring(8,10);
minute = last.substring(10,12);
}
if(minute == "30") {
hour = parseInt(hour,10);
hour = (hour < 9 ? "0" : "")+(hour+1);
minute = "00";
}
else {
minute = "30";
}
return startHour+ " - "+ hour+":"+minute;
}
Calendar.prototype.parseWeek = function (timeStamp) {
dateObj=new Date();
dateObj.setTime(timeStamp);
Year=dateObj.getYear();
if (Year < 70) { Year=Year*1+2000; }
if (Year < 1900) { Year=Year*1+1900; }
Then=new Date(Year, 0, 1);
Then_Day=Then.getDay();
Diff=dateObj*1-Then*1;
Days=Math.floor(Diff/(1000*60*60*24)+(1/24));
Week=Math.floor((Days+Then_Day)/7)+1;
return get_lang("Week Number %1 of %2",Week,Year);
}
Calendar.prototype.parseDate = function (timeStamp) {
var obj = new Date();
obj.setTime(timeStamp);
switch(obj.getDay()) {
case 0: day = "Sunday"; break;
case 1: day = "Monday"; break;
case 2: day = "Tuesday"; break;
case 3: day = "Wednesday"; break;
case 4: day = "Thursday"; break;
case 5: day = "Friday"; break;
case 6: day = "Saturday"; break;
default: day = ""; break;
}
switch(obj.getMonth()) {
case 0: month = "January"; break;
case 1: month = "February"; break;
case 2: month = "March"; break;
case 3: month = "April"; break;
case 4: month = "May"; break;
case 5: month = "June"; break;
case 6: month = "July"; break;
case 7: month = "August"; break;
case 8: month = "September"; break;
case 9: month = "October"; break;
case 10: month = "November"; break;
case 11: month = "December"; break;
default: month = ""; break;
}
year = parseInt(obj.getYear())+1900;
return get_lang(day)+", "+obj.getDate()+" "+get_lang("of")+" "+get_lang(month)+" "+get_lang("of")+" "+year; // FIXME USE FORMAT DATE AS PREFERENCE
}
var calendar = new Calendar();