/**
* @desc: 24h javascript
*
* @author: hoangnv@24h.com.vn @date: 2010/09/21 @desc: Co che banner moi
* @author: hoangnv@24h.com.vn @date: 2010/10/21 @desc: Bo sung co che troi ngu canh
* @author: hoangnv@24h.com.vn @date: 2010/10/07 @desc: Bo sung chuc nang dong banner
* @author: hoangnv@24h.com.vn @date: 2010/12/29 @desc: Bo sung banner richmedia vi tri luan phien
* @author: hoangnv@24h.com.vn @date: 2011/01/07 @desc: Sua loi vi tri top banner trang trong neu dang qua 3 banner
* @author: hoangnv@24h.com.vn @date: 2011/03/08 @desc: Them banner dang script
*/

var richZIndex = 10000;
var pageCookie = Math.floor(Math.random()*3);
if (c = getCookie('pageCookie')) {
	pageCookie = parseInt(c);
}
pageCookie = pageCookie%1000;
setCookie('pageCookie', ++pageCookie, 24, '/', '', '');

function getElement( elementID) {
	return document.getElementById(elementID);
}

function isIE() {
	if (navigator.appName=='Microsoft Internet Explorer') {
		return true;
	}
	return false;
}

function isIE6() {
	if (!window.XMLHttpRequest) {
		return true;
	}
	return false;
}

function f_filterResults( n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}

function scrollwindow( speed, callFunc){
	var pre = f_scrollLeft();
	window.scrollBy(speed,0);
	var current = f_scrollLeft();
	if (pre==current) {
		clearTimeout(doExpand);
		if (callFunc!='' && callFunc!=undefined) {
			eval(callFunc);
		}
	}
	else {
		doExpand = setTimeout('scrollwindow('+speed+', "'+callFunc+'")', 20);
	}
}

function smoothResize( elementID, v_width, v_height) {
	var speed = 6;
	var obj = getElement(elementID);
	var dx = (obj.offsetWidth<v_width) ? 1 : -1; dx = dx * speed;
	var dy = (obj.offsetHeight<v_height) ? 1 : -1; dy = dy * speed;
	if ( obj.offsetWidth!=v_width) {
		obj.style.width = obj.offsetWidth + dx + 'px';
		if ( (dx>0 && obj.offsetWidth>v_width) || (dx<0 && obj.offsetWidth<v_width)) {
			obj.style.width = v_width + 'px';
		}
	}
	if ( obj.offsetWidth!=v_height) {
		obj.style.height = obj.offsetHeight + dy + 'px';
		if ( (dy>0 && obj.offsetHeight>v_height) || (dy<0 && obj.offsetHeight<v_height)) {
			obj.style.height = v_height + 'px';
		}
	}
	
	if ( obj.offsetWidth!=v_width || obj.offsetHeight!=v_height) {
		setTimeout('smoothResize("'+elementID+'", '+v_width+', '+v_height+')', 20);
	}
}

function resize( elementID, v_width, v_height) {
	var obj = getElement(elementID);
	obj.style.left = '0px';
	obj.style.top = '0px';
	obj.style.width = v_width+'px';
	obj.style.height = v_height+'px';
}

