var debugTitles = false;
var calWidth = 720;
var calHeight = 500;
var calX = 0;
var calY = 0;
var calWidth = 720;
var month_view = "";
var fmonth, fday;
var dateLength;
var mTitle = 30;
var mWidth = (calWidth / 7);
var mHeight = (calHeight / 6);
var mRow = 0;
var the_state = false;
var the_event;
var the_date;
var globalDE;
var initDone = false;
var timeSep = ":";
var allowAdd = true;
var allowEdit = false;

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") {
        document.getElementById("toolLocked").style.display = "none";
        document.getElementById("toolUnlocked").style.display = "block";
    } else {
        document.getElementById("toolUnlocked").style.display = "none";
        document.getElementById("toolLocked").style.display = "block";
    }
    document.getElementById("toolboxId").value = dEvent[de][0];
    document.getElementById("toolEdit").href = "javascript:editEvent(" + de + ");";
    document.getElementById("toolDuplicate").href = "javascript:duplicateEvent(" + de + ");";
    document.getElementById("toolDelete").href = "javascript:deleteEvent(" + de + ");";
    document.getElementById("eventToolbox").style.top = (tempY - 30) + "px";
    document.getElementById("eventToolbox").style.left = (tempX - 60) + "px";
    document.getElementById("eventToolbox").style.display = "block";
}


function hideDialogs() {
    if (debugTitles) debug("hideDialogs");
    for (var dd = 0; dd < da.length; dd++) {
        if (da[dd] != "debug" && da[dd] != "rashbox" && id(da[dd]) ) document.getElementById(da[dd]).style.display = "none";
    }
    document.body.focus();
}


function eventCancel(x) {
    if (debugTitles) debug("eventCancel");
    document.getElementById(x).style.display = "none";
    document.body.focus();
}
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 getWeekNr(today) {
    if (debugTitles) debug("getWeekNr");
    if (today == null) {
        today = new Date();
    }
    Year = takeYear(today);
    Month = today.getMonth();
    Day = today.getDate();
    now = Date.UTC(Year, Month, Day + 1, 0, 0, 0);
    var Firstday = new Date();
    Firstday.setYear(Year);
    Firstday.setMonth(0);
    Firstday.setDate(1);
    then = Date.UTC(Year, 0, 1, 0, 0, 0);
    var Compensation = Firstday.getDay();
    if (Compensation > 3) Compensation -= 4;
    else Compensation += 3;
    NumberOfWeek = Math.round((((now - then) / 86400000) + Compensation) / 7);
    return NumberOfWeek;
}


function takeYear(theDate) {
    x = theDate.getYear();
    var y = x % 100;
    y += (y < 38) ? 2000 : 1900;
    return y;
}


function idPlace(id) {
    for (var d = 0; d < dEvent.length; d++) {
        if (dEvent[d][0] == id) {
            return d;
            break;
        }
    }
}


