﻿function openListItem(toe, cid, txt) {

    var entity = ''
    switch (toe) {
        case 1: entity = 'contact'; break;
        case 2: entity = 'account'; break;
        case 3: entity = 'opportunity'; break;
        case 5: entity = 'appointment'; break;
        case 6: entity = 'task'; break;
        case 7: entity = 'support'; break;
    }

    loadEntity(toe, entity, cid, txt,false, undefined);
}

function newEntity(toe, owner) {

var entity = ''
    switch (toe) {
        case 1: entity = 'contact'; break;
        case 2: entity = 'account'; break;
        case 3: entity = 'opportunity'; break;
        case 5: entity = 'appointment'; break;
        case 6: entity = 'task'; break;
        case 7: entity = 'support'; break;
    }
    if (toe == 5) {
        clearBookingDialog();
        $('body').append('<div class=\'sd-new-appointment\'></div>');
        var $newFrm = $('body').find('.sd-new-appointment');
        $newFrm = $('body').find('.sd-new-appointment');
        $newFrm.newAppointment({ 'cid': undefined, 'entity': undefined, isNew: true });
    }
    else {
        loadEntity(toe, entity, undefined, '', true, owner);
    }
}
function loadCalAppointment(calEvent, $event) {
    //var mapid = calEvent.id;
    //var txt = calEvent.title;
    loadEntity(5, 'appointment', calEvent.id, calEvent.title, false, undefined);
   // loadAppointment(mapid, txt);
}
function loadEntity(toe, entity, cid, txt, isNew, owner) {
    var dlg = $('body').find('.sd-dlg-' + entity);

    if (dlg.length > 0) {
        clearData(dlg, entity);
        dlg.smartForm('switchDiv');
        dlg.dialog('option', 'title', txt);

        dlg.dialog('open');

        entityFormLoaded(dlg, toe, entity, cid, txt, isNew, owner);
    }
    else {
        $('body').append('<div class="sd-dlg-' + entity + '" style="display:none;"></div>');
        dlg = $('body').find('.sd-dlg-' + entity);
        clearData(dlg, entity);
        $.ajaxSetup({
            type: 'POST',
            contentType: 'application/x-www-form-urlencoded',
            dataType: 'xml',
            error: AjaxFailed
        });
        $.ajax({
            type: 'GET',
            contentType: 'application/x-www-form-urlencoded',
            url: '/ajaxcontent/sd.formdictionary.xml',
            dateType: 'xml',
            success: function (entities) {
                setAjaxDefault();

                var $mapids = [];
                $(entities).find('entity').each(function () {
                    if ($(this).attr('type') == entity) {
                        $(this).find('mapids').each(function () {
                            $mapids.push(createFormMap($(this)));
                        });
                        dlg.data('mapids', $mapids);
                    }
                });
                dlg.smartForm({ 'entity': entity });
                $('.sd-id-11256:input').val(txt);
                dlg.dialog({
                    modal: true,
                    title: txt,
                    bgiframe: true,
                    height: 550,
                    width: 645,
                    buttons: {
                        'Delete': function () {
                            if (toe == 1 || toe == 2 || toe == 3 || toe == 7) {
                                var $jsonData = { 'cid': dlg.data('cid'), 'entity': entity };
                                $jsonData = jsonSerializeDefaults($jsonData);
                                var uri = '/Services/DefaultService.svc/DeleteContactMain';
                                $.ajax({
                                    url: uri,
                                    data: JSON.stringify($jsonData),
                                    success: function (msg) {
                                        if (msg.d == true) {
                                            removeListEvent(cid);
                                            dlg.dialog('close');
                                        }
                                    }
                                });
                            }
                            else if (toe == 5) {
                                var $jsonData = { 'aid': dlg.data('aid'), 'entity': entity };
                                $jsonData = jsonSerializeDefaults($jsonData);
                                var uri = '/Services/DefaultService.svc/DeleteAppointment';
                                $.ajax({
                                    url: uri, data: JSON.stringify($jsonData),
                                    success: function (msg) {
                                        if (msg.d == true) {
                                            removeListEvent(dlg.data('aid'));
                                            $sd = $smartdiary.smartdiary({
                                                editable: true,
                                                eventClick: function (calEvent, $event) {
                                                    loadCalAppointment(calEvent, $event);
                                                }
                                            });
                                            $smartdiary.smartdiary("removeEvent", dlg.data('aid'));
                                            dlg.dialog('close');
                                        }
                                    }
                                });
                            }
                        },
                        'Close': function () {
                            dlg.dialog('close');
                        },
                        'OK': function () {
                            if (toe == 1 || toe == 2 || toe == 3 || toe == 7) {
                                saveContactNote(entity);
                                saveContactMain(dlg, entity);
                                if (toe == 3 || toe == 7) {
                                }
                                if (toe == 1 || toe == 2) {
                                    savePhone(entity);
                                    saveSelectedPhone(entity);
                                    saveEmail(entity);
                                    saveSelectedEmail(entity);
                                }
                            }
                            else if (toe == 5) {
                                saveAppointment(dlg);
                            }
                        }
                    }
                });
                entityFormLoaded(dlg, toe, entity, cid, txt, isNew, owner);
            }
        });
    }
}
function entityFormLoaded(dlg, toe, entity, cid, txt, isNew, owner) {
    dlg.find('input:text').each(function() { $(this).val(''); });
    dlg.find('select').each(function() { $(this).val(''); });
    dlg.find('textarea').each(function() { $(this).val(''); });
    dlg.find('input:checkbox').each(function() { $(this).attr('checked', false); });
    dlg.data('');

    dlg.smartForm('option', 'isNew', isNew);
    dlg.smartForm('option', 'owner', owner);
    dlg.data('entity', entity);
    if (isNew == true) {
        dlg.smartForm('setNew');
    }
    else {
        if (entity == 'account' || entity == 'contact' || entity == 'opportunity' || entity == 'support') {
            dlg.data('cid', cid);
            dlg.data('aid', undefined);
        }
        else if (entity == 'appointment') {
            dlg.data('aid', cid);
            dlg.data('cid', undefined);
        }
        loadSmartFormData(toe, entity, cid)
    }
}
function loadSelects() {
    var data = { "smartid": $('#usercred').data('sid')};

    $.ajax({
        url: "/Services/DefaultService.svc/GetPickListMaster",
        data: JSON.stringify(data),
        success: function(msg)
        { onLoadSelects(msg); }
    });
}
function onLoadSelects(msg) {

    var mm = msg.d[0].FieldMAPID;
    var mapid,pval,ptext;

    var output = new Array();

    for (var i = 0; i < msg.d.length; i++) {
        var plm = msg.d[i];
        mapid = plm.FieldMAPID;
        pval=plm.PickListId;
        ptext = plm.StringValue; 
        

        if (mapid != mm || i==(msg.d.length-1)) {
            $('#picklist').data(mm.toString(), output);
            output = new Array();
            mm = mapid;
        }
        output.push({ 'value': pval.toString(), 'text': ptext});
    }
}
function loadFlags() {
    var data = { "smartid": $('#usercred').data('sid') };

    $.ajax({
        type: "POST",
        url: "/Services/DefaultService.svc/GetFlagListMaster",
        data: JSON.stringify(data),
        
        dataType: "json",
        success: function(msg) {
            if (msg.d != null) {
                var fm = msg.d[0].FieldMAPID, mapid, fval, ftxt;
                var op = new Array();
                for (var i = 0; i < msg.d.length; i++) {
                    var flg = msg.d[i];
                    mapid = flg.FieldMAPID;
                    fval = flg.FlagId;
                    ftxt = flg.FlagTitle;
                    if (mapid != fm) {
                        $('#picklist').data(fm.toString(), op);
                        op = new Array();
                        fm = mapid;
                    }
                    op.push({ 'value': fval.toString(), 'text': ftxt });
                }
                $('#picklist').data(fm.toString(), op);
            }
        }
    });
}


