/// jquery extensions

jQuery.fn.exists = function(){return jQuery(this).length>0;}

jQuery.expr[':'].regex = function(elem, index, match) {
    var matchParams = match[3].split(','),
        validLabels = /^(data|css):/,
        attr = {
            method: matchParams[0].match(validLabels) ? 
                        matchParams[0].split(':')[0] : 'attr',
            property: matchParams.shift().replace(validLabels,'')
        },
        regexFlags = 'ig',
        regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags);
    return regex.test(jQuery(elem)[attr.method](attr.property));
}

$.fn.strip_simple_formatting = function(){ return strip_simple_formatting($(this).html()) }

$.fn.scroll_focus = function() {
	var this_element = $(this);
    var x = this_element.offset().top - 100; // 100 provides buffer in viewport
    $('html,body').animate({scrollTop: x}, 500, function(){this_element.focus()});	   
}