﻿function GetCategoryEvents(category, aid, cid, isNew, start) {
    var jsonData = { 'category': category, 'smartid': $('#usercred').data('sid') };

    var uri = "/Services/DefaultService.svc/GetCategoryEvents";

    $.ajax({
        type: "POST",
        url: uri,
        data: JSON.stringify(jsonData),
        
        dataType: "json",
        success: function(msg) {
            var events = msg.d;
            for (var i = 0; i < events.length; i++) {
                var event = events[i];
                if (event.EventType == 10) {
                    ProcessSMSEvent(undefined,undefined, event,aid,cid,undefined,isNew, start);
                }
            }
        }
    });
}

function ProcessSMSEvent($template, template, event, aid, cid,$m, isNew, start) {
    var jsonData, uri;
    jsonData = {};
    uri = '';
    if ($m == 'null') return;
    else if ($m == undefined) {
        jsonData = { 'eventid': event.EventId, 'aid': aid, 'isnew': isNew, 'cid': cid }
        uri = '/Services/DefaultService.svc/GetSMSNumbers';
        $.ajax({
            type: "POST",
            url: uri,
            data: JSON.stringify(jsonData),
            
            dataType: "json",
            success: function(msg) {
                if (msg.d != null) {
                    if (msg.d == 'null')
                        return false;
                    ProcessSMSEvent($template, template, event, aid, cid, msg.d, isNew, start);
                }
            }
        });
    }
    else {
        if ($template == undefined) {
            if (template == undefined) {
                jsonData = { 'documentid': event.DocumentId };
                uri = "/Services/DefaultService.svc/GetSMSMessageTemplate";
                $.ajax({
                    type: "POST",
                    url: uri,
                    data: JSON.stringify(jsonData),
                    
                    dataType: "json",
                    success: function(msg) {
                        if (msg.d != null) {
                            ProcessSMSEvent(undefined, msg.d, event, aid, cid, $m, isNew, start);
                        }
                    }
                });
            }
            else {
                $template = template.MessageText;
            }
        }
        if ($template != undefined) {
            if ($template.indexOf('[') >= 0 && $template.indexOf(']') >= 0) {
                var stS = $template.indexOf('[');
                var stE = $template.indexOf(']');
                var replStr = $template.substr(stS, stE - stS + 1);
                if (replStr != undefined) {
                    var map = replStr.substr(3, 5);
                    jsonData = { 'mapid': map, 'cid': cid, 'eid': aid };
                    uri = '/Services/DefaultService.svc/ParseMapValue';
                    $.ajax({
                        type: "POST",
                        url: uri,
                        data: JSON.stringify(jsonData),
                        
                        dataType: "json",
                        success: function(msg) {
                            if (msg.d != null) {
                                if (msg.d.type == 'string') {
                                    $template = $template.replace(replStr, msg.d.value);
                                }
                                else if (msg.d.type == 'datetime') {
                                    $template = $template.replace(replStr, ServiceDate(JsonToJavaDate(msg.d.value)));
                                }
                            }
                            ProcessSMSEvent($template, template, event, aid, cid, $m, isNew, start);
                        }
                    });

                }
            }
            else {
                uri = '/Services/DefaultService.svc/SendSMS';
                jsonData = {
                    'recipient': $m,
                    'appointmentid': aid,
                    'contactid': cid,
                    'datetosend': DateToSend(start),
                    'recipientid': (template.SendToNumber == true ? null : cid),
                    'eventid': aid,
                    'header': template.MessageHeader,
                    'messagestatuscode': 4,
                    'messagetype': event.MessageType,
                    'templateid': template.MessageTemplateID,
                    'validityperiod': 72,
                    'body': $template
                };
                jsonData = jsonSerializeDefaults(jsonData);
                $.ajax({
                    type: "POST",
                    url: uri,
                    data: JSON.stringify(jsonData),
                    
                    dataType: "json",
                    success: function(msg) {
                        if (msg.d != null) {
                            //alert('Message Sent');
                        }
                    }
                });
            }
        }
    }
}
function DateToSend(event, start) {
    var delayed = event.Delayed, messagedelay = event.MessageDelay;
    var dts = new Date();
    if (delayed == true && messagedelay != undefined && messagedelay != null) {
        dts.setMinutes(dts.getMinutes() + messagedelay);
    }
    return dts;
}


function processTemplate($template,template, tid, cid, aid) {
    if ($template == undefined) {
        if (template == undefined) {

        }
        else {
            $template = $(template);
        }
    }
    else {
        var map = $template.find('span').attr('MAPID');
        if (map == undefined) {
            //Process Here
        }
        else {
            getMapData($template, template, tid, cid, aid, map);
        }
    }
}
function getMapData($template, template, tid, cid, aid, map) {
var jsonData={'mapid':map,'cid':cid,'aid':aid};


}
function parseSmartValue(map, cid) {
    $body = $('body');
    var fld = $body.data(map).json;
    if (fld == 'string') {
    }
}

//        [OperationContract][WebInvoke(BodyStyle = WebMessageBodyStyle.WrappedRequest,ResponseFormat = WebMessageFormat.Json)]

