// ------------------------------------------------------------------------------------------ Config
var config = {
	'player_title'				: 'Teencp.net media player',
	'player_minimize'			: false,
	'player_autoStart'		: true,
	'player_contextMenu'	: false,
	'player_selectText'		: false,
	'player_autoScroll'		: false,
	'player_next_onError'	: true,
	'playlist_control'		: 'DblClick',									// Click, DblClick
	'playlist_autoScroll'	: true,
	'timer_autoStart'			: 500,
	'timer_status'				: 200,
	'timer_new'						: 500,
	'list_title_length'		: 245,
	'opt_random'					: 'on',												// on, off
	'opt_repeat'					: 'all',											// all, track, off
	'home_URL'						: [false, '127.0.0.1/forum_', 'localhost/forum_'],
	'media_URL'						: 'http://127.0.0.1/null.mp3',
	'media_Volume'				: 100,												// 0 ~> 100
	'media_contextMenu'		: false,
	'media_stretchToFit'	: true,
	'embed_width'					: 300,
	'embed_height'				: 42,
	'embed_loop'					: 1,
	'embed_autoStart'			: true,
	'embed_contextMenu'		: true,
	'embed_default_str'		: 'No media loaded',
	'bbCode_Name'					: 'MEDIA',
	'bbCode_Forum'				: 'MUSIC',
	'download_support'		: ['Teencp.net', 'http://teencp.net/forum'],	// Không sửa mục này
	'main_tabs'						: ['Bài hát', 'Chia sẻ', 'Hướng dẫn'],
	'main_tabs_control'		: 'Click'	// Click, MouseOver
}
// ---------------------------------------------------------------------------- Javascript Functions
var curMedia = -1;
var mediaList = new Array();
var sRandom = new Array();
var sRepeat = new Array();
var sMinimize = new Array();
function echo(str) {
	return document.writeln(str);
}
function obj(id) {
	return document.getElementById(id);
//	else return false;
}
function randomNum(min, max) {
	if (!max) { var max = min; var min = 0 }
	if (max < min) { var temp = min; var max = min; var min = temp }
	var ranNum = Math.random() * (max-min);
	return (Math.round(ranNum) + min);
}
function objW(id) {
	if (obj(id)) return obj(id).offsetWidth;
	else return false;
}
function objH(id) {
	if (obj(id)) return obj(id).offsetHeight;
	else return false;
}
function urlDecode(url) {
	return url.replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&quot;/g, '"').replace(/&amp;/g, '&');
}
document.writeln('<div id="transporter" style="position: absolute; top: -9511px"></div>');
function stringCut(string, width, font, size) {
	if (font) obj('transporter').style.fontFamily = font;
	if (size) obj('transporter').style.fontSize = size;

	obj('transporter').innerHTML = string;
	if (obj('transporter').offsetWidth > width) {
		while (obj('transporter').offsetWidth > width) {
			var wSpace = string.lastIndexOf(' ');
			if (wSpace > 0) {
				string = string.substr(0, wSpace);
				if (string.lastIndexOf('..') < string.length - 2) string += '...';
				obj('transporter').innerHTML = string;
			} else {
				break;
			}
		}
	}
	return string;
}
function btnHLight(btnID, state, posX) {
	var posY = 0;
	switch (state) {
		case 'over' : posY = -13; break;
		case 'out'	: posY = 0; break;
		case 'down'	: posY = -26; break;
		case 'up'		: posY = -13; break;
	}
	obj(btnID).style.backgroundPosition = posX + 'px ' + posY + 'px';
}
function optHLight(btnID, randID, state, opt) {
	var posX; var posY;
	if (opt == 'random') var value = sRandom[randID];
	else if (opt == 'repeat') var value = sRepeat[randID];
	switch (value) {
		case 'all' : posX = '-102px'; break;
		case 'track' : posX = '-132px'; break;
		case 'on' : posX = '-36px'; break;
		case 'off' : if (opt == 'repeat') posX = '-72px'; else posX = '0px'; break;
	}
	switch (state) {
		case 'over' : posY = '-14px'; break;
		case 'out' : posY = '0px'; break;
		case 'down' : posY = '-28px'; break;
		case 'up' : posY = '-14px'; break;
	}
	obj(btnID).style.backgroundPosition = posX + ' ' + posY;
}
function _minimize(randID) {
	sMinimize[randID] = !sMinimize[randID];
	if (sMinimize[randID]) {
		var title = 'Restore';
		var display = 'none';
	} else {
		var title = 'Minimize';
		var display = 'block';
	}

	if (curMedia != -1) {
		var getRandID = mediaList[curMedia][1];
		if (randID == getRandID) mediaClear(curMedia);
	}
	obj('main-center-content-' + randID).style.display = display;
	obj('minimize-' + randID).title = title;
}
function _close(randID) {
	if (curMedia != -1) {
		var getRandID = mediaList[curMedia][1];
		if (randID == getRandID) {
			clearInterval(timer_status);
			mediaClear(curMedia);
		}
	}
	obj('main-player-' + randID).style.display = 'none';
//	document.getElementsByTagName('body')[0].removeChild(obj('main-player-' + randID));
}
// -------------------------------------------------------------------------- Media Player Functions
function mediaRandom(randID) {
	var value = sRandom[randID]; var title;
	switch (value) {
		case 'on' : sRandom[randID] = 'off'; title = 'Random: Off'; break;
		case 'off' : sRandom[randID] = 'on'; title = 'Random: On'; break;
	}
	optHLight('random-randID_' + randID, randID, 'up', 'random');
	obj('random-randID_' + randID).title = title;
}
function mediaRepeat(randID) {
	var value = sRepeat[randID]; var title;
	switch (value) {
		case 'all' : sRepeat[randID] = 'track'; title = 'Repeat: Track'; break;
		case 'track' : sRepeat[randID] = 'off'; title = 'Repeat: Off'; break;
		case 'off' : sRepeat[randID] = 'all'; title = 'Repeat: All'; break;
	}
	optHLight('repeat-randID_' + randID, randID, 'up', 'repeat');
	obj('repeat-randID_' + randID).title = title;
}
function mediaPlay(songID, scroll) {
	var randID = mediaList[songID][1];
	var title = mediaList[songID][2];
	
	if (curMedia != songID && curMedia != -1) mediaClear(curMedia);
	mediaLoad(songID);
	if (config.playlist_autoScroll) mediaScroll(songID);
	if (config.player_autoScroll && scroll) {
		var curURL = window.location.toString().split('#');
		window.location = curURL[0] + '#main-player-' + randID;
	}
	curMedia = songID;
	timer_status = setInterval('mediaTime(' + songID + ')', config.timer_status);
}
function mediaLoad(songID) {
	var randID = mediaList[songID][1];
	var fileURL = urlDecode(mediaList[songID][3]);

	obj('song-id_' + songID + '-randID_' + randID + '-status').className = 'playlist-status-playing';
	obj('song-id_' + songID + '-randID_' + randID + '-string').className = 'playlist-string-playing';
	obj('embed-page-' + randID).value = window.location;
	obj('embed-file-' + randID).value = fileURL;
	obj('embed-forum-' + randID).value = '[' + config.bbCode_Forum + ']' + fileURL + '[/' + config.bbCode_Forum + ']';
	obj('embed-blog-' + randID).value = getTemplate('media-embed').replace('{url}', fileURL);
	obj('media-player-' + randID).URL = fileURL;
}
function mediaClear(songID) {
	clearInterval(timer_status);
	var randID = mediaList[songID][1];
	if (obj('song-id_' + songID + '-randID_' + randID + '-status').className == 'playlist-status-playing') obj('song-id_' + songID + '-randID_' + randID + '-status').className = '';
	if (obj('song-id_' + songID + '-randID_' + randID + '-string').className == 'playlist-string-playing') obj('song-id_' + songID + '-randID_' + randID + '-string').className = 'playlist-string';
	obj('status-content-' + randID).innerHTML = 'Ready';
	obj('status-content-' + randID).style.backgroundPosition = '4px 0px';
	obj('embed-page-' + randID).value = config.embed_default_str;
	obj('embed-file-' + randID).value = config.embed_default_str;
	obj('embed-forum-' + randID).value = config.embed_default_str;
	obj('embed-blog-' + randID).value = config.embed_default_str;
	obj('media-player-' + randID).URL = config.media_URL;
}
function mediaNext() {
	if (curMedia == -1) var randID = 0;
	else var randID = mediaList[curMedia][1];

	var tMedia = mediaList.length - 1;
	var newMedia = curMedia; var getRandID;
	if (sRepeat[randID] == 'track') {
		newMedia = curMedia;
	} else if (sRepeat[randID] == 'all') {
		if (sRandom[randID] == 'on') {
			newMedia = randomNum(0, tMedia);
			getRandID = mediaList[newMedia][1];
			var display = obj('main-player-' + getRandID).style.display;
			while (sMinimize[getRandID] || display == 'none') {
				newMedia = randomNum(0, tMedia);
				getRandID = mediaList[newMedia][1];
				var display = obj('main-player-' + getRandID).style.display;
			}
		} else if (sRandom[randID] == 'off') {
			newMedia++;
			if (newMedia > tMedia) newMedia = 0;
			getRandID = mediaList[newMedia][1];
			var display = obj('main-player-' + getRandID).style.display;
			while (sMinimize[getRandID] || display == 'none') {
				newMedia++;
				if (newMedia > tMedia) newMedia = 0;
				getRandID = mediaList[newMedia][1];
				var display = obj('main-player-' + getRandID).style.display;
			}
		}
	} else if (sRepeat[randID] == 'off') {
		if (sRandom[randID] == 'on') {
			newMedia = randomNum(0, tMedia);
			getRandID = mediaList[newMedia][1];
			while (randID != getRandID) {
				newMedia = randomNum(0, tMedia);
				getRandID = mediaList[newMedia][1];
			}
		} else if (sRandom[randID] == 'off') {
			newMedia++;
			if (newMedia > tMedia) newMedia = 0;
			getRandID = mediaList[newMedia][1];
			while (randID != getRandID) {
				newMedia++;
				if (newMedia > tMedia) newMedia = 0;
				getRandID = mediaList[newMedia][1];
			}
		}
	}
	mediaPlay(newMedia, true);
}
function mediaDownload(songID) {
	window.open(mediaList[songID][3]);
}
function mediaTime(songID) {
	var randID = mediaList[songID][1];
	var pState = obj('media-player-' + randID).playState;
	var cTime = obj('media-player-' + randID).controls.currentPositionString;
	var tTime = obj('media-player-' + randID).currentMedia.durationString;
	var nTime = obj('media-player-' + randID).controls.currentPosition;
	var aTime = obj('media-player-' + randID).currentMedia.duration;
	var song_info = obj('media-player-' + randID).status;
	var position = '-20px';
	if (song_info == '') song_info = '&nbsp;'
	switch (pState) {
		case 1 : position = '-20px'; break;
		case 2 : position = '-10px'; break;
		case 3 : position = '0px'; if (nTime >= 4) song_info = mediaList[songID][2] + ' (' + cTime + ' / ' + tTime + ')'; break;
		case 4 : position = '-30px'; break;
		case 9 : position = '-40px'; break;
		case 10 : position = '-50px'; clearInterval(timer_status); obj('song-id_' + songID + '-randID_' + randID + '-status').className = 'playlist-status-error'; obj('song-id_' + songID + '-randID_' + randID + '-string').className = 'playlist-string-error'; if (config.player_next_onError) mediaNext(); break;
	}
	var getStatus = stringCut(song_info, objW('status-content-' + randID) - 3, 'Arial', '11px');
	if (getStatus != song_info) obj('status-content-' + randID).title = song_info;
	else obj('status-content-' + randID).title = '';

	obj('status-content-' + randID).innerHTML = getStatus;
	obj('status-icon-' + randID).style.backgroundPosition = '0px ' + position;

	if (nTime > aTime - (config.timer_new / 1000) && nTime != 0) {
		clearInterval(timer_status);
		if (window.timer_next) clearTimeout(timer_next);
		timer_next = setTimeout(mediaNext, config.timer_new);
	}
}
function mediaScroll(songID) {
	var itemID = mediaList[songID][0];
	var randID = mediaList[songID][1];
	var iHeight = objH('song-id_' + songID + '-randID_' + randID + '-string');
	var lHeight = objH('content-id_0-randID_' + randID);
	var curScroll = obj('content-id_0-randID_' + randID).scrollTop;
	var newScroll = itemID * iHeight;

	if (newScroll > curScroll && newScroll < curScroll + (lHeight - iHeight)) return;
	if (newScroll > curScroll) newScroll -= lHeight - iHeight;
	if (newScroll < 0) newScroll = 0;
	obj('content-id_0-randID_' + randID).scrollTop = newScroll;
}
// ------------------------------------------------------------------------------- Operate Functions
function changeTab(tabID, randID) {
	for (var i = 0; i < config.main_tabs.length; i++) {
		if (i == tabID) {
			var className = 'current';
			var display = 'block';
		} else {
			var className = '';
			var display = 'none';
		}
		obj('tab-id_' + i + '-randID_' + randID).className = className;
		obj('content-id_' + i + '-randID_' + randID).style.display = display;
	}
}
// ----------------------------------------------------------------------------- Templates Functions
function getTemplate(tplName, randID) {
	if (!tplName) return;
	var html = '';
	switch (tplName) {
		case 'tpl-hacking' : html += '<div class="hacking-content" onClick="window.open(\'http://\' + config.home_URL[1])">Hacking Attempt!</div>';
		case 'media-player' :
						if (document.all)	var mCode = 'classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"';
						else var mCode = 'type="application/x-ms-wmp"';
						html +=
						 '									<object id="media-player-' + randID + '" class="media-player" ' + mCode + '>'
						+'										<param name="url" value="' + config.media_URL + '">'
						+'										<param name="autoStart" value="true">'
						+'										<param name="Volume" value="' + config.media_Volume + '">'
						+'										<param name="stretchToFit" value="' + config.media_stretchToFit + '">'
						+'										<param name="EnableContextMenu" value="' + config.media_contextMenu + '">'
						+'									</object>'; break;
		case 'media-embed' : html +=
						 '<embed loop="' + config.embed_loop + '" width="' + config.embed_width + '" height="' + config.embed_height + '" src="{url}" volume="-1" autostart="' + config.embed_autoStart + '" enablecontextmenu="' + config.embed_contextMenu + '" />'; break;
		case 'main-layout' : html +=
						 '<table id="main-player-' + randID + '" class="winamp" cellpadding="0" cellspacing="0" onContextMenu="return ' + config.player_contextMenu + '" onSelectStart="return ' + config.player_selectText + '" onDragStart="return false">'
						+'	<tr>'
						+'		<td class="main-top-left"></td>'
						+'		<td class="main-top-center">'
						+'			<table class="main-top-content" cellpadding="0" cellspacing="0">'
						+'				<tr>'
						+'					<td class="player-title">' + config.player_title + '</td>'
						+'					<td><img id="minimize-' + randID + '" src="images/bbCode/clear.png" class="minimize" onMouseOver="btnHLight(this.id, \'over\', 0)" onMouseOut="btnHLight(this.id, \'out\', 0)" onMouseDown="btnHLight(this.id, \'down\', 0)" onMouseUp="btnHLight(this.id, \'up\', 0)" onClick="_minimize(' + randID + ')" /></td>'
						+'					<td><img id="exit-' + randID + '" src="images/bbCode/clear.png" class="exit" onMouseOver="btnHLight(this.id, \'over\', -17)" onMouseOut="btnHLight(this.id, \'out\', -17)" onMouseDown="btnHLight(this.id, \'down\', -17)" onMouseUp="btnHLight(this.id, \'up\', -17)" onClick="_close(' + randID + ')" /></td>'
						+'				</tr>'
						+'			</table>'
						+'		</td>'
						+'		<td class="main-top-right"></td>'
						+'	</tr>'
						+'	<tr>'
						+'		<td class="main-left"></td>'
						+'		<td class="main-center">'
						+'			<table id="main-center-content-' + randID + '" width="100%" cellpadding="0" cellspacing="0">'
						+'				<tr>'
						+'					<td class="left-content">'
						+'						<table width="100%" height="100%" cellpadding="0" cellspacing="0">'
						+'							<tr>'
						+'								<td id="player-content-' + randID + '" colspan="3" class="player-content">' + getTemplate('media-player', randID) + '</td>'
						+'							</tr>'
						+'							<tr><td colspan="3" class="separator_"></td></tr>'
						+'							<tr>'
						+'								<td class="icon-content"><img id="status-icon-' + randID + '" src="images/bbCode/clear.png" /></td>'
						+'								<td id="status-content-' + randID + '" class="status-content">Ready</td>'
						+'								<td class="controls-content" nowrap><image id="random-randID_' + randID + '" src="images/bbCode/clear.png" class="random" onMouseOver="optHLight(this.id, ' + randID + ', \'over\', \'random\')" onMouseOut="optHLight(this.id, ' + randID + ', \'out\', \'random\')" onMouseDown="optHLight(this.id, ' + randID + ', \'down\', \'random\')" onClick="mediaRandom(' + randID + ')" /><image id="repeat-randID_' + randID + '" src="images/bbCode/clear.png" class="repeat" onMouseOver="optHLight(this.id, ' + randID + ', \'over\', \'repeat\')" onMouseOut="optHLight(this.id, ' + randID + ', \'out\', \'repeat\')" onMouseDown="optHLight(this.id, ' + randID + ', \'down\', \'repeat\')" onClick="mediaRepeat(' + randID + ')" /></td>'
						+'							</tr>'
						+'						</table>'
						+'					</td>'
						+'					<td class="separator"></td>'
						+'					<td class="right-content">'
						+'						<table width="100%" height="100%" cellpadding="0" cellspacing="0">'
						+'							<tr>'
						+'								<td class="playlist-tabs">'
						+'									<ul>';
					for (var i = 0; i < config.main_tabs.length; i++) {
						html += '										<li id="tab-id_' + i + '-randID_' + randID + '"><a href="javascript: void(0)" on' + config.main_tabs_control + '="changeTab(' + i + ', ' + randID + ')" onMouseDown="return false"><span>' + config.main_tabs[i] + '</span></a></li>';
					}
					html += '									</ul>'
						+'								</td>'
						+'							</tr>'
						+'							<tr>'
						+'								<td height="100%">';
					for (var i = 0; i < config.main_tabs.length; i++) {
						html += '									<div id="content-id_' + i + '-randID_' + randID + '" class="playlist-content">';
						switch(i) {
							case 1 : html += getTemplate('tpl-embed', randID); break;
							case 2 : html += getTemplate('tpl-help', randID); break;
							case 3 : html += getTemplate('tpl-about', randID); break;
						}
						html += '</div>';
					}
					html += '								</td>'
						+'							</tr>'
						+'						</table>'
						+'					</td>'
						+'				</tr>'
						+'			</table>'
						+'		</td>'
						+'		<td class="main-right"></td>'
						+'	</tr>'
						+'	<tr>'
						+'		<td class="main-bottom-left"></td>'
						+'		<td class="main-bottom-center"></td>'
						+'		<td class="main-bottom-right"></td>'
						+'	</tr>'
						+'</table>'; break;
		case 'tpl-embed' : html +=
						 '<div class="embed-content">'
						+'<span class="embed-left"></span><span class="embed-icon"><img src="images/bbCode/clear.png" class="icon-page" /></span><span class="embed-string">Link đến bài viết</span>'
						+'<input id="embed-page-' + randID + '" class="embed-input" value="' + config.embed_default_str + '" onClick="this.select()" />'
						+'<span class="embed-left"></span><span class="embed-icon"><img src="images/bbCode/clear.png" class="icon-file" /></span><span class="embed-string">Link đến file</span>'
						+'<input id="embed-file-' + randID + '" class="embed-input" value="' + config.embed_default_str + '" onClick="this.select()" />'
						+'<span class="embed-left"></span><span class="embed-icon"><img src="images/bbCode/clear.png" class="icon-forum" /></span><span class="embed-string">Mã chèn vào forum</span>'
						+'<input id="embed-forum-' + randID + '" class="embed-input" value="' + config.embed_default_str + '" onClick="this.select()" />'
						+'<span class="embed-left"></span><span class="embed-icon"><img src="images/bbCode/clear.png" class="icon-blog" /></span><span class="embed-string">Mã chèn vào blog</span>'
						+'<textarea id="embed-blog-' + randID + '" rows="4" class="embed-textarea" onClick="this.select()">' + config.embed_default_str + '</textarea>'
						+'</div>'; break;
		case 'tpl-help' : html +=
						 '<div class="help-content">'
						+'	<span class="help-title">Hướng dẫn cách post album trên diễn đàn:</span>'
						+'	<span class="help-head-content">'
						+'		<span class="help-head">1. Giới thiệu:</span>'
						+'		- Post album trên diễn đàn là cách post nhiều bài hát trong một danh sách như bạn đã thấy.<br />'
						+'		- Sử dụng thẻ <span class="bbCode-tag">[' + config.bbCode_Name + ']</span> & <span class="bbCode-tag">[/' + config.bbCode_Name + ']</span> để post album.<br />'
						+'		- Bài hát và link được cách nhau bởi dấu "<span class="bbCode-separator">|</span>". Hai bài hát được cách nhau bởi dấu "<span class="bbCode-separator_">||</span>". (<span class="bbCode-separator">|</span> = <strong>Shift</strong> + <strong>\\</strong>)<br />'
						+'		<span class="help-head">2. Ví dụ:</span>'
						+'		- Bạn có <strong><u>n</u></strong> bài hát với <span class="song-name">tên</span> và <span class="song-url">URL</span> như sau: (<i>trong đó <span class="song-name">song-1</span> ứng với <span class="song-url">url-1</span> và <span class="song-name">song-n</span> ứng với <span class="song-url">url-n</span></i>)<br />'
						+'		<span class="song-content">+ Tên: <span class="song-name">song-1</span>, <span class="song-name">song-2</span>, <span class="song-name">song-3</span>,... <span class="song-name">song-n</span></span>'
						+'		<span class="song-content">+ URL: <span class="song-url">url-1</span>, <span class="song-url">url-2</span>, <span class="song-url">url-3</span>,... <span class="song-url">url-n</span></span>'
						+'		- Trong khung soạn thảo, bạn viết như sau:'
						+'		<span class="bbCode-code">'
						+'			<span class="bbCode-tag">[' + config.bbCode_Name + ']</span>'
						+'				<span class="song-name">song-1</span><span class="bbCode-separator">|</span><span class="song-url">url-1</span><span class="bbCode-separator_">||</span>'
						+'				<span class="song-name">song-2</span><span class="bbCode-separator">|</span><span class="song-url">url-2</span><span class="bbCode-separator_">||</span>'
						+'				<span class="song-name">song-3</span><span class="bbCode-separator">|</span><span class="song-url">url-3</span><span class="bbCode-separator_">||</span>...'
						+'				<span class="song-name">song-n</span><span class="bbCode-separator">|</span><span class="song-url">url-n</span><span class="bbCode-separator_">||</span>'
						+'			<span class="bbCode-tag">[/' + config.bbCode_Name + ']</span>'
						+'		</span>'
						+'	</span>'
						+'	<span class="help-title">Các chức năng chính:</span>'
						+'	<span class="help-head-content">'
						+'			- Post nhiều bài hát trong một danh sách để tăng tính tiện lợi.<br />'
						+'			- Tự động chuyển sang bài khác khi kết thúc một bài hát.<br />'
						+'			- Tự động chuyển sang bài khác khi link bị hỏng.<br />'
						+'			- Có thể chuyển bài hát từ album này qua album khác nếu có nhiều album được post trong cùng một trang.<br />'
						+'			- Chức năng "Random" & "Repeat" cho nhiều lựa chọn.'
						+'	</span>'
						+'	<span class="help-title">Một số lưu ý:</span>'
						+'	<span class="help-head-content">'
						+'		- Những bài hát trong album được "Thu nhỏ" hoặc đã đóng album thì không thể play được.<br />'
						+'		- Khi chủ động chuyển bài hát trong lúc một bài hát khác đang play thì bài hát đó tự động dừng.<br />'
						+'		- Post sai cấu trúc được hướng dẫn trên có thể phát sinh lỗi.'
						+'	</span>'
						+'	<span class="help-title">Chú thích:</span>'
						+'	<span class="help-head-content">'
						+'		<span class="help-head">1. Random: (Ngẫu nhiên)</span>'
						+'		- <u>On</u>: Chức năng chọn bài hát ngẫu nhiên được mở.<br />'
						+'		- <u>Off</u>: Chức năng chọn bài hát ngẫu nhiên đã tắt.'
						+'		<span class="help-head">2. Repeat: (Lặp lại)</span>'
						+'		- <u>All</u>: Chức năng lặp lại được mở với trạng thái tất cả. Khi mở chức năng này, toàn bộ bài hát trong trang đó để có thể được chọn tự động kể cả khác album.<br />'
						+'		- <u>Track</u>: Chức năng lặp lại được mở với trạng thái duy nhất. Khi mở chức năng này, bài hát đang hát sẽ được lặp lại mãi mãi.<br />'
						+'		- <u>Off</u>: Chức năng lặp lại đã tắt. Khi tắt chức năng này, chỉ có thể tự động chọn những bài trong cùng album đó.'
						+'	</span>'
						+'</div>'; break;
		case 'tpl-about' : html +=
						 '<div class="about-content">'
						+'	<span class="about-title">Teencp.net Album Player</span>'
						+'	<span class="about-head-content">Teencp.net</span>'
						+'</div>'; break;
	}
	return html;
}
function createPlayer(mList, playerW, playerH) {
	if (config.home_URL[0]) {
		var curLocation = window.location.toString();
		curLocation = curLocation.split('?');
		curLocation = curLocation[0].split('#');
		curLocation = curLocation[0];
		for (var i = 1; i < config.home_URL.length; i++) {
			var getURL = config.home_URL[i];
			if (curLocation.indexOf(getURL) == -1) { var trueLocation = false; } else { var trueLocation = true; break; }
		}
		if (!trueLocation) { echo(getTemplate('tpl-hacking')); return; }
	}

	var randID = 0;
	while (obj('main-player-' + randID)) randID++;
	while (mList.lastIndexOf('|') == mList.length - 1) mList = mList.substr(0, mList.length - 1);
	echo(getTemplate('main-layout', randID));

	if (config.opt_random == 'on') obj('random-randID_' + randID).title = 'Random: On';
	else obj('random-randID_' + randID).title = 'Random: Off';
	if (config.opt_repeat == 'all') obj('repeat-randID_' + randID).title = 'Repeat: All';
	else if (config.opt_repeat == 'track') obj('repeat-randID_' + randID).title = 'Repeat: Track';
	else obj('repeat-randID_' + randID).title = 'Repeat: Off';

	var tplPlaylist = '';
	mList = mList.split('||');
	for (var i = 0; i < mList.length; i++) {
		var getMedia = mList[i].split('|');
		mediaList.push([i, randID, getMedia[0], getMedia[1]]);
		var songID = mediaList.length - 1;
		var titleCut = stringCut((i + 1) + '. ' + getMedia[0], config.list_title_length, 'Arial', '12px');
		if (titleCut != (i + 1) + '. ' + getMedia[0]) var title = ' title="' + getMedia[0] + '"';
		else var title = '';
		tplPlaylist +=
			 '<a href="javascript: void(0)" onMouseDown="return false"' + title + '>'
			+'<table cellpadding="0" cellspacing="0">'
			+'	<tr>'
			+'		<td id="song-id_' + songID + '-randID_' + randID + '-status"></td>'
			+'		<td id="song-id_' + songID + '-randID_' + randID + '-string" class="playlist-string" on' + config.playlist_control + '="mediaPlay(' + songID + ', ' + randID + ')">' + titleCut + '</td>'
			+'		<td class="playlist-download" title=" Download song: ' + getMedia[0] + ' " onClick="mediaDownload(' + songID + ')"></td>'
			+'	</tr>'
			+'</table>'
			+'</a>';
	}

	if (playerW) obj('main-player-' + randID).style.width = playerW + 'px';
	if (playerH) {
		var mediaH = playerH - 57 + 'px';
		var listH = playerH - 68 + 'px';
		obj('player-content-' + randID).style.height = mediaH;
		for (var i = 0; i < config.main_tabs.length; i++) { obj('content-id_' + i + '-randID_' + randID).style.height = listH; }
	}

	obj('content-id_0-randID_' + randID).innerHTML = tplPlaylist;
	changeTab(0, randID);
	sRandom[randID] = config.opt_random;
	sRepeat[randID] = config.opt_repeat;
	optHLight('random-randID_' + randID, randID, 'out', 'random');
	optHLight('repeat-randID_' + randID, randID, 'out', 'repeat');
	sMinimize[randID] = !config.player_minimize;
	_minimize(randID);
	if (config.player_autoStart && !config.player_minimize && randID == 0) setTimeout(mediaNext, config.timer_autoStart);
}