// jMVC v1.02 (c) Steven Sanderson - http://blog.codeville.net/ var jMVC=function(model,view,domNode,modelPostbackControl,controller){this.model=model;this.parsedView=this.__parseView(view);this.controller=controller;if(this.controller) this.controller.model=model;this.domNode=(typeof(domNode)=="string"?document.getElementById(domNode):domNode);this.modelPostbackControl=(typeof(modelPostbackControl)=="string"?document.getElementById(modelPostbackControl):modelPostbackControl);this.RefreshView();} jMVC.prototype={model:null,parsedView:null,controller:null,domNode:null,modelPostbackControl:null,autoRefreshView:true,RefreshView:function(){this.domNode.innerHTML=this.__applyViewToModel();if(this.modelPostbackControl&&this.model){this.modelPostbackControl.value=this.model.toJSONString();}},ParseJSONFromControl:function(control){control=(typeof(control)=="string"?document.getElementById(control):control);return eval("("+control.value+")");},LoadStringFromURL:function(url){var xmlhttp=(typeof(XMLHttpRequest)!="undefined")?new XMLHttpRequest():new ActiveXObject("Msxml2.XMLHTTP");xmlhttp.open("GET",url,false);xmlhttp.send(null);return xmlhttp.responseText;},__parseView:function(template){var blockStart=0;var inCode=false;var parts=[];while(blockStart",blockStart);else blockEnd=template.indexOf("<%",blockStart);if(blockEnd==-1) blockEnd=template.length;parts[parts.length]={"code":inCode,"text":template.substring(blockStart,blockEnd)};blockStart=blockEnd+2;inCode=!inCode;} return parts;},__applyViewToModel:function(){var script="";var lastWasLiteral=false;var __templateFramework=this;var model=this.model;var controller=this.controller;for(var i=0;i ) { }\". You supplied: "+fnText);var params=parsedText[1];var code=parsedText[2];return"(function("+params+") { return function() { "+code+";"+appendCode+" }; })("+params+");";}} // JSON if(!Object.prototype.toJSONString){Array.prototype.toJSONString=function(w){var a=[],i,l=this.length,v;for(i=0;i