function debugArray() {
    var darr = "";
    for (var i = 0; i < dEvent.length; i++) {
        for (var d = 0; d < dEvent[i].length; d++) {
            darr += dEvent[i][d];
            if (d <= (dEvent.length - 1)) darr += ", ";
        }
        debug(darr);
        darr = "";
        debug(" ");
    }
}
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 monthView(date) {
    if (debugTitles) debug("monthView");
    if (date == null) {
        date = new Date();
    }
    day = date.getDate();
    month = date.getMonth();
    year = date.getFullYear();
    months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
    dayz = new Array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');
    this_month = new Date(year, month, 1);
    next_month = new Date(year, month + 1, 1);
    first_week_day = (this_month.getDay() == 0) ? 6 : (this_month.getDay() - 1);
    days_in_this_month = Math.round((next_month.getTime() - this_month.getTime()) / (1000 * 60 * 60 * 24));
    dateLength = days_in_this_month;
    month_view += '<table cellspacing="0" cellpadding="0" border="0" id="calMonth">';
    month_view += '<tr><th style="background: transparent; border: 0;"></th>';
    for (week_day = 0; week_day < dayz.length; week_day++) {
        month_view += '<th>' + String(dayz[week_day]).substr(0, 3) + '</th>';
    }
    month_view += '</tr><tr>';
    if (first_week_day != 0) {
        fmonth = ((month + 1) <= 9) ? ("0" + (month + 1)) : (month + 1);
        var weekDate = new Date(year, fmonth - 1, "01");
        var weekNr = getWeekNr(weekDate);
        if (weekDate.getDay() == 0) weekNr--;
        if(isNonDynamic) {
          var weekUrl = '<a class="weekHref" href="javascript:void(0);" >week ' + weekNr + '</a>';
        } else {
          var weekUrl = '<a class="weekHref" href="' + calLocation + '/' + year + '/week/' + weekNr + '">week ' + weekNr + '</a>';
        }
        month_view += '<td class="weekHref">' + weekUrl + '</td>';
    }
    for (week_day = 0; week_day < first_week_day; week_day++) {
        month_view += '<td class="mBlank"></td>';
    }
    week_day = first_week_day;
    for (day_counter = 1; day_counter <= days_in_this_month; day_counter++) {
        fmonth = ((month + 1) <= 9) ? ("0" + (month + 1)) : (month + 1);
        fday = (day_counter <= 9) ? ("0" + day_counter) : day_counter;
        week_day %= 7;
        var loggedDay = false;
        for (dl = 0; dl <= (loggedDayArray.length - 1); dl++) {
            if (day_counter == loggedDayArray[dl]) {
                loggedDay = true;
                break;
            }
        }
        if (week_day == 0) {
            mRow++;
            month_view += '</tr><tr>';
            var weekDate = new Date(year, fmonth - 1, fday);
            var weekNr = getWeekNr(weekDate);
            if (weekDate.getDay() == 0) weekNr--;
            if(isNonDynamic) {
              var weekUrl = '<a class="weekHref" href="javascript:void(0);" >week ' + weekNr + '</a>';
            } else {
              var weekUrl = '<a class="weekHref" href="' + calLocation + '/' + year + '/week/' + weekNr + '">week ' + weekNr + '</a>';
            }
            month_view += '<td class="weekHref">' + weekUrl + '</td>';
        }
        var tooday = new Date;
        if (tooday.getFullYear() == year && tooday.getMonth() == month && tooday.getDate() == day_counter) {
            if (loggedDay == true) {
              month_view += '<td id="mday_' + year + '-' + fmonth + '-' + fday + '" class="mDay mToday" style="width:' + mWidth + 'px; height:' + mHeight + 'px;"><span id="dDate_' + year + '-' + fmonth + '-' + fday + '" class="mdate">' + day_counter + '</span> | <a title=\"This day is Already Logged.\" class=\"logged\" href=\"javascript:void(0);\">&nbsp;</a><ol id="mul_' + year + '-' + fmonth + '-' + fday + '"></ol></td>';
            } else {
              month_view += '<td id="mday_' + year + '-' + fmonth + '-' + fday + '" class="mDay mToday" style="width:' + mWidth + 'px; height:' + mHeight + 'px;"><span id="dDate_' + year + '-' + fmonth + '-' + fday + '" class="mdate">' + day_counter + '</span><ol id="mul_' + year + '-' + fmonth + '-' + fday + '"></ol></td>';
            }
        } else {
          if (loggedDay == true) {
              month_view += '<td id="mday_' + year + '-' + fmonth + '-' + fday + '" class="mDay" style="width:' + mWidth + 'px; height:' + mHeight + 'px;"><span id="dDate_' + year + '-' + fmonth + '-' + fday + '" class="mdate">' + day_counter + '</span> | <a title=\"This day is Already Logged.\" class=\"logged\" href=\"javascript:void(0);\">&nbsp;</a><ol id="mul_' + year + '-' + fmonth + '-' + fday + '"></ol></td>';
            } else {
              month_view += '<td id="mday_' + year + '-' + fmonth + '-' + fday + '" class="mDay" style="width:' + mWidth + 'px; height:' + mHeight + 'px;"><span id="dDate_' + year + '-' + fmonth + '-' + fday + '" class="mdate">' + day_counter + '</a><ol id="mul_' + year + '-' + fmonth + '-' + fday + '"></ol></td>';
            }
        }
        week_day++;
    }
    var blankDate = new Date(year, eval(fmonth - 1), days_in_this_month);
    var blankSum = eval(7 - blankDate.getDay());
    if (blankSum != 0) {
        for (var b = 0; b < blankSum; b++) {
            month_view += '<td class="mBlank"></td>';
        }
    }
    month_view += '</tr></table>';
    document.write(month_view);
    monthInit();
}


