/**********************************************
/**********************************************/
function getStyleClass (className) {
	for (var s = 0; s < document.styleSheets.length; s++)
	{
		if(document.styleSheets[s].rules)
		{
			for (var r = 0; r < document.styleSheets[s].rules.length; r++)
			{
				if (document.styleSheets[s].rules[r].selectorText == '.' + className)
				{
					return document.styleSheets[s].rules[r];
				}
			}
		}
		else if(document.styleSheets[s].cssRules)
		{
			for (var r = 0; r < document.styleSheets[s].cssRules.length; r++)
			{
				if (document.styleSheets[s].cssRules[r].selectorText == '.' + className)
					return document.styleSheets[s].cssRules[r];
			}
		}
	}
	return null;
}


var DB_button = {
	DB_groups: new Array(),
	DB_types: new Array(),
	addButton: function (id,gr,tp,openAction,closeAction) {
		e = document.getElementById(id);
		if (this.DB_groups[gr]==undefined) this.DB_groups[gr] = new Array();
		this.DB_groups[gr].push(e);
		e.className = this.DB_types[tp].baseClass;
		e.DB_tp = tp;
		e.DB_gr = gr;
		e.DB_fx = new Fx.Styles(id,this.DB_types[tp].opts);
		if (DB_button.DB_types[e.DB_tp].baseT!=null)
			e.DB_fx.start(DB_button.DB_types[e.DB_tp].baseT);
		e.openAction = (openAction==undefined)? '': openAction;
		e.closeAction = (closeAction==undefined)? '': closeAction;
		e.onmouseover = function () { 
			try {
				this.className = DB_button.DB_types[this.DB_tp].overClass;
				if (DB_button.DB_types[this.DB_tp].overT!=null)
					this.DB_fx.start(DB_button.DB_types[this.DB_tp].overT);
				}
			catch (e) {
				}
			}
		e.onmouseout = function () {
			try {
				if (DB_button==undefined) return;
				if (this.DB_active==undefined){
					this.className = DB_button.DB_types[this.DB_tp].baseClass;
					if (DB_button.DB_types[this.DB_tp].baseT!=null)
						this.DB_fx.start(DB_button.DB_types[this.DB_tp].baseT);
				}
				else {
					if (this.DB_active){
						this.className = DB_button.DB_types[this.DB_tp].activeClass;
						if (DB_button.DB_types[this.DB_tp].activeT!=null)
							this.DB_fx.start(DB_button.DB_types[this.DB_tp].activeT);
						}
					else {
						this.className = DB_button.DB_types[this.DB_tp].inactiveClass;
						if (DB_button.DB_types[this.DB_tp].inactiveT!=null)
							this.DB_fx.start(DB_button.DB_types[this.DB_tp].inactiveT);
						}
					}
				}
			catch (e) {
				}
			}
		e.onclick = function () {
			try {
				if (this.DB_active!=true) {
					for (i in DB_button.DB_groups[this.DB_gr]) {
						theElement = DB_button.DB_groups[this.DB_gr][i];
						if (theElement.DB_tp!=undefined) {
							if (theElement!=this && theElement.DB_active==true) {
								eval(theElement.closeAction);
								theElement.DB_active = false;
								theElement.className = DB_button.DB_types[theElement.DB_tp].inactiveClass; 
								if (DB_button.DB_types[theElement.DB_tp].inactiveT!=null)
									theElement.DB_fx.start(DB_button.DB_types[theElement.DB_tp].inactiveT);
								}
							}
						}
					eval(this.openAction);
					this.DB_active = true;
					this.className = DB_button.DB_types[this.DB_tp].activeClass;
					if (DB_button.DB_types[this.DB_tp].activeT!=null)
						this.DB_fx.start(DB_button.DB_types[this.DB_tp].activeT);
				} else {	
					for (i in DB_button.DB_groups[this.DB_gr]) {
						theElement = DB_button.DB_groups[this.DB_gr][i];
						if (theElement.DB_tp!=undefined) {
							if (theElement.DB_active==true) {
								eval(theElement.closeAction);
								theElement.DB_active = false;
								}
							theElement.className = DB_button.DB_types[theElement.DB_tp].baseClass; 
							if (DB_button.DB_types[theElement.DB_tp].baseT!=null)
								theElement.DB_fx.start(DB_button.DB_types[theElement.DB_tp].baseT);
							}
						}
					}
				}
			catch (e) {
				}
			}
		},
		
	newType: function (tp,base,over,inactive,active,opts,baseT,overT,inactiveT,activeT) {
		over = (over==undefined)? base : over;
		inactive = (inactive==undefined)? base : inactive;
		active = (active==undefined)? over : active;
		baseT = (baseT==undefined)? null : baseT;
		overT = (overT==undefined)? null : overT;
		inactiveT = (inactiveT==undefined)? null : inactiveT;
		activeT = (activeT==undefined)? null : activeT;
		opts = (opts==undefined)? {duration:300} : opts;
		opts.wait = false;
		this.DB_types[tp] = {baseClass: base,overClass: over,inactiveClass: inactive,activeClass: active,baseT:baseT,overT:overT,inactiveT:inactiveT,activeT:activeT,opts:opts};
		},
	
	resetGroup: function (gr) {
		for (i in DB_button.DB_groups[gr]) {
			theElement = DB_button.DB_groups[gr][i];
			if (theElement.DB_tp!=undefined&&DB_button.DB_types[theElement.DB_tp].baseClass!=undefined) {
				theElement.DB_active=false;
				theElement.className = DB_button.DB_types[theElement.DB_tp].baseClass; 
				if (DB_button.DB_types[theElement.DB_tp].baseT!=null)
					theElement.DB_fx.start(DB_button.DB_types[theElement.DB_tp].baseT);
				}
			}
		}
	}




