var debugTitles = false;
var eStartX;
var eStartY;
var eStartH;
var eventBusy = false;
var eventStart;
var eventResizing = false;
var eventMoving = false;
var saving = false;
var days = new Array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');
var timeSep = ":";
var initDone = false;

function eventLoad() {
    if (debugTitles) debug("eventLoad");
    eventStart = document.getElementById("event").style.top;
}


function eventCreate(x) {
    if (debugTitles) debug("eventCreate(" + x + ")");
    if (saving == false && calLocked == false && allowAdd != false) {
        hideDialogs();
        eventBusy = true;
        var str = x.toString();
        var aDay = str.substr(0, 1);
        var aHour = eval(str.substr(1, (str.length - 1)));
        var ttop = eval((aHour * dHeight) + (calY + dayTitle));
        var tleft = eval((aDay * dWidth) + calX);
        document.getElementById("event").style.display = "block";
        document.getElementById("event").style.top = ttop + "px";
        document.getElementById("event").style.left = tleft + "px";
        document.getElementById("event").style.width = dWidth + "px";
        document.getElementById("event").style.height = dHeight + "px";
    }
}


function eventDone() {
    if (debugTitles) debug("eventDone");
    if (eventResizing == false && eventMoving == false) {
        eventBusy = false;
        
        var doneStart = document.getElementById("event").style.top;
        doneStart = doneStart.substr(0, doneStart.length - 2);
        doneStart = eval(doneStart - (calY + dayTitle));
        var doneHours = document.getElementById("event").style.height;
        doneHours = doneHours.substr(0, doneHours.length - 2);
        doneStart = eval(eval(eval(doneStart / dHeight) / finahour) + hstart);
        doneHours = eval(eval(doneHours / dHeight) / finahour);
        var doneEnd = eval(doneStart + doneHours);
        var endHour = doneEnd.toString().split('.')[0];
        var endMin = doneEnd.toString().split('.')[1];
        endMin = eval((endMin*60)/100);
        if(endMin.toString().length < 2) {endMin = eval(endMin*10);}
        else if(isNaN(endMin)) {endMin = '00';}
        var doneDate = document.getElementById("event").style.left;
        doneDate = doneDate.substr(0, doneDate.length - 2);
        doneDate = eval(doneDate);
        doneDate = Math.floor((doneDate - calX) / dWidth);
       
        if (view == 'day') {
            var dateTwoCharFix = dateDay;
        } else {
            var dateTwoCharFix = (dateArray[doneDate] <= 9) ? ("0" + dateArray[doneDate]) : dateArray[doneDate];
        }
        var currentMonth = (dateArray[doneDate] < dateArray[0]) ? ((parseFloat(dateMonth) == 12)? 01 : leadingZero(parseFloat(dateMonth) + 1)) : leadingZero(dateMonth);
        var curDateYear = (dateArray[doneDate] < dateArray[0]) ? ((parseFloat(dateMonth) == 12)? parseFloat(dateYear) + 1 : dateYear) : dateYear;
        if (currentMonth.length > 2) {
            currentMonth = dateMonth;
        }
        if (doneHours > 0.2) {
          if(action=="applyLeave") {
            document.getElementById("leaveWhat").value = "";
            id("leaveForm").style.top = (tempY - 100) + "px";;
            id("leaveForm").style.left = (tempX - 185) + "px";
            document.getElementById("leaveForm").style.display = "block";
            document.getElementById("leaveWhat").focus();
            document.getElementById("leaveID").value = "event_" + Math.floor(Math.random() * 10000);
            document.getElementById("leaveDate").value = curDateYear + "-" + currentMonth + "-" + dateTwoCharFix;
            document.getElementById("leaveStart").value = doneStart;
            document.getElementById("leaveDuration").value = doneHours;
            document.getElementById("leaveEnd").value = doneEnd;
          } else {
              if(taskDeadline){
                var tskDeadLine = new Date(taskDeadline);
                var eventEndTime = new Date(curDateYear,currentMonth-1,dateTwoCharFix ,endHour,endMin);
                if(tskDeadLine < eventEndTime) {
                  if(allowEventOverBooking) {
                    if(deadlineUpdateByEvent) {
                      var ans = confirm('Task / Revision Deadline :'+tskDeadLine+' Exceeded.\nWould you like to overbook and extend deadline?');
                      if(!ans){
                        document.getElementById("event").style.display = "none";
                        document.getElementById("event").style.height = "1px";
                        document.body.focus();
                        rash("Action canceled.");
                        return false;
                      }
                    } else {
                      var ans = confirm('Task / Revision Deadline :'+tskDeadLine+' Exceeded.\nWould you like to overbook the event?');
                      if(!ans){
                        document.getElementById("event").style.display = "none";
                        document.getElementById("event").style.height = "1px";
                        document.body.focus();
                        rash("Action canceled.");
                        return false;
                      }
                    }
                  } else {
                      document.getElementById("event").style.display = "none";
                      document.getElementById("event").style.height = "1px";
                      document.body.focus();
                      rash("Task / Revision Deadline Exceeded!");
                      return false;
                  }
                }
              }
            document.getElementById("eventWhat").value = "";
            eventColour("Blue");
            id("eventForm").style.top = (tempY - 100) + "px";;
            id("eventForm").style.left = (tempX - 185) + "px";
            document.getElementById("eventForm").style.display = "block";
            document.getElementById("eventWhat").focus();
            document.getElementById("eventID").value = "event_" + Math.floor(Math.random() * 10000);
            document.getElementById("eventDate").value = curDateYear + "-" + currentMonth + "-" + dateTwoCharFix;
            document.getElementById("eventStart").value = doneStart;
            document.getElementById("eventDuration").value = doneHours;
            document.getElementById("eventEnd").value = doneEnd;
        }
      }
    }
}


function entityClick(el) {
    $("input[id='eventAttendeeChecked[]']").each(function (i) {
        if (this.value == ((el.id).split('_')[1])) {
            this.checked = 'checked';
            this.disabled = 'true';
        } else {
            this.checked = '';
            this.disabled = '';
        }
    });
    $('#currentCalViewPerson').val((el.id).split('_')[1]);
}


function attendeeUpdate() {
    var attList = '';
    $("input[id='eventAttendeeChecked[]']").each(function (i) {
        if (this.checked) {
            attList += this.value + ',';
        }
    });
    $('#currentCalViewPerson').val(attList.substring(0, (attList.length) - 1));
}


function eventClick() {
    if (debugTitles) debug("eventClick");
    eventBusy = false;
}


function eventCancel(x) {
    if (debugTitles) debug("eventCancel(" + x + ")");
    document.getElementById(x).style.display = "none";
    document.getElementById("event").style.display = "none";
    document.getElementById("event").style.height = "1px";
    document.body.focus();
}


function eventEdit() {
    if (debugTitles) debug("eventEdit");
    document.getElementById("editWhat").value = document.getElementById("eventWhat").value;
    document.getElementById("eventEdit").style.top = (tempY - 275) + "px";
    document.getElementById("eventEdit").style.left = (tempX - 185) + "px";
    document.getElementById("eventEdit").style.display = "block";
    document.getElementById("eventForm").style.display = "none";
}


function eventDrag(x) {
    if (debugTitles) debug("eventDrag(" + x + ")");
    eStartX = document.getElementById(x).style.left;
    eStartX = eStartX.substr(0, eStartX.length - 2);
    eStartX = eval(eStartX);
    eStartY = document.getElementById(x).style.top;
    eStartY = eStartY.substr(0, eStartY.length - 2);
    eStartY = eval(eStartY);
    eStartH = document.getElementById(x).style.height;
    eStartH = eStartH.substr(0, eStartH.length - 2);
    eStartH = eval(eStartH);
    zChange(x);
}


function eventMove(x) {

    if (debugTitles) debug("eventMove(" + x + ")");
    if (saving == false) {
        var eMoveX = document.getElementById(x).style.left;
        eMoveX = eMoveX.substr(0, eMoveX.length - 2);
        eMoveX = eval(eMoveX);
        var eMoveY = document.getElementById(x).style.top;
        eMoveY = eMoveY.substr(0, eMoveY.length - 2);
        eMoveY = eval(eMoveY);
        var eDuration = document.getElementById(x).style.height;
        eDuration = eDuration.substr(0, eDuration.length - 2);
        eDuration = Math.floor(eDuration / dHeight);
        newX = Math.floor((eMoveX - calX) / dWidth);
        newY = Math.floor(eMoveY - (calY + dayTitle));
        newY = eval((newY / (dHeight * finahour)) + hstart);
        newH = document.getElementById(x).style.height;
        newH = newH.substr(0, newH.length - 2);
        newH = eval(newH);
        if (eMoveX == eStartX && eMoveY == eStartY && newH == eStartH) {
            hideDialogs();
            displayEvent(plar(x, 'dEvent', 0));
        } else if (newH != eStartH) {} else {
            var vtime = eval(eDuration / finahour);
            var monthFix = (parseInt(dateArray[newX]) < parseInt(dateArray[0])) ? leadingZero(parseInt(dateMonth) + 1) : dateMonth;
            var theDate = (view == 'day') ? dEvent[plar(x, "dEvent", 0)][1] : dateYear + "-" + monthFix + "-" + leadingZero(dateArray[newX]);
            updateEventTimes(x, theDate, newY, vtime);
            dEvent[plar(x, "dEvent", 0)][1] = theDate;
            dEvent[plar(x, "dEvent", 0)][2] = newY;
            var vnt = ib[x];
            var vntid = document.getElementById(x);
            var vcolumn = dateArray[newX];
            for (var vc = 0; vc <= dateArray.length; vc++) {
                if (parseInt(dateArray[vc]) == parseInt(vcolumn)) {
                    vcolumn = vc;
                    break;
                }
            }
            var saveNorth = icn[vnt];
            var saveSouth = ics[vnt];
            var saveWest = icw[vnt];
            var saveEast = ice[vnt];
            icn[vnt] = ((newY - hstart) * finahour);
            ics[vnt] = (((hstart + hinaday) - (newY + vtime)) * finahour);
            icw[vnt] = (vcolumn);
            ice[vnt] = (eval((dateArray.length - 1) - vcolumn));
            YAHOO.example.DDApp.init();
            saveStart();
        }
    }
}


function editEvent(de) {
    if (debugTitles) debug("editEvent(" + de + ")");
    hideDialogs();
    globalDE = de;
    id("editButton").value = "Save";
    id("editButton").onclick = editSave;
    var ttime = String(dEvent[de][2]);
    var hhours = String(dEvent[de][3]);
    checkForAttachments(dEvent[de][0]);
    id("attachFormEventID").value = dEvent[de][0];
    id("editId").value = dEvent[de][0];
    id("editDate").value = dEvent[de][1];
    id("editTime").value = ttime;
    id("editHours").value = hhours;
    editColour(dEvent[de][4]);
    id("editWhat").value = dEvent[de][5];
    id("editLocation").value = dEvent[de][6];
    id("editNotes").value = pipeBreak(dEvent[de][7]);
    id("selEdit_Hour").value = timeSel(ttime, "h");
    id("selEdit_Min").value = timeSel(ttime, "m");
    id("editHours_Hour").value = hourSel(hhours, "h");
    id("editHours_Min").value = hourSel(hhours, "m");
    id('attSelect').selectedIndex = 0;
    attEdit(dEvent[de][9]);
    id("editPrivate").checked = (dEvent[de][10] == true) ? true : false;
    if(calendarEntityCreation)
      id("editCreateEntityEvent").checked = (dEvent[de][13] == true) ? true : false;
    id("eventEdit").style.display = "block";
}