function monthInit() {
    if (debugTitles) debug("monthInit");
    for (var md = 1; md < day_counter; md++) {
        fmonth = ((month + 1) <= 9) ? ("0" + (month + 1)) : (month + 1);
        fday = (md <= 9) ? ("0" + md) : md;
         var loggedDay = false;
        for (dl = 0; dl <= (loggedDayArray.length - 1); dl++) {
            if (md == loggedDayArray[dl]) {
                loggedDay = true;
                break;
            }
        }
        if(loggedDay == false) {
        document.getElementById("mday_" + year + "-" + fmonth + "-" + fday).onclick = clickMonthDay;
        document.getElementById("dDate_" + year + "-" + fmonth + "-" + fday).onclick = dayView; }
    }
    for (var de = 0; de < dEvent.length; de++) {
        createEventMonth(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][11], dEvent[de][12]);
    }
    for (var e = 1; e < day_counter; e++) {
        new YAHOO.example.DDListBoundary("dEnd_" + e);
        var dText = document.createTextNode(" ");
        var dNode = document.createElement("li");
        dNode.id = "dEnd_" + e;
        dNode.className = "dEnd";
        dNode.appendChild(dText);
        var ee = (e <= 9) ? ("0" + e) : e;
        var targetUL = String("mul_" + year + "-" + fmonth + "-" + ee);
        document.getElementById(targetUL).appendChild(dNode);
    }
    YAHOO.example.DDApp.init();
    if (calLocked == true) document.getElementById("newness").className = "locked";
    includeFunc("newness");
    initDone = true;
}


function createEventMonth(id, date, time, hours, colour, title, location, notes, lockvar, privated) {
    if (debugTitles) debug("createEventMonth");
    var ftime = fracTime(time);
    var fhours = parseFloat(time) + parseFloat(hours);
    fhours = fracTime(fhours);
    var colourFix = colour;
    var newNode = document.createElement("li");
    newNode.id = id;
    newNode.className = "mPill e" + colourFix + " " + lockvar;
    newNode.onclick = clickMonthEvent;
    var titlePrivate = (privated && (allowEdit == false || lockvar == "locked")) ? (ftime + "-" + fhours + " - Private Event") : (ftime + "-" + fhours + " - " + title);
    var titleText = document.createTextNode(titlePrivate);
    var nodeTitle = document.createElement("p");
    nodeTitle.id = id + "_title";
    nodeTitle.appendChild(titleText);
    var nodeLock = document.createElement("div");
    nodeLock.id = id + "_lock";
    nodeLock.className = "iconLock";
    var lockedText = document.createTextNode(lockvar);
    var nodeLocked = document.createElement("p");
    nodeLocked.id = id + "_locked";
    nodeLocked.className = "hidden";
    nodeLocked.appendChild(lockedText);
    newNode.appendChild(nodeLock);
    newNode.appendChild(nodeTitle);
    var targetUL = String("mul_" + date);
    if (document.getElementById(targetUL)) {
        document.getElementById(targetUL).appendChild(newNode);
    } else {
        if (initDone == true) rash("Event created, but it's date is outside of this view's date range.");
    }
    the_event = id;
    the_date = targetUL;
    eventOrder(id);
    return false;
}


function eventOrder(id) {
    if (debugTitles) debug("eventOrder");
    var the_event_id = id;
    var eventPlace = idPlace(the_event_id);
    var the_event_time = dEvent[eventPlace][2];
    var the_event_date = "mul_" + dEvent[eventPlace][1];
    var monthRange = leadingZero(parseFloat(dEvent[eventPlace][1].split("-")[1]) - 1);
    if (monthRange == dateMonth) {
        var li = document.getElementById(the_event_date).getElementsByTagName('li');
        if (li.length - 1 >= 1) {
            for (var o = 0; o < li.length - 1; o++) {
                if (String(li[o].id).split("_")[0] != "dEnd") {
                    var liid = li[o].id;
                    liid = idPlace(liid);
                    if (parseFloat(the_event_time) < parseFloat(dEvent[liid][2])) {
                        var el = document.getElementById(the_event_id);
                        var el2 = document.getElementById(li[o].id);
                        document.getElementById(the_event_date).insertBefore(el, el2);
                        break;
                    }
                } else {
                    var el = document.getElementById(li[li.length - 1].id);
                    var el2 = document.getElementById(li[o].id);
                    document.getElementById(the_event_date).insertBefore(el, el2);
                    break;
                }
            }
        }
    }
}


