Element.Events.extend({
	"wheelup": {
		type: Element.Events.mousewheel.type,
		map: function(event){
			event = new Event(event);
			if (event.wheel >= 0) this.fireEvent("wheelup", event)
		}
	},
 	"wheeldown": {
		type: Element.Events.mousewheel.type,
		map: function(event){
			event = new Event(event);
			if (event.wheel <= 0) this.fireEvent("wheeldown", event)
		}
	}
});

//////////////////
function changeStatus(img){
/*
	img.addEvent('click',function(){
		onClickHandler("");
	});
	*/
	//get language
	var pos = window.location.href.lastIndexOf('lang=');
	var lang = 'vi';		
	if (pos != -1) {
		lang = window.location.href.substring(pos + 5, window.location.href.length);
	}		
	
	var id;
	if(window.gecko)
		id=img.getProperty('id');
	else
		id=img.id;
		
	switch(id){
	
		case "visu_home_food":
			$('btn_more_info_foods').setProperty('src','images/' + lang + '_btn_more_info_foods_o.gif');
			break;
		case "visu_home_financial":
			$('btn_more_info_financial').setProperty('src','images/' + lang + '_btn_more_info_financial_o.gif');	
			break;
		case "visu_home_real_estate":
			$('btn_more_info_real').setProperty('src','images/' + lang + '_btn_more_info_real_o.gif');
			break;
		case "visu_home_retails":
			$('btn_more_info_retails').setProperty('src','images/' + lang + '_btn_more_info_retails_o.gif');
			break;	
	}
}

function onClickHandler(url){
	window.location.assign(url);
}

function resetStatus(img){
	
	//get language
	var pos = window.location.href.lastIndexOf('lang=');
	var lang = 'vi';	
	if (pos != -1) {
		lang = window.location.href.substring(pos + 5, window.location.href.length);
	}	
	
	//img.removeEvent('click');
	var id;
	if(window.gecko)
		id=img.getProperty('id');
	else
		id=img.id;
	
	switch(id){
	
		case "visu_home_food":
			$('btn_more_info_foods').setProperty('src','images/' + lang + '_btn_more_info_foods_n.gif');
			break;
		case "visu_home_financial":
			$('btn_more_info_financial').setProperty('src','images/' + lang + '_btn_more_info_financial_n.gif');	
			break;
		case "visu_home_real_estate":
			$('btn_more_info_real').setProperty('src','images/' + lang + '_btn_more_info_real_n.gif');
			break;
		case "visu_home_retails":
			$('btn_more_info_retails').setProperty('src','images/' + lang + '_btn_more_info_retails_n.gif');
			break;	
	}
}
function createToggleMenu() {	
	
	initToggleMenu();
	createToggleMenuLevel(1);
	createToggleMenuLevel(2);	
	createToggleMenuLevel(3);
	createToggleMenuLevel(4);
	
	// Initialize Toggle Menu
	function initToggleMenu(){
		$$('ul.open').each(function(item){		
			item.setStyle('display', 'block');
		});	
		var currentActive = $$('a.active')[0];
		if(currentActive && currentActive.hasClass('level1')){
			if($ES('ul', currentActive.getParent()).length == 0){				
				showSubToggleMenu(currentActive);
				currentActive.setStyles('color: #ed1c24; background:url(/images/bgd_contentype_link.gif) 2px 4px no-repeat; padding:0 0 0 10px;');
				var foodSection = $('foodSection');
				if(foodSection)
					currentActive.setStyles('color: #c78b00; background:url(/images/bgd_contentypeFood_link.gif) 2px 4px no-repeat; padding:0 0 0 10px;');
				
				var financialInvestment = $('financialInvestment');
				if(financialInvestment)
					currentActive.setStyles('color: #017dc5; background:url(/images/bullet_05.gif) 2px 4px no-repeat; padding:0 0 0 10px');
				
				var realEstate = $('realEstate');
				if(realEstate)
					currentActive.setStyles('color: #146868; background:url(/images/bullet_09.gif) 2px 4px no-repeat; padding:0 0 0 10px');				
			}
		}	
	}
	
	// Create Toggle Menu Level
	function createToggleMenuLevel(level){
		if(!level){
			return;
		}
		$$('a.level' + level).each(function(item){
			item.addEvent('click', function(evt){
				evt = new Event(evt);
				if(item.hasClass('active')){
					if(level == 1 && $ES('ul', item.getParent()).length == 0){
						hideSubToggleMenu(item);
						item.setStyles('color:#464646; background:url(/images/bgd_lev2_listype_normal.gif) 2px 4px no-repeat; padding:0 0 0 10px');
					}else{
						hideSubToggleMenu(item);	
					}
				}else{
					$$('a.level' + level).each(function(other){
						if(item != other){
							if(level == 1 && $ES('ul', other.getParent()).length == 0){
								hideSubToggleMenu(other);
								other.setStyles('color:#464646; background:url(/images/bgd_lev2_listype_normal.gif) 2px 4px no-repeat; padding:0 0 0 10px');
							}else{
								hideSubToggleMenu(other);	
							}							
						}else{
							if(level == 1 && $ES('ul', item.getParent()).length == 0){
								showSubToggleMenu(item);
								item.setStyles('color: #ed1c24; background:url(/images/bgd_contentype_link.gif) 2px 4px no-repeat; padding:0 0 0 10px;');
							}else{
								showSubToggleMenu(item);
							}
						}
					});									
				}
				if(this.getNext('ul')){
					if(this.href == 'javascript:void(0);')
						getLastLevel(this);
				}
			});
		});
	}
	
	// Hide Sub Toggle Menu
	function hideSubToggleMenu(item){
		item.removeClass('active');
		var thisChild = item.getNext();
		if (thisChild) {
			thisChild.setStyle('display', 'none');
			thisChild.removeClass('open');
			$ES('a.active', thisChild).each(function(child){
				child.removeClass('active');
			});
			$ES('ul.open', thisChild).each(function(child){
				child.setStyle('display', 'none');
				child.removeClass('open');
			});
		}
	}
	
	// Show Sub Toggle Menu
	function showSubToggleMenu(item){
		item.addClass('active');
		var thisChild = item.getNext();
		if (thisChild) {
			thisChild.setStyle('display', 'block');
			thisChild.addClass('open');
		}
	}
}