function loadListAppointment(cid) {
    var txt = $("#dli" + cid).data('txt');
    loadAppointment(cid, txt);
}

function loadAppointment(cid, txt) {

    //var txt = $("#dli" + cid).data('txt');
    
    $('.sd-cal-event').each(function() {
        if ($(this).data('id') == cid) {
            txt = $(this).data('text');
            return false;
        }
    });
    
 //   if (txt == undefined)
 //       txt = $('#appointmentForm').find('.sd-id-15217:input[type="text"]').val();
    
    if ($('#appointmentForm .fg-buttonset').length) {
        $('#appointmentForm').dialog('option','title',txt);
        $('#appointmentForm').dialog('open');
        $('#appointmentForm :input:text').each(function() {
            $(this).val('');
        });
    }
    else {
        $('#appointmentForm').smartForm({ 'entity': 'appointment' });

        $('#appointmentForm').dialog(
                {
                modal:true,
                    title: txt,
                    bgiframe: true,
                    height: 540,
                    width: 650,
                    buttons: { 'Close': function() { $(this).dialog("close"); }, 'Save & Close': function() {
                    saveAppointment($('#appointmentForm'));
                } 
            }
                });
            }
    var data = { "appointmentid": cid};

    $.ajax({
        type: "POST",
        url: "/Services/DefaultService.svc/GetAppointment",
        data: JSON.stringify(data),
        
        dataType: "json",
        success: function(msg) {
            onLoadAppointmentSuccess(msg);
        }
    });
    $.ajax({ type: "POST",
        url: "/Services/DefaultService.svc/GetAppointmentResource",
        data: JSON.stringify(data),
        
        dataType: "json",
        success: function(msg) {

            var values = new Array();
            for (var i = 0; i < msg.d.length; i++) {
                values.push(msg.d[i]);
            }
            $('#appointmentForm').data('selectedResource', values);

            $('.sd-select-resource').dropdownchecklist("destroy");
            $('.sd-select-resource').val(values);
            $('.sd-select-resource').dropdownchecklist();
        }
    });
}
function onLoadAppointmentSuccess(msg) {

    var $smartForm = getSmartForm('appointment');
    $smartForm.data('aid', jsonSdGuid(msg.d.AppointmentId));
    $smartForm.find('.sd-id-15217:input').val(jsonSdString(msg.d.Subject));
    $smartForm.find('.sd-id-15215:input').val(jsonSdDate(msg.d.Start));
    $smartForm.find('.sd-id-15216:input').val(jsonSdTime(msg.d.Start));
    $smartForm.find('.sd-id-15208:input').val(jsonSdDate(msg.d.End));
    $smartForm.find('.sd-id-15209:input').val(jsonSdTime(msg.d.End));
    $smartForm.find('.sd-id-15222:input').val(jsonSdString(msg.d.Reference));
    $smartForm.find('.sd-id-15201:input').val(msg.d.CategoryColor);
    $smartForm.find('.sd-id-15202:input').val(msg.d.BusyStateColor);



    $smartForm.find('.sd-id-15290:input').val(jsonSdString(msg.d.CreatedBy));
    $smartForm.find('.sd-id-15291:input').val(jsonSdDate(msg.d.CreatedOn));
    $smartForm.find('.sd-id-15292:input').val(jsonSdString(msg.d.ModifiedBy));
    $smartForm.find('.sd-id-15293:input').val(jsonSdDate(msg.d.ModifiedOn));
    $smartForm.find('.sd-id-15394:input').val(jsonSdGuid(msg.d.AppointmentId));
    $smartForm.find('label.sd-id-15394').html('Record ID:');
// $('.sd-id-15293:input').val(jsonSdDate(msg.d.ModifiedOn));



}
function loadAppointmentCategory()
{
    var data = {"smartid": $('#usercred').data('sid')};

    $.ajax({
        type: "POST",
        url: "/Services/DefaultService.svc/GetAppointmentCategory",
        data: JSON.stringify(data),
        
        dataType: "json",
        success: function(msg) {
        onLoadAppointmentCategorySuccess(msg);
        }
    });
}
function onLoadAppointmentCategorySuccess(msg) {

    var ac = new Array();

    var optionTxt = '';
    
    for(var i = 0; i < msg.d.length; i++)
    {
        var a = { 'color': msg.d[i].color, 'colorHtml': msg.d[i].colorHtml, 'label': msg.d[i].label };
        ac.push(a);
        optionTxt += '<option value=\'' + msg.d[i].color + '\'>msg.d[i].label</option';
    }

    $('#picklist').data('AppointmentCategory', ac);
//    $('.sd-id-15201:select').append(optionTxt);
}