function eventUpdateDate() {
    if (debugTitles) debug("eventUpdateDate");
    saveStart();
    dEvent[idPlace(the_event)][1] = the_date.split("_")[1];
    var xtime = dEvent[idPlace(the_event)][2];
    var xhours = dEvent[idPlace(the_event)][3];
    updateEventMonth(the_event, the_date.split("_")[1], xtime, xhours);
}


function clickMonthEvent(e) {
    if (debugTitles) debug("clickMonthEvent");
    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
    var mde;
    for (var i = 0; i < dEvent.length; i++) {
        if (String(dEvent[i][0]) == String(this.id)) {
            mde = i;
            break;
        }
    }
    hideDialogs();
    displayEvent(mde);
}


function clickMonthDay(e) {
    if (debugTitles) debug("clicnMonthDay");
    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
    if (calLocked == false && allowAdd == true) {
        addEvent(this.id);
    }
}


function getLatestTimeSel(x, t) {
    if (debugTitles) debug("getLatestTimeSel");
    var latestlatest;
    var xarr = x.split("_");
    var li = document.getElementById("mul_" + xarr[1]).getElementsByTagName('li');
    if (li.length > 1) {
        var li_latest = (String(li[li.length - 1].id).split("_")[0] == "dEnd") ? li[li.length - 2].id : li[li.length - 1].id;
        var li_latestTime = parseFloat(dEvent[idPlace(li_latest)][2]);
        var li_latestHours = parseFloat(dEvent[idPlace(li_latest)][3]);
        latestlatest = eval(li_latestTime + li_latestHours);
        if (t == "h") {
            var returnHour;
            for (var tt = 0; tt < String(latestlatest).length; tt++) {
                if (String(latestlatest).charAt(tt) == ".") {
                    returnHour = String(latestlatest).split(".")[0];
                    break;
                } else {
                    returnHour = latestlatest;
                }
            }
            return returnHour;
        } else if (t == "m") {
            var returnMin;
            for (var tt = 0; tt < String(latestlatest).length; tt++) {
                if (String(latestlatest).charAt(tt) == ".") {
                    returnMin = String(latestlatest).split(".")[1];
                    break;
                } else {
                    returnMin = "0";
                }
            }
            return returnMin;
        }
    } else {
        if (t == "h") return 7;
        if (t == "m") return 0;
    }
}