function getLastLevel(el){	
	var ul = el.getNext('ul');		
	if(ul){		
		getLastLevel(ul.getElement('a'));		
	}else{		
		window.location.href = el.href;
		if(window.ie6)
			window.event.returnValue = false;
	}
}
function initListLogo() {
	var slideContent = $("listLogo");
	if (!slideContent) {
		return;
	}
	
	var isClicked = false;
	var TIME_OUT = 2000;
	var DELAY_TIME = 30;
	var DEFAULT_DIRECTION = false; // false - left | true - right
	var timeoutID;
	
	var ulList = $E('ul', slideContent);
	ulList.leftPos = 0;
	ulList.fx = new Fx.Style(ulList, 'margin-left', {
		transition: Fx.Transitions.linear,
		onComplete: function() {
			if (parseInt(ulList.getStyle('margin-left')) != 0) {
				ulList.getFirst().injectInside(ulList);
			}
			
			ulList.setStyle('margin-left', 0);
			
			if (!isClicked) {
				move();
			} else {
				timeoutID = setTimeout(function() {
					isClicked = false;
					move();
				}, TIME_OUT);
			}
		}
	});
	
	// handle user action
	// back
	slideContent.getPrevious().addEvent('click', function(evt) {
		new Event(evt).stop();
		
		isClicked = true;
		move(true);
	});
	
	// next
	slideContent.getNext().addEvent('click', function(evt) {
		new Event(evt).stop();
		
		isClicked = true;
		move();
	});
		
	slideContent.addEvents({
		mouseover: function(evt) {
			new Event(evt).stop();
			
			ulList.fx.stop();
		}, 
		
		mouseleave: function(evt) {
			new Event(evt).stop();
			
			isClicked = false;
			move();
		}
	});
	
	/*
	 * 	move all logos to left or right. Each call will remove / add  a logo at left side
	 *	@toLeft 	Boolean 	determine the direction
	 */		
	function move(toLeft) {
		// must clear timeout if any
		var delayTime = DELAY_TIME;
		
		if (isClicked) {
			try {
				clearTimeout(timeoutID);
			} catch (e) {}
			
			delayTime = DELAY_TIME / 2;
		}
		
		
		var liLogo;
		ulList.fx.stop();
		
		// set default if not specify
		if (!toLeft) {
			toLeft = DEFAULT_DIRECTION;
		}
		
		if (toLeft) {
			var marginLeft = parseFloat(ulList.getStyle('margin-left'));
			
			// move the first logo out of view
			liLogo = ulList.getFirst();
			ulList.fx.options.duration = (liLogo.getCoordinates().width + marginLeft) * delayTime;
			ulList.fx.start(-liLogo.getCoordinates().width);			
		} else {
			var marginLeft = parseFloat(ulList.getStyle('margin-left'));
			if (marginLeft < 0) { // has a logo out of view at left side
				// move the first logo out of view
				liLogo = ulList.getFirst();
				ulList.fx.options.duration = ( - marginLeft) * delayTime;
			} else {
				liLogo = ulList.getLast();
				liLogo.injectBefore(ulList.getFirst());
				ulList.setStyle('margin-left', -liLogo.getCoordinates().width);
				
				ulList.fx.options.duration = liLogo.getCoordinates().width * delayTime;
			}
			
			ulList.fx.start(0);
		}
	}
	
	// init move
	move();
}

