/*
	DynAPI Distribution
	HTMLFile Class

	The DynAPI Distribution is distributed under the terms of the GNU LGPL license.
	
	Requires: HTMLComponent
*/

function HTMLFile(css,hidden,size,title,elmName){
	this.HTMLComponent = HTMLComponent;
	this.HTMLComponent(css);

	this._elmId = elmName||(this.id+'FILE');
	this._size = size||20;
	this._title = title||'';
	this._hidden = (hidden)? true:false;
	this._defEvtResponse = true;
};
var p = dynapi.setPrototype('HTMLFile','HTMLComponent');
p._inlineEvents+=' onkeypress="return htc._e(\'keypress\',this,event);" '
+' onkeyup="return htc._e(\'keyup\',this,event);" '
+' onkeydown="return htc._e(\'keydown\',this,event);" ';
// Methods
p._assignElm = function(elm){
	if(!this.parent) return;
	else if(!this.parent._created) return;
	var doc=this.parent.doc;
	if(!elm) {
		if(dynapi.ua.ie) elm=doc.all[this._elmId];
		else if(dynapi.ua.dom) elm=doc.getElementById(this._elmId);
		else if(dynapi.ua.ns4){
			for(i=0;i<doc.forms.length;i++){
				elm=doc.forms[i][this._elmId];
				if(elm) break;
			}
		}
		if(!elm) return;
	}
	this.elm = elm;
	this.css = (dynapi.ua.ns4)? elm:elm.style;
	this.doc = this.parent.doc;
};
p.getInnerHTML = function(){
	var style,evt,text=this._text||'';
	evt = this._generateInlineEvents(this);
	style=(this._hidden)? 'style="display:none"':'';
	return '<input type="file" class="'+this._class+'" id="'+this._elmId+'" name="'+this._elmId+'" size="'+this._size+'"'
	+style+evt+' title="'+this._title+'" />';
};
p.getFileName = function(){
	return (this.getElm())? this.elm.value:this._text
};
p.browse = function() {
	if(this.getElm()) this.elm.click();
};
p.setElementName = function(t){
	if(t) this._elmId = t;
};