var JVAjaxCall = (function($){ var timeOut, ops = { delay: 30, href: location.href, debug: false, callback: false }, waitModals = [], jaxcall = {}, $jax = $(jaxcall), params = {}, callAjax = function(data,fn){ clearTimeout(timeOut); if(!data) return callAjax({},fn); if(typeof data === 'function') return callAjax({},data); else if(!fn) return callAjax(data,function(){}); data = $.extend({ jvjax: 1},params,data); if($jax.triggerHandler('ajaxstart',[data]) === false) return false; var success = function(rs){ if($jax.triggerHandler('ajaxsuccess',[rs]) === false) return false; jaxcall.assign(rs); fn(rs.customs); }; $.isReady = false; if(ops.post) var xhr = $.ajax({ type: 'POST', dataType: 'json', data: data, success: success }); else var xhr = $.getJSON(ops.href,data,success); xhr.always(function() { clearTimeout(timeOut); if(ops.delay) timeOut = setTimeout(callAjax,ops.delay * 1000); }); return xhr; }, shiftObject = function(obj){ for(var x in obj){ var item = {k:x,v:obj[x]}; delete obj[x]; return item; } }, head = $('head'), styleLoaded = {}, loadStyles = function(styles){ if(!styles || !styles.length) return; $.each(styles,function(k,v){ if(!v) return; if($.type(v) == 'string'){ head.append($('