function getPageSize(){	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

function openPopBanner( elementID, path, bannerName, v_width, v_height, v_type) {
	eval(elementID.substring(0, elementID.lastIndexOf("_"))+".stopShow=true;");
	var c_width = f_clientWidth();
	var c_height = f_clientHeight();
	if ( !getElement(elementID+'_sub')) {
		var objBody = document.getElementsByTagName("body").item(0);
		var objOverlay = document.createElement("div");
		objOverlay.setAttribute('id', elementID+'_sub');
		objOverlay.style.position = 'absolute';
		objOverlay.style.zIndex = '1000';
		objOverlay.style.top = '0%';
		objOverlay.style.left = '0%';
		objOverlay.style.width = '100%';
		objBody.insertBefore(objOverlay, objBody.firstChild);
	}
	getElement(elementID+'_sub').style.display = 'block';
	getElement(elementID+'_sub').style.zIndex = richZIndex++;

	
	switch ( v_type) {
		case 'lightbox':
			if ( isIE6()) {
				var arrayPageSize = getPageSize();
				var elementStyle = 'position:absolute;top:0%;left:0%;width:100%;height:'+arrayPageSize[1]+'px;';
				var elementSubStyle = 'position:absolute;z-index:1002;overflow:auto;top:'+(f_scrollTop()+(c_height-v_height)/2)+'px;left:'+(c_width-v_width)/2+'px;width:'+v_width+'px;height:'+v_height+'px;';
			}
			else {
				var elementStyle = 'position:fixed;top:0%;left:0%;width:100%;height:100%;';
				var elementSubStyle = 'position:fixed;z-index:1002;overflow:auto;top:'+(c_height-v_height)/2+'px;left:'+(c_width-v_width)/2+'px;width:'+v_width+'px;height:'+v_height+'px;';
			}
			getElement(elementID+'_sub').innerHTML = '<div style="'+elementStyle+'background-color:black;z-index:1001;-moz-opacity:0.8;opacity:.80;filter:alpha(opacity=80);" onclick="closePopBanner(\''+elementID+'_sub\')"></div>';
			getElement(elementID+'_sub').innerHTML += '<div style="'+elementSubStyle+'"><embed type="application/x-shockwave-flash" src="'+path+bannerName+'" quality="high" allowscriptaccess="always" wmode="transparent" width="100%" height="100%" flashvars="divID='+elementID+'_sub" /></div>';
			break;
		case 'takeover':
		default:
			getElement(elementID+'_sub').innerHTML = '<div style="position:absolute;top:0%;left:'+(c_width-v_width)/2+'px;width:'+v_width+'px;height:'+v_height+'px;"><embed type="application/x-shockwave-flash" src="'+path+bannerName+'" quality="high" allowscriptaccess="always" wmode="transparent" width="100%" height="100%" flashvars="divID='+elementID+'_sub" /></div>';
			break;
	}
}

function closePopBanner( elementID) {
	getElement(elementID).innerHTML = '';
	getElement(elementID).style.display = 'none';
}

function closeBanner( elementID) {
	var strObj = elementID.substring(0, elementID.lastIndexOf("_"));
	document.getElementById(eval(strObj).aNodes[elementID.substring(elementID.lastIndexOf("_")+1)].name).style.display = "none";
	eval(strObj).aNodes.splice(elementID.substring(elementID.lastIndexOf("_")+1), 1);
	eval(strObj).changeBanner();
	setCookie(elementID, elementID, 24, '/', '', '');
}

function expand( elementID, v_width1, v_height1, v_width2, v_height2, v_direction, v_type) {
	eval(elementID.substring(0, elementID.lastIndexOf("_"))+".stopShow=true;");
	getElement(elementID).style.zIndex = richZIndex++;
	var objSub = getElement(elementID+'_sub');
	var objChild = getElement(elementID+'_child');
	switch ( v_type) {
		case 'sitekick':
			objSub.style.width = v_width2+'px';
			objSub.style.height = v_height2+'px';
			scrollwindow(10); // speed = 10
			break;
		case 'breakpage':
			smoothResize(elementID, v_width2, v_height2);
			smoothResize(elementID+'_sub', v_width2, v_height2);
			break;
		default:
			objSub.style.width = v_width2+'px';
			objSub.style.height = v_height2+'px';
			objChild.style.top = '0px';
			objChild.style.left = '0px';
			switch ( v_direction) {
				case 'phai_xuong':
					break;
				case 'phai_len':
					objSub.style.top = (v_height1-v_height2)+'px';
					break;
				case 'trai_xuong':
					objSub.style.left = (v_width1-v_width2)+'px';
					break;
				case 'trai_len':
					objSub.style.left = (v_width1-v_width2)+'px';
					objSub.style.top = (v_height1-v_height2)+'px';
					break;
				case 'len_xuong':
					objSub.style.top = (v_height1-v_height2)/2+'px';
					break;
			}
	}
}

function collapse( elementID, v_width1, v_height1, v_width2, v_height2, v_direction, v_type) {
	switch ( v_type) {
		case 'breakpage':
			smoothResize(elementID+'_sub', v_width1, v_height1);
			smoothResize(elementID, v_width1, v_height1);
			break;
		case 'sitekick':
			scrollwindow(-10, "resize('"+elementID+"_sub',"+v_width1+","+v_height1+")");
			break;
		default:
			resize( elementID+'_sub', v_width1, v_height1);
			objChild = getElement(elementID+'_child');
			switch ( v_direction) {
				case 'phai_len':
					objChild.style.top = (v_height1-v_height2) + 'px';
					break;
				case 'trai_len':
					objChild.style.left = (v_width1-v_width2) + 'px';
					objChild.style.top = (v_height1-v_height2) + 'px';
					break;
				case 'trai_xuong':
					objChild.style.left = (v_width1-v_width2) + 'px';
					break;
				case 'len_xuong':
					objChild.style.top = (v_height1-v_height2) / 2 + 'px';
					break;
			}
	}
}

function fw24h_getFlash( object) {
	var str = '<object id="swf_'+object.name+'" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" border="0" height="'+object.height+'" width="'+object.width+'"><param name="movie" value="'+object.bannerPath+'"><param name="AllowScriptAccess" value="always"><param name="quality" value="High"><param name="wmode" value="transparent"><embed src="'+object.bannerPath+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" allowscriptaccess="always" height="'+object.height+'" width="'+object.width+'"></object>';
	return str;
}

function fw24h_getFloatFlash( object, flash_vars) {
	var str = '<object id="swf_'+object.name+'" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" border="0" height="100%" width="100%"><param name="movie" value="'+object.bannerPath+object.name1+'"><param name="AllowScriptAccess" value="always"><param name="quality" value="High"><param name="wmode" value="transparent"><param name="flashVars" value="'+flash_vars+'"><embed src="'+object.bannerPath+object.name1+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" allowscriptaccess="always" height="100%" width="100%" flashVars="'+flash_vars+'"></object>';
	return str;
}

// BANNER OBJECT
function Banner(objName){
        this.obj = objName;
        this.aNodes = [];
        this.bNodes = [];
        this.currentBanner = 0;//Math.floor(Math.random()*3);
		this.intLoopCount = 1;
		this.intBannerFix = -1;
		this.intBannerLong = 0;
		this.stopShow = false;
};

// ADD NEW BANNER
Banner.prototype.add = function(bannerType, bannerPath, bannerDuration, height, width, hyperlink, desc, popup) {
        this.aNodes[this.aNodes.length] = new Node(this.obj +"_"+ this.aNodes.length, bannerType, bannerPath, bannerDuration, height, width, hyperlink, '', popup);
};
// Add2
Banner.prototype.add2 = function(bannerType, bannerPath, bannerDuration, height, width, hyperlink, position, popup) {
        this.bNodes[this.bNodes.length] = new Node(this.obj +"_"+ this.bNodes.length, bannerType, bannerPath, bannerDuration, height, width, hyperlink, position, popup);
};
// Add3 - float media
Banner.prototype.add3 = function(bannerType, bannerPath, bannerDuration, height, width, height2, width2, type, name1, name2) {
        this.aNodes[this.aNodes.length] = new NodeRich(this.obj +"_"+ this.aNodes.length, bannerType, bannerPath, bannerDuration, height, width, height2, width2, type, name1, name2);
};

// Node object
function Node(name, bannerType, bannerPath, bannerDuration, height, width, hyperlink, position, popup) {
        this.name = name;
        this.bannerType = bannerType;
        this.bannerPath = bannerPath;
        this.bannerDuration = bannerDuration;
        this.height = height
        this.width = width;
        this.hyperlink= hyperlink;
        this.position= position;
        this.popup= popup;
};

function Node2(name, bannerType, bannerPath, bannerDuration, height, width, hyperlink, position) {
        this.name = name;
        this.bannerType = bannerType;
        this.bannerPath = bannerPath;
        this.bannerDuration = bannerDuration;
        this.height = height
        this.width = width;
        this.hyperlink= hyperlink;
        this.position= position;
};

function NodeRich(name, bannerType, bannerPath, bannerDuration, height, width, height2, width2, type, name1, name2, desc) {
        this.name = name;
        this.bannerType = bannerType;
        this.bannerPath = bannerPath;
        this.bannerDuration = bannerDuration;
        this.height = height
        this.width = width;
		this.height2= height2;
        this.width2= width2;
        this.type= type;
        this.name1= name1;
        this.name2= name2;
		this.desc= desc;
};

function genBanner( bannerArr, bannerClass) {
	bannerClass = (bannerClass==undefined) ? 'm_banner_hide' : bannerClass;
	var str = ""
	bannerArr.richbanner = (bannerArr.width2>0 && bannerArr.height2>0) ? true : false;
	if (bannerArr.richbanner) {
		if ( bannerArr.type=='lightbox' || bannerArr.type=='takeover') {
			str += '<div id="'+bannerArr.name+'" style="width:'+bannerArr.width+'px; height:'+bannerArr.height+'px;" class="'+bannerClass+'">';
			str += 	fw24h_getFloatFlash( bannerArr, 'divID='+bannerArr.name+'&path='+bannerArr.bannerPath+'&bannerName='+bannerArr.name2+'&bannerWidth='+bannerArr.width2+'&bannerHeight='+bannerArr.height2+'&typeOpen='+bannerArr.type);
			str += '</div>';
		}
		else {
			switch (bannerArr.type) {
				case 'phai_xuong':
					childStyle = 'left:0px;';
					break;
				case 'phai_len':
					childStyle = 'left:0px;top:'+(bannerArr.height-bannerArr.height2)+'px;';
					break;
				case 'trai_xuong':
					childStyle = 'left:'+(bannerArr.width-bannerArr.width2)+'px;';
					break;
				case 'trai_len':
					childStyle = 'top:'+(bannerArr.height-bannerArr.height2)+'px;';
					childStyle += 'left:'+(bannerArr.width-bannerArr.width2)+'px;';
					break;
				case 'len_xuong':
					childStyle = 'left:0px;top:'+(bannerArr.height-bannerArr.height2)/2+'px;';
					break;
				default:
					childStyle = 'left:0px;';
			}
			str += '<div id="'+bannerArr.name+'" class="'+bannerClass+'"';
			str += 'style="position:relative;left:0px;width:'+bannerArr.width+'px;height:'+bannerArr.height+'px;">';
			str += '	<div id="'+bannerArr.name+'_sub" style="position:absolute;overflow:hidden;left:0px;width:';
			str += 		bannerArr.width+'px;height:'+bannerArr.height+'px;">';
			str += '		<div id="'+bannerArr.name+'_child" style="position:absolute;';
			str += '		width:'+bannerArr.width2+'px;height:'+bannerArr.height2+'px;'+childStyle+'">';
			str += 				fw24h_getFloatFlash( bannerArr, 'divID='+bannerArr.name+'&path='+bannerArr.bannerPath+'&filename1='+bannerArr.name1+'&filename2='+bannerArr.name2+'&width1='+bannerArr.width+'&height1='+bannerArr.height+'&width2='+bannerArr.width2+'&height2='+bannerArr.height2+'&directionOpen='+bannerArr.type+'&typeOpen='+bannerArr.type);
			str += '		</div>';
			str += '	</div>';
			str += '</div>';
		}
	}
	else {
		bannerStr = new Array();
		bannerArr.aBanner = bannerArr.bannerPath.split('|');
		bWidth = (bannerArr.width>bannerArr.height && bannerArr.aBanner.length>1) ? bannerArr.width*2+5 : bannerArr.width;
		for ( i=0; i<bannerArr.aBanner.length; i++) {
			if ( i==0) {
				bannerArr.bannerPath = bannerArr.aBanner[0];
			}
			else {
				//bannerStr[i] += '&nbsp;';//khoang cach giua 2 banner
				bParams = bannerArr.aBanner[i].split('::');
				bannerArr.bannerType = bParams[0];
				bannerArr.bannerPath = bParams[1];
				bannerArr.height = bParams[2];
				bannerArr.width = bParams[3];
				bannerArr.hyperlink = bParams[4];
				bannerArr.popup = bParams[5];
			}
			bannerStr[i] = '';
			if (bannerArr.hyperlink != "" && bannerArr.bannerType == "IMAGE"){
				bannerStr[i] += '<a href="'+bannerArr.hyperlink+'" '+((bannerArr.popup)?'target="_blank"':'')+'>';
			}
				   
			if ( bannerArr.bannerType == "SCRIPT" ){
				bannerStr[i] += bannerArr.bannerPath;
			}
			else if ( bannerArr.bannerType == "FLASH" ){
				bannerStr[i] += fw24h_getFlash( bannerArr);
			}else if ( bannerArr.bannerType == "IMAGE" ){
				bannerStr[i] += '<img src="'+bannerArr.bannerPath+'" ';
				bannerStr[i] += 'border="0" ';
				bannerStr[i] += 'alt="" ';
				bannerStr[i] += 'height="'+bannerArr.height+'" ';
				bannerStr[i] += 'width="'+bannerArr.width+'">';
			}

			if( bannerArr.bannerType == "TEXT") {
				bannerStr[i] += '<iframe width="'+bannerArr.width+'" height="'+bannerArr.height+'" src="'+bannerArr.bannerPath+'" marginwidth="0" marginheight="0" scrolling="no" frameborder="0"></iframe>'
			}

			if (bannerArr.hyperlink != "" && bannerArr.bannerType == "IMAGE"){
				bannerStr[i] += '</a>';
			}
		}
		str += '<span name="'+bannerArr.name+'" '
		str += 'id="'+bannerArr.name+'" ';
		str += 'class="'+bannerClass+'" ';
		str += 'bgcolor="#FFFCDA" ';        // CHANGE BANNER COLOR HERE
		str += 'align="center" ';
		str += 'valign="top" ';
		str += 'style="width:'+bWidth+'px" >\n';

		bannerStr = bannerStr.sort( function(){ return Math.random()-0.5; });
		str += bannerStr.join( '<img src="/images/blank.gif" width="5" height="5" alt="" />');
		str += '</span>';

	}
	return str;
}

// Outputs the banner to the page
Banner.prototype.toString = function() {
		// this.currentBanner = Math.floor(Math.random()*this.aNodes.length); // lay ngau nhien 1 banner
		this.currentBanner = pageCookie%this.aNodes.length;
        var str = ""
        for (var iCtr=0; iCtr < this.aNodes.length; iCtr++){
			if (getCookie(this.aNodes[iCtr].name)) {
				this.aNodes.splice(iCtr, 1);
				continue;
			}
			if (this.currentBanner!=iCtr) {
				continue;
			}
			else {
				str += genBanner( this.aNodes[iCtr], 'm_banner_show');
			}
        }
		document.write( str);
		str = '';
        return str;
};

// START THE BANNER ROTATION
Banner.prototype.start = function(){
	return true;
	if (this.aNodes.length==0)
	{
		return true;
	}
	if( this.stopShow) {
		return true;
	}
	this.changeBanner();
	var thisBannerObj = this.obj;
	// CURRENT BANNER IS ALREADY INCREMENTED IN cahngeBanner() FUNCTION
	setTimeout(thisBannerObj+".start()", this.aNodes[this.currentBanner].bannerDuration * 1000);
}

// CHANGE BANNER
Banner.prototype.changeBanner = function(){
		//
    try {
		
		// if( this.intLoopCount > (this.aNodes.length*3 + 1)) {
			// this.intBannerLong++;
			// if( this.intBannerLong%3 != 0) {
				// return false;
			// }
		// }
		
		var thisBanner;
		var prevBanner = -1;
		if (this.currentBanner>this.aNodes.length-1)
		{
			this.currentBanner=0;
		}
		if (this.currentBanner < this.aNodes.length ){
			thisBanner = this.currentBanner;
			if (this.aNodes.length > 1){
				if ( thisBanner > 0 ){
					prevBanner = thisBanner - 1;
				}else{
					prevBanner = this.aNodes.length-1;
				}
			}
			if (this.currentBanner < this.aNodes.length - 1){
				this.currentBanner = this.currentBanner + 1;
			}else{
				this.currentBanner = 0;
			}
		}
		

		if (prevBanner >= 0){
			if (navigator.appName.indexOf ("Microsoft") !=-1 && !this.aNodes[prevBanner].richbanner && this.aNodes[prevBanner].aBanner.length==1 && this.aNodes.length>1) stopmovie('swf_'+this.aNodes[prevBanner].name);
			document.getElementById(this.aNodes[prevBanner].name).className = "m_banner_hide";
		}
		if (navigator.appName.indexOf ("Microsoft") !=-1 && !this.aNodes[thisBanner].richbanner && this.aNodes[thisBanner].aBanner.length==1 && this.aNodes.length>1) goAndPlay('swf_'+this.aNodes[thisBanner].name, 1);
		document.getElementById(this.aNodes[thisBanner].name).className = "m_banner_show";
		this.intLoopCount++;
		
	} catch(e) {}
}

function thisMovie(movieName) {
  // IE and Netscape refer to the movie object differently.
  // This function returns the appropriate syntax depending on the browser.
  if (navigator.appName.indexOf ("Microsoft") !=-1) {
    return window[movieName]
  }	else {
    return document[movieName]
  }
}

// Checks if movie is completely loaded.
// Returns true if yes, false if no.
function movieIsLoaded (theMovie) {
  if (typeof(theMovie) != "undefined") {
    return theMovie.PercentLoaded() == 100;
  } else {
    return false;
  }
}

function playmovie(movieName) {
  if (movieIsLoaded(thisMovie(movieName))) {
    thisMovie(movieName).Play();
  }
}

function stopmovie(movieName) {
  if (movieIsLoaded(thisMovie(movieName))) {
    thisMovie(movieName).StopPlay();
  }
}

function goAndPlay(movieName, theFrame) {
  if (movieIsLoaded(thisMovie(movieName))) {
    thisMovie(movieName).GotoFrame(theFrame);
    thisMovie(movieName).Play();
  }
}


// d_Banner2
// Written by ThaoDX
function d_Banner2(objName){
        this.obj = objName;
        this.aNodes = [];
        this.bNodes = [];
        this.currentBanner = 0;
       
};
// ADD NEW BANNER
d_Banner2.prototype.add = function(bannerType, bannerPath, height, width, hyperlink, position, popup) {
		var bannerDuration = 0;
        this.aNodes[this.aNodes.length] = new Node(this.obj +"_"+ this.aNodes.length, bannerType, bannerPath, bannerDuration, height, width, hyperlink, position, popup);
};
// add2
d_Banner2.prototype.add2 = function(bannerType, bannerPath, height, width, hyperlink, position, popup) {
		var bannerDuration = 0;
        this.bNodes[this.bNodes.length] = new Node2(this.obj +"_"+ this.bNodes.length, bannerType, bannerPath, bannerDuration, height, width, hyperlink, position, popup);
};
// Richmedia
d_Banner2.prototype.add3 = function(bannerType, bannerPath, bannerDuration, height, width, height2, width2, type, name1, name2, desc) {
		var bannerDuration = 0;
        this.aNodes[this.aNodes.length] = new NodeRich(this.obj +"_"+ this.aNodes.length, bannerType, bannerPath, bannerDuration, height, width, height2, width2, type, name1, name2, desc);
};
// Richmedia co dinh xen ke luan phien
d_Banner2.prototype.add4 = function(bannerType, bannerPath, bannerDuration, height, width, height2, width2, type, name1, name2, desc) {
		var bannerDuration = 0;
        this.aNodes[this.bNodes.length] = new NodeRich(this.obj +"_"+ this.aNodes.length, bannerType, bannerPath, bannerDuration, height, width, height2, width2, type, name1, name2, desc);
};
// Outputs the banner to the page
d_Banner2.prototype.toString = function() {
        var str = "";
		var BannerPostion = Math.floor(Math.random()*12321) % this.aNodes.length;
		var i = 1;
		for (var iCtr=BannerPostion; iCtr < this.aNodes.length; iCtr++){
                // iB for loop
				//str += "I: " + i + "<HR>";
				for(var iB=0; iB < this.bNodes.length; iB++){
					if(i == this.bNodes[iB].position){
						str += genBanner( this.bNodes[iB], 'd_banner2_show');
						i++; continue;
					}
				}
				// End iB for loop
				str += genBanner( this.aNodes[iCtr], 'd_banner2_show');
				i++;
        }
		//BannerPostion = 0;
		//return str;
		//str += "<HR>a " + BannerPostion + "  a <HR>";;
		for (var iCtr=0; iCtr < BannerPostion; iCtr++){
                // iB for loop
				for(var iB=0; iB < this.bNodes.length; iB++){
					if(i == this.bNodes[iB].position){
						str += genBanner( this.bNodes[iB], 'd_banner2_show');
						i++; continue;
					}
					else{
						//str = str + 'i: e '+i;	
					}
				}
				// End iB for loop
                str += genBanner( this.aNodes[iCtr], 'd_banner2_show');
				i++;
        }
		for(x = 0; x < this.bNodes.length; x++) {
			
			if(this.bNodes[x].position >= i) {
				str += genBanner( this.bNodes[x], 'd_banner2_show');
			}
		}
		document.write( str);
        str = '';
        return str;
};

// d_Banner
// d_Banner
// Written by Dungpt
function d_Banner(objName){
        this.obj = objName;
        this.aNodes = [];
        this.currentBanner = 0;
       
};
// ADD NEW BANNER
d_Banner.prototype.add = function(bannerType, bannerPath, height, width, hyperlink, popup) {
		var bannerDuration = 0;
        this.aNodes[this.aNodes.length] = new Node(this.obj +"_"+ this.aNodes.length, bannerType, bannerPath, bannerDuration, height, width, hyperlink, popup);
};
// Outputs the banner to the page
d_Banner.prototype.toString = function() {
        var str = "";
		var BannerPostion = Math.floor(Math.random()*12321) % this.aNodes.length;
        for (var iCtr=BannerPostion; iCtr < this.aNodes.length; iCtr++){
                str += genBanner( this.aNodes[iCtr], 'd_banner_show');
        }
		for (var iCtr=0; iCtr < BannerPostion; iCtr++){
                str += genBanner( this.aNodes[iCtr], 'd_banner_show');
        }
		document.write( str);
        str = '';
        return str;
};
// Written by Dungpt
function dFloat_Banner(objName){
        this.obj = objName;
        this.aNodes = [];
        this.currentBanner = 0;
       
};
// ADD NEW BANNER
dFloat_Banner.prototype.add = function(bannerType, bannerPath, height, width, hyperlink, popup) {
		var bannerDuration = 0;
        this.aNodes[this.aNodes.length] = new Node(this.obj +"_"+ this.aNodes.length, bannerType, bannerPath, bannerDuration, height, width, hyperlink, popup);
};
// Outputs the banner to the page
dFloat_Banner.prototype.toString = function() {
        var str = "";
		var BannerPostion = Math.floor(Math.random()*12321) % this.aNodes.length;
        for (var iCtr=BannerPostion; iCtr < this.aNodes.length; iCtr++){
                str += genBanner( this.aNodes[iCtr], 'd_Banner2_show');
        }
		for (var iCtr=0; iCtr < BannerPostion; iCtr++){
                str += genBanner( this.aNodes[iCtr], 'd_Banner2_show');
        }
        return str;
};

function flashWrite(url,w,h,id,bg,vars){

     var flashStr=
    "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' width='"+w+"' height='"+h+"' id='"+id+"' align='middle'>"+
    "<param name='allowScriptAccess' value='always' />"+
    "<param name='movie' value='"+url+"' />"+
    "<param name='FlashVars' value='"+vars+"' />"+
    "<param name='wmode' value='transparent' />"+
    "<param name='menu' value='false' />"+
    "<param name='quality' value='high' />"+
    "<embed src='"+url+"' FlashVars='"+vars+"' wmode='transparent' menu='false' quality='high' width='"+w+"' height='"+h+"' allowScriptAccess='always' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />"+
    "</object>";
    document.write(flashStr);
}



// dungpt functions
function CreateBookmarkLink() {

	title = "24H.COM.VN - Th&#244;ng tin gi&#7843;i tr&#237; Vi&#7879;t Nam"; 
	url = "http://www.24h.com.vn";

	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title);
	} else if(window.opera && window.print) { // Opera Hotlist
		return true; 
	}
}

