
WUI = { 
// iframe tab
TabFrame : function(tab,base) {
	var _t = $(tab) ;
	var _b = $(base) ;
	var _tabs = {} ;
	var _ctab = "" ;
	var _lasttab = "" ;
	var _this = this ;
	var _s = 1 ;

	this.currentTabName = "" ;

	function callback(name,param) {
		var obj = _tabs[name].obj;
		try {
			if( typeof obj.contentWindow.ontabchange == 'function') 
				obj.contentWindow.ontabchange(name,param) ;
		} catch(e) {} ;
	}
	function addtab(name,title) {
		f = document.createElement('li') ;
		f.id = "b_"+name ;
		f.innerHTML = title ;
		f.className = "taboff" ;
		f.onclick = function() {
			if(_ctab==name) return ;
			_this.change(name) ;
		} ;
		_t.appendChild(f) ;
	}
	function getuniqid() {
			var name = "f"+_s ;
			_s++ ;
			return name ;
	}
	this.gettablist = function() {
		return _tabs ;
	}
	this.add = function(src,title,name) {
		if(name==undefined) name = getuniqid();
		var f = document.createElement('iframe') ;
		f.id = "tf_"+name ;
		f.setAttribute('frameborder',"0") ;
		f.className = "tabframe" ;
		
		f.onload = function() {		//mozilla
			callback(name) ;
		} ;
		f.onreadystatechange = function() { //IE
			if(this.readyState=="complete") callback(name) ;
		} ;
		var obj = _b.appendChild( f ) ;
		_tabs[name] = {'obj':obj,'src':src,'id':f.id,'loaded':false,'title':title} ;
		addtab(name,title) ;
		return name ;
	}
	this.getcurrent = function() {
		return {'name':_ctab,'frame':_tabs[_ctab].obj} ;
	}
	this.adddiv = function(title,name) {
		if(name==undefined) name = getuniqid();
		var f = document.createElement('div') ;
		f.id = "tf_"+name ;
		f.className = "tabdiv" ;
		var obj = _b.appendChild( f ) ;
		_tabs[name] = {'obj':obj,'id':f.id,'title':title} ;
		addtab(name,title) ;
		return name ;
	}
	this.close = function(name)  {
		if(name==undefined) name=_ctab ;
		if( _tabs[name] == undefined) return -1 ;
		var o = _tabs[name].obj ;
		if(_ctab==name) {
			delete _tabs[name] ;	
			if(_tabs[_lasttab]!=undefined) {
				_this.change(_lasttab) ;
			} else {
				for(var i in _tabs) {
					if(_tabs[i]) { _this.change(i) ; break ;}
				}
			}
		}
		o.src ="" ;
		_b.removeChild(o)
		_t.removeChild($('b_'+name));
	}
	this.load = function(name,src,param) {
		if( _tabs[name] == undefined) return -1 ;
		var o = _tabs[name].obj ;
		o.src = name ;
		_this.change(name,param) ;
	}
	this.change = function(name,param) {
		var t = _tabs[name] ;
		if( t == undefined) return -1 ;
		if(_ctab!="") {
			_this.hide(_ctab) ;
			$('b_'+_ctab).className = "taboff" ;
			_lasttab = _ctab ;
		}
		$('b_'+name).className = "tabon" ;
		t.obj.style.display="block" ;
		if(!t.loaded) {
			t.obj.src = t.src ;
			t.loaded = true ;
		}
		_ctab = name ;
		_this.currentTabName = _ctab ;
		callback(name,param) ;
	}
	this.hide = function(name) {
		var t = _tabs[name] ;
		if( t == undefined) return -1 ;
		t.obj.style.display="none" ;
	}
}
}

