forked from simsalabim/sisyphus
/
sisyphus.min.js
1 lines (1 loc) · 2.39 KB
/
sisyphus.min.js
1
(function(a,b){function c(b,c){if(!k())return!1;var e=location.hostname+location.pathname+location.search;a(b).each(function(){var b=a(this),f=b.find(":input");d(f,b,e,c),i(f,b,e,c)})}function d(b,c,d,i){var j=!1;b.each(function(){field=a(this);if(field.is(":button")||field.is(":submit"))return;var b=d+c[0].id+field.attr("name")+i.customKeyPrefix,g=localStorage.getItem(b);g&&(e(field,g,i),j=!0),field.is(":text")||field.is("textarea")?i.timeout||f(field,b,i):h(field,b,i)}),i.timeout&&g(b,d,i),j&&a.isFunction(i.onRestoreCallback)&&i.onRestoreCallback.call()}function e(a,b,c){a.is(":checkbox")&&b!=="false"&&a.attr("name").indexOf("[")===-1?a.attr("checked","checked"):a.is(":radio")?a.val()===b&&a.attr("checked","checked"):a.attr("name").indexOf("[")===-1?a.val(b):(b=b.split(","),a.val(b))}function f(b,c,d){a.browser.msie==null?b.get(0).oninput=function(){try{localStorage.setItem(c,b.val())}catch(e){}a.isFunction(d.onSaveCallback)&&d.onSaveCallback.call()}:b.get(0).onpropertychange=function(){try{localStorage.setItem(c,b.val()+"")}catch(e){}b.val()!=""&&a.isFunction(d.onSaveCallback)&&d.onSaveCallback.call()}}function g(b,c,d){setTimeout(function(b){function e(){b.each(function(){var b=a(this);if(b.is(":text")||b.is("textarea")){var e=c+b.parents("form").attr("id")+field.attr("name")+d.customKeyPrefix;try{localStorage.setItem(e,b.val())}catch(f){}}}),a.isFunction(d.onSaveCallback)&&d.onSaveCallback.call(),setTimeout(e,d.timeout*1e3)}return e}(b),d.timeout*1e3)}function h(b,c,d){b.change(function(){var e=b.val();b.is(":checkbox")&&(b.attr("name").indexOf("[")!=-1?(e=[],a("[name='"+b.attr("name")+"']:checked").each(function(){e.push(a(this).val())})):e=b.is(":checked")),b.is(":radio")&&(e=b.val());try{localStorage.setItem(c,e)}catch(f){}a.isFunction(d.onSaveCallback)&&d.onSaveCallback.call()})}function i(a,b,c,d){b.bind("submit reset",function(){j(a,b,c,d)})}function j(b,c,d,e){var f=!1;b.each(function(){var a=d+c[0].id+this.name;localStorage.removeItem(a),f=!0}),f&&a.isFunction(e.onReleaseDataCallback)&&e.onReleaseDataCallback.call()}function k(){try{return localStorage.getItem}catch(a){return!1}}a.fn.sisyphus=function(b){b=a.extend(a.fn.sisyphus.defaults,b),a.fn.sisyphus.options=a.extend(a.fn.sisyphus.defaults,b),c(this,b)},a.fn.sisyphus.defaults={excludeFields:null,customKeyPrefix:"",timeout:0,onSaveCallback:function(){},onRestoreCallback:function(){},onReleaseDataCallback:function(){}}})(jQuery,window)