// Provide a cross-browser interface to a few simple drawing primitives $.fn.simpledraw = function (width, height, useExisting, interact) {

var target, mhandler;
if (useExisting && (target = this.data('_jqs_vcanvas'))) {
    return target;
}

if ($.fn.sparkline.canvas === false) {
    // We've already determined that neither Canvas nor VML are available
    return false;

} else if ($.fn.sparkline.canvas === undefined) {
    // No function defined yet -- need to see if we support Canvas or VML
    var el = document.createElement('canvas');
    if (!!(el.getContext && el.getContext('2d'))) {
        // Canvas is available
        $.fn.sparkline.canvas = function(width, height, target, interact) {
            return new VCanvas_canvas(width, height, target, interact);
        };
    } else if (document.namespaces && !document.namespaces.v) {
        // VML is available
        document.namespaces.add('v', 'urn:schemas-microsoft-com:vml', '#default#VML');
        $.fn.sparkline.canvas = function(width, height, target, interact) {
            return new VCanvas_vml(width, height, target);
        };
    } else {
        // Neither Canvas nor VML are available
        $.fn.sparkline.canvas = false;
        return false;
    }
}

if (width === undefined) {
    width = $(this).innerWidth();
}
if (height === undefined) {
    height = $(this).innerHeight();
}

target = $.fn.sparkline.canvas(width, height, this, interact);

mhandler = $(this).data('_jqs_mhandler');
if (mhandler) {
    mhandler.registerCanvas(target);
}
return target;

};

$.fn.cleardraw = function () {

var target = this.data('_jqs_vcanvas');
if (target) {
    target.reset();
}

};