var d = document;

var params = d.location.search;

var sid = "";

var locmenustay = false;

var _url = d.URL;



function imgChange(iPath, iName) {

	d[iName].src=iPath;

}

function getParamValue(v) {

	var p_a = params.substring(params.indexOf("?")+1, params.length).split("&");

	for (var i=0; i<p_a.length; i++){

		var s_a = p_a[i].split("=");

		if(s_a[0] == v){

			return s_a[1];

			break;

		}

	}

}

function launchPopUp(URL,ID,WIDTH,HEIGHT) {

	winObject = window.open(URL,ID,'width='+WIDTH+',height='+HEIGHT+',resizable=0,scrollbars=0,menubar=0,toolbar=0,location=0,directories=0,status=0');

	var clientWidth = screen.availWidth;

	var clientHeight = screen.availHeight;

	var xPos = (clientWidth - WIDTH)/2;

	var yPos = (clientHeight - HEIGHT)/2;

	winObject.moveTo(xPos,yPos);

}

function preferredDate(f){

	var uDate = new Date();

	uDate.setFullYear(f.event_date_y.value,f.event_date_m.value-1,f.event_date_d.value);

	var vDate = new Date();

	if(uDate<=vDate){

		return false;

	}else{

		return true;

	}

}

var numericExpression = /^[0-9]+$/;

var emailExpression = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

function validateform(f) {

	var validform_arr = new Array([f.event_type.value, "Party/event type", "select"], [f.attendees_planned.value, "Estimated number of guests", "number"], [f.event_date_m.value, "Preferred date (Month)", "select"], [f.event_date_d.value, "Preferred date (Day)", "select"], [f.event_date_y.value, "Preferred date (Year)", "select"], [f.start_time.value, "Preferred time", "select"], [f.first_name.value, "First Name", "text"], [f.last_name.value, "Last Name", "text"], [f.title.value, "Job Title", "text"], [f.phone.value, "Phone", "number"], [f.referred_by_other.value, "How did you hear about us", "select"]);

	if (preferredDate(f)) {

		if (emailExpression.test(f.email.value)) {

			var missing_arr = new Array();

			var numeric_arr = new Array();

			for (var i=0; i<validform_arr.length; i++) {

				if(validform_arr[i][0] == ""){

					missing_arr.push(validform_arr[i][1]);

				}

				if(validform_arr[i][2] == "number" && !validform_arr[i][0].match(numericExpression)){

					numeric_arr.push(validform_arr[i][1]);

				}

			}

			var errString = "";

			if (missing_arr.length > 0) {

				errString += "Please enter the following:\n\n";

				for (var j=0; j<missing_arr.length; j++) {

					errString += "  - "+missing_arr[j]+"\n"

				}

				alert(errString);

				return false;

			} else if (numeric_arr.length > 0) {

				errString += "Following only accepts numbers:\n\n";

				for (var k=0; k<numeric_arr.length; k++) {

					errString += "  - "+numeric_arr[k]+"\n"

				}

				if(f.fax.value.length > 0 && !f.fax.value.match(numericExpression)){

					errString += "  - Fax\n"

				}

				alert(errString);

				return false;

			} else {

				return true;

			}

		} else {

			alert("Please enter a valid email address.");

			return false;

		}

	} else {

		alert("Preferred date must be in the future.");

		return false;

	}

}

function validateemail(f) {

	if (emailExpression.test(f.email.value)) {

		if(f.name == "signup" && f.zip.value.length > 0 && !f.zip.value.match(numericExpression)){

			alert("Following only accepts numbers:\n\n  - Zip")

			return false;

		} else{

			return true;

		}

	} else {

		alert("Please enter a valid email address.");

		return false;

	}

}

function showCaption(_C, _X, _Y){

	var baseObj = (d.layers)?d['content']:d.all?d.all['content']:d.getElementById('content');

	var lyrObj = (d.layers)?d['mapCaption']:d.all?d.all['mapCaption'].style:d.getElementById('mapCaption').style;

	imgChange('images/topnavsubs/'+_C+'-on.gif', 'captionImg');

	lyrObj.left = (baseObj.offsetLeft+_X)+"px";

	lyrObj.top = (baseObj.offsetTop+_Y)+"px";

	lyrObj.visibility = "visible";

}

