/* Copyright(c) http://www.noma-soft.com/ */
NmForm=function(){this.ctrls=new Array;}
NmForm.prototype={
	importData:function(data){
		for(var index=0;index<this.ctrls.length;index++){
			var ct=this.ctrls[index];if((ct!=null)&&(data[ct.id])){ct.set(data[ct.id]);}}},
	exportData:function(data){
		var value;
		for(var index=0;index<this.ctrls.length;index++){
			var ct=this.ctrls[index];
			if((ct!=null)&&(data[ct.id])){value=ct.get();if(value!=""){data[ct.id]=value}}}}
}
NmCtrlMgr={
	instances:new Object,
	uid_:0,
	init:function(){var ct; for(var key in this.instances){ct=this.instances[key]; ct.init();}},
	modify_:function(tag,uid){var ct=this.instances[uid];if(ct&&(ct.modify)){ct.modify(tag);}},
	select_:function(tag,uid){var ct=this.instances[uid];if(ct&&(ct.select)){ct.select(tag);}},
	add_:function(tag,uid){var ct=this.instances[uid];if(ct&&(ct.add)){ct.add(tag);}},
	remove_:function(tag,uid){var ct=this.instances[uid];if(ct&&(ct.remove)){ct.remove(tag);}},
	up_:function(tag,uid){var ct=this.instances[uid];if(ct&&(ct.up)){ct.up(tag);}},
	down_:function(tag,uid){var ct=this.instances[uid];if(ct&&(ct.down)){ct.down(tag);}},
	move_:function(tag,uid){var ct=this.instances[uid];if(ct&&(ct.move)){ct.move(tag);}},
	click_:function(tag,uid){var ct=this.instances[uid];if(ct&&(ct.click)){ct.click(tag);}},
	handler_:function(tag,type,uid){var ct=this.instances[uid];if(ct&&(ct.handler)){ct.handler(tag,type);}},
	bind:function(ctrl){this.uid_++;ctrl.uid_=this.uid_;this.instances[ctrl.uid_]=ctrl;}
}
NmTextCtrl=function(id,className,initValue){this.ctor(id,className,initValue);}
NmTextCtrl.prototype={
	ctor:function(id,className,initValue){NmCtrlMgr.bind(this);
		this.id=id;this.className=className;this.tag=null;this.initValue=initValue;},
	init:function(){if(this.id!=""){this.tag=document.getElementById(this.id);}},
	get:function(){return this.tag.value;},
	set:function(value){this.tag.value=value;},
	write:function(){
		var str='<input type="text"';
		if(this.id!=""){str+=(' id="'+this.id+'"');}
		if(this.className!=""){str+=(' class="'+this.className+'"');}
		if(this.initValue!=""){str+=(' value="'+this.initValue+'"');}
		if(this.inputName){str+=' name="'+this.inputName+'"';}
		str+=' onchange="NmCtrlMgr.modify_(this,'+this.uid_+')"/>';return str;}
}
NmSelCtrl=function(id,className,initValue){this.ctor(id,className,initValue);}
NmSelCtrl.classes=new Object;
NmSelCtrl.prototype={
	ctor:function(id,className,initValue){NmCtrlMgr.bind(this);
		this.id=id;this.className=className;this.tag=null;this.initValue=initValue;},
	init:function(){if(this.id!=""){this.tag=document.getElementById(this.id);}},
	get:function(){var ct=this.tag;
		if(ct.selectedIndex==-1){return "";}return ct.options[ct.selectedIndex].value;},
	set:function(v){var ct=this.tag;
		for(var idx=0;idx<ct.length;idx++){if(ct.options[idx].value==v){ct.selectedIndex=idx;return;}}
		ct.selectedIndex=-1;},
	write:function(){
		var str='<select id="'+this.id+'"';
		if(this.className!=""){str+=' class="'+this.className+'"';}
		str+=' onchange="NmCtrlMgr.modify_(this,'+this.uid_+')">';
		str+=NmSelCtrl.classes[this.className].writeOptions(this.initValue);
		str+='</select>';return str;}
}
NmSelTextCtrl=function(id,className,initValue){this.ctor(id,className,initValue);}
NmSelTextCtrl.classes=new Object;
NmSelTextCtrl.prototype={
	ctor:function(id,className,initValue){NmCtrlMgr.bind(this);
		this.id=id;this.className=className;this.tTag=null;this.sTag=null;this.initValue=initValue;},
	init:function(){
		if(this.id!=""){this.tTag=document.getElementById(this.id);}else{this.tTag=this.tag.previousSibling;}
		this.sTag=this.tTag.previousSibling;},
	get:function(){return this.tTag.value;},
	set:function(value){var tCt=this.tTag;var sCt=this.sTag;
		var anyIndex=-1;
		for(var index=0;index<sCt.options.length;index++){
			if(sCt.options[index]==value){sCt.selectedIndex=index;tCt.value=value;return;}
			else if(sCt.options[index]=="__any__"){anyIndex=index;}}
		if(anyIndex!=-1){tCt.value=value;sCt.selectedIndex=anyIndex;}},
	write:function(){
		var style=NmSelTextCtrl.classes[this.className];var str="";
		if(style){
			str+=('<select class="'+this.className+'"');
			str+=' onchange="NmCtrlMgr.modify_(this,'+this.uid_+')">';
			str+=style.writeOptions(this.initValue);
			str+='</select>';
			str+=('<input type="text" class="'+this.className+'" id="'+this.id+'" style="display:none;" />');}
		return str;},
	modify:function(tag){var tCt=this.tTag;var sCt=this.sTag;
		if(tCt){var value=sCt.options[sCt.selectedIndex].value;
			if(value=="__any__"){tCt.style.display="inline";}else{tCt.style.display="none";tCt.value=value;}}}
}