function attendeeUpdate() {
    if (debugTitles) debug("attendeeUpdate");
    saveStart();
    x = typeof globalDE;
    if(x != 'undefined'){
      var de = globalDE;
      toggalContent('front');
      id("eventDisplay").style.display = "none";
      var vid = dEvent[de][0];
      var vdate = dEvent[de][1];
      var vtime = dEvent[de][2];
      var vduration = dEvent[de][3];
      id("editAttend").value = attSave();
      var attendees = id("editAttend").value;

      $.ajax({
          type: "POST",
          url:  "search/ajax2/updateEventAttendee/",
          data: "&id=" + vid + "&attendees=" + attendees + "&date=" + vdate + "&time=" + vtime + "&duration=" + vduration,
          success: function (msg) {
              if (msg == '200') {
                  jGrowl('no clashes');
              } else {
                  jGrowl('There are clashes. Please amend or cancel (esc).');
              }
              saveStop();
              dEvent[de][9] = attendees;
              rash("Changes saved!");
          }
      });
    }
}

function editSave() {
    if (debugTitles) debug("eventSave");
    saveStart();
    var de = globalDE;
    id("eventEdit").style.display = "none";
    var vid = id("editId").value
    var vdate = id("editDate").value;
    var vtime = id("selEdit_Hour").value + "." + id("selEdit_Min").value;
    var vduration = id("editHours_Hour").value + "." + id("editHours_Min").value;
    var vcolour = id("editColour").value;
    var vtitle = id("editWhat").value;
    var vlocation = id("editLocation").value;
    id("editAttend").value = attSave();
    var attendees = id("editAttend").value;
    var privated = (id("editPrivate").checked) ? "1" : "0";
    if(calendarEntityCreation)
      var createEntityEvent = (id("editCreateEntityEvent").checked) ? "1" : "0";
    var checkval = id("editNotes").value;
    checkval = checkval.replace(/\r\n/g, "|");
    checkval = checkval.replace(/\r/g, "|");
    checkval = checkval.replace(/\n/g, "|");
    var vnotes = checkval;
    editMonthEventProperties(de, vid, vtitle, vlocation, vnotes, vcolour, attendees, vdate, vtime, vduration, privated, createEntityEvent);
}


function editSuccess(de) {
    if (debugTitles) debug("editSuccess(" + de + ")");
    saveStop();
    var xid = id("editId").value;
    dEvent[de][1] = id("editDate").value;
    dEvent[de][2] = id("selEdit_Hour").value + "." + id("selEdit_Min").value;
    dEvent[de][3] = id("editHours_Hour").value + "." + id("editHours_Min").value;
    dEvent[de][4] = id("editColour").value;
    dEvent[de][5] = id("editWhat").value;
    dEvent[de][6] = id("editLocation").value;
    var checkval = id("editNotes").value;
    checkval = checkval.replace(/\r\n/g, "|");
    checkval = checkval.replace(/\r/g, "|");
    checkval = checkval.replace(/\n/g, "|");
    dEvent[de][7] = checkval;
    dEvent[de][9] = id("editAttend").value;
    dEvent[de][10] = id("editPrivate").checked;
    if(calendarEntityCreation)
      dEvent[de][13] = id("editCreateEntityEvent").checked;
    var ftime = fracTime(dEvent[de][2]);
    var fhours = parseFloat(dEvent[de][2]) + parseFloat(dEvent[de][3]);
    fhours = fracTime(fhours);
    if (view == "month") {
        var titlePrivate = (dEvent[de][10] && (allowEdit == false || dEvent[de][8] == "locked")) ? "Private Event" : (id("editWhat").value);
        id(xid + "_title").innerHTML = (ftime + "-" + fhours + " - " + titlePrivate);
        id(xid).className = ("mPill e" + id("editColour").value);
    } else if (view == "list") {
        listInit();
    } else if (view == "week") {
        id(xid + "_title").innerHTML = id("editWhat").value;
        id(xid).className = ("iEvent e" + id("editColour").value);
    }
    rash("Changes saved!");
}
var cset = "b";

function editColour(x) {
    if (debugTitles) debug("editColour");
    var cArray = new Array('Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Pink', 'Grey');
    for (var ci = 0; ci < cArray.length; ci++) {
        id("edit" + cArray[ci]).src =  "images/" + cset + cArray[ci] + "0.gif";
    }
    id("edit" + x).src =  "images/" + cset + x + "1.gif";
    id("editColour").value = x;
}


function eventColour(x) {
    if (debugTitles) debug("eventColour");
    var cArray = new Array('Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Pink', 'Grey');
    for (var ci = 0; ci < cArray.length; ci++) {
        document.getElementById("event" + cArray[ci]).src = "images/e" + cArray[ci] + "0.gif";
    }
    document.getElementById("event" + x).src = "images/e" + x + "1.gif";
    document.getElementById("eventColour").value = x;
}


function dragCreate() {
    if (debugTitles) debug("dragCreate");
    var vid = document.getElementById("eventID").value;
    var vdate = document.getElementById("eventDate").value;
    var vtime = document.getElementById("eventStart").value;
    var vhours = document.getElementById("eventDuration").value;
    var vcolour = document.getElementById("eventColour").value;
    var vtitle = document.getElementById("eventWhat").value;
    var createEvent = (document.getElementById('createLinkedEventCB').checked == true ? '1' : '0');
    var entityID = document.getElementById('currentCalViewPerson').value;
    var fromTask = document.getElementById('createFromTask').value;
    var fromRev = document.getElementById('createFromRev').value;
    if(fromTask == 'true' || fromRev == 'true') {
      var fromEvent = 'true';
      if(fromTask == 'true') {
        var linkTo = 'task';
      } else if(fromRev == 'true'){
        var linkTo = 'rev';
      } else {
        var linkTo = '';
      }
    } else {
      var fromEvent = '';
      var linkTo = '';
    }
    var vlocation = "";
    var vnotes = "";
    var reccursion = "";
    var title = document.getElementById("eventWhat").value;
   if(document.getElementById('recSet[set]')) {
      reccursion = document.getElementById('recSet[set]').value;
      if(reccursion != ''){
        var additianalDays ='';
        if(reccursion == 'weekly') {
          $("#weeklyDays INPUT[type='checkbox']:checked").each(function() {additianalDays += $(this).val()+",";});
          additianalDays = '|'+additianalDays.substring(0,additianalDays.length-1);
        }
        var recRange = document.getElementById('recEnds').value;
        reccursion = reccursion + '|'+ recRange + additianalDays;
      }
    }
    if (document.getElementById("fromTask")) {
        if (document.getElementById("fromTask").checked == true) {
            var taskID = document.getElementById("fromTask").value;
            var taskName = document.getElementById("fromTask").getAttribute('rel');
            vtitle += taskName;
            title += ' '+taskName;
            if(document.getElementById("projectName") != undefined){
              title += '-'+document.getElementById("projectName").value; //to show in calendar
            }
            if(document.getElementById("projectRef") != undefined){
              title += '-('+document.getElementById("projectRef").value+')'; //to show in calendar
            }
            var revision = revId;
        }
    }
    if (!taskID) {
        var taskID = null;
    }
    if(!revision) {
      var revision = '';
    }
    createEventOnServer(vdate, vtime, vhours, vcolour, vtitle, vlocation, vnotes, taskID, revision, createEvent, entityID, fromEvent,linkTo,reccursion,title);
    return false;
}

function dragLeave() {
    if (debugTitles) debug("dragLeave");
    var vid = document.getElementById("leaveID").value;
    var vdate = document.getElementById("leaveDate").value;
    var vtime = document.getElementById("leaveStart").value;
    var vhours = document.getElementById("leaveDuration").value;
    var vtitle = document.getElementById("leaveWhat").value;
    var entityID = document.getElementById('currentCalViewPerson').value;
    var vnotes = document.getElementById('leaveNote').value;
    var leaveType = document.getElementById('leaveType').value;
    var vcolour = "Grey";
    createLeaveOnServer(vdate, vtime, vhours, vtitle, vnotes, entityID, leaveType, vcolour);
    return false;
}

function dPop(id, date, time, hours, colour, title, location, notes, attend) {
    if (debugTitles) debug("dPop");
    var de = dEvent.length;
    dEvent[de] = new Array();
    dEvent[de][0] = id;
    dEvent[de][1] = date;
    dEvent[de][2] = time;
    dEvent[de][3] = hours;
    dEvent[de][4] = colour;
    dEvent[de][5] = title;
    dEvent[de][6] = location;
    dEvent[de][7] = notes;
    dEvent[de][8] = "unlocked";
    dEvent[de][9] = attend;
}


function createEventWeek(id, date, time, hours, colour, title, location, notes, lockvar, privated, clashStatus, entityCreatedStatus, eventEntityId,rsvpStatus) {
    if (debugTitles) debug("createEventWeek");
    saveStop();
    if (!lockvar) var lockvar = "unlocked";
    if(!rsvpStatus) var rsvpStatus = '1';
    var vcolumn = parseFloat(date.split("-")[2]);
    for (var vc = 0; vc < dateArray.length; vc++) {
        if (parseFloat(dateArray[vc]) == vcolumn) {
            vcolumn = vc;
            break;
        }
    }
    var qtop = ((dHeight * ((time - hstart) * finahour)) + (calY + dayTitle));
    var qleft = (((dWidth * vcolumn) + dPadLeft) + calX);
    var qwidth = (dWidth - dPadLeft);
    var qheight = (dHeight * (hours * finahour));
    var colourLock;
    var titleColour;
    if(rsvpStatus == '1') {
      colourLock = (clashStatus) ? "exx"+colour : "e"+colour;
      titleColour = '';
    } else if(rsvpStatus =='3') {
      colourLock = "ePending";
      titleColour = (clashStatus) ? "exx"+colour : "e"+colour;;
    } else if(rsvpStatus =='2') {
      colourLock = "eTentative";
      titleColour = (clashStatus) ? "exx"+colour : "e"+colour;;
    }

    var titlePrivate = (privated && (allowEdit == false || lockvar == "locked")) ? "Private Event" : title;
    document.getElementById("newness").innerHTML += '<div id="' + id + '" class="iEvent ' + colourLock + ' ' + lockvar + '" onmousedown="eventDrag(this.id);" onmouseup="eventMove(this.id)" style="position:absolute; top:' + qtop + 'px; left:' + qleft + 'px; width:' + qwidth + 'px; height:' + qheight + 'px;" title="' + title + '">' + '<div id="' + id + 'lock" class="iconLock"></div>' + '<p class="'+titleColour+'" id="' + id + '_title">' + titlePrivate + '</p>' + ((rsvpStatus == '1') ? '<div id="' + id + 'resize" class="eventResize"></div>' : '') + '</div>';
    ia.push(id);
    ib[id] = (ia.length >= 1) ? (ia.length - 1) : 0;
    icn.push((time - hstart) * finahour);
    ics.push(((hstart + hinaday) - (parseInt(time) + parseInt(hours))) * finahour);
    icw.push(vcolumn);
    ice.push(eval((dateArray.length - 1) - vcolumn));
    if (initDone == true) {
        YAHOO.example.DDApp.init();
        hideDialogs();
    }
}