///////////////////
function initListYear() {
	var history = $$('div.contHistory');
	if (history.length == 0) { // make sure this is history page
		return;
	}
	
	history = history[0];
	
	
	var activeIndex;
	var arrDetailYear = $ES('div.detailYear', history);
	var listYearNode = $E('div.listYear', history);
	var arrLink = $ES('a', listYearNode);
	var activeFxPosition;
	
	// check current page
	for (var i = 0; i < arrDetailYear.length; i++) {
		if (!arrDetailYear[i].hasClass('tabhide')) {
			activeIndex = i;
		}
	}	
	
	// store current tab
	activeFxPosition = activeIndex - 6;
	if (activeFxPosition < 0) {
		activeFxPosition = 0;
	}
	
	// difine animaiton
	var fx = new Fx.Scroll(listYearNode, {
		wait: false,
		duration: 1000,
		transition: Fx.Transitions.Quad.easeInOut
	});
	
	fx.toElement(arrLink[activeFxPosition]);
	
	// define new event handler
	arrLink.each(function(aLink, index) {
		aLink.onclick = null;
		aLink.removeClass('active');
		aLink.index = index;
		aLink.addEvent('click', function(evt) {
			evt = new Event(evt).stop();
			
			showYear(this.index, true);
		});
	});
	
	// back
	if (arrLink.length > 7) {
		listYearNode.getPrevious().addEvent('click', function(evt) {
			evt = new Event(evt).stop();
			
			if (activeFxPosition > 0) {
				activeFxPosition--;
				fx.toElement(arrLink[activeFxPosition]);
			}
		});
	} else {
		listYearNode.getPrevious().setStyle('display', 'none');
	}
	
	// next
	if (arrLink.length > 7) {
		listYearNode.getNext().addEvent('click', function(evt) {
			evt = new Event(evt).stop();
			
			if (activeFxPosition < arrDetailYear.length - 7) {
				activeFxPosition++;
				fx.toElement(arrLink[activeFxPosition]);
			}
		});
	} else {
		listYearNode.getNext().setStyle('display', 'none');
	}
	
	function showYear(index) {
		if (index < 0 || index >= arrLink.length) {
			return;
		}

		arrLink[activeIndex].removeClass('active');
		arrLink[index].addClass('active');
		
		arrDetailYear[activeIndex].addClass('tabhide');
		arrDetailYear[index].removeClass('tabhide');
		
		activeIndex = index;
	}
	
	// show current year
	showYear(activeIndex);
}

