/**** Window Effects ****/
function WindowEffects()
{
	if(window.bjs_debugger_flag != undefined)
		this.debuggr = true;
		
	// Ex: debugger call
	// ob_win_eff.AddDebug("debug message here")

	this.doc_kids = document.getElementsByTagName("*");
	this.doc_kids_a = document.getElementsByTagName("A");
	
	this.match_class_display_block = /display_block/;
	this.match_class_display_inline = /display_inline/;
	this.match_class_display_none = /display_none/;
	
	this.replace_class_display_block = "display_block";
	this.replace_class_display_inline = "display_inline";
	this.replace_class_display_none = "display_none";	
	
	this.replace_none = "";

	this.PopUpsInit = function()
	{
		var match_class = "open_popup";
		for(var i=0; i < ob_win_eff.doc_kids_a.length; i++)
		{
			if(ob_win_eff.doc_kids_a[i].className.match(match_class))
				ob_win_eff.doc_kids_a[i].onclick = this.PopUpClick;
		}
	}
		this.PopUpClick = function()
		{
			if(this.rel == "normal")
			{
				new_window = window.open(this.href, 'newWin');
			}
			else
			{
				var win_dims = this.rel.split('x');
				window_options = 'toolbar=no,location=no,resizable=yes,scrollbars=yes,menubar=no,width=' + win_dims[0] + ',height=' + win_dims[1];
				new_window = window.open(this.href, 'newWin', window_options);
			}

			return false;
		}
	
	
	this.ConfirmClickInit = function()
	{
		var match_class = "confirm_click";
		for(var i=0; i < ob_win_eff.doc_kids.length; i++)
		{
			if(ob_win_eff.doc_kids[i].className.match(match_class))
				ob_win_eff.doc_kids[i].onclick = this.ConfirmClick;
		}
	}
		this.ConfirmClick = function()
		{
			if(confirm(this.title))
				return true;
			else
				return false;
		}

	
	this.ToggleDisplayInit = function()
	{
		var match_class = "toggle_display";
		for(var i=0; i < ob_win_eff.doc_kids.length; i++)
		{
			if(ob_win_eff.doc_kids[i].className.match(match_class))
				ob_win_eff.doc_kids[i].onclick = this.ToggleDisplay;
		}
	}
		this.ToggleDisplay = function()
		{
			// Only works on toggling block and table-rows elements for now
			var toggle_this = this.id.split(".");
			var toggle_this_switch_on = document.getElementById(toggle_this[0] + ".inline");
			var toggle_this_switch_off = document.getElementById(toggle_this[0] + ".none");
			var toggle_this_content = document.getElementById(toggle_this[0]);
					
			var match_inline = /inline/;
			var replace_inline = "inline";
			
			var match_none = /none/;
			var replace_none = "none";
			
			
			if(this.rel == "table-row")
			{
				var match_block = "table-row";
				var replace_block = "table-row";
			}
			else
			{
				var match_block = "block";
				var replace_block = "block";
			}
			

			if(toggle_this_switch_on.className.match("inline"))
			{
				toggle_this_switch_on.className = toggle_this_switch_on.className.replace(match_inline, replace_none);
				toggle_this_switch_off.className = toggle_this_switch_off.className.replace(match_none, replace_inline);
				toggle_this_content.className = toggle_this_content.className.replace(match_block, replace_none);
			}
			else
			{
				toggle_this_switch_on.className = toggle_this_switch_on.className.replace(match_none, replace_inline);
				toggle_this_switch_off.className = toggle_this_switch_off.className.replace(match_inline, replace_none);
				toggle_this_content.className = toggle_this_content.className.replace(match_none, replace_block);
			}

			return false;
		}


	this.FlipDisplayInit = function()
	{
		var match_class = "flip_display";
		
		for(var i=0; i < ob_win_eff.doc_kids.length; i++)
		{
			if(ob_win_eff.doc_kids[i].className.match(match_class))
				ob_win_eff.doc_kids[i].onclick = this.FlipDisplay;
		}
	}
		this.FlipDisplay = function()
		{
			var flip_this = this.id.split(".");
			var match_class = "flip_content_display";

			for(var i=0; i < ob_win_eff.doc_kids.length; i++)
			{
				if(ob_win_eff.doc_kids[i].className.match(match_class))
					document.getElementById(ob_win_eff.doc_kids[i].id).style.display = "none";
			}
			
			if(flip_this[1] != null)
				document.getElementById(flip_this[1]).style.display = "block";
		}

	return this;
}


WindowEffects.prototype.AddDebug = function(in_line)
{
	if(ob_win_eff.debuggr)
		ob_win_bjs.AddItem(in_line);
}


