var SourceRunner = jatX.Class({
	__init: function(opt) {
		this.temp_src = "/runner.php";
		this.container = jatX.$E("left_content");

		this.arrSrcArea = this.container.find("pre.source");

		this._create();
	},

	_create: function() {
		var $run_div = jatX.$E("<div>");
		var $run_button = jatX.$E("<button>");
		$run_button.html("运行");

		$run_div.appendChild($run_button);
		this.arrSrcArea.forEach(function(v) {
			var $div = $run_div.clone(true);
			v.insertSibling($div.$value(), "after");
			v.property({"contentEditable":true});
			$div.find("> button")[0].addEvent("click", this._onClick, this, [v]);
		}, this);

	},

	_onClick: function(e, area) {
		var src = area.text();
//		alert(src);
		this.run(src);
	},
	
	run: function(src) {
		var win = window.open("", "run", "");
		if(/<html|<script/.test(src)) {
			win.document.write(src);
		} else {
			win.document.write(this.html().replace("${src}", src));
		}
		win.document.close();
	},
	
	html: function() {
		var src = 
"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\
<html xmlns=\"http://www.w3.org/1999/xhtml\">\
 <head>\
  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\
  <title> new document </title>\
 </head>\
 <body>\
  <script type=\"text/javascript\">\
    ${src}\
  </script>\
 </body>\
</html>";
		return src;
	}
});

jatX.ready(function() {
	window.osr = new SourceRunner();
});