// SUBMENU DECLARATION, YOU DONT NEED TO EDIT THIS
var roll_status=new Object(); // Static are for storing status information
var subMenu = new Array(); // somewhere to store submenus
var roll_distance = 12;	// pixels to move by
var roll_increment = 1; // pixels moved in each call
var roll_animation_delay = 15; // delay microseconds between each movement
var menu_close_delay = 500; // delay before shutting a drop down menu after leaving
var menu_gap = 2; // Number of pixels gap between the button and the menu

//SUB MENUS, create a new array for each inside subMenu[]//
//item 0 is always the id of the roll control which should have the menu attached //
//item 1+n are then new arrays defining (text displayed, hyperlink, target)//
subMenu[0] = new Array();
subMenu[0][0] = "roll_down_2";
subMenu[0][1] = new Array("Outline","/rules_overview.php","");
subMenu[0][2] = new Array("Regulations","/rules_regs.php","");

subMenu[1] = new Array();
subMenu[1][0] = "roll_down_3";
subMenu[1][1] = new Array("Series Contacts","/contacts.php","");
subMenu[1][2] = new Array("Team Upload","/team_submit.php","");
subMenu[1][3] = new Array("Gallery Upload","/gallery_submit.php","");

//*** NO MORE SETTINGS BEYOND THIS POINT ***//

// GENERATE SUB MENUS
for ( x=0; x<subMenu.length; x++) {
	document.write('<div id="submenu' + (x) + '" class="dropmenu" ');
	document.write('onMouseOver="DoMenuOver(\''+x+'\', false);"');
	document.write('onMouseOut="DoMenuOut(\''+x+'\', false);"');
	document.write('>');

	document.write('<ul>');
	for ( k=1; k<subMenu[x].length; k++ ) {
		document.write('<li>');
		document.write('<a href="' + subMenu[x][k][1] + '"');
		document.write(' target="' + subMenu[x][k][2] + '">');
		document.write(subMenu[x][k][0] + '</a>');
		document.write('</li>');
	}
	document.write('</ul>');
	document.write('</div>');
}


function rt_init(){

	var arVersion = navigator.appVersion.split("MSIE");
	var version = parseFloat(arVersion[1]);
	if (version < 7) {
		return;
	}

		// For all objects called roll something somenumber
		
		for(i=0;i < 4; i++) {
			
			//left, right, up, down
			switch(i) {
				case 0:
					rs_direction = "left";	
					break;
				case 1:
					rs_direction = "right";
					break;
				case 2:
					rs_direction = "up";
					break;
				case 3:
					rs_direction = "down";
					break;
			}
		
			ri=1;
			while((tmpObject=getElement("roll_"+rs_direction+"_"+ri)) != null){
				intLeft=0;
				intTop=tmpObject.offsetHeight;
				intNewLeft=0;
				intNewTop=0;
					
//				HasMenu = false;
//				for(j=0;j<subMenu.length;j++) {
//					if(subMenu[j][0] == ("roll_"+rs_direction+"_"+ri)) {
//						HasMenu = true;
//					}
//				}

// Replace the element with our own div, but drag a hidden copy along for the ride.
				var sd=	'<div id="outer_'+rs_direction+'_'+ri+'" '+
								' onmouseover="DoMouseOver(\''+rs_direction+'_'+ri+'\',this.lastChild);"'+
								' onmouseout="DoMouseOut(\''+rs_direction+'_'+ri+'\');"'+
				' style="position:relative;left:0px">'+
							'<div id="spaceholder_'+rs_direction+'_'+ri+'" '+
							' style="position:absolute;cursor:pointer;z-index:2;left:0px" >'+
								'<div id="slider_'+rs_direction+'_'+ri+'"' +
								' style="position:relative;left:0px">'+
									'<div id="button_'+rs_direction+'_'+ri+'" style="position:relative;left:0px" >'+tmpObject.innerHTML+'</div>'+
								'</div>'+
							'</div>'+
						'</div>'+
						'<div id="hidden_'+rs_direction+'_'+ri+'" style="visibility:hidden;">'+tmpObject.innerHTML+'</div>';
				
				tmpObject.innerHTML=sd;
/*
				if(rs_direction=="left")
					intNewLeft=-roll_distance;
				if(rs_direction=="up")
					intNewTop=-roll_distance;
				if(rs_direction=="left"||rs_direction=="right")
					intLeft=roll_distance;
				else 
					intTop+=roll_distance;

				rlif=tmpObject.firstChild; // level 2 div
				rif=rlif.firstChild.firstChild; // original button
				rif.style.left=intNewLeft+"px";
				rif.style.top=intNewTop+"px";
				rif.style.width=(rlif.lastChild.offsetWidth + intLeft)+"px";
				rif.style.height=intTop+"px";
					
				if (navigator.userAgent.indexOf("MSIE") >= 0) {
					if(navigator.userAgent.substr(navigator.userAgent.indexOf("MSIE")+2, 1) == "6"){
						rif.style.filter="progid:DXImageTransform.Microsoft.Alpha(Opacity=0);";
						rif.style.backgroundColor="#00ff00";
					}
				}
*/		
				roll_status['xpos'+rs_direction+'_'+ri]=0;
				roll_status['expand'+rs_direction+'_'+ri]=false;
				ri++;
			}
		}
};