//////////////
function initSmScroller() {
	
	var lsScroller = $$(".smScrollContent");
	if (lsScroller.length == 0) {
		return;
	};
		
	lsScroller.each(function(scrollElement){
		
		//alert(scrollElement.getPrevious());
		
		var barElelement = scrollElement.getNext();
		
		if (!barElelement || !barElelement.hasClass("smScroller")) {			
			return;
		};
				
		var ddLast = scrollElement.getLast();		
		if (!ddLast) {		
			barElelement.setStyle('display', 'none');			
			return;			
		}
		
		if (ddLast.getCoordinates().bottom - ddLast.getCoordinates().height < barElelement.getCoordinates().height) {
			barElelement.setStyle('display', 'none');			
			return;
		} else {
			barElelement.setStyle('display', 'block');			
			//barElelement.setStyle('margin-top', '20px');			
			barElelement.setStyle('visibility', 'visible');
			barElelement.setStyle('opacity', '1');
			
		}
					
		// init variables
		var upBtn = barElelement.getChildren()[0].getFirst();
		var scrollBar = barElelement.getChildren()[1];
		var scrollBtn = $E('a', scrollBar);
		var dnBtn = $E('a', barElelement.getChildren()[2]);
		
		// create slider
		scrollBar.scrollInterval = null;
		scrollBar.scrollContent = scrollElement;
		scrollBar.maxScroll = scrollElement.getSize().scrollSize.y - scrollElement.getSize().size.y;
		
		if (scrollBar.maxScroll <= 0) {
			barElelement.setOpacity(0);			
		}
		
		scrollBar.slideFx = new Slider(scrollBar, scrollBtn, {
			onChange: function(pos) {								
				scrollBar.scrollContent.scrollTo(0, scrollBar.maxScroll * pos/100);
				scrollBar.slideFx.curPos = pos;
			},
			mode: "vertical"
		});
		scrollBar.slideFx.curPos = 0;
		
		// wheel control	
		scrollElement.addEvents({
			"wheelup": function(e) {
				new Event(e).stop();
				//
				var el = $(this);
				el.scrollTo(0, el.getSize().scroll.y-20);
				// 
				var scrollPos = Math.floor(el.getSize().scroll.y/el.scrollBar.maxScroll*100);
				el.scrollBar.slideFx.set(scrollPos);
			},
			
			"wheeldown": function(e) {
				new Event(e).stop();
				//
				var el = $(this);
				el.scrollTo(0, el.getSize().scroll.y+20);
				// 
				var scrollPos = Math.floor(el.getSize().scroll.y/el.scrollBar.maxScroll*100);
				el.scrollBar.slideFx.set(scrollPos);
			}
		});
		
		// button control
		upBtn.addEvents({
			"mousedown": function(e) {
				new Event(e).stop();
				var el = $(this);
				clearInterval(el.scrollBar.scrollInterval);
				el.scrollBar.scrollInterval = setInterval(function () {
					fMoveSlider(el.scrollBar.slideFx, -5);
				}, 40);
			},
			"mouseup": function(e) {
				new Event(e).stop();
				var el = $(this);
				clearInterval(el.scrollBar.scrollInterval);
			},
			"click": function(e) {
				new Event(e).stop();
				var el = $(this);
				clearInterval(el.scrollBar.scrollInterval);
			},
			"mouseout": function(e) {
				new Event(e).stop();
				var el = $(this);
				clearInterval(el.scrollBar.scrollInterval);
			}
		});
		upBtn.scrollBar = scrollBar;
		//
		
		dnBtn.addEvents({
			"mousedown": function(e) {
				new Event(e).stop();
				var el = $(this);
				clearInterval(el.scrollBar.scrollInterval);
				el.scrollBar.scrollInterval = setInterval(function () {
					fMoveSlider(el.scrollBar.slideFx, 5);
				}, 40);
			},
			"mouseup": function(e) {
				new Event(e).stop();
				var el = $(this);
				clearInterval(el.scrollBar.scrollInterval);
			},
			"click": function(e) {
				new Event(e).stop();
				var el = $(this);
				clearInterval(el.scrollBar.scrollInterval);
			},
			"mouseout": function(e) {
				new Event(e).stop();
				var el = $(this);
				clearInterval(el.scrollBar.scrollInterval);
			}
		});
		dnBtn.scrollBar = scrollBar;
		
		// init scroll content		
		scrollElement.scrollTo(0, 0);
		scrollElement.scrollBar = scrollBar;
	});
	//
	
	function fMoveSlider(slider, dPos){
		if ((slider.curPos == 0) && (dPos<0)) {
			return;
		};
		if ((slider.curPos == 100) && (dPos>0)) {
			return;
		};
		slider.set(slider.curPos+dPos);
	};
}
//////////////
function fShowLayer(oSourceLayer, linkObject){
//	var detailNode = $('showDetail');
	var detailNode = document.getElementById('showDetail');
	detailNode.innerHTML = '';	
	detailNode.innerHTML = $(oSourceLayer).innerHTML;
}