NmListSerializer=function(){this.listPad="#";this.elmPad=",";}
NmListSerializer.prototype={
	serialize:function(lCt){var str="";
		for(var index=0;index<lCt.length;index++){
			str+=lCt.options[index].text;str+=this.elmPad;str+=lCt.options[index].value;
			if(index!=lCt.length-1){str+=this.listPad;}}
			return str;},
	each:function(str,func){
		var dList=str.split(this.listPad);
		for(var index=0;index<dList.length;index++){
			var data=dList[index].split(this.elmPad,1);
			func(data[0],dList[index].substr(data[0].length+1));}}
}

NmArraySerializer=function(){this.listPad="#";}
NmArraySerializer.prototype={
	serialize:function(lCt){var str="";
		for(var index=0;index<lCt.length;index++){
			str+=lCt.options[index].value;
			if(index!=lCt.length-1){str+=this.listPad;}}},
	each:function(str,func){
		var dList=str.split(this.listPad);
		for(var index=0;index<dList.length;index++){
			func(index,dList[index]);}}
}

NmGroupSetSerializer=function(){}
NmGroupSetSerializer.prototype={
	serialize:function(obj){
		var str="[";
		for(var idx=0;idx<obj.length;idx++){
			if(idx!=0){str+=",";}
			str+="{";str+=obj[idx];str+="}";}
		str+="]";return str;},
	each:function(text,func){
		var c;var nest=0;var lastIdx=0;
		var count=0;
		for(var idx=0;idx<text.length;idx++){
			c=text.charAt(idx);
			if(c=='{'){if(nest==0){lastIdx=idx+1;}nest++;}
			else if(c=='}'){nest--;if(nest==0){func(count,text.substring(lastIdx,idx));count++;}}
			else if(c=='"'){idx++;while(idx<text.length){c=text.charAt(idx);if(c=='\\'){idx++;}else if(c=='"'){break;}idx++}}}}
}