function createHolidayWeek(id, date, colour, title, notes, lockvar, type) {
    if (debugTitles) debug("createHolidayWeek");
    saveStop();
    if (!lockvar) var lockvar = "unlocked";
    var vcolumn = parseFloat(date.split("-")[2]);
    for (var vc = 0; vc < dateArray.length; vc++) {
        if (parseFloat(dateArray[vc]) == vcolumn) {
            vcolumn = vc;
            break;
        }
    }
    var qtop = (calY + dayTitle);
    var qleft = (((dWidth * vcolumn) + dPadLeft) + calX);
    var qwidth = (dWidth - dPadLeft);
    var qheight = (dHeight * ((hend - hstart) * finahour));
    var colourLock = colour;
    var titlePrivate =  title;
    document.getElementById("newness").innerHTML += '<div id="' + id + '" class="iEvent e' + colourLock + ' ' + lockvar + '" onmouseup="displayHoliday(this.id)" style="position:absolute; top:' + qtop + 'px; left:' + qleft + 'px; width:' + qwidth + 'px; height:' + qheight + 'px;" title="' + title + '">' + '<div id="' + id + 'lock" class="iconLock"></div>' + '<p id="' + id + '_title">' + titlePrivate + '</p>' + '</div>';
    ia.push(id);
    ib[id] = (ia.length >= 1) ? (ia.length - 1) : 0;
    icn.push((hstart - hstart) * finahour);
    ics.push(((hstart + hinaday) - (parseInt(hstart) + parseInt((hend - hstart)))) * finahour);
    icw.push(vcolumn);
    ice.push(eval((dateArray.length - 1) - vcolumn));
    if (initDone == true) {
        YAHOO.example.DDApp.init();
        hideDialogs();
    }
}

function createEventDay(id, date, time, hours, colour, title, location, notes, lockvar, privated, eventfor,rsvpStatus) {
    if(rsvpStatus == undefined){
      rsvpStatus = 1;
    }
    if (debugTitles) debug("createEventDay");
    saveStop();
    if (!lockvar) var lockvar = "unlocked";
    var vcolumn = 0;
    if (eventfor) {
        for (var vc = 0; vc < dateArray.length; vc++) {
            if (dateArray[vc].split('|')[0] == trim(eventfor)) {
                vcolumn = vc;
                break;
            }
            if (dateArray[vc].split('|')[1] == trim(eventfor)) {
                vcolumn = vc;
                break;
            }
        }
    }
    var qtop = ((dHeight * ((time - hstart) * finahour)) + (calY + dayTitle));
    var qleft = (((dWidth * vcolumn) + dPadLeft) + calX);
    var qwidth = (dWidth - dPadLeft);
    var qheight = (dHeight * (hours * finahour));
    var colourLock;
    var titleColour;
    if(rsvpStatus == '1') {
      colourLock = "e"+colour;
      titleColour = '';
    } else if(rsvpStatus =='3') {
      colourLock = "ePending";
      titleColour = "e"+colour;;
    }
    
    var titlePrivate = (privated && (allowEdit == false || lockvar == "locked")) ? "Private Event" : title;
    document.getElementById("newness").innerHTML += '<div id="' + id + '" class="iEvent ' + colourLock + ' ' + lockvar + '" onmousedown="eventDrag(this.id);" onmouseup="eventMove(this.id)" style="position:absolute; top:' + qtop + 'px; left:' + qleft + 'px; width:' + qwidth + 'px; height:' + qheight + 'px;" title="' + title + '">' + '<div id="' + id + 'lock" class="iconLock"></div>' + '<p class="'+titleColour+'" id="' + id + '_title">' + titlePrivate + '</p>' + ((rsvpStatus == '1') ? '<div id="' + id + 'resize" class="eventResize"></div>' : '') + '</div>';
    ia.push(id);
    ib[id] = (ia.length >= 1) ? (ia.length - 1) : 0;
    icn.push((time - hstart) * finahour);
    ics.push(((hstart + hinaday) - (parseInt(time) + parseInt(hours))) * finahour);
    icw.push(vcolumn);
    ice.push(eval((dateArray.length - 1) - vcolumn));
    if (initDone == true) {
        YAHOO.example.DDApp.init();
        hideDialogs();
    }
}


function hideDialogs() {
    if (debugTitles) debug("hideDialogs");
    for (var dd = 0; dd < da.length; dd++) {
        document.getElementById(da[dd]).style.display = "none";
    }
    document.getElementById("event").style.display = "none";
    document.getElementById("event").style.height = "1px";
    document.body.focus();
}


function eventInit() {
    if (debugTitles) debug("eventInit");
    if (view == 'week') {
        for (var de = 0; de < dEvent.length; de++) {
            createEventWeek(dEvent[de][0], dEvent[de][1], dEvent[de][2], dEvent[de][3], dEvent[de][4], dEvent[de][5], dEvent[de][6], dEvent[de][7], dEvent[de][8], dEvent[de][10],dEvent[de][12],dEvent[de][13],dEvent[de][14],dEvent[de][15]);
            if (de == (dEvent.length - 1)) {
                initDone = true;
            }
        }
    } else {
        for (var de = 0; de < dEvent.length; de++) {
            var attList = new Array();
            attList = dEvent[de][11].split(';');
            for (var a = 0; a < attList.length; a++) {
              var eveFor = attList[a].split('~')[0];
              var attRSVP = attList[a].split('~')[1];
                createEventDay(dEvent[de][0], dEvent[de][1], dEvent[de][2], dEvent[de][3], dEvent[de][4], dEvent[de][5], dEvent[de][6], dEvent[de][7], dEvent[de][8], dEvent[de][10], eveFor,attRSVP);
            }
            if (de == (dEvent.length - 1)) {
                initDone = true;
            }
        }
    }
}

function holidayInit () {
	if (debugTitles) debug("holidayInit");
  if (view == 'week') {
    for (var de = 0; de < dHolidays.length; de++) {
      createHolidayWeek(dHolidays[de][0], dHolidays[de][1], dHolidays[de][2], dHolidays[de][3], dHolidays[de][4], dHolidays[de][5], dHolidays[de][6]);
    }
  }
}

function duplicateEvent(de) {
    if (debugTitles) debug("duplicateEvent");
    saveStart();
    hideDialogs();
    var did = dEvent[de][0];
    var ddate = dEvent[de][1];
    var dtime = dEvent[de][2];
    var dhours = dEvent[de][3];
    if (allowAdd) {
        createDuplicateOnServer(did, dtime, dhours);
    } else {
        rash("You do not have the sufficient privileges to ADD events on this calendar.");
    }
}

function updateEventRSVP(de,status) {
  if (debugTitles) debug("updateEventRSVP");
    hideDialogs();
    var idToUpdate = dEvent[de][0];
    switch (status) {
      case 'decline':
        xupdateEventRSVP(idToUpdate,'0');
        document.getElementById(idToUpdate).style.display = "none";
        var spliceIndex = parseInt(de);
        dEvent.splice(spliceIndex, 1);
        ia.splice(spliceIndex, 1);
        break;
      case 'accept':
        var colourCode = 'e'+dEvent[de][4];
        $("#"+idToUpdate).removeClass().addClass('iEvent '+colourCode);
        dEvent[de][15] = 1;
        xupdateEventRSVP(idToUpdate,'1');
        break;
      case 'tentative':
        $("#"+idToUpdate).removeClass().addClass('iEvent eTentative');
        dEvent[de][15] = 2;
        xupdateEventRSVP(idToUpdate,'2');
        break;
      default:
        alert('something is wrong!!');
    }
    

}
function deleteEvent(de,recdel) {
    if (debugTitles) debug("eventDelete");
    hideDialogs();
    var idToDelete = dEvent[de][0];
    if(recdel != undefined){
      document.getElementById("reccursiveSeqDel").style.display = "none";
      if(recdel == 'one'){
        xdeleteEvent(idToDelete);
        document.getElementById(idToDelete).style.display = "none";
        var spliceIndex = parseInt(de);
        dEvent.splice(spliceIndex, 1);
        ia.splice(spliceIndex, 1);
      }
      if(recdel == 'all'){ 
        xdeleteEvent(idToDelete,'yes');
      }
      document.body.focus();
    } else {
    if(dEvent[de][11]!= undefined && dEvent[de][11] == true) {
    id("crud-delete-this").data = de ;
    id("crud-delete-all").data =  de ;
            id("reccursiveSeqDel").style.top = (tempY - 100) + "px";;
            id("reccursiveSeqDel").style.left = (tempX - 185) + "px";
            document.getElementById("reccursiveSeqDel").style.display = "block";
      } else {
        xdeleteEvent(idToDelete);
        document.getElementById(idToDelete).style.display = "none";
        var spliceIndex = parseInt(de);
        dEvent.splice(spliceIndex, 1);
        ia.splice(spliceIndex, 1);
      }
    }
}


