/* 
 *  创建修改区域
/*----------------------------------------------------------------*/

function InstEdit(eObj, reqInfo ){
	/*
	reqInfo.attrs = {datatype:"safechar",min:1,max:250,requre:true };
	reqInfo.request = {method:'post',onComplete:callback, parameters:'',... };
	reqInfo.sendUrl
	reqInfo.fieldType, reqInfo.style, reqInfo.formName, reqInfo.formTitle
	*/
	var req = reqInfo;
	var fname='_instEditForm'||req.formName;
	var fmethod = 'post'||req.request.method;
	var obj = eObj;
	initEditor();
	function createEditor( ){
		var box;
		if( req.fieldType!='textarea'){
			box = createInput(req.fieldType,req.attrs.name,'');
			box.style.width = Math.max(obj.offsetWidth,150)+"px";
		}
		else{
			box =createTextArea( req.attrs.name );
			box.style.width = Math.max(obj.offsetWidth,150)+"px";
			box.style.height = Math.max(obj.offsetHeight,50)+"px";
		}	
		for( var i in req.attrs ){
			box[i] = req.attrs[i];
		}
		box.value=obj.innerHTML.unfixHTML();
		box.style.background = "#fbffcc";
		box.style.border = "1px inset #fff";
		box.style.fontSize = obj.style.fontSize;
		box.style.fontFamily = obj.style.fontFamily;
		box.style.fontWeight = obj.style.fontWeight;
		for( var i in req.style ){
			box.style[i] = req.style[i];
		}
		box.select();
		return box;
	}
	function createTextArea( bname, dstyle){
		o = $C("textarea");
		o.setAttribute("id",bname);
		o.setAttribute("name",bname);
		dstyle && (o.style.cssText = dstyle);
		return o;
	}
	function createInput( btype,bname,bvalue,dstyle){
		o= $C("input");
		o.setAttribute("type",btype);
		o.setAttribute("id",bname);
		o.setAttribute("name",bname);
		o.setAttribute("value",bvalue);
		// type='"+btype+"' name='"+bname+"' value='"+bvalue+"'>" );
		dstyle && (o.style.cssText = dstyle);
		return o;
	}
	function createDiv(content,dname, dstyle){
		o= $C("div" );
		dname && (o.id = dname);
		content && (o.innerHTML = content);
		dstyle && (o.style.cssText = dstyle);
		return o;
	}
	function createForm(){
		if($(fname))	return;
		
		f = $C("form");
		f.setAttribute("id",fname);
		f.setAttribute("name",fname);
		f.setAttribute("method",fmethod);
		
		p = getPosition(obj);
		x = Math.max( window.screen.width/2 -200, p.x );
		y = Math.max( window.screen.height/2 -200, p.y );
		css = "display:;position:absolute;z-index:120;left:"+x+"px;top:"+y+"px;padding:8px;background:#EEE;border:2px outset;"
		f.style.cssText = css;
		$A(f);

		t = createDiv(req.formTitle||'编辑内容');
		t.style.font = "12px normal";
		$A( t, f );

		$A( createEditor(req), f );

		b = $C("div" );
		$A( createInput('button',fname+'_editbtn','确定','width:80px;'), b );
		$A( createInput('button',fname+'_closebtn','取消','width:80px;'), b );
		$A(b,f);

		$(fname+"_closebtn").onclick=closeEditor;
		$(fname+"_editbtn").onclick=submitEditor;
		$(fname).onsubmit=submitEditor;
		showFloat(f);
	}
	function closeEditor(){
		$R($(fname));
		closeFloat();
	}
	function submitEditor(){
		ret = Validator.checkForm( $(fname),1 );
		if( !ret ) return false;
		v = $(fname).elements[req.attrs.name].value.stripScripts();
		if( obj.innerHTML == v ){
			closeEditor();
			return false;
		}
		v = escape(v);
		oreq = {};
		for( var i in req.request ){
			oreq[i] = req.request[i];
		}
		oreq.obj = obj;
		oreq.parameters = req.request.parameters||'';
		oreq.parameters += ("&"+req.attrs.name+"="+v);
		if( oreq.parameters.indexOf("&")==0)
			oreq.parameters = oreq.parameters.substring(1); 
		
		oreq.onComplete = onSubmitSuccess;
		var myajax=new xmlhttp();
		ret= myajax.request( req.sendUrl,oreq );
		return false;
	}
	function onSubmitSuccess( xconn, oreq ){
		v = $(fname).elements[req.attrs.name].value.stripScripts().fixHTML();
		obj.innerHTML=v;
		closeEditor();
		//setTimeout("closeEditor();",200);
		req.request.onComplete(xconn, oreq);
	}
	function initEditor(){
		obj.title = "点击即可编辑";
		obj.style.cursor = "pointer";
		obj.onmouseover = function(){
			var evt=getEvent() 
			var element=evt.srcElement || evt.target   			
			element.style.backgroundColor = "#fbffcc";
		};
		obj.onmouseout = function(){
			var evt=getEvent() 
			var element=evt.srcElement || evt.target   			
			element.style.backgroundColor = "";
		};
		obj.onclick = createForm;
		if( req.request.show )
			createForm();
	}
}
