(function(e){var c={delimiter:",",checkboxRangeKeyBinding:"shiftKey",useArray:false};
e.Field={version:"0.9.2",setDefaults:function(k){e.extend(c,k)
},setProperty:function(l,k){c[l]=k
},getProperty:function(k){return c[k]
}};
e.fn.fieldArray=function(k){var l=h(k);
if(l=="undefined"){return d(this)
}if(l=="string"||l=="number"){k=k.toString().split(c.delimiter);
l="array"
}if(l=="array"){return b(this,k)
}return this
};
e.fn.getValue=function(){return d(this).join(c.delimiter)
};
var d=function(l){var k=[];
l.each(function(o){var n=i(this);
switch(n){case"checkbox":case"radio":if(this.checked){k.push(this.value)
}break;
case"select":if(this.type=="select-one"){k.push((this.selectedIndex==-1)?"":f(this[this.selectedIndex]))
}else{for(var m=0;
m<this.length;
m++){if(this[m].selected){k.push(f(this[m]))
}}}break;
case"text":k.push(this.value);
break
}});
return k
};
e.fn.setValue=function(k){return b(this,((!k&&(k!==0))?[""]:k.toString().split(c.delimiter)))
};
var b=function(l,k){l.each(function(q){var p=i(this),m;
switch(p){case"checkbox":case"radio":if(g(k,this.value)){this.checked=true
}else{this.checked=false
}break;
case"select":var r=(this.type=="select-one");
var n=true;
for(var o=0;
o<this.length;
o++){m=f(this[o]);
bSelectItem=g(k,m);
if(bSelectItem){this[o].selected=true;
if(r){n=false;
break
}}else{if(!r){this[o].selected=false
}}}if(r&&n&&!!this[0]){this[0].selected=true
}break;
case"text":this.value=k.join(c.delimiter);
break
}});
return l
};
e.fn.formHash=function(k){var m=(arguments.length==0);
var l={};
this.filter("form").each(function(){var r=this.elements,s,u,p={},t;
for(var q=0,o=r.length;
q<o;
q++){s=r[q];
u=s.name;
if(!u||p[u]){continue
}var t=e(s.tagName.toLowerCase()+"[name='"+u+"']",this);
if(m){l[u]=t[c.useArray?"fieldArray":"getValue"]()
}else{if(typeof k[u]!="undefined"){t[c.useArray?"fieldArray":"setValue"](k[u])
}}p[u]=true
}});
return(m)?l:this
};
e.fn.autoAdvance=function(k){return this.find(":text,:password,textarea").bind("keyup.autoAdvance",function(n){var m=e(this),o=parseInt(m.attr("maxlength"),10);
if(isNaN(o)||("|9|16|37|38|39|40|".indexOf("|"+n.keyCode+"|")>-1)){return true
}if(m.getValue().length>=m.attr("maxlength")){var l=m.moveNext().select();
if(e.isFunction(k)){k.apply(m,[l])
}}})
};
e.fn.moveNext=function(){return this.moveIndex("next")
};
e.fn.movePrev=function(){return this.moveIndex("prev")
};
e.fn.moveIndex=function(l){var k=a(this);
if(l=="next"){l=k[0]+1
}else{if(l=="prev"){l=k[0]-1
}}if(l<0){l=k[1].length-1
}else{if(l>=k[1].length){l=0
}}return e(k[1][l]).trigger("focus")
};
e.fn.getTabIndex=function(){return a(this)[0]
};
var a=function(o){var n=o.filter("input, select, textarea").get(0),k=[],l=[];
if(!n){return[-1,[]]
}e.each(n.form.elements,function(p,q){if(q.tagName!="FIELDSET"&&!q.disabled){if(q.tabIndex>0){k.push(q)
}else{l.push(q)
}}});
k.sort(function(q,p){return q.tabIndex-p.tabIndex
});
k=e.merge(k,l);
for(var m=0;
m<k.length;
m++){if(k[m]==n){return[m,k]
}}return[-1,k]
};
e.fn.limitSelection=function(l,n){var o=jQuery.extend((l&&l.constructor==Object?l:{limit:l,onsuccess:function(q){return true
},onfailure:function(q){alert("You can only select a maximum a of "+q+" items.");
return false
}}),n);
var m=this;
var k=function(q){if(q.type=="select-multiple"){return e("option:selected",m).length
}else{if(q.type=="checkbox"){return m.filter(":checked").length
}}return 0
};
var p=function(){b(m,d(m).slice(0,o.limit));
return o.onfailure.apply(m,[o.limit])
};
return this.bind((!!m[0]&&m[0].type=="select-multiple")?"change.limitSelection":"click.limitSelection",function(){if(k(this)>o.limit){return(this.type=="select-multiple")?p():o.onfailure.apply(m,[o.limit])
}o.onsuccess.apply(m,[o.limit]);
return true
})
};
e.fn.createCheckboxRange=function(o){var n=jQuery.extend((o&&o.constructor==Object?o:{bind:c.checkboxRangeKeyBinding,onclick:o}),o);
var m=0,l=this,k=e.isFunction(n.onclick);
if(k){this.each(function(){n.onclick.apply(this,[e(this).is(":checked")])
})
}return this.each(function(){if(this.type!="checkbox"){return false
}var q=this;
var p=function(s){m=l.index(s.target)
};
var r=function(x){var y=this.checked,w=l.index(x.target),s=Math.min(m,w),v=Math.max(m+1,w);
if(k){e(this).each(function(){n.onclick.apply(this,[y])
})
}if(!x[n.bind]){return
}for(var t=s;
t<v;
t++){var u=l.eq(t).attr("checked",y?"checked":"");
if(k){n.onclick.apply(u[0],[y])
}}return true
};
e(this).unbind("click.createCheckboxRange").bind("click.createCheckboxRange",r).bind("click.createCheckboxRange",p);
return true
})
};
var i=function(l){var k=l.type;
switch(k){case"select":case"select-one":case"select-multiple":k="select";
break;
case"text":case"hidden":case"textarea":case"password":case"button":case"submit":case"submit":k="text";
break;
case"checkbox":case"radio":k=k;
break
}return k
};
var f=function(k){return jQuery.browser.msie&&!(k.attributes.value.specified)?k.text:k.value
};
var g=function(k,l){return(e.inArray(l,k)>-1)
};
var h=function(l){var k=(typeof l).toLowerCase();
if(k=="object"){if(l instanceof Array){k="array"
}else{if(l instanceof Date){k="date"
}}}return k
};
var j=function(l,k){return(h(l)==String(k).toLowerCase())
}
})(jQuery);
