﻿/*!
* jQuery xmlDOM Plugin v1.0
* http://outwestmedia.com/jquery-plugins/xmldom/
*
* Released: 2009-04-06
* Version: 1.0
*
* Copyright (c) 2009 Jonathan Sharp, Out West Media LLC.
* Dual licensed under the MIT and GPL licenses.
* http://docs.jquery.com/License
*/
(function($) {
    // IE DOMParser wrapper
    if (window['DOMParser'] == undefined && window.ActiveXObject) {
        DOMParser = function() { };
        DOMParser.prototype.parseFromString = function(xmlString) {
            var doc = new ActiveXObject('Microsoft.XMLDOM');
            doc.async = 'false';
            doc.loadXML(xmlString);
            return doc;
        };
    }

    $.xmlDOM = function(xml, onErrorFn) {
        try {
            var xmlDoc = (new DOMParser()).parseFromString(xml, 'text/xml');
            if ($.isXMLDoc(xmlDoc)) {
                var err = $('parsererror', xmlDoc);
                if (err.length == 1) {
                    throw ('Error: ' + $(xmlDoc).text());
                }
            } else {
                throw ('Unable to parse XML');
            }
        } catch (e) {
            var msg = (e.name == undefined ? e : e.name + ': ' + e.message);
            if ($.isFunction(onErrorFn)) {
                onErrorFn(msg);
            } else {
                $(document).trigger('xmlParseError', [msg]);
            }
            return $([]);
        }
        return $(xmlDoc);
    };
})(jQuery);
