var vbmenu_usepopups = false;
var vbmenu_datefields = new Array();
var vbmenu_registered = new Array();
var vbmenu_initialized = new Array();
var vbmenu_activemenus = new Array();
var vbmenu_currentactive = false;
var vbmenu_doslide = true;
var vbmenu_dofade = false;
var vbmenu_opensteps = 10;
var menuCompose=2;
var slidetimer = false;
var vBobjects = new Array();
var userAgent = navigator.userAgent.toLowerCase();
var is_opera  = (userAgent.indexOf('opera') != -1);
var is_saf    = ((userAgent.indexOf('applewebkit') != -1) || (navigator.vendor == "Apple Computer, Inc."));
var is_webtv  = (userAgent.indexOf('webtv') != -1);
var is_ie     = ((userAgent.indexOf('msie') != -1) && (!is_opera) && (!is_saf) && (!is_webtv));
var is_ie4    = ((is_ie) && (userAgent.indexOf("msie 4.") != -1));
var is_moz    = ((navigator.product == 'Gecko') && (!is_saf));
var is_kon    = (userAgent.indexOf('konqueror') != -1);
var is_ns     = ((userAgent.indexOf('compatible') == -1) && (userAgent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_saf));
var is_ns4    = ((is_ns) && (parseInt(navigator.appVersion) == 4));
var vbDOMtype = '';

document.onclick = function check() { 
	if (document.all) {
		if (window.event){
			vbmenu_close();
		}
	} 
} 

if (document.getElementById)
{
	vbDOMtype = "std";
}
else if (document.all)
{
	vbDOMtype = "ie4";
}
else if (document.layers)
{
	vbDOMtype = "ns4";
}

function vbmenu_register(controlid, nowrite, datefield)
{

	if (vbmenu_usepopups)
	{
		vbmenu_doregister(controlid, nowrite, datefield);
	}
}

