//
// Define string methods
//
String.prototype.trim = function() {
	var charList	= String.prototype.trim.arguments[0];
	if (charList) {
		charList		= '^[' + charList + ']+|[' + charList + ']+$';
		var pattern		= new RegExp(charList, "gi");
		var str			= this.replace(pattern, '');
	} else {
		var str			= this.replace(/^[ ]+|[ ]+$/g, '');
	}
	str = str.replace(/^[\r\n]+|[\r\n]+$/g, '');
	str = str.replace(/^[ ]+|[ ]+$/g, '');
	return  str;
};
// trim ambas direcciones
String.prototype.tripSpace = function() {
	return this.replace(/(\s\s+)/g, " ");
};
// repeat string
String.prototype.repeat = function() {
	var times	= String.prototype.repeat.arguments[0];	var str		= '';
	var i;
	for (i = 0; i < times; i++) {
		str += this;
	}
	return str;
};
// filter string
String.prototype.filter = function() {
	var arrFilter	= String.prototype.filter.arguments[0];
	var strReplace	= String.prototype.filter.arguments[1];
	var pattern;
	var str	= this;
	for (var i = 0; i < arrFilter.length; i++) {
		pattern		= new RegExp(arrFilter[i],"gi");
		str = str.replace(pattern, strReplace.repeat(arrFilter[i].length));
	}
	return str;
};
// repace string - like function sprintf in php
String.prototype.replaceString = function() {
	var strReplace	= String.prototype.replaceString.arguments;
	var pattern;
	var str	= this;
	for (var i = 0; i < strReplace.length; i++) {
		pattern		= new RegExp('%s',"i");
		str = str.replace(pattern, strReplace[i]);
	}
	return str;
};
// strip viet
String.prototype.stripViet = function() {
	var replaceChr = String.prototype.stripViet.arguments[0];
	var stripped_str = this;
	var viet = [];
	i = 0;
	viet[i++] = new Array('a', "/á|à|ả|ã|ạ|ă|ắ|ằ|ẳ|ẵ|ặ|â|ấ|ầ|ẩ|ẫ|ậ/g");
	viet[i++] = new Array('o', "/ó|ò|ỏ|õ|ọ|ơ|ớ|ờ|ở|ỡ|ợ|ô|ố|ồ|ổ|ỗ|ộ/g");
	viet[i++] = new Array('e', "/é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ/g");
	viet[i++] = new Array('u', "/ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự/g");
	viet[i++] = new Array('i', "/í|ì|ỉ|ĩ|ị/g");
	viet[i++] = new Array('y', "/ý|ỳ|ỷ|ỹ|ỵ/g");
	viet[i++] = new Array('d', "/đ/g");
	for(var i = 0; i < viet.length; i++) {
		stripped_str = stripped_str.replace(eval(viet[i][1]), viet[i][0]);
		stripped_str = stripped_str.replace(eval(viet[i][1].toUpperCase().replace('G', 'g')), viet[i][0].toUpperCase());
	}
	if (replaceChr) {
		return stripped_str.replace(/[\W]|_/g, replaceChr).replace(/\s/g, replaceChr).replace(/^\-+|\-+$/g, replaceChr);
	} else {
		return stripped_str;
	}
};
// func ben duoi cho flash cua video goi
function eventPlayerZing(nameEvent, messegeEvent) {
	switch(nameEvent)
	{
		case 'zoomSizeOn':
			zmCore.cookie('zoomsizeplayer',true,{expires:0});
			Common.fullScreen(zm("#_cScreenShw"), zm("#flvPlayer"), zm('#_rghTwoCol'), zm('#_btnShareShw'), zm('#_lineShare'));
			break;
		case 'zoomSizeOff':
			zmCore.cookie('zoomsizeplayer',false,{expires:0});
			Common.fullScreen(zm("#_cScreenShw"), zm("#flvPlayer"), zm('#_rghTwoCol'), zm('#_btnShareShw'), zm('#_lineShare'));
			break;
		case 'nextHandler':
		case 'prevHandler':
			zm('#_plContainer').children('li').each(function(){zm(this).removeClass('playing').removeClass('bglist');});
			zm('#_plItem'+messegeEvent).addClass('playing');			
			break;
	}
}
//
// Handler
//
zmCore.ready(function(){
	initEventHandler();
});
function initEventHandler() {
	MP3Notification.init();
	/* Seach */
	TopMenu.init();
	if(zm('#_comment').size())
	{
		MP3Comment.init('_txtComment','_btnCommentSubmit');
	}
	zm('#_albumIntroMore').click( function() {
		Common.fullAlbumInfo(zm('#_albumIntroMore'), zm('#_albumIntro'));
	});
	zm('#_fullSInfo').click( function() {
		Common.fullArtistInfo(zm('#_fullSInfo'), zm('#_fullSInfoShwn'));
	});
	Search.init('search_type', 'q', '_menuSearch', '_menuSearchItem');
	zm('#_btnSearch').click( function() {
		return Search.doSubmit(zm('#_frmSearch'), 'q', 'search_type');
	});
	zm('#_menuSearch').click(function() {
		return Common.showHide(zm('#_menuSearchItem'));
	});
	zm('#_menuSearch2').click(function() {
		return Common.showHide(zm('#_menuSearchItem'));
	});
	zm('a._menuSearch').click(function() {
		return Search.menuItemSelected(zm(this), zm('#_menuSearch'));
	});
	if (zm('#_menuZing').size() && zm('#_menuZingItem').size()) {
		zm('#_menuZing').click(function() {
			return Common.showHide(zm('#_menuZingItem'));
		});
	}
	if (zm('#q').size()) {
		if (zm('#q').attr('rel') == 'on') {
			zmCore.addScript(MP3.STATIC_PATH + 'js/core/zm.autocomplete-1.20.min.js', function () {Search.suggest();});
		}
	}
	/*
	if (zm('#_srchRowC').size()) {
		Search.setMarkSuggest(zm('#q'), zm('#_srchRowC'));
	}
	*/
	/* Common */
	var flagActSearchMn = 1;
	if (zm('#_artistInfo').size()) {
		zm('#_artistMnu').addClass('active str');
		flagActSearchMn = 0;
	}
	//Common.activeMenu('_mainMenu', 'tagAC', 1, 'main');
	if (document.getElementsByName('_cpanelMenu').length > 0) {
		Common.activeMenu('_cpanelMenu', 'active str', '2-3', 'general');
	}

	if (document.getElementsByName('_chartMenu').length > 0)
		Common.activeMenu('_chartMenu', 'active str', '2-3', 'general');

	if (document.getElementsByName('_genreSMenu').length > 0)
		Common.activeMenu('_genreSMenu', 'active str', '1-2', 'general');

	if (document.getElementsByName('_genreVMenu').length > 0)
		Common.activeMenu('_genreVMenu', 'active str', '2-3', 'general');

	if (document.getElementsByName('_seaTyp').length > 0) {
		Common.activeMenu('_seaTyp', 'active str', 2, 'main', 'icon ilSearch');
		Common.activeMenu('_seaBon', 'active str', '', 'bonus', '', flagActSearchMn);
		Common.activeMenu('_seaBonFil', 'active str', '', 'bonus', '', 1);
		Common.activeMenu('_seaBonSor', 'active str', '', 'bonus', '', 1);
		Common.activeMenu('_seaBonTim', 'active str', '', 'bonus', '', 1);
	}
	zm('#_btnChangeSkin').click( function() {
		Common.showHide(zm('#_btnChangeSkinShow'));
		return false;
	});
	zm('#_btnReport').click( function() {
		var result = Login.confirmLogin();
		if (result == true) {
			Common.activeTab('_btnReport', '_btnEmbed', '_btnRingTone', '_btnAdd', '_btnDown', 'active', 'bgrep');
			zm('#_btnChangeSkinShow').addClass(Common.cssHidden);
			zm('#_errDiv').addClass(Common.cssHidden);
		}
		return false;
	});
	if(	zm('#_reportType').size()){
		zm('#_reportType').change(function(){
			if(zm(this).val()=='-1') zm('#_reportOther').removeClass(Common.cssHidden);
			else zm('#_reportOther').addClass(Common.cssHidden);
		});
	}
	zm('#_btnReportSubmit').click(function(){
		MP3SongPlay.sendReport(zm(this));
	});
	zm('#_btnReportClose').click(function(){
		MP3SongPlay.closeReport();
	});
	zm('#_btnDown').click( function() {
			Common.activeTab('_btnDown', '_btnEmbed', '_btnRingTone', '_btnAdd', '_btnReport', 'active', 'bgrep');
			zm('#_btnChangeSkinShow').addClass(Common.cssHidden);
			zm('#_errDiv').addClass(Common.cssHidden);
		return false;
	});
	zm('#_btnRingTone').click( function() {
		Common.activeTab('_btnRingTone', '_btnDown', '_btnEmbed', '_btnAdd', '_btnReport', 'active', 'bgrep');
		zm('#_btnChangeSkinShow').addClass(Common.cssHidden);
		zm('#_errDiv').addClass(Common.cssHidden);
		return false;
	});
	zm('#_btnEmbed').click( function() {
		Common.activeTab('_btnEmbed', '_btnDown', '_btnRingTone', '_btnAdd', '_btnReport', 'active', 'bgrep');
		/* Embed */
		var	strObj	= new Embed();
		// set embed code for forum and blog
		strObj.setEmbededCode();
		zm('#shr_btnAut').click(function(){
			strObj.changeAutoPlay();
		});
		zm('#shr_btnMubgr').click(function(){
			strObj.changeMusicBg();
		});
		zm('a._sknSAct').click(function(){
			var id = zm(this).attr("id");
			strObj.changeSkin(id);
			return false;
		});
		zm('#_errDiv').addClass(Common.cssHidden);
		return false;
	});
	if (zm('#_videoDet').size() || zm('#_plsDet').size()) {
		Common.activeTab('_btnEmbed', '_btnDown', '_btnRingTone', '_btnAdd', '_btnReport', 'active', 'bgrep');
		// Embed
		var	strObj	= new Embed();
		// set embed code for forum and blog
		strObj.setEmbededCode();
		zm('#shr_btnAut').click(function(){
			strObj.changeAutoPlay();
		});
		zm('#shr_btnMubgr').click(function(){
			strObj.changeMusicBg();
		});
		zm('a._sknSAct').click(function(){
			var id = zm(this).attr("id");
			strObj.changeSkin(id);
			return false;
		});
	}
	if (zm('#_rghTwoCol').size() && zm("#_cScreenShw").size()) {
		zm('#_rghTwoCol').addClass('mgrcol');
	}
	zm('a._vrsShwn').click( function() {
		Common.fullLyrics(zm(this), 1);
	});
	zm('a._vrsHide').click( function() {
		Common.fullLyrics(zm(this), 0);
	});

	zm('#_vnKey').click( function() {
		var objCheck = zm(this);
		zmCore.addScript(MP3.STATIC_PATH + '/js/avim.js', function () {Common.turnOnOffVnKey(objCheck);});
	});
	zm('#_errBtnC').click( function () {
		zm('#_errDiv').addClass(Common.cssHidden);
	});
	zm('a[name=_bxhSDetail]').click(function() {
		Chart.chartDetail(zm(this), '_bxhSContent', 'div[name=_subSContent]', 'song');
		Chart.activeChartDetail(zm(this), 'a[name=_bxhSDetail]');
		return false;
	});
	zm('a[name=_bxhVDetail]').click(function() {
		Chart.chartDetail(zm(this), '_bxhVContent', 'div[name=_subVContent]', 'video');
		Chart.activeChartDetail(zm(this), 'a[name=_bxhVDetail]');
		return false;
	});
	/* Owner */
	/*
	zm('a._dwnFl').click( function () {
		if(!Login.downloadLogin(zm(this)))
			return false;
	});
	*/
	//////// add playlist in detail//////////
	zm('#_btnAdd').click( function() {
		var result = Login.confirmLogin();
		if (result == true) {
			Owner.renderSelectPls('_lstPls', '_addPls');
			Common.activeTab('_btnAdd', '_btnDown', '_btnEmbed', '_btnRingTone', '_btnReport', 'active', 'bgrep');
			zm('#_btnChangeSkinShow').addClass(Common.cssHidden);
		}
		return false;
	});
	zm('#_addPls').click( function() {
		Owner.checkAddPlaylist('_errDiv');
		return false;
	});
	zm('#_btnAddP').click( function() {
		var result = Login.confirmLogin();
		if (result == true) {
			Owner.addFav('_errDiv', zm(this));
			Common.activeTab2('_btnAdd', '_btnEmbed', '_btnReport', 'active', 'bgrep');
		}
		return false;
	});
	zm('#_btnAddV').click( function() {
		var result = Login.confirmLogin();
		if (result == true) {
			Owner.addFav('_errDiv', zm(this));
			Common.activeTab2('_btnAdd', '_btnEmbed',  '_btnReport', 'active', 'bgrep');
		}
		return false;
	});
	//////// add playlist in lite//////////
	zm('a._addFavLite').click( function() {
		var result = Login.confirmLogin();
		if (result == true) {
			Owner.addFavLite(zm(this));
		}
		return false;
	});
	zm('a._addPlsLite').click( function() {
		var result = Login.confirmLogin();
		if (result == true) {
			Owner.showDivPls(zm(this), '_divPlsLite');
			Owner.renderDivPls(zm(this), '_dContPlsLite');
		}
		return false;
	}).blur( function() {
		if (Owner.overDivPls == 0) {
			zm('#_divPlsLite').addClass(Common.cssHidden);
			zm('#_divPlsLite').attr('rel', '');
		}
	}).attr('tabIndex', 0);
	zm('#_createPlsLite').click( function() {
		Owner.createPlaylistLite();
		return false;
	});
	/* Cpanel */
	zm('#chk').click(function(){
		if (parseInt(zm('#_totalItem').html()) > 0)
			Cpanel.doCheckAll(zm(this));
	});
	zm('input[name=chks]').click(function(){
		Cpanel.changeStatusBtnAddDel(zm(this), '', '', '', zm('#chk'));
	});
	zm('#_delAll').click(function(){
		Cpanel.delAll(zm(this).attr('rel'));
	});
	zm('a._delItem').click(function(){
		Cpanel.delItem(zm(this).attr('id'), zm(this).attr('rel'));
	});
	zm('a._delItemInPls').click(function(){
		Cpanel.hideItem(zm(this).attr('id'), zm('#_dragItemSong'));
	});
	if (zm('#_dragItemSong').size()) {
		zm('#_dragItemSong').startDragDrop();
	}
	zm('#_saveInfoP').click( function () {
		Cpanel.savePlaylist(zm('#_dragItemSong'), '_frmDetail', '', 'save', 'playlist');
	});
	zm('#_saveInfo').click( function () {
		Cpanel.saveSong('bài hát', '_frmDetail', '', 'save');
	});
	zm('#_txtTitle').keypress( function () {
		zm('#' + Cpanel.errArea).addClass(Common.cssHidden)
	});
	zm('#_changeAvatar').click( function () {
		Cpanel.showUpload(zm(this), '_changeAvatarShwn', '_loadingAva', '_newFile');
	});
	zm('#_closeChangeAva').click( function () {
		Cpanel.showUpload(zm(this), '_changeAvatarShwn', '_loadingAva', '_newFile');
	});
	zm('#_saveAva').click( function () {
		Cpanel.submitUpload('_loadingAva', '_changeAvatarShwn', '_avatar', '_newFile');
	});
	zm('#_shuffleItem').click( function () {
		Common.doChangeHref(zm(this).attr('rel'));
	});
	zm('#_reverseItem').click( function () {
		Common.doChangeHref(zm(this).attr('rel'));
	});


	/* Lyrics */
	Lyrics.init();
	zm('#viVrs_Nex').click(function() {
		Lyrics.viewNext();
	});
	zm('#viVrs_Pre').click(function() {
		Lyrics.viewPrev();
	});
	/* Share ZMe */
	if (zm('#_shareZMe').size() || zm('#_shareFZMe1').size() || zm('#_shareZMe2').size()) {
		zmCore.addScript('http://wb.me.zing.vn/index.php?wb=LINK&t=js&c=share_button');
	}
	/* Detail (Play) */
	if (zm('#_barArtistInf').size()) {
		var totalAlbum = 0;
		var totalVideo = 0;;
		if (zm('#_albumOfArtist').size()) {
			totalAlbum = parseInt(zm('#_albumOfArtist').html().replace('(', '').replace(')', ''));
		}
		if (zm('#_videoOfArtist').size()) {
			totalVideo = parseInt(zm('#_videoOfArtist').html().replace('(', '').replace(')', ''));
		}
		if (totalVideo == 0 && zm('#_divAlbumOfArt').size()) {
			zm('#_divAlbumOfArt').removeClass('line');
		}
		if (totalVideo == 0 && totalAlbum == 0 && zm('#_artistInfo').size()) {
			zm('#_artistInfo').removeClass('line');
		}
		if (totalVideo == 0 && totalAlbum == 0 && !zm('#_artistInfo').size()) {
			zm('#_barArtistInf').addClass(Common.cssHidden);
		}
	}
	/* Login */
	/*.blur( function() {
		zm('#_subMenuCp').addClass(Common.cssHidden);
	}).attr('tabIndex', 0);*/
	zm('#_login').click( function () {
		var result = Login.confirmLogin();
		return false;
	});
	zm('#_loginCP').click( function () {
		var result = Login.confirmLogin();
	});
	/* upload */
	zm('#_uploadBtn').click( function () {
		var result = Login.confirmLogin();
		if (result == true) {
			location.href = MP3.MP3_URL + 'upload/song.html';
		}
	});
	zm('#_uploadBtn2').click( function () {
		var result = Login.confirmLogin();
		if (result == true) {
			location.href = MP3.MP3_URL + 'upload/song.html';
		}
	});
	/* Css */
	/*
	Css.changeCssMulti(zm('#_idContent3Col'), 'vline', 'tim-kiem,nhac,the-loai-album,the-loai-bai-hat');
	Css.changeCssMulti(zm('#_idRight3Col'), 'rSearch', 'tim-kiem,cpanel,nhac,the-loai-album,the-loai-bai-hat');
	Css.changeCssSpec(zm('#_idContent3Col'), 'vline', 'video');
	Css.changeCssSpec(zm('#_idRight3Col'), 'rSearch', 'video');
	Css.removeCssSpec(zm('#_idRight3Col'), 'rSearch', 'chu-de',4);
	*/
	if (zm('#_btnShareShw').size()) {
		zmCore.addScript('http://s7.addthis.com/js/250/addthis_widget.js?pub=lgebr', function () {
			var addthis_config = {"data_track_clickback":true};
			addthis_brand = 'Zing MP3';
		});
	}
	if (zm('#_cScreenShw').size()) {
		MP3VideoPlay.init();
	}
	MP3FeedBack.init();
	MP3SingerProfile.init();
	//GA download tracking
	zm('._btnDownload').click(function(){
	    zm(this).attr('target','_ifrTemp');
	    secondTracker._trackPageview(zm(this).attr('rel'));
	});
	zm('._trackLink').click(function(){
	    var tar = zm(this);
	    if(tar.attr('tagName')!='A'){
		tar = tar.parent('a');
	    }
	    secondTracker._trackPageview(tar.attr('href') + '?'+ tar.attr('tracking'));
	});
//	if(zm('._suggest').size())	zmCore.addScript(MP3.STATIC_PATH + 'js/zm.autocomplete-1.09.min.js', function () {Cpanel.suggest();});
};
//
// Chart
//
var Chart = {
	urlAjax: MP3.MP3_URL + 'ajax/',

	chartDetail:
		function (obj, idContent, nameDiv, type) {
			var id = obj.attr('rel');
			var idDiv = '_cont' + id;
			Chart.hiddenChartDetail(nameDiv);
			if (zm('#' + idDiv).size()) {
				zm('#' + idDiv).removeClass('none');
			} else {
				Chart.callAjax(id, type, idContent);
			}
			return false;
		},
	activeChartDetail:
		function (obj, nameDiv) {
			zm(nameDiv).each(function() {
				zm(this).removeClass('Active');
				zm(this).removeClass('icon');
				zm(this).addClass('blue12');
			});
			obj.addClass('Active icon');
		},
	hiddenChartDetail:
		function (nameDiv) {
			zm(nameDiv).each(function() {
				zm(this).addClass('none');
			});
		},
	callAjax:
		function (id, type, idContent) {
			zm('#'+idContent+'Loading').removeClass('none');
			zmCore.post(Chart.urlAjax + 'chart/detail',
					{'code': id},
					{'dataType': 'json'},
					function(data) {
						switch (type) {
							case 'song':
								Chart.renderSong(data, idContent);
							break;
							case 'video':
								Chart.renderVideo(data, idContent);
							break;
						}
						zm('#'+idContent+'Loading').addClass('none');
					});
		},
	renderSong:
		function (data, idContent) {
			var detail, total, last;
			var newContent = '';
			var line = 'line';
			total = data.items.length;
			last = total - 1;
			var newContent = '<div id="_cont' + data.chart_id + '" name="_subSContent">';
			for (var i = 0; i < total; i++) {
				detail = data.items[i];
				if (i == last) line = '';
				newContent += '<div class="row_topsong ' + line + ' rel"><img src="' + MP3.STATIC_PATH + 'images/space.gif" class="skin top' + (i + 1) + ' fleft mgright10"/>' +
					'<div class="widthsong fleft">' +
						'<h2><a title="' + detail.title_alt + '" href="' + detail.link_detail + '" class="gray12">' + detail.title_short + '</a></h2>' +
						'<h4>' + detail.artist_name + '</h4>' +
					'</div>' +
					'<br class="clr" />' +
				'</div>';
			}
			newContent += '<div class="moreAlbum"><a href="' + data.link_detail + '" class="blue12">&raquo;Tất cả</a></div></div>';
			zm('#' + idContent).append(newContent);
		},
	renderVideo:
		function (data, idContent) {
			var detail, total, last;
			var newContent = '';
			var line = 'line';
			total = data.items.length;
			last = total - 1;
			var newContent = '<div id="_cont' + data.chart_id + '" name="_subVContent">';
			for (var i = 0; i < total; i++) {
				detail = data.items[i];
				if (i == last) line = '';
				newContent += '<div class="row_topvideo ' + line + '"><div class="fleft pic_video2 mgright10 rel"><a class="abs topClip skin tops' + (i + 1) + '"></a>' + '<a title="' + detail.title_alt + '" href="' + detail.link_detail + '"><span class="img"><img width="112" height="63" alt="Zing Video" border="0" style="background: url(&quot;' + detail.artist_avatar + '&quot;) no-repeat scroll center center transparent;" src="' + MP3.STATIC_PATH + 'images/space.gif"></span><span class="overlay"></span></a></div>' +
					'<div class="widthvideo fleft">' +
						'<h2><a title="' + detail.title_alt + '" href="' + detail.link_detail + '" class="gray12">' + detail.title_short + '</a></h2>' +
						'<h4>' + detail.artist_name + '</h4>' +
					'</div>' +
					'<br class="clr" />' +
				'</div>';
			}
			newContent += '<div class="moreAlbum"><a href="' + data.link_detail + '" class="blue12">&raquo;Tất cả</a></div></div>';
			zm('#' + idContent).append(newContent);
		}
};
//
// Change css
//
var Css = {
	changeCss:
		function (obj, css, linkAllow) {
			if (obj.size()) {
				var linkPage = location.href;
				if (linkPage.search(linkAllow) != -1) {
					obj.addClass(css);
				}
			}
		},
	changeCssMulti:
		function (obj, css, linkAllow) {
			if (obj.size()) {
				var linkPage = location.href;
				linkAllow = linkAllow.split(',');
				for (var i = 0; i < linkAllow.length; i++ ) {
					if (linkPage.search(linkAllow[i]) != -1) {
						obj.addClass(css);
					}
				}
			}
		},
	changeCssSpec:
		function (obj, css, linkAllow) {
			if (obj.size()) {
				var linkPage = location.href.split('/');
				if (linkPage[3].search(linkAllow) != -1) {
					obj.addClass(css);
				}
			}
		},
	removeCssSpec:
		function (obj, css, linkAllow,pos) {
			if (obj.size()) {
				var linkPage = location.href.split('/');
				if (linkPage[pos] && linkPage[pos].search(linkAllow) != -1) {
					obj.removeClass(css);
				}
			}
		}
};
var Login = {
	boxy: '',
	succCallback: '',

	enterToClose:
		function () {
			zm('#_pass').keyup( function (e) {
				if (e.keyCode === 13) {
					Login.boxy.close(true);
				}
			});
		},
	downloadLogin:
		function (obj) {
			if (!MP3.ACCOUNT_NAME) {
				var formLogin = '<iframe name="_ifrLogin" id="_ifrLogin" width="0" height="0" frameborder="0"></iframe><form nane="_frmLogin" id="_frmLogin" method ="post"  action="' + MP3.URL_VNG_SSO + '?method=login" target="_ifrLogin">' +
					'<div id="_errMsg" class="errlog txtErr first last txtCenter none"></div>'+
					'<div class="flogin rel hrw first"><span class="lAcc abs"><strong>Tài khoản:</strong></span><input name="u" id="_acc" type="text" class="ilogin2 abs" maxlength="42" /></div>'+
					'<div class="flogin rel hrw first"><span class="lAcc abs"><strong>Mật khẩu:</strong></span><input name="p" id="_pass" type="password" class="ilogin2 abs" maxlength="100" /></div>'+
					'<div id="_captchaBox" class="none">'+
					'</div>'+
					'<div class="oplogin2"><p class="pdmem2 f12 rel"><input name="longtime" id="longtime" type="checkbox" class="checkMem2 abs" value="1" checked="checked" /> Ghi nhớ đăng nhập | <a href="https://id.zing.vn/forgotinfo/index.38.html" class="txtBlue">Quên mật khẩu?</a></p>'+
					'<p class="f12">Chưa có tài khoản, <a href="https://id.zing.vn/register/index.10.html" class="txtBlue">đăng ký</a></p></div>'+
					'<input type="hidden" name="pid" value="' + MP3.PRODUCT_ID + '" />' +
					'<input type="hidden" name="u1" value="' + MP3.URL_VNG_SSO_RETURN + '?rel=' + encodeURIComponent(obj.attr('rel')) + '" />' +
					'<input type="hidden" name="fp" value="' + MP3.URL_VNG_SSO_RETURN + '?rel=' + encodeURIComponent(obj.attr('rel')) + '" />' +
					'<input type="hidden" name="debug" value="true" />' +
				'</form>';
				if (!Login.boxy) {
					Login.boxy = new zmCore.Boxy({
						title: 'Đăng nhập',
						content: formLogin,
						modal: true,
						okButton: 'Đăng nhập',
						cancelButton: 'Hủy bỏ',
						onOk: function () {
							var acc = zm('#_acc').val();
							var pass = zm('#_pass').val();
							if (acc && pass) {
								zm('#_frmLogin').submit();
							} else if (!acc) {
								Common.setFocus(zm('#_acc'));
							} else if (!pass) {
								Common.setFocus(zm('#_pass'));
							}
							return false;
						},
						onCancel: function () {
							return false;
						}
					});
				}
				Login.boxy.show();
				Common.setFocus(zm("#_acc"));
				Login.enterToClose();
				return false;
			} else {
				var rel = obj.attr('rel');
				_ifrTemp.location.href = rel;
			}
			return true;
		},
	confirmLogin:
		function () {
			var flag = 0;
			if (location.pathname.search('cpanel') != -1) {
				flag = 1;
			}
			if (!MP3.ACCOUNT_NAME) {
				var formLogin = '<iframe name="_ifrLogin" id="_ifrLogin" width="0" height="0" frameborder="0"></iframe><form nane="_frmLogin" id="_frmLogin" method ="post"  action="' + MP3.URL_VNG_SSO + '?method=login" target="_ifrLogin">' +
					'<div id="_errMsg" class="errlog txtErr first last txtCenter none"></div>'+
					'<div class="flogin rel hrw first"><span class="lAcc abs"><strong>Tài khoản:</strong></span><input name="u" id="_acc" type="text" class="ilogin2 abs" maxlength="42" /></div>'+
					'<div class="flogin rel hrw first"><span class="lAcc abs"><strong>Mật khẩu:</strong></span><input name="p" id="_pass" type="password" class="ilogin2 abs" maxlength="100" /></div>'+
					'<div id="_captchaBox" class="none">'+
					'</div>'+
					'<div class="oplogin2"><p class="pdmem2 f12 rel"><input name="longtime" id="longtime" type="checkbox" class="checkMem2 abs" value="1" checked="checked" /> Ghi nhớ đăng nhập | <a href="https://id.zing.vn/forgotinfo/index.38.html" class="txtBlue">Quên mật khẩu?</a></p>'+
					'<p class="f12">Chưa có tài khoản, <a href="https://id.zing.vn/register/index.10.html" class="txtBlue">đăng ký</a></p></div>'+
					'<input type="hidden" name="pid" value="' + MP3.PRODUCT_ID + '" />' +
					'<input type="hidden" name="u1" value="' + MP3.URL_VNG_SSO_RETURN + '?flagReg=' + flag + '" />' +
					'<input type="hidden" name="fp" value="' + MP3.URL_VNG_SSO_RETURN + '?flagReg=' + flag + '" />' +
					'<input type="hidden" name="debug" value="true" />' +
				'</form>';
				if (!Login.boxy) {
					Login.boxy = new zmCore.Boxy({
						title: 'Đăng nhập',
						content: formLogin,
						modal: true,
						okButton: 'Đăng nhập',
						cancelButton: 'Hủy bỏ',
						onOk: function () {
							var acc = zm('#_acc').val();
							var pass = zm('#_pass').val();
							if (acc && pass) {
									zm('#_frmLogin').submit();
							} else if (!acc) {
								Common.setFocus(zm('#_acc'));
							} else if (!pass) {
								Common.setFocus(zm('#_pass'));
							}
							return false;
						}
					});
				}
				Login.boxy.show();
				Common.setFocus(zm("#_acc"));
				Login.enterToClose();
				return false;
			}
			return true;
		},
	requiredLogin:
		function () {
			if (!MP3.ACCOUNT_NAME) {
				var formLogin = '<iframe name="_ifrLogin" id="_ifrLogin" width="0" height="0" frameborder="0"></iframe><form nane="_frmLogin" id="_frmLogin" method ="post"  action="' + MP3.URL_VNG_SSO + '?method=login" target="_ifrLogin">' +
					'<div id="_errMsg" class="errlog txtErr first last txtCenter none"></div>'+
					'<div class="flogin rel hrw first"><span class="lAcc abs"><strong>Tài khoản:</strong></span><input name="u" id="_acc" type="text" class="ilogin2 abs" maxlength="42" /></div>'+
					'<div class="flogin rel hrw first"><span class="lAcc abs"><strong>Mật khẩu:</strong></span><input name="p" id="_pass" type="password" class="ilogin2 abs" maxlength="100" /></div>'+
					'<div id="_captchaBox" class="none">'+
					'</div>'+
					'<div class="oplogin2"><p class="pdmem2 f12 rel"><input name="longtime" id="longtime" type="checkbox" class="checkMem2 abs" value="1" checked="checked" /> Ghi nhớ đăng nhập | <a href="https://id.zing.vn/forgotinfo/index.38.html" class="txtBlue">Quên mật khẩu?</a></p>'+
					'<p class="f12">Chưa có tài khoản, <a href="https://id.zing.vn/register/index.10.html" class="txtBlue">đăng ký</a></p></div>'+
					'<input type="hidden" name="pid" value="' + MP3.PRODUCT_ID + '" />' +
					'<input type="hidden" name="u1" value="' + MP3.URL_VNG_SSO_RETURN + '?flagReg=1" />' +
					'<input type="hidden" name="fp" value="' + MP3.URL_VNG_SSO_RETURN + '?flagReg=1" />' +
					'<input type="hidden" name="debug" value="true" />' +
				'</form>';
				if (!Login.boxy) {
					Login.boxy = new zmCore.Boxy({
						title: 'Đăng nhập',
						content: formLogin,
						modal: true,
						okButton: 'Đăng nhập',
						cancelButton: 'Hủy bỏ',
						onOk: function () {
							var acc = zm('#_acc').val();
							var pass = zm('#_pass').val();
							if (acc && pass) {
								zm('#_frmLogin').submit();
							} else if (!acc) {
								Common.setFocus(zm('#_acc'));
							} else if (!pass) {
								Common.setFocus(zm('#_pass'));
							}
							return false;
						},
						onCancel: function () {
							location.href = MP3.MP3_URL;
						}
					});
				}
				Login.boxy.show();
				Common.setFocus(zm("#_acc"));
				Login.enterToClose();
				return false;
			}
			return true;
		},
	captcha:function(token){
		if(token) Login.token = token;
		var captcha='<div class="flogin rel hrw first" style="height: 40px;padding-left: 110px !important;"><span class="lAcc abs"><strong>Mã xác nhận</strong></span><img id="_captchaImg" alt="Mã xác nhận" width="216" height="40" src="https://captcha.zing.vn/?method=getcaptcha&amp;token='+Login.token+'" style="float:left; display: block;">'+
				'<a href="javascript:void(0);"><img border="0" align="absmiddle" onclick="Login.refreshImg();" alt="Đổi hình" title="Đổi hình" src="https://imgfw.zing.vn/imgppsso/images/icon_doihinh.gif" style="display: block;float: right;margin: 10px 20px 0 0;"></a></div>'+
				'<div class="flogin rel hrw first"><span class="lAcc abs"><strong>Nhập mã xác nhận:</strong></span><input name="imgcode" id="_imgcode" type="text" class="ilogin2 abs" maxlength="100" /></div>'+				
				'<input type="hidden" value="'+Login.token+'" name="token" id="token">'+
				'<input type="hidden" value="1" name="websso">';
		zm('#_captchaBox').removeClass('none').html(captcha);
		zm('#_imgcode').keyup(function(e){
					if(e.keyCode==13 && !e.shiftKey) {
						zm('#_frmLogin').submit();
						return false;
					}
				});
		},
	refreshImg:function(){
			if(Login.t) clearTimeout(Login.t);
			Login.t = setTimeout(new Function('Login.changeImg();'),50);
		},
	changeImg:function(){
			var datetime = new Date();
			zm('#_captchaImg').attr('src','https://captcha.zing.vn/?method=getcaptcha&token='+Login.token+'&t='+datetime.getTime());
		},
	show:
		function(succCallback)
		{
			this.succCallback	= succCallback;
			if (!MP3.ACCOUNT_NAME) {
				var formLogin = '<iframe name="_ifrLogin" id="_ifrLogin" width="0" height="0" frameborder="0"></iframe><form nane="_frmLogin" id="_frmLogin" method ="post"  action="' + MP3.URL_VNG_SSO + '?method=login" target="_ifrLogin">' +
					'<div id="_errMsg" class="errlog txtErr first last txtCenter none"></div>'+
					'<div class="flogin rel hrw first"><span class="lAcc abs"><strong>Tài khoản:</strong></span><input name="u" id="_acc" type="text" class="ilogin2 abs" maxlength="42" /></div>'+
					'<div class="flogin rel hrw first"><span class="lAcc abs"><strong>Mật khẩu:</strong></span><input name="p" id="_pass" type="password" class="ilogin2 abs" maxlength="100" /></div>'+
					'<div id="_captchaBox" class="none">'+
					'</div>'+
					'<div class="oplogin2"><p class="pdmem2 f12 rel"><input name="longtime" id="longtime" type="checkbox" class="checkMem2 abs" value="1" checked="checked" /> Ghi nhớ đăng nhập | <a href="https://id.zing.vn/forgotinfo/index.38.html" class="txtBlue">Quên mật khẩu?</a></p>'+
					'<p class="f12">Chưa có tài khoản, <a href="https://id.zing.vn/register/index.10.html" class="txtBlue">đăng ký</a></p></div>'+
					'<input type="hidden" name="pid" value="' + MP3.PRODUCT_ID + '" />' +
					'<input type="hidden" name="u1" value="' + MP3.URL_VNG_SSO_RETURN + '" />' +
					'<input type="hidden" name="fp" value="' + MP3.URL_VNG_SSO_RETURN + '" />' +
					'<input type="hidden" name="debug" value="true" />' +
				'</form>';
				if (!Login.boxy) {
					Login.boxy = new zmCore.Boxy({
						title: 'Đăng nhập',
						content: formLogin,
						modal: true,
						okButton: 'Đăng nhập',
						cancelButton: 'Hủy bỏ',
						onOk: function () {
							var acc = zm('#_acc').val();
							var pass = zm('#_pass').val();
							if (acc && pass) {
								zm('#_frmLogin').submit();
							} else if (!acc) {
								Common.setFocus(zm('#_acc'));
							} else if (!pass) {
								Common.setFocus(zm('#_pass'));
							}
							return false;
						},
						onCancel: function () {
							return false;
						}
					});
				}
				Login.boxy.show();
				Common.setFocus(zm("#_acc"));
				Login.enterToClose();
				return false;
			}
			return true;
		},
	hide:
		function()
		{
			this.boxy.hide();
			if (this.succCallback && typeof(this.succCallback) == "function") {
				this.succCallback();
			}
		}
};
//
// Lyrics: View Versions of Lyric
//
var arrVersion = zm("div[name=viVrs]");
var curVersion = 0;
var Lyrics = {
	preImgId: 'viVrs_PreImg',
	nextImgId: 'viVrs_NexImg',
	urlRequest: MP3.MP3_URL+'ajax/lyric',
	loading:false,
	init:
		function (preImgId, nextImgId) {
			if(preImgId) Lyrics.preImgId = preImgId;
			if(nextImgId) Lyrics.nextImgId = nextImgId;
			if(arrVersion.size()){		
				zm("#" + Lyrics.preImgId).addClass('opacity');	
				if(arrVersion.size() == 1)
					zm("#" + Lyrics.nextImgId).addClass('opacity');
				Lyrics.initRating();
			}
			zm('#_lyricSubmit').click(function(){
				Lyrics.submitNew(zm('#_lyricContent'));
			});
			zm('#_btnLyricClose').click(function(){
				Common.showHide(zm('#_lyricNewBox'));
			});
			zm('#_lyricNewBtn').click(function(){
				if(Login.confirmLogin())
					Common.showHide(zm('#_lyricNewBox'));
			});
			zm('#_lyricMsgCls').click(function(){
				zm('#_lyricMsgBox').addClass(Common.cssHidden);
			});
		},
	initRating:function() {
			if(zm('._lyricVoting').size()) {
				zm('._lyricVoting').click(function(e){
					Lyrics.addScore(zm(this));
				});
				zm('._lyricVoting').each(function(e){
					if(parseInt(zm(this).attr('rel'))>0) {

						var id = zm(this).attr('id');
						zmCore.getJSON(Lyrics.urlRequest+'/get-rating?id='+id,
								{'dataType': 'json'},
								function(data) {
									Lyrics.ratingState(id,data.result);
							});

					}
				});
			}
		},
	ratingState:function(id,s){
			zm("a[name="+zm('#'+id).attr('name')+"]").each(function(e){
				if(s!=0) zm(this).addClass('opacity');
			});
		},
	viewNext:
		function () {
			if(curVersion < (arrVersion.size()-1)) {
				zm("#" + arrVersion[curVersion].id).addClass(Common.cssHidden);
				zm("#" + Lyrics.preImgId).removeClass('opacity');
				curVersion++;		
				zm("#"+arrVersion[curVersion].id).removeClass(Common.cssHidden);		
			}
			if (curVersion == (arrVersion.size()-1)) {
				zm("#" + Lyrics.nextImgId).addClass('opacity');
			}
			return false;
		},
	viewPrev:
		function () {
			if(curVersion > 0){
				zm("#"+ arrVersion[curVersion].id).addClass(Common.cssHidden);
				zm("#" + Lyrics.nextImgId).removeClass('opacity');		
				curVersion--;
				zm("#"+arrVersion[curVersion].id).removeClass(Common.cssHidden);			
			}
			if(curVersion == 0){
				zm("#" + Lyrics.preImgId).addClass('opacity');
			}
			return false;
		},
	submitNew:function(obj){
			if(Login.confirmLogin())
			{
				if (!Lyrics.loading)
				{
					var idItem = obj.attr('oid');
					var content = obj.val();
					content = content.trim();
					if(content.length<200)
					{
						Lyrics.msgBox('Lời bài hát cần ít nhất 200 ký tự',true);
					}
					else if(content.length>4000)
					{
						Lyrics.msgBox('Lời bài hát chỉ cho phép tối đa 4000 ký tự',true);
					}
					else if (idItem) {
						Lyrics.loading = true;
						zmCore.post(Lyrics.urlRequest+'/add', 
							{'oid': idItem, 'content': content},
							{'dataType': 'json'},
							function(data) {
								Lyrics.loading = false;
								if(!data.is_error)
								{	
									zm('#_lyricNewBox').remove();
									zm('#_lyricNote').remove();
									var size = arrVersion.size();
									if(size>0){
										zm("#" + arrVersion[curVersion].id).addClass(Common.cssHidden);
										zm("#" + Lyrics.preImgId).removeClass('opacity');
										zm('#_lyricNav').removeClass(Common.cssHidden);
									}
									if(size>2)
									{
										//Thay the version cuoi danh sach
										curVersion = size-1;
										zm("#" + arrVersion[curVersion].id).html(data.result).removeClass(Common.cssHidden);
										zm("#" + Lyrics.nextImgId).addClass('opacity');
									}
									else
									{
										curVersion = size;
										var newL = zmCore.createElement('div');
										zm(newL).attr('id','vrs_'+data.id).attr('name','viVrs').html(data.result);
										zm('#_lyricContainer').append(newL);
									}
									arrVersion = zm("div[name=viVrs]");
									zm("#" + arrVersion[curVersion].id).removeClass(Common.cssHidden);

									zm('._lyricVoting').click(function(){
										Lyrics.addScore(zm(this));
									});
									zm('a._vrsShwn').click( function() {
										Common.fullLyrics(zm(this), 1);
									});
									zm('a._vrsHide').click( function() {
										Common.fullLyrics(zm(this), 0);
									});
									ZME_widget_mix();
									Lyrics.msgBox('Lời bài hát đã gởi thành công. Cảm ơn bạn đã nhiệt tình đóng góp');
								}
								else Lyrics.msgBox(data.note, true);
						});
					}
				}
			}
		},
	addScore:function(obj){
			if(Login.confirmLogin())
			{
				var idItem = obj.attr('id');
				var lId = obj.attr('name');
				if (!Lyrics.loading && !obj.hasClass('opacity')) {
					Lyrics.loading = true;
					zmCore.post(Lyrics.urlRequest+'/add-score', 
						{'id': idItem},
						{'dataType': 'json'},
						function(data) {
							Common.msgBox(data.note);
							Lyrics.loading = false;
							try
							{
								zm('#_lyricScore'+lId).html(data.score);
								Lyrics.ratingState(idItem,data.total);
							}
							catch (e){}
						});
				}
			}
		},
	msgBox:function(msg,err){
			zm('#_lyricMsg').html(msg);
			zm('#_lyricMsgBox').removeClass(Common.cssHidden);
			if(err) {
				zm('#_lyricMsgBox').removeClass('txtComp');
				zm('#_lyricMsgBox').addClass('txtErr');
				zm('#_lyricMsgCls').removeClass('cls_com');
				zm('#_lyricMsgCls').addClass('cls_war');
			} else {
				zm('#_lyricMsgBox').removeClass('txtErr');
				zm('#_lyricMsgBox').addClass('txtComp');
				zm('#_lyricMsgCls').removeClass('cls_war');
				zm('#_lyricMsgCls').addClass('cls_com');
			}
		}
};
//
// Define search methods
//
var Search = {
	mainId: '_menuSearch',
	ulId: '_menuSearchItem',
	typeId: 'search_type',
	txtSearchId: 'q',
	txtSearchStr: 'Nhập nội dung cần tìm',
	menuObj: null,
	groupItem: null,

	urlSuggest : MP3.MP3_URL + "suggest/search",
	idForm: '_frmSearch',

	init:
		function(typeID, txtSearchId, mainId, ulId) {
			if(typeID) Search.typeId = typeID;
			if(txtSearchId) Search.txtSearchId = txtSearchId;
			if(mainId) Search.mainId = mainId;
			if(ulId) Search.ulId = ulId;
			Search.menuObj = zm('a#' + Search.mainId);
			Search.groupItem = zm('a.' + Search.mainId);
			Search.initTextSearch();
		},
	menuItemSelected:
		function(obj, boxType) {
			if (boxType) Search.menuObj = boxType;
			Search.menuObj.text(obj.text());
			zm('#' + Search.typeId).val(obj.attr('id'));
			Common.showHide(zm('#' + Search.ulId));
			return false;
		},
	initTextSearch:
		function() {
			var searchBox	= zm('#' + Search.txtSearchId);
			if (zmCore.isEmpty(searchBox) == false) {
				Search.setFocus(searchBox);
				searchBox.blur(
					function() {
						if (searchBox.val() == '') {
							zm('#' + Search.txtSearchId).val(Search.txtSearchStr);
						}
					}
				);
				searchBox.click(
					function() {
						if (searchBox.val() == Search.txtSearchStr) {
							searchBox.val('');
						}
					}
				);
			}
		},
	setFocus:
		function(obj) {
			if (obj.val() == Search.txtSearchStr) {
				obj.val('');
			}
			Common.setFocus(obj);
		},
	submitSearch:
		function(txtSearchId) {
			if (txtSearchId) Search.txtSearchId = txtSearchId;
			var searchBox	= zm('#' + Search.txtSearchId);
			if (searchBox.val() == Search.txtSearchStr || searchBox.val().trim() == '') {
				searchBox.val('');
				Common.setFocus(searchBox);
			} else {
				return true;
			}
			return false;
		},
	doSubmit:
		function(formObj, q, t) {
			if (Search.submitSearch(q) == true) {
				if (location.pathname.search('tim-kiem') != -1) {
					formObj.attr('action', location.pathname);
				}
				formObj.submit();
			} else {
				return false;
			}
			return false;
		},
	suggest:
		function (txtSearchId, typeId, idForm) {
			if (txtSearchId) Search.txtSearchId = txtSearchId;
			if (typeId) Search.typeId = typeId;
			if (idForm) Search.idForm = idForm;
			zm('#zme-autocomplete-results').addClass('search-autocomplete');
			zm('#' + Search.txtSearchId).enableAutocomplete (
				Search.urlSuggest,
				{
					maxItems: 10,
					minChars: 2,
					searchResponse: false,
					autoFill:false,
					hoverAutoFill:false,
					matchCase: false,
					delay: 100,
					cacheLength:0,
					hasGroup:true,
					groupMaxItems: {artist: 3, album: 3, video: 3, song: 5},
					formatItem: function(key,val,gname) {
						var ret='';
						var link='';
						var thumbDir	= '';
						var regEx = /\s*\(\(.+\)\)/;						
						if(gname=='song'){
								val.artist = val.artist.replace(regEx,'').trim();
								link=Search.detailLink(val,gname);
								ret+='<a href="'+link+'">'+val.name+'<span>'+val.artist+'</span></a>';
						} else if(gname=='artist'){
								val.name = val.name.replace(regEx,'');
								link=Search.detailLink(val,gname);
								if(!val.avatar) val.avatar = 'avatars/noavatar.gif';
								thumbDir	= 'thumb/94_94/';
								ret+='<a href="'+link+'"><img src="'+MP3.IMAGE_URL+thumbDir+val.avatar+'" alt="'+val.name+'" width="35" height="35" class="search-img" />'+val.name+'</a>';
								//ret+='<a href="'+link+'"><img src="http://static.mp3.zing.vn/skins/mp3_v3_16/images/space.gif" width="35" height="35" class="search-img" style="background: url('+MP3.IMAGE_URL+thumbDir+val.avatar+') no-repeat scroll center center transparent;" />'+val.name+'</a>';
						} else {
								val.artist = val.artist.replace(regEx,'').trim();
								link=Search.detailLink(val,gname);
								if(gname=='video'){ 
									if(!val.avatar) val.avatar = 'thumb_video/noavatar.jpg';
									thumbDir	= 'thumb/128_72/';
									ret+='<a href="'+link+'"><img src="'+MP3.IMAGE_URL+thumbDir+val.avatar+'" alt="'+val.name+'" width="62" height="35" class="search-img" />'+val.name+'<span>'+val.artist+'</span></a>';
									//ret+='<a href="'+link+'"><img src="http://static.mp3.zing.vn/skins/mp3_v3_16/images/space.gif" alt="'+val.name+'" width="62" height="35" class="search-img" />'+val.name+'<span>'+val.artist+'</span></a>';
								} else {
									if(!val.avatar) val.avatar = 'covers/noavatar.jpg';
									thumbDir	= 'thumb/94_94/';
									ret+='<a href="'+link+'"><img src="'+MP3.IMAGE_URL+thumbDir+val.avatar+'" alt="'+val.name+'" width="35" height="35" class="search-img" />'+val.name+'<span>'+val.artist+'</span></a>';
									//ret+='<a href="'+link+'"><img src="http://static.mp3.zing.vn/skins/mp3_v3_16/images/space.gif" alt="'+val.name+'" width="35" height="35" class="search-img" />'+val.name+'<span>'+val.artist+'</span></a>';
								}
						}
						return ret;
					},
					formatInput:function(val){
						if(val!='footer') return val.name;
						return false;
					},
					scroll:false,
					scrollHeight:'auto',
					itemClass:'',
					groupClass:'search-item',
					addHeader:function(k){
						return '<a href="/tim-kiem/bai-hat.html?q='+encodeURI(k)+'" class="search-for zme-autocomplete-activeItem">Tìm kiếm với "'+k+'"</a>';
					},
					method:'get',
					query: 'term',
					onItemSelected: function (key, value, group) {
						var currentTime = new Date();
					  	zmCore.cookie('autcom', currentTime.getMinutes(), {expires: 0});
						if(group) location.href=Search.detailLink(value,group);
						else location.href='/tim-kiem/bai-hat.html?q='+encodeURI(key);
						//Search.doSubmit(zm('#' + Search.idForm), Search.txtSearchId, Search.typeId);
					},
					formatCacheSearch: function(value) {
						return value.name;
					},
					parseData: function(data) {
						var result	= new Object();
						result.artist	= data.artist;
						result.album	= data.album;
						result.video	= data.video;
						result.song		= data.song;
						return result;
					}
				}
			);
			zm('#' + Search.txtSearchId).keydown(function(e){				
				var key = e.keyCode || e.which;
				//console.log(e);
				if(Search.newKw && key > 64) {
					var lastChar = key;//val.toLowerCase().charAt(val.length-1);
					if(Search.lastChar != lastChar){
						zm(this).flushCache();
						Search.newKw = false;
					}
					Search.lastChar = key;//String.fromCharCode(key).toLowerCase();
				} 
				Search.newKw = key==32||key==8;
			});
			
		},
		detailLink:function(item, t){
			if(t=='artist') return '/tim-kiem/bai-hat.html?q='+encodeURI(item.name)+'&t=artist';
			if(t=='song') t ='bai-hat';
			else if(t=='video') t='video-clip';
			return '/'+t+'/'+item.name.stripViet('-')+'-'+item.artist.replace(',',' ft ').stripViet('-')+'/'+item.object_id+'.html';
		}
};
//
// Embed
//
function Embed(currentId)
{
	this._construct(currentId);
}
Embed.prototype = {
	imgSkinId: '_imgSkinDemo',
	currentId: 1,
	musicBgId: '_chkMusicBg',
	classForum:'_shr_txtFrm',
	classBlog: '_shr_txtBlg',
	classLnk: '_shr_txtLnk',
	autoPlayId: 'shr_btnAut',
	musicBgId: 'shr_btnMubgr',
	strAuto: '_strAuto',
	strNoAuto: '_strNoAuto',
	urlEmbed1: MP3.MP3_URL,
	urlEmbed2: MP3.STATIC_URL + 'skins/mp3_main/',
	xmlUrl: zm('#_strNoAuto').val(),
	width: 300,
	height: 61,

	_construct:
		function(currentId) {
			zm('.' + this.classLnk).click(function() {
				zm(this).select();
			});
			if(currentId)
				this.currentId = currentId;
		},
	changeSkin:
		function(id, imgSkinId) {
			if (imgSkinId) this.imgSkinId = imgSkinId;
			zm('#' + this.imgSkinId).removeClass('picSkin' + this.currentId);
			zm('#' + this.imgSkinId).addClass('picSkin' + id);
			this.currentId = id;
			this.setEmbededCode();
			return false;
		},
	changeAutoPlay:
		function(autoPlayId, strAuto, strNoAuto) {
			if (autoPlayId) this.autoPlayId = autoPlayId;
			if (strAuto) this.strAuto = strAuto;
			if (strNoAuto) this.strNoAuto = strNoAuto;
			var chkAutoPlay = zm('#' + this.autoPlayId).attr('checked');
			if (chkAutoPlay) {
				this.autoPlay = 'true';
				this.xmlUrl = zm('#' + this.strAuto).val();
			} else {
				this.autoPlay = 'false';
				this.xmlUrl = zm('#' + this.strNoAuto).val();
			}
			this.setEmbededCode();
		},
	changeMusicBg:
		function(musicBgId, autoPlayId) {
			if (musicBgId) this.musicBgId = musicBgId;
			if (autoPlayId) this.autoPlayId = autoPlayId;
			var chkBackGround = zm('#' + this.musicBgId).attr('checked');
			if (chkBackGround) {
				zm('#' + this.autoPlayId).attr('checked','checked')
				this.changeAutoPlay();
				zm('#' + this.autoPlayId).attr('disabled','disabled');
				this.width = 1;
				this.height = 1;
			} else {
				zm('#' + this.autoPlayId).attr('disabled','');
				this.width = 360;
				this.height = 61;
			}
			this.setEmbededCode();
		},
	setEmbededCode:
		function()
		{
			var self	= this;
			// create forum link
			if (zm('.' + this.classForum).size) {
				zm('.' + this.classForum).attr('readonly', 'readonly');
				zm('.' + this.classForum).val(self.createEmbbedCodeForum(zm('.' + this.classForum).attr('name')));
				zm('.' + this.classForum).click(function() {
					zm(this).select();
				});
			}

			// create blog link
			if (zm('.' + this.classBlog).size) {
				zm('.' + this.classBlog).attr('readonly', 'readonly');
				zm('.' + this.classBlog).val(self.createEmbbedCodeBlog(zm('.' + this.classBlog).attr('name')));
				zm('.' + this.classBlog).click(function() {
					zm(this).select();
				});
			}
		},
	createEmbbedCodeBlog:
		function(type)
		{
			var src	= '';
			switch (type) {
				case 'song':
					src	= this.urlEmbed2 + 'flash/player/mp3Player_skin' + this.currentId + '.swf?xmlurl=' + this.xmlUrl;
					break;
				case 'album':
					this.width	= 430;
					this.height	= 430;
					src	= this.urlEmbed2 + 'flash/mp3playlist.swf?xmlURL=' + this.xmlUrl + '?autoplay=false&wmode=transparent';
					break;
				case 'video':
					this.width	= 328;
					this.height	= 250;
					src	= this.urlEmbed2 + 'flash/player_mp3zing_embed_v1.0.swf?file=' + this.xmlUrl + '?autostart=false&zoomsizeon=false&wmode=transparent&1';
					break;
			}
			var tpl = '<object width="'+this.width+'" height="'+this.height+'">';
			tpl += '<param name="movie" value="' + src + '" />';
			tpl += '<param name="quality" value="high" />';
			tpl += '<param name="wmode" value="transparent" />';
			tpl += '<embed width="'+this.width+'" height="'+this.height+'" src="' + src + '" quality="high" wmode="transparent" type="application/x-shockwave-flash"></embed>';
			tpl += '</object>';
			tpl	+= '<br />';

			return tpl;
		},
	createEmbbedCodeForum:
		function(type)
		{
			switch (type) {
				case 'song':
					var tpl = '[FLASH]' + this.urlEmbed2 + 'flash/player/mp3Player_skin' + this.currentId + '.swf?xmlurl='  + this.xmlUrl +'[/FLASH]';
					break;
				case 'album':
					var tpl = '[FLASH]' + this.urlEmbed2 + 'flash/mp3playlist.swf?xmlURL=' + this.xmlUrl + '?autoplay=false&wmode=transparent[/FLASH]';
					break;
				case 'video':
					var tpl = '[FLASH]' + this.urlEmbed2 + 'flash/player_mp3zing_embed_v1.0.swf?file=' + this.xmlUrl+ '?autostart=false&zoomsizeon=false&wmode=transparent[/FLASH]';
					break;
			}
			return tpl;
		}
};
//
// Owner: action + info of user
//
var Owner = {
	urlApi: MP3.MP3_URL + 'ajax/',
	cssCheck: 'checks',
	cssSave: 'saves',
	songID: '',
	playlistID: '',
	playlistTitle: '',
	txtTitlePls: 'txtTitlePls',
	divCreatePls: '_divCreatePlsLite',
	divLstPls: '_divPlsLite',
	divContPls: '_dContPlsLite',
	flagCreate: '',
	flagPlsID: '',
	flagFavID: '',
	errDiv: '_errDivPls',
	selLstPls: '_lstPls',
	itemAdd: '_addPls',
	overDivPls: 0,
	idFavList: '_idFavList',

	addFav:
		function (errDiv, obj) {
			var linkPos = '';
			var idItem = obj.attr('pid');
			switch (obj.attr('rel')) {
				case 'video':
					linkPos = Owner.urlApi + 'video/addfav';
				break;
				case 'pls':
					linkPos = Owner.urlApi + 'playlist/addfav';
				break;
			}
			if (linkPos && idItem && !Owner.flagFavID) {
				zmCore.post(linkPos,
					{'id': idItem, 'title': 'Yêu thích'},
					{'dataType': 'json'},
					function(data) {
						if(!data.is_error) Owner.flagFavID += ',' + idItem;
						Common.showMsg(errDiv, data.is_error, data.note);
				});
			} else {
				Common.showMsg(errDiv, 1, 'Bạn đã thêm vào yêu thích');
			}
		},
	addFavLite:
		function (obj) {
			var linkPos	= '';
			var idItem	= obj.attr('pid');
			switch (obj.attr('rel')) {
				case 'video':
					linkPos = Owner.urlApi + 'video/addfav';
				break;
				case 'pls':
					linkPos = Owner.urlApi + 'playlist/addfav';
				break;
			}
			if (linkPos && idItem) {
				zmCore.post(linkPos,
					{'id': idItem, 'title': 'Yêu thích'},
					{'dataType': 'json'},
					function(data) {
						if(!data.is_error) {
							Owner.flagFavID += ',' + idItem;
							obj.attr('pid', '');
							//change check icon
							obj.removeClass(Owner.cssSave);
							obj.addClass(Owner.cssCheck);
						} else {
							Common.msgBox(data.note);
						}
					}
				);
			}

		},
	setAttrDiv:
		function (flag) {
			Owner.overDivPls = flag;
		},
	showDivPls:
		function (obj, idDiv) {
			var posDivContnet;
			var posLeftDivContnet;
			if (zm('#_contentLst').size()) {
				posDivContnet = zm('#_contentLst').top();
				posLeftDivContnet= zm('#_contentLst').left();
			} else {
				posDivContnet = zm('#_plsDet').top();
				posLeftDivContnet= zm('#_plsDet').left();
			}
			var objDiv = zm('#' + idDiv);
			var topPos = obj.top() - posDivContnet + 20;
			var rightPos = obj.left() + obj.width() - posLeftDivContnet - 216;

			if (objDiv.attr('rel') == obj.attr('id')) {
				objDiv.addClass(Common.cssHidden);
				objDiv.attr('rel', '');
			} else {
				objDiv.css('top', topPos + 'px');
				objDiv.css('left', rightPos+'px');
				objDiv.removeClass(Common.cssHidden);
				objDiv.attr('rel', obj.attr('id'));
			}
		},
	showDivCreate:
		function (flag) {
			var obj;
			if (zm('#' + Owner.divCreatePls).size()) {
				obj = zm('#' + Owner.divCreatePls);
			} else if (zm('#' + Owner.txtTitlePls).size()) {
				obj = zm('#' + Owner.txtTitlePls);
			}
			if (flag) {
				obj.removeClass(Common.cssHidden);
				zm('#' + Owner.txtTitlePls).focus();
			} else {
				obj.addClass(Common.cssHidden);
			}
		},
	renderSelectPls:
		function (idSelShow, idSong) {
			if (!zm('#' + idSelShow).html()) {
				zmCore.post(Owner.urlApi + 'playlist/list', '',
						{'dataType': 'json'},
						function(data) {
							var content = '<select class="wBaoxau fleft mgright7" id="_lstPls" onchange="return Owner.addPlaylist(\'' + zm('#' + idSelShow).attr('rel') + '\', zm(this).val())">';
							for (i = 0; i < data.length; i++) {
								if(parseInt(data[i].playlist_id)<1) content += '<option value=\"' + data[i].playlist_id + '\" class=\"_plsItemChs\" id=\"_apls' + data[i].playlist_id + '\" style="font-weight:bold;">' + data[i].playlist_title + '</option>';
								else content += '<option value=\"' + data[i].playlist_id + '\" class=\"_plsItemChs\" id=\"_apls' + data[i].playlist_id + '\">' + data[i].playlist_title + '</option>';
							}
							content =  content + '</select>';
							zm('#' + idSelShow).html(content);
							Owner.playlistID = data[0].playlist_id;
							Owner.playlistTitle = data[0].playlist_title;
							Owner.songID = zm('#' + idSong).attr('rel');
							Owner.addPlaylist();
						});
			}
		},
	renderDivPls:
		function (obj, idDivShow) {
			Owner.songID = obj.attr('id');
			var favList = '';
			if (zm('#' + Owner.idFavList).size()) {
				favList = 'fav';
			}
			if (!zm('#' + idDivShow).html()) {
				zmCore.post(Owner.urlApi + 'playlist/list',
						{'fav': favList},
						{'dataType': 'json'},
						function(data) {
							var content = '';
							for (i = 0; i < data.length; i++) {
								content += '<p class="p2 lp" onmouseover="this.className=\'p2 bgp lp\';" onmouseout="this.className=\'p2 lp\';">';
								if(parseInt(data[i].playlist_id)<1) content += '<a class="txtGray _isrtSTPLite" id="' + data[i].playlist_id + '" style="font-weight:bold">' + data[i].playlist_title + '</a>';
								else content += '<a class="txtGray _isrtSTPLite" id="' + data[i].playlist_id + '">' + data[i].playlist_title + '</a>';
								content +='</p>';
							}							zm('#' + idDivShow).html(content);
							// insert song to pls
							zm('a._isrtSTPLite').click( function() {
								Owner.playlistID = zm(this).attr('id');
								Owner.playlistTitle = zm(this).html();
								Owner.addPlaylist('', '', 1, this);
								return false;
							});
						});
			}
		},
	checkAddPlaylist:
		function (errDiv) {
			if(Owner.playlistID <0){
				if (Owner.playlistID == -1) {
					Owner.createPlaylist(errDiv);
				} else {
					Common.msgBox('Không thể tạo thêm playlist.<br />Bạn chỉ được phép tạo tối đa '+ Math.abs(Owner.playlistID)+' playlist');
				}
			} else {
				Owner.insertSongToPls(errDiv);
			}
		},
	addPlaylist:
		function (songID, playlistID, flag, obj) {
			if (zm('#_apls' + playlistID).size()) {
				var title = zm('#_apls' + playlistID).html();
				Owner.playlistTitle = title;
			}
			if (songID) Owner.songID = songID;
			if (playlistID) Owner.playlistID = playlistID;
			if (Owner.playlistID < 0) {
				if (Owner.playlistID == -1) {
					Owner.showDivCreate(1);
				} else {
					zm('#'+Owner.divLstPls).addClass(Common.cssHidden).attr('rel', '');
					Common.msgBox('Không thể tạo thêm playlist.<br />Bạn chỉ được phép tạo tối đa '+ Math.abs(Owner.playlistID)+' playlist');
				}
			} else {
				if (flag == 1) Owner.insertSongToPlsLite();
				Owner.showDivCreate(0);
			}
		},
	insertSongToPls:
		function (errDiv) {
			if (errDiv) Owner.errDiv = errDiv;
			var checkSongInPls = Owner.songID + '_' + Owner.playlistID;
			if (Owner.flagPlsID.search(checkSongInPls) == -1) {
				zmCore.post(Owner.urlApi + 'playlist/add',
						{'song_id': Owner.songID, 'playlist_id': Owner.playlistID, 'playlist_title': Owner.playlistTitle},
						{'dataType': 'json'},
						function(data) {
							Common.showMsg(Owner.errDiv, data.is_error, data.note);
							if(!data.is_error) Owner.flagPlsID += ',' + checkSongInPls;
						});
			}
		},
	createPlaylist:
		function (errDiv) {
			if (errDiv) Owner.errDiv = errDiv;
			var playlist_title = zm('#' + Owner.txtTitlePls).val();
			var checkSongInPls = Owner.songID + '_' + playlist_title;
			if (playlist_title && Owner.songID && Owner.flagCreate.search(checkSongInPls) == -1) {
				zmCore.post(Owner.urlApi + 'playlist/create',
						{'song_id': Owner.songID, 'playlist_title': playlist_title},
						{'dataType': 'json'},
						function(data) {
							if (data.is_error == 0) {
								zm('#' + Owner.txtTitlePls).addClass(Common.cssHidden);
								zm('#' + Owner.selLstPls).html('');
								Owner.renderSelectPls(Owner.selLstPls, Owner.itemAdd);
							}
							Common.showMsg(Owner.errDiv, data.is_error, data.note);
						});
				Owner.flagCreate += ',' + checkSongInPls;
			} else if (!playlist_title) {
				zm('#' + Owner.txtTitlePls).focus();
			}
		},
	insertSongToPlsLite:
		function (errDiv) {
			if (errDiv) Owner.errDiv = errDiv;
			var checkSongInPls = Owner.songID + '_' + Owner.playlistID;
			if (Owner.flagPlsID.search(checkSongInPls) == -1) {
				zmCore.post(Owner.urlApi + 'playlist/add',
						{'song_id': Owner.songID, 'playlist_id': Owner.playlistID, 'playlist_title': Owner.playlistTitle},
						{'dataType': 'json'},
						function(data) {
							zm('#' + Owner.divLstPls).addClass(Common.cssHidden);
							zm('#' + Owner.divLstPls).attr('rel', '');
							zm('#' + Owner.divContPls).html('');
							if(data.is_error) Common.msgBox(data.note);
							else {
								//change check icon
								zm('#' + Owner.songID).removeClass(Owner.cssSave);
								zm('#' + Owner.songID).addClass(Owner.cssCheck);
								Owner.flagPlsID += ',' + checkSongInPls;
							}
						});
			} else {
				zm('#' + Owner.divLstPls).addClass(Common.cssHidden);
				zm('#' + Owner.divLstPls).attr('rel', '');
			}
		},
	createPlaylistLite:
		function (errDiv) {
			if (errDiv) Owner.errDiv = errDiv;
			var playlist_title = zm('#' + Owner.txtTitlePls).val();
			var checkSongInPls = Owner.songID + '_' + playlist_title;
			if (playlist_title && Owner.songID && Owner.flagCreate.search(checkSongInPls) == -1) {
				zmCore.post(Owner.urlApi + 'playlist/create',
						{'song_id': Owner.songID, 'playlist_title': playlist_title},
						{'dataType': 'json'},
						function(data) {
							zm('#' + Owner.divCreatePls).addClass(Common.cssHidden);
							zm('#' + Owner.divLstPls).addClass(Common.cssHidden);
							zm('#' + Owner.divLstPls).attr('rel', '');
							zm('#' + Owner.divContPls).html('');
							//change check icon
							zm('#' + Owner.songID).removeClass(Owner.cssSave);
							zm('#' + Owner.songID).addClass(Owner.cssCheck);
						});
				Owner.flagCreate += ',' + checkSongInPls;
			} else if (!playlist_title) {
				zm('#' + Owner.txtTitlePls).focus();
			} else {
				zm('#' + Owner.divLstPls).addClass(Common.cssHidden);
				zm('#' + Owner.divLstPls).attr('rel', '');
			}
			return false;
		}
};
//
// Cpanel: all action in user's control panel
//
var Cpanel = {
	idForm: '_frmList',
	arrCheckBox: 'input[name=chks]',
	idList: '_idList',
	idListOld: '_idListOld',
	idListDel: '_idListDel',
	idListOrdFunc: '_idFuncOrd',
	idAction: '_idAction',
	idBtnAdd: '_addAllToPls',
	idBtnDel: '_delAll',
	idBtnListen: '_listenFav',
	css: 'opacity',
	countCheck: 0,
	title: '_txtTitle',
	errArea: '_errArea',
	errMsg: '_errMsg',
	msg: ['Vui lòng nhập tên %s'],
	urlRequest:MP3.MP3_URL + 'ajax/ucpanel/',
	idIFrame:'_iframeavatar',

	enableAddDel:
		function (idBtnAdd, idBtnDel, css) {
			if(idBtnAdd) Cpanel.idBtnAdd = idBtnAdd;
			if(idBtnDel) Cpanel.idBtnDel = idBtnDel;
			if(css) Cpanel.css = css;
			zm('#' + Cpanel.idBtnAdd).removeClass(Cpanel.css);
			zm('#' + Cpanel.idBtnDel).removeClass(Cpanel.css);
		},
	disableAddDel:
		function (idBtnAdd, idBtnDel, css) {
			if(idBtnAdd) Cpanel.idBtnAdd = idBtnAdd;
			if(idBtnDel) Cpanel.idBtnDel = idBtnDel;
			if(css) Cpanel.css = css;
			zm('#' + Cpanel.idBtnAdd).addClass(Cpanel.css);
			zm('#' + Cpanel.idBtnDel).addClass(Cpanel.css);
		},
	getIDCheckBox:
		function(idList, arrCheckBox) {
			if(idList) Cpanel.idList = idList;
			if(arrCheckBox) Cpanel.arrCheckBox = arrCheckBox;
			var temp = new Array;
			var k = 0;
			var arrCheckbox = zm(Cpanel.arrCheckBox);
			arrCheckbox.each(function() {
				if(zm(this).attr('checked') === true) {
					temp[k] = zm(this).val();
					k = k + 1;
				}
			});
			if(k) {
				if(zm('#' + Cpanel.idList).size()) {
					zm('#' + Cpanel.idList).val(temp.join(','));
				}
			}
			return k;
		},
	doSubmit:
		function(idForm, idAction, action) {
			if(idForm) Cpanel.idForm = idForm;
			if(idAction) Cpanel.idAction = idAction;
			if(action) {
				zm('#' + Cpanel.idAction).val(action);
			}
			if(zm('#' + Cpanel.idForm).size()) {
				zm('#' + Cpanel.idForm).submit();
			}
		},
	doCheckAll:
		function(obj, arrCheckBox, idBtnAdd, idBtnDel, css) {
			if(arrCheckBox) Cpanel.arrCheckBox = arrCheckBox;
			var arrCheckbox = zm(Cpanel.arrCheckBox);
			var checkVal = false;
			var count = 0;

			if (obj.attr('checked') === true) {
				checkVal = true;
				Cpanel.enableAddDel(idBtnAdd, idBtnDel, css);
			} else {
				Cpanel.disableAddDel(idBtnAdd, idBtnDel, css);
			}

			arrCheckbox.each(function() {
				zm(this).attr('checked', checkVal);
				if (checkVal == true) count++;
			});
			Cpanel.countCheck = count;
		},
	changeStatusBtnAddDel:
		function (obj, idBtnAdd, idBtnDel, css, objMa) {
			if (obj.attr('checked') == true) {
				Cpanel.countCheck++;
			} else {
				Cpanel.countCheck--;
			}
			if (Cpanel.countCheck > 0) {
				Cpanel.enableAddDel(idBtnAdd, idBtnDel, css);
			} else {
				Cpanel.disableAddDel(idBtnAdd, idBtnDel, css);
				objMa.attr('checked', false);
			}
		},
	delAll:
		function(objType, idList, arrCheckBox, idForm, idAction) {
			k = Cpanel.getIDCheckBox(idList, arrCheckBox);
			if(k) {
				var temp = Cpanel.getActionAll(objType);
				new zmCore.Boxy({
					title: 'Xác nhận',
					content: 'Bạn thật sự muốn xóa ' + temp[0] + ' vừa chọn?',
					modal: true,
					okButton: 'Đồng ý',
					cancelButton: 'Hủy bỏ',
					onOk: function () {
						Cpanel.doSubmit(idForm, idAction, temp[1]);
					}
				}).show();
			}
		},
	delItem:
		function(objId, objType) {
			var temp = Cpanel.getActionItem(objType);
			new zmCore.Boxy({
				title: 'Xác nhận',
				content: 'Bạn thật sự muốn xóa ' + temp[0] + ' vừa chọn?',
				modal: true,
				okButton: 'Đồng ý',
				cancelButton: 'Hủy bỏ',
				onOk: function () {
					zmCore.post(Owner.urlApi + temp[1],
						{'item': objId},
						{'dataType': 'json'},
						function(data) {
							if (data.is_error == 0) {
								zm('#' + data.pid).remove();
								var totalItem = parseInt(zm('#_totalItem').html());
								var totalOnP = parseInt(zm('#_totalOnPage').val());
								zm('#_totalItem').html((totalItem - 1));
								zm('#_totalOnPage').val((totalOnP - 1))
								if (zm('#_totalOnPage').val() == 0) {
									var returnFirstP = location.href;
									if (returnFirstP.search('=') != -1) {
										var temp = returnFirstP.split('=');
										var prevPage = (temp[1] - 1) < 1 ? 1 : (temp[1] - 1);
										returnFirstP = temp[0] + '=' + prevPage;
									}
									location.href = returnFirstP;
								}
							}
						});
				}
			}).show();
		},
	getActionAll:
		function (type) {
			var temp = '';
			switch (type) {
				case 'song':
					temp = ['bài hát', 'delUp'];
				break;
				case 'songfav':
					temp = ['bài hát yêu thích', 'delFav'];
				break;
				case 'playlist':
					temp = ['playlist', 'delPls'];
				break;
				case 'playlistfav':
					temp = ['playlist yêu thích', 'delFav'];
				break;
				case 'videofav':
					temp = ['video yêu thích', 'delFav'];
				break;
			}
			return temp;
		},
	getActionItem:
		function (type) {
			var temp = '';
			switch (type) {
				case 'song':
					temp = ['bài hát', 'song/del'];
				break;
				case 'songfav':
					temp = ['bài hát yêu thích', 'song/delfav'];
				break;
				case 'playlist':
					temp = ['playlist', 'playlist/del'];
				break;
				case 'playlistfav':
					temp = ['playlist yêu thích', 'playlist/delfav'];
				break;
				case 'videofav':
					temp = ['video yêu thích', 'video/delfav'];
				break;
			}
			return temp;
		},
	savePlaylist:
		function (objOrdering, idForm, idAction, action, type, title, errArea, errMsg, idList) {
			if (title) Cpanel.title = title;
			if (errArea) Cpanel.errArea = errArea;
			if (errMsg) Cpanel.errMsg = errMsg;
			if (idList) Cpanel.idList = idList;
			var myTitle = zm('#' + Cpanel.title);
			var msg = Cpanel.msg[0];
			zm('#' + Cpanel.idList).val(objOrdering.getDragDropResult());
			if (zm('#' + Cpanel.idList).val()) {
				zm('#' + Cpanel.idListOrdFunc).val('');
			}
			if (Validate.checkRequired(myTitle.val())) {
				Cpanel.doSubmit(idForm, idAction, action);
			} else {
				zm('#' + Cpanel.errArea).removeClass(Common.cssHidden);
				zm('#' + Cpanel.errMsg).html(msg.replaceString(type));
				Common.setFocus(myTitle);
			}
		},
	saveSong:
		function (type, idForm, idAction, action, title, errArea, errMsg) {
			if (title) Cpanel.title = title;
			if (errArea) Cpanel.errArea = errArea;
			if (errMsg) Cpanel.errMsg = errMsg;
			var myTitle = zm('#' + Cpanel.title);
			var msg = Cpanel.msg[0];
			if (Validate.checkRequired(myTitle.val())) {
				Cpanel.doSubmit(idForm, idAction, action);
			} else {
				zm('#' + Cpanel.errArea).removeClass(Common.cssHidden);
				zm('#' + Cpanel.errMsg).html(msg.replaceString(type));
				Common.setFocus(myTitle);
			}
		},
	hideItem:
		function (id, obj) {
			var info = 'inf' + id;
			var total = parseInt(zm('#_totalItemSongs').html());
			var delVal = zm('#' + Cpanel.idListDel).val() + ',' + id;
			if (total > 1) {
				// insert delId
				zm('#' + Cpanel.idListDel).val(delVal);
				// remove element
				zm('#' + info).remove();
				// minus
				total--;
				zm('#_totalItemSongs').html(total);
			}
		},
	showUpload:
		function (obj, idShwn, idLoading, idNewAva) {
			
			var objShwn = zm('#' + idShwn);
			var objFile = zm('#' + idNewAva);
			var objPlace = zm('#_changeAvatarShwnPlace');
			if (objShwn.attr('class').search(Common.cssHidden) == -1) {
				objShwn.addClass(Common.cssHidden);
				objPlace.addClass(Common.cssHidden);
			} else {
				MP3MessageBox.hideMsg();
				MP3MessageBox.hideError();
				var topPos = obj.top()+15;
				var rightPos = obj.left();
				if(zmCore.browser.msie)
				{
					var version = parseInt(zmCore.browser.version.substr(0,1));
					if(version<7)
					{
						topPos -= zm('#_plsDet').top();
						rightPos -= zm('#_plsDet').left();
					}
				}
				objShwn.css('top', topPos + 'px');
				objShwn.css('left', rightPos + 'px');
				objShwn.removeClass(Common.cssHidden);
				objPlace.removeClass(Common.cssHidden);
				//Common.setFocus(objFile);
			}			
			return false;
		},
	submitUpload:
		function (idLoading, idShwn, idAva, idNewAva) {
			var objLoading = zm('#' + idLoading);
			var objShwn = zm('#' + idShwn);
			var objAva = zm('#' + idAva);
			var objFile = zm('#' + idNewAva);

			if (objFile.val()) {
				Cpanel.doUpdateImg('_frmUpAva','_iframeavatar');
			} else {
				//Common.setFocus(objFile);
			}
		},
	doUpdateImg:
		function (idForm, idIFrame) {
			var oFrame = document.getElementById(idIFrame);
            document.getElementById(idForm).target = idIFrame;
			if(oFrame.addEventListener) oFrame.addEventListener('load',Cpanel.uploadDone,false);
			else oFrame.attachEvent('onload',Cpanel.uploadDone);
			zm('#'+idForm).submit();
		},
	uploadDone:
        function () {
			document.domain='zing.vn';
			var imgHost = MP3.IMAGE_URL;
			var idObj = document.getElementById('id').value;
			var iFrame =  document.getElementById(Cpanel.idIFrame);
			var filename = '';
			var iFrameBody;
            if (iFrame.contentDocument) {
				iFrameBody = iFrame.contentDocument.getElementsByTagName('body')[0];
				filename = iFrameBody.innerHTML;
				filename = eval("(" + filename + ")");
            } else if (iFrame.contentWindow) {
						filename =  iFrame.contentWindow.document.getElementsByTagName('body')[0];
                        filename = eval("(" + filename.innerHTML + ")");
            }
			 //save data
			var success = filename.split(":")
			if (success[0] == "Success") {
				zmCore.post(Cpanel.urlRequest+'update-avatar', {_objectId: idObj, _newAvatar: success[1]});
				fileUrl = imgHost + success[1];
				zm('#_imgPlAvatar').attr("src", fileUrl);
				zm('#_delFile').val(success[1]);
				MP3MessageBox.showMsg('Đổi hình thành công');
			}
			else if(success[0] == "Error")
			{
				setTimeout("MP3MessageBox.showError('"+success[1]+"')",500);
			}
			Cpanel.showUpload(zm('#_changeAvatar'), '_changeAvatarShwn', '_loadingAva', '_newFile');
			window.location.href='#';
        },
	listenFav:
		function(obj, idList, arrCheckBox, idForm, idAction) {
			var temp = new Array;
			var k = 0;
			var arrCheckbox = zm(Cpanel.arrCheckBox);
			arrCheckbox.each(function() {
				if(zm(this).attr('checked') === true) {
					temp[k] = zm(this).val();
					k = k + 1;
				}
			});
			if(k) {
					zmCore.cookie('_mBox',temp.join(','),{expires:0});
					location.href=MP3.MP3_URL+'box-nhac.html';
			}
		},
	initState:function(){
			zm(Cpanel.arrCheckBox).each(function(){
					if (zm(this).attr('checked') == true) {
						Cpanel.enableAddDel();
						return true;
					}
					Cpanel.disableAddDel();
			});
			return false;
		},
	suggest: function () {
			zm('._suggest').each(function(){
				zm(this).enableAutocomplete (
					Search.urlSuggest+'/'+zm(this).attr('name'),
					{
						maxItems: 5,
						minChars: 2,
						searchResponse: false,
						matchCase: false,
						delay: 100,
						formatItem: function(itemText) {
							return '<i>' + itemText + '</i>';
						},
						query: 'q'
					}
				);
			});
		}
};
//
// Define common methods
//
var Common = {
	txtLimitStr: 'Còn lại <strong>%s</strong> ký tự',
	cssHidden: 'none',
	cssError: 'txtErr bgErr',
	cssComp: 'txtComp bgCom',

	showMsg:
		function (objDiv, is_error, msg) {
			var cssBtnC;
			objDiv = zm('#' + objDiv);
			if (objDiv.size()) {
				objDiv.removeClass(Common.cssHidden);
				objDiv.removeClass('txtErr');
				objDiv.removeClass('txtComp');
				objDiv.removeClass('bgErr');
				objDiv.removeClass('bgCom');
				if (is_error == 0) {
					objDiv.addClass(Common.cssComp);
					cssBtnC = 'cls_com';
				} else {
					objDiv.addClass(Common.cssError);
					cssBtnC = 'cls_war';
				}
				msg = '<a class="icon ' + cssBtnC + '" style="top: 5px; right: 5px;" id="_errBtnC"></a><strong>' + msg + '</strong>';
				objDiv.html(msg);
			}
			zm('#_errBtnC').click( function () {
				objDiv.addClass(Common.cssHidden);
			});
			//setTimeout(function () {objDiv.addClass(Common.cssHidden)}, 2000);
		},
	setFocus:
		function(obj){
			obj.focus();
		},
	showHide:
		function(obj){
			if (obj.attr('class').search(Common.cssHidden) != -1) {
				obj.removeClass(Common.cssHidden);
			} else{
				obj.addClass(Common.cssHidden);
			}
			return false;
		},
	doChangeHref:
		function(href) {
			location.href = href;
		},
	activeMenu:
		function(name, css, flagIndex, type, cssBonus, flagBonus){
			var arrZingMenu = document.getElementsByName(name);
			var href		= location.pathname.split("/");
			switch(type){
				case 'main':
					var count = 0;
					for (var i = 0; i < arrZingMenu.length; i++) {
						if (arrZingMenu[i].href.search('/' + href[flagIndex]) != -1) {
							arrZingMenu[i].className = arrZingMenu[i].className + " " + css;
							zm('#' + arrZingMenu[i].id + 'li').addClass(cssBonus);
							count++;
							break;
						}
					}
					if (count == 0) arrZingMenu[0].className = arrZingMenu[0].className + " " + css;
				break;
				case 'sub':
					temp = href[flagIndex].split(".");
					if(temp.length > 2)	hrefString = temp[0];
					else hrefString = href[flagIndex];
					for (var i = 0; i < arrZingMenu.length; i++) {
						if (arrZingMenu[i].href.search('/' + hrefString) != -1 && arrZingMenu[i].href.search('/' + href[flagIndex-1]) != -1) {
							arrZingMenu[i].className = css;
							break;
						}
					}
				break;
				case 'bonus':
					var temp = location.search;
					var count = 0;
					for (var i = 0; i < arrZingMenu.length; i++) {
						if (arrZingMenu[i].rel != '' && temp.search(arrZingMenu[i].rel) != -1) {
							arrZingMenu[i].className = css;
							count++;
							break;
						}
					}
					if (count == 0 && flagBonus == 1) arrZingMenu[0].className = css;
				break;
				case 'general':
					var count = 0;
					var index = flagIndex.split('-');
					var ptrm = href[index[0]] + '/' + href[index[1]];
					for (var i = 0; i < arrZingMenu.length; i++) {
						if (arrZingMenu[i].href.search('/' + ptrm) != -1) {
							arrZingMenu[i].className = arrZingMenu[i].className + " " + css;
							zm('#' + arrZingMenu[i].id + 'li').addClass(cssBonus);
							count++;
							break;
						}
					}
				break;
				case 'allink':
					var count = 0;
					var ptrm = href[flagIndex] + '-' + location.search.substr(1, location.search.length);
					var itemHref;
					for (var i = 0; i < arrZingMenu.length; i++) {
						itemHref = arrZingMenu[i].href.split('?');
						temp = itemHref[0] + '-' + itemHref[1];
						if (temp.search(ptrm) != -1) {
							arrZingMenu[i].className = arrZingMenu[i].className + " " + css;
							zm('#' + arrZingMenu[i].id + 'li').addClass(cssBonus);
							count++;
							break;
						}
					}
				break;
			}
		},
	activeTab:
		function (id1, id2, id3, id4, id5, cssAct, cssBg) {
			var show1 = zm('#' + id1 + 'Shw');
			var show2 = zm('#' + id2 + 'Shw');
			var show3 = zm('#' + id3 + 'Shw');
			var show4 = zm('#' + id4 + 'Shw');
			var show5 = zm('#' + id5 + 'Shw');
			var tab1 = zm('#' + id1 + 'Tab');
			var tab2 = zm('#' + id2 + 'Tab');
			var tab3 = zm('#' + id3 + 'Tab');
			var tab4 = zm('#' + id4 + 'Tab');
			var tab5 = zm('#' + id5 + 'Tab');

			show1.removeClass(Common.cssHidden);
			show2.addClass(Common.cssHidden);
			show3.addClass(Common.cssHidden);
			show4.addClass(Common.cssHidden);
			show5.addClass(Common.cssHidden);

			tab1.removeClass(cssBg);
			tab1.addClass(cssAct);
			tab2.removeClass(cssAct);
			tab2.addClass(cssBg);
			tab3.removeClass(cssAct);
			tab3.addClass(cssBg);
			tab4.removeClass(cssAct);
			tab4.addClass(cssBg);
			tab5.removeClass(cssAct);
			tab5.addClass(cssBg);
			return false;

		},
	activeTab2:
		function (id1, id2, id3, cssAct, cssBg) {
			var tab1 = zm('#' + id1 + 'Tab');
			var tab2 = zm('#' + id2 + 'Tab');
			var tab3 = zm('#' + id3 + 'Tab');

			tab1.removeClass(cssBg);
			tab1.addClass(cssAct);
			tab2.removeClass(cssAct);
			tab2.addClass(cssBg);
			tab3.removeClass(cssAct);
			tab3.addClass(cssBg);
			zm('#' + id3 + 'Shw').addClass(Common.cssHidden);
			return false;

		},
	fullScreen:
		function (objShw, objPlayer, objRightCol, objShare, objLine) {
			if(objShw.size()){
				var zoom = zmCore.cookie('zoomsizeplayer');			
				if (zoom=='true') {
					objShw.removeClass('wpl');
					objPlayer.attr('width', 960);
					objPlayer.attr('height', 574);
					objRightCol.removeClass('mgrcol');
					if(MP3.BANNER_OFF!=1) Ads.changePositionBanner();
					objShare.addClass('mgplayer');
					objLine.addClass('mgplayer');
					zm('#_btmPlayerVideo').addClass('mgplayer');
				} else {
					objShw.addClass('wpl');
					objPlayer.attr('width', 653);
					objPlayer.attr('height', 401);
					objRightCol.addClass('mgrcol');
					if(MP3.BANNER_OFF!=1) Ads.changePositionBanner();
					objShare.removeClass('mgplayer');
					objLine.removeClass('mgbottom7');
					objLine.removeClass('mgplayer');
					zm('#_btmPlayerVideo').removeClass('mgplayer');
				}
			}
		},
	fullLyrics:
		function (obj, is_show) {
			var id = obj.attr('id');
			if (is_show) {
				zm('#_vrs' + id + 'ShwnP').addClass(Common.cssHidden);
				zm('#_vrs' + id + 'HideP').removeClass(Common.cssHidden);
				zm('#_vrs' + id + 'Content').removeClass('hLyric');
			} else {
				zm('#_vrs' + id + 'ShwnP').removeClass(Common.cssHidden);
				zm('#_vrs' + id + 'HideP').addClass(Common.cssHidden);
				zm('#_vrs' + id + 'Content').addClass('hLyric');
			}
		},
	fullArtistInfo:
		function (objBtn, objShwn) {
			if (objShwn.attr('class').search('hsinger') != -1) {
				objShwn.removeClass('hsinger');
				objBtn.addClass('hideLyric').removeClass('aLyric');
				objBtn.html('Ẩn toàn bộ');
			} else {
				objShwn.addClass('hsinger');
				objBtn.removeClass('hideLyric').addClass('aLyric');
				objBtn.html('Xem toàn bộ');
			}
		},
	fullInfoArtist:
		function (objBtn, objShwn) {
			if (objShwn.attr('class').search('hsinger') != -1) {
				objShwn.removeClass('hsinger');
				objBtn.html('Ẩn toàn bộ');
			} else {
				objShwn.addClass('hsinger');
				objBtn.html('Xem toàn bộ');
			}
		},
	turnOnOffVnKey:
		function (objCheck) {
			if (objCheck.attr('checked') == true) {
				AVIMGlobalConfig.onOff = 1; /* turn on vn Key*/
			} else {
				AVIMGlobalConfig.onOff = 0; /* turn off vn Key*/
			}
		},
	mbxLoading:
		function () {
			var mbx = new zmCore.Boxy({
				title: 'Thông báo',
				content:'<div class="wkichhoat">'+
						'<div class="f12 txtBlack">'+
						'<p class="txtCenter pdbottom10 pdtop5"><img width="220" height="19" src="'+MP3.STATIC_PATH+'images/loading2.gif"></p>'+
						'<strong>Hệ thống đang tiến hành xử lý. Vui lòng chờ trong giây lát...</strong></div>'+
						'</div>',
				modal: true
			});
				mbx.show();
				return mbx;
		},
	msgBox:
		function (content) {
			var mbx = new zmCore.Boxy({
				title: 'Thông báo',
				content:'<div class="wkichhoat">'+
						'<div class="f12 txtBlack">'+content+'</div>'+
						'</div>',
				modal: true,
				okButton: 'Đồng ý',
				onOk: function () {
					this.hide();
				}
			});
				mbx.show();
				return mbx;
		},
	fullAlbumInfo:
		function (objBtn, objShwn) {
			if (objShwn.attr('class').search('rows2') != -1) {
				objShwn.removeClass('rows2');
				objBtn.addClass('hideLyric').removeClass('aLyric');
				objBtn.html('Rút gọn');
			} else {
				objShwn.addClass('rows2');
				objBtn.removeClass('hideLyric').addClass('aLyric');
				objBtn.html('Xem thêm');
			}
		},
	/* kiem tra banner co dang o che do off */
	detectBannerAds:
		function()
		{
			if (MP3.BANNER_OFF) {
				zm('._bannerAdsTop').addClass('adv2'); // tat banner top
				zm('._bannerAds').remove();	// tat cac banner con lai
			}
		}

};
//
// Define Validate methods
//
var Validate = {
	checkNumber:
		function (value) {
			var regexp = /^-{0,1}\d*\.{0,1}\d+$/;
			return regexp.test(value);
		},
	checkUrl:
		function (value) {
			var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
			return regexp.test(value);
		},
	checkRequired:
		function (value) {
			if (!value) {
				return false;
			} else {
				return true;
			}
		},
	isUrl:
		function (obj, required) {
			if (required && !Validate.checkRequired(obj.val()) && !Validate.checkUrl(obj.val())) {
				Validate.showAlert(obj);
			} else if (obj.val() && !Validate.checkUrl(obj.val())) {
				Validate.showAlert(obj);
				return false;
			} else {
				Validate.hideAlert(obj);
			}
		},
	isNumber:
		function (obj, required) {
			if (required && !Validate.checkRequired(obj.val()) && !Validate.checkNumber(obj.val())) {
				Validate.showAlert(obj);
			} else if (obj.val() && !Validate.checkNumber(obj.val())) {
				Validate.showAlert(obj);
				return false;
			} else {
				Validate.hideAlert(obj);
			}
		},
	isText:
		function (obj) {
			if (!Validate.checkRequired(obj.val())) {
				Validate.showAlert(obj);
				return false;
			} else {
				Validate.hideAlert(obj);
			}
		}
};
var MP3Comment = {
	urlGet:MP3.INTERACTION_URL+'comment',
	urlRequest:MP3.MP3_URL+'comment',
	container:'_commentList',
	type:'song',
	defaultValue:'Vui lòng nhập tiếng Việt có dấu.',
	chars:0,
	init:function(inp,btnSubmit)
	{
		MP3Comment.type = zm('#'+MP3Comment.container).attr('otype');
		zm('#'+btnSubmit).click(function(){
			return MP3Comment.addComment('_mbxComment',zm('#'+inp));
		});
		zm('#_commnetNotiBtnC').click(function(){
			zm('#_commentNotiBox').addClass(Common.cssHidden);
		});
		zm('#'+inp).click(function(){
			if(this.value==MP3Comment.defaultValue) this.value='';
			MP3Comment.charsCounter(inp);
		});
		zm('#'+inp).keydown(function(e){
			if(e.keyCode==13 && !e.shiftKey) {
				MP3Comment.addComment('_mbxComment',zm('#'+inp));
				return false;
			} else if(e.keyCode == 32){
				var content = zm('#'+inp).val();
				return content.length>0?content.charCodeAt(content.length-1)!=32:false;
			}
		}).keyup(function(e){
				MP3Comment.charsCounter(inp);
		}).focus(function(e){
				MP3Comment.charsCounter(inp);
		});
		/* bo emoticon
		try{zm('#_lnkCommentEmo').attachEmoButtons('_txt');} catch(e){}
		zm('#_lnkCommentEmo').click(function(e){
			var content = zm('#'+inp).val();
			if(content==MP3Comment.defaultValue) zm('#'+inp).val('');
			return false;
		});
		*/
		var idItem =zm('#'+MP3Comment.container).attr('oid');
		MP3Comment.refresh(idItem, 1,true);
	},
	charsCounter:function(inp){
		var content = zm('#'+inp).val();
		var len = content.length;
		if(len>0 && content.charCodeAt(len-1)==32) len--;
		zm('#_commentChars').html(len +' ký tự');
	},
	renderPage:function()
	{
		var idItem =zm('#'+MP3Comment.container).attr('oid');
		zm('._commentDel').click(function(){
			MP3Comment.removeComment(idItem,zm(this).attr('rel'));
		});
		zm('.pageLink').click(function(){
			MP3Comment.refresh(idItem, zm(this).attr('rel'));
		});
		zm('._contentComment').each(function(){
			zm(this).html(MP3BadWord.filter(zm(this).html()));
		});
	},
	showMsg:function(errDiv, isErr,msg){
		zm('#_commentNotiBox').addClass(Common.cssHidden);
		if(isErr){
			MP3MessageBox.show(msg, '_errComment');
			zm('#_msgCommentDiv').addClass(Common.cssHidden);
			zm('#_errCommentBtnC').click( function () {
				zm('#_commentNotiBox').removeClass(Common.cssHidden);
			});
		} else {
			MP3MessageBox.show(msg, '_msgComment');
			zm('#_errCommentDiv').addClass(Common.cssHidden);
			zm('#_msgCommentBtnC').click( function () {
				zm('#_commentNotiBox').removeClass(Common.cssHidden);
			});
		}
	},
	addComment:function(errDiv, obj){
		if(Login.confirmLogin())
		{
			var idItem = obj.attr('oid');
			var content = obj.val();
			content = content.trim();
			zm('#_txtComment').val(content);
			if(content == MP3Comment.defaultValue)
			{
				MP3Comment.showMsg(errDiv, 1, 'Bạn cần nhập nội dung bình luận.');
			}
			else if(content.length<50)
			{
				MP3Comment.showMsg(errDiv, 1, 'Nội dung bình luận cần ít nhất 50 ký tự.');
			}
			else if(content.length>900)
			{
				MP3Comment.showMsg(errDiv, 1, 'Nội dung bình luận chỉ cho phép tối đa 900 ký tự.');
			}
			else if (idItem) {
				zmCore.post(MP3Comment.urlRequest+'/add', 
					{'oid': idItem, 'content': content,'type':MP3Comment.type},
					{'dataType': 'json'},
					function(data) {
						if(!data.is_error)
						{
							if(data.result){
								zm('#'+MP3Comment.container).html(data.result);
								zm('#'+MP3Comment.container).attr('cpage',1);
								zm('#_pagination').html(data.paging);
								MP3Comment.renderPage();
								zm('.txtComment').renderEmotions();
								zmCore.addScript(MP3.ME_WIDGET_URL + 'js/zingme_widget_ex_1.7.1.min.js', function () {ZME_widget_mix();});
							}
							zm('#_txtComment').val('');
						}
						MP3Comment.showMsg(errDiv, data.is_error, data.note);
						MP3Comment.charsCounter(inp);
				});
			}
		}
	},
	removeComment:function(oid,cid){
		zmCore.post(MP3Comment.urlRequest+'/remove',
			{'oid': oid, 'cid': cid,'type':MP3Comment.type},
			{'dataType': 'json'},
			function(data) {
				if(!data.is_error)
				{
					var cpage = zm('#'+MP3Comment.container).attr('cpage');
					MP3Comment.refresh(oid, cpage, true);
				}
		});
	},
	refresh:function(idItem,page, force)
	{
		page = parseInt(page);
		if(force=='undefined' || !force)
		{
			var cpage = zm('#'+MP3Comment.container).attr('cpage');
			force = cpage=='undefined'?false:!(page==parseInt(cpage));
		}
		if(force)
		{
			var url = MP3Comment.urlGet+'/loadpage?oid='+idItem+'&page='+page+'&type='+MP3Comment.type;
			zmCore.getJSON(url,
				{'dataType': 'json'},
				function(data) {
					if(!data.is_error)
					{
						zm('#'+MP3Comment.container).html(data.result);
						zm('#'+MP3Comment.container).attr('cpage',page);
						zm('#_pagination').html(data.paging);
						MP3Comment.renderPage();
						zm('.txtComment').renderEmotions();
						zmCore.addScript(MP3.ME_WIDGET_URL + 'js/zingme_widget_ex_1.7.1.min.js', function () {ZME_widget_mix();});
					}
			});
		}
	}
};
var TopMenu = {
	urlRequest:MP3.MP3_URL+'ajax/menu/list',
	mnuList:['_mainMenuMusic','_mainMenuVideo','_mainMenuChart','_mainMenuMy'],
	mnuActive:'',
	loading:false,
	init:function(){
		zm('#_mainMenuMusic').mouseenter(function(){TopMenu.showMenu('_mainMenuMusic');});
		zm('#_mainMenuVideo').mouseenter(function(){TopMenu.showMenu('_mainMenuVideo');});
		zm('#_mainMenuChart').mouseenter(function(){TopMenu.showMenu('_mainMenuChart');});
		zm('#_mainMenuMy').mouseenter(function(){TopMenu.showMenu('_mainMenuMy');});

		zm('#_mainMenuMusic').mouseleave(function(){TopMenu.hideMenu('_mainMenuMusic');});
		zm('#_mainMenuVideo').mouseleave(function(){TopMenu.hideMenu('_mainMenuVideo');});
		zm('#_mainMenuChart').mouseleave(function(){TopMenu.hideMenu('_mainMenuChart');});
		zm('#_mainMenuMy').mouseleave(function(){TopMenu.hideMenu('_mainMenuMy');});
		zm('#_mainMenuEvent').mouseenter(function(){TopMenu.showMenu('_mainMenuEvent');}).mouseleave(function(){TopMenu.hideMenu('_mainMenuEvent');});
	},
	hideMenu:function(mnu){
		zm('#'+mnu+'Link').removeClass('active');
		zm('#'+mnu+'Items').addClass(Common.cssHidden);
		TopMenu.mnuActive = '';
	},
	showMenu:function(mnu){
		TopMenu.mnuActive = mnu;
		if(((MP3.ACCOUNT_NAME && zm('#_mainMenuMyItems').html().trim().length <20)) || zm('#_mainMenuMusicItems').html().trim().length <20) TopMenu.renderMenu(true);
		else TopMenu.renderMenu(false);
	},
	renderMenu:function(reload){
		if(reload && !TopMenu.loading)
		{
			TopMenu.loading = true;
			zmCore.get(TopMenu.urlRequest,
				{'dataType':'json'},
					function(data){
						zm('#_mainMenuMusicItems').html(data.music);
						zm('#_mainMenuVideoItems').html(data.video);
						zm('#_mainMenuChartItems').html(data.chart);
						zm('#_mainMenuMyItems').html(data.my);
						zm('#_mainMenuEventItems').html(data.event);
						TopMenu.renderMenu(false);
						TopMenu.loading = false;
				});
		}
		else
		{
			for(var i=0;i<TopMenu.mnuList.length;i++)
			{
				zm('#'+TopMenu.mnuList[i]+'Link').removeClass('active');
				zm('#'+TopMenu.mnuList[i]+'Items').addClass(Common.cssHidden);
			}
			if(TopMenu.mnuActive.length>2)
			{
				zm('#'+TopMenu.mnuActive+'Link').addClass('active');
				zm('#'+TopMenu.mnuActive+'Items').removeClass(Common.cssHidden);
			}
		}
	}
};
if (zm('#_rghTwoCol').size() && zm("#_cScreenShw").size()) {
	zm('#_rghTwoCol').addClass('mgrcol');
}
Css.changeCssMulti(zm('#_idContent3Col'), 'vline', 'tim-kiem,nhac,chu-de,the-loai-album,the-loai-bai-hat');
Css.changeCssMulti(zm('#_idRight3Col'), 'rSearch', 'tim-kiem,cpanel,nhac,chu-de,the-loai-album,the-loai-bai-hat');
Css.changeCssSpec(zm('#_idContent3Col'), 'vline', 'video');
Css.changeCssSpec(zm('#_idRight3Col'), 'rSearch', 'video');
Css.changeCssMulti(zm('#_rghTwoCol'), 'rSearch', 'tim-kiem');
if (location.search.length < 2) {
	Css.removeCssSpec(zm('#_idRight3Col'), 'rSearch', 'chu-de', 3);
}
var MP3SongPlay = {
	sendReport:function(obj){
		if(Login.confirmLogin()){
			var rType = zm('#_reportType').val();
			var rId = obj.attr('rel');
			rType = rType.trim();
			var rContent =rType;
			var rLink = location.href;
			var length = rType.length;
			if(length==0)
			{
				Common.showMsg('_errDiv', 1, 'Vui lòng chọn nguyên nhân');
				return false;
			}
			else if(length<5)
			{
				rContent = zm('#_reportContent').val();
				rContent = rContent.trim();
				length = rContent.length;
				if(length<10)
				{
					Common.showMsg('_errDiv', 1, 'Nội dung phản hồi cần ít nhất 10 ký tự.');
					return false;
				}
				else if(length>4000)
				{
					Common.showMsg('_errDiv', 1, 'Nội dung phản hồi vượt quá giới hạn cho phép (4000 ký tự).');
					return false;
				}
			}
			MP3FeedBack.post(1,rContent,rLink,MP3SongPlay.hSendReport);
			document.getElementById('_reportType').selectedIndex=0;
		}
	},
	hSendReport:function(data){
		Common.showMsg('_errDiv', data.is_error, data.note);
		if(!data.is_error) zm('#_btnReportShw').addClass(Common.cssHidden);
	},
	closeReport:function(){
		document.getElementById('_reportType').selectedIndex=0;
		zm('#_reportOther').addClass(Common.cssHidden);
		zm('#_btnReportShw').addClass(Common.cssHidden);		
	}
};
var MP3PlaylistPlay = {
	init:function(){
		zm('#_plContainer').children('li').each(function(){
			zm(this).mouseleave(function(){
					zm(this).removeClass('bglist');
			});
			zm(this).mouseenter(function(){
					zm(this).addClass('bglist');
			});
		});
	}
};
var MP3MessageBox = {
	show:function (msg,prefix) {
			prefix = '#'+prefix;
			zm(prefix+'Div').removeClass(Common.cssHidden);
			zm(prefix+'Msg').html(msg);
			zm(prefix+'BtnC').click(function(){
				zm(prefix+'Div').addClass(Common.cssHidden);
			});
	},
	hideMsg:function(prefix)
	{
		if(!prefix) var prefix = '_msg';
		zm('#'+prefix+'Div').addClass(Common.cssHidden);
	},
	hideError:function(prefix)
	{
		if(!prefix) var prefix = '_err';
		zm('#'+prefix+'Div').addClass(Common.cssHidden);
	},
	showMsg:function(msg, prefix){
		if(!prefix) var prefix = '_msg';
		MP3MessageBox.show(msg, prefix);
	},
	showError:function(msg, prefix){
		if(!prefix) var prefix = '_err';
		MP3MessageBox.show(msg, prefix);
	}
};
var MP3VideoPlay = {
	init:function(){
		Common.fullScreen(zm("#_cScreenShw"), zm("#flvPlayer"), zm('#_rghTwoCol'), zm('#_btnShareShw'), zm('#_lineShare'));
	}
};
var MP3FeedBack = {
	url:MP3.MP3_URL+'ajax/feed-back',
	init:function(){
		zm('._feedBackBtn').click(function(e){
			MP3FeedBack.displayForm();
			return false;
		});
	},
	frm:'',
	displayForm:
		function () {
			if (Login.confirmLogin()) {
				var formFB = '<iframe name="_ifrFeedBack" id="_ifrFeedBack" width="0" height="0" frameborder="0"></iframe><form nane="_frmFeedBack" id="_frmFeedBack" method ="post"  action="' + MP3FeedBack.url + '" target="_ifrFeedBack">' +
					'<div id="_errFeedBackMsg" class="errlog txtErr first last txtCenter none"></div>'+
					'<div class="feedback">'+
					'<div class="Frow"><span class="tit">Chủ đề: <span class="abbr">*</span></span><span class="boxin"><select name="subject" id="_fbSubject">'+
					'<option value="">Vui lòng chọn loại phản hồi</option><option value="1">Báo lỗi</option><option value="2">Góp ý nội dung</option><option value="3">Yêu cầu chức năng</option><option value="4">Khác</option>'+
					'</select></span><div class="clr"></div></div>'+
					'<div class="Frow"><span class="tit">Link:</span><span class="boxin"><input type="text" name="link" id="_fbLink" value="'+ location.href +'" /></span><div class="clr"></div></div>'+
					'<div class="Frow"><span class="tit">Mô tả: <span class="abbr">*</span></span><span class="boxin"><textarea name="content" id="_fbContent" rows="10"></textarea></span><div class="clr"></div></div>'+
					'</div>'+
					'</form>';
				if(!MP3FeedBack.frm) {
					MP3FeedBack.frm = new zmCore.Boxy({
						title: 'Góp ý / Báo lỗi',
						content: formFB,
						modal: true,
						okButton: 'Đồng ý',
						onOk:function() {
							var su = zm('#_fbSubject').val();
							var co = zm('#_fbContent').val();
							var li = zm('#_fbLink').val();
							if (!su) {
								zm('#_errFeedBackMsg').removeClass(Common.cssHidden).html('Vui lòng chọn chủ đề');
								Common.setFocus(zm('#_fbSubject'));
							} else if (!co) {
								zm('#_errFeedBackMsg').removeClass(Common.cssHidden).html('Vui lòng nhập nội dung');
								Common.setFocus(zm('#_fbContent'));
							} else {
								MP3FeedBack.post(su,co,li,MP3FeedBack.hOk);
							}
							return false;
						}
					});
				}
				MP3FeedBack.frm.show();
				Common.setFocus(zm("#_fbContent"));
			}
		},
	hOk:function(data){
			if(!data.is_error) {
				MP3FeedBack.frm.hide(true);
				Common.msgBox(data.note);
			} else zm('#_errFeedBackMsg').removeClass(Common.cssHidden).html(data.note);
		},
	post:function(su, co, li, cbFn) {
		zmCore.post(MP3FeedBack.url,
			{'subject': su,'content':co,'link':li},
			{'dataType': 'json'},
			function(data) {
				return cbFn(data);
		});
	}
};
function Get_Cookie( check_name ) 
{
	return zmCore.cookie(check_name);
}
var MP3Notification = {
	timer:null,
	idx:0,
	msg:[],
	init:function(){
		if(zm('#_notiBox').size()) {
			zmCore.get(MP3.MP3_URL+'ajax/notification',
			{'dataType':'json'},
				function(data){
					if(data.msg && data.msg.length>0){
						zm('#_notiBox').addClass('alert bgType2');
						MP3Notification.msg = data.msg;
						MP3Notification.change();
					}
					if(MP3Notification.msg.length==0) zm('#_notiBox').addClass(Common.cssHidden);  
					if(MP3.BANNER_OFF!=1) Ads.changePositionBanner();
			});
		}
	},
	change:function(){
			if(MP3Notification.idx<MP3Notification.msg.length){
				zm('#_notiBox').html(MP3Notification.msg[MP3Notification.idx]);
				MP3Notification.idx++;
			} else MP3Notification.idx = 0;
			setTimeout('MP3Notification.change();',5000);
		}
};
var MP3BadWord = {
	filter:function(str){
		if(MP3.BAD_WORDS && MP3.BAD_WORDS.length){
			str = str.replace(eval('/'+MP3.BAD_WORDS+'/gi'),'***');
		}
		return str;
	}
};
var MP3SingerProfile = {
	url:MP3.MP3_URL+'ajax/singer-profile/',
	loading:'',
	form:null,
	dformat:'dd/mm/yyyy',
	init:function(){
		zm('#_btnProfileChg').click(function(){
			if (Login.confirmLogin()) {
				MP3SingerProfile.loadForm(zm(this).attr('rel'));
			}
			return false;
		});
	},
	loadForm:function(id){
		if(!MP3SingerProfile.form){
			zmCore.get(MP3SingerProfile.url+'get-form?aid='+id,{'dataType':'json'},
					function(data){
						MP3SingerProfile.loading='';
						if(data.is_error){
							Common.msgBox(data.note);
						} else {
							MP3SingerProfile.form = new zmCore.Boxy({
								title: 'Thông tin ca sĩ',
								content: data.result,
								modal: true,
								okButton: 'Đồng ý',
								cancelButton: 'Hủy bỏ',
								onOk:function() {
									var name = zm('#_sname').val();
									var web = zm('#_sweb').val();
									var alias = zm('#_salias').val();
									var zone = zm('#_szone').val();
									var genre = zm('#_sgenre').val();
									var dob = zm('#_sdob').val();
									var summary = zm('#_ssummary').val();
									var regEx = /^\d{1,2}[\/\-]\d{1,2}([\/\-]\d{4})?$/;
									if(dob==MP3SingerProfile.dformat) dob ='';
									if(name.length<1){
										MP3SingerProfile.showError('_errProfileMsg','Vui lòng nhập tên ca sĩ.');
										zm('#_sname').focus();
										return false;
									} else if(summary.length>4000){
										MP3SingerProfile.showError('_errProfileMsg','Thông tin lý lịch chỉ cho phép nhập tối đa 4000 ký tự.');
										zm('#_ssummary').focus();
										return false;
									} else if(dob && !regEx.test(dob)){
										MP3SingerProfile.showError('_errProfileMsg','Ngày sinh không hợp lệ.');
										zm('#_sdob').focus();
										return false;
									}
									if(MP3SingerProfile.loading.length<2){
										MP3SingerProfile.loading = id;
										zmCore.post(MP3SingerProfile.url+'change',
											{'id':id,'name': name,'web':web,'alias':alias,'zone':zone,'genre':genre,'dob':dob,'summary':summary},
											{'dataType': 'json'},
											function(data) {
												MP3SingerProfile.loading='';
												if(data.is_error) MP3SingerProfile.showError('_errProfileMsg',data.note);
												else {
													MP3SingerProfile.form.hide();
													if(data.note) Common.msgBox(data.note);
												}
												
										});
									}
									return false;
								}
							});
							MP3SingerProfile.form.show();
							if(zmCore.browser.msie && zmCore.browser.version=='6.0') zm('.zme-boxy').css('width',500);
							else zm('.zme-boxy').css('width','auto');
							MP3SingerProfile.loadGenre(zm('#_szone').val());
							zm('#_sdob').val(MP3SingerProfile.dformat);
							zm('#_szone').change(function(){
								MP3SingerProfile.loadGenre(zm(this).val());
								return false;
							});
							zm('#_sdob').focus(function(){
								if(zm(this).val()==MP3SingerProfile.dformat) zm('#_sdob').val('');
								return false;
							}).blur(function(){
								if(zm(this).val()=='') zm('#_sdob').val(MP3SingerProfile.dformat);
								return false;
							});
						}
				});
			} else {
				MP3SingerProfile.form.show();
			}
			MP3SingerProfile.showError('_errProfileMsg','');
	},
	loadGenre:function(id){		
		zmCore.get(MP3SingerProfile.url+'get-genre?id='+id,{'dataType':'json'},
				function(data){
					MP3SingerProfile.loading='';
					if(data.is_error){
						Common.msgBox(data.note);
					} else {
						//zm('#_sgenre').remove();
						var n = data.result.length;
						var genreEl = document.getElementById('_sgenre');
						while(genreEl.length>0) genreEl.remove(genreEl.length-1);
						if(n>0){
							genreEl.disabled = false;
							for(i=0; i<n; i++){
								var item = data.result[i];
								genreEl.options[i] = new Option(item.title,item.id);
							}
						} else {
							genreEl.disabled=true;
						}
					}
			});
	},
	showError:function(id, msg){
		zm('#'+id).removeClass(Common.cssHidden).html(msg);
	}
};