function pipeBreak(s) {
    if (debugTitles) debug("pipeBreaks(" + s + ")");
    var x_str = String(s);
    var ispipe = (x_str.indexOf("|") != -1) ? true : false;
    if (ispipe == true) {
        var x_arr = x_str.split("|");
        var noteStr = "";
        for (var i = 0; i < x_arr.length; i++) {
            noteStr += x_arr[i] + "\r\n";
        }
        return noteStr;
    } else {
        return x_str;
    }
}
YAHOO.example.DDResize = function (panelElId, handleElId, sGroup, config) {
    if (panelElId) {
        this.init(panelElId, sGroup, config);
        this.handleElId = handleElId;
        this.setHandleElId(handleElId);
        this.logger = this.logger || YAHOO;
    }
};
YAHOO.extend(YAHOO.example.DDResize, YAHOO.util.DragDrop);
YAHOO.example.DDResize.prototype.onMouseDown = function (e) {
    var de;
    for (var i = 0; i < dEvent.length; i++) {
        if (dEvent[i][0] == this.id) {
            de = i;
            break;
        }
    }
    if (!de || !dEvent[de][8]) {
        var lock = "unlocked";
    } else {
        var lock = String(dEvent[de][8]);
    }
    if (saving == false && lock != "locked") {
        eventResizing = true;
        var panel = this.getEl();
        this.startHeight = panel.offsetHeight;
        this.startPos = [YAHOO.util.Event.getPageX(e), YAHOO.util.Event.getPageY(e)];
    }
};
YAHOO.example.DDResize.prototype.onDrag = function (e) {
    var de;
    for (var i = 0; i < dEvent.length; i++) {
        if (dEvent[i][0] == this.id) {
            de = i;
            break;
        }
    }
    if (!de || !dEvent[de][8]) {
        var lock = "unlocked";
    } else {
        var lock = String(dEvent[de][8]);
    }
    if (saving == false && lock != "locked") {
        var newPos = [YAHOO.util.Event.getPageX(e), YAHOO.util.Event.getPageY(e)];
        var offsetX = newPos[0] - this.startPos[0];
        var offsetY = newPos[1] - this.startPos[1];
        var newHeight = Math.max(this.startHeight + offsetY, 10);
        var panel = this.getEl();
        var pTop = String(panel.style.top);
        pTop = parseInt(pTop.substr(0, pTop.length - 2));
        var pHeight;
        if (Math.floor(newHeight / dHeight) >= 1) {
            if (newPos[1] < (calY + calHeight)) {
                pHeight = (Math.floor(newHeight / dHeight) * dHeight) + "px";
            } else {
                pHeight = (Math.floor(((calY + calHeight + dayTitle) - pTop) / dHeight) * dHeight) + "px";
            }
        } else {
            pHeight = (dHeight + "px");
        }
        panel.style.height = pHeight;
    }
};
YAHOO.example.DDResize.prototype.onMouseUp = function (e) {
    var de;
    for (var i = 0; i < dEvent.length; i++) {
        if (dEvent[i][0] == this.id) {
            de = i;
            break;
        }
    }
    if (!de || !dEvent[de][8]) {
        var lock = "unlocked";
    } else {
        var lock = String(dEvent[de][8]);
    }
    if (saving == false && lock != "locked") {
        var newPos = [YAHOO.util.Event.getPageX(e), YAHOO.util.Event.getPageY(e)];
        var offsetY = newPos[1] - this.startPos[1];
        var newHeight = Math.max(this.startHeight + offsetY, 10);
        var panel = this.getEl();
        var pTop = String(panel.style.top);
        pTop = parseInt(pTop.substr(0, pTop.length - 2));
        var pHeight;
        if (Math.floor(newHeight / dHeight) >= 1) {
            if (newPos[1] < (calY + calHeight)) {
                pHeight = (Math.floor(newHeight / dHeight) * dHeight) + "px";
            } else {
                pHeight = (Math.floor(((calY + calHeight + dayTitle) - pTop) / dHeight) * dHeight) + "px";
            }
        } else {
            pHeight = (dHeight + "px");
        }
        panel.style.height = pHeight;
        eventResizing = false;
        eventResized(this.id);
    }
}


function eventResized(x) {
    if (debugTitles) debug("eventResized");
    var vnt = ib[x];
    var vntid = document.getElementById(x);
    var vtime = vntid.style.top;
    vtime = parseFloat(vtime.substr(0, vtime.length - 2));
    vtime = (((vtime - (calY + dayTitle)) / dHeight) / finahour) + hstart;
    var vhours = vntid.style.height;
    vhours = parseFloat(vhours.substr(0, vhours.length - 2));
    vhours = ((vhours / dHeight) / finahour);
    var vdate = dEvent[plar(x, "dEvent", 0)][1];
    var vcolumn = vdate.split("-")[2];
    for (var vc = 0; vc <= dateArray.length; vc++) {
        if (parseInt(dateArray[vc]) == parseInt(vcolumn)) {
            vcolumn = vc;
            break;
        }
    }
    var saveNorth = icn[vnt];
    var saveSouth = ics[vnt];
    var saveWest = icw[vnt];
    var saveEast = ice[vnt];
    icn[vnt] = ((vtime - hstart) * finahour);
    ics[vnt] = (((hstart + hinaday) - (vtime + vhours)) * finahour);
    icw[vnt] = (vcolumn);
    ice[vnt] = (eval((dateArray.length - 1) - vcolumn));
    updateEventTimes(x, vdate, vtime, vhours);
    dEvent[vnt][3] = vhours;
    YAHOO.example.DDApp.init();
    saveStart(x);
}
document.defaultAction = true;

function setEvents() {
    var eventHandler = detectEvent;
    document['onkeyup'] = eventHandler;
}


function detectEvent(e) {
    var evt = e || window.event;
    if (evt.type == "keyup" && evt.keyCode == 27) {
        hideDialogs();
    }
    return document.defaultAction;
}
window.onload = setEvents();

function eventTools(de) {
    if (debugTitles) debug("eventTools");
    if (de == 0) {
        var lock = String(dEvent[de][8]);
    }
    if (!dEvent[de][8] && !lock) {
        var lock = "unlocked";
    } else {
        var lock = String(dEvent[de][8]);
    }
    id("toolEdit").style.display = (allowEdit) ? "block" : "none";
    id("toolDelete").style.display = (allowEdit) ? "block" : "none";
    id("toolDuplicate").style.display = (allowAdd) ? "block" : "none";
    if (!calLocked && lock != "locked") {
        id("toolLocked").style.display = "none";
        id("toolUnlocked").style.display = "block";
    } else {
        id("toolUnlocked").style.display = "none";
        id("toolUnlocked").style.display = "block";
    }
    id("toolboxId").value = dEvent[de][0];
    id("toolEdit").href = "javascript:editEvent(" + de + ");";
    id("toolDuplicate").href = "javascript:duplicateEvent(" + de + ");";
    id("toolDelete").href = "javascript:deleteEvent(" + de + ");";
    id("eventToolbox").style.top = (tempY - 30) + "px";
    id("eventToolbox").style.left = (tempX - 60) + "px";
    id("eventToolbox").style.display = "block";
}


function eventMoveto(id, date, time, duration) {
    if (debugTitles) debug("eventMoveto");
    var vnt = ib[id];
    var vntid = document.getElementById(id);
    var vcolumn = parseFloat(date.substr(date.length - 2, date.length));
    for (var vc = 0; vc <= dateArray.length; vc++) {
        if (parseFloat(dateArray[vc]) == vcolumn) {
            vcolumn = vc;
            break;
        }
    }
    var qtop = ((dHeight * ((time - hstart) * finahour)) + (calY + dayTitle));
    var qleft = (((dWidth * vcolumn) + dPadLeft) + calX);
    var qwidth = (dWidth - dPadLeft);
    var qheight = (dHeight * (duration * finahour));
    document.getElementById(id).style.top = qtop + "px";
    document.getElementById(id).style.left = qleft + "px";
    document.getElementById(id).style.width = qwidth + "px";
    document.getElementById(id).style.height = qheight + "px";
    if (document.getElementById(id + "date") != null) {
        document.getElementById(id + "date").innerHTML = date
    };
    if (document.getElementById(id + "time") != null) {
        document.getElementById(id + "time").innerHTML = time
    };
    var saveNorth = icn[vnt];
    var saveSouth = ics[vnt];
    var saveWest = icw[vnt];
    var saveEast = ice[vnt];
    icn[vnt] = ((time - hstart) * finahour);
    ics[vnt] = (((hstart + hinaday) - (time + duration)) * finahour);
    icw[vnt] = (vcolumn);
    ice[vnt] = (eval((dateArray.length - 1) - vcolumn));
    YAHOO.example.DDApp.init();
}


function fuzzyDuration(x) {
    if (debugTitles) debug("fuzzyDuration");
    var x_arr, x_txt, x_hour;
    var x_str = String(x);
    for (var tt = 0; tt < x_str.length; tt++) {
        if (String(x_str).charAt(tt) == ".") {
            x_arr = x_str.split(".");
            if (x_arr[1] == "5") x_arr[1] = "30";
            if (x_arr[1] == "25") x_arr[1] = "15";
            if (x_arr[1] == "75") x_arr[1] = "45";
            x_hour = (x_arr[0] == 1) ? "hour" : "hours";
            x_txt = x_arr[0] + String(x_hour) + ", " + x_arr[1] + "min";
            break;
        } else {
            x_hour = (x_str == 1) ? "hour" : "hours";
            x_txt = x_str + String(x_hour);
        }
    }
    return x_txt;
}


function dayView(y, m, d) {
    if (debugTitles) debug("dayView");
    window.location = pageurl + '/' + y + '/day/' + leadingZero(m) + '/' + leadingZero(d) + '?' + getString;
}



function lockThis(y, m, d, col) {
    /*functionality under development*/
    vdate = y + '-' + m + '-' + d;
    var answer = confirm("Sure, you want to Log This day In System?")
    if (answer) {
        $.ajax({
            type: "POST",
            url:  "search/ajax2/logDayOnServer/?" + getString,
            data: "vdate=" + vdate,
            success: function (msg) {
              eval('var result='+msg); //Parsing json reply
              var message = result[0].message; //fatching message
              var remainingDays = result[1].days; // fatching unlogged day flag
                if (message == 'logged') {
                    $('#but_' + col).attr('title', 'This day is Already Logged.');
                    $('#but_' + col).attr('class', 'logged');
                    $('#but_' + col).removeAttr('onclick');
                    loggedDayArray[loggedDayArray.length] = d;
                    for (i = 0; i < (hinaday * finahour); i++) {
                        $('#h' + col + i).removeAttr('onclick');
                        $('#h' + col + i).removeAttr('onmouseup');
                        $('#h' + col + i).removeAttr('onmousedown');

                    }
                    jGrowl('Succesfully Logged to System.');
                    
                    if(remainingDays == 0) { // checking to hide message
                      $("#unloggedDayMsg").html('&nbsp;');
                    }
                } else {
                    jGrowl('<b>Logging Failed!<b>');
                    // as logging is failed no need to check remaining days
                }
            }
        });
        return void(0);
    } else {
        return void(0);
    }
}


function viewWeek(y, m, w) {
    if (debugTitles) debug("dayView");
    window.location = pageurl + '/' + y + '/week/' + leadingZero(w) + '?' + getString;
}