function hideCaption(){

	imgChange('images/common/spacer.gif', 'captionImg');

	var lyrObj = (d.layers)?d['mapCaption']:d.all?d.all['mapCaption'].style:d.getElementById('mapCaption').style;

	lyrObj.visibility = "hidden";

}





	/*** LOCATIONS LEFT MENU ELEMENTS ***/

	var treemenu_arr = new Array();

	treemenu_arr[1] = new Array(0);

	treemenu_arr[2] = new Array(1, 'location_book.php','party_events.php','party_clients.php','party_kids.php','party_adult.php','party_barmitzvah.php','party_contact.php');

	treemenu_arr[3] = new Array(0);

	treemenu_arr[4] = new Array(1, 'location_menu.php');

	treemenu_arr[5] = new Array(1, 'location_tour.php','tour_photos.php','tour_video.php','tour_floor.php');

	treemenu_arr[6] = new Array(0);

	

	var menuimg_arr = new Array(

	['location_info.php',			'generalinfo',			'loc1_0',	'',		''		]

	,['ignore-location_book.php',		'planaparty',			'loc2_0',	'',		''		]

	,['location_book.php',			'booknow',			'loc2_1',	'planaparty',	'loc2_0'	]

	,['party_events.php',			'corporateevents',		'loc2_2',	'planaparty',	'loc2_0'	]

	,['party_clients.php',			'clients',			'loc2_3',	'planaparty',	'loc2_0'	]

	,['party_kids.php',			'kidsparties',			'loc2_4',	'planaparty',	'loc2_0'	]

	,['party_adult.php',			'adultparties',			'loc2_5',	'planaparty',	'loc2_0'	]

	,['party_barmitzvah.php',		'barmitzvah',			'loc2_6',	'planaparty',	'loc2_0'	]

	,['party_contact.php',			'contactcoordinator',		'loc2_7',	'planaparty',	'loc2_0'	]

	,['location_promo.php',			'promotions',			'loc3_0',	'',		''		]

	,['location_menu.php',			'menu',				'loc4_0',	'',		''		]

	,['location_tour.php',			'photostours',			'loc5_0',	'',		''		]

	,['tour_photos.php',			'photogallery',			'loc5_1',	'photostours',	'loc5_0'	]

	,['tour_video.php',			'videotour',			'loc5_2',	'photostours',	'loc5_0'	]

	,['tour_floor.php',			'floorplan',			'loc5_3',	'photostours',	'loc5_0'	]

	,['location_directions.php',		'directions',			'loc6_0',	'',		'']

	);

	/*

	,['','restaurant']

	,['','catering']

	,['','holiday']

	*/



	var treefunmenu_arr = new Array();

	treefunmenu_arr[1] = new Array(0, 'funstuff.php','funvideo.php','funphotos.php');

	treefunmenu_arr[2] = new Array(1, 'fun_pinny.php','funpinnyvideo.php','funpinnyphotos.php');

	treefunmenu_arr[3] = new Array(0);

	treefunmenu_arr[4] = new Array(0);

	treefunmenu_arr[5] = new Array(0);

	

	var menufunimg_arr = new Array(

	['funstuff.php',			'funstuff',	'fun1_0',	'',		''		],

	['funvideo.php',			'video',	'fun1_1',	'funstuff',		'fun1_0'],

	['funphotos.php',			'photos',	'fun1_2',	'funstuff',		'fun1_0'],

	['fun_pinny.php',			'pinny',	'fun2_0',	'',		''		],

	['funpinnyvideo.php',		'video',	'fun2_1',	'pinny',		'fun2_0'		],

	['funpinnyphotos.php',		'photos',	'fun2_2',	'pinny',		'fun2_0'		],

	['http://bowlmorstrike.wordpress.com/','blog',	'fun3_0','',''		],

	['fun_contests.php',		'contests',	'fun4_0',	'',		''		],

	['fun_free.php',			'stuff',	'fun5_0',	'',		''		]);







function expandCheck(_arr) {

	if(_arr[0] == 1){

		var expand = false;

		for (var i=1; i<_arr.length; i++) {

			if(_url.indexOf(_arr[i]) > -1){

				expand = true;

				break;

			}

		}

		return expand;

	}else{

		return false;

	}

}