// MOVE SUBMENU TO CORRESPONDING BUTTON
function showSubMenu(subID, buttonID) {
	butX = getRealLeft(buttonID);
	butY = getRealTop(buttonID);
	butW = getRealWidth(buttonID);
	butH = getRealHeight(buttonID);
	menW = getRealWidth("submenu" + (subID) + "");
	menH = getRealHeight("submenu" + (subID) + "");

	rs_direction = buttonID	.split("_")[1];
	switch(rs_direction) {
		case "left":
			newLeft = butX-roll_distance-menW-menu_gap;
			newTop = butY;
			break;
		case "right":
			newLeft = butX+butW+roll_distance+menu_gap;
			newTop = butY;
			break;
		case "up":
			newLeft = butX;
			newTop = butY-roll_distance-menH-menu_gap;
			break;
		case "down":
			newLeft = butX;
			newTop = butY+butH+roll_distance+menu_gap;
			break;
	}

	moveObjectTo("submenu" + (subID) + "", newLeft, newTop);
	
/*
	RollParts = subMenu[subID][0].split("_");
	RollID = RollParts[1]+'_'+RollParts[2];
	if (roll_status['expand'+RollID]!=true) { 
		roll_status['expand'+RollID]=true;
		if (!roll_status['timer'+RollID])
			DoAnimation(RollID);		
	}
*/
}

// HIDE ALL SUB MENUS
function hideAllSubMenus(subID) {
	for ( x=0; x<subMenu.length; x++) {
		if (x != subID) {
//			RollParts = subMenu[x][0].split("_");
//			RollID = RollParts[1]+'_'+RollParts[2];
//			clearTimeout(roll_status['menutimer'+RollID]);
			hideSubMenu(x, true);
		}
	}
}

// HIDE ONE SUB MENU
function hideSubMenu(subID, force) {
	RollParts = subMenu[subID][0].split("_");
	RollID = RollParts[1]+'_'+RollParts[2];
	if ((!force) && (roll_status['wantmenu'+RollID] == true))
		return;

	moveObjectTo("submenu" + (subID) + "",-500, -500);
	roll_status['wantmenu'+RollID] = false;
	roll_status['dontwantmenu'+RollID] = false;
	// Also close the associated button
	clearTimeout(roll_status['menutimer'+RollID]);
	if (force) { 
		roll_status['expand'+RollID]=false;
		if (!roll_status['timer'+RollID])
			DoAnimation(RollID);		
	} else {
		if(roll_status['expand'+RollID] != false) {
			roll_status['expand'+RollID]=false;
			if (!roll_status['timer'+RollID])
				DoAnimation(RollID);		
		}
	}
}


