var webFXTreeConfig={
	rootClass : 'TreeNodeOpen',
	openRootClass : 'TreeNodeClose',
	folderClass : 'TreeNodeOpen',
	openFolderClass : 'TreeNodeClose',
	fileClass : 'TreeItem',
	iClass : 'TreeIElement',
	lClass : 'TreeLElement',
	lMinusClass : 'TreeLCollapse',
	lPlusClass : 'TreeLExpand',
	tClass : 'TreeTElement',
	tMinusClass : 'TreeTCollapse',
	tPlusClass : 'TreeTExpand',
	rClass : 'TreeRElement',
	rMinusClass : 'TreeRCollapse',
	rPlusClass : 'TreeRExpand',
	blankClass : 'TreeIndent',
	defaultText : 'Tree Item',
	defaultAction : 'javascript:void(0);',
	defaultBehavior : 'classic',
	usePersistence : true
};
var webFXTreeHandler={
	idCounter : 0,
	idPrefix : "webfx-tree-object-",
	getId : function(){return this.idPrefix+this.idCounter++;},
	all : {},
	behavior : null,
	selected : null,
	onSelect : null,

	toggle : function(oItem){this.all[oItem.id.replace('-plus','')].toggle();},
	select : function(oItem){this.all[oItem.id.replace('-icon','')].select();},
	focus : function(oItem){this.all[oItem.id.replace('-anchor','')].focus();},
	blur : function(oItem){this.all[oItem.id.replace('-anchor','')].blur();},
	cookies : new WebFXCookie(),
	insertHTMLBeforeEnd	: function(oElement,sHTML){
		if(oElement.insertAdjacentHTML!=null){
			oElement.insertAdjacentHTML("BeforeEnd",sHTML)
			return;
		}
		var df;	// DocumentFragment
		var r=oElement.ownerDocument.createRange();
		r.selectNodeContents(oElement);
		r.collapse(false);
		df=r.createContextualFragment(sHTML);
		oElement.appendChild(df);
	}
};
/* WebFXCookie class */
function WebFXCookie(){
	if(document.cookie.length){this.cookies=' '+document.cookie;}
}
WebFXCookie.prototype.setCookie=function(key,value){
	document.cookie=key+"="+escape(value);
}
WebFXCookie.prototype.getCookie=function(key){
	if(this.cookies){
		var start=this.cookies.indexOf(' '+key+'=');
		if(start==-1){return null;}
		var end=this.cookies.indexOf(";",start);
		if(end==-1){end=this.cookies.length;}
		end-=start;
		var cookie=this.cookies.substr(start,end);
		return unescape(cookie.substr(cookie.indexOf('=')+1,cookie.length-cookie.indexOf('=')+1));
	}
	else{return null;}
}
/* WebFXTreeAbstractNode class */
function WebFXTreeAbstractNode(sText,sAction,iPr){
	this.childNodes=[];
	this.id=webFXTreeHandler.getId();
	this.text=sText||webFXTreeConfig.defaultText;
	if(sAction){
		sAction=sAction.substring(0,sAction.indexOf('"'));
		var prload='';
		if(iPr&&topFrame&&topFrame.extra&&topFrame.extra.price)prload=";void(topFrame.extra.price.location.href='loadjs.html?page="+sAction+".js')";
		var sAction="javascript:void(getTargetFrameObj().location.href='"+sAction+"')"+prload;
	}
	this.action=sAction||webFXTreeConfig.defaultAction;
	this._last =false;
	webFXTreeHandler.all[this.id]=this;
}
/*
 * To speed thing up if you're adding multiple nodes at once (after load)
 * use the bNoIdent parameter to prevent automatic re-indentation and call
 * the obj.ident() method manually once all nodes has been added.
 */
