MWF.xApplication.process.FormDesigner.Module = MWF.xApplication.process.FormDesigner.Module || {};
MWF.xDesktop.requireApp("process.FormDesigner", "Module.$Element", null, false);
MWF.xApplication.process.FormDesigner.Module.Textfield = MWF.FCTextfield = new Class({
	Extends: MWF.FC$Element,
	Implements: [Options, Events],
	options: {
		"style": "default",
		"propertyPath": "/x_component_process_FormDesigner/Module/Textfield/textfield.html"
	},
	
	initialize: function(form, options){
		this.setOptions(options);
		
		this.path = "/x_component_process_FormDesigner/Module/Textfield/";
		this.cssPath = "/x_component_process_FormDesigner/Module/Textfield/"+this.options.style+"/css.wcss";

		this._loadCss();
		this.moduleType = "element";
		this.moduleName = "textfield";
		
		this.form = form;
		this.container = null;
		this.containerNode = null;
	},
    clearTemplateStyles: function(styles){
        if (styles){
            if (styles.styles) this.removeStyles(styles.styles, "styles");
            if (styles.inputStyles) this.removeStyles(styles.inputStyles, "inputStyles");
            if (styles.properties) this.removeStyles(styles.properties, "properties");
        }
    },
    setTemplateStyles: function(styles){
        if (styles.styles) this.copyStyles(styles.styles, "styles");
        if (styles.inputStyles) this.copyStyles(styles.inputStyles, "inputStyles");
        if (styles.properties) this.copyStyles(styles.properties, "properties");
    },

	_createMoveNode: function(){
		this.moveNode = new Element("div", {
			"MWFType": "textfield",
			"id": this.json.id,
			"styles": this.css.moduleNodeMove,
			"events": {
				"selectstart": function(){
					return false;
				}
			}
		}).inject(this.form.container);
	
		var icon = new Element("div", {
			"styles": this.css.textfieldIcon
		}).inject(this.moveNode);
		var text = new Element("div", {
			"styles": this.css.moduleText,
			"text": this.json.id
		}).inject(this.moveNode);
	},
    setPropertiesOrStyles: function(name){
        if (name=="styles"){
            if (this.parentContainer){
                //if (this.parentContainer.moduleName == "datagrid$Data"){
                //    if (!this.json.styles.width) this.json.styles.width = "90%";
                //}
            }
            this.setCustomStyles();
        }
        if (name=="inputStyles"){
            debugger;
            var text = this.node.getLast("div");
            text.clearStyles();
            text.setStyles(this.css.moduleText);

            Object.each(this.json.inputStyles, function(value, key){
                var reg = /^border\w*/ig;
                if (!key.test(reg)){
                    text.setStyle(key, value);
                }
            }.bind(this));
        }
        if (name=="properties"){
            this.node.setProperties(this.json.properties);
        }
    },

	_loadNodeStyles: function(){
		var icon = this.node.getFirst("div");
		var text = this.node.getLast("div");
		icon.setStyles(this.css.textfieldIcon);
		text.setStyles(this.css.moduleText);
	},
	_getCopyNode: function(){
		if (!this.copyNode) this._createCopyNode();
		this.copyNode.setStyle("display", "inline-block");
		return this.copyNode;
	},
	
	_setEditStyle_custom: function(name){
		if (name=="id"){
			this.node.getLast().set("text", this.json.id);
		}
        //if (name=="isTitle"){
        //    if (this.json.isTitle){
        //        this.form.moduleList.each(function(module){
        //            if (module.moduleName=="textfield"){
        //                if (module.json.id!=this.json.id){
        //                    module.json.isTitle = false;
        //                    if (module.property){
        //                        var td = module.property.propertyContent.getElementById(module.json.id+"isTitleArea");
        //                        if (td) td.getElements("input")[1].set("checked", true);
        //                    }
        //                }
        //            }
        //        }.bind(this));
        //    }
        //}
	}

	
});
