﻿var saveCred = false;
var username = 'undefined';
var password = 'undefined';

setAjaxDefault = function () {
    $.ajaxSetup({
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        error: AjaxFailed
    });
}

function login() {
    window.location.href = 'https://web.smartdiary.co.uk/beta/';
                bContinue = false;
                return false;

    setAjaxDefault();

    var cookie = $.cookie('smartweb');
    var bContinue = true;
    if (cookie != null) {
        var creds = cookie.split(';');
        $.each(creds, function (i, cred) {
            if (cred.split('=')[0] == 'beta' && cred.split('=')[1] == 'true') {
                window.location.href = 'https://web.smartdiary.co.uk/beta/';
                bContinue = false;
                return false;
            }
        });
        var un = creds[0].split('=');
        username = un[1];
        var pw = creds[1].split('=');
        password = pw[1];
    }

    if (bContinue) {
        $("#loginDialog").dialog({
            title: 'Login to Smartdiary',
            modal: true,
            width: 400,
            position: 'center',
            buttons: { "Login": function () {
                username = $('#tbUsername').val();
                password = $('#tbPassword').val();
                var data = { "username": username, "password": password };

                tryLogin(data);
            }, "Try the new Beta": function () {
                $.cookie('smartweb', 'username=' + username + ';password=' + password + ';beta=true', { expires: 30 });
                window.location.href = 'https://web.smartdiary.co.uk/beta/';
            }
            }
        });

        $("#loginDialog").bind('dialogclose', function () {
            goHome();
        });

        $("#loginDialog").load('/ajaxcontent/login.htm #loginPanel', function () {
            $("#loginDialog").dialog('true');

            if (username != 'undefined' && password != 'undefined') {
                $('#tbUsername').val(username);
                $('#tbPassword').val(password);
                $("#cbxSaveCredentials").attr('checked', 'true');
            }
        });
    }
}

function tryLogin(data) {
    $.ajax({
        url: "Services/DefaultService.svc/GetUserAccount",
        data: JSON.stringify(data),
        success: function (msg) {
            $('.sd-user-name').text($('#tbUsername').val());
            doLogin(msg, data);
        }
    });
}

function goHome() {
    window.location.href ='http://www2.smartdiary.co.uk';
}
function doLogin(msg, data) {

    if (msg.d != null) {
        $("#loginFail").css('display', 'none');
        $('#usercred').data('sid', jsonSdGuid(msg.d.SmartID));
        $('#usercred').data('uid', jsonSdGuid(msg.d.UserId));
        $('#usercred').data('uan', jsonSdString(msg.d.UserAccountName));

        $("#loginDialog").unbind('dialogclose');

        $("#loginDialog").dialog('close');

        if (saveCred == false) {
            var sc = $("#cbxSaveCredentials").val();

            if (sc == 'on' && jsonSdBool(msg.d.SaveCredentialsEnabled) == true) {
                saveCred = true;
            }
        }

        $.ajax({
        url: "/Services/DefaultService.svc/GetAccountName",
            data: JSON.stringify({ 'sid': $('#usercred').data('sid') }),
            success: function(msg) {
                $('.sd-account-name').text(msg.d);
            }
        });

        saveCredentials();

        loadHeaders();

        loadCalendars(null);
    }
    else {
        $("#loginFail").css('display', 'block');
        $('#tbUsername').val('');
        $('#tbUsername').focus();
        $('#tbPassword').val('');
        $('#cbxSaveCredentials').attr('checked', false);
    }
}
function saveCredentials() {
    if (saveCred == true) {
        
            $.cookie('smartweb', 'username=' + username + ';password=' + password, { expires: 30 });
        return true;
    }
    return false;
}

function jsonSdDateValue(obj) {
    if (obj == null) {
        return '';
    }
    var date = new Date(parseInt(obj.replace("/Date(", "").replace(")/", ""), 10));

    return date;
}
function jsonSdActivityDate(obj) {
    if (obj == null) {
        return '';
    }
    var date = new Date(parseInt(obj.replace("/Date(", "").replace(")/", ""), 10));

    var d = date.toDateString();

    var t = '';
    
    if (date.getHours() != 0) {
        t = ' '+date.toTimeString().substr(0, 5);
    }

    return d + t;
}