NmListCtrl=function(id,className,initValue,isArray){this.ctor(id,className,initValue,isArray);}
NmListCtrl.prototype={
	ctor:function(id,className,initValue,isArray){
		NmCtrlMgr.bind(this);
		this.id=id;this.className=className;this.initValue=initValue;this.isArray=isArray;
		if(isArray==true){this.serializer=new NmArraySerializer;}else{this.serializer=new NmListSerializer;}},
	init:function(){
		this.dTTag=document.getElementById(this.id);
		this.lTag=this.dTTag.previousSibling.previousSibling;
		this.kTTag=this.dTTag.nextSibling;
		if(this.subCtrl){this.subCtrl.tag=this.kTTag.nextSibling;this.subCtrl.init();}
		else{this.vTTag=this.kTTag.nextSibling;}
		if(this.lTag.options.length!=0){this.lTag.selectedIndex=0;}
		if(this.lTag.selectedIndex!=-1){var op=this.lTag.options[this.lTag.selectedIndex];
			this.setSub(op.text,op.value);}},
	bindSubCtrl:function(subCtrl){this.subCtrl=subCtrl;},
	setSub:function(key,value){this.kTTag.value=key;
		if(this.subCtrl){this.subCtrl.set(value);}else{this.vTTag.value=value;}},
	getSubIndex:function(){return this.lTag.selectedIndex;},
	setSubIndex:function(idx){this.lTag.selectedIndex=idx;},
	getSubCount:function(){return this.lTag.length;},
	setSubCount:function(count){this.lTag.length=count;},
	getSubKey:function(){return this.kTTag.value;},
	getSubValue:function(){if(this.subCtrl){return this.subCtrl.get();}else{return this.vTTag.value;}},
	loadSub:function(idx){var lCt=this.lTag;
		if((idx!=-1)&&(idx<lCt.length)){var op=lCt.options[idx];this.setSub(op.text,op.value);}
		else{this.setSub("","");}},
	saveSub:function(idx){var lCt=this.lTag;if(!idx){idx=lCt.selectedIndex;}
		if(idx==-1){return;}
		var op=lCt.options[idx];
		op.value=this.getSubValue();op.text=this.getSubKey();},
	write:function(){
		var str="<span>";
		str+=('<select class="'+this.className+'"');
		str+=' onchange="NmCtrlMgr.select_(this,'+this.uid_+')"';
		str+=' >';
		if(this.initValue){
			var isFirst=true;
			this.serializer.each(this.initValue,
				function(key,value){
					str+='<option value="'+value+'" ';
					if(isFirst==true){str+='selected';isFirst=false;}
					str+='>'+key+'</option>';});}
		str+='</select>';
		str+='<span>';
		str+='<input type="button" value="new"';
		if(this.className!=""){str+=' class="'+this.className+'"';}
		str+=' onclick="NmCtrlMgr.add_(this,'+this.uid_+')"';str+=' />';
		str+='<input type="button" value="del"';
		if(this.className!=""){str+=' class="'+this.className+'"';}
		str+=' onclick="NmCtrlMgr.remove_(this,'+this.uid_+')"';str+='" />';
		str+='<input type="button" value="↑"';
		if(this.className!=""){str+=' class="'+this.className+'"';}
		str+=' onclick="NmCtrlMgr.up_(this,'+this.uid_+')"';str+=' />';
		str+='<input type="button" value="↓"';
		if(this.className!=""){str+=' class="'+this.className+'"';}
		str+=' onclick="NmCtrlMgr.down_(this,'+this.uid_+')"';str+=' />';
		str+='</span>';

		str+='<input type="text" id="'+this.id+'"'
		if(this.className){str+=(' class="'+this.className+'"');}
		if(this.initValue){str+=(' value="'+this.initValue+'"');}
		if(this.inputName){str+=' name="'+this.inputName+'"';}
		str+=' style="display:none;" ';
		str+='/>';

		str+='<input type="text"';
		if(this.className!=""){str+=' class="'+this.className+'"';}
		if(this.isArray==true){str+=' style="display:none;"';}
		str+= ' onchange="NmCtrlMgr.modify_(this,'+this.uid_+')"';str+='/>';
		if(!this.subCtrl){
			str+='<input type="text"';
			if(this.className!=""){str+=' class="'+this.className+'"';}
			str+=' onchange="NmCtrlMgr.modify_(this,'+this.uid_+')"';str+='/>';
		}else{str+=this.subCtrl.write();}
		str+='</span>';
		return str;
	},
	save_:function(){this.dTTag.value=this.serializer.serialize(this.lTag);},
	load_:function(){var lCt=this.lTag;
		this.listdata=this.dTTag.value;lCt.length=0;
		this.serializer.each(this.listdata,
			function(key,value){lCt.options[lCt.length]=new Option(key,value);});},
	autoIndex_:function(){var lCt=this.lTag;
		for(var idx=0;idx<lCt.length;idx++){
			lCt.options[idx].text=idx;}},
	select:function(tag){this.loadSub(this.lTag.selectedIndex);},
	modify:function(tag){var lCt=this.lTag;
		if(lCt.selectedIndex==-1){lCt.length++;lCt.selectedIndex=0;}
		this.saveSub(lCt.selectedIndex);this.save_();},
	add:function(){var lCt=this.lTag;
		var key="";if(this.isArray==true){key=lCt.length;}
		lCt.length++;lCt.selectedIndex=lCt.length-1;
		this.setSub(key,"");this.saveSub(lCt.selectedIndex);},
	remove:function(){var lCt=this.lTag;
		var selIdx=lCt.selectedIndex;
		if(selIdx!=-1){lCt.options[selIdx]=null;}
		lCt.selectedIndex=0;
		if(this.isArray==true){this.autoIndex_();}
		this.save_();this.loadSub(0);},
	up:function(){var lCt=this.lTag;var sIdx=lCt.selectedIndex;
		if(sIdx>0){var op1=lCt.options[sIdx];var op2=lCt.options[sIdx-1];
			var tmp=op1.value;op1.value=op2.value;op2.value=tmp;
			if(this.isArray==false){tmp=op1.text;op1.text=op2.text;op2.text=tmp;}
			this.save_();lCt.selectedIndex--;}},
	down:function(){var lCt=this.lTag;var sIdx=lCt.selectedIndex;
		if(sIdx<lCt.length-1){var op1=lCt.options[sIdx];var op2=lCt.options[sIdx+1];
			var tmp=op1.value;op1.value=op2.value;op2.value=tmp;
			if(this.isArray==false){tmp=op1.text;op1.text=op2.text;op2.text=tmp;}
			this.save_();lCt.selectedIndex++;}},
	set:function(value){this.dTTag.value=value;this.load_();this.lTag.selectedIndex=0;
		this.loadSub(this.lTag.selectedIndex);},
	get:function(){return this.dTTag.value;},
	update:function(){this.load_();this.loadSub(this.lTag.selectedIndex);}
}
NmButtonCtrl=function(id,className,initValue){this.ctor(id,className,initValue);}
NmButtonCtrl.prototype={
	ctor:function(id,className,label){NmCtrlMgr.bind(this);
		this.label=label;
		this.id=id;this.className=className;this.tag=null;this.initValue=initValue;},
	init:function(){},
	write:function(){
		var str='<input type="button"';
		if(this.value){str+=' name="'+this.label+'"';}
		if(this.className){str+=(' class="'+this.className+'"');}
		str+=' onclick="NmCtrlMgr.click_(this,'+"'"+this.uid_+"'"+');"/>';return str;}
}
NmExternalCtrl=function(id,className,initValue){this.ctor(id,className,initValue);}
NmExternalCtrl.prototype={
	ctor:function(id,className,initValue){NmCtrlMgr.bind(this);
		this.linkLabel="detail";
		this.id=id;this.className=className;this.tag=null;this.initValue=initValue;},
	init:function(){this.textTag=document.getElementById(this.id);},
	write:function(){
		var str='<a href="javascript:void(0);"';
		if(this.className){str+=(' class="'+this.className+'"');}
		str+=' onclick="NmCtrlMgr.click_(this,'+"'"+this.uid_+"'"+');">';
		str+=this.linkLabel;
		str+='</a>';
		str+='<input type="text" id="'+this.id+'"';
		if(this.className){str+=(' class="'+this.className+'"');}
		if(this.initValue){str+=(' value="'+this.initValue+'"');}
		if(this.inputName){str+=' name="'+this.inputName+'"';}
		str+='style="display:none;" ';str+='/>';return str;}
}