function vbmenu_doregister(controlid, nowrite, datefield)
{
	if (document.getElementsByTagName)
	{
		var controlobj = fetch_object(controlid);
		if (controlobj)
		{			
			if (datefield)
			{
				vbmenu_datefields[controlid] = datefield;
			}
			
			vbmenu_registered[vbmenu_registered.length] = controlid;
			
			if (!nowrite)
			{
				document.write('<img src="' + IMGDIR_MISC + '/menu_open.gif" alt="" border="0" />');
			}
			return true;
		}
	}
	
	return false;
}
function fetch_object(idname, forcefetch)
{
	if (forcefetch || typeof(vBobjects[idname]) == "undefined")
	{
		switch (vbDOMtype)
		{
			case "std":
			{
				vBobjects[idname] = document.getElementById(idname);
			}
			break;

			case "ie4":
			{
				vBobjects[idname] = document.all[idname];
			}
   
			break;

			case "ns4":
			{
				vBobjects[idname] = document.layers[idname];
			}
			break;
		}
	}
	return vBobjects[idname];
}
function vbmenu_init(controlid,test)
{
	var menuid = vbmenu_getmenuid(controlid) + "_menu";
	var menuobj = fetch_object(menuid);
	
	if (document.getElementsByTagName && menuobj)
	{
		// do control object
		var controlobj = fetch_object(controlid);
		vbmenu_hand_pointer(controlobj);
		controlobj.unselectable = true;
		controlobj.onclick = vbmenu_eventhandler_click;
		controlobj.onmouseover = vbmenu_eventhandler_mouseover;
		
		// don't initialize the same popup menu twice
		if (typeof(vbmenu_initialized[menuid]) != "undefined")
		{
			return;
		}
		
		// do popup menu object
		var popupobj = fetch_object(menuid);
		popupobj.style.display = "none";
		popupobj.style.position = "absolute";
		popupobj.style.left = "0px";
		popupobj.style.top = "0px";
		popupobj.onclick = e_by_gum;
		
		// reset inner table width
		var tables = popupobj.getElementsByTagName("table");
		if (tables.length > 0)
		{
			tables[0].width = "150";
		}
		
		// init popup filters (ie only)
		if (is_ie)
		{		
			popupobj.style.filter += "progid:DXImageTransform.Microsoft.alpha(enabled=1,opacity=100)";
			popupobj.style.filter += "progid:DXImageTransform.Microsoft.shadow(direction=135,color=#8E8E8E,strength=3)";
		}
		
		// do menu options
		var tds = popupobj.getElementsByTagName("td");
		for (var i = 0; i < tds.length; i++)
		{			
			if (tds[i].className == "vbmenu_option")
			{
				tds[i].style.cursor = "default";
				if (tds[i].title == "nohilite")
				{
					tds[i].title = "";
				}
				else
				{
					tds[i].onmouseover = vbmenu_switch_option_bg;
					tds[i].onmouseout = vbmenu_switch_option_bg;
					tds[i].onclick = vbmenu_navtolink;

					if (!is_saf && !is_kon)
					{
						try
						{
							var links = tds[i].getElementsByTagName("a");
							for (var j = 0; j < links.length; j++)
							{
								if (typeof(links[j].onclick) == "undefined")
								{
									links[j].onclick = e_by_gum;
								}
							}
						}
						catch(e)
						{
							// hmm
						}
					}
				}
			}
			else if (is_moz)
			{
				tds[i].onmouseover = moz_rclick;
				tds[i].onmouseout = moz_rclick;
			}
		}
		
		vbmenu_initialized[menuid] = true;
	}
}
function vbmenu_getmenuid(controlid)
{
	var dotpos = controlid.indexOf(".");
	if (dotpos != -1)
	{
		return controlid.substr(0, dotpos);
	}
	else
	{
		return controlid;
	}
}
function vbmenu_hand_pointer(obj)
{
	try
	{
		obj.style.cursor = "pointer";
	}
	catch(e)
	{
		obj.style.cursor = "hand";
	}
}
function vbmenu_eventhandler_click(e)
{
	e = do_an_e(e);
	vbmenu_open(this);
}
function vbmenu_open(elm)
{
    if (menuCompose == '1'){
        document.all.test.style.visibility='hidden';
    }
	var openmenu = vbmenu_currentactive;
	
	vbmenu_close();
	
	if (openmenu == elm.id)
	{
		// clicked element was the control for the currently open menu - exit
		return false;
	}
	
	// get the id of the menu to be opened
	var menuid = vbmenu_getmenuid(elm.id) + "_menu";	
	var menuobj = fetch_object(menuid);
	var force_right_slide = false;

	if (typeof(vbmenu_datefields[elm.id]) != "undefined")
	{
		force_right_slide = true;
		fetch_object(elm.id + "_output").innerHTML = fetch_object(vbmenu_datefields[elm.id]).value;
	}
	else
	{
		force_right_slide = false
	}
	
	vbmenu_activemenus[elm.id] = true;
	vbmenu_currentactive = elm.id;
	
	// get menu position
	var leftpx = fetch_object_posleft(elm);
	var toppx = fetch_object_postop(elm) + elm.offsetHeight;
	
	// un-hide menu	
	menuobj.style.display = "";
	var slidedir = 'left';

	// attempt to keep menu on screen
	if (force_right_slide || (leftpx + menuobj.offsetWidth) >= document.body.clientWidth)
	{
		leftpx = leftpx + elm.offsetWidth - menuobj.offsetWidth;
		slidedir = "right";
	}
	else
	{
		slidedir = "left";
	}

	// shuffle the IE menus a bit
	if (is_ie)
	{
		leftpx += (slidedir == "left") ? -2 : 2;
	}
	
	// set menu position
	menuobj.style.left = leftpx + "px";
	menuobj.style.top = toppx + "px";
	
	if (is_ie)
	{	
		menuarea = {
			"L" : leftpx,
			"T" : toppx,
			"R" : leftpx + menuobj.offsetWidth,
			"B" : toppx + menuobj.offsetHeight
		};		
		selects = document.getElementsByTagName("select");
		for (var i = 0; i < selects.length; i++)
		{
			if (vbmenu_overlap(selects[i], menuarea))
			{
				selects[i].style.visibility = "hidden";
			}
		}
	}

	// slide menus open (internet explorer only)
	if (vbmenu_doslide && !is_opera && !is_ie4)
	{
		if (vbmenu_dofade && is_ie)
		{
			menuobj.filters.item('DXImageTransform.Microsoft.alpha').opacity = 0;
		}
		
		var intervalX = Math.ceil(menuobj.offsetWidth / vbmenu_opensteps);
		var intervalY = Math.ceil(menuobj.offsetHeight / vbmenu_opensteps);
		
		if (slidedir == "left")
		{
			menuobj.style.clip = "rect(auto, 0px, 0px, auto)";
			vbmenu_slide_left(menuid, intervalX, intervalY, 0, 0, 0);
		}
		else
		{
			menuobj.style.clip = "rect(auto, auto, 0px, " + (menuobj.offsetWidth) + "px)";
			vbmenu_slide_right(menuid, intervalX, intervalY, menuobj.offsetWidth, 0, 0);
		}
	}
	
	return false;
}
function vbmenu_eventhandler_mouseover(e)
{
	e = do_an_e(e);
	vbmenu_hover(this);
}
function vbmenu_hover(elm)
{
	for (key in vbmenu_activemenus)
	{
		if (vbmenu_activemenus[key] == true && key != elm.id)
		{
			vbmenu_open(elm);
			return;
		}
	}
}
function e_by_gum(eventobj)
{
	if (!eventobj || is_ie)
	{
		window.event.cancelBubble = true;
		return window.event;
	}
	else
	{
		if (eventobj.target.type == 'submit')
		{
			// naughty safari
			eventobj.target.form.submit();
		}
		eventobj.stopPropagation();
		return eventobj;
	}
}
function vbmenu_switch_option_bg(e)
{
	if (is_moz)
	{
		moz_rclick(e);
	}
	this.className = (this.className == "vbmenu_option") ? "vbmenu_hilite" : "vbmenu_option";
	vbmenu_hand_pointer(this);
}
function vbmenu_navtolink(e)
{
	childLinks = this.getElementsByTagName("a");
	if (childLinks[0])
	{
		if (is_ie)
		{
			// use this in IE to send HTTP_REFERER
			childLinks[0].click();
			window.event.cancelBubble = true;
		}
		else
		{
			// other browsers can use this
			if (e.shiftKey)
			{
				window.open(childLinks[0].href);
				e.stopPropagation();
				e.preventDefault();
			}
			else
			{
				window.location = childLinks[0].href;
				e.stopPropagation();
				e.preventDefault();
			}
		}
	}
}
function do_an_e(eventobj)
{
	if (!eventobj || is_ie)
	{
		window.event.returnValue = false;
		window.event.cancelBubble = true;
		return window.event;
	}
	else
	{
		eventobj.stopPropagation();
		eventobj.preventDefault();
		return eventobj;
	}
}
function vbmenu_close()
{
	if (vbmenu_currentactive)
	{
		for (key in vbmenu_activemenus)
		{
			fetch_object(vbmenu_getmenuid(key) + "_menu").style.display = "none";
			vbmenu_activemenus[key] = false;
		}
        if (menuCompose == '1'){
            document.all.test.style.visibility='visible';
        }
	}
	vbmenu_currentactive = false;
	
	if (slidetimer)
	{
		clearTimeout(slidetimer);
		slidetimer = false;
	}
	
	if (is_ie)
	{
		selects = document.getElementsByTagName("select");
		for (var i = 0; i < selects.length; i++)
		{
			selects[i].style.visibility = "visible";
		}
	}
}
function fetch_object_posleft(elm)
{
	var left = elm.offsetLeft;
	while((elm = elm.offsetParent) != null)
	{
		left += elm.offsetLeft;
	}
	return left;
}