function jsonSdDateTime(obj) {
    if (obj == null) {
        return '';
    }
    var date = new Date(parseInt(obj.replace("/Date(", "").replace(")/", ""), 10));

    var d = date.toDateString();

    var t = ' '+ date.toTimeString().substr(0, 5);

    return d +  t;
}

function jsonSdDate(obj) {
    if (obj == null) {
        return '';
    }
    var date = new Date(parseInt(obj.replace("/Date(", "").replace(")/", ""), 10));

    return date.toDateString();
}

function jsonSdTime(obj) {
    if (obj == null) {
        return '';
    }
    var date = new Date(parseInt(obj.replace("/Date(", "").replace(")/", ""), 10));

    return date.toTimeString().substr(0, 5);
}

function jsonSdString(obj) {
    if (obj == null) {
        return '';
    }
    return obj;
}
function jsonSdInt(obj,d) {
    if (obj == null) {
        return d.toString();
    }
    return obj.toString();
}

function jsonSdGuid(obj) {
    if (obj == null) {
        return 'null';
    }
    return obj;
}

function jsonSdBool(obj) {
    if (obj == null) {
        return false;
    }
    return obj == true;
}
function contactPhoneSelect(indx, entity) {
    if (entity == 2 || entity == 'account')
        return (parseInt(indx) + 12265).toString();
    else
        return (parseInt(indx) + 11265).toString();
}
function contactPhoneIndex(mapid, entity) {
    if (entity == 2 || entity == 'account')
        return (parseInt(mapid) - 12265).toString();
    else
        return (parseInt(mapid) - 11265).toString();
}
function contactEmailSelect(indx, entity) {
    if (entity == 'account' || entity == 2 )
        return ((parseInt(indx) * 2) + 12208).toString();
    else
        return ((parseInt(indx) * 2) + 11208).toString();
}
function contactEmailIndex(mapid, entity) {
    var ind = 0;
    if (entity == 2 || entity == 'account')
        ind = (parseInt(mapid) - 12208);
    else
        ind = (parseInt(mapid) - 11208);
    return ind > 0 ? (ind/ 2).toString() : ind.toString();
}
function selectedPhoneChange(sender) {

    var mapid = $(sender).val();
    var $smartForm = getSmartForm(mapid);

    var phValue = sender.replace('sel', 'val');

    var sid = "ph" + sender.substring(sender.length - 1);

    $(phValue).val($('#phoneselect').data($(sender).val()));

    $smartForm.data(sid, contactPhoneIndex(mapid));
    //setSmartValue(sid, SdPhoneIndex(mapid));
}
function phoneValueChange(sender) {

    var mapid = $(sender.replace('val', 'sel')).val();

    var va = $(sender).val();

    if ($('#phoneselect').data(mapid) != va) {
        $('#phoneselect').data(mapid, va);
    }

    for (var i = 0; i < 3; i++) {

        var lChar = (i + 1).toString();

        var valCtrl = sender.substring(0, sender.length - 1) + lChar;

        if (valCtrl != sender) {

            var selCtrl = valCtrl.replace('val', 'sel');

            if ($(selCtrl).val() == mapid) {
                $(valCtrl).val(va);
            }
        }
    }
}

function SdPhoneSelector(indx) {

    switch (indx) {
        case '0': return '11265';
        case '1': return '11266';
        case '2': return '11267';
        case '3': return '11268';
        case '4': return '11269';
        case '5': return '11270';
        case '6': return '11271';
        case '7': return '11272';
        case '8': return '11273';
        case '9': return '11274';
        case '10': return '11275';
        case '11': return '11276';
        case '12': return '11277';
        case '13': return '11278';
        case '14': return '11279';
        case '15': return '11280';
        case '16': return '11281';
        case '17': return '11282';
        case '18': return '11283';
    }
}

function SdPhoneIndex(mapid) {
    switch (mapid) {
        case '11265': return '0';
        case '11266': return '1';
        case '11267': return '2';
        case '11268': return '3';
        case '11269': return '4';
        case '11270': return '5';
        case '11271': return '6';
        case '11272': return '7';
        case '11273': return '8';
        case '11274': return '9';
        case '11275': return '10';
        case '11276': return '11';
        case '11277': return '12';
        case '11278': return '13';
        case '11279': return '14';
        case '11280': return '15';
        case '11281': return '16';
        case '11282': return '17';
        case '11283': return '18';
    }
}