function MM_openBrWindow( theURL, winName, features) { //v2.0
	window.open(theURL,winName,features);
}

function j_substr( str, len) {
	str = String( str);
	if( str.length <= len) {
		document.write( str);
		return true;
	}
	var str2 = str.substring( 0, str.substring(0, len).lastIndexOf(" "));
	document.write( str2 + '...');
}

function GetXmlHttpObject(){
	var objXMLHttp = null;
	if( window.XMLHttpRequest){
		objXMLHttp = new XMLHttpRequest();
	}else if( window.ActiveXObject){
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return objXMLHttp;
}

function AjaxAction( where, url){
	var xmlHttp = new GetXmlHttpObject()
	if(xmlHttp==null){
		return;
	}
	var bar = '<img src="/images/loading.gif" align="absmiddle" alt="" /> &#272;ang t&#7843;i d&#7919; li&#7879;u';
	document.getElementById( where).innerHTML = bar
	xmlHttp.onreadystatechange= function(){
		if(xmlHttp.readyState==4 || xmlHttp.readyState == 200){
			document.getElementById( where).innerHTML = xmlHttp.responseText
		}
	}
	// Set header so the called script knows that it's an XMLHttpRequest
	//xmlHttp.setRequestHeader("X-Requested-With", "XMLHttpRequest");
	xmlHttp.open( "GET", url, true);
	xmlHttp.send(null);
}


function Banner2(objName){
        this.obj = objName;
        this.aNodes = [];
        this.currentBanner = 0;//Math.floor(Math.random()*3);
		this.intLoopCount = 0;
		this.intBannerFix = -1;
		this.stopShow = false;
};

// ADD NEW BANNER
Banner2.prototype.add = function(bannerType, bannerPath, bannerDuration, height, width, hyperlink, desc, popup) {
		if (this.aNodes.length>=3) return;
        this.aNodes[this.aNodes.length] = new Node3(this.obj +"_"+ this.aNodes.length, bannerType, bannerPath, bannerDuration, height, width, hyperlink, desc, popup);
};
Banner2.prototype.add3 = function(bannerType, bannerPath, bannerDuration, height, width, height2, width2, type, name1, name2, desc) {
		if (this.aNodes.length>=3) return;
        this.aNodes[this.aNodes.length] = new NodeRich(this.obj +"_"+ this.aNodes.length, bannerType, bannerPath, bannerDuration, height, width, height2, width2, type, name1, name2, desc);
};

// Node object
function Node3(name, bannerType, bannerPath, bannerDuration, height, width, hyperlink, desc, popup) {
        this.name = name;
        this.bannerType = bannerType;
        this.bannerPath = bannerPath;
        this.bannerDuration = bannerDuration;
        this.height = height
        this.width = width;
        this.hyperlink= hyperlink;
        this.desc= desc;
        this.popup= popup;
//        alert (name +"|" + bannerType +"|" + bannerPath +"|" + bannerDuration +"|" + height +"|" + width + "|" + hyperlink);
};

// Outputs the banner to the page
Banner2.prototype.toString = function() {
	this.currentBanner = Math.floor(Math.random()*this.aNodes.length); // lay ngau nhien 1 banner
        var str = ""
        for (var iCtr=0; iCtr < this.aNodes.length; iCtr++){
			if (getCookie(this.aNodes[iCtr].name)) {
				this.aNodes.splice(iCtr, 1);
				continue;
			}
			str += genBanner( this.aNodes[iCtr], 'm_banner_hide');
			// document.getElementById( this.obj + "_desc_" + iCtr).innerHTML = this.aNodes[iCtr].desc;
        }
        return str;
};

// START THE BANNER ROTATION
Banner2.prototype.start = function(){
	if (this.aNodes.length==0) {
		return true;
	}
	
	if( this.stopShow) {
		return true;
	}
	this.changeBanner();
	this.stopShow = true;
	var thisBannerObj = this.obj;
	// CURRENT BANNER IS ALREADY INCREMENTED IN cahngeBanner() FUNCTION
	return setTimeout(thisBannerObj+".start()", this.aNodes[this.currentBanner].bannerDuration * 1000);
}

// CHANGE BANNER
Banner2.prototype.changeBanner = function(){
		//
    var thisBanner;
	if( this.currentBanner > this.aNodes.length-1) return true;
	var prevBanner = -1;
	if (this.currentBanner < this.aNodes.length ){
		thisBanner = this.currentBanner;
		if (this.aNodes.length > 1){
			if ( thisBanner > 0 ){
				prevBanner = thisBanner - 1;
			}else{
				prevBanner = this.aNodes.length-1;
			}
		}
		if (this.currentBanner < this.aNodes.length - 1){
			this.currentBanner = this.currentBanner + 1;
		}else{
			this.currentBanner = 0;
		}
	}
	for( ii=0; ii<this.aNodes.length; ii++) {
		if( document.getElementById(this.aNodes[ii].name)) {
			document.getElementById(this.aNodes[ii].name).className = "m_banner_hide";
			document.getElementById( this.obj + "_desc_" + ii).className = "m_banner_lost_focus";
		}
	}
	if (prevBanner >= 0){
		document.getElementById(this.aNodes[prevBanner].name).className = "m_banner_hide";
		document.getElementById( this.obj + "_desc_" + prevBanner).className = "m_banner_lost_focus";
	}
	document.getElementById(this.aNodes[thisBanner].name).className = "m_banner_show";
	document.getElementById( this.obj + "_desc_" + thisBanner).className = "m_banner_focus";
	
	//alert( this.currentBanner);
}

//////////////////////////////////////
// File Name: ddlevelsmenu.js 		//
// Using:							//
// app/views/layouts/news.php		//
//////////////////////////////////////

var ddlevelsmenu={

enableshim: true, //enable IFRAME shim to prevent drop down menus from being hidden below SELECT or FLASH elements? (tip: disable if not in use, for efficiency)

hideinterval: 200, //delay in milliseconds before entire menu disappears onmouseout.
effects: {enableswipe: true, enablefade: true, duration: 100},
httpsiframesrc: "blank.htm", //If menu is run on a secure (https) page, the IFRAME shim feature used by the script should point to an *blank* page *within* the secure area to prevent an IE security prompt. Specify full URL to that page on your server (leave as is if not applicable).

///No need to edit beyond here////////////////////

topmenuids: [], //array containing ids of all the primary menus on the page
topitems: {}, //object array containing all top menu item links
subuls: {}, //object array containing all ULs
lastactivesubul: {}, //object object containing info for last mouse out menu item's UL
topitemsindex: -1,
ulindex: -1,
hidetimers: {}, //object array timer
shimadded: false,
nonFF: !/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent), //detect non FF browsers
getoffset:function(what, offsettype){
	return (what.offsetParent)? what[offsettype]+this.getoffset(what.offsetParent, offsettype) : what[offsettype]
},

getoffsetof:function(el){
	el._offsets={left:this.getoffset(el, "offsetLeft"), top:this.getoffset(el, "offsetTop")}
},

getwindowsize:function(){
	this.docwidth=window.innerWidth? window.innerWidth-10 : this.standardbody.clientWidth-10
	this.docheight=window.innerHeight? window.innerHeight-15 : this.standardbody.clientHeight-18
},

gettopitemsdimensions:function(){
	for (var m=0; m<this.topmenuids.length; m++){
		var topmenuid=this.topmenuids[m]
		for (var i=0; i<this.topitems[topmenuid].length; i++){
			var header=this.topitems[topmenuid][i]
			var submenu=document.getElementById(header.getAttribute('rel'))
			header._dimensions={w:header.offsetWidth, h:header.offsetHeight, submenuw:submenu.offsetWidth, submenuh:submenu.offsetHeight}
		}
	}
},

isContained:function(m, e){
	var e=window.event || e
	var c=e.relatedTarget || ((e.type=="mouseover")? e.fromElement : e.toElement)
	while (c && c!=m)try {c=c.parentNode} catch(e){c=m}
	if (c==m)
		return true
	else
		return false
},

addpointer:function(target, imgclass, imginfo, BeforeorAfter){
	var pointer=document.createElement("img")
	pointer.src=imginfo[0]
	pointer.style.width=imginfo[1]+"px"
	pointer.style.height=imginfo[2]+"px"
	if(imgclass=="rightarrowpointer"){
		pointer.style.left=target.offsetWidth-imginfo[2]-2+"px"
	}
	pointer.className=imgclass
	var target_firstEl=target.childNodes[target.firstChild.nodeType!=1? 1 : 0] //see if the first child element within A is a SPAN (found in sliding doors technique)
	if (target_firstEl && target_firstEl.tagName=="SPAN"){
		target=target_firstEl //arrow should be added inside this SPAN instead if found
	}
	if (BeforeorAfter=="before")
		target.insertBefore(pointer, target.firstChild)
	else
		target.appendChild(pointer)
},

css:function(el, targetclass, action){
	var needle=new RegExp("(^|\\s+)"+targetclass+"($|\\s+)", "ig")
	if (action=="check")
		return needle.test(el.className)
	else if (action=="remove")
		el.className=el.className.replace(needle, "")
	else if (action=="add" && !needle.test(el.className))
		el.className+=" "+targetclass
},

addshimmy:function(target){
	var shim=(!window.opera)? document.createElement("iframe") : document.createElement("div") //Opera 9.24 doesnt seem to support transparent IFRAMEs
	shim.className="ddiframeshim"
	shim.setAttribute("src", location.protocol=="https:"? this.httpsiframesrc : "about:blank")
	shim.setAttribute("frameborder", "0")
	target.appendChild(shim)
	try{
		shim.style.filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)'
	}
	catch(e){}
	return shim
},