var selectimg = "";

var selectimgname = "";

var selectimgindex;

var overrideimg = "";

for (var mi=0; mi<menuimg_arr.length; mi++) {

	if(_url.indexOf(menuimg_arr[mi][0]) > -1){

		selectimg = menuimg_arr[mi][1];

		selectimgname = menuimg_arr[mi][2];

		selectimgindex = mi;

		break;

	}

}



function imgChangeChk(_img,_name, _add) {

	if(_img==selectimg || _add=='override' || _img==overrideimg) {

		imgChange('images/locnav/'+_img+'-on.gif',_name);

	}else{

		imgChange('images/locnav/'+_img+'.gif',_name);

	}

}

function initTreeMenu(){

	//ddtreemenu.createTree(treeid, enablepersist, opt_persist_in_days (default is 1))

	for (var i=1; i<treemenu_arr.length; i++) {

		if(expandCheck(treemenu_arr[i])){

			var treeMenuId = 'treemenusub'+i;

			var treeMenuObj = (d.layers)?d[treeMenuId]:d.all?d.all[treeMenuId]:d.getElementById(treeMenuId);

			treeMenuObj.setAttribute("rel", "open");

			break;

		}

	}

	ddtreemenu.createTree("treemenu1", false);

}

function highlightSelected(){

	if(selectimg != ""){

		imgChangeChk(selectimg,selectimgname);

		if(menuimg_arr[selectimgindex][3] != ""){

			overrideimg = menuimg_arr[selectimgindex][3]

			imgChangeChk(menuimg_arr[selectimgindex][3],menuimg_arr[selectimgindex][4], 'override');

		}

	}

}



/*** END LOCATIONS LEFT MENU ELEMENTS ***/



AC_FL_RunContent = 0;

DetectFlashVer = 0;

// -----------------------------------------------------------------------------

// Globals

// Major version of Flash required

var requiredMajorVersion = 8;

// Minor version of Flash required

var requiredMinorVersion = 0;

// Revision of Flash required

var requiredRevision = 24;

// -----------------------------------------------------------------------------



function writeFL(_swf, _w, _h, _flvars){

	if (AC_FL_RunContent == 0 || DetectFlashVer == 0) {

		alert("This page requires AC_RunActiveContent.js.");

	} else {

		var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);

		if(hasRightVersion) {  // if we've detected an acceptable version

			// embed the flash movie

			AC_FL_RunContent(

				'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,24,0',

				'width', _w,

				'height', _h,

				'src', _swf,

				'quality', 'high',

				'pluginspage', 'http://www.macromedia.com/go/getflashplayer',

				'align', 'middle',

				'play', 'true',

				'loop', 'true',

				'scale', 'showall',

				'wmode', 'window',

				'devicefont', 'false',

				'id', _swf,

				'bgcolor', '#1a1a1a',

				'name', 'flashmovie',

				'menu', 'false',

				'allowScriptAccess','sameDomain',

				'allowFullScreen','false',

				'movie', _swf,

				'flashvars', _flvars,

				'salign', ''

				); //end AC code

		} else {  // flash is too old or we can't detect the plugin

			var alternateContent = 'Alternate HTML content should be placed here.'

				+ 'This content requires the Adobe Flash Player.'

				+ '<a href=http://www.macromedia.com/go/getflash/>Get Flash</a>';

			document.write(alternateContent);  // insert non-flash content

		}

	}

}





// -----------------------------------------------------------------------------

//** All Levels Navigational Menu- (c) Dynamic Drive DHTML code library: http://www.dynamicdrive.com

//** Script Download/ instructions page: http://www.dynamicdrive.com/dynamicindex1/ddlevelsmenu/

//** Usage Terms: http://www.dynamicdrive.com/notice.htm



//** July 7th, 08'- Creation Date



//** July 16th, 08'- Updated to v 1.3:

	//1) Adds "Side Bar" orientation option. 

	//2) Drop Down Menus now auto adjust their positioning if too close to either right or bottom window edges.

	//3) Enhanced IFRAME shim "coverage" on the page.



