﻿// JavaScript Document

function $(o){
		return document.getElementById(o);
}

var LongmanNavDropDownListMenu  = {

			'config' : {
				
			 			'menuRoot'					: 'themes/exponenttheme/ilongmanJsMenu/images/',
						'imgRoot'         	: 'themes/exponenttheme/ilongmanJsMenu/images/eng_bigsize_version/',
						'menuList'        	: [ 0, 1, 2 ,3 , 4 ],
						'menuContainerId' 	: 'LongmanNavDropDownListMenu',
						'xmlConentURI'    	: 'subject_websites_eng.xml',
						'subItemHtmlHeader' : '<div class="subItemsFrameHeader"></div><div class="subItemsFrameContainer">',
						'subItemHtmlFooter' : '</div><div class="subItemsFrameFooter"></div>'
						
			},
			
			'_preloadImgButtons' : function(){
					var loadImage = function(url){ var img = new Image(); img.src = url; }
					var length  = this.config.menuList.length;
					for (var i = 0; i < length; i++){
							loadImage(this.config.imgRoot + i + '_c.jpg');
							loadImage(this.config.imgRoot + i + '_o.jpg');
					}
					/*
					loadImages(this.config.menuRoot + 'box_01.png');
					loadImages(this.config.menuRoot + 'box_03.png');
					loadImages(this.config.menuRoot + 'box_02.gif');
					*/
			},
			
			'_initLevel1Items' : function (){
						var html = '';
						for (var o in this.config.menuList){
								html = html + '<div class="itemContainer"><p><img src="'+ this.config.menuRoot +'transparent.gif"/></p><div id="list' + o + '"></div></div>';							
						}
						$(this.config.menuContainerId).innerHTML = html;
			},

			'_initLevel1Button' : function (){
						var img = $(this.config.menuContainerId).getElementsByTagName('img');
						var length = img.length;
						for (var i = 0 ; i<length; i ++){
											img[i].alt  = i;
											img[i].lang = 1;
											img[i].onclick = function () {
															var levelBtnPicName = LongmanNavDropDownListMenu.config.imgRoot + this.alt;
															var listId         = 'list'+ this.alt;
															if (this.lang == 1){
																	this.lang = 2;
																	this.src  = levelBtnPicName + '_c.jpg';
																	this.onmouseover = function () {
																				return false;
																	};
																	this.onmouseout = function (){
																				return false;
																	};
																	$(listId).style.display = 'block';
																	LongmanNavDropDownListMenu._initLevel1ButtonExceptMe(this.alt);
															}else{
																	this.lang = 1;
																	this.src  = levelBtnPicName + '.jpg';	
																	this.onmouseover = function () {
																				this.src = levelBtnPicName + '_o.jpg';
																	};
																	this.onmouseout = function (){
											 									this.src = levelBtnPicName + '.jpg';
																	};
																	$(listId).style.display = 'none';
																	LongmanNavDropDownListMenu._initLevel1Button(this.alt);
															}
															
										};
										img[i].onmouseover = function () {
															this.src = LongmanNavDropDownListMenu.config.imgRoot + this.alt + '_o.jpg';
															
										};
										img[i].onmouseout = function (){
											 				this.src = LongmanNavDropDownListMenu.config.imgRoot + this.alt + '.jpg';
															
										};
								
					
						}
						
			},
			
			'_initLevel1ButtonExceptMe' : function(){
						var img = $(this.config.menuContainerId).getElementsByTagName('img');
						for (var i = 0 ; i<img.length ; i++){
								if (i != arguments[0]){
										$('list'+(i)).style.display = 'none';
										img[i].lang                 = 1;
										img[i].src                  = LongmanNavDropDownListMenu.config.imgRoot + i + '.jpg';
								}
						}
			},
			
			'_initLevel1ButtonTitle' : function (categorys){
						var img = $(this.config.menuContainerId).getElementsByTagName('img');
						var length = img.length;
						for (var i = 0 ; i<length; i ++){
								img[i].title = categorys[i];
								img[i].src = this.config.imgRoot + i + '.jpg';
						}
						
			},
		
			'_getNormalHtmlContent' : function(data){
						var html = '';					
						for (var o in data){
								html = html + '<p><a href="'+ data[o].URL +'" title="' + data[o].SITENAME + '" target="_blank" onMouseOver="this.parentNode.className=\'itemOver\';" onMouseOut="this.parentNode.className=\'\'">' + data[o].SITENAME + '</a></p>';	
						}
						return html;
			},
			
			'_getCurrentSubjectItemHtmlContent' : function (str){
					  return '<div class="subjectItem"><span>&nbsp;' + str + '&nbsp;</span></div>';		
			},
			
			'_builtUpSubMenuNotWithSujectByWedsiteId' : function (id, data){						
						$('list' + id).innerHTML = this.config.subItemHtmlHeader + this._getNormalHtmlContent(data) + this.config.subItemHtmlFooter;	
			},
			
			'_builtUpSubMenuWithSujectByWedsiteId' : function (id, data){
				
						var html = '';
						for (var o in data){
								html = html + this._getCurrentSubjectItemHtmlContent(data[o].NAME) + 	this._getNormalHtmlContent(data[o]['CONTENT']);
						}
						
						$('list' + id).innerHTML = this.config.subItemHtmlHeader + '<div class="subjectItemContainer">' + html + '</div>' + this.config.subItemHtmlFooter;
						
			},
		
			'_execute' : function (){
						this._preloadImgButtons();
						$('LongmanNavDropDownListMenu').style.background = 'url(' + this.config.imgRoot + 'bg.jpg) no-repeat';
						this._initLevel1Items();
										
						var data = XmlHelper.getDataArray(this.config.xmlConentURI);
						this._initLevel1Button();
						this._initLevel1ButtonTitle(data['CATEGORYS']);	
						this._builtUpSubMenuNotWithSujectByWedsiteId(0, data['ITEMS'][0]);
						this._builtUpSubMenuWithSujectByWedsiteId(1, data['ITEMS'][1]);
						this._builtUpSubMenuWithSujectByWedsiteId(2, data['ITEMS'][2]);
						this._builtUpSubMenuNotWithSujectByWedsiteId(3, data['ITEMS'][3]);
						this._builtUpSubMenuNotWithSujectByWedsiteId(4, data['ITEMS'][4]);
					
			 },
			
			'init' : function () {
					if (arguments[0] != null){
							this.config.imgRoot = arguments[0];	
					}
					if (arguments[1] != null){
							this.config.xmlConentURI = arguments[1];	
					}
					this._execute();
			}
			


}