WebFXTreeAbstractNode.prototype.add=function(node,bNoIdent){
	node.parentNode=this;
	this.childNodes[this.childNodes.length]=node;
	var root=this;
	if(this.childNodes.length>=2){
		this.childNodes[this.childNodes.length-2]._last=false;
	}
	while(root.parentNode){root=root.parentNode;}
	if(root.rendered){
		if(this.childNodes.length>=2){
			var cn=this.childNodes[this.childNodes.length-2];
			document.getElementById(cn.id+'-plus').className=((cn.folder)?((cn.open)?webFXTreeConfig.tMinusClass:webFXTreeConfig.tPlusClass):webFXTreeConfig.tClass);
			cn.plusClass=webFXTreeConfig.tPlusClass;
			cn.minusClass=webFXTreeConfig.tMinusClass;
			cn._last=false;
		}
		this._last=true;
		var foo=this;
		while(foo.parentNode){
			for (var i=0;i<foo.parentNode.childNodes.length;i++){
				if(foo.id==foo.parentNode.childNodes[i].id){break;}
			}
			if(i==foo.parentNode.childNodes.length-1){foo.parentNode._last=true;}
			else{foo.parentNode._last=false;}
			foo=foo.parentNode;
		}
		webFXTreeHandler.insertHTMLBeforeEnd(document.getElementById(this.id+'-cont'),node.toString());
		if((!this.folder)&&(!this.openClass)){
			this.icon=webFXTreeConfig.folderClass;
			this.openClass=webFXTreeConfig.openFolderClass;
		}
		if(!this.folder){this.folder=true;this.collapse(true);}
		if(!bNoIdent){this.indent();}
	}
	return node;
}
WebFXTreeAbstractNode.prototype.toggle=function(){
	if(this.folder){
		if(this.open){this.collapse();}
		else{this.expand();}
	}
}
WebFXTreeAbstractNode.prototype.select=function(){
	document.getElementById(this.id+'-anchor').focus();
}
WebFXTreeAbstractNode.prototype.deSelect=function(){
	document.getElementById(this.id+'-anchor').className='';
	webFXTreeHandler.selected=null;
}
WebFXTreeAbstractNode.prototype.focus=function(){
	if((webFXTreeHandler.selected)&&(webFXTreeHandler.selected!=this)){webFXTreeHandler.selected.deSelect();}
	webFXTreeHandler.selected=this;
	if((this.openClass)&&(webFXTreeHandler.behavior!='classic')){document.getElementById(this.id+'-icon').className=this.openClass;}
	document.getElementById(this.id+'-anchor').className='selected';
	document.getElementById(this.id+'-anchor').focus();
	if(webFXTreeHandler.onSelect){webFXTreeHandler.onSelect(this);}
}
WebFXTreeAbstractNode.prototype.blur=function(){
	if((this.openClass)&&(webFXTreeHandler.behavior!='classic')){document.getElementById(this.id+'-icon').className=this.icon;}
	document.getElementById(this.id+'-anchor').className='selected-inactive';
}
WebFXTreeAbstractNode.prototype.doExpand=function(){
	if(webFXTreeHandler.behavior=='classic'){document.getElementById(this.id+'-icon').className=this.openClass;}
	if(this.childNodes.length){ document.getElementById(this.id+'-cont').style.display='block';}
	this.open=true;
	if(webFXTreeConfig.usePersistence){
		webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length-18),'1');
	}
}
WebFXTreeAbstractNode.prototype.doCollapse=function(){
	if(webFXTreeHandler.behavior=='classic'){document.getElementById(this.id+'-icon').className=this.icon;}
	if(this.childNodes.length){document.getElementById(this.id+'-cont').style.display='none';}
	this.open=false;
	if(webFXTreeConfig.usePersistence){
		webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length-18),'0');
	}
}
WebFXTreeAbstractNode.prototype.expandAll=function(){
	this.expandChildren();
	if((this.folder)&&(!this.open)){this.expand();}
}
WebFXTreeAbstractNode.prototype.expandChildren=function(){
	for (var i=0;i<this.childNodes.length;i++){
		this.childNodes[i].expandAll();
	}
}
WebFXTreeAbstractNode.prototype.collapseAll=function(){
	this.collapseChildren();
	if((this.folder)&&(this.open)){this.collapse(true);}
}
WebFXTreeAbstractNode.prototype.collapseChildren=function(){
	for (var i=0;i<this.childNodes.length;i++){
		this.childNodes[i].collapseAll();
	}
}
WebFXTreeAbstractNode.prototype.indent=function(lvl,del,last,level,nodesLeft){
	/* Since we only want to modify items one level below ourself,
	 * and since the rightmost indentation position is occupied by
	 * the plus icon we set this to -2*/
	if(lvl==null){lvl=-2;}
	var state=0;
	for (var i=this.childNodes.length-1;i>=0;i--){
		state=this.childNodes[i].indent(lvl+1,del,last,level);
		if(state){return;}
	}
	if(del){
		if((level>=this._level)&&(document.getElementById(this.id+'-plus'))){
			if(this.folder){
				document.getElementById(this.id+'-plus').className=(this.open)?webFXTreeConfig.lMinusClass:webFXTreeConfig.lPlusClass;
				this.plusClass=webFXTreeConfig.lPlusClass;
				this.minusClass=webFXTreeConfig.lMinusClass;
			}
			else if(nodesLeft){document.getElementById(this.id+'-plus').className=webFXTreeConfig.lClass;}
			return 1;
		}
	}
	var foo=document.getElementById(this.id+'-indent-'+lvl);
	if(foo){
		if((foo._last)||((del)&&(last))){foo.className= webFXTreeConfig.blankClass;}
		else{foo.className= webFXTreeConfig.iClass;}
	}
	return 0;
}
/* WebFXTree class */
function WebFXTree(sText,sAction,sBehavior,sClass,sOpenClass,iPr){
	this.base=WebFXTreeAbstractNode;
	this.base(sText,sAction,iPr);
	this.icon=sClass||webFXTreeConfig.rootClass;
	this.openClass=sOpenClass||webFXTreeConfig.openRootClass;
	if(webFXTreeConfig.usePersistence){
		this.open =(webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length-18))=='0')?false:true;
	}else{this.open=true;}
	this.folder=true;
	this.rendered=false;
	this.onSelect=null;
	if(!webFXTreeHandler.behavior){ webFXTreeHandler.behavior=sBehavior||webFXTreeConfig.defaultBehavior;}
}
WebFXTree.prototype=new WebFXTreeAbstractNode;
WebFXTree.prototype.setBehavior=function(sBehavior){
	webFXTreeHandler.behavior=sBehavior;
};
WebFXTree.prototype.getBehavior=function(sBehavior){
	return webFXTreeHandler.behavior;
};
WebFXTree.prototype.getSelected=function(){
	if(webFXTreeHandler.selected){return webFXTreeHandler.selected;}
	else{return null;}
}
WebFXTree.prototype.remove=function(){}
WebFXTree.prototype.expand=function(){this.doExpand();}
WebFXTree.prototype.collapse=function(b){
	if(!b){this.focus();}
	this.doCollapse();
}
WebFXTree.prototype.getFirst=function(){
	return null;
}
WebFXTree.prototype.getLast=function(){
	return null;
}
WebFXTree.prototype.getNextSibling=function(){
	return null;
}
WebFXTree.prototype.getPreviousSibling=function(){
	return null;
}
WebFXTree.prototype.toString=function(){
	var str='';
	str+='<div class="WebfxTreeContainer"><table border="0" cellpadding="0" cellspacing="0" ';
	str+='id="'+this.id+'" ';
	str+='ondblclick="webFXTreeHandler.toggle(this);" ';
	str+='class="tree"';
	str+='>';
	str+='</table>';
	str+='<table border="0" width="100%" cellpadding="0" cellspacing="0" ';
	str+='id="'+this.id+'-cont" ';
	str+='class="webfx-tree-container" ';
	str+='style="';
	str+='display:'+((this.open)?'block':'none')+';';
	str+='">';
	str+='<tr>';
	str+='<td>';
	for (var i=0;i<this.childNodes.length;i++){
		str+=this.childNodes[i].toString(i,this.childNodes.length,i==0?true:false);
	}
	str+='</td></tr>';
	str+='</table></div>';
	this.rendered=true;
	return str;
};
/* WebFXTreeItem class */
function WebFXTreeItem(sText,sAction,eParent,sClass,sOpenClass,iPr){
	this.base=WebFXTreeAbstractNode;
	this.base(sText,sAction,iPr);
	if(webFXTreeConfig.usePersistence){
		this.open=(webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length-18))=='1')?true:false;
	}else{this.open=false;}
	if(sClass){this.icon=sClass;}
	if(sOpenClass){this.openClass=sOpenClass;}
	if(eParent){eParent.add(this);}
}
WebFXTreeItem.prototype=new WebFXTreeAbstractNode;
WebFXTreeItem.prototype.remove=function(){
	var iconClass=document.getElementById(this.id+'-plus').className;
	var parentNode=this.parentNode;
	var prevSibling=this.getPreviousSibling(true);
	var nextSibling=this.getNextSibling(true);
	var folder=this.parentNode.folder;
	var last=((nextSibling)&&(nextSibling.parentNode)&&(nextSibling.parentNode.id==parentNode.id))?false:true;
	this.getPreviousSibling().focus();
	this._remove();
	if(parentNode.childNodes.length==0){
		document.getElementById(parentNode.id+'-cont').style.display='none';
		parentNode.doCollapse();
		parentNode.folder=false;
		parentNode.open=false;
	}
	if(!nextSibling||last){parentNode.indent(null,true,last,this._level,parentNode.childNodes.length);}
	if((prevSibling==parentNode)&&!(parentNode.childNodes.length)){
		prevSibling.folder=false;
		prevSibling.open=false;
		iconClass=document.getElementById(prevSibling.id+'-plus').className;
		iconClass=iconClass.replace('minus','').replace('plus','');
		document.getElementById(prevSibling.id+'-plus').className=iconClass;
		document.getElementById(prevSibling.id+'-icon').className=webFXTreeConfig.fileClass;
	}
	if(document.getElementById(prevSibling.id+'-plus')){
		if(parentNode==prevSibling.parentNode){
			iconClass=iconClass.replace('minus','').replace('plus','');
			document.getElementById(prevSibling.id+'-plus').className=iconClass;
		}
	}
}
WebFXTreeItem.prototype._remove=function(){
	for (var i=this.childNodes.length-1;i>=0;i--){
		this.childNodes[i]._remove();
 	}
	for (var i=0;i<this.parentNode.childNodes.length;i++){
		if(this==this.parentNode.childNodes[i]){
			for (var j=i;j<this.parentNode.childNodes.length;j++){
				this.parentNode.childNodes[j]=this.parentNode.childNodes[j+1];
			}
			this.parentNode.childNodes.length-=1;
			if(i+1==this.parentNode.childNodes.length){this.parentNode._last=true;}
			break;
		}
	}
	webFXTreeHandler.all[this.id]=null;
	var tmp=document.getElementById(this.id);
	if(tmp){tmp.parentNode.removeChild(tmp);}
	tmp=document.getElementById(this.id+'-cont');
	if(tmp){tmp.parentNode.removeChild(tmp);}
}
WebFXTreeItem.prototype.expand=function(){
	this.doExpand();
	document.getElementById(this.id+'-plus').className=this.minusClass;
}
WebFXTreeItem.prototype.collapse=function(b){
	if(!b){this.focus();}
	this.doCollapse();
	document.getElementById(this.id+'-plus').className=this.plusClass;
}
WebFXTreeItem.prototype.getFirst=function(){
	return this.childNodes[0];
}
WebFXTreeItem.prototype.getLast=function(){
	if(this.childNodes[this.childNodes.length-1].open){return this.childNodes[this.childNodes.length-1].getLast();}
	else{return this.childNodes[this.childNodes.length-1];}
}
WebFXTreeItem.prototype.getNextSibling=function(){
	for (var i=0;i<this.parentNode.childNodes.length;i++){
		if(this==this.parentNode.childNodes[i]){break;}
	}
	if(++i==this.parentNode.childNodes.length){
		return this.parentNode.getNextSibling();
	}else{
		return this.parentNode.childNodes[i];
	}
}
WebFXTreeItem.prototype.getPreviousSibling=function(b){
	for (var i=0;i<this.parentNode.childNodes.length;i++){
		if(this==this.parentNode.childNodes[i]){break;}
	}
	if(i==0){
		return this.parentNode;
	}else{
		if((this.parentNode.childNodes[--i].open)||(b&&this.parentNode.childNodes[i].folder)){
			return this.parentNode.childNodes[i].getLast();
		}else{
			return this.parentNode.childNodes[i];
		}
	}
}
WebFXTreeItem.prototype.toString=function(nItem,nItemCount,firstItem){
	var foo=this.parentNode;
	var indent='';
	if(nItem+1==nItemCount){this.parentNode._last=true;}
	var i=0;
	while(foo.parentNode){
		foo=foo.parentNode;
		indent='<td><div id="'+this.id+'-indent-'+i+'" class="'+((foo._last)?webFXTreeConfig.blankClass:webFXTreeConfig.iClass)+'"><img src="../media/trans.gif" width="1" height="1"></div></td>'+indent;
		i++;
	}
	this._level=i;
	if(this.childNodes.length){this.folder=1;}
	else{this.open=false;}
	if((this.folder)||(webFXTreeHandler.behavior!='classic')){
		if(!this.icon){this.icon=webFXTreeConfig.folderClass;}
		if(!this.openClass){this.openClass=webFXTreeConfig.openFolderClass;}
	}
	else if(!this.icon){this.icon=webFXTreeConfig.fileClass;}
	var str='';
	str+='<table border="0" cellpadding="0" cellspacing="0" ';
	str+='id="'+this.id+'" ';
	str+='ondblclick="webFXTreeHandler.toggle(this);" ';
	str+='class="tree"';
	str+='>';
	str+='<tr>';
	str+=indent;
	str+='<td valign="top"><div id="'+this.id+'-plus" class="'+((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusClass:(firstItem?webFXTreeConfig.rMinusClass:webFXTreeConfig.tMinusClass)):((this.parentNode._last)?webFXTreeConfig.lPlusClass:(firstItem?webFXTreeConfig.rPlusClass:webFXTreeConfig.tPlusClass))):((this.parentNode._last)?webFXTreeConfig.lClass:(firstItem?webFXTreeConfig.rClass:webFXTreeConfig.tClass)))+'" onclick="webFXTreeHandler.toggle(this);"><img src="../media/trans.gif" width="1" height="1"></div></td>';
	str+='<td valign="top"><div id="'+this.id+'-icon" class="'+((webFXTreeHandler.behavior=='classic'&&this.open)?this.openClass:this.icon)+'" onclick="webFXTreeHandler.toggle(parentNode.parentNode.parentNode.parentNode);"><img src="../media/trans.gif" width="1" height="1"></div></td>';
	str+='<td onclick="webFXTreeHandler.toggle(parentNode.parentNode.parentNode);" colspan="90" width="100%" ><a href="'+this.action+'" id="'+this.id+'-anchor" onfocus="webFXTreeHandler.focus(this);" onblur="webFXTreeHandler.blur(this);">'+this.text+'</a>';
	str+='</td></tr>';
	str+='</table>';
	str+='<table cellpadding="0" cellspacing="0" ';
	str+='id="'+this.id+'-cont" ';
	str+='class="webfx-tree-container" ';
	str+='style="';
	str+='display:'+((this.open)?'block':'none')+';';
	str+='">';
	str+='<tr>';
	str+='<td>';
	for (var i=0;i<this.childNodes.length;i++){
		str+=this.childNodes[i].toString(i,this.childNodes.length,false);
	}
	str+='</td></tr></table>';
	this.plusClass=((this.parentNode._last)?webFXTreeConfig.lPlusClass:(firstItem?webFXTreeConfig.rPlusClass:webFXTreeConfig.tPlusClass));
	this.minusClass=((this.parentNode._last)?webFXTreeConfig.lMinusClass:(firstItem?webFXTreeConfig.rMinusClass:webFXTreeConfig.tMinusClass));
	return str;
}

var orientation=0;
var navType="tree";
var familyStr=visible;
var dynamicLoaded=true;

function getTargetFrameObj(){
	var wm;
	if(parent.wm){
		wm=parent.wm;
		if(tc){tco=wm.get(tc);}
	}
	return tco;
}