osis D: some rodenticides contain cholecalciferol or related substances; ingestion of certain plants, egSolanumspp Poisonous plants: overview ; excessive dietary supplementation.
Chronic renal failure, glomerulonephritis Kidney: renal failure.
Acute renal disease Kidney: renal failure.
Congenital renal disorders in young animals, eg polycystic kidneys Kidney: polycystic disease, renal hypoplasia.
Granulomatous diseases, eg histoplasmosis Histoplasmosis, mycobacteriosis Mycobacteriosis, fungal infections may cause hypercalcemia.
Acidifying diets may be associated with hypercalcemia.
Nephrotoxins (aminoglycoside antibiotics Therapeutics: aminoglycosides, Vitamin K Nutrition: vitamins, heavy metals Toxicity: lead, eg mercury, NSAIDs Toxicity: non-steroidal anti-inflammatory (NSAID) ).
Calcium is measured as total serum calcium and ionized calcium (biologically active).
Equine serum calcium levels are closely related to dietary intake.
Equines excrete a larger proportion of absorbed calcium in their urine than other mammals.
Parathyroid hormone (PTH), calcitonin and Vitamin D act in conjunction with the intestine, bone, kidneys and parathyroid glands to maintain calcium homeostasis.
Organ dysfunction or hormonal imbalance may disturb calcium homeostasis → hypercalcemia.
Vitamin D (calcitriol / 1,25 dihydroxycholecalciferol) Vitamin D3 increases enteric calcium absorption, increases renal calcium resorption and increases calcium mobilization from bone via osteoblasts and osteoclasts.
The kidney converts Vitamin D to its final active form.
Parathyroid hormone (PTH), released in response to low calcium or high phosphate, stimulates osteocyte activity, moving calcium from bone into the circulation. PTH also causes renal phosphate retention.
Humoral hypercalcemia of malignancy - neoplasia may cause hypercalcemia via release of humoral factors such as osteoclast activating factor, calcitriol, prostaglandins, transforming growth factor, parathyroid hormone, and parathyroid hormone-related peptide.
Excessive PTH-production may arise from parathyroid tumors in a primary fashion or from secondary hyperparathyroidism (chronic renal failure, via a complex process including phosphate retention amongst other mechanisms, leads to renal secondary hyperparathyroidism).
Granulomatous disease may cause hypercalcemia via increased calcitriol release from macrophages.
Excessive circulating calcium, on exceeding a critical Ca x P solubility product, leads to calcium deposition in tissues such as lungs, kidney, gastric mucosa, blood vessel walls, and myocardium (metastatic calcification). Kidney and lung damage from such metastatic calcification can prove fatal.
Renal concentrating ability is impaired under hypercalcemia → dehydration.
Renal tissue mineralization may → hypercalcemia + hyperphosphatemia.
Excess extracellular calcium reduces membrane excitability, resulting in dysrhythmias (bradycardia → tachycardia +/- extrasystole or ectopic beats → ventricular fibrillation Heart: ventricular fibrillation ) and muscle/smooth muscle weakness.
Half of serum calcium is protein-bound, hence hypoalbuminemia will lower the total serum calcium measurement (and may mask high ionized calcium levels).
Hypercalcemia → calcitonin release → decreased plasma calcium.
Vitamin D intoxication can be very rapid, with rapid tissue mineralization.
Renal failure typically has a more chronic course.
Fluid therapy in hypercalcemic horses should not contain any calcium.
Hypercalcemic horses should not be fed legume hays, eg Alfalfa, clover, calcium supplements or high calcium diets Nutrition: minerals.
Brewer B D (1982) Disorders of equine calcium metabolism. Comp Cont Educ Pract Vet 4, S244-S252 VetMedResource.
In order to implement, facilitate and accelerate a transition to non-animal alternatives, graded tax, increasing with time, on all consumer purchases of meat, fish, dairy or eggs in supermarkets or restaurants, or any other animal products (such as fur, leather, wool, down) can be applied. All tax revenue is used as discount on the purchase of non-animal alternatives.
Also graded tax on all production and vending of meat, fish, dairy or eggs, or any other animal products (such as fur, leather, wool, down). All tax revenue can be claimed by producers and vendors as rebate for the production and sale of non-animal alternatives.
All unclaimed surplus from the tax revenue is used to provide sanctuaries for animals that survive from the food and fur industries.
Harnad, S (2014) Animal pain and human pleasure: ethical dilemmas outside the classroom.
Bekoff, M & Harnad, S (2015) Doing the Right Thing: An Interview With Stevan Harnad.
Harnad, S (2016) Animal sentience: The other-minds problem Animal Sentience.
Stevan Harnad - 24.01.2017.﻿// ----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// ----------------------------------------------------------------------------