//** July 19th, 08'- Updated to v 1.31: Drop down menu now positions at top of window edge if there's neither room downwards or upwards to settle.

//** Aug 13th, 08'- v1.32: Moved "rel" attribute from menu's <li> elements to inner <a>, for validation reasons



//** Sept 10th, 08'- Updated to v 1.4:

	//1) Added optional "sliding" animation when sub menus are revealed.

	//2) Arrow images now dynamically positioned, instead of relying on CSS's "right" property



var ddlevelsmenu={



hideinterval: 200, //delay in milliseconds before sub menu(s) disappears onmouseout.

revealanimate: true, //enable sliding animation when revealing sub menus? (true/false)

httpsiframesrc: "blank.htm", //If menu is run on a secure (https) page, the IFRAME shim feature used by the script should point to an *blank* page *within* the secure area to prevent an IE security prompt. Specify full URL to that page on your server (leave as is if not applicable).



///No need to edit beyond here////////////////////



topmenuids: [], //array containing ids of all the primary menus on the page

topitems: {}, //object array containing all top menu item links

subuls: {}, //object array containing all ULs

topitemsindex: -1,

ulindex: -1,

hidetimers: {}, //object array timer

shimadded: false,

isff3orabove: /Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent) && RegExp.$1>=3, //detect FF3 or above



getoffset:function(what, offsettype){

	return (what.offsetParent)? what[offsettype]+this.getoffset(what.offsetParent, offsettype) : what[offsettype]

},



getoffsetof:function(el){

	el._offsets={left:this.getoffset(el, "offsetLeft"), top:this.getoffset(el, "offsetTop")}

},



getwindowsize:function(){

	this.docwidth=window.innerWidth? window.innerWidth-10 : this.standardbody.clientWidth-10

	this.docheight=window.innerHeight? window.innerHeight-15 : this.standardbody.clientHeight-18

},



gettopitemsdimensions:function(){

	for (var m=0; m<this.topmenuids.length; m++){

		var topmenuid=this.topmenuids[m]

		for (var i=0; i<this.topitems[topmenuid].length; i++){

			var header=this.topitems[topmenuid][i]

			var submenu=document.getElementById(header.getAttribute('rel'))

			header._dimensions={w:header.offsetWidth, h:header.offsetHeight, submenuw:submenu.offsetWidth, submenuh:submenu.offsetHeight}

		}

	}

},



isContained:function(m, e){

	var e=window.event || e

	var c=e.relatedTarget || ((e.type=="mouseover")? e.fromElement : e.toElement)

	while (c && c!=m)try {c=c.parentNode} catch(e){c=m}

	if (c==m)

		return true

	else

		return false

},



addpointer:function(target, imgclass, imginfo){

	var pointer=document.createElement("img")

	pointer.src=imginfo[0]

	pointer.style.width=imginfo[1]+"px"

	pointer.style.height=imginfo[2]+"px"

	pointer.style.left=target.offsetWidth-imginfo[2]-2+"px"

	pointer.className=imgclass

	target.appendChild(pointer)

},



css:function(el, targetclass, action){

	var needle=new RegExp("(^|\\s+)"+targetclass+"($|\\s+)", "ig")

	if (action=="check")

		return needle.test(el.className)

	else if (action=="remove")

		el.className=el.className.replace(needle, "")

	else if (action=="add" && !needle.test(el.className))

		el.className+=" "+targetclass

},



addshimmy:function(target){

	var shim=(!window.opera)? document.createElement("iframe") : document.createElement("div") //Opera 9.24 doesnt seem to support transparent IFRAMEs

	shim.className="ddiframeshim"

	shim.setAttribute("src", location.protocol=="https:"? this.httpsiframesrc : "about:blank")

	shim.setAttribute("frameborder", "0")

	target.appendChild(shim)

	try{

		//shim.style.filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)'

	}

	catch(e){}

	return shim

},



