﻿
//var pfApiUrl = 'http://localhost:51441';
var pfApiUrl = 'https://pfApi.pfcloud.net';

var prViewModel = {
    accessToken: pfWebAccessToken,
    operation: "status",
    orders: [],
    medicalFacilities: [],
    message: "",
    prName: "",
    prDrugCompany: "",
    prStreet: "",
    prApt: "",
    prCity: "",
    prState: "",
    prZip: "",
    prAddressLine1: "",
    prAddressLine2: "",
    prPhone: "",
    prEmailAddress: "",
    err: "",
    action: "",
    showOrder: function (data, event) {
        CallerID = '#prMain';
        $("#prOrder").show();
        $("#prAccount").hide();
        $("#prMain").hide();
        prViewOrder(data.orderToken());
    },
    showAccount: function(data, event) {
        CallerID = '#prMain';
        $("#prAccount").show();
        $("#prOrder").hide();
        $("#prMain").hide();
        prLoadMedicalFacility(data.medicalFacilityToken);
    },
    updatePharmRep: function (data, event) {

    }

};

var pfWebAccessToken;

var prMedicalFacilityModel = {
    accessToken: pfWebAccessToken,
    operation: "",
    message: "",
    err: 0,
    medicalFacilityToken: "",
    medicalFacilityName: "",
    addressLine1: "",
    addressLine2: "",
    phone: "",
    nextOrderDate: "",
    remindDays: 0,
    remindNextOrder: false,
    notes: "",
    firstOrder: "",
    lastOrder: "",
    ytdSpent: "",
    lastYearSpent: "",
    totalSpent: "",
    ytdCount: 0,
    lastYearCount: 0,
    totalCount: 0,
    orders: [],
    showOrder: function (data, event) {
        CallerID = '#prAccount';
        $("#prOrder").show();
        $("#prAccount").hide();
        $("#prMain").hide();
        prViewOrder(data.orderToken());
    },
    updateMedicalFacility: function (data, event) {
        prMedicalFacilityModel.operation ="UPDATE";
        prLoadMedicalFacility();
    }

}


function pfWebChangeView(yx) {
    if (pfWebCurrentView != '') {
        $(yx).addClass("pfWebView");
        $(yx).removeClass("pfWebViewActive");
    }
    pfWebCurrentView = yx;
    $(yx).addClass("pfWebViewActive");
    $(yx).removeClass("pfWebView");

}


function prLogin() {
    try {
        prViewModel.operation = "LOGIN";
        prApiCall();
    } catch (err) {
        alert("Error: " + err.message);
    }
}


function prLoadMedicalFacility(medicalFacilityToken) {
    if (medicalFacilityToken != undefined) { prMedicalFacilityModel.medicalFacilityToken = medicalFacilityToken; }
    var formData = JSON.stringify(ko.mapping.toJS(prMedicalFacilityModel));
    var urlAddress = pfApiUrl + "/web/prLoadMedicalFacility";
    try {
        pfAppleSpinOn();
        jQuery.support.cors = true;
        $.ajax({
            type: "POST",
            url: urlAddress,
            dataType: 'json',
            contentType: 'application/json',
            data: formData,
            cache: false,
            timeout: 15000,
            success: function (data) {
                //alert("A:" + JSON.stringify(data));
                ko.mapping.fromJS(data, prMedicalFacilityModel);
                pfAppleSpinOff();
            },
            error: function (request, status, error) {
                pfAppleSpinOff();
                alert("prApiCal Ajax Error: " + error.message);
            }
        });
    } catch (err) {
        pfAppleSpinOff();
        alert("prApiCall Error:" + err.message);
    }

}

function prApiCall(operation) {
    if (operation != '' && operation != undefined) {
        prViewModel.operation = operation;
    }

    var formData = JSON.stringify(ko.mapping.toJS(prViewModel));
    var urlAddress = pfApiUrl + "/web/prApiCall";
    try {
        pfAppleSpinOn();
        jQuery.support.cors = true;
        $.ajax({
            type: "POST",
            url: urlAddress,
            dataType: 'json',
            contentType: 'application/json',
            data: formData,
            cache: false,
            timeout: 15000,
            success: function (data) {
                //alert("A:" + JSON.stringify(data));
                ko.mapping.fromJS(data, prViewModel);
                //alert("B:" + prViewModel.prName());
                pfAppleSpinOff();
            },
            error: function (request, status, error) {
                pfAppleSpinOff();
                alert("prApiCal Ajax Error: " + error.message);
            }
        });
    } catch (err) {
        pfAppleSpinOff();
        alert("prApiCall Error:" + err.message);
    }



}