YAHOO.si.TopRightLinks = function()
{
	this.controller = YAHOO.si.Controller;
	this.setLabel = function(language)
	{
		try
		{
			for(var obj in this.links)
			{
				if(this.links[obj])
				{
					var link = this.links[obj];
					link.el.innerHTML = link[language];
				}
			}			
		}
		catch(e)
		{
			YAHOO.si.handleErrors(e);			
		}
	};
	var rightlinks = this;	
	this.getSitemap = function(ev)
	{
		YAHOO.util.Event.stopEvent(ev);
		try
		{
	        	YAHOO.si.HistoryManager.navigate("pageid",YAHOO.si.Sitemap.pageid);
		}
		catch(e)
		{
			e.contextMessage = "The files 'rendersitemap.js or 'layouts.js' may be missing. ";
			YAHOO.si.handleErrors(e);	
		}
	};
	this.openPage = function(ev,url)
	{
		YAHOO.util.Event.stopEvent(ev);
		try
		{
			var language = this.controller.historyManager.language;
			if(language=="jp")
			{
				url = "/j" + url;
			}	
			else
			{
				url = "/e" + url;
			}		
			var json = urllookup[url];
			var state ={"language":language,"areaid":json.areaid,"pageid":json.pageid};
			YAHOO.si.HistoryManager.multiNavigate(state);
			YAHOO.si.Controller.topNavBar.setSelected(url);
			//YAHOO.si.Controller.leftMenu.setSelected(url);
		}
		catch(e)
		{
			YAHOO.si.handleErrors(e);	
		}	
		//alert(url);
		/*
			YAHOO.si.Controller.page.reloadFromUrl(url);
			var pageid = YAHOO.si.Controller.page.pageid;
			YAHOO.si.Controller.setCurrentState(language,YAHOO.si.Controller.currentState.areaid,pageid);
			YAHOO.si.Controller.topNavBar.setSelected(url);
			YAHOO.si.Controller.leftMenu.setSelected(url);
		}
		*/ 	
	};
	/**
	 * url is null in this case because it is irrelevant
	 */
	this.translate = function(ev,url)
	{
		YAHOO.util.Event.stopEvent(ev);
		try
		{
			var language,areaid,pageid;
			if(YAHOO.si.HistoryManager.pageid!=YAHOO.si.Sitemap.pageid)
			{
				//Don't forget you have to set the areaid to its translation and then change the language
				areaid = this.controller.translateArea();
				pageid = this.controller.translatePage();
				language = pagelookup[pageid].language;
				//YAHOO.si.HistoryManager.language = language;
			}
			else
			{
				areaid = this.controller.translateArea();
				language = YAHOO.si.HistoryManager.language;
				pageid = YAHOO.si.Sitemap.pageid;
			}
			var state = {"language":language,"areaid":areaid,"pageid":pageid};
			rightlinks.setLabel(language);
			YAHOO.si.HistoryManager.multiNavigate(state);
		}
		catch(e)
		{
			YAHOO.si.handleErrors(e);
		}
	};
	this.links = {
		contactus:
		{
			id:"contactusLink",
			en:"Contact Us",
			jp:"お問合せ",
			fn:this.openPage,
			url:"/contactus.json"
		},
		recruitment:
		{
			id:"recruitmentLink",
			en:"Recruitment",
			jp:"採用情報",
			fn:this.openPage,
			url:"/recruitment.json"
		},
		aboutus:
		{
			id:"aboutusLink",
			en:"About Us",
			jp:"会社概要",
			fn:this.openPage,
			url:"/aboutus/default.json"
		},
		sitemap:
		{
			id:"sitemapLink",
			en:"Sitemap",
			jp:"サイトマップ",
			fn:this.getSitemap
		},
		translate:
		{
			id:"labelTranslateLink",
			en:sitemap.jp.name,
			jp:sitemap.en.name,
			fn:this.translate,
			url:null
		}
	};
	this.init = function()
	{
		if(!YAHOO.util.Dom.inDocument("contactusLink"))
		{
			var error = "The DOM elements for the top-right links are not available.";
			throw error;
		}
		for(var obj in this.links)
		{
			if(this.links[obj])
			{
				var link = this.links[obj];
				link.el = document.getElementById(link.id);
				YAHOO.util.Event.addListener(link.id,"click",link.fn,link.url,this);
			}
		}
		var language = this.controller.historyManager.language;
		this.setLabel(language);
	};
		
	this.toString = function()
	{
		return "YAHOO.si.TopRightLinks";
	};
};
