 
// ---------------------------------------------------------------------------------
// 播放器文本的处理
// ---------------------------------------------------------------------------------

String.prototype.trim = function(){ return this.replace(/(^\s*)|(\s*$)/g, '');};

// 歌词的原始内容
var initLrcHTML = null;
// 时间轴
var playTimes = null;

/**
 * 突出显示当前等级的单词
 *
 * @param String 显示歌词html控件的ID
 *
 * @param int 单词等级
 *            1-6 分别对应小学一年级到六年级
 *            7-9 分别对应初中一年级到三年级
 *            10-12分别对应高中一年级到高三年级
 *            13 大学四级
 *            14 大学六级
 *            15 大学六级以上
 */
var showArticleTextByLevel = function(htmlId, level) {
	if(level == 0) {		
		var lrcHTML = $('#' + htmlId).html().replace(/<\/?em>/gi, '');
		$('#' + htmlId).html(lrcHTML);
		return;
	}
	if(level > 0) {
		$.ajax({
			url: context_path + '/words/' + level + '.txt',
			type: 'get',
			dataType: 'text',
			success: function(wordLibrary){
				if(wordLibrary != '') {
					// 当前等级的所有单词
					wordLibrary = '|' + wordLibrary.replace(/\r/g,'').replace(/\n/g, '').toLowerCase();
					
					var spans = $('#' + htmlId + ' span');
					// 歌词中含有时间轴
					if(spans.length > 0) {
						var lrcHTML = '';
						for(var i = 0; i < spans.length; i++) {
							var span = document.getElementById(spans[i].id);
							var lrcText = span.innerHTML.replace(/<\/?em>/gi, '').trim();
							var ownRepeatWords = lrcText.split(/[^a-zA-Z]+/gi);
							if(ownRepeatWords != null && ownRepeatWords.length > 0) {
								var diffWords = delRepeatWords(ownRepeatWords);
								for(var j = 0; j < diffWords.length; j++) {
									var word = diffWords[j].trim().toLowerCase();
									if(word != '') {
										if(wordLibrary.indexOf('|' + word + '|') != -1) {
											lrcText = lrcText.replace(new RegExp('([^a-zA-Z]+)(' + word + ')([^a-zA-Z]+)', 'gi'), '$1<em>$2</em>$3');
										}
										span.innerHTML = lrcText;
									}
								}
							}
						}
						
					// 歌词中没有时间轴
					} else {
						var lrcText = $('#' + htmlId).html().replace(/<\/?em>/gi, '').trim();
						if(lrcText != '') {
							var ownRepeatWords = lrcText.split(/[^a-zA-Z]+/gi);
							if(ownRepeatWords != null && ownRepeatWords.length > 0) {
								var diffWords = delRepeatWords(ownRepeatWords);
								for(var j = 0; j < diffWords.length; j++) {
									var word = diffWords[j].trim().toLowerCase();
									if(word != '') {
										if(wordLibrary.indexOf('|' + word + '|') != -1) {
											lrcText = lrcText.replace(new RegExp('([^a-zA-Z]+)(' + word + ')([^a-zA-Z]+)', 'gi'), '$1<em>$2</em>$3');
										}
									}
								}
							}
							$('#' + htmlId).html(lrcText);
						}
					}
					
				}
			}
		});
	}
};

/**
 * 去掉数组中的重复单词
 * @param Array
 * @return Array
 */
var delRepeatWords = function(repeatWords) {
	var wordAry = [];
	for(var i = 0; i < repeatWords.length; i++) {
		var word = repeatWords[i];
		var isNotRepeat = true;
		for(var j = 0; j < wordAry.length; j++) {
			if(wordAry[j] == word) {
				isNotRepeat = false;
				break;
			}
		}
		if(isNotRepeat) {
			wordAry.push(word);
		}
	}
	return wordAry;
};

/**
 * 设置当前的播放时间(Flash Player调用)
 * @param 播放的毫秒数
 */
var setCurPlayTime = function(curTime) {
	if(curTime > 0) {
		if(playTimes == null || playTimes.length == 0) {
			var timeAxis = $('#playerTimeAxis').val();
			if(timeAxis != '') {
				playTimes = timeAxis.split('|');
			}
		} else {
			var len = playTimes.length;
			for(var i = 0; i < len; i++) {
				var beginTime = playTimes[i];
				if(curTime >= beginTime) {
					if(i + 1 < len) {
						var endTime = playTimes[i + 1];
						if(curTime >= beginTime && curTime < endTime) {
							setPlayLrcStyle(beginTime);
							break;
						}
					} else {
						setPlayLrcStyle(beginTime);
					}
				}
			}
		}
	} else {
		setPlayLrcStyle(0);
	}
	
};

var test = function() {
	var timeAxis = $('#playerTimeAxis').val();
	if(timeAxis != '') {
		playTimes = timeAxis.split('|');
	}
	var s = '';
	var len = playTimes.length;
	for(var i = 0; i < len; i++) {
		s += i + '-->' + playTimes[i] + '\n';
	}
	alert(s);
};

/**
 * 设置当前播放歌词的样式
 * @param 当前播放时间(毫秒数)
 */
var setPlayLrcStyle = function(milliseconds) {
	var mysheet = document.styleSheets[0];
	var totalrules = mysheet.cssRules ? mysheet.cssRules.length : mysheet.rules.length;
	if (mysheet.deleteRule){ // if Firefox
		mysheet.deleteRule(totalrules - 1)
		mysheet.insertRule('#lrc_' + milliseconds + '{color:#ff0000;}', totalrules - 1)
	} else if (mysheet.removeRule){ // else if IE
		mysheet.removeRule(totalrules - 1)
		mysheet.addRule('#lrc_' + milliseconds, 'color:#ff0000;')
	}
};

/*
 * jQuery onload
 */
$().ready(function() {
	
	// 添加歌词播放时的样式
	$('<style type="text/css">#lrc_0 {color:red}</style>').prependTo('head');

	
});

/**
 * 自动播放测试

var playNews = function() {
		
	var curTime = 2620;
	
	setInterval(function() {
		
		if(playTimes == null) {
			var timeAxis = $('#playerTimeAxis').val();
			if(timeAxis != '') {
				playTimes = timeAxis.split('|');
			}
		}
		
		if(playTimes != null && playTimes.length > 0) {
			if(curTime > playTimes[len - 1]) {
				setPlayLrcStyle(0);
			} else {
				var len = playTimes.length;
				for(var i = 0; i < len; i++) {
					var beginTime = playTimes[i];			
					if(i < len - 1) {
						var endTime = playTimes[i + 1];
						if(curTime >= beginTime && curTime < endTime) {
							setPlayLrcStyle(beginTime);
							break;
						}
					} else {
						setPlayLrcStyle(beginTime);
					}
				}
			}
		}
		
		$('#msg').html(curTime + ' -- > ' + (curTime > playTimes[len - 1]) + '<br/>');
		
		curTime = curTime + 200;
		
	}, 200);
	
};
 */

