/* =================================================================== */
/* 		MOD "MODERN BBCODE" JAVASCRIPT FUNCTIONS 	       */
/* 			    Author: neutral 	       		       */
/* =================================================================== */

/* ======================= */
/* Common script variables */
/* ======================= */

var uagent    = navigator.userAgent.toLowerCase();
var is_safari = ((uagent.indexOf('safari') != -1) || (navigator.vendor == "Apple Computer, Inc."));
var is_opera  = (uagent.indexOf('opera') != -1);
var is_webtv  = (uagent.indexOf('webtv') != -1);
var is_ie     = ((uagent.indexOf('msie') != -1) && (!is_opera) && (!is_safari) && (!is_webtv));

var menu_ids = new Array(0, 1, 2, 3, 4);

var dropdown_buttons = new Array(
	"color", "smiley", "size", "img", "list"
);

var popup_panels = new Array(
	"colorpalette",	"smilespanel", "sizepanel", "imgpanel",	"listpanel"
);

var opened_popup = -1;

// only for ie fix
var none_ie = new Array(
	"colorbtn", "smilesbtn", "sizebtn", "imgbtn", "listbtn"
);

var none_ie_2 = new Array(
	"colorcontent", "smilescontent", "sizecontent", "imgcontent", "listcontent"
);

/* =========================================== */
/* This function fixes toolbar width for Opera */
/* =========================================== */

function fixOperaWidth()
{
	if (is_opera) 
	{
		document.getElementById('bbcode').style.width = "99%";
		document.getElementById('bbcode_adv').style.width = "99%";
	}
}

/* ================================ */
/* Returns left posititon of object */
/* ================================ */

function getObjectLeftpos (obj)
{
	var left = obj.offsetLeft;
	
	while ((obj = obj.offsetParent) != null)
	{
		left += obj.offsetLeft;
	}
	
	return left;
}

/* ================================ */
/* Returns top posititon of object  */
/* ================================ */

function getObjectToppos(obj)
{
	var top = obj.offsetTop;
	
	while ((obj = obj.offsetParent) != null)
	{
		top += obj.offsetTop;
	}
	
	return top;
}


/* ============================ */
/* Generates list tag structure */
/* ============================ */

function tag_list( type )
{
	var listitem = "init";
	var thelist   = "";
	
	opentag = ( type == 'ordered' ) ? '[listo]' : '[list]';
	closetag = ( type == 'ordered' ) ? '[/listo]' : '[/list]';
	
	while ((listitem != "") && (listitem != null))
	{
		listitem = prompt(list_prompt, "");
		
		if ((listitem != "") && (listitem != null))
		{
			thelist = thelist + "[li]" + listitem + "[/li]";
		}
	}
	
	if ( thelist != "" )
	{
		thelist = opentag + thelist + closetag;
		insert_text(thelist, "");
	}
}

/* =================== */
/* Hides poped up menu */
/* =================== */

function hide_poped_menu()
{
	if (opened_popup >= 0)
	{
		var btn_id = dropdown_buttons[opened_popup];
		var popup_id = popup_panels[opened_popup];

		document.getElementById(popup_id).style.visibility = "hidden";
		document.getElementById(popup_id).style.display    = "none";

		opened_popup = -1;
		document.getElementById(btn_id).className = 'dropdown';
	}
}

function documentClickHandler(target)
{
	if (!is_ie)
	{
		for (var i = 0; i < menu_ids.length; i++)
		{
			if (target.id == dropdown_buttons[i])
			return true;
		}

		if (target.className == "abtn")
		return true;

		hide_poped_menu();
		return true;
	}
}

/* ===================================== */
/* Shows popup menu specified by menu_id */
/* ===================================== */

function popup_menu(menu_id)
{
	var btn_id = dropdown_buttons[menu_id];

	btnElement = document.getElementById(btn_id);

	var iLeftPos  = getObjectLeftpos(btnElement) - 37;
	var iTopPos   = getObjectToppos(btnElement) - 244; // + (btnElement.offsetHeight - 1);

	if (is_ie) 
	{
		iLeftPos += -35;
		iTopPos += -2;
	}

	var popup_id = popup_panels[menu_id];

	document.getElementById(popup_id).style.left = (iLeftPos) + "px";
	document.getElementById(popup_id).style.top  = (iTopPos)  + "px";

	if (opened_popup == menu_id)
	{
		hide_poped_menu();
		return;
	}

	hide_poped_menu();

	document.getElementById(popup_id).style.visibility = "visible";
	document.getElementById(popup_id).style.display    = "inline";

	document.getElementById(btn_id).className = 'dropdown_opened';
	if (is_ie)
	{
		document.getElementById(none_ie[menu_id]).style.visibility = "hidden";
		document.getElementById(none_ie_2[menu_id]).className = "popupcontent_ie";
	}

	opened_popup = menu_id;
	
	return;
}

function mouseover_menu(menu_id)
{
	if (opened_popup < 0)
		return;

	if (opened_popup != menu_id)
		popup_menu(menu_id);
}