function timeSel(x, t) {
    if (debugTitles) debug("timeSel");
    var rtime;
    var x_str = String(x);
    for (var tt = 0; tt < x_str.length; tt++) {
        if (t == "h") {
            if (String(x_str).charAt(tt) == ".") {
                rtime = x_str.split(".")[0];
                break;
            } else {
                rtime = x_str;
            }
        } else if (t == "m") {
            if (String(x_str).charAt(tt) == ".") {
                rtime = x_str.split(".")[1];
                break;
            } 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(id) {
    if (debugTitles) debug("durationCheck");
    var selKind = String(id).split("_");
    if (selKind[1] == "Min") {
        if (document.getElementById(id).value == 0 && document.getElementById(selKind[0] + "_Hour").value == 0) document.getElementById(selKind[0] + "_Hour").value = 1;
    } else if (selKind[1] == "Hour") {
        if (document.getElementById(id).value == 0 && document.getElementById(selKind[0] + "_Min").value == 0) document.getElementById(selKind[0] + "_Min").value = 25;
    }
}


function getLatestTime(x) {
    if (debugTitles) debug("getLatestTime");
    var xarr = x.split("_");
    var li = document.getElementById("mul_" + xarr[1]).getElementsByTagName('li');
    if (li.length > 1) {
        var li_latest = (String(li[li.length - 1].id).split("_")[0] == "dEnd") ? li[li.length - 2].id : li[li.length - 1].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;
    }
}


function addEvent(x) {
    if (debugTitles) debug("addEvent");
    document.getElementById("editButton").value = "Add";
    document.getElementById("editButton").onclick = addSave;
    var ddate = String(x).split("_")[1];
    hideDialogs();
    id("eventAttachments").style.display = "none";
    document.getElementById("attachFileLink").style.display = "none";
    document.getElementById("editWhat").value = "";
    document.getElementById("editLocation").value = "";
    document.getElementById("editDate").value = ddate;
    document.getElementById("selEdit_Hour").value = getLatestTimeSel(x, "h");
    document.getElementById("selEdit_Min").value = getLatestTimeSel(x, "m");
    document.getElementById("editTime").value = getLatestTime(x);
    document.getElementById("editHours_Hour").value = 1;
    document.getElementById("editHours_Min").value = 0;
    editColour("Blue");
    attClear();
    id('attText').style.display = "none";
    id('attSelect').style.display = "none";
    document.getElementById("editNotes").value = "";
    document.getElementById("eventEdit").style.top = dialogY() + "px";
    document.getElementById("eventEdit").style.display = "block";
    document.getElementById("editWhat").focus();
}


function addSave() {
    if (debugTitles) debug("addSave");
    saveStart();
    hideDialogs();
    var vdate = document.getElementById("editDate").value;
    var vtime = parseFloat(document.getElementById("selEdit_Hour").value + "." + document.getElementById("selEdit_Min").value);
    var vhours = parseFloat(document.getElementById("editHours_Hour").value + "." + document.getElementById("editHours_Min").value);
    var vtitle = document.getElementById("editWhat").value;
    var vlocation = document.getElementById("editLocation").value;
    var vcolour = document.getElementById("editColour").value;
    var checkval = document.getElementById("editNotes").value;
    checkval = checkval.replace(/\r\n/g, "|");
    checkval = checkval.replace(/\r/g, "|");
    checkval = checkval.replace(/\n/g, "|");
    var vnotes = checkval;
    document.getElementById("editAttend").value = attSave();
    var attendees = document.getElementById("editAttend").value;
    var vlocked = "unlocked";
    createEventOnServer(vdate, vtime, vhours, vcolour, vtitle, vlocation, vnotes);
}


function addSuccess(vid) {
    if (debugTitles) debug("addSuccess");
    saveStop();
    var vdate = id("editDate").value;
    var vtime = parseFloat(id("selEdit_Hour").value + "." + id("selEdit_Min").value);
    var vhours = parseFloat(id("editHours_Hour").value + "." + id("editHours_Min").value);
    var vtitle = id("editWhat").value;
    var vlocation = id("editLocation").value;
    var vcolour = id("editColour").value;
    var checkval = id("editNotes").value;
    checkval = checkval.replace(/\r\n/g, "|");
    checkval = checkval.replace(/\r/g, "|");
    checkval = checkval.replace(/\n/g, "|");
    var vattendees = id("editAttend").value;
    var vnotes = checkval;
    var vlocked = "unlocked";
    var vprivate = id("editPrivate").value;
    if (!vid) {
        var vid = generateID();
    }
    dEvent[dEvent.length] = new Array(vid, vdate, vtime, vhours, vcolour, vtitle, vlocation, vnotes, vlocked, attString, vprivate);
    if (view == "month") {
        createEventMonth(vid, vdate, vtime, vhours, vcolour, vtitle, vlocation, vnotes, vlocked, vprivate);
        YAHOO.example.DDApp.init();
    }
    rash("Event added!");
}


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

function attendeeUpdate() {
    if (debugTitles) debug("attendeeUpdate");
    saveStart();
    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("editSave");
    saveStart();
    var de = globalDE;
    var vid = document.getElementById("editId").value
    var vdate = document.getElementById("editDate").value;
    var vtime = document.getElementById("selEdit_Hour").value + "." + document.getElementById("selEdit_Min").value;
    var vduration = document.getElementById("editHours_Hour").value + "." + document.getElementById("editHours_Min").value;
    var vcolour = document.getElementById("editColour").value;
    var vtitle = document.getElementById("editWhat").value;
    var vlocation = document.getElementById("editLocation").value;
    document.getElementById("editAttend").value = attSave();
    var attendees = document.getElementById("editAttend").value;
    var vprivated = (id("editPrivate").checked) ? "1" : "0";
    var vcreateEntityEvent = '';
    if(calendarEntityCreation) {
      var vcreateEntityEvent = (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, vprivated, vcreateEntityEvent);
}


function editSuccess(de) {
    if (debugTitles) debug("editSuccess");
    hideDialogs();
    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][11] = 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")) ? (ftime + "-" + fhours + " - Private Event") : (ftime + "-" + fhours + " - " + id("editWhat").value);
        id(xid + "_title").innerHTML = titlePrivate;
        id(xid).className = ("mPill e" + id("editColour").value);
    }
    saveStop();
    rash("Changes saved!");
}


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++) {
        document.getElementById("edit" + cArray[ci]).src = "images/e" + cArray[ci] + "0.gif";
    }
    document.getElementById("edit" + x).src =  "images/e" + x + "1.gif";
    document.getElementById("editColour").value = x;
}


