﻿/* Bind delayed function */
(function($){
   $.fn.bindDelayed = function(event, fn, timeout, abort){
        var timer = null;
        $(this).bind(event, function(){
            timer = setTimeout(fn, timeout);
        });
        if(abort == undefined){
            return;
        }
        $(this).bind(abort, function(){
            if(timer != null){
                clearTimeout(timer);
            }
        });
    };
})(jQuery);

/* Touche event detect function */
(function($) {

var support = {};

var events = [
'touchstart',
'touchmove',
'touchend',
'gesturestart',
'gesturechange',
'gestureend'
];

var el = document.createElement('div');

for( i in events ) {
var eventName = events[i];
eventName = 'on' + eventName;
var isSupported = (eventName in el);
if (!isSupported) {
el.setAttribute(eventName, 'return;');
isSupported = typeof el[eventName] == 'function';
}
support[events[i]] = isSupported;
}

support.touches =
support.touchstart
&& support.touchend
&& support.touchmove;

support.gestures =
support.gesturestart &&
support.gesturechange &&
support.gestureend;

$.fn.browserTouchSupport = support;

})(jQuery);