NmMultiView=function(id,width,height){this.id=id;this.width=width;this.height=height;}
NmMultiView.prototype={
	init:function(){
		this.viwerTag_=document.getElementById(ctrlName+'_viewer');
		this.canvasTag_=document.getElementById(ctrlName+'_canvas');},
	write:function(){var str="";
		str+='<DIV id="'+this.id+'_viewer" ';
		str+=' onmouseout="NmCtrlMgr.handler_(this,'+"'mouseout',"+"'"+this.id+"'"+')"';
		str+=' onmouseover="NmCtrlMgr.handler_(this,'+"'mouseover',"+"'"+this.id+"'"+')"';
		str+=' onmousedown="NmCtrlMgr.handler_(this,'+"'mousedown',"+"'"+this.id+"'"+')"';
		str+=' onmouseup="NmCtrlMgr.handler_(this,'+"'mouseup',"+"'"+this.id+"'"+')"';
		str+=' onmousemove="NmCtrlMgr.handler_(this,'+"'mousemove',"+"'"+this.id+"'"+')"';
		str+=' onclick="NmCtrlMgr.handler_(this,'+"'click',"+"'"+this.id+"'"
			+')" style="width:'+this.width+"px; height:"+this.height+'px;">';
		str+='<CANVAS id="'+this.id+'_canvas" ';
		str+='" width="'+this.width+'" height="'+this.height+'" style="display:none;"></CANVAS>';
		str+='</DIV>';
		return str;},
	clear:function(){
		var ctx=this.canvasTag_.getContext("2d");
		var elm=this.canvasTag_;
		if(elm){
			ctx.clearRect(0,0,elm.width,elm.height);
			elm=elm.parentNode;
			var next_iter;
			var iter=elm.firstChild;
			while(iter!=null){
				next_iter=iter.nextSibling;
				if((iter.tagName!="canvas")&&(iter.tagName!="CANVAS")){elm.removeChild(iter);}
				iter=next_iter;}}},
	getCanvas:function(){return this.canvasTag_;},
	enableCanvas:function(enable){
		if(enable==true){this.canvasTag.style.display="block";}
		else{this.canvasTag.style.display="none";}}
}