positionshim:function(header, submenu, dir, scrollX, scrollY){
	if (header._istoplevel){
		var scrollY=window.pageYOffset? window.pageYOffset : this.standardbody.scrollTop
		var topgap=header._offsets.top-scrollY
		var bottomgap=scrollY+this.docheight-header._offsets.top-header._dimensions.h
		if (topgap>0){
			this.shimmy.topshim.style.left=scrollX+"px"
			this.shimmy.topshim.style.top=scrollY+"px"
			this.shimmy.topshim.style.width="99%"
			this.shimmy.topshim.style.height=topgap+"px" //distance from top window edge to top of menu item
		}
		if (bottomgap>0){
			this.shimmy.bottomshim.style.left=scrollX+"px"
			this.shimmy.bottomshim.style.top=header._offsets.top + header._dimensions.h +"px"
			this.shimmy.bottomshim.style.width="99%"
			this.shimmy.bottomshim.style.height=bottomgap+"px" //distance from bottom of menu item to bottom window edge
		}
	}
},

hideshim:function(){
	this.shimmy.topshim.style.width=this.shimmy.bottomshim.style.width=0
	this.shimmy.topshim.style.height=this.shimmy.bottomshim.style.height=0
},


buildmenu:function(mainmenuid, header, submenu, submenupos, istoplevel, dir){
	header._master=mainmenuid //Indicate which top menu this header is associated with
	header._pos=submenupos //Indicate pos of sub menu this header is associated with
	header._istoplevel=istoplevel
	if (istoplevel){
		this.addEvent(header, function(e){
		ddlevelsmenu.hidemenu(ddlevelsmenu.subuls[this._master][parseInt(this._pos)])
		}, "click")
	}
	this.subuls[mainmenuid][submenupos]=submenu
	header._dimensions={w:header.offsetWidth, h:header.offsetHeight, submenuw:submenu.offsetWidth, submenuh:submenu.offsetHeight}
	this.getoffsetof(header)
	submenu.style.left=0
	submenu.style.top=0
	submenu.style.visibility="hidden"
	this.addEvent(header, function(e){ //mouseover event
		if (!ddlevelsmenu.isContained(this, e)){
			var submenu=ddlevelsmenu.subuls[this._master][parseInt(this._pos)]
			if (this._istoplevel){
				ddlevelsmenu.css(this, "selected", "add")
			clearTimeout(ddlevelsmenu.hidetimers[this._master][this._pos])
			}
			ddlevelsmenu.getoffsetof(header)
			var scrollX=window.pageXOffset? window.pageXOffset : ddlevelsmenu.standardbody.scrollLeft
			var scrollY=window.pageYOffset? window.pageYOffset : ddlevelsmenu.standardbody.scrollTop
			var submenurightedge=this._offsets.left + this._dimensions.submenuw + (this._istoplevel && dir=="topbar"? 0 : this._dimensions.w)
			var submenubottomedge=this._offsets.top + this._dimensions.submenuh
			//Sub menu starting left position
			var menuleft=(this._istoplevel? this._offsets.left + (dir=="sidebar"? this._dimensions.w : 0) : this._dimensions.w)
			if (submenurightedge-scrollX>ddlevelsmenu.docwidth){
				menuleft+= -this._dimensions.submenuw + (this._istoplevel && dir=="topbar" ? this._dimensions.w : -this._dimensions.w)
			}
			submenu.style.left=menuleft+"px"
			//Sub menu starting top position
			var menutop=(this._istoplevel? this._offsets.top + (dir=="sidebar"? 0 : this._dimensions.h) : this.offsetTop)
			if (submenubottomedge-scrollY>ddlevelsmenu.docheight){ //no room downwards?
				if (this._dimensions.submenuh<this._offsets.top+(dir=="sidebar"? this._dimensions.h : 0)-scrollY){ //move up?
					menutop+= - this._dimensions.submenuh + (this._istoplevel && dir=="topbar"? -this._dimensions.h : this._dimensions.h)
				}
				else{ //top of window edge
					menutop+= -(this._offsets.top-scrollY) + (this._istoplevel && dir=="topbar"? -this._dimensions.h : 0)
				}
			}
			submenu.style.top=menutop+"px"
			if (ddlevelsmenu.enableshim && (ddlevelsmenu.effects.enableswipe==false || ddlevelsmenu.nonFF)){ //apply shim immediately only if animation is turned off, or if on, in non FF2.x browsers
				ddlevelsmenu.positionshim(header, submenu, dir, scrollX, scrollY)
			}
			else{
				submenu.FFscrollInfo={x:scrollX, y:scrollY}
			}
			ddlevelsmenu.showmenu(header, submenu, dir)
		}
	}, "mouseover")
	this.addEvent(header, function(e){ //mouseout event
		var submenu=ddlevelsmenu.subuls[this._master][parseInt(this._pos)]
		if (this._istoplevel){
			if (!ddlevelsmenu.isContained(this, e) && !ddlevelsmenu.isContained(submenu, e)) //hide drop down ul if mouse moves out of menu bar item but not into drop down ul itself
				ddlevelsmenu.hidemenu(submenu)
		}
		else if (!this._istoplevel && !ddlevelsmenu.isContained(this, e)){
			ddlevelsmenu.hidemenu(submenu)
		}

	}, "mouseout")
},