function duplicateEvent(de) {
    if (debugTitles) debug("duplicateEvent");
    saveStart();
    hideDialogs();
    var did = dEvent[de][0];
    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.");
    }
    var vdate = dEvent[de][1].split("-");
    vdate[2] = leadingZero(parseFloat(vdate[2]) + 1);
    var vid = generateID();
    vdate = String(vdate[0] + "-" + vdate[1] + "-" + vdate[2]);
    var vtime = dEvent[de][2];
    var vhours = dEvent[de][3];
    var vcolour = dEvent[de][4];
    var vtitle = dEvent[de][5];
    var vlocation = dEvent[de][6];
    var vnotes = dEvent[de][7];
    var vlockvar = dEvent[de][8];
}


function duplicateSuccess(id, date, time, hours, colour, title, location, notes, lockvar, privated) {
    if (debugTitles) debug("duplicateSuccess");
    saveStop();
    dEvent[dEvent.length] = new Array(id, date, time, hours, colour, title, location, notes, lockvar, attString, privated);
    if (view == "month") {
        createEventMonth(id, date, time, hours, colour, title, location, notes, lockvar, privated);
        eventOrder(id);
        YAHOO.example.DDApp.init();
    }
    rash("Event duplicated!");
}


function deleteEvent(de) {
    if (debugTitles) debug("deleteEvent");
    hideDialogs();
    var idToDelete = dEvent[de][0];
    var targetUL = "mul_" + dEvent[idPlace(idToDelete)][1];
    xdeleteEvent(idToDelete);
    for (var i = 0; i < dEvent.length; i++) {
        if (dEvent[i][0] == idToDelete) {
            de = i;
            break;
        }
    }
    var spliceIndex = parseInt(de);
    dEvent.splice(spliceIndex, 1);
    if (view == "month") document.getElementById(targetUL).removeChild(document.getElementById(idToDelete));
    rash("Event deleted!");
}


function monthMoveto(mid, mdate) {
    if (debugTitles) debug("monthMoveto");
    var li = document.getElementById("mul_" + mdate).getElementsByTagName('li');
    var the_event_id = mid;
    var the_event_time = parseFloat(dEvent[idPlace(the_event_id)][2]);
    var the_event_date = "mul_" + mdate;
    if (li.length > 1) {
        var timeArray = new Array();
        var eventArray = new Array();
        for (var i = 0; i < li.length; i++) {
            if (i < li.length - 1) {
                var liid = li[i].id;
                liid = idPlace(liid);
                timeArray[i] = dEvent[liid][2];
            }
            eventArray[i] = li[i].id;
        }
        for (var o = 0; o < li.length - 1; o++) {
            if (parseFloat(the_event_time) >= parseFloat(timeArray[li.length - 2])) {
                var el = document.getElementById(the_event_id);
                var el2 = document.getElementById(li[li.length - 1].id);
                document.getElementById(the_event_date).insertBefore(el, el2);
                break;
            } else if (parseFloat(the_event_time) < parseFloat(timeArray[o])) {
                var el = document.getElementById(the_event_id);
                var el2 = document.getElementById(eventArray[o]);
                document.getElementById(the_event_date).insertBefore(el, el2);
                break;
            }
        }
    } else {
        var el = document.getElementById(the_event_id);
        var el2 = document.getElementById(li[li.length - 1].id);
        document.getElementById(the_event_date).insertBefore(el, el2);
    }
    the_event = mid;
    the_date = mdate;
}


