/************************************************/
/* The page must be rendered in Standard mode	*/
/*     for this menu to display correctly		*/
/************************************************/

TOP=0;	LEFT=0;

TOP_OFFSET=96;	LEFT_OFFSET=20;	// relative to wrapper

LAST_TOP=0;		// wrapper's left;

PADDING_TOP_OFFSET=3;		// adjusting the top of Level 2 Menu,
							// for browsers rendering in Standard mode
							// this is the value of 'padding-top in .mItemLevel2

PADDING_LEFT_OFFSET=8;		// adjusting the left of Level 3 Menu,
							// for browsers rendering in Standard mode
							// this is the value of 'padding-left' in .mItemLevel2
							//      plus 1 for border width

BORDER_OFFSET = 1;			// if border is defined in .mItemLevel2, otherwsie set it to zero.
							// but if you don't want any borders, set it to zero - 
							// even if border is defined in .mItemLevel2

//LINK_PREFIX = '/sclass/';
LINK_PREFIX = 'http://www.s-classinter.com/';

M_ID_PREFIX="_m";
M_IDS=new Array();

MSL_1=new Array();									// MENU STYLE LEVEL = 1
	MSL_1["normalColor"] = "white";					// must be like CSS
	MSL_1["normalBgColor"] = "transparent";
	MSL_1["highlightColor"] = "#F4F4F4";
	MSL_1["highlightBgColor"] = "#548dd4";
MSL_2=new Array();									// MENU STYLE LEVEL = 2
	MSL_2["normalColor"] = "#6d6d6d";
	MSL_2["normalBgColor"] = "#ecf1fe"
	MSL_2["highlightColor"] = "#f9f9f9";
	MSL_2["highlightBgColor"] = "#a0b8e9";
MSL_3=new Array();									// MENU STYLE LEVEL  = 3
	MSL_3["normalColor"] = "#707070";
	MSL_3["normalBgColor"] = "#fbf2dd";					// must be like CSS
	MSL_3["highlightColor"] = "#707070";
	MSL_3["highlightBgColor"] = "#f8e7c0";

MB_ID=new Array();
	MB_ID["_m01"] = {"width":100, "height": 22};				// Home
		MB_ID["_m0101"] = {"width":130, "height": 22};			// _m = M_ID_PREFIX

	MB_ID["_m02"] = {"width":125, "height": 22};				// ผลิตภัณฑ์
		MB_ID["_m0201"] = {"width":140, "height": 22};
			MB_ID["_m020101"] = {"width":225, "height": 22};
			MB_ID["_m020201"] = {"width":190, "height": 22};
			MB_ID["_m020301"] = {"width":190, "height": 22};
			MB_ID["_m020401"] = {"width":210, "height": 22};

	MB_ID["_m03"] = {"width":155, "height": 22};			// ประชาสัมพันธ์
		MB_ID["_m0301"] = {"width":170, "height": 22};
			MB_ID["_m030601"] = {"width":210, "height": 22};

	MB_ID["_m04"] = {"width":110, "height": 22};				// สมาชิก
		MB_ID["_m0401"] = {"width":155, "height": 22};
			MB_ID["_m040201"] = {"width":120, "height": 22, "direction": "right"};

	MB_ID["_m05"] = {"width":150, "height": 22};			// ข้อมูลบริษัท
		MB_ID["_m0501"] = {"width":155, "height": 22};
			MB_ID["_m050201"] = {"width":125, "height": 22, "direction": "right"};
			MB_ID["_m050501"] = {"width":100, "height": 22, "direction": "right"};
	