function DoMouseOver(id,sobj){
	if(typeof subMenu != 'object')
		return;
	for (i=0; i < subMenu.length; i++) {
		if (subMenu[i][0] == ('roll_'+id)) {
			DoMenuOver(i, true);
		}
	}
	roll_status['ani_obj'+id]=sobj;//.parentNode.parentNode.lastChild;
	if(roll_status['expand'+id]!=true) {
		roll_status['expand'+id]=true;
		if (!roll_status['timer'+id])
			DoAnimation(id);
	}
};

function DoMouseOut(id){
	if(typeof subMenu != 'object')
		return;

// Check to see if a submenu needs closing
	HasMenu=false;
	for (i=0; i < subMenu.length; i++) {
		if (subMenu[i][0] == ('roll_'+id)) {
			HasMenu=true;
			DoMenuOut(i);
		}
	}

	// For buttons with submenus, the closing of the menu 
	// starts the close animation of the button.
	if (!HasMenu && roll_status['expand'+id]!=false) {
		roll_status['expand'+id]=false;
		if (!roll_status['timer'+id])
			DoAnimation(id);
	}
	
};

function DoMenuOver(subID, force) {
	RollParts = subMenu[subID][0].split("_");
	RollID = RollParts[1]+'_'+RollParts[2];
	overSub=true;
	clearTimeout(roll_status['menutimer'+RollID]);
	roll_status['wantmenu'+RollID] = true;
	roll_status['dontwantmenu'+RollID] = false;
//	showSubMenu(subID, 'roll_'+RollID);
	if (force) {
		hideAllSubMenus(subID);
	};
}

function DoMenuOut(subID) {
	RollParts = subMenu[subID][0].split("_");
	RollID = RollParts[1]+'_'+RollParts[2];
	overSub=false;
	roll_status['menutimer'+RollID]=setTimeout('hideSubMenu(\''+subID+'\', true)',menu_close_delay);
	roll_status['dontwantmenu'+RollID] = true;
}

function TestClosure(subID, force) {
	RollParts = subMenu[subID][0].split("_");
	RollID = RollParts[1]+'_'+RollParts[2];
	if (roll_status['dontwantmenu'+RollID] == false) {
		hideSubMenu(subID, force);
	}
}

function DoAnimation(id){
	rs_direction=id.split("_")[0];
	done = false;
	if(roll_status['expand'+id]) {
		roll_status['xpos'+id] += roll_increment;
		if (roll_status['xpos'+id] > roll_distance) {
			roll_status['xpos'+id] = roll_distance;
			done = true;
		}
	} else {
		roll_status['xpos'+id] -= roll_increment;
		if (roll_status['xpos'+id] < 0) {
			roll_status['xpos'+id] = 0;
			done=true;
		}
	}
	if (done) {
		roll_status['timer'+id] = false;
		if (roll_status['wantmenu'+id]) {
			//find the submenu
			for (i=0; i < subMenu.length; i++) {
				if (subMenu[i][0] == ('roll_'+id)) {
					showSubMenu(i, 'roll_'+id);
				}
			}
			
			roll_status['wantmenu'+id] = false;
		}
		return;
	}
	
	cy8=roll_status['xpos'+id];
	movep=cy8;
	if(rs_direction=="left"||rs_direction=="right"){
		stn="left";
		if(rs_direction=="left")
			movep=-movep;
	} else  {
		stn="top";
		if(rs_direction=="up")
			movep=- movep;
	}

	// firefox has a race case, when the page unloads the functions keep going, but the objects have gone (including this function)
	if(typeof roll_status['ani_obj'+id] == 'object')
		roll_status['ani_obj'+id].style[stn]=movep+"px";
	if(typeof DoAnimation == 'function')
		roll_status['timer'+id]=window.setTimeout("DoAnimation(\'"+id+"\')",roll_animation_delay);

}

addLoadEvent(rt_init);
