﻿/*
Patch concernant Internet Explorer lors d'un drag (drag&drop) apres une requete AJAX,
IE générant une exception.

Explication : 
jQuery essaye d'apeler des éléments (div) n'existant plus dans le DOM.
La requete AJAX les ayant remplacés par de nouveaux éléments.

Code générant l'erreur sous IE : 
"var G=this[0].getBoundingClientRect()".

Source : http://dev.jquery.com/ticket/4996
*/

if (document.documentElement["getBoundingClientRect"]) {
    jQuery.fn.offset = function() {
        if (!this[0]) return { top: 0, left: 0 };
        if (this[0] === this[0].ownerDocument.body) return jQuery.offset.bodyOffset(this[0]);
        var box;
        try {
            box = this[0].getBoundingClientRect()
        } catch (ex) {
            box = { top: 0, left: 0, right: 0, bottom: 0 }
        }
        
        var doc = this[0].ownerDocument, body = doc.body, docElem = doc.documentElement,
             clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,
             top = box.top + (self.pageYOffset || jQuery.boxModel && docElem.scrollTop || body.scrollTop) - clientTop,
             left = box.left + (self.pageXOffset || jQuery.boxModel && docElem.scrollLeft || body.scrollLeft) - clientLeft;
             
        return { top: top, left: left };
    };
}