MENU_ITEMS = [
	['หน้าแรก','index.html',null],
	['ผลิตภัณฑ์','Products/Products.htm',null,
		['เครื่องยนต์ ....',null,null,
			['สารเสริมประสิทธิภาพเครื่องยนต์','Products/EngineTreatment/Lube/Default.htm',null]],
		['เกษตร ....',null,null,
			['ปุ๋ยน้ำอินทรีย์สกัด','Products/Fertilizer/Liquid/Default.htm',null],
			['ปุ๋ยเม็ดอินทรีย์สกัด','Products/Fertilizer/Tablet/Default.htm',null],
			['&nbsp;&nbsp;&nbsp; - ชนิดเม็ด สูตร S-4','Products/Fertilizer/S4/S4.htm',null],
			['&nbsp;&nbsp;&nbsp; - ชนิดเม็ด สูตร S-5','Products/Fertilizer/S5/S5.htm',null],
			['&nbsp;&nbsp;&nbsp; - ชนิดเม็ด สูตร S-6','Products/Fertilizer/S6/S6.htm',null]],
	 	['อาหารเสริม ....',null,null,
	 		//['ไบรต้า ไวท์','Products/FoodSupplement/BritaVite/Default.htm',null],
	 		['สมุนไพรจีน เบอร์ 96','Products/FoodSupplement/ChineseHerb96/Default.htm',null],
	 		['ชาเครื่องเทศสมุนไพร','Products/FoodSupplement/SpicyHerbTea/Default.htm',null],
	 		['ชาสมุนไพร เจสัน วินเตอร์','Products/FoodSupplement/JasonWinter/Default.php',null],
	 		['ผลิตภัณฑ์เสริมอาหาร SCI','Products/FoodSupplement/SCI/Default.htm',null]],
		['เครื่องสำอาง ....',null,null,
			['ครีมมุกหน้าใส','Products/FacialTreatment/Perl/Default.htm',null],
			['เซรั่มยกกระชับผิว','Products/FacialTreatment/LiftingSerum/Default.htm',null],
			['ครีมหน้าเด้งขมิ้นข้น','Products/FacialTreatment/Tumeric/Default.htm',null],
			['ไบร์เทนนิ่ง ไนท์ครีม','Products/FacialTreatment/BNC/Default.htm',null],
			['ครีมบำรุงผิวบัวหิมะผสมโสม','Products/FacialTreatment/SnowLotus/Default.htm',null],
			['ครีมพอกหน้า เอส-คลาส เฟสลิฟ','Products/FacialTreatment/Facelift/Default.htm',null]],
		['ทั่วไป',null,null]
	],
	['ประชาสัมพันธ์','Information/Information.htm',null,
		['4 สุดยอด','Information/Apex/Apex.htm',null],
		['เกร็ดความรู้','Information/Tip/Tip.htm',null],
		['ธรรมะวันละนิด','Information/Thamma/Thamma.htm',null],				
		['ท่านถาม-เราตอบ','Information/QnA/QnA.htm',null],
		['ข้อมูลและแบบฟอร์ม','Information/Downloads/Downloads.php',null],
		['ประสบการณ์จากผู้ใช้ ....',null,null,
			['สารเสริมประสิทธิภาพเครื่องยนต์','Information/Experience/Engine/Engine.htm',null],
			['ปุ๋ยอินทรีย์สกัด','Information/Experience/Fertilizer/Fertilizer.htm',null],
			['เครื่องสำอาง','Information/Experience/FacialTreatment/FacialTreatment.htm',null] ],
		['ข่าวสารและกิจกรรม','Information/News/News.htm',null],
		['โปรโมชั่น','Information/Promotion/Promotion.htm',null]
	],
	['สมาชิก','Membership/Membership.htm',null,
	 	['สมัครสมาชิก','Membership/Application/Application.htm',null],
		['ตารางการประชุม ....',null,null,
			['ภาคเหนือ','Membership/Meeting/Table.htm?Region=North',null],
			['ภาคอีสาน','Membership/Meeting/Table.htm?Region=N.East',null],
			['ภาคกลาง','Membership/Meeting/Table.htm?Region=Central',null],
			['ภาคตะวันออก','Membership/Meeting/Table.htm?Region=East',null],
			['ภาคใต้','Membership/Meeting/Table.htm?Region=South',null] ],
		['หลักสูตร Mini MBA','Membership/MiniMBA/MiniMBA.htm',null]
	],
	['ข้อมูลบริษัท','CompanyInfo/CompanyInfo.htm',null,
	 	['ประธานกรรมการ','CompanyInfo/Chairman/Chairman.htm',null],
		['ทำเนียบผู้บริหาร ....',null,null,
			['ภาคเหนือ','CompanyInfo/DirectorOffice/Table.htm?Region=North',null],
			['ภาคอีสาน','CompanyInfo/DirectorOffice/Table.htm?Region=N.East',null],
			['ภาคกลาง','CompanyInfo/DirectorOffice/Table.htm?Region=Central',null],
			['ภาคตะวันออก','CompanyInfo/DirectorOffice/Table.htm?Region=East',null],
			['ภาคใต้','CompanyInfo/DirectorOffice/Table.htm?Region=South',null] ],
		['ประวัติบริษัท','CompanyInfo/Profile/Profile.htm',null],
		['ปรัชญาการดำเนินงาน',null,null],
		['เอกสารการจดทะเบียน ....',null,null,
			['ธุรกิจขายตรง','CompanyInfo/LegalPapers/DirectSell.htm',null],
			['ผลิตปุ๋ยอินทรีย์','CompanyInfo/LegalPapers/Fertilizer.htm',null]	],
		['สถานที่ติดต่อ','CompanyInfo/Contact/Contact.htm',null]
	]
];