setopacity:function(el, value){
	el.style.opacity=value
	if (typeof el.style.opacity!="string"){ //if it's not a string (ie: number instead), it means property not supported
		el.style.MozOpacity=value
		if (el.filters){
			el.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity="+ value*100 +")"
		}
	}
},

showmenu:function(header, submenu, dir){
	if (this.effects.enableswipe || this.effects.enablefade){
		if (this.effects.enableswipe){
			var endpoint=(header._istoplevel && dir=="topbar")? header._dimensions.submenuh : header._dimensions.submenuw
			submenu.style.width=submenu.style.height=0
			submenu.style.overflow="hidden"
		}
		if (this.effects.enablefade){
			this.setopacity(submenu, 0) //set opacity to 0 so menu appears hidden initially
		}
		submenu._curanimatedegree=0
		submenu.style.visibility="visible"
		clearInterval(submenu._animatetimer)
		submenu._starttime=new Date().getTime() //get time just before animation is run
		submenu._animatetimer=setInterval(function(){ddlevelsmenu.revealmenu(header, submenu, endpoint, dir)}, 10)
	}
	else{
		submenu.style.visibility="visible"
	}
},

revealmenu:function(header, submenu, endpoint, dir){
	var elapsed=new Date().getTime()-submenu._starttime //get time animation has run
	if (elapsed<this.effects.duration){
		if (this.effects.enableswipe){
			if (submenu._curanimatedegree==0){ //reset either width or height of sub menu to "auto" when animation begins
				submenu.style[header._istoplevel && dir=="topbar"? "width" : "height"]="auto"
			}
			submenu.style[header._istoplevel && dir=="topbar"? "height" : "width"]=(submenu._curanimatedegree*endpoint)+"px"
		}
		if (this.effects.enablefade){
			this.setopacity(submenu, submenu._curanimatedegree)
		}
	}
	else{
		clearInterval(submenu._animatetimer)
		if (this.effects.enableswipe){
			submenu.style.width="auto"
			submenu.style.height="auto"
			submenu.style.overflow="visible"
		}
		if (this.effects.enablefade){
			this.setopacity(submenu, 1)
			submenu.style.filter=""
		}
		if (this.enableshim && submenu.FFscrollInfo) //if this is FF browser (meaning shim hasn't been applied yet
			this.positionshim(header, submenu, dir, submenu.FFscrollInfo.x, submenu.FFscrollInfo.y)
	}
	submenu._curanimatedegree=(1-Math.cos((elapsed/this.effects.duration)*Math.PI)) / 2
},