function loadBusyState()
{
    var data = { "smartid": $('#usercred').data('sid') };

    $.ajax({
        type: "POST",
        url: "/Services/DefaultService.svc/GetBusyState",
        data: JSON.stringify(data),
        
        dataType: "json",
        success: function(msg) {
        onLoadBusyStateSuccess(msg);
        }
    });
}
function onLoadBusyStateSuccess(msg) {

    var ac = new Array();
    
    var optionTxt = '';

    for (var i = 0; i < msg.d.length; i++) {
        var a = { 'color': msg.d[i].color, 'colorHtml': msg.d[i].colorHtml, 'label': msg.d[i].label };
        ac.push(a);
        optionTxt += '<option value=\'' + msg.d[i].color + '\'>msg.d[i].label</option';
    }
    $('#picklist').data('BusyState', ac);
//    $('.sd-id-15202:select').append(optionTxt);
}
function loadCategory() {

    var data = { "smartid": $('#usercred').data('sid') };

    $.ajax({
        type: "POST",
        url: "/Services/DefaultService.svc/GetCategory",
        data: JSON.stringify(data),
        
        dataType: "json",
        success: function(msg) {
            var ca = new Array();

            var r = true;
            for (var i = 0; i < msg.d.length; i++) {
                var cat = msg.d[i];
                var a = { 'categoryid': cat.CategoryId, 'name': cat.Name, 'color': cat.HtmlColor };
                ca.push(a);
                var catStr = '';
                if (r == true) {
                    r = false;
                    catStr = '<div style=\'width:180px;height:25px;float:right;\'class=\'ui-corners-all\'>'+
                    '<div style=\'background-color:' + cat.HtmlColor + ';width: 15px; float: left; height: 15px;padding:2px;#padding:0px;margin-right:8px\'>' +
                    '<input type=\'checkbox\' style=\'background-color:' + cat.HtmlColor + ';margin-right:3px;\'class=\'sd-cat-' + cat.CategoryId + '\'/>' +
                     '</div>' + cat.Name + '</div>';
                }
                else {
                    r = true;
                    catStr = '<div style=\'width:180px;height:25px;\'class=\'ui-corners-all\'>'+
                    '<div style=\'background-color:' + cat.HtmlColor + ';width: 15px; float: left; height: 15px;padding:2px;#padding:0px;margin-right:8px\'>' +
                    '<input type=\'checkbox\' style=\'background-color:' + cat.HtmlColor + ';margin-right:3px;\'class=\'sd-cat-' + cat.CategoryId + '\' />'+
                    '</div>' + cat.Name + '</div>';
                }
                $('#categoryDialog').append(catStr);
            }
        }
    });
}

