function MenuData(){
	this.getData();
}

MenuData.prototype = {
	getData: function(){
		
		var filePath;
		if( flashvars ){
			filePath = flashvars.menuData;
		}else{
			filePath = "data/menu.xml";
		}
		
		this.xmlData;
				if( jQuery.browser.msie ){
					this.xmlData = new ActiveXObject("microsoft.XMLDOM");
					this.xmlData.async = false;
					this.xmlData.validateOnParse = false;
					this.xmlData.load(filePath)
					if( this.xmlData.parseError!=0) alert("error"+this.xmlData.parseError.reason)
				}else{
					jQuery.ajaxSetup({async:false});
					this.xmlData = $.get(filePath);
					this.xmlData = this.xmlData.responseXML;
				}
		
		
		this.dataObject = {};
		this.categoryObject = {};
		
		this.parse();
	},
	parse: function(){
		$("menus menu",this.xmlData).each(delegate(this,function(i,data){
			var d = $(data);
			
			this.dataObject[d.attr("id")] = {
				deepLinkUrl			:d.attr("deepLinkUrl"),
				accessUrl			:d.attr("accessUrl"),
				title						:d.attr("title"),
				job						:d.attr("job")
			}
			
			if( !this.categoryObject[d.attr("category")] ) this.categoryObject[d.attr("category")] = {urlStrings:[]}
			
			var splitData = d.attr("accessUrl").split("/");
			
			this.categoryObject[d.attr("category")].urlStrings.push(splitData[1]);
		}))
		
		/*
		$("categoryData category",this.xmlData).each(delegate(this,function(i,data){
			var d = $(data);
			
			this.categoryObject[d.attr("id")] = {urlStrings:d.attr("urlStrings").split(",")};
		}))
		*/
		
		
		// set array Unique
		for(var name in this.categoryObject){
			var checkObj = {}
			
			var a = $.grep(this.categoryObject[name].urlStrings,function(string, index){
				return string in checkObj ? false : checkObj[string] = true;
			})
			
			this.categoryObject[name].urlStrings = a;
		}
		
	},
	
	getUrlData: function(idString){
		var urlData ="";
		try{
			urlData = this.dataObject[idString];
		}catch(e){
			throw new Error("no match id string");
		}
		return urlData;
	},
	
	getUrlDataFromPath:function(path){
		var urlData = "";
		for(var id in this.dataObject){
			var d = this.dataObject[id];
			if( d.deepLinkUrl.substr(1,d.deepLinkUrl.length) == path ){
				return d;
			}
		}
		
		return undefined;
	},
	
	getCageoryFromFirstLevel:function(st){
		var targetCategory = "";
		
		for(var name in this.categoryObject){
			//console.log(name)
			var stringArray = this.categoryObject[name].urlStrings;
			
			var l = stringArray.length;
			while(l--){
				if(st.toLowerCase() == stringArray[l].toLowerCase()){
					targetCategory = name;
					break;
				}
				
			}
			if( targetCategory ) break;
		}
		
		return targetCategory;
	},
	
	getCategoryFromFileName: function(attribute){
		
	},
	
	
	
	
	toString: function(){
		return "MenuData";
	}
}


MenuData.LOAD = "loadData";
MenuData.SWF = "loadswf";


MenuData.getInstance = function(){
	if( MenuData.instance == undefined ) MenuData.instance = new MenuData();
	return MenuData.instance;
}