/* Copyright The American College 2010 Don Myers */
mvc=new function(){this.base_url="/assets/js_controllers/";this.set=function(a,b,c){var d=a.split(',');d[--b]=c;return d.join(',')};this.get=function(a,b){var c=a.split(',');return c[--b]};this.params_set=function(a,b,c){$(a).attr("data-params",this.set($(a).attr("data-params"),b,c))};this.method_set=function(a,b){$(a).attr("data-method",b)};this.call=function(a,b){var c=$(a).attr("data-params");c=(c===undefined)?'':c.replace(/,/g,'","').replace(/%2C/gi,',');var d=$(a).attr("data-method")+'("'+c+'")';this.exec(d)};this.load=function(a){$.getScript(this.path+a+"Controller.js")};this.advclick=function(b,c,d){if(c!==null){$(b).attr('data-method',c)}if(d!==null){$(b).attr('data-params',d)}$(b).css("cursor","pointer").click(function(a){mvc.call(b,a)})};this.attach=function(c){var d=c.split('/');var e=d[d.length-1];$.getScript(this.base_url+c+"Controller.js",function(){var b=window[e+"Controller"];for(property in b){if(typeof(b[property])==="function"){$("#"+property).attr("data-method",e+'Controller.'+property);$("."+property).attr("data-method",e+'Controller.'+property)}}$("[data-method]").css("cursor","pointer").click(function(a){mvc.call(this,a)})})};this.validate=function(a){$("#"+a.error_id).html("");$("."+a.errors_class).remove();if(a.process_hook!=''){this.exec(a.process_hook)}if(a.is_valid){if(a.passed_hook!=''){this.exec(a.passed_hook)}}else{if(a.fail_hook!=''){this.exec(a.fail_hook)}$("#"+a.error_id).html(a.error);$("#"+a.debug_id).html(a.debug);for(var i in a.errors){switch(a.where){case'before':$("#"+a.errors[i][0]+a.errors_id_suffix).before(a.errors_pre+a.errors[i][1]+a.errors_post);break;case'inside':$("#"+a.errors[i][0]+a.errors_id_suffix).html(a.errors_pre+a.errors[i][1]+a.errors_post);break;case'after':$("#"+a.errors[i][0]+a.errors_id_suffix).after(a.errors_pre+a.errors[i][1]+a.errors_post);break}}if(a.goto!=-1){$("html, body").animate({scrollTop:a.goto},"slow")}}return a.is_valid};this.exec=function(a){var b=new Function(a);b()};this.view=function(a){for(property in a){var b=typeof(a[property]);if(b==="string"||b==="number"){$("#"+property).html(a[property]);$("."+property).html(a[property])}}};this.model=function(a){return $(a).serialize()}};