function initMenu() {
	centerPage();		// this line is not required
	setReferencePoint ();
	genMenu(MENU_ITEMS, 1, M_ID_PREFIX, 1);
		
	// keep wrapper's top, left for reference when relocating
	LAST_LEFT = parseInt(document.getElementById('wrapper').style.left);

	// hide staticMenuWrapper and show MenuBG
	// the following 2 lines cannot be at the top of this function (before centerPage()),
	//		otherwise MenuBG wouldn't show
	document.getElementById('StaticMenu').style.visibility = "hidden";
	document.getElementById('MenuBG').style.display = "block";
}

function setReferencePoint() {
	TOP = TOP_OFFSET +  parseInt(document.getElementById('wrapper').style.top);
	LEFT = LEFT_OFFSET + parseInt(document.getElementById('wrapper').style.left);
}

function doOnResize() {
	centerPage();
	repositionMenu();
}

function centerPage() {
	document.getElementById('wrapper').style.left = (parseInt(document.body.clientWidth) < 780) ?
		0 :
		((parseInt(document.body.clientWidth) - 772) / 2) + 'px';
}

function repositionMenu () {
	var topOffset, leftOffset;
	
	// find leftOffset. leftOffset = new left - old left;
	leftOffset = parseInt(document.getElementById('wrapper').style.left) - LAST_LEFT;
	
	if (leftOffset != 0)		// mild hack for onResize bubble
		for (var nth in M_IDS) {
			document.getElementById(M_IDS[nth]).style.left = 
				parseInt(document.getElementById(M_IDS[nth]).style.left) + leftOffset + 'px';
		}
	LAST_LEFT = parseInt(document.getElementById('wrapper').style.left);
}

function highlightMenu (mItem) {
	var level = (mItem.length / 2) - 1;
	var target = document.getElementById(mItem).style;
	
	target.fontWeight = "bold";
	target.color = eval('MSL_' + level + '.highlightColor'); 
	target.backgroundColor = eval('MSL_' + level + '.highlightBgColor');
}

function normalizeMenu (mItem) {
	var level = (mItem.length / 2) - 1;
	var target = document.getElementById(mItem).style;

	target.fontWeight = (level == 1) ? "" : "normal";	
	target.color = eval('MSL_' + level + '.normalColor'); 
	target.backgroundColor = eval('MSL_' + level + '.normalBgColor');
}

function genMenu (mItems, level, mId, pIndex) { // 0, 1 , 0
	var offset = (level == 1) ? 0 : 3; // offset = 3
	var menuId = "";
	
	for (var i=0; i<(mItems.length-offset); i++) {
		menuId = (i <10) ? mId + '0' + (i+1): mId + (i+1);
		genMenuItem (mItems[i+offset], level, i+1, menuId, pIndex);
		if (mItems[i+offset].length>3) 
			genMenu(mItems[i+offset], level+1, menuId, i+1);	// i = index
		menuId = "";
	}
}