NmSelCtrlWriter=function(isExtension){
	if(isExtension==true){this.defaultLabel="任意";this.manualLabel="直接指定";}
	else{this.defaultLabel="";this.manualLabel="";}}
NmSelCtrlWriter.prototype={
	writeDefaultOptions:function(init_value){var str0="";
		if(init_value){str0+=('<option value="'+init_value+'">'+init_value+'</option>');}
		if(this.defaultLabel!=""){str0+=('<option value="">'+this.defaultLabel+'</option>');}
		if(this.manualLabel!=""){str0+=('<option value="__any__">'+this.manualLabel+'</option>');}
		return str0;},
	writeOptionsFromArray:function(arr){var str0="";
		for(var index=0; index<arr.length; index++) {
			str0+=('<option value="'+arr[index]+'">'+arr[index]+'</option>');}
		return str0;},
	writeOptionsFromMap:function(map){var str0="";
		for(var key in map){str0+=('<option value="'+key+'">'+map[key]+'</option>');}
		return str0;},
	writeOptionsFromMappedArray:function(mappedArr,trans){var str0="";
		for(var key in mappedArr){
			var pat=mappedArr[key];
			for(var index=0;index<pat.length;index++){str0+=trans(key,pat[index]);}}
		return str0;},
	writeOptionsFromRange:function(from,to,inter,unit){var offset=1;var str0="";
		if(inter!=0){offset=inter;}
		for(var index=from;index<=to;index+=offset){
			str0+=('<option value="'+index+unit+'">'+index+unit+'</option>');}
		return str0;}
}

NmArrSelCtrlClass=function(className,isExtension,patterns){
	if (isExtension){NmSelTextCtrl.classes[className]=this;}
	else{NmSelCtrl.classes[className]=this;}
	this.className=className;
	this.writer=new NmSelCtrlWriter(isExtension);
	this.isExtension=isExtension;
	this.patterns=patterns;
}
NmArrSelCtrlClass.prototype.writeOptions=function(init_value){
	var str1="";
	if(this.isExtension){str1+=this.writer.writeDefaultOptions(init_value);}
	str1+=this.writer.writeOptionsFromArray(this.patterns);
	return str1;
}
NmMapSelCtrlClass=function(className,isExtension,patterns){
	if(isExtension){NmSelTextCtrl.classes[className]=this;}
	else{NmSelCtrl.classes[className]=this;}
	this.className=className;
	this.writer=new NmSelCtrlWriter(isExtension);
	this.isExtension=isExtension;
	this.patterns=patterns;
}
NmMapSelCtrlClass.prototype.writeOptions=function(init_value){
	var str1="";
	if(this.isExtension){str1+=this.writer.writeDefaultOptions(init_value);}
	str1+=this.writer.writeOptionsFromMap(this.patterns);
	return str1;
}
NmMappedArrSelCtrlClass=function(className,isExtension,patterns){
	if(isExtension){NmSelTextCtrl.classes[className]=this;}
	else{NmSelCtrl.classes[className]=this;}
	this.className=className;
	this.writer=new NmSelCtrlWriter(isExtension);
	this.isExtension=isExtension;
	this.patterns=patterns;
	this.trans=null;
}
NmMappedArrSelCtrlClass.prototype.writeOptions=function(init_value){
	var str1="";
	if(this.isExtension){str1+=this.writer.writeDefaultOptions(init_value);}
	str1+=this.writer.writeOptionsFromMappedArray(this.patterns,this.trans);
	return str1;
}
NmRangeSelCtrlClass=function(className,isExtension,firstValue,lastValue,interval,unit){
	if(isExtension){NmSelTextCtrl.classes[className]=this;}
	else{NmSelCtrl.classes[className]=this;}
	this.className=className;
	this.writer=new NmSelCtrlWriter(isExtension);
	this.isExtension=isExtension;
	this.firstValue=firstValue;
	this.lastValue=lastValue;
	this.interval=interval;
	this.unit=unit;
}
NmRangeSelCtrlClass.prototype.writeOptions=function(init_value){
	var str1="";
	if(this.isExtension){str1+=this.writer.writeDefaultOptions(init_value);}
	str1+=this.writer.writeOptionsFromRange(this.firstValue,this.lastValue,this.interval,this.unit);
	return str1;
}