hidemenu:function(submenu){
	if (typeof submenu._pos!="undefined"){ //if submenu is outermost UL drop down menu
		this.css(this.topitems[submenu._master][parseInt(submenu._pos)], "selected", "remove")
		if (this.enableshim)
			this.hideshim()
	}
	clearInterval(submenu._animatetimer)
	submenu.style.left=0
	submenu.style.top="-1000px"
	submenu.style.visibility="hidden"
},


addEvent:function(target, functionref, tasktype) {
	if (target.addEventListener)
		target.addEventListener(tasktype, functionref, false);
	else if (target.attachEvent)
		target.attachEvent('on'+tasktype, function(){return functionref.call(target, window.event)});
},

init:function(mainmenuid, dir){
	this.standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body
	this.topitemsindex=-1
	this.ulindex=-1
	this.topmenuids.push(mainmenuid)
	this.topitems[mainmenuid]=[] //declare array on object
	this.subuls[mainmenuid]=[] //declare array on object
	this.hidetimers[mainmenuid]=[] //declare hide entire menu timer
	if (this.enableshim && !this.shimadded){
		this.shimmy={}
		this.shimmy.topshim=this.addshimmy(document.body) //create top iframe shim obj
		this.shimmy.bottomshim=this.addshimmy(document.body) //create bottom iframe shim obj
		this.shimadded=true
	}
	var menubar=document.getElementById(mainmenuid)
	var alllinks=menubar.getElementsByTagName("a")
	this.getwindowsize()
	for (var i=0; i<alllinks.length; i++){
		if (alllinks[i].getAttribute('rel')){
			this.topitemsindex++
			this.ulindex++
			var menuitem=alllinks[i]
			this.topitems[mainmenuid][this.topitemsindex]=menuitem //store ref to main menu links
			var dropul=document.getElementById(menuitem.getAttribute('rel'))
			document.body.appendChild(dropul) //move main ULs to end of document
			dropul.style.zIndex=2000 //give drop down menus a high z-index
			dropul._master=mainmenuid  //Indicate which main menu this main UL is associated with
			dropul._pos=this.topitemsindex //Indicate which main menu item this main UL is associated with
			this.addEvent(dropul, function(){ddlevelsmenu.hidemenu(this)}, "click")
			var arrowclass=(dir=="sidebar")? "rightarrowpointer" : "downarrowpointer"
			this.buildmenu(mainmenuid, menuitem, dropul, this.ulindex, true, dir) //build top level menu
			dropul.onmouseover=function(){
				clearTimeout(ddlevelsmenu.hidetimers[this._master][this._pos])
			}
			this.addEvent(dropul, function(e){ //hide menu if mouse moves out of main UL element into open space
				if (!ddlevelsmenu.isContained(this, e) && !ddlevelsmenu.isContained(ddlevelsmenu.topitems[this._master][parseInt(this._pos)], e)){
					var dropul=this
					if (ddlevelsmenu.enableshim)
						ddlevelsmenu.hideshim()
					ddlevelsmenu.hidetimers[this._master][this._pos]=setTimeout(function(){
						ddlevelsmenu.hidemenu(dropul)
					}, ddlevelsmenu.hideinterval)
				}
			}, "mouseout")
			var subuls=dropul.getElementsByTagName("ul")
			for (var c=0; c<subuls.length; c++){
				this.ulindex++
				var parentli=subuls[c].parentNode
				this.buildmenu(mainmenuid, parentli, subuls[c], this.ulindex, false, dir) //build sub level menus
			}
		}
	} //end for loop
	this.addEvent(window, function(){ddlevelsmenu.getwindowsize(); ddlevelsmenu.gettopitemsdimensions()}, "resize")
},

