jQuery.fn.grewform=function(b){jQuery("input,textarea").live("keyup change",function(g){var f=[33,34,36,35,45,38,40,37,39];if(g.keyCode&&jQuery.inArray(g.keyCode,code)<0){jQuery(this).attr("value",this.value)}});var c=jQuery(this);for(var a in b){var d=new Rule(a,c,b[a])}c.find("*").keyup(function(){var e=setInterval(function(){clearInterval(e);run_rules()},300)});jQuery(document).ready(function(){run_rules()});return c.find("*").change(function(){run_rules()})};function run_rules(){for(var a in Rule.all){(function(c){var b=setInterval(function(){if(!c.form.find("*").is(":animated")){clearInterval(b);if(c.unmatches()){c.run_unmatch_actions()}}},200)}(Rule.all[a]))}for(var a in Rule.all){(function(c){var b=setInterval(function(){if(!c.form.find("*").is(":animated")){clearInterval(b);if(c.matches()){c.run_match_actions()}}},200)}(Rule.all[a]))}}function Rule(b,d,a){if(typeof Rule.id=="undefined"){Rule.id=0;Rule.blip_ptr="hgo_grewform_rule";Rule.unmtach_by_blip=function(f){for(var e in Rule.all){if(Rule.all[e].blip===f){Rule.all[e].run_unmatch_actions()}}};Rule.all=[]}this.id=Rule.id++;this.blip=Rule.blip_ptr+this.id;this.selectors=arrayfy((""+b).split("AND"));jQuery.each(this.selectors,function(e){return function(g,f){e[g]=(""+f)}}(this.selectors));this.selector=arr_to_selector(this.selectors);this.trigged=false;this.match_actions=[];this.unmatch_actions=[];this.raw=a;this.raw_selector=b;this.form=d;for(var c in a){generate_actions(c,d,this)}this.matches=function(){for(var f in this.selectors){var e=this.selectors[f];if((!this.trigged)){if(this.form.find(e).filter("option:first").length>0){if(this.form.find(e).parent("select:first").length==0){return false}}else{if(this.form.find(e).filter(":first").length==0){return false}}}else{return false}}return true};this.unmatches=function(){if(!this.trigged){return false}for(var f in this.selectors){var e=this.selectors[f];if(this.form.find(e+":first").length==0){return true}}return false};this.run_match_actions=function(){this.trigged=true;var e=this.form.find(this.selector);e.addClass(this.blip);for(var f in this.match_actions){this.match_actions[f].call(this)}e.trigger("change")};this.run_match_actions.first_run=true;this.run_unmatch_actions=function(){this.trigged=false;var e=jQuery("."+this.blip);e.removeClass(this.blip);for(var f in this.unmatch_actions){this.unmatch_actions[f].call(this)}e.trigger("change")};Rule.all.push(this)}function generate_actions(d,e,f){switch(d){case"show":f.match_actions.push(function(g){return function(){if(g.is("option")){g.show()}else{g.slideDown()}}}(e.find(f.raw[d])));f.unmatch_actions.push(function(g){return function(){cascade_unmatch(g);if(g.is("option")){g.hide()}else{g.slideUp()}}}(e.find(f.raw[d])));break;case"hide":f.match_actions.push(function(g){return function(){if(g.is("option")){g.hide()}else{g.slideUp()}}}(e.find(f.raw[d])));f.unmatch_actions.push(function(g){return function(){cascade_unmatch(g);if(g.is("option")){g.show()}else{g.slideDown()}}}(e.find(f.raw[d])));break;case"set_value":f.match_actions.push(function(g){return function(){var h=this;jQuery.each(g,function(i,j){jQuery.each(h.form.find(i),function(){var k=jQuery(this).tagName;if(k=="select"){elems.find("option").removeAttr("selected");elems.find("option [value="+j+"]").attr("selected","selected")}else{jQuery(this).val(j)}})})}}(f.raw[d]));break;case"add_options":for(var a in f.raw[d]){var c=f.raw[d][a];if(typeof c=="function"){f.match_actions.push(function(i,g,h){return function(){var k=h();for(var j in k){var l=i.find(g);jQuery("<option></option>").html(k[j]).val(j).appendTo(l)}if(this.run_match_actions.first_run){for(var j in k){this.unmatch_actions.push(function(o,m,n){return function(){cascade_unmatch(o.children(m).children("option[value="+n+"]"));o.find(m).children().remove("option[value="+n+"]")}}(e,g,j))}this.run_match_actions.first_run=false}}}(e,a,c))}else{for(var b in c){f.match_actions.push(function(k,g,i,j){return function(){var h=k.find(g);jQuery("<option></option>").html(j).val(i).appendTo(h)}}(e,a,b,c[b]));f.unmatch_actions.push(function(i,g,h){return function(){cascade_unmatch(i.children(g).children("option[value="+h+"]"));i.find(g).children().remove("option[value="+h+"]")}}(e,a,b))}}}break;case"disable":f.match_actions.push(function(g){return function(){g.attr("disabled","disabled")}}(e.find(f.raw[d])));f.unmatch_actions.push(function(g){return function(){cascade_unmatch(g);g.removeAttr("disabled")}}(e.find(f.raw[d])));break;case"enable":f.match_actions.push(function(g){return function(){g.removeAttr("disabled")}}(e.find(f.raw[d])));f.unmatch_actions.push(function(g){return function(){cascade_unmatch(g);g.attr("disabled","disabled")}}(e.find(f.raw[d])));break;case"check":f.match_actions.push(function(g){return function(){g.attr("checked","checked")}}(e.find(f.raw[d])));f.unmatch_actions.push(function(g){return function(){cascade_unmatch(g);g.removeAttr("checked")}}(e.find(f.raw[d])));break;case"uncheck":f.match_actions.push(function(g){return function(){g.removeAttr("checked")}}(e.find(f.raw[d])));f.unmatch_actions.push(function(g){return function(){cascade_unmatch(g);g.attr("checked","checked")}}(e.find(f.raw[d])));break;case"custom":f.match_actions.push(function(h,g){return function(){h.call(g)}}(f.raw[d]["match"],jQuery(f.selector)));f.unmatch_actions.push(function(h,g){return function(){h.call(g)}}(f.raw[d]["unmatch"],jQuery(f.selector)));break}}function cascade_unmatch(a){jQuery.each(a,function(c,b){if(jQuery(this).attr("class")!==undefined){var d=jQuery(this).attr("class").split(" ")}else{return}jQuery.each(d,function(f,e){Rule.unmtach_by_blip(e)});cascade_unmatch(a.children())})}function arrayfy(a){if(a.constructor!=Array){return[a]}return a}function arr_to_selector(a){res="";for(var b in a){res+=(""+a[b])+","}return res};

