function MenuSystem(queryStr, leftQueryStr) {
	var objFlash = null;
	var currentPath = null;
	var objMenuRoot = null;
	var languageCode = 'ko';
	var textQuery = 'm=0&s=0';	/*(!queryStr ? 'm=0&s=0' : queryStr);*/
	var leftQuery = (!leftQueryStr ? 'm=0&s=0' : leftQueryStr);

	var id = {gnb:'mainMenu', lnb:'layoutBody'};

	var data = {
		/*en:{
			menu:{
				patterns:['company', 'business', 'recruit', 'public', 'contribution']
			},
			flash:{
				gnb:{width:1200, height:230, base:'/en/scripts/flash/navigation/topNavi'}, // option
				xml:{src:'/en/scripts/flash/navigation/naviLink.xml'}
			}
		},*/
		ko:{
			menu:{
				patterns:['(company|investment)', 'business', 'recruit', 'public', 'contribution','util','contactus','privacy','cs','rss']
			},
			flash:{
				main:{width:645, height:650, src:'/ko/scripts/flash/navigation/subMain'}, // option
				gnb:{width:1200, height:230, src:'/ko/scripts/flash/navigation/subTop', base:'/ko/scripts/flash/navigation/topNavi'}, // option
				lnb:{width:210, height:494, src:'/ko/scripts/flash/navigation/leftNavi'}, // option
				xml:{src:'/ko/scripts/flash/navigation/naviLink.xml'}
			}
		}
	}

	this.initialize = function () {
		currentPath = window.location.pathname;
		objFlash = new Flash();
		var currentPageType = null;
		languageCode = currentPath.split('/')[1];
		objMenuRoot = document.getElementById(id.gnb).parentNode;

		if (!!data[languageCode] && !!data[languageCode].flash.gnb) {
			objMenuRoot.innerHTML = '';
			loadMainNavigation();
		}

		if (!!data[languageCode] && !!data[languageCode].flash.main) {
			if (isMainMenuItem()) {
				loadMainPage();
			}
		}

		if (!!data[languageCode] && !!data[languageCode].flash.lnb)
			loadSideNavigation();
	}

	var createFlashString = function (data) {
		var base = {
			codebase:'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
			wmode:'transparent',
			pluginspage:'http://www.macromedia.com/go/getflashplayer',
			querystring:createXMLQueryString() //  instead of getCurentMenuIndex()
		}

		for (prop in data) {
			base[prop] = data[prop];
		}

		return objFlash.generateCode(base);
	}

	var createXMLQueryString = function () {
		return 'xmlURL=' + data[languageCode].flash.xml.src + '&' + textQuery;
	}

	var createSideFlashString = function (data) {
		var base = {
			codebase:'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
			wmode:'transparent',
			pluginspage:'http://www.macromedia.com/go/getflashplayer',
			querystring:createSideXMLQueryString() //  instead of getCurentMenuIndex()
		}

		for (prop in data) {
			base[prop] = data[prop];
		}

		return objFlash.generateCode(base);
	}

	var createSideXMLQueryString = function () {
		return 'xmlURL=' + data[languageCode].flash.xml.src + '&' + leftQuery;
	}
	var loadMainNavigation = function () {
		if (!data[languageCode].flash.gnb.src || isMainMenuItem() || (!isMainMenuItem() && !isSubMenuItem()))
			menuSrc = data[languageCode].flash.gnb.base;
		else
			menuSrc = data[languageCode].flash.gnb.src + getMainMenuId();

		var objDIV = Object.createHTMLElement('div', {id:'instantMainMenu'});
		objDIV.innerHTML += createFlashString({
			width:data[languageCode].flash.gnb.width,
			height:data[languageCode].flash.gnb.height,
			src:menuSrc
		});
		objMenuRoot.parentNode.appendChild(objDIV);

		//document.getElementById('layoutHead').style.backgroundImage = 'none';

		if (!isMainMenuItem()) {
			if (!isSubMenuItem()) {
				objDIV.style.position = 'absolute';
				objDIV.style.top = '-10px';
				objDIV.style.left = '63px';
				objDIV.style.overflow = 'hidden';
				objDIV.style.width = '985px';
			} else {
				objDIV.style.position = 'absolute';
				objDIV.style.top = '-10px';
				objDIV.style.left = '0px';
				objDIV.style.overflow = 'hidden';
				objDIV.style.width = '985px';
			}
		}
	}

	var loadSideNavigation = function () {
		objSideRoot = Object.getFirstChild(document.getElementById(id.lnb));
		objSideRoot.innerHTML = createSideFlashString({
			width:data[languageCode].flash.lnb.width,
			height:data[languageCode].flash.lnb.height,
			id:'instantSideMenu',
			src:data[languageCode].flash.lnb.src + getMainMenuId()
		});
	}

	var loadMainPage = function () {
		var objDIV = Object.createHTMLElement('div', {id:'instantMainPage'});
		objDIV.innerHTML = createFlashString({
			width:data[languageCode].flash.main.width,
			height:data[languageCode].flash.main.height,
			src:data[languageCode].flash.main.src + getMainMenuId()
		});
		objMenuRoot.appendChild(objDIV);
	}

	var isMainMenuItem = function () {
		var pattern = new RegExp('^\\/' + languageCode + '\\/(' + data[languageCode].menu.patterns.join('|') + ')(\\/(index.asp)?)?$');
		return !!currentPath.match(pattern);
	}

	var isSubMenuItem = function () {
		if (isMainMenuItem() == false) {
			var pattern = new RegExp('^\\/' + languageCode + '\\/(' + data[languageCode].menu.patterns.join('|') + ')');
			if (currentPath.match(pattern)) {
				return true;
			}
		}

		return false;
	}

	var getMainMenuId = function () {
		var pattern = null;

		for (var i=0; i<data[languageCode].menu.patterns.length; i++) {
			pattern = new RegExp('^\\/' + languageCode + '\\/' + data[languageCode].menu.patterns[i]);
			if (currentPath.match(pattern)) {
				var num = i + 1;
				return (num >= 10) ? num : '0' + num;
				break;
			}
		}

		return null;
	}
}