function dayView2() {
    if (debugTitles) debug("dayView2");
    positionFix();
    if (document.getElementById('img-scroll')) {
        document.getElementById('con-index').style.position = "static";
    }
    var wv = "";
    var dateObj = new Date();
    var todayMonth = dateObj.getMonth() + 1;
    var today = dateObj.getDate();
    var toYear = dateObj.getFullYear();
    for (d = 0; d <= dateArray.length - 1; d++) {
      var loggedDay = false;
        for (dl = 0; dl <= (loggedDayArray.length - 1); dl++) {
            if (dateArray[d] == loggedDayArray[dl]) {
                loggedDay = true;
                break;
            }
        }
        var currentMonth = (dateArray[d] < dateArray[0]) ? leadingZero(parseFloat(dateMonth) + 1) : leadingZero(dateMonth);
        if (currentMonth.length > 2) {
            currentMonth = dateMonth;
        }

        if (loggedDay == true && login == true) {
            /*This are Logged days*/
            wv += "<div class=\"dayTitle\" style=\"width:" + dWidth + "px; height:" + dayTitle + "px; top:" + (calY) + "px; left:" + ((dWidth * d) + calX) + "px;\">\n\
            <p><a title=\"This day is Already Logged.\" class=\"logged\" href=\"javascript:void(0);\">&nbsp;</a> | <a href=\"javascript:viewWeek(" + dateYear + "," + dateMonth + "," + dateWeek + ");\">" + dateArray[d].split('|')[0] + "</a></p></div>";
        } else {
            wv += "<div class=\"dayTitle\" style=\"width:" + dWidth + "px; height:" + dayTitle + "px; top:" + (calY) + "px; left:" + ((dWidth * d) + calX) + "px;\"><p><a href=\"javascript:viewWeek(" + dateYear + "," + dateMonth + "," + dateWeek + ");\">" + dateArray[d].split('|')[0] + "</a></p></div>";
        }
        wv += "<div id=\"cal_" + dateArray[d].split('|')[1] + "\" class=\"calDay\" onmousedown=\"entityClick(this);\" style=\"width:" + dWidth + "px;position:static; height:" + calHeight + "px; top:" + (calY + dayTitle) + "px; left:" + ((dWidth * d) + calX) + "px;\">";
        for (i = 0; i < (hinaday * finahour); i++)

        {
            if ((i % finahour) == 0)

            {
              if (loggedDay == true) {
                    wv += "<div class=\"h\" id=\"h" + d + i + "\" style=\"width:" + dWidth + "px; height:" + dHeight + "px; left:" + ((dWidth * d) + calX) + "px; top:" + ((dHeight * i) + (calY + dayTitle)) + "px;\">";
                } else {
                  wv += "<div class=\"h\" id=\"h" + d + i + "\" onclick=\"eventClick();\" onmouseup=\"eventDone();\" onmousedown=\"eventCreate('" + d + i + "');\" style=\"width:" + dWidth + "px; height:" + dHeight + "px; left:" + ((dWidth * d) + calX) + "px; top:" + ((dHeight * i) + (calY + dayTitle)) + "px;\">";
                }
                if (d == 0) {
                    wv += "<p class=\"htime\">";
                    wv += (((i / finahour) + hstart) <= 12) ? ((i / finahour) + hstart) : (((i / finahour) + hstart) - 12);
                    wv += (((i / finahour) + hstart) <= 11) ? "am" : "pm";
                    wv += "</p>";
                }
            }
            else {
              if (loggedDay == true) {
                    wv += "<div class=\"hpoint5\" id=\"h" + d + i + "\" style=\"width:" + dWidth + "px; height:" + dHeight + "px; left:" + ((dWidth * d) + calX) + "px; top:" + ((dHeight * i) + (calY + dayTitle)) + "px;\">";
                } else {
                    wv += "<div class=\"hpoint5\" id=\"h" + d + i + "\" onclick=\"eventClick();\" onmouseup=\"eventDone();\" onmousedown=\"eventCreate('" + d + i + "');\" style=\"width:" + dWidth + "px; height:" + dHeight + "px; left:" + ((dWidth * d) + calX) + "px; top:" + ((dHeight * i) + (calY + dayTitle)) + "px;\">";
                }
            }
            wv += "</div>";
        }
        wv += "</div>";
    }
    includeFunc("newness");
    document.getElementById("newness").innerHTML += wv;
    eventInit();
}


function weekView() {
    if (debugTitles) debug("weekView");
    var html = "";
    for (var d = 0; d < dateArray.length; d++) {
        html += '<div class="dayTitle" style="width:' + dWidth + 'px; height:' + dayTitle + 'px; top:' + calY + 'px; left:' + ((dWidth * d) + calX) + 'px;"><p><a href="javascript:dayView(' + dateYear + ',' + dateMonth + ',' + dateArray[d] + ');">' + String(days[d]).substr(0, 3) + ', ' + dateArray[d] + '</a></p></div>';
        html += '<div id="cal' + days[d] + '" class="calDay" style="width:' + dWidth + 'px; height:' + calHeight + 'px; top:' + (calY + dayTitle) + 'px; left:' + ((dWidth * d) + calX) + 'px;"></div>';
        for (i = 0; i < (hinaday * finahour); i++) {
            if ((i % finahour) == 0) {
                html += '<div class="h" id="h' + d.i + '" onmouseup="eventDone();" onmousedown="eventCreate(' + d + i + ');" style="width:' + dWidth + 'px;height:' + dHeight + 'px;left:' + ((dWidth * d) + calX) + 'px;top:' + ((dHeight * i) + (calY + dayTitle)) + 'px;">';
                if (d == 0) {
                    html += '<p class="htime">';
                    html += ((i / finahour) + hstart);
                    html += '</p>';
                }
            } else {
                html += '<div class="hpoint5" id="h' + d.i + '" onmouseup="eventDone();" onmousedown="eventCreate(' + d + i + ');" style="width:' + dWidth + 'px;height:' + dHeight + 'px;left:' + ((dWidth * d) + calX) + 'px;top:' + ((dHeight * i) + (calY + dayTitle)) + 'px;">';
            }
            html += '</div>';
        }
    }
    document.getElementById("newness").innerHTML += html;
    eventInit();
}


function weekView2() {
    if (debugTitles) debug("weekView2");
    positionFix();
    if (document.getElementById('img-scroll')) {
        document.getElementById('con-index').style.position = "static";
    }
    var wv = "";
    var dateObj = new Date();
    var todayMonth = dateObj.getMonth() + 1;
    var today = dateObj.getDate();
    var toYear = dateObj.getFullYear();
    var calStart = new Date(calStartDate);

    for (d = 0; d <= (days.length - 1); d++) {
        var loggedDay = false;
        for (dl = 0; dl <= (loggedDayArray.length - 1); dl++) {
            if (dateArray[d] == loggedDayArray[dl]) {
                loggedDay = true;
                break;
            }
        }
        var currentMonth = (dateArray[d] < dateArray[0]) ? ((parseFloat(dateMonth) == 12)? 01 : leadingZero(parseFloat(dateMonth) + 1)) : leadingZero(dateMonth);
        var curDateYear = (dateArray[d] < dateArray[0]) ? ((parseFloat(dateMonth) == 12)? parseFloat(dateYear) + 1 : dateYear) : dateYear;
        if (currentMonth.length > 2) {
            currentMonth = dateMonth;
        }
        var curentEventDate = new Date(curDateYear, currentMonth - 1, dateArray[d]);
        if (loggedDay == true && login == true  && displayCalendarIcon == true) {
            /*This are Logged days*/
            wv += "<div class=\"dayTitle\" style=\"width:" + dWidth + "px; height:" + dayTitle + "px; top:" + (calY) + "px; left:" + ((dWidth * d) + calX) + "px;\">\n\
            <p><a title=\"This day is Already Logged.\" class=\"logged\" href=\"javascript:void(0);\">&nbsp;</a> | <a href=\"javascript:dayView(" + curDateYear + "," + currentMonth + "," + dateArray[d] + ");\">" + String(days[d]).substr(0, 3) + ", " + dateArray[d] + "</a></p></div>";
            wv += "<div id=\"cal" + days[d] + "\" class=\"calDay\" style=\"width:" + dWidth + "px; height:" + calHeight + "px; top:" + (calY + dayTitle) + "px; left:" + ((dWidth * d) + calX) + "px;\"></div>";
        } else if (curentEventDate < dateObj && login == true && curentEventDate > calStart && calStartDate !=false && displayCalendarIcon == true) {
            /*This are Un-Logged days*/
            wv += "<div class=\"dayTitle\" style=\"width:" + dWidth + "px; height:" + dayTitle + "px; top:" + (calY) + "px; left:" + ((dWidth * d) + calX) + "px;\">\n\
          <p><a id=\"but_" + d + "\" title=\"Log This Day to System..\" class=\"un-logged\" href=\"javascript:void(0);\" onclick=\"lockThis(" + curDateYear + "," + currentMonth + "," + dateArray[d] + "," + d + ");\">&nbsp;</a> | <a href=\"javascript:dayView(" + curDateYear + "," + currentMonth + "," + dateArray[d] + ");\">" + String(days[d]).substr(0, 3) + ", " + dateArray[d] + "</a></p></div>";
            wv += "<div id=\"cal" + days[d] + "\" class=\"calDay\" style=\"width:" + dWidth + "px; height:" + calHeight + "px; top:" + (calY + dayTitle) + "px; left:" + ((dWidth * d) + calX) + "px;\"></div>";
        } else {
            /*This are Future days*/
            wv += "<div class=\"dayTitle\" style=\"width:" + dWidth + "px; height:" + dayTitle + "px; top:" + (calY) + "px; left:" + ((dWidth * d) + calX) + "px;\"><p><a href=\"javascript:dayView(" + curDateYear + "," + currentMonth + "," + dateArray[d] + ");\">" + String(days[d]).substr(0, 3) + ", " + dateArray[d] + "</a></p></div>";
            wv += "<div id=\"cal" + days[d] + "\" class=\"calDay\" style=\"width:" + dWidth + "px; height:" + calHeight + "px; top:" + (calY + dayTitle) + "px; left:" + ((dWidth * d) + calX) + "px;\"></div>";
        }

        for (i = 0; i < (hinaday * finahour); i++) {
            if ((i % finahour) == 0)

            {
                if (loggedDay == true) {
                    wv += "<div class=\"h\" id=\"h" + d + i + "\" style=\"width:" + dWidth + "px; height:" + dHeight + "px; left:" + ((dWidth * d) + calX) + "px; top:" + ((dHeight * i) + (calY + dayTitle)) + "px;\">";
                } else {
                    wv += "<div class=\"h\" id=\"h" + d + i + "\" onclick=\"eventClick();\" onmouseup=\"eventDone();\" onmousedown=\"eventCreate('" + d + i + "');\" style=\"width:" + dWidth + "px; height:" + dHeight + "px; left:" + ((dWidth * d) + calX) + "px; top:" + ((dHeight * i) + (calY + dayTitle)) + "px;\">";
                }
                if (d == 0) {
                    wv += "<p class=\"htime\">";
                    wv += (((i / finahour) + hstart) <= 12) ? ((i / finahour) + hstart) : (((i / finahour) + hstart) - 12);
                    wv += (((i / finahour) + hstart) <= 11) ? "am" : "pm";
                    wv += "</p>";
                }
            }
            else {
                if (loggedDay == true) {
                    wv += "<div class=\"hpoint5\" id=\"h" + d + i + "\" style=\"width:" + dWidth + "px; height:" + dHeight + "px; left:" + ((dWidth * d) + calX) + "px; top:" + ((dHeight * i) + (calY + dayTitle)) + "px;\">";
                } else {
                    wv += "<div class=\"hpoint5\" id=\"h" + d + i + "\" onclick=\"eventClick();\" onmouseup=\"eventDone();\" onmousedown=\"eventCreate('" + d + i + "');\" style=\"width:" + dWidth + "px; height:" + dHeight + "px; left:" + ((dWidth * d) + calX) + "px; top:" + ((dHeight * i) + (calY + dayTitle)) + "px;\">";
                }

            }
            wv += "</div>";
        }
    }
    includeFunc("newness");
    document.getElementById("newness").innerHTML += wv;
    eventInit();
    holidayInit();
}
var attArray = new Array();
var orig = new Array();