//////////////
function opaceIt(thisObj, opaceTo) {
	if (!thisObj) return;
	if (opaceTo != 0) {
		thisObj.setStyles({
			display:'block'
		}).setOpacity(0);
	}
	var myEffects = new Fx.Style(thisObj, "opacity", {
		duration:400, 
		transition:Fx.Transitions.quadInOut
	});
	myEffects.start(opaceTo);
}


function fPrintLayer(){
	$("avaiPositions").addClass("printCareerPos");
	window.print();
}

/**
This function use in local and internationl page. 
*/	
function showAll(content, title, local) {
	
	var h4 = new Element("h4");
	h4.innerHTML = title;
	
	var systemInfo = $$('div.systemInfo')[0];
	if ($E('h4', systemInfo)) {
		$E('h4', systemInfo).remove();
	}	
	
	if (local) {		
		
		var smScrollContent = new Element('div');			
		smScrollContent.innerHTML = content;		
		
		var dl = smScrollContent.getFirst();
		dl.addClass('smScrollContent');	
	
		var systemInfo = $$('div.systemInfo')[0];
		if ($E('dl', systemInfo)) {
			$E('dl', systemInfo).remove();
		}			
		dl.injectBefore($$('div.smScroller')[0]);				
		h4.injectBefore(dl);
		initSmScroller();				
		
	} else {
				
		var smScrollContent = new Element('div');			
		smScrollContent.innerHTML = content;		
		
		var ul = smScrollContent.getFirst();
		ul.addClass('smScrollContent');	
	
		var systemInfo = $$('div.systemInfo')[0];
		if ($E('ul', systemInfo)) {
			$E('ul', systemInfo).remove();
		}	
		ul.injectBefore($$('div.smScroller')[0]);			
		h4.injectBefore(ul);
		initSmScroller();	
	}		
}

//PhoTo Gallery
function activePhotoGallery() {	
	var photogalleryActive = $$('div.photoDetailActive')[0];
	if(!photogalleryActive)	return;
	var arrImg = new Array();
	var arrA = new Array();
	var arrGalleryLinks = $$('div.photogallery dl.smScrollContent')[0].getElements('a');			
		arrGalleryLinks.each(function(item, i){				
		if(item.firstChild.tagName== 'IMG'){			
			arrImg.push(item);
			
		} else {			
			arrA.push(item);			
		}	
		
	});
	
	//show FirstDetails
	photogalleryActive.innerHTML = $('id1').innerHTML;	
	arrA[0].addClass('active');
	
	arrImg.each(function(img,index){
		img.addEvent('click', function(e){
			new Event(e).stop();
			photogalleryActive.innerHTML = $('id' + (index + 1)).innerHTML;
			arrA.each(function(a){
				a.removeClass('active');
			});
			arrA[index].addClass('active');
			
		});
	});
	arrA.each(function(a, index){
		a.addEvent('click', function(e){						
			new Event(e).stop();
			
			photogalleryActive.innerHTML = $('id' + (index + 1)).innerHTML;
			arrA.each(function(a){
				a.removeClass('active');
			});
			this.addClass('active');
			
		});
	});
	
}
function faqAccordion() {
	if ($$('h4.toggler').length == 0 || $$('div.element').length == 0) {
		return;
	}
	
	new Accordion('h4.toggler', 'div.element', {
		opacity: false,
		onActive: function(toggler, element){
			toggler.addClass("active");			
		},		
		onBackground: function(toggler, element){
			toggler.removeClass("active");
		}
	}, $('accordion'));
};

//////////////
window.addEvent("domready", function(){
	activePhotoGallery();		
	
	createToggleMenu();
	//fInitSubmenu();
	initListLogo();
	initListYear();
	initSmScroller();
	//active Gallery
	faqAccordion();		
});