var _ = require('../Utilities/Extensions'),
    easyAuthRedirectUriKey = 'post_login_redirect_url';

exports.supportsCurrentRuntime = function () {
    /// <summary>
    /// Determines whether or not this login UI is usable in the current runtime.
    /// </summary>

    return isWebAuthBrokerAvailable();
};

exports.login = function (startUri, endUri, callback) {
    /// <summary>
    /// Displays the login UI and calls back on completion
    /// </summary>

    // Define shortcuts for namespaces
    var windowsWebAuthBroker = Windows.Security.Authentication.Web.WebAuthenticationBroker;
    var noneWebAuthOptions = Windows.Security.Authentication.Web.WebAuthenticationOptions.none;
    var successWebAuthStatus = Windows.Security.Authentication.Web.WebAuthenticationStatus.success;
    var activationKindWebAuthContinuation = Windows.ApplicationModel.Activation.ActivationKind.webAuthenticationBrokerContinuation;

    var webAuthBrokerSuccessCallback = null;
    var webAuthBrokerErrorCallback = null;
    var webAuthBrokerContinuationCallback = null;


    // define callbacks for WebAuthenticationBroker
    webAuthBrokerSuccessCallback = function (result) {
        var error = null;
        var token = null;

        if (result.responseStatus!== successWebAuthStatus) {
            error = result;
        }
        else {
            var callbackEndUri = result.responseData;
            var tokenAsJson = null;
            var i = callbackEndUri.indexOf('#token=');
            if (i > 0) {
                tokenAsJson = decodeURIComponent(callbackEndUri.substring(i + 7));
            }
            else {
                i = callbackEndUri.indexOf('#error=');
                if (i > 0) {
                    error = decodeURIComponent(callbackEndUri.substring(i + 7));
                }
            }

            if (tokenAsJson!== null) {
                try {
                    token = JSON.parse(tokenAsJson);
                }
                catch (e) {
                    error = e;
                }
            }
        }

        callback(error, token);
    };
    webAuthBrokerErrorCallback = function (error) {
        callback(error, null);
    };
    // Continuation callback is used when we're running on WindowsPhone which uses 
    // AuthenticateAndContinue method instead of AuthenticateAsync, which uses different async model
    // Continuation callback need to be assigned to Application's 'activated' event.
    webAuthBrokerContinuationCallback = function (activationArgs) {
        if (activationArgs.detail.kind === activationKindWebAuthContinuation) {
            var result = activationArgs.detail.webAuthenticationResult;
            if (result.responseStatus == successWebAuthStatus) {
                webAuthBrokerSuccessCallback(result);
            } else {
                webAuthBrokerErrorCallback(result);
            }
            WinJS.Application.removeEventListener('activated', webAuthBrokerContinuationCallback);
        }
    };

    // If no endURI was given, we construct the startUri with a redirect parameter 
    // pointing to the app SID for single sign on.
    // Single sign-on requires that the application's Package SID 
    // be registered with the Microsoft Azure Mobile Service, but it provides a better 
    // experience as HTTP cookies are supported so that users do not have to
    // login in everytime the application is launched.
    if (endUri) {
        endUri = new Windows.Foundation.Uri(endUri);
    } else {
        var ssoQueryParameter = {},
            redirectUri = windowsWebAuthBroker.getCurrentApplicationCallbackUri().absoluteUri;

        ssoQueryParameter[easyAuthRedirectUriKey] = redirectUri;
        startUri = _.url.combinePathAndQuery(startUri, _.url.getQueryString(ssoQueryParameter));
    }
    
    startUri = new Windows.Foundation.Uri(startUri);
    
    // If authenticateAndContinue method is available, we should use it instead of authenticateAsync.
    // In the event that it