function atArray(str) {
    if (debugTitles) debug("atArray");
    attArray = new Array();
    if (str != '' && String(str).indexOf('|') != -1) {
        if (String(str).indexOf('||') != -1) {
            att = String(str).split('||');
            for (var i = 0; i < att.length; i++) {
                attArray[i] = String(att[i]).split('|');
            }
        } else {
            attArray[0] = String(str).split('|');
        }
    }
    attRedraw();
}


function attAdd(x, y) {
    if (debugTitles) debug("attAdd");
    var argLength = arguments.length;
    if (String(x) == 'attSelect') {
        var obj = id(x);
        var de = obj.value;
        var attType = String(obj.options[obj.selectedIndex].id).split('_');
        var anyDuplicates = attDuplicate(obj.value);
    } else {
        var de = arguments[0];
        var dePlace = plar(de, 'orig', 0);
        orig[dePlace][2] = true;
        var anyDuplicates = false;
    }
    if (String(x) == 'attSelect' && (id(x).value == 'null1' || id(x).value == 'null2')) {
        obj.selectedIndex = 0;
    } else {
        var attList = id('attendees');
        if (anyDuplicates == false) {
            var ahref = document.createElement('a');
            ahref.innerHTML = "x";
            ahref.href = (argLength == 1) ? "javascript:attRemove(" + de + ");" : "javascript:attRemove(" + de + ", 'This is a second argument for attendees not in the select.');";
            if (String(x) == 'attSelect') {
                if (String(id(x).options[id(x).selectedIndex].id).indexOf("orig") != -1) {
                    var dePlace = plar(String(de), 'orig', 0);
                    var newAttText = document.createTextNode(orig[dePlace][1]);
                } else {
                    var dePlace = plar(String(de), 'attArray', 0);
                    var newAttText = document.createTextNode(attArray[dePlace][1]);
                }
            } else {
                var dePlace = plar(String(de), 'orig', 0);
                var newAttText = document.createTextNode(orig[dePlace][1]);
            }
            var newAtt = document.createElement("li");
            newAtt.id = "attLi_" + de;
            newAtt.className = "attendee";
            newAtt.appendChild(ahref);
            newAtt.appendChild(newAttText);
            attList.appendChild(newAtt);
        }
    }
    if (argLength == 1) obj.selectedIndex = 0;
}


function attDuplicate(num) {
    if (debugTitles) debug("attDuplicate");
    for (var n = 0; n < orig.length; n++) {
        if (String(orig[n][0]) == String(num) && eval(orig[n][2]) == true) {
            return true;
            break;
        }
    }
    return false;
}


function attOptionsPre() {
    if (debugTitles) debug("attOptionsPre");
    var pre = '';
    if (attArray && attArray.length >= 1) {
        pre += '<option value="null1" selected="selected">' + attArray.length + ' results returned</option>';
    } else {
        pre += '<option value="null1">Please use search field above</option>';
    }
    return pre;
}


function attOptions(str) {
    if (debugTitles) debug("attOptions");
    var options = "";
    if (attArray && attArray.length >= 1) {
        for (var a = 0; a < attArray.length; a++) {
            options += '<option id="attOption_' + attArray[a][0] + '" value="' + attArray[a][0] + '">' + attArray[a][1] + '</option>';
        }
    }
    return options;
}


function attToggle(de, orig) {
    if (debugTitles) debug("attToggle");
    if (id("attOption_" + de) && id("attOption_" + de).style.display == 'none') {
        id("attOption_" + de).style.display = 'block';
    } else if (id("attOption_" + de)) {
        id("attOption_" + de).style.display = 'none';
    }
    if (id("origOption_" + de) && id("origOption_" + de).style.display == 'none') {
        id("origOption_" + de).style.display = 'block';
    } else if (id("origOption_" + de)) {
        id("origOption_" + de).style.display = 'none';
    }
}


function attHide(de, orig) {
    if (debugTitles) debug("attHide");
    if (id("attOption_" + de)) {
        id("attOption_" + de).style.display = 'none';
    }
    if (id("origOption_" + de)) {
        id("origOption_" + de).style.display = 'none';
    }
}


function attRemove(de, heh) {
    if (debugTitles) debug("attRemove");
    var attList = id('attendees');
    attList.removeChild(id("attLi_" + de));
    if (arguments.length == 1) {} else {
        attRedraw(de, false);
    }
}


function attRedraw(de, bool) {
    if (debugTitles) debug("attRedraw");
    if (de) {
        var dePlace = plar(de, 'orig', 0);
        orig[dePlace][2] = eval(bool);
    }
    var attSel = id("attSelect");
    attSel.innerHTML = "";
    attSel.innerHTML += attOptionsPre();
    var anyOrigs = false;
    for (var h = 0; h < orig.length; h++) {
        if (orig[h][2] == false) {
            anyOrigs = true;
            attSel.innerHTML += '<option class="orig" id="origOption_' + orig[h][0] + '" value="' + orig[h][0] + '">' + orig[h][1] + '</option>';
        }
        if (h == (orig.length - 1) && anyOrigs == true) {
            attSel.innerHTML += '<option value="null2"> </option>';
        }
    }
    attSel.innerHTML += attOptions();
}


function attEdit(str) {
    if (debugTitles) debug("attEdit");
    attClear();
    var att = new Array();
    if (str != '' && String(str).indexOf('|') != -1) {
        if (String(str).indexOf('||') != -1) {
            att = String(str).split('||');
            for (var i = 0; i < att.length; i++) {
                orig[i] = String(att[i]).split('|');
                orig[i][orig[i].length] = true;
                attAdd(orig[i][0], orig[i][1]);
            }
        } else {
            orig[0] = String(str).split('|');
            orig[0][orig[0].length] = true;
            attAdd(orig[0][0], orig[0][1]);
        }
    }
}


function attClear() {
    if (debugTitles) debug("attClear");
    id('attText').value = "";
    orig = new Array();
    id('attUl').innerHTML = '<ul id="attendees"></ul>';
}


function attCheckDuplicate(str) {
    if (debugTitles) debug("attCheckDuplicate");
    var attList = id('attendees');
    var li = attList.getElementsByTagName('li');
    var attSel = id('attSelect');
    var options = attSel.getElementsByTagName('option');
    for (var l = 0; l < li.length; l++) {
        var liText = String(li[l].innerHTML);
        var caps = (liText.indexOf('</A>') != -1) ? true : false;
        liText = (caps == true) ? liText.substr(parseFloat(liText.indexOf('</A>')) + 4, liText.length) : liText.substr(parseFloat(liText.indexOf('</a>')) + 4, liText.length);
        for (var o = 0; o < options.length; o++) {
            if (liText == options[o].innerHTML) {
                attHide(String(options[o].id).split('_')[1]);
            }
        }
    }
}


function attSave() {
    if (debugTitles) debug("attSave");
    var attList = id('attendees');
    var li = attList.getElementsByTagName('li');
    var str = "";
    for (var s = 0; s < li.length; s++) {
        var liSplit = String(li[s].innerHTML);
        var caps = (liSplit.indexOf('</A>') != -1) ? true : false;
        liSplit = (caps == true) ? liSplit.substr(parseFloat(liSplit.indexOf('</A>')) + 4, liSplit.length) : liSplit.substr(parseFloat(liSplit.indexOf('</a>')) + 4, liSplit.length);
        str += String(li[s].id).split("_")[1];
        str += "|";
        str += liSplit;
        if (s < (li.length - 1)) str += "||";
    }
    return str;
}


function isArray(obj) {
    if (debugTitles) debug("isArray");
    return (typeof(obj.length) == "undefined") ? false : true;
}


function plar(de, arr, place) {
    if (debugTitles) debug("plar");
    if (isArray(eval(arr + '[0]'))) {
        for (var d = 0; d < eval(arr + '.length'); d++) {
            if (place || place == 0) {
                if (eval(arr + '[' + d + '][' + parseFloat(place) + ']') == de) {
                    return d;
                    break;
                }
            } else {
                if (eval(arr + '[' + d + ']') == de) {
                    return d;
                    break;
                }
            }
        }
    } else {
        if (place || place == 0) {
            if (eval(arr + '[0][' + parseFloat(place) + ']') == de) {
                return 0;
            }
        } else {
            if (eval(arr + '[0]') == de) {
                return 0;
            }
        }
    }
}


function timeSel(x, t) {
    if (debugTitles) debug("timeSel");
    var rtime;
    var x_str = String(x);
    if (t == "h") {
        if (String(x_str).indexOf(".") != -1) {
            rtime = x_str.split(".")[0];
        } else {
            rtime = x_str;
        }
    } else if (t == "m") {
        if (String(x_str).indexOf(".") != -1) {
            rtime = x_str.split(".")[1];
        } else {
            rtime = 0;
        }
    }
    return rtime;
}


function hourSel(x, t) {
    if (debugTitles) debug("hourSel");
    var rhours;
    var x_str = String(x);
    for (var hh = 0; hh < x_str.length; hh++) {
        if (t == "h") {
            if (String(x_str).charAt(hh) == ".") {
                rhours = x_str.split(".")[0];
                break;
            } else {
                rhours = x_str;
            }
        } else if (t == "m") {
            if (String(x_str).charAt(hh) == ".") {
                rhours = x_str.split(".")[1];
                break;
            } else {
                rhours = 0;
            }
        }
    }
    return rhours;
}


function durationCheck(ide) {
    if (debugTitles) debug("durationCheck");
    var selKind = String(ide).split("_");
    if (selKind[1] == "Min") {
        if (id(ide).value == 0 && id(selKind[0] + "_Hour").value == 0) id(selKind[0] + "_Hour").value = 1;
    } else if (selKind[1] == "Hour") {
        if (id(ide).value == 0 && id(selKind[0] + "_Min").value == 0) id(selKind[0] + "_Min").value = 25;
    }
}


function getLatestTime(x) {
    if (debugTitles) debug("getLatestTime");
    var xarr = x.split("_");
    var li = id("mul_" + xarr[1]).getElementsByTagName('li');
    if (li.length > 1) {
        var li_latest = li[li.length - 2].id;
        var li_latestTime = parseFloat(dEvent[idPlace(li_latest)][2]);
        var li_latestHours = parseFloat(dEvent[idPlace(li_latest)][3]);
        return eval(li_latestTime + li_latestHours);
    } else {
        return 8;
    }
}
var attFocus = false;

function formSubmit(e) {
    if (debugTitles) debug("formSubmit");
    if (attFocus) {
        var terms = id("attText").value;
        attendeeSearch(terms);
        return false;
    } else {
        id("editButton").click();
        return false;
    }
}