function fetch_object_postop(elm)
{
	var top = elm.offsetTop;
	while((elm = elm.offsetParent) != null)
	{
		top += elm.offsetTop;
	}
	return top;
}
function vbmenu_slide_left(menuid, intervalX, intervalY, clipX, clipY, opacity)
{
	var menuobj = fetch_object(menuid);
	
	if (clipX < menuobj.offsetWidth || clipY < menuobj.offsetHeight)
	{
		if (vbmenu_dofade && is_ie)
		{
			opacity += 10;
			menuobj.filters.item('DXImageTransform.Microsoft.alpha').opacity = opacity;
		}
		clipX += intervalX;
		clipY += intervalY;
		menuobj.style.clip = "rect(auto, " + clipX + "px, " + clipY + "px, auto)";
		slidetimer = setTimeout("vbmenu_slide_left('" + menuid + "', " + intervalX + ", " + intervalY + ", " + clipX + ", " + clipY + ", " + opacity + ");", 0);
	}
	else
	{
		clearTimeout(slidetimer);
	}
}

function vbmenu_slide_right(menuid, intervalX, intervalY, clipX, clipY, opacity)
{
	menuobj = fetch_object(menuid);
	
	if (clipX > 0 || clipY < menuobj.offsetHeight)
	{
		if (vbmenu_dofade && is_ie)
		{
			opacity += 10;
			menuobj.filters.item('DXImageTransform.Microsoft.alpha').opacity = opacity;
		}
		clipX -= intervalX;
		clipY += intervalY;
		menuobj.style.clip = "rect(auto, " + menuobj.offsetWidth + "px, " + clipY + "px, " + clipX + "px)";
		slidetimer = setTimeout("vbmenu_slide_right('" + menuid + "', " + intervalX + ", " + intervalY + ", " + clipX + ", " + clipY + ", " + opacity + ");", 0);
	}
	else
	{
		clearTimeout(slidetimer);
	}
}
function vbmenu_overlap(selectobj, m)
{
	s = new Array();
	s['L'] = fetch_object_posleft(selectobj);
	s['T'] = fetch_object_postop(selectobj);	
	s['R'] = s['L'] + selectobj.offsetWidth;
	s['B'] = s['T'] + selectobj.offsetHeight;
	
	if (s['L'] >= m['L'] && s['L'] <= m['R'] && ((s['T'] >= m['T'] && s['T'] <= m['B']) || (s['B'] >= m['T'] && s['B'] <= m['B']))) { return true; }
	else if (s['R'] >= m['L'] && s['R'] <= m['R'] && ((s['T'] >= m['T'] && s['T'] <= m['B']) || (s['B'] >= m['T'] && s['B'] <= m['B']))) { return true; }
	else if (s['B'] >= m['T'] && s['T'] <= m['B'] && ((s['L'] >= m['L'] && s['L'] <= m['R']) || (s['R'] >= m['R'] && s['R'] <= m['R']))) { return true; }
	else if (m['B'] >= s['T'] && m['T'] <= s['B'] && ((m['L'] >= s['L'] && m['L'] <= s['R']) || (m['R'] >= s['R'] && m['R'] <= s['R']))) { return true; }
	else { return false; }
}
function drawMenu(folderList){
	document.writeln('<div class="vbmenu_popup" id="forumtools_menu" style="display:none">');
	document.writeln('<table cellpadding="4" cellspacing="1" border="0">');
	var j=1;
	var k=0;
	var fName='';
	myFolderList=folderList.split(':');
	if (myFolderList.length > 8){
		document.writeln('<tr><td align=center colspan=4 class="vbmenu_Manage" id="forumtools" nowrap><a href=../mk4/foldermgr?mm='+Math.floor(10000000*Math.random())+'&language=en><b>(Click here to edit folders)</b></a></td></tr>');
		document.writeln('<tr>');
		for (i=0;i < myFolderList.length;i++){
			if (k == (j*4)){
				if (myFolderList[i].length > 30){fName=myFolderList[i].substring(0,30)+'...';}
				else {fName=myFolderList[i];}
				document.writeln('</tr><tr><td class="vbmenu_option" id="forumtools" nowrap><a href="showBox'+Math.floor(100*Math.random())+'?mm='+Math.floor(10000000*Math.random())+'&mailbox='+myFolderList[i]+'&language=en&page=0">'+fName+'</a></td>');
				j++;
			}
			else{
				if (myFolderList[i].length > 30){fName=myFolderList[i].substring(0,30)+'...';}
				else {fName=myFolderList[i];}
				document.writeln('<td class="vbmenu_option" id="forumtools" nowrap><a href="showBox'+Math.floor(100*Math.random())+'?mm='+Math.floor(10000000*Math.random())+'&mailbox='+myFolderList[i]+'&language=en&page=0">'+fName+'</a></td>');
			}
			k++;
			if (k == myFolderList.length){
				if (myFolderList.length%4 == 1){
					document.writeln("<td class='vbmenu_option'>&nbsp;</td><td class='vbmenu_option'>&nbsp;</td><td class='vbmenu_option'>&nbsp;</td></tr>");
				}
				else if (myFolderList.length%4 == 2){
					document.writeln("<td class='vbmenu_option'>&nbsp;</td><td class='vbmenu_option'>&nbsp;</td></tr>");
				}
				else if (myFolderList.length%4 == 3){
					document.writeln("<td class='vbmenu_option'>&nbsp;</td></tr>");
				}
			}
		}
	}
	else {
		document.writeln('<tr><td align=center class="vbmenu_Manage" id="forumtools" nowrap><a href=../mk4/foldermgr?mm='+Math.floor(10000000*Math.random())+'&language=en><b>(Click here to edit folders)</b></a></td></tr>');
		for (var i=0;i<myFolderList.length;i++){
			if (myFolderList[i].length > 30){fName=myFolderList[i].substring(0,30)+'...';}
			else {fName=myFolderList[i];}
			document.writeln('<tr><td class="vbmenu_option" id="forumtools" nowrap><a href="showBox'+Math.floor(100*Math.random())+'?mm='+Math.floor(10000000*Math.random())+'&mailbox='+myFolderList[i]+'&language=en&page=0">'+fName+'</a></td></tr>');
		}
	}
	document.writeln('</table>');
	document.writeln('</div>');
}