function genMenuItem(mItem, level, index, mId, pIndex) {	// pIndex = parent index, level = level to gen, index = index to gen
	var i, top=0, left=0, width=0, height=0;
	var parentMenuId = mId.substr(0, (mId.length-2));
	var firstChildMenuId = mId.substr(0,mId.length-1) + '1';
	var parent = document.getElementById(parentMenuId);
	var firstChild = document.getElementById(firstChildMenuId);
										  
	// set position & dimension (top, left, width, height)
	if  (level == 1) {	// special case - horizontal main menu bar
		top = TOP;
		left = LEFT;		// this left must be initialized before the following if clause is called
		width = parseInt(eval('MB_ID.' + mId + '.width'));
		height = parseInt(eval('MB_ID.' + mId + '.height'));
		if (index > 1) 
			for (i=1; i<index; i++)  {
				var mId_Tmp = (i<10) ? M_ID_PREFIX + "0" + i: M_ID_PREFIX + i;
				left += parseInt(document.getElementById(mId_Tmp).style.width);
			}
	}
	else {	// if level > 1, do this else.
		if (index == 1) {	// if index = 1, check level
			if (level == 2) {
				top = parseInt(parent.style.top) + parseInt(parent.style.height) + PADDING_TOP_OFFSET;
				left = (eval('MB_ID.' + mId + '.direction') == "left") ?
					(parseInt(parent.style.left) + parseInt(parent.style.width)) - parseInt(eval('MB_ID.' + mId + '.width')) :
					left = parseInt(parent.style.left);
			}
			else {	// level = 3 & Up, & index = 1
				top = parseInt(parent.style.top);
				left = parseInt(parent.style.left) + PADDING_LEFT_OFFSET;
				left = (eval('MB_ID.' + mId + '.direction') == "left") ?
					left - parseInt(parent.style.width) :
					left + parseInt(parent.style.width);
			}
			width = eval('MB_ID.' + mId + '.width');
			height = eval('MB_ID.' + mId + '.height');
		}
		else {	// if index > 1, do this else.
			top = parseInt(firstChild.style.top)
					+ ( (parseInt(firstChild.style.height) + PADDING_TOP_OFFSET + BORDER_OFFSET) * (index-1) );
			width = eval('MB_ID.' + firstChildMenuId + '.width');
			height = eval('MB_ID.' + firstChildMenuId + '.height');
			left = parseInt(firstChild.style.left);
		}
	}
	
	var hyperlink = '#';
	
	// write hyperlink only if mItem[1] is not equal to '#' or null
	if ( !(mItem[1] == '#' || mItem[1] == null) )
		hyperlink = LINK_PREFIX + mItem[1];
	
	// WRITE  DIV  TAG
	document.write (
		'<div id="' + mId + '"' +
		'class="mItemLevel_' + level + '"' +
		'onmouseover="doMenuMouseOver(' + "'" + mId + "'" + ');"' +		// str in the parentheses must be enclosed with signle quotes
		'onmouseout="doMenuMouseOut(' + "'" + mId  + "'" + ');"' +		// str in the parentheses must be enclosed with signle quotes
		'onclick="link(' + "'" + hyperlink + "'" + ');"' +
		'style="position:absolute; top:' + top + 'px; left:'  + left + 'px; width:' + width + 'px; height:' + height + 'px">'  +
		mItem[0] + '</div>');
	
	// keep every written DIV tag in M_IDS array
	M_IDS.push (mId);
	
	// hide every higher than level 1 menu item 
	if (mId.length>4)		document.getElementById(mId).style.visibility = "hidden";
}

function doMenuMouseOver (menuId) {
	var i, nth, mId;
	var level = (menuId.length/2)-1;
	
	// show self
	document.getElementById(menuId).style.visibility = "visible";
	document.getElementById(menuId).style.cursor = "hand";
	
	// highlight self
	highlightMenu(menuId);
	
	// highlight ANCESTORS (if any)
	for (i=1; i<level; i++) {
		mId = menuId.substr(0, 2 * (i + 1));
		highlightMenu(mId);
	}
	
	for (nth in M_IDS) {		// loop the whole M_IDS array
		mId = M_IDS[nth];
		
		// show ANCESTORS (if any)
		if (level > 2)
			for (i=2; i<level; i++)
				if (mId.length == (i+1) * 2)		// if length = x, check length = x-2. ex. length = 6, check lenght = 4
					if (mId.substr(0, 2 * i) == menuId.substr(0, 2 * i) )
						document.getElementById(mId).style.visibility = "visible";
		
		// show SIBLINGS (if any)
		if (level > 1)
			if (mId.length == menuId.length)
				if(mId.substr(2, mId.length-4) == menuId.substr(2, menuId.length-4))
					document.getElementById(mId).style.visibility = "visible";
		
		// show CHILDREN (if any)
		if (mId.length == (menuId.length+2))
			if(mId.substr(0, menuId.length) == menuId.substr(0, menuId.length))
				document.getElementById(mId).style.visibility = "visible";
	}
}

function doMenuMouseOut(mId) {
	var i, nth;
	var level = (mId.length/2)-1;

	// hide all except root
	for (nth in M_IDS)		// loop the whole array
		if (M_IDS[nth].length > 4)		// if level => 2, select it
			if (M_IDS[nth].substr(2, 2) == mId.substr(2, 2))		// compare the 3rd & 4th chars in the string
				document.getElementById(M_IDS[nth]).style.visibility = "hidden";
	
	// de-highlight self
	normalizeMenu(mId);
	
	// de-highlight parent & parent (if any)
	for (i=1; i<level; i++)
		for (nth in M_IDS)		// loop the whole array
			if (M_IDS[nth].length == (i+1) * 2)	// if length = x, check length = x-2. ex. length = 6, check lenght = 4
				if (M_IDS[nth] == mId.substr(0, (i+1) * 2))
					normalizeMenu(M_IDS[nth]);
}

function link (hyperlink) {
	window.location = hyperlink;
}