// <![CDATA[
/*
 * Raumobil Tab: RMTab
 * Copyright (c) 2007 Raumobil GmbH.
 * All rights reserved.
 * Autor: Hongyi Chen
 * Last Modify: 2007-04-19 10:22
 * Versrion: beta 1
 * Function: a tab Class
 * Requirment: protoype.js (Ver. 1.4)
 */

/****************************************************************************************************
global Function
Function:  create Thead onclick event (for sort)
Parm: object methodename parameter
Returm:  js event handler
***************************************************************************************************/
function createEventHandler(object, methodName, parameter){
	return function(){
		object[methodName](parameter);
	}
}



/****************************************************************************************************
Class: CGrid
Function:
*/

RMTab.prototype = new Object();

/****************************************************************************************************
Define Data Type Constant
*/
RMTab.tab_debug=true;


/****************************************************************************************************
Constructor
Function: init
Parm:
****************************************************************************************************/
function RMTab(id, activid){
	if(!activid){ activid=0;}
	this.tab_current_index=activid; /*current acitve tab from 0 on.*/
	this.tab_ul=null; /*container for ul element */
	this.tabCont=null;

	/*alert("init tab "+ id +" ");*/
	this.tabCont = $(id); /*get element using protoye $ method*/
	if(!this.tabCont){ alert("Can not get tab  (id: "+id+") "); return false;}
	var divCurrent=0;
	for(var i=0; i<this.tabCont.childNodes.length; i++){
		/*hide all not defualt layer*/
		if(this.tabCont.childNodes[i].nodeName=="DIV"){
			if(divCurrent==this.tab_current_index){
				this.tabCont.childNodes[i].style["display"]="";
			}
			else{
				this.tabCont.childNodes[i].style["display"]="none";
			}
			divCurrent++;
		}
		/* got ul object*/
		else if((this.tabCont.childNodes[i].nodeName=="UL") && (this.tab_ul==null)){
			this.tab_ul=this.tabCont.childNodes[i]; /*get ul object*/
		}
	}
	/*add onclick event*/
	this.addEvents();
	return null;
}

/****************************************************************************************************
*/



/****************************************************************************************************
* parm: cureent tab index. from 0 on.
*/
RMTab.prototype.addEvents=function (){
	if(!this.tab_ul==null){ alert("can not get ul object.You must first set tab_ul"); return false;}
	var currentlist=0;
	for(i=0; i<this.tab_ul.childNodes.length; i++){
		if(this.tab_ul.childNodes[i].nodeName=="LI"){
			if(currentlist==this.tab_current_index){
				/*this.tab_ul.childNodes[i].style["margin"]="10px";*/
			}
			this.addOnClickEvent(this.tab_ul.childNodes[i], currentlist);
			currentlist++;
		}
	}
	return false;
}

/****************************************************************************************************
* add onclick event on every link in list
*/
RMTab.prototype.addOnClickEvent=function(listObj, listIndex){
	listObj.onclick=createEventHandler(this, "showTab", listIndex);
	return false;
}

/****************************************************************************************************
* Function: show one tab and hide all other tabs
*/
RMTab.prototype.showTab=function (listIndex){
	this.tab_current_index = listIndex;
	/*show and hide div*/
	var divCurrent=0;
	for(var i=0; i<this.tabCont.childNodes.length; i++){
		if(this.tabCont.childNodes[i].nodeName=="DIV"){
			if(divCurrent==this.tab_current_index){
				this.tabCont.childNodes[i].style["display"]="";
			}
			else{
				this.tabCont.childNodes[i].style["display"]="none";
			}
			divCurrent++;
		}
	}
	var listCurrent=0;
	for(var i=0; i<this.tab_ul.childNodes.length; i++){
		if(this.tab_ul.childNodes[i].nodeName=="LI"){
			if(listCurrent==this.tab_current_index){
				this.tab_ul.childNodes[i].className="active";
			}
			else{
				this.tab_ul.childNodes[i].className="";
			}
			listCurrent++;
		}
	}
	return false;
}


/******************************
History:

******************************/
// ]]>