positionshim:function(header, submenu, dir, scrollX, scrollY){

	if (header._istoplevel){

		var scrollY=window.pageYOffset? window.pageYOffset : this.standardbody.scrollTop

		var topgap=header._offsets.top-scrollY

		var bottomgap=scrollY+this.docheight-header._offsets.top-header._dimensions.h

		if (topgap>0){

			//this.shimmy.topshim.style.left=scrollX+"px"

			//this.shimmy.topshim.style.top=scrollY+"px"

			//this.shimmy.topshim.style.width="99%"

			//this.shimmy.topshim.style.height=topgap+"px" //distance from top window edge to top of menu item

		}

		if (bottomgap>0){

			//this.shimmy.bottomshim.style.left=scrollX+"px"

			//this.shimmy.bottomshim.style.top=header._offsets.top + header._dimensions.h +"px"

			//this.shimmy.bottomshim.style.width="99%"

			//this.shimmy.bottomshim.style.height=bottomgap+"px" //distance from bottom of menu item to bottom window edge

		}

	}

},



hideshim:function(){

	//this.shimmy.topshim.style.width=this.shimmy.bottomshim.style.width=0

	//this.shimmy.topshim.style.height=this.shimmy.bottomshim.style.height=0

},





buildmenu:function(mainmenuid, header, submenu, submenupos, istoplevel, dir){

	header._master=mainmenuid //Indicate which top menu this header is associated with

	header._pos=submenupos //Indicate pos of sub menu this header is associated with

	header._istoplevel=istoplevel

	if (istoplevel){

		this.addEvent(header, function(e){

		ddlevelsmenu.hidemenu(ddlevelsmenu.subuls[this._master][parseInt(this._pos)])

		}, "click")
	}

	this.subuls[mainmenuid][submenupos]=submenu

	header._dimensions={w:header.offsetWidth, h:header.offsetHeight, submenuw:submenu.offsetWidth, submenuh:submenu.offsetHeight}

	this.getoffsetof(header)

	submenu.style.left=0

	submenu.style.top=0

	submenu.style.visibility="hidden"

	this.addEvent(header, function(e){ //mouseover event

		if (!ddlevelsmenu.isContained(this, e)){

			if (typeof ddlevelsmenu.hidetimers[this._master][parseInt(this._pos)]!="undefined")

				clearTimeout(ddlevelsmenu.hidetimers[this._master][parseInt(this._pos)])

			if (this._istoplevel)

				ddlevelsmenu.css(this, "selected", "add")

			var submenu=ddlevelsmenu.subuls[this._master][parseInt(this._pos)]

			ddlevelsmenu.getoffsetof(header)

			var scrollX=window.pageXOffset? window.pageXOffset : ddlevelsmenu.standardbody.scrollLeft

			var scrollY=window.pageYOffset? window.pageYOffset : ddlevelsmenu.standardbody.scrollTop

			var submenurightedge=this._offsets.left + this._dimensions.submenuw + (this._istoplevel && dir=="topbar"? 0 : this._dimensions.w)

			var submenubottomedge=this._offsets.top + this._dimensions.submenuh

			//Sub menu starting left position

			var menuleft=(this._istoplevel? this._offsets.left + (dir=="sidebar"? this._dimensions.w : 0) : this._dimensions.w)

			if (submenurightedge-scrollX>ddlevelsmenu.docwidth){

				menuleft+= -this._dimensions.submenuw + (this._istoplevel && dir=="topbar" ? this._dimensions.w : -this._dimensions.w)

			}

			submenu.style.left=menuleft+"px"

			//Sub menu starting top position

			var menutop=(this._istoplevel? this._offsets.top + (dir=="sidebar"? 0 : this._dimensions.h) : this.offsetTop)

			if (submenubottomedge-scrollY>ddlevelsmenu.docheight){ //no room downwards?

				if (this._dimensions.submenuh<this._offsets.top+(dir=="sidebar"? this._dimensions.h : 0)-scrollY){ //move up?

					menutop+= - this._dimensions.submenuh + (this._istoplevel && dir=="topbar"? -this._dimensions.h : this._dimensions.h)

				}

				else{ //top of window edge

					menutop+= -(this._offsets.top-scrollY) + (this._istoplevel && dir=="topbar"? -this._dimensions.h : 0)

				}

			}

			submenu.style.top=menutop+"px"

			if (ddlevelsmenu.revealanimate==false || ddlevelsmenu.isff3orabove){ //apply shim immediately only if animation is turned off, or if on, in non FF2.x browsers

				ddlevelsmenu.positionshim(header, submenu, dir, scrollX, scrollY)

			}

			else{

				submenu.ff2scrollInfo={x:scrollX, y:scrollY}

			}

			ddlevelsmenu.showmenu(header, submenu, dir)

		}

	}, "mouseover")

	this.addEvent(header, function(e){ //mouseout event

		if (this._istoplevel){

			var submenu=ddlevelsmenu.subuls[this._master][parseInt(this._pos)]

			if (!ddlevelsmenu.isContained(this, e) && !ddlevelsmenu.isContained(submenu, e)) //hide drop down ul if mouse moves out of menu bar item but not into drop down ul itself

				ddlevelsmenu.hidemenu(submenu)

		}

		else if (!this._istoplevel && !ddlevelsmenu.isContained(this, e)){

			var headerlist=this

			ddlevelsmenu.hidetimers[this._master][parseInt(this._pos)]=setTimeout(function(){

				var submenu=ddlevelsmenu.subuls[headerlist._master][parseInt(headerlist._pos)]

				ddlevelsmenu.hidemenu(submenu)

			}, ddlevelsmenu.hideinterval)

		}

	}, "mouseout")

},