setup:function(mainmenuid, dir){
	this.addEvent(window, function(){ddlevelsmenu.init(mainmenuid, dir)}, "load")
}

}

//////////////////////////////////////
// File Name: dhtml-menu.js 		//
// Using:							//
// app/views/layouts/default.php	//
//////////////////////////////////////

function at_display(x)
{
  var win = window.open();
  for (var i in x) win.document.write(i+' = '+x[i]+'<br>');
}

// ***** DropDown Box **********************************************************

var at_timeout = 10;

// ***** Show Aux *****

function at_show_aux(parent, child)
{
  var p = document.getElementById(parent);
  var c = document.getElementById(child);

  p.className        = "active";

  if (c.offsetWidth <= 0)
  {
    c.style.position   = "absolute";
    c.style.visibility = "visible";
    c.style.display    = "block";
  }

  var direction = undefined;
  if (p.parentNode && p.parentNode["at_position"] == "x")
    direction = p.parentNode["at_direction"];

  var top   = (c["at_position"] == "y") ?  p.offsetHeight : 0;
  var left1 = (c["at_position"] == "x") ?  p.offsetWidth  : 0;
  var left2 = (c["at_position"] == "x") ? -c.offsetWidth  : 0;
  var left3 = (c["at_position"] == "x") ?  p.offsetWidth  : 0;

  for (; p; p = p.offsetParent)
  {
    if (p.style.position != 'absolute')
    {
      left1 += p.offsetLeft;
      left2 += p.offsetLeft;
      top   += p.offsetTop;
    }
    left3 += p.offsetLeft;
  }

  if (direction)
  {
    left = (direction == 'right') ? left1 : left2;
    c['at_direction'] = direction;
  }
  else
  {
    left = (left3+c.offsetWidth < document.body.offsetWidth) ? left1 : left2;
    c['at_direction'] = (left3+c.offsetWidth < document.body.offsetWidth) ? 'right' : 'left';
  }

  c.style.position   = "absolute";
  c.style.visibility = "visible";
  c.style.display    = "block";
  c.style.top        = top +'px';
  c.style.left       = left+'px';
}

// ***** Hide Aux *****

function at_hide_aux(parent, child)
{
  document.getElementById(parent).className        = "parent";
  document.getElementById(child ).style.visibility = "hidden";
  document.getElementById(child ).style.display    = "block";
}

// ***** Show *****

function at_show(e)
{
  var p = document.getElementById(this["at_parent"]);
  var c = document.getElementById(this["at_child" ]);

  at_show_aux(p.id, c.id);

  
  clearTimeout(c["at_timeout"]);
}

// ***** Hide *****

function at_hide()
{
  var c = document.getElementById(this["at_child"]);

  c.style.visibility = "hidden";

  c["at_timeout"] = setTimeout("at_hide_aux('"+this["at_parent"]+"', '"+this["at_child" ]+"')", at_timeout);
}

// ***** Attach *****

function at_attach(parent, child, position)
{
  p = document.getElementById(parent);
  c = document.getElementById(child );

  p["at_child"]    = c.id;
  c["at_child"]    = c.id;
  p["at_parent"]   = p.id;
  c["at_parent"]   = p.id;
  c["at_position"] = position;

  p.onmouseover = at_show;
  p.onmouseout  = at_hide;
  c.onmouseover = at_show;
  c.onmouseout  = at_hide;
}

// ***** DropDown Menu *********************************************************

// ***** Build Aux *****

function dhtmlmenu_build_aux(parent, child, position)
{
  document.getElementById(parent).className = "parent";

  document.write('<div class="vert_menu" id="'+parent+'_child" style="z-index:11000">');

  var n = 0;
  for (var i in child)
  {
    if (i == '-')
    {
      document.getElementById(parent).href = child[i];
      continue;
    }

    if (typeof child[i] == "object")
    {
      document.write('<a class="parent" id="'+parent+'_'+n+'">'+i+'</a>');

      dhtmlmenu_build_aux(parent+'_'+n, child[i], "x");
    }
    else{
	//	document.write('<a id="'+parent+'_'+n+'" href="'+child[i]+'">'+i+'</a>');
		//document.write(child[i]);
		if( child[i].match('newwindow')) {
			child[i] = child[i].replace( /newwindow:/, 'javascript:');
			document.write('<a id="'+parent+'_'+n+'" href2="#" href="'+child[i]+'">'+i+'</a>');
		}else{
			document.write('<a id="'+parent+'_'+n+'" href="'+child[i]+'">'+i+'</a>');
		}
	}
    n++;
  }

  document.write('</div>');

  at_attach(parent, parent+"_child", position);
}

// ***** Build *****

function dhtmlmenu_build(menu)
{
  for (var i in menu) dhtmlmenu_build_aux(i, menu[i], "y");
}

///////////////////////////////
// INDEX TAB BOX
///////////////////////////////

function indexTabOver( tab_id, tab_group) {
	document.getElementById('tab1_' + tab_id).innerHTML = '<img src="/images/index_box_01_04.gif" width="4" height="17" alt="" />';
	document.getElementById('tab3_' + tab_id).innerHTML = '<img src="/images/index_box_01_06.gif" width="5" height="17" alt="" />';
	document.getElementById('tab4_' + tab_id).innerHTML = '<img src="/images/index_box_01_10.gif" width="4" height="10" alt="" />';
	document.getElementById('tab5_' + tab_id).innerHTML = '<img src="/images/index_box_01_11.gif" width="57" height="10" alt="">';
	document.getElementById("tab5_" + tab_id).style.background = "url(/images/index_box_01_15.gif)";
	document.getElementById("tab2_" + tab_id).style.background = "#80C141 url(/images/index_box_01_14.gif)";
	document.getElementById("tab2_" + tab_id).style.fontWeight='bold';
	document.getElementById("tab2_" + tab_id).style.color = "#ffffff";
	document.getElementById("tab2_" + tab_id).className = "home_index_tab_title_over";
	document.getElementById('tab6_' + tab_id).innerHTML = '<img src="/images/index_box_01_12.gif" width="4" height="10" alt="" />';
	document.getElementById('tabContent_' + tab_id).style.display = "block";
}


function fw24h_trackPageview( filename) {
	var url = filename + '?dd=' + (new Date).getTime();
	try {
		AjaxAction( 'fw24h_trackPageview', url);
	} catch(e) { }
}

// Popup images
function openNewImage(file, imgText) {	 	
	if (file.lang == 'no-popup') return;
	picfile = new Image();
	picfile.src =(file.src);
	width=picfile.width;
	height=picfile.height;
	
	if (imgText!='' && height>0) {
		height += 40;
	}
	else if (height==0) {
		height = screen.height;
	}

	winDef = 'status=no,resizable=yes,scrollbars=no,toolbar=no,location=no,fullscreen=no,titlebar=yes,height='.concat(height).concat(',').concat('width=').concat(width).concat(',');
	winDef = winDef.concat('top=').concat((screen.height - height)/2).concat(',');
	winDef = winDef.concat('left=').concat((screen.width - width)/2);
	newwin = open('', '_blank', winDef);

	newwin.document.writeln('<style>a:visited{color:blue;text-decoration:none}</style>');
	newwin.document.writeln('<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">');
	newwin.document.writeln('<div style="width:100%;height:100%;overflow:auto;"><a style="cursor:pointer" href="javascript:window.close()"><img src="', file.src, '" border="0" alt="" /></a>');
	if (imgText != '') {
		newwin.document.writeln('<div align="center" style="padding-top:5px;font-weight:bold;font-family:arial,Verdana,Tahoma;color:blue">', imgText , '</div></div>');
	}
	newwin.document.writeln('</body>');
	newwin.document.close();
}