function displayEvent(de) {
    if (debugTitles) debug("displayEvent(" + de + ")");
    hideDialogs();
    toggalContent('front');
    globalDE = de;
    id("displayDE").value = de;
    var titlePrivate = (dEvent[de][10] && (allowEdit == false || dEvent[de][8] == "locked")) ? "Private Event" : dEvent[de][5];
    if (view == 'week') {
      id("reccursionStatus").style.display=(dEvent[de][11])?"block":"none";
    } else {
      id("reccursionStatus").style.display="none";
    }
    id("displayEvent").innerHTML = titlePrivate;
    id("displayLocation").innerHTML = dEvent[de][6];
    id("displayDate").innerHTML = dEvent[de][1];
    id("displayTime").innerHTML = fracTime(dEvent[de][2]) + " - " + fracTime(parseFloat(dEvent[de][2]) + parseFloat(dEvent[de][3])) + "&#160;&#160; (" + dEvent[de][3] + "hr)";
    id("displayNotes").innerHTML = pipeBreak(dEvent[de][7]);
    if(calendarEntityCreation) {
      if(dEvent[de][13] == true) {
        checkForEventEntityPage(dEvent[de][0]);
      } else {
        id("displayCalendarEntityCreationURL").innerHTML = 'None';
      }
    }
 
    checkForAttachmentsView(dEvent[de][0]);
    if(allowEdit){
      id('attSelect').selectedIndex = 0;
      attEdit(String(dEvent[de][9]));
    } else {
      dattEdit(String(dEvent[de][9]));
    }
    Now = new Date(dEvent[de][1].split("-")[0],dEvent[de][1].split("-")[1],dEvent[de][1].split("-")[2]);
    Now.setYear(dEvent[de][1].split("-")[0]);
    Now.setMonth((dEvent[de][1].split("-")[1])-1);
    Now.setDate(dEvent[de][1].split("-")[2]);

    Now_Y = Now.getFullYear();

    if((dEvent[de][1].split("-")[1])==1 && dateWeek>5)
      Now_Y--;
    
    Week = dateWeek;
    /*old method which i droped imidiatlly*/
    var loggedDay = false;
    for(dl=0;dl<=(loggedDayArray.length-1);dl++){
      if(dEvent[de][1].split('-')[2] == loggedDayArray[dl] ){
        loggedDay = true;
        break;
      }
    }
    
    if(dEvent[de][15]=='3'){
      
      id("crudInfo").style.display="none";
      id("crudControl").style.display="none";
      id("crudInvitation").style.display="block";
    } else if(dEvent[de][15]=='0') {
      id("crud-info").innerHTML = "You are not a member of this event.";
      id("crudInfo").style.display="block";
      //id("crudControl").style.display="none";
      id("crudInvitation").style.display="none";
    } else if(dEvent[de][15]=='2') {
      id("crud-info").innerHTML = "You are tentative member of this event.";
      id("crudInfo").style.display="block";
      id("crudControl").style.display="none";
      id("crudInvitation").style.display="block";
    } else {
      id("crudInfo").style.display="none";
      id("crudInvitation").style.display="none";
      id("crudControl").style.display="block";
    }

      id("crud-accept").href = "javascript:updateEventRSVP(" + de + ",'accept');";
      id("crud-decline").href = "javascript:updateEventRSVP(" + de + ",'decline');";
      id("crud-tentative").href = "javascript:updateEventRSVP(" + de + ",'tentative');";

      id("crud-edit").href = "javascript:editEvent(" + de + ");";
      id("crud-delete").href = "javascript:deleteEvent(" + de + ");";
      id("crud-duplicate").href = "javascript:duplicateEvent(" + de + ");";
      id("crud-add").href = "business-process-administration?newTask=true&eventID=" + dEvent[de][0].split("_")[1];
      id("crud-link").href = pageurl + "/" + Now_Y + "/week/" + Week + "?linkEventToTask=true&ownerFilter=all&eventID=" + dEvent[de][0].split("_")[1] + '&entityID=' + document.getElementById('calendarDisplayThing').value;
      id("crud-reminder").href = "search/createreminder/?entID=" + dEvent[de][9] + "&eventID=" + dEvent[de][0] + "&cal=true";
      /*Part Of old event modification prevention method*/
      //if this event is a leave
      var isLeave = false;
      if(dEvent[de][16] != undefined && dEvent[de][16] != false) {
        isLeave = true;
      }
      id("leaveInfo").style.display=(isLeave)?"block":"none";
      id("crud-edit").style.display=(allowEdit&&dEvent[de][8]=="unlocked"&&!loggedDay&&!isLeave)?"block":"none";
      id("crud-delete").style.display=(allowEdit&&dEvent[de][8]=="unlocked"&&!loggedDay&&!isLeave)?"block":"none";
      id("crud-duplicate").style.display=(allowAdd&&dEvent[de][8]=="unlocked"&&!loggedDay)?"block":"none";
      id("crud-add").style.display=(allowAdd&&dEvent[de][8]=="unlocked"&&!loggedDay&&!isLeave)?"block":"none";
      id("crud-reminder").style.display=(allowAdd&&dEvent[de][8]=="unlocked"&&!loggedDay)?"block":"none";
      id("crud-link").style.display=(allowAdd&&dEvent[de][8]=="unlocked"&&!loggedDay&&!isLeave)?"block":"none";

    id("eventDisplay").style.top = (tempY - 120) + "px";
    id("eventDisplay").style.left = (tempX - 185) + "px";
    id("eventDisplay").style.display = "block";
}
function displayHoliday(de) {
    if (debugTitles) debug("displayHoliday(" + de + ")");
    hideDialogs();
    de = plar(de, 'dHolidays', 0);
    id("displayDE").value = de;
    var titlePrivate = dHolidays[de][3];
    id("displayEvent").innerHTML = titlePrivate;
    id("displayDate").innerHTML = dHolidays[de][1];
    id("displayTime").innerHTML = "Fullday "+dHolidays[de][6];
    id("displayNotes").innerHTML = pipeBreak(dHolidays[de][4]);
    id("displayAttUl").innerHTML = "Orgnization"
    id("crud-edit").style.display="none";
    id("crud-delete").style.display="none";
    id("crud-duplicate").style.display="none";
    id("crud-add").style.display="none";
    id("crud-reminder").style.display="none";
    id("crud-link").style.display="none";
    id("reccursionStatus").style.display="none";

    id("eventDisplay").style.top = (tempY - 120) + "px";
    id("eventDisplay").style.left = (tempX - 185) + "px";
    id("eventDisplay").style.display = "block";
}
var dorig;

function dattAdd(x, y) {
    if (debugTitles) debug("dattAdd");
    var argLength = arguments.length;
    var de = arguments[0];
    var dePlace = plar(de, 'dorig', 0);
    dorig[dePlace][2] = true;
    var dattList = document.getElementById('dattendees');
    var newdAttText = document.createTextNode(dorig[dePlace][1]);
    var newdAtt = document.createElement("li");
    newdAtt.id = "dattLi_" + de;
    newdAtt.className = "attendee";
    newdAtt.appendChild(newdAttText);
    dattList.appendChild(newdAtt);
}


function dattEdit(str) {
    if (debugTitles) debug("dattEdit");
    dorig = new Array();
    document.getElementById("displayAttUl").innerHTML = '<ul id="dattendees"></ul>';
    var datt = new Array();
    if (str != '' && String(str).indexOf('|') != -1) {
        if (String(str).indexOf('||') != -1) {
            datt = String(str).split('||');
            for (var i = 0; i < datt.length; i++) {
                dorig[i] = String(datt[i]).split('|');
                dorig[i][dorig[i].length] = true;
                dattAdd(dorig[i][0], dorig[i][1]);
            }
        } else {
            dorig[0] = String(str).split('|');
            dorig[0][dorig[0].length] = true;
            dattAdd(dorig[0][0], dorig[0][1]);
        }
    }
}


function positionFix() {
    if (debugTitles) debug("positionFix");
    calX = parseInt(String(findPos(document.getElementById("posfix"))).split(",")[0]);
    calY = parseInt(String(findPos(document.getElementById("posfix"))).split(",")[1]);
    calX += 35;
}


function lastResort() {
    if (debugTitles) debug("lastResort");
    if (view == 'week') {
        if (IE) {
            if (parseInt(String(findPos(document.getElementById("posfix"))).split(",")[1]) > 10) {
                weekView2();
            } else {
                window.setTimeout("lastResort()", 100);
            }
        } else {
            weekView2();
        }
    } else {
        if (IE) {
            if (parseInt(String(findPos(document.getElementById("posfix"))).split(",")[1]) > 10) {
                dayView2();
            } else {
                window.setTimeout("lastResort()", 100);
            }
        } else {
            dayView2();
        }
    }
}


function updateEventTimes(x, theDate, newY, vtime) {
    $.ajax({
        type: "POST",
        url:  "search/ajax2/updateEventTimes/",
        data: "x=" + x + "&theDate=" + theDate + "&newY=" + newY + "&vtime=" + vtime,
        success: function (msg) {
            var exploded = msg.split(',');
            if (exploded[0] == 'clash') {
                eventMoveto(exploded[1], exploded[2], exploded[3], exploded[4]);
                html = exploded[5];
            } else if(exploded[0] =='deadlineExceed') {
              eventMoveto(exploded[1], exploded[2], exploded[3], exploded[4]);
                html = "Task / Revision Deadline Exceeded!";
                rash(html);
            } else if (exploded[0] == 'sendingerror') {
                html = exploded[1];
            } else {html = exploded[1];}
            jGrowl(html);
            saveStop();
        }
    });
}


function checkForAttachments(vid) {
    $.ajax({
        type: "POST",
        url:  "search/ajax2/checkForAttachments/",
        data: "vid=" + vid,
        success: function (msg) {
            $('#eventAttachments').html(msg);
        }
    });
}

function requestDeadlineExtend(tskid) {
   var answer = confirm("Sure, you want to the request ?")
   if(answer) {
    $.ajax({
        type: "POST",
        url:  "search/ajax2/requestDeadlineExtend/",
        data: "tskID=" + tskid,
        success: function (msg) {
            jGrowl(msg);
        }
    });
   } else {
     return void(0);
   }
}

function checkForAttachmentsView(vid) {
    $.ajax({
        type: "POST",
        url:  "search/ajax2/checkForAttachmentsView/",
        data: "vid=" + vid,
        success: function (msg) {
            $('#displayEventAttachments').html(msg);
        }
    });
}