function dayView(e) {
    if (debugTitles) debug("dayView");
    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
    var ddate = String(this.id).split("_")[1];
}
var attArray = new Array();
var orig = new Array();

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


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");
    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");
    if (debugTitles) debug("attOptionsPre");
    var pre = '';
    if (attArray && attArray.length >= 1) {
        pre += '<option value="null1" selected="selected">' + attArray.length + ' results returned</option>';
        pre += '<option value="null2"> </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 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 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 displayEvent(de) {
    if (debugTitles) debug("displayEvent(" + de + ")");
    globalDE = de;
    toggalContent('front');
    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]);

    checkForAttachmentsView(dEvent[de][0]);
    if(allowEdit){
      id('attSelect').selectedIndex = 0;
      attEdit(String(dEvent[de][9]));
    } else {
      dattEdit(String(dEvent[de][9]));
    }
    if(calendarEntityCreation) {
      if(dEvent[de][11] == true) {
        checkForEventEntityPage(dEvent[de][0]);
      } else {
        id("displayCalendarEntityCreationURL").innerHTML = 'None';
      }
    }
    //ToDo : Event RSVP not implemented,so do it latter
    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("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 = "business-process-administration/tasks?linkEventToTask=true&ownerFilter=all&eventID=" + dEvent[de][0].split("_")[1];
    var isLeave = false;
      if(dEvent[de][13] != undefined && dEvent[de][13] != false) {
        isLeave = true;
      }
    id("leaveInfo").style.display=(isLeave)?"block":"none";
    id("crud-edit").style.display = (allowEdit && dEvent[de][8] == "unlocked"&&!isLeave) ? "block" : "none";
    id("crud-delete").style.display = (allowEdit && dEvent[de][8] == "unlocked"&&!isLeave) ? "block" : "none";
    id("crud-duplicate").style.display = (allowAdd && dEvent[de][8] == "unlocked") ? "block" : "none";
    id("crud-add").style.display = (allowAdd && dEvent[de][8] == "unlocked"&&!isLeave) ? "block" : "none";
    id("crud-link").style.display = (allowAdd && dEvent[de][8] == "unlocked"&&!isLeave) ? "block" : "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 attList = id('dattendees');
    var newAttText = document.createTextNode(dorig[dePlace][1]);
    var newAtt = document.createElement("li");
    newAtt.id = "attLi_" + de;
    newAtt.className = "attendee";
    newAtt.appendChild(newAttText);
    attList.appendChild(newAtt);
}


function dattEdit(str) {
    if (debugTitles) debug("dattEdit");
    dorig = new Array();
    id('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 createEventOnServer(vdate, vtime, vhours, vcolour, vtitle, vlocation, vnotes) {
    vtitle = vtitle.replace(/&/g,'%26');
    $.ajax({
        type: "POST",
        url:  "search/ajax2/createEventOnServer/?" + getString,
        data: "vdate=" + vdate + "&vtime=" + vtime + "&vhours=" + vhours + "&vcolour=" + vcolour + "&vtitle=" + vtitle + "&vlocation=" + vlocation + "&vnotes=" + vnotes + '&type=month&cid=' + cid,
        success: function (msg) {
            var exploded = msg.split(',');
            if (exploded[0] == 'hideDialogs') {
                hideDialogs();
            } else if (exploded[0] == 'addSuccess') {
                addSuccess(exploded[1]);
            }
            saveStop();
        }
    });
}


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 updateEventMonth(event, date, xtime, xhours) {
    $.ajax({
        type: "POST",
        url:  "search/ajax2/updateEventMonth/",
        data: "event=" + event + "&date=" + date + "&xtime=" + xtime + "&xhours=" + xhours + '&cid=' + cid,
        success: function (msg) {
            var exploded = msg.split(',');
            if (exploded[0] == 'clash') {
                monthMoveto(exploded[1], exploded[2]);
            }
            jGrowl(exploded[0]);
            saveStop();
        }
    });
}


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


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 createDuplicateOnServer(did, dtime, dhours) {
    $.ajax({
        type: "POST",
        url:  "search/ajax2/createDuplicateOnServer/",
        data: "did=" + did + "&dtime=" + dtime + "&dhours=" + dhours + '&cid=' + cid,
        success: function (msg) {
            var exploded = msg.split(',');
            duplicateSuccess(exploded[0], exploded[1], exploded[2], exploded[3], exploded[4], exploded[5], exploded[6], exploded[7], 'unlocked');
            dEvent[dEvent.length] = new Array(exploded[0], exploded[1], exploded[2], exploded[3], exploded[4], exploded[5], exploded[6], exploded[7]);
            jGrowl(exploded[9]);
            saveStop();
        }
    });
}


function xdeleteEvent(de) {
    $.ajax({
        type: "POST",
        url:  "search/ajax2/deleteEvent/",
        data: "de=" + de,
        success: function (msg) {
            jGrowl('Deleted');
        }
    });
}