showmenu:function(header, submenu, dir){

	if (this.revealanimate){

		submenu._curanimatepoint=0

		var endpoint=(header._istoplevel && dir=="topbar")? submenu.offsetHeight : submenu.offsetWidth

		submenu.style.width=submenu.style.height=0

		submenu.style.overflow="hidden"

		submenu.style.visibility="visible"

		clearTimeout(submenu._animatetimer)

		submenu._animatetimer=setInterval(function(){ddlevelsmenu.revealmenu(header, submenu, endpoint, dir)}, 10)

	}

	else{

		submenu.style.visibility="visible"

	}

},



revealmenu:function(header, submenu, endpoint, dir){

	if (submenu._curanimatepoint<endpoint){

		if (submenu._curanimatepoint==0) //reset either width or height of sub menu to "auto" when animation begins

			submenu.style[header._istoplevel && dir=="topbar"? "width" : "height"]="auto"

		submenu._curanimatepoint= submenu._curanimatepoint + 5 + (submenu._curanimatepoint/10)

		submenu.style[header._istoplevel && dir=="topbar"? "height" : "width"]=submenu._curanimatepoint+"px"

	}

	else{

		if (submenu.ff2scrollInfo) //if this is FF2 or below (meaning shim hasn't been applied yet

			this.positionshim(header, submenu, dir, submenu.ff2scrollInfo.x, submenu.ff2scrollInfo.y)

		submenu.style[header._istoplevel && dir=="topbar"? "height" : "width"]="auto"

		submenu.style.overflow="visible"

		clearInterval(submenu._animatetimer)

	}

},





hidemenu:function(submenu){

	if (typeof submenu._pos!="undefined"){ //if submenu is outermost UL drop down menu

		this.css(this.topitems[submenu._master][parseInt(submenu._pos)], "selected", "remove")

		this.hideshim()

	}

	clearTimeout(submenu._animatetimer)

	submenu.style.left=0

	submenu.style.top="-1000px"

	submenu.style.visibility="hidden"

},





addEvent:function(target, functionref, tasktype) {

	if (target.addEventListener)

		target.addEventListener(tasktype, functionref, false);

	else if (target.attachEvent)

		target.attachEvent('on'+tasktype, function(){return functionref.call(target, window.event)});

},