function checkForEventEntityPage(vid) {
    $.ajax({
        type: "POST",
        url:  "search/ajax2/checkForEventEntityPage/",
        data: "vid=" + vid,
        success: function (msg) {
          jsonObj = eval('(' + msg + ')');
          if(jsonObj.entityPage == "no") {
            $('#displayCalendarEntityCreationURL').html("None");
            return true;
          }
          var entityPageUrl = '' + base + 'search/entity/' + jsonObj.entityPageId + '';
          if(allowEdit) {
            var fullEntityPageUrl = '<a href="' + entityPageUrl + '" target="_blank">'+ jsonObj.entityPageTitle +'</a>';
            $('#displayCalendarEntityCreationURL').html(fullEntityPageUrl);
          } else {
            hideDialogs();
            window.open(entityPageUrl);
            return false;
          }
        }
    });
}

function editMonthEventProperties(de, id, title, location, notes, colour, attendees, date, time, duration, private1, createEntityEvent1) {
   title = title.replace(/&/g,'%26');
    $.ajax({
        type: "POST",
        url:  "search/ajax2/editMonthEventProperties/",
        data: "de=" + de + "&id=" + id + "&title=" + title + "&location=" + location + "&notes=" + notes + "&colour=" + colour + "&attendees=" + attendees + "&date=" + date + "&time=" + time + "&duration=" + duration + '&cid=' + cid + '&private=' + private1 + '&createEntityEvent=' + createEntityEvent1,
        success: function (msg) {
            if (msg == '200') {
                jGrowl('no clashes');
            } else {
                jGrowl('There are clashes. Please amend or cancel (esc).');
            }
            editSuccess(de);
        }
    });
}


function createEventOnServer(vdate, vtime, vhours, vcolour, vtitle, vlocation, vnotes, taskID, revID, createEvent, entityID, fromEvent,linkTo,reccursion,title) {
    var url;
    if (view == 'day') {
        url =  "search/ajax2/createEventOnServer/?calendars=" + entityID;
    } else {
        url =  "search/ajax2/createEventOnServer/?" + getString;
    }
    vtitle = vtitle.replace(/&/g,'%26');
    title = title.replace(/&/g,'%26');
    $.ajax({
        type: "POST",
        url: url,
        data: "vdate=" + vdate + "&vtime=" + vtime + "&vhours=" + vhours 
            + "&vcolour=" + vcolour + "&vtitle=" + vtitle + "&vlocation=" + vlocation
            + "&vnotes=" + vnotes + "&taskID=" + taskID + "&revID=" + revID
            + "&createEvent=" + createEvent + "&jointEvent="+ jointEvent + "&reccursion=" + reccursion
            + "&entityID=" + entityID + "&fromEvent=" + fromEvent + '&type=week&cid=' + cid,
        success: function (msg) {
          vtitle = title.replace(/%26/g,'&');
            var exploded = msg.split(',');
            if (exploded[0] == 'hideDialogs') {
                hideDialogs();
                html = exploded[1];
            } else if (exploded[0] == 'dPop') {
                dPop(exploded[1], vdate, vtime, vhours, vcolour, vtitle, vlocation, vnotes, exploded[2]);
                if (view == 'day') {
                    var attendies = entityID.split(',');
                    for (var a = 0; a < attendies.length; a++) {
                        createEventDay(exploded[1], vdate, vtime, vhours, vcolour, vtitle, vlocation, vnotes, null, null, attendies[a]);
                    }
                } else {
                    createEventWeek(exploded[1], vdate, vtime, vhours, vcolour, vtitle, vlocation, vnotes);
                }
            }
            if (exploded[3] == 'goToURL') {
                if(linkTo == '') { //extra exception handling
                   jGrowl('Event Created,<br/> But linking failed!');
                }
                var i = (window.location + '').indexOf('?', 0);
                if (i == -1) {
                  if(linkTo == 'task')
                    goToURL(window.location + '?linkEventToTask=true&ownerFilter=all&eventID=' + exploded[4] + '&entityID=' + exploded[5]);
                  else if(linkTo == 'rev')
                    goToURL(window.location + '?linkEventToRev=true&ownerFilter=all&eventID=' + exploded[4] + '&entityID=' + exploded[5]);
                } else {
                  if(linkTo == 'task')
                    goToURL(window.location + '&linkEventToTask=true&ownerFilter=all&eventID=' + exploded[4] + '&entityID=' + exploded[5]);
                  else if(linkTo == 'rev')
                    goToURL(window.location + '&linkEventToRev=true&ownerFilter=all&eventID=' + exploded[4] + '&entityID=' + exploded[5]);
                }
            } else {
                html = exploded[3];
            }
            saveStop();
            jGrowl(html);
            if(exploded[4] == 'reccurssion'){
              window.location = window.location;
            }
        }
    });
}

function createLeaveOnServer(vdate, vtime, vhours, vtitle, vnotes, entityID, leaveType,vcolour) {
    var url;
    if (view == 'day') {
        url =  "search/ajax2/createLeaveOnServer/?calendars=" + entityID;
    } else {
        url =  "search/ajax2/createLeaveOnServer/?" + getString;
    }
    $.ajax({
        type: "POST",
        url: url,
        data: "vdate=" + vdate + "&vtime=" + vtime + "&vhours=" + vhours + "&vtitle=" + vtitle  + "&vnotes=" + vnotes +  "&entityID=" + entityID + "&leaveType=" + leaveType + "&vcolour=" + vcolour + "&type=week&cid=" + cid,
        success: function (msg) { 
            var exploded = msg.split(',');
            if (exploded[0] == 'hideDialogs') {
                hideDialogs();
                html = exploded[1];
            } else {
                dPop(exploded[1], vdate, vtime, vhours, vcolour, vtitle, 0, vnotes, exploded[2]);
                if (view == 'day') {
                    var attendies = entityID.split(',');
                    for (var a = 0; a < attendies.length; a++) {
                        createEventDay(exploded[1], vdate, vtime, vhours, vcolour, vtitle, 0, vnotes, null, null, attendies[a]);
                    }
                } else {
                    createEventWeek(exploded[1], vdate, vtime, vhours, vcolour, vtitle, 0, vnotes);
                }
            }
            html = exploded[3];
            saveStop();
            jGrowl(html);
        }
    });
}

function createDuplicateOnServer(did, dtime, dhours) {
    $.ajax({
        type: "POST",
        url:  "search/ajax2/createDuplicateOnServer/",
        data: "did=" + did + "&dtime=" + dtime + "&dhours=" + dhours + '&cid=' + cid,
        success: function (msg) {
            if (msg == '') {
                jGrowl('<b style="color:red">Event Clashes !!</b> <br/>An event already exist on next day.');
                saveStop();
            } else {
                var exploded = msg.split(',');
                createEventWeek(exploded[0], exploded[1], exploded[2], exploded[3], exploded[4], exploded[5], exploded[6], exploded[7]);
                dPop(exploded[0], exploded[1], exploded[2], exploded[3], exploded[4], exploded[5], exploded[6], exploded[7], exploded[8]);
                jGrowl(exploded[9]);
                saveStop();
            }
        }
    });
}

function xupdateEventRSVP(de,status,eventHASH) {
  if(eventHASH == undefined) {eventHASH = '';}
  $.ajax({
        type: "POST",
        url:  "search/ajax2/updateEventRSVP/",
        data: "de=" + de + "&status="+ status + "&eventHASH="+ eventHASH,
        success: function (msg) {
              jGrowl('Event status updated.');
        }
    });
}
function xdeleteEvent(de,allfollowing) {
  if(allfollowing == undefined) {allfollowing = '';}
    $.ajax({
        type: "POST",
        url:  "search/ajax2/deleteEvent/",
        data: "de=" + de + "&allfollowing="+ allfollowing,
        success: function (msg) {
            if(allfollowing != '' && allfollowing != undefined){
                idToUseArr = msg.split(",");
                var idToRemove ;
                for (var i = 0; i < idToUseArr.length; i++) {
                    idToRemove = "event_" + idToUseArr[i];
                    document.getElementById(idToRemove).style.display = "none";
                    var spliceIndex = ia.indexOf(idToRemove);
                    dEvent.splice(spliceIndex, 1);
                    ia.splice(spliceIndex, 1);
                }
                jGrowl('Deleted all following');
            } else {
              jGrowl('Deleted');
            }
        }
    });
}


function attendeeSearch(terms) {
    $.ajax({
        type: "POST",
        url:  "search/ajax2/attendeeSearch/",
        data: "terms=" + terms,
        success: function (msg) {
            if (msg == 'short') {
                jGrowl('Search-terms too short');
            } else if (msg == '404') {
                jGrowl('No Results');
            } else {
                var exploded = msg.split(',');
                jGrowl(exploded[0] + ' Results Returned');
                atArray(exploded[1]);
            }
        }
    });
}
function showRevBooking(id) {
  var container = document.getElementById("taskRevBooking_"+id);
  $(".open").each(function(){
    $(this).removeClass("open");
    $(this).fadeOut();
    });
  $(container).css({left:mouseX -120 ,top:mouseY - 200}).fadeIn();
  $(container).addClass("open");
}

function hideRevBooking(id) {
  var container = document.getElementById("taskRevBooking_"+id);
  $(container).removeClass("open");
  $(container).fadeOut();
}

function showTaskRevTeam(id) {
  var container = document.getElementById("taskRevTeam_"+id);
  $(".open").each(function(){
    $(this).removeClass("open");
    $(this).fadeOut();
    });
  $(container).css({left:mouseX - 70 ,top:mouseY - 165}).fadeIn();
  $(container).addClass("open");
}

function hideTaskRevTeam(id) {
  var container = document.getElementById("taskRevTeam_"+id);
  $(container).removeClass("open");
  $(container).fadeOut();
}

function bookRevAssignee(id){
  var container = document.getElementById("taskRevBooking_"+id);
  var revID = $(container).find("input[name=revID]").val();
  var taskID = $(container).find("input[name=taskID]").val();
  var thisYear = $(container).find("input[name=thisYear]").val();
  var thisWeek = $(container).find("input[name=thisWeek]").val();
  var mode = $(container).find("input[name=mode]").val();
  var selectionLength = $(container).find("input[name=revBooking[]]:checked").length;

  if(selectionLength == 0){
    alert("Atleast 1 member require to book an event.");
    return false;
  }
  var selectedMembers = [];
    $(container).find("input[name=revBooking[]]:checked").each(function(i){
            selectedMembers[i] = trim($(this).val());
          });
  //var calLink = base + "calendar/" + thisYear + "/week/" + thisWeek + "?calendars=" + selectedMembers + (mode == 'milestone' ? "&milestone=" : "&todoid=")  + taskID + (mode == 'milestone' ? "&milestoneRevID=" : "&revID=") + revID;
  x = getString.replace(/^(calendars=[0-9]+&)/i,'');
  var calLink = here2+'?calendars='+selectedMembers+ (mode == 'milestone' ? "&milestone=" : "&todoid=")  + taskID + (mode == 'milestone' ? "&milestoneRevID=" : "&revID=") + revID+'&'+x;
  hideRevBooking(id);
  window.location = calLink;
  return false;
}

var mouseX = 0;
var mouseY = 0;
$(document).ready(function(){
   $(document).mousemove(function(e){
      mouseX = e.pageX;
      mouseY = e.pageY;
   });
})