new NmArrSelCtrlClass("check",false,["on","off"]);
new NmArrSelCtrlClass("font-size",true,["8pt","9pt","9.5pt","10pt","10.5pt","11pt","12pt","14pt","16pt","18pt","20pt","22pt","24pt","26pt","28pt","36pt","48pt"]);
new NmArrSelCtrlClass("alpha",true,["1.0","0.95","0.9","0.85","0.8","0.75","0.7","0.65","0.6","0.55","0.5","0.45","0.4","0.35","0.3","0.25","0.2","0.15","0.1","0.05","0.0"]);
new NmMapSelCtrlClass("color",true,{"black":"黒","silver":"銀","gray":"灰色","white":"白","maroon":"濃赤","red":"赤","purple":"紫","fuchsia":"ピンク","green":"緑","lime":"黄緑","olive":"黄土色","yellow":"黄色","navy":"紺色","blue":"青","teal":"若草色","aqua":"水色"});
new NmArrSelCtrlClass("ratio",true,["0","5","10","15","20","25","30","35","40","45","50","55","60","65","70","75","80","85","90","95","100"]);
new NmRangeSelCtrlClass("line-width",true,0,8,1,"px");
new NmRangeSelCtrlClass("offset",true,0,30,1,"px");
new NmArrSelCtrlClass("align",false,["left","center","right"]);

var fontFamilySelCtrl=new NmMappedArrSelCtrlClass("font-family",{
	"sans-serif":['','arial','arial black','arial narrow','arial unicode ms','Century Gothic',/*'Franklin Gothic Medium',*/ 'Gulim','Dotum',
		'Haettenschweiler','Impact','Ludica Sans Unicode','Microsoft Sans Serif','MS Sans Serif','MV Boil','New Gulim','Tahoma','Trebuchet','Verdana'],
	"serif":['','Batang','Book Antiqua','Bookman Old Style','Century','Estrangelo Edessa','Garamond','Gautami','Georgia','Gungsuh',
		'Latha','Mangal','MS Serif','PMingLiU','Palatino Linotype','Raavi','Roman','Shruti','Sylfaen','Times New Roman','Tunga'],
	"monospace":['','BatangChe','Courier','Courier New','DotumChe','GlimChe','GungsuhChe','HG行書体','Lucida Console','MingLiU','ＭＳ ゴシック',
		'ＭＳ 明朝','OCRB','SimHei','SimSun','Small Fonts','Terminal'],
	"fantasy":['','alba','alba matter','alba super','baby kruffy','Chick','Croobie','Fat','Freshbot','Frosty','GlooGun','Jokewood','Modern',
		'Monotype Corsiva','Poornut','Pussycat Snickers','Weltron Urban'],
	"cursive":['','Comic Sans MS','HGP行書体','HG正楷書体-PRO','Jenkins v2.0','Script'],
	"絵文字":['','MS Outlook','MT Extra','Symbol','Webdings','Wingdings','Wingdings 2','Wingdings 3']
});
fontFamilySelCtrl.trans=function(name,value){
	var fontFamily='';var fontLabel='';
	if(value){fontFamily+="'"+value+"', ";fontLabel=value;}
	else{fontLabel=name;}
	fontFamily+=name;
	return ('<option value="'+fontFamily+'">'+fontLabel+'</option>');
}