WindowEffects.prototype.ToggleTabsInit = function(in_current_tab_set)
{
	var match_class = in_current_tab_set;
	for(var i=0; i < ob_win_eff.doc_kids_a.length; i++)
	{
		if(ob_win_eff.doc_kids_a[i].className.match(match_class))
			ob_win_eff.doc_kids_a[i].onclick = this.ToggleTabs;
	}
}
	WindowEffects.prototype.ToggleTabs = function()
	{
		var match_current_tab = /tab_links_current/;
		var match_toggle_tabs = "toggle_tabs"
		var current_tab_class = "tab_links_current";
		var current_tab_split = this.id.split(".");
		var current_tab_block = document.getElementById(current_tab_split[0]);
		var current_tab_set = this.rel;

		// set clicked tab to be active and the others not
		for(var i=0; i < ob_win_eff.doc_kids_a.length; i++)
		{
			if(ob_win_eff.doc_kids_a[i].className.match(current_tab_set))
			{
				ob_win_eff.doc_kids_a[i].className = ob_win_eff.doc_kids_a[i].className.replace(match_current_tab, ob_win_eff.replace_none);
				//ob_win_eff.AddDebug("ob_win_eff.doc_kids_a[i].id='" + ob_win_eff.doc_kids_a[i].id + "' ~~ ob_win_eff.doc_kids_a[i].className='" + ob_win_eff.doc_kids_a[i].className + "'");
			}
			
			if(ob_win_eff.doc_kids_a[i].id == this.id)
			{
				ob_win_eff.doc_kids_a[i].className = ob_win_eff.doc_kids_a[i].className = ob_win_eff.doc_kids_a[i].className + " " + current_tab_class;
				ob_win_eff.doc_kids_a[i].blur();
				//ob_win_eff.AddDebug("ob_win_eff.doc_kids_a[i].id='" + ob_win_eff.doc_kids_a[i].id + "' ~~ ob_win_eff.doc_kids_a[i].className='" + ob_win_eff.doc_kids_a[i].className + "'");
			}
		}

		// Set all tab containers to be hidden
		for(var i=0; i < ob_win_eff.doc_kids.length; i++)
		{
			if(ob_win_eff.doc_kids[i].className.match(current_tab_set))
			{
				ob_win_eff.doc_kids[i].className = ob_win_eff.doc_kids[i].className.replace(ob_win_eff.match_class_display_block, ob_win_eff.replace_class_display_none);
				ob_win_eff.AddDebug("ob_win_eff.doc_kids[i].id='" + ob_win_eff.doc_kids[i].id + "' ~~ ob_win_eff.doc_kids[i].className='" + ob_win_eff.doc_kids[i].className + "'");
			}
		}

		// Set current tab container to be visible
		current_tab_block.className = current_tab_block.className.replace(ob_win_eff.replace_class_display_none, ob_win_eff.replace_class_display_block);
		ob_win_eff.AddDebug("current_tab_block.id='" + current_tab_block.id + "' ~~ current_tab_block.className='" + current_tab_block.className + "'");

		return false;
	}



WindowEffects.prototype.SetMenuHoversInit = function(in_object)
{
	if(document.getElementById(in_object))
	{
		var li_hovers_tags = document.getElementById(in_object).getElementsByTagName('LI');
	
		for(var i=0; i < li_hovers_tags.length; i++)
		{
			if(li_hovers_tags[i].id)
			{
				var ul_blocks_tags = document.getElementById(li_hovers_tags[i].id).getElementsByTagName('UL');
	
				if(ul_blocks_tags.length == 1)
				{
					li_hovers_tags[i].onmouseover = this.SetMenuHoversHoverOn;
					li_hovers_tags[i].onmouseout = this.SetMenuHoversHoverOff;
				}
			}
		}
	}
}
	WindowEffects.prototype.SetMenuHoversHoverOn = function()
	{
		var ul_blocks_tags = document.getElementById(this.id).getElementsByTagName('UL');
		ul_blocks_tags[0].className = "menu_hover_on";
	}
	
	WindowEffects.prototype.SetMenuHoversHoverOff = function()
	{
		var ul_blocks_tags = document.getElementById(this.id).getElementsByTagName('UL');
		ul_blocks_tags[0].className = "menu_hover_off";
	}


WindowEffects.prototype.GetViewPort = function()
{
	this.window_x = (document.documentElement && document.documentElement.clientWidth) || window.innerWidth || self.innerWidth || document.body.clientWidth;
	this.window_y = (document.documentElement && document.documentElement.clientHeight) || window.innerHeight || self.innerHeight || document.body.clientHeight;
	this.scroll_y = (document.documentElement && document.documentElement.scrollLeft) || window.pageXOffset || self.pageXOffset || document.body.scrollLeft;
	this.scroll_y = (document.documentElement && document.documentElement.scrollTop) || window.pageYOffset || self.pageYOffset || document.body.scrollTop;
	this.page_x = (document.documentElement && document.documentElement.scrollWidth) ? document.documentElement.scrollWidth : (document.body.scrollWidth > document.body.offsetWidth) ? document.body.scrollWidth : document.body.offsetWidth;
	this.page_y = (document.documentElement && document.documentElement.scrollHeight) ? document.documentElement.scrollHeight : (document.body.scrollHeight > document.body.offsetHeight) ? document.body.scrollHeight : document.body.offsetHeight;
}
	WindowEffects.prototype.SetElementHeight = function(in_element, in_height)
	{
		document.getElementById(in_element).style.height = in_height + "px";
	}