function drawMenuA(folderList){
	document.writeln('<div class="vbmenu_popup" id="forumtools_menu" style="display:none">');
	document.writeln('<table cellpadding="4" cellspacing="1" border="0">');
	var j=1;
	var k=0;
	var fName='';
	myFolderList=folderList.split(':');
	if (myFolderList.length > 8){
		document.writeln('<tr><td align=center colspan=4 class="vbmenu_Manage" id="forumtools" nowrap><a href=../mk4/foldermgr?mm='+Math.floor(10000000*Math.random())+'&language=ar><b>أنقر هنا لتعديل الملفات</b></a></td></tr>');
		document.writeln('<tr>');
		for (i=0;i < myFolderList.length;i++){
			if (k == (j*4)){
				if (myFolderList[i].length > 30){fName=myFolderList[i].substring(0,30)+'...';}
				else {fName=myFolderList[i];}
				document.writeln('</tr><tr><td align=right class="vbmenu_option" id="forumtools" nowrap><a href="showBox'+Math.floor(100*Math.random())+'?mm='+Math.floor(10000000*Math.random())+'&mailbox='+myFolderList[i]+'&language=ar&page=0">'+fName+'</a></td>');
				j++;
			}
			else{
				if (myFolderList[i].length > 30){fName=myFolderList[i].substring(0,30)+'...';}
				else {fName=myFolderList[i];}
				document.writeln('<td align=right class="vbmenu_option" id="forumtools" nowrap><a href="showBox'+Math.floor(100*Math.random())+'?mm='+Math.floor(10000000*Math.random())+'&mailbox='+myFolderList[i]+'&language=ar&page=0">'+fName+'</a></td>');
			}
			k++;
			if (k == myFolderList.length){
				if (myFolderList.length%4 == 1){
					document.writeln("<td class='vbmenu_option'>&nbsp;</td><td class='vbmenu_option'>&nbsp;</td><td class='vbmenu_option'>&nbsp;</td></tr>");
				}
				else if (myFolderList.length%4 == 2){
					document.writeln("<td class='vbmenu_option'>&nbsp;</td><td class='vbmenu_option'>&nbsp;</td></tr>");
				}
				else if (myFolderList.length%4 == 3){
					document.writeln("<td class='vbmenu_option'>&nbsp;</td></tr>");
				}
			}
		}
	}
	else {
		document.writeln('<tr><td align=center class="vbmenu_Manage" id="forumtools" nowrap><a href=../mk4/foldermgr?mm='+Math.floor(10000000*Math.random())+'&language=ar><b>أنقر هنا لتعديل الملفات</b></a></td></tr>');
		for (var i=0;i<myFolderList.length;i++){
			if (myFolderList[i].length > 30){fName=myFolderList[i].substring(0,30)+'...';}
			else {fName=myFolderList[i];}
			document.writeln('<tr><td align=right class="vbmenu_option" id="forumtools" nowrap><a href="showBox'+Math.floor(100*Math.random())+'?mm='+Math.floor(10000000*Math.random())+'&mailbox='+myFolderList[i]+'&language=ar&page=0">'+fName+'</a></td></tr>');
		}
	}
	document.writeln('</table>');
	document.writeln('</div>');
}