init:function(mainmenuid, dir){

	this.standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body

	this.topitemsindex=-1

	this.ulindex=-1

	this.topmenuids.push(mainmenuid)

	this.topitems[mainmenuid]=[] //declare array on object

	this.subuls[mainmenuid]=[] //declare array on object

	this.hidetimers[mainmenuid]=[] //declare array on object

	if (!this.shimadded){

		//this.shimmy={}

		//this.shimmy.topshim=this.addshimmy(document.body) //create top iframe shim obj

		//this.shimmy.bottomshim=this.addshimmy(document.body) //create bottom iframe shim obj

		//this.shimadded=true

	}

	var menubar=document.getElementById(mainmenuid)

	var alllinks=menubar.getElementsByTagName("a")

	this.getwindowsize()

	for (var i=0; i<alllinks.length; i++){

		if (alllinks[i].getAttribute('rel')){

			this.topitemsindex++

			this.ulindex++

			var menuitem=alllinks[i]

			this.topitems[mainmenuid][this.topitemsindex]=menuitem //store ref to main menu links

			var dropul=document.getElementById(menuitem.getAttribute('rel'))

			dropul.style.zIndex=2000 //give drop down menus a high z-index

			dropul._master=mainmenuid  //Indicate which main menu this main UL is associated with

			dropul._pos=this.topitemsindex //Indicate which main menu item this main UL is associated with

			this.addEvent(dropul, function(){ddlevelsmenu.hidemenu(this)}, "click")



			this.buildmenu(mainmenuid, menuitem, dropul, this.ulindex, true, dir) //build top level menu

			//dropul.onmouseover=function(){

				//do nothing

			//}

			this.addEvent(dropul, function(e){ //hide menu if mouse moves out of main UL element into open space

				if (!ddlevelsmenu.isContained(this, e) && !ddlevelsmenu.isContained(ddlevelsmenu.topitems[this._master][parseInt(this._pos)], e)){

					var dropul=this

					ddlevelsmenu.hidetimers[this._master][parseInt(this._pos)]=setTimeout(function(){

						ddlevelsmenu.hidemenu(dropul)

					}, ddlevelsmenu.hideinterval)

				}

			}, "mouseout")

			var subuls=dropul.getElementsByTagName("ul")

			for (var c=0; c<subuls.length; c++){

				this.ulindex++

				var parentli=subuls[c].parentNode

				this.buildmenu(mainmenuid, parentli, subuls[c], this.ulindex, false, dir) //build sub level menus

			}

		}

	} //end for loop

	this.addEvent(window, function(){ddlevelsmenu.getwindowsize(); ddlevelsmenu.gettopitemsdimensions()}, "resize")

},



setup:function(mainmenuid, dir){

	this.addEvent(window, function(){ddlevelsmenu.init(mainmenuid, dir)}, "load")

}



}

// -----------------------------------------------------------------------------





/***********************************************

* Simple Tree Menu- © Dynamic Drive DHTML code library (www.dynamicdrive.com)

* This notice MUST stay intact for legal use

* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code

***********************************************/



var persisteduls=new Object()

var ddtreemenu=new Object()



//ddtreemenu.closefolder="closed.gif" //set image path to "closed" folder image

//ddtreemenu.openfolder="open.gif" //set image path to "open" folder image



//////////No need to edit beyond here///////////////////////////