function getElementsByClassName(searchClass, node, tag) {
	var classElements = new Array();
	if (node == null) {
		node = document;
	}
	if (tag == null) {
		tag = '*';
	}
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
	for (var i = 0, j = 0; i < elsLen; i++) {
		if (pattern.test(els[i].className)) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function resizeNewsImage(className, maxWidth) {
	var maxWidth = (maxWidth==null) ? 500 : maxWidth;
	for(var i=0; imgEle=getElementsByClassName(className, null, 'img')[i];i++) {
		if (imgEle.width > maxWidth) {
			imgEle.height = Math.round((imgEle.height*maxWidth)/imgEle.width);
			imgEle.width = maxWidth;
		}
	}
}

function findPos(obj){
	var posX = obj.offsetLeft;var posY = obj.offsetTop;
	while(obj.offsetParent){
		if(obj==document.getElementsByTagName('body')[0]){break}
		else{
			posX=posX+obj.offsetParent.offsetLeft;
			posY=posY+obj.offsetParent.offsetTop;
			obj=obj.offsetParent;
		}
	}
	var posArray=[posX,posY]
	return posArray;
}
function findYPos(obj){
	var posObj = findPos(obj);
	return posObj[1];
}
function doScroll(divID, fixPos, parentID) {
	var obj= document.getElementById(divID);
	var objParent= document.getElementById(parentID);
	//if (divID=="subLeft") document.getElementById('display').innerHTML =((f_scrollTop()+obj.offsetHeight)+'/'+(findYPos(objParent)+objParent.offsetHeight));
	var parentPos = findYPos(objParent);
	var floorPos = parentPos+objParent.offsetHeight;
	if ( f_scrollTop()>fixPos && fixPos+obj.offsetHeight!=floorPos) {
		if (f_scrollTop()+obj.offsetHeight >= floorPos) {
			obj.style.position = 'absolute';
			obj.style.top = (floorPos-obj.offsetHeight)+'px';
		}
		else {
			if (isIE6()) {
				obj.style.position = 'absolute';
				obj.style.top = f_scrollTop()+'px';
			}
			else {
				obj.style.position = 'fixed';
				obj.style.top = '0%';
			}
		}
	}
	else {
		if (isIE6()) {
			obj.style.display = 'block';
		}
		else {
			obj.style.top = '0%';
			obj.style.position = 'relative';
		}
	}
	//setTimeout("doScroll('"+divID+"', "+fixPos+", '"+parentID+"')", 20)
}

function doScrollSideBar(divID) {
	var obj = getElement(divID);
	if (!obj) return false;
	// obj.style.top = (f_scrollTop()+f_clientHeight()-obj.offsetHeight-30)+'px';
	scrollSideBar( divID, f_scrollTop()+f_clientHeight()-obj.offsetHeight-10);
}

function scrollSideBar( divID, newPos) {
	var obj = getElement(divID);
	clearTimeout( obj["at_timeout"]);
	if ( obj.offsetTop!=newPos) {
		offset = (newPos-obj.offsetTop<0) ? -1*Math.ceil((obj.offsetTop-newPos)/16) : Math.ceil((newPos-obj.offsetTop)/16);
		offset += obj.offsetTop;
		// obj.innerHTML = obj.offsetTop+' / '+newPos + ' / ' +offset;
		obj.style.top = offset+'px';
		obj["at_timeout"] = timeoutSideBar = setTimeout("scrollSideBar( '"+divID+"', "+newPos+")", 1);
	}
}

function setCookie(name, value, expires, path, domain, secure) {
    var today = new Date();
    today.setTime(today.getTime());

    if (expires) {
        expires = expires * 1000 * 60 * 60;
    }
    var expires_date = new Date(today.getTime() + (expires));

    document.cookie = name + "=" + escape(value) +
		((expires) ? ";expires=" + expires_date.toGMTString() : "") +
		((path) ? ";path=" + path : "") +
		((domain) ? ";domain=" + domain : "") +
		((secure) ? ";secure" : "");
}

function getCookie(name) {

    var start = document.cookie.indexOf(name + "=");
    var len = start + name.length + 1;
    if ((!start) && (name != document.cookie.substring(0, name.length))) {
        return null;
    }
    if (start == -1) return null;
    var end = document.cookie.indexOf(";", len);
    if (end == -1) end = document.cookie.length;
    return unescape(document.cookie.substring(len, end));
}

function deleteCookie(name, path, domain) {
    if (getCookie(name)) document.cookie = name + "=" +
	((path) ? ";path=" + path : "") +
	((domain) ? ";domain=" + domain : "") +
	";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function getDesTopBanner(cBanner) {
	descPos = new Array();
	switch( cBanner.currentBanner) {
		case 0:
			descPos[0] = 0;
			descPos[1] = 1;
			descPos[2] = 2;
			break;
		case 1:
			descPos[0] = 1;
			descPos[1] = 0;
			descPos[2] = 2;
			break;
		case 2:
			descPos[0] = 2;
			descPos[1] = 1;
			descPos[2] = 0;
			break;
	}
	for ( var ii=0; ii<3; ii++) {
		var descContent = (cBanner.aNodes[descPos[ii]]!=undefined) ? cBanner.aNodes[descPos[ii]].desc : '';
		document.write( '<span class="topbanner-text-active" onClick="javascript:'+cBanner.obj+'.currentBanner='+descPos[ii]+';'+cBanner.obj+'.stopShow=true; '+cBanner.obj+'.changeBanner();" id="'+cBanner.obj+'_desc_'+descPos[ii]+'">'+descContent+'</span>');
	}
}

function parseScript(_source)
{
		var source = _source;
		var scripts = new Array();
 
		// Strip out tags
		while(source.indexOf("<script") > -1 || source.indexOf("</script") > -1) {
			var s = source.indexOf("<script");
			var s_e = source.indexOf(">", s);
			var e = source.indexOf("</script", s);
			var e_e = source.indexOf(">", e);
 
			// Add to scripts array
			scripts.push(source.substring(s_e+1, e));
			// Strip from source
			source = source.substring(0, s) + source.substring(e_e+1);
		}
 
		// Loop through every script collected and eval it
		for(var i=0; i<scripts.length; i++) {
			try {
				eval(scripts[i]);
			}
			catch(ex) {
				// do what you want here when a script fails
			}
		}
		// Return the cleaned source
		return source;
}

function GetWidth()
{
        var x = 0;
        if (self.innerHeight)
        {
                x = self.innerWidth;
        }
        else if (document.documentElement && document.documentElement.clientHeight)
        {
                x = document.documentElement.clientWidth;
        }
        else if (document.body)
        {
                x = document.body.clientWidth;
        }
        return x;
}
 
function GetHeight()
{
        var y = 0;
        if (self.innerHeight)
        {
                y = self.innerHeight;
        }
        else if (document.documentElement && document.documentElement.clientHeight)
        {
                y = document.documentElement.clientHeight;
        }
        else if (document.body)
        {
                y = document.body.clientHeight;
        }
        return y;
}


function recreateLinkBackground(){
    var mainw = 1004;
    var w  = GetWidth();
    var h = GetHeight();
    w2 = w1 = (w-mainw)/2;
    left1 = 0;
    left2 = w1+mainw;
    // alert('Thanks For Resizing: '+w2+' - '+left2);
    link1 = document.getElementById('linkbg1');
    link2 = document.getElementById('linkbg2');
    if(w>=1040){
        link1.style.width=w1+'px';
        link1.style.height=h+'px';
        link1.style.left=left1+'px';
        link1.style.display='block';
        link2.style.width=w2+'px';
        link2.style.height=h+'px';
        link2.style.left=left2+'px';
        link2.style.display='block';
        // alert('OKE:'+link1.style.width);
    }else{
        link1.style.display='none';
        // link1.style.height=h+'px';
    }
}

function news_layout_top_menu_over( t) {
	t.style.background="url('/images/news/top-page/bg-menu-sub-over.jpg')";
}
function news_layout_top_menu_out( t) {
	t.style.background="url('/images/news/top-page/bg-menu-sub-inactive.jpg')";
}
function resetSearch(){
	var formS = document.search_box;
	if(formS.q.value == "Tìm kiếm"){
		formS.q.value = "";	
	}
}
function putSearch(){
	var formS = document.search_box;
	if(formS.q.value == ""){
		formS.q.value = "Tìm kiếm";	
	}
}
