
var plugin
var main

var  _root_xmouse=0
var  _root_ymouse=0
var menu_hide_time=100

var objsArr=new Array()
var mainNavArr=new Array("Nav 1","Nav 2","Nav 3")
var subNavArr=new Array()
subNavArr[0]=new Array("Sub 1_1","Sub 1_2","Sub 1_3","Sub 1_4","Sub 1_5")
subNavArr[1]=new Array("Sub 2_1","Sub 2_2","Sub 2_3")
subNavArr[2]=new Array("Sub 3_1","Sub 3_2","Sub 3_3","Sub 3_4")



function mainCanvasLoaded(s) {

	//alert("main loaded")
		
	main=s.findName("mainCanvas")
	plugin = s.getHost()	

	buildNav(s)
	
}



function buildNav(s) {

	for(i=0;i<mainNavArr.length;i++) {
	
		objsArr["nav_"+i]=new Object()
		objsArr["nav_"+i].checkSubTO=0
		
		objsArr["sub_nav_"+i]=new Object()
		
		
		main_nav_spacing=180
		main_nav_width=160
		main_nav_height=20
				
				
		sub_nav_width=150
		sub_nav_height=20
		sub_nav_offset_top=5
		sub_nav_spacing=2
		
				
		sub_nav_container_width=160
		sub_nav_container_height=subNavArr[i].length * (sub_nav_height + sub_nav_spacing ) + sub_nav_offset_top*2
		sub_nav_container_offset_top=20-sub_nav_container_height

		objsArr["sub_nav_"+i].top=sub_nav_container_offset_top
		objsArr["sub_nav_"+i].height=sub_nav_container_height
		objsArr["sub_nav_"+i].spotY=main_nav_height
		
		nav_canvas_str='<Canvas>'
		nav_canvas_str+='	<Canvas Name="nav_'+i+'" Canvas.Left="'+(main_nav_spacing*i)+'" MouseEnter="navEnter" MouseLeave="navLeave">'
		nav_canvas_str+='		<Rectangle Stroke="Black" Fill="#CCC" Height="'+main_nav_height+'" Width="'+main_nav_width+'" Opacity="0.84"></Rectangle>'
		nav_canvas_str+='		<TextBlock Canvas.Left="8" Canvas.Top="4"  Width="'+main_nav_width+'" TextWrapping="Wrap" FontFamily="Verdana" FontSize="11">'+mainNavArr[i]+'</TextBlock>'
		nav_canvas_str+='	</Canvas>'
		
		
		nav_canvas_str+='	<Canvas>' //extra canvas for clip
		nav_canvas_str+='		<Canvas Name="sub_nav_'+i+'"  Canvas.Left="'+(main_nav_spacing*i)+'" Canvas.Top="'+sub_nav_container_offset_top+'" MouseEnter="subConEnter" MouseLeave="subConLeave">'
		nav_canvas_str+='			<Rectangle Stroke="Black" Fill="#FFF" Height="'+sub_nav_container_height+'" Width="'+sub_nav_container_width+'" Opacity="0.84"></Rectangle>'
		
		for(j=0;j<subNavArr[i].length;j++) {
			nav_canvas_str+='		<Canvas Name="sub_nav_'+i+'_'+j+'" Canvas.Left="5" Canvas.Top="'+( (sub_nav_height+sub_nav_spacing) * j + sub_nav_offset_top)+'" MouseEnter="subEnter" MouseLeave="subLeave">'
			nav_canvas_str+='			<Rectangle Cursor="Hand" Stroke="Black" Fill="#CCC" Height="'+sub_nav_height+'" Width="'+sub_nav_width+'" Opacity="0.84"></Rectangle>'
			nav_canvas_str+='			<TextBlock Canvas.Left="8" Canvas.Top="4"  Width="'+sub_nav_width+'" TextWrapping="Wrap" FontFamily="Verdana" FontSize="11">'+subNavArr[i][j]+'</TextBlock> '
			nav_canvas_str+='		</Canvas>'
		}
		
		nav_canvas_str+='		</Canvas>'
		nav_canvas_str+='		<Canvas.Clip>'
		nav_canvas_str+='			<RectangleGeometry Rect="'+(main_nav_spacing*i)+','+main_nav_height+','+sub_nav_container_width+','+sub_nav_container_height+'" />'
		nav_canvas_str+='		</Canvas.Clip>'
		nav_canvas_str+='	</Canvas>'
							
			
		nav_canvas_str+='</Canvas>'
		
		//nav_canvas_str+=''
		//nav_canvas_str+=''
		
		
		xamlTags=plugin.content.createFromXaml(nav_canvas_str)
		s.findName("mainNavHolder").children.add(xamlTags)		
	
	}

}



function navEnter(s,e) {

	clearTimeout(objsArr[s.name].checkSubTO)
	s.children.getItem(0).fill="#FF0000"
	
	var subRef=s.findName("sub_"+s.name)
	subRef.visibility="Visible"
	
	var subRefObj=objsArr["sub_"+s.name]
	
	if(subRefObj.tweenY2) {
		subRefObj.tweenY2.stop()	
	}

	var cur_prop=subRef["Canvas.Top"]

	subRefObj.tweenY = new Tween(new Object(),'y',Tween.regularEaseOut,cur_prop,subRefObj.spotY,0.5)

	subRefObj.tweenY.onMotionChanged = function(event){		
		subRef["Canvas.Top"]=event.target._pos
	}


	subRefObj.tweenY.start()	
		
}

function navLeave(s,e) {

	var name_str=s.name
	objsArr[s.name].checkSubTO=setTimeout("checkSub('"+name_str+"')",menu_hide_time)
	
}



function checkSub(str) {

	
	var mainRef=main.findName(str)
	var subRef=main.findName("sub_"+str)
	mainRef.children.getItem(0).fill="#CCC"
	
	
	var subRefObj=objsArr["sub_"+str]
	
	subRefObj.tweenY.stop()		
	
	var cur_prop=subRef["Canvas.Top"]
	
	subRefObj.tweenY2 = new Tween(new Object(),'y',Tween.regularEaseOut,cur_prop,subRefObj.top,0.3)

	subRefObj.tweenY2.onMotionChanged = function(event){		
		subRef["Canvas.Top"]=event.target._pos
	}

	subRefObj.tweenY2.start()		
	
}


function subConEnter(s,e) {
	var name_to_find=s.name.substr(4,s.name.length)
	clearTimeout(objsArr[name_to_find].checkSubTO)
}

function subConLeave(s) {
	var name_to_find=s.name.substr(4,s.name.length)
	objsArr[name_to_find].checkSubTO=setTimeout("checkSub('"+name_to_find+"')",menu_hide_time)
}


function subEnter(s,e) {
	s.children.getItem(0).fill="#FFF"
	s.children.getItem(1).foreground="#0000FF"
}

function subLeave(s,e) {
	s.children.getItem(0).fill="#CCC"
	s.children.getItem(1).foreground="#000"
}




function whenMouseMoves(s, e) {
    _root_xmouse = e.getPosition(null).x
    _root_ymouse = e.getPosition(null).y
    //window.status=_root_xmouse+" - "+_root_ymouse
}


