rsInput = Ext.extend(Object,  {
	param: {},
	css:'',
	type:'text',

	constructor: function(params) {
		if(!Ext.isObject(params)) {console.log("error in creating input - params not specified");return null;}
		this.param = params;
		var p = params;
		this.css = (!Ext.isEmpty(p.css))?p.css+' ':'';
		this.type= (!Ext.isEmpty(p.type))?p.type:'text';

		Ext.get(p.id).addClass(this.css);
		if(this.type=='text') {
			Ext.DomHelper.append(p.id,
				{id:p.id+'-input',cls:'rs-input',
					cn: [{id:p.id+'-input-info',cls:'rs-input-info',html:p.info},
										{id:p.id+'-input-info2',cls:'rs-input-info',html:p.empty,style:'display:none;'},
										{id:p.id+'-input-textfield',type:'text',tag:'input',name:p.name,value:p.value,cls:'rs-input-textfield'}]
			});

			var me = this;
			// check visibility
			var cmp = Ext.get(p.id+'-input');
			var inp = Ext.get(p.id+'-input-textfield');
			var info = Ext.get(p.id+'-input-info');
			var info2 = Ext.get(p.id+'-input-info2');

			if(p.value) {info.hide();info2.show();	inp.dom.value = p.value;}
			else        {inp.dom.value = p.empty;inp.addClass('empty');}

			info.on('click',function() {inp.dom.focus();});
			info.hover(function() {cmp.addClass('hover');},function() {cmp.removeClass('hover');});
			info2.on('click',function() {inp.dom.focus();});
			info2.on('dblclick',function() {inp.dom.select();inp.dom.focus();});
			info2.hover(function() {cmp.addClass('hover');},function() {cmp.removeClass('hover');});
			inp.hover(function() {cmp.addClass('hover');},function() {cmp.removeClass('hover');});
			inp.on('focus',function() {if(info.isVisible()) {info.hide();info2.show();inp.dom.value='';}inp.removeClass('empty');});
			inp.on('blur',function() {if(inp.dom.value=='' || inp.dom.value==p.empty) {inp.dom.value=p.empty;inp.addClass('empty');info2.hide();info.show();}});
		} else {

			Ext.DomHelper.append(p.id,
				{id:p.id+'-input',cls:'rs-input',
					cn: [{id:p.id+'-input-info',cls:'rs-input-info',html:p.info},
										{id:p.id+'-input-info2',cls:'rs-input-info',html:p.empty,style:'display:none;'},
										{id:p.id+'-input-textfield',type:'text',tag:'input',value:p.empty,cls:'rs-input-textfield'},
										{id:p.id+'-input-password',type:'password',tag:'input',name:p.name,value:p.value,cls:'rs-input-password',style:'display:none;'}]
			});

			var me = this;
			// check visibility
			var cmp = Ext.get(p.id+'-input');
			var inp = Ext.get(p.id+'-input-textfield');
			var pw  = Ext.get(p.id+'-input-password');
			var info= Ext.get(p.id+'-input-info');
			var info2 = Ext.get(p.id+'-input-info2');

			inp.addClass('empty');

			if(p.value) {info.hide();info2.show(); pw.dom.value = p.value;inp.setStyle('display','none');pw.setStyle('display','inline');}


			info.on('click',function() {inp.setStyle('display','none');cmp.removeClass('hover');pw.setStyle('display','inline');pw.dom.focus();});
			info.hover(function() {cmp.addClass('hover');},function() {cmp.removeClass('hover');});
			info2.on('click',function() {inp.setStyle('display','none');cmp.removeClass('hover');pw.setStyle('display','inline');pw.dom.focus();});
			info2.on('dblclick',function() {inp.setStyle('display','none');cmp.removeClass('hover');pw.setStyle('display','inline');pw.dom.select();pw.dom.focus();});
			info2.hover(function() {cmp.addClass('hover');},function() {cmp.removeClass('hover');});
			inp.hover(function() {cmp.addClass('hover');},function() {cmp.removeClass('hover');});
			pw.hover(function() {cmp.addClass('hover');},function() {cmp.removeClass('hover');});
			inp.on('focus',function() {if(info.isVisible()) {info.hide();info2.show();inp.setStyle('display','none');cmp.removeClass('hover');pw.setStyle('display','inline');pw.dom.focus();}});
			pw.on('blur',function() {if(pw.dom.value=='') {pw.setStyle('display','none');inp.setStyle('display','inline');info2.hide();info.show();}});
		}
	}
});

