Current File : /home/itiffy/public_html/blog/wp-content/plugins/wp-invoice/static/scripts/jquery.field.min.js |
!function($){var defaults={delimiter:",",checkboxRangeKeyBinding:"shiftKey",useArray:!1};$.Field={version:"0.9.1",setDefaults:function(options){$.extend(defaults,options)},setProperty:function(prop,value){defaults[prop]=value},getProperty:function(prop){return defaults[prop]}},$.fn.fieldArray=function(v){var t=$type(v);return"undefined"==t?getValue(this):(("string"==t||"number"==t)&&(v=v.toString().split(defaults.delimiter),t="array"),"array"==t?setValue(this,v):this)},$.fn.getValue=function(){return getValue(this).join(defaults.delimiter)};var getValue=function(jq){var v=[];return jq.each(function(lc){var t=getType(this);switch(t){case"checkbox":case"radio":this.checked&&v.push(this.value);break;case"select":if("select-one"==this.type)v.push(-1==this.selectedIndex?"":getOptionVal(this[this.selectedIndex]));else for(var i=0;i<this.length;i++)this[i].selected&&v.push(getOptionVal(this[i]));break;case"text":v.push(this.value)}}),v};$.fn.setValue=function(v){return setValue(this,v?v.toString().split(defaults.delimiter):[""])};var setValue=function(jq,v){return jq.each(function(lc){var x,t=getType(this);switch(t){case"checkbox":case"radio":valueExists(v,this.value)?this.checked=!0:this.checked=!1;break;case"select":for(var bSelectOne="select-one"==this.type,bKeepLooking=!0,i=0;i<this.length;i++)if(x=getOptionVal(this[i]),bSelectItem=valueExists(v,x),bSelectItem){if(this[i].selected=!0,bSelectOne){bKeepLooking=!1;break}}else bSelectOne||(this[i].selected=!1);bSelectOne&&bKeepLooking&&this[0]&&(this[0].selected=!0);break;case"text":this.value=v.join(defaults.delimiter)}}),jq};$.fn.formHash=function(inHash){var bGetHash=0==arguments.length,stHash={};return this.filter("form").each(function(){for(var el,n,jel,els=this.elements,stProcessed={},i=0,elsMax=els.length;elsMax>i;i++)if(el=els[i],n=el.name,n&&!stProcessed[n]){var jel=$(el.tagName.toLowerCase()+"[@name='"+n+"']",this);bGetHash?stHash[n]=jel[defaults.useArray?"fieldArray":"getValue"]():"undefined"!=typeof inHash[n]&&jel[defaults.useArray?"fieldArray":"setValue"](inHash[n]),stProcessed[n]=!0}}),bGetHash?stHash:this},$.fn.autoAdvance=function(callback){return this.find(":text,:password,textarea").bind("keyup",function(e){var $field=$(this),iMaxLength=parseInt($field.attr("maxlength"),10);if(isNaN(iMaxLength)||"|9|16|37|38|39|40|".indexOf("|"+e.keyCode+"|")>-1)return!0;if($field.getValue().length>=$field.attr("maxlength")){var $next=$field.moveNext().select();$.isFunction(callback)&&callback.apply($field,[$next])}})},$.fn.moveNext=function(){return this.moveIndex("next")},$.fn.movePrev=function(){return this.moveIndex("prev")},$.fn.moveIndex=function(i){var aPos=getFieldPosition(this);return"next"==i?i=aPos[0]+1:"prev"==i&&(i=aPos[0]-1),0>i?i=aPos[1].length-1:i>=aPos[1].length&&(i=0),$(aPos[1][i]).trigger("focus")},$.fn.getTabIndex=function(){return getFieldPosition(this)[0]};var getFieldPosition=function(jq){var $field=jq.filter("input select textarea").get(0),aTabIndex=[],aPosIndex=[];if(!$field)return[-1,[]];$.each($field.form.elements,function(i,o){"FIELDSET"==o.tagName||o.disabled||(o.tabIndex>0?aTabIndex.push(o):aPosIndex.push(o))}),aTabIndex.sort(function(a,b){return a.tabIndex-b.tabIndex}),aTabIndex=$.merge(aTabIndex,aPosIndex);for(var i=0;i<aTabIndex.length;i++)if(aTabIndex[i]==$field)return[i,aTabIndex];return[-1,aTabIndex]};$.fn.limitSelection=function(limit,options){var opt=jQuery.extend(limit&&limit.constructor==Object?limit:{limit:limit,onsuccess:function(limit){return!0},onfailure:function(limit){return alert("You can only select a maximum a of "+limit+" items."),!1}},options),self=this,getCount=function(el){return"select-multiple"==el.type?$("option:selected",self).length:"checkbox"==el.type?self.filter(":checked").length:0},undoSelect=function(){return setValue(self,getValue(self).slice(0,opt.limit)),opt.onfailure.apply(self,[opt.limit])};return this.bind(self[0]&&"select-multiple"==self[0].type?"change":"click",function(){return getCount(this)>opt.limit?"select-multiple"==this.type?undoSelect():opt.onfailure.apply(self,[opt.limit]):(opt.onsuccess.apply(self,[opt.limit]),!0)})},$.fn.createCheckboxRange=function(callback){var iLastSelection=0,self=this,bCallback=$.isFunction(callback);return bCallback&&this.each(function(){callback.apply(this,[$(this).is(":checked")])}),this.each(function(){if("checkbox"!=this.type)return!1;var updateLastCheckbox=function(e){iLastSelection=self.index(e.target)},checkboxClicked=function(e){var bSetChecked=this.checked,current=self.index(e.target),low=Math.min(iLastSelection,current),high=Math.max(iLastSelection,current);if(bCallback&&$(this).each(function(){callback.apply(this,[bSetChecked])}),e[defaults.checkboxRangeKeyBinding]){for(var i=low;high>i;i++){var item=self.eq(i).attr("checked",bSetChecked?"checked":"");bCallback&&callback.apply(item[0],[bSetChecked])}return!0}};return $(this).unbind("blur",updateLastCheckbox).unbind("click",checkboxClicked).bind("blur",updateLastCheckbox).bind("click",checkboxClicked),!0})};var getType=function(el){var t=el.type;switch(t){case"select":case"select-one":case"select-multiple":t="select";break;case"text":case"hidden":case"textarea":case"password":case"button":case"submit":case"submit":t="text";break;case"checkbox":case"radio":t=t}return t},getOptionVal=function(el){return jQuery.browser.msie&&!el.attributes.value.specified?el.text:el.value},valueExists=function(a,v){return $.inArray(v,a)>-1},$type=function(o){var t=(typeof o).toLowerCase();return"object"==t&&(o instanceof Array?t="array":o instanceof Date&&(t="date")),t}}(jQuery);