ddtreemenu.createTree=function(treeid, enablepersist, persistdays){

	var ultags=document.getElementById(treeid).getElementsByTagName("ul")

	if (typeof persisteduls[treeid]=="undefined")

	persisteduls[treeid]=(enablepersist==true && ddtreemenu.getCookie(treeid)!="")? ddtreemenu.getCookie(treeid).split(",") : ""

	for (var i=0; i<ultags.length; i++)

	ddtreemenu.buildSubTree(treeid, ultags[i], i)

	if (enablepersist==true){ //if enable persist feature

	var durationdays=(typeof persistdays=="undefined")? 1 : parseInt(persistdays)

	ddtreemenu.dotask(window, function(){ddtreemenu.rememberstate(treeid, durationdays)}, "unload") //save opened UL indexes on body unload

	}

	}



	ddtreemenu.buildSubTree=function(treeid, ulelement, index){

	ulelement.parentNode.className="submenu"

	if (typeof persisteduls[treeid]=="object"){ //if cookie exists (persisteduls[treeid] is an array versus "" string)

	if (ddtreemenu.searcharray(persisteduls[treeid], index)){

	ulelement.setAttribute("rel", "open")

	ulelement.style.display="block"

	//ulelement.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"

	}

	else

	ulelement.setAttribute("rel", "closed")

	} //end cookie persist code

	else if (ulelement.getAttribute("rel")==null || ulelement.getAttribute("rel")==false) //if no cookie and UL has NO rel attribute explicted added by user

	ulelement.setAttribute("rel", "closed")

	else if (ulelement.getAttribute("rel")=="open") //else if no cookie and this UL has an explicit rel value of "open"

	ddtreemenu.expandSubTree(treeid, ulelement) //expand this UL plus all parent ULs (so the most inner UL is revealed!)

	/*ulelement.parentNode.onclick=function(e){

	var submenu=this.getElementsByTagName("ul")[0]

	if (submenu.getAttribute("rel")=="closed"){

	submenu.style.display="block"

	submenu.setAttribute("rel", "open")

	//ulelement.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"

	}

	else if (submenu.getAttribute("rel")=="open"){

	submenu.style.display="none"

	submenu.setAttribute("rel", "closed")

	//ulelement.parentNode.style.backgroundImage="url("+ddtreemenu.closefolder+")"

	}

	ddtreemenu.preventpropagate(e)

	}*/

	/*ulelement.onclick=function(e){

	ddtreemenu.preventpropagate(e)

	}*/

	}



	ddtreemenu.expandSubTree=function(treeid, ulelement){ //expand a UL element and any of its parent ULs

	var rootnode=document.getElementById(treeid)

	var currentnode=ulelement

	currentnode.style.display="block"

	//currentnode.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"

	while (currentnode!=rootnode){

	if (currentnode.tagName=="UL"){ //if parent node is a UL, expand it too

	currentnode.style.display="block"

	currentnode.setAttribute("rel", "open") //indicate it's open

	//currentnode.parentNode.style.backgroundImage="url("+ddtreemenu.openfolder+")"

	}

	currentnode=currentnode.parentNode

	}

	}



	ddtreemenu.flatten=function(treeid, action){ //expand or contract all UL elements

	var ultags=document.getElementById(treeid).getElementsByTagName("ul")

	for (var i=0; i<ultags.length; i++){

	ultags[i].style.display=(action=="expand")? "block" : "none"

	var relvalue=(action=="expand")? "open" : "closed"

	ultags[i].setAttribute("rel", relvalue)

	//ultags[i].parentNode.style.backgroundImage=(action=="expand")? "url("+ddtreemenu.openfolder+")" : "url("+ddtreemenu.closefolder+")"

	}

	}



	ddtreemenu.rememberstate=function(treeid, durationdays){ //store index of opened ULs relative to other ULs in Tree into cookie

	var ultags=document.getElementById(treeid).getElementsByTagName("ul")

	var openuls=new Array()

	for (var i=0; i<ultags.length; i++){

	if (ultags[i].getAttribute("rel")=="open")

	openuls[openuls.length]=i //save the index of the opened UL (relative to the entire list of ULs) as an array element

	}

	if (openuls.length==0) //if there are no opened ULs to save/persist

	openuls[0]="none open" //set array value to string to simply indicate all ULs should persist with state being closed

	ddtreemenu.setCookie(treeid, openuls.join(","), durationdays) //populate cookie with value treeid=1,2,3 etc (where 1,2... are the indexes of the opened ULs)

	}



	////A few utility functions below//////////////////////



	ddtreemenu.getCookie=function(Name){ //get cookie value

	var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair

	if (document.cookie.match(re)) //if cookie found

	return document.cookie.match(re)[0].split("=")[1] //return its value

	return ""

	}



	ddtreemenu.setCookie=function(name, value, days){ //set cookei value

	var expireDate = new Date()

	//set "expstring" to either future or past date, to set or delete cookie, respectively

	var expstring=expireDate.setDate(expireDate.getDate()+parseInt(days))

	document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+"; path=/";

	}



	ddtreemenu.searcharray=function(thearray, value){ //searches an array for the entered value. If found, delete value from array

	var isfound=false

	for (var i=0; i<thearray.length; i++){

	if (thearray[i]==value){

	isfound=true

	thearray.shift() //delete this element from array for efficiency sake

	break

	}

	}

	return isfound

	}



	ddtreemenu.preventpropagate=function(e){ //prevent action from bubbling upwards

	if (typeof e!="undefined")

	e.stopPropagation()

	else

	event.cancelBubble=true

	}



	ddtreemenu.dotask=function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)

	var tasktype=(window.addEventListener)? tasktype : "on"+tasktype

	if (target.addEventListener)

	target.addEventListener(tasktype, functionref, false)

	else if (target.attachEvent)

	target.attachEvent(tasktype, functionref)

}