js 项目框架

common.js

//添加cookie
function addCookie(objName,objValue,objHours) {      
	var str = objName + "=" + escape(objValue);
	//objHours为0时不设定过期时间,浏览器关闭时cookie自动消失
	if(objHours > 0) {                               
		var date = new Date();
		var ms = objHours*3600*1000;
		date.setTime(date.getTime() + ms);
		str += "; expires=" + date.toGMTString();
	}
	document.cookie = str;	
}

//获取指定名称的cookie的值
function getCookie(objName) {
	var arrStr = document.cookie.split("; ");
	for(var i = 0;i < arrStr.length;i ++) {
		var temp = arrStr[i].split("=");
		if(temp[0] == objName) return unescape(temp[1]);
	}
}

//删除cookie
function delCookie(name) {
	document.cookie = name+"=;expires="+(new Date(0)).toGMTString();
}

//获取请求参数
function getReqParam(name) {
	var re = new RegExp(name + "=([^&=]+)");
	if(re.test(window.location.search)) {
		return RegExp.$1;
	}
}

//url拼接参数
function urlAddParam(url, name, value) {
	if(!value) return url;
	if (/\?$/.test(url)) {
		url += name + '=' + value;
	} else if (/\?.+$/.test(url)) {
		url += '&' + name + '=' + value;
	} else {
		url += '?' + name + '=' + value;
	}
	return url;
}

// 方法添加到window.onload
function addLoadEvent(func) {
	var oldonload = window.onload;
	if(typeof window.onload != "function") {
	    window.onload = func;
	} else{
	    window.onload = function() {
	        oldonload();
	        eval(func);
	    };
	}
}

// 添加返回的url
function addBackUrl(url) {
	var cururl = window.location.pathname + window.location.search;
	cururl = cururl.replace(/&?gfocusid=([^&=]+)/g, "").replace(/&?focusid=([^&=]+)/g, "");
	if (/\?$/.test(cururl)) {
		cururl += 'focusid=' + Ejs.getFocus() + '&gfocusid=' + Ejs.getGFocus();
	} else if (/\?.+$/.test(cururl)) {
		cururl += '&focusid=' + Ejs.getFocus() + '&gfocusid=' + Ejs.getGFocus();
	} else {
		cururl += '?focusid=' + Ejs.getFocus() + '&gfocusid=' + Ejs.getGFocus();
	}
	var re = new RegExp("backurl=([^&=]+)");
	var backurl = "";
	if(re.test(cururl)) {
		backurl =  RegExp.$1;
	}
	cururl = cururl.replace(/&?backurl=([^&=]+)/g, "");
	backurl = (backurl == "")? encodeURIComponent(cururl) : (backurl + "," + encodeURIComponent(cururl));
	if (/\?$/.test(url)) {
		url += 'backurl=' + backurl;
	} else if (/\?.+$/.test(url)) {
		url += '&backurl=' + backurl;
	} else {
		url += '?backurl=' + backurl;
	}
	return url;
}

// 获取返回的url
function getBackUrl() {
	var url = window.location.href;
	var backurl = "";
	var re = new RegExp("backurl=([^&=]+)");
	if(re.test(url)) {
		backurl = RegExp.$1;
	} 
	url = decodeURIComponent(backurl.substr(backurl.lastIndexOf(",") + 1));
	backurl = backurl.substring(0, backurl.lastIndexOf(","));
	if(backurl == "") return url;
	if (/\?$/.test(url)) {
		url += 'backurl=' + backurl;
	} else if (/\?.+$/.test(url)) {
		url += '&backurl=' + backurl;
	} else {
		url += '?backurl=' + backurl;
	}
	return url;
}

function createXMLHttpRequest() {    
	var xmlHttp;   
    if (window.ActiveXObject) {    
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");    
    }    
    else if (window.XMLHttpRequest) {    
        xmlHttp = new XMLHttpRequest();    
    }    
    return xmlHttp;
}  

//post的方法
function doPost(url,str){
	var xmlHttp = createXMLHttpRequest();//初始化
		if (!xmlHttp)
		{
		return; //无法创建 xmlhttp 对象
		}
		xmlHttp.open( "POST", url , true );	
		xmlHttp.setRequestHeader("content-type","application/json");//post提交设置项
		xmlHttp.setRequestHeader("If-Modified-Since","0");//不缓存 
		xmlHttp.send(str);
	return xmlHttp;
}

//get的方法
function doGet(url){
 	var xmlHttp = createXMLHttpRequest();//初始化
	if (!xmlHttp)
	{
	return; //无法创建 xmlhttp 对象
	}
	xmlHttp.open( "GET", url , true );	
	xmlHttp.setRequestHeader("If-Modified-Since","0");//不缓存 
	xmlHttp.send(Math.random());
	return xmlHttp;
}

//========added by hujing for edu project======
function addParameter(params) {
	var urlParameters = "";
	if(params.length > 0) {
		for(var i = 0; i < params.length; i++) {
			var curr_param = params[i];
			if(i == 0) {
				urlParameters += "?" + curr_param.name + "=" + curr_param.value;
			} else {
				urlParameters += "&" + curr_param.name + "=" + curr_param.value;
			}
		}
	}
	return urlParameters;
}

function playVod(elementid,url){
	document.getElementById(elementid).src=url;	
}

function playRtspMusic(rtspurl) {
	if (rtspurl != null && rtspurl != '' && rtspurl != undefined) {
		var json;
		json = '[{mediaUrl:"' + rtspurl + '",';
		json += 'mediaCode: "edu_back_music",';
		json += 'mediaType:2,'; // 2: vod, 4: music
		json += 'audioType:1,'; // 1: MP2, 2: MP3
		json += 'videoType:1,';
		json += 'streamType:1,'; // 1: PS, 2: TS
		json += 'drmType:1,';
		json += 'fingerPrint:0,';
		json += 'copyProtection:1,';
		json += 'allowTrickmode:0,';
		json += 'startTime:0,';
		json += 'endTime:0,';
		json += 'entryID:"musicentry1"}]';

		initMediaPlay1();

		MPlayer.setSingleMedia(json);
		MPlayer.playFromStart();

	}

	function initMediaPlay1() {

		var playListFlag = 0;
		var videoDisplayMode = 1; // 全屏显示

		var muteFlag = 0;
		var subtitleFlag = 0;
		var videoAlpha = 100; // 透明度,0:默认值,不透明; 100:完全透明

		var randomFlag = 0; // 随机播放标志:0:不随机,1:随机
		var autoDelFlag = 0;
		var useNativeUIFlag = 1;
		var cycleFlag = 1;  //非循环播放

		MPlayer.initMediaPlayer(instanceId, playListFlag, videoDisplayMode, 0,
				0, 0, 0, muteFlag, useNativeUIFlag, subtitleFlag, videoAlpha,
				cycleFlag, randomFlag, autoDelFlag);
		instanceId = MPlayer.getNativePlayerInstanceID();
	}

}


function playMusicByMediaStr(mediaStr) {
	if (mediaStr != null && mediaStr != '' && mediaStr != undefined) {
		var json = mediaStr;

		initMediaPlay1();

		MPlayer.setSingleMedia(json);
		MPlayer.playFromStart();

	}

	function initMediaPlay1() {
		var playListFlag = 0;
		var videoDisplayMode = 255; // 视频窗口关闭

		var muteFlag = 0;
		var subtitleFlag = 0;
		var videoAlpha = 0; // 透明度,0:默认值,不透明; 100:完全透明

		var randomFlag = 0; // 随机播放标志:0:不随机,1:随机
		var autoDelFlag = 0;
		var useNativeUIFlag = 1;
		var cycleFlag = 1;  //非循环播放

		MPlayer.initMediaPlayer(instanceId, playListFlag, videoDisplayMode, 0,
				0, 0, 0, muteFlag, useNativeUIFlag, subtitleFlag, videoAlpha,
				cycleFlag, randomFlag, autoDelFlag);
		instanceId = MPlayer.getNativePlayerInstanceID();
	}

}
config.js

var config = {
	// 运行环境TV, PC
	environment : "TV,PC",
	//debug:true
	
};

var Cfg = config;

if(window.Authentication){
	Authentication.CTCSetConfig('SetEpgMode', 'PAL'); // 标清
}

epgpage.js

/*
 * EPG页面JS框架,统一控制页面标签移动、事件处理
 *
 */
 
 /*
  * document.getElementById简写
  */
function _$(id){
	return document.getElementById(id);
}

 /*
  * 判断字符串是否为空
  */
function isEmpty(str){
	if(str === undefined || str === "") {
		return true;
	}
	return false;
}

/*
 * 页面公共属性
 */
var elementPool	= elementPool? elementPool : {};  // 元素池
var groupPool = groupPool? groupPool : {};   // 分组池
var	defaultGroup = defaultGroup? defaultGroup : "default-group";  // 默认组名
var defaultArea	= defaultArea? defaultArea : "default-area";    // 默认区块名
var focusId	= focusId? focusId : "";   // 页面当前焦点
var lastFocusId	= lastFocusId? lastFocusId : "";  // 页面上一焦点
var openId = openId? openId : "";   // 页面菜单打开位置
var gEventPool = gEventPool? gEventPool : {};  // 全局事件池
var lEventPool = lEventPool? lEventPool : {};  // 局部事件池
var position = position? position : "";  // 记录焦点移动位置

/*
 * 元素池中获取元素
 */
function getElement(id) {
	return elementPool[id];
}

/*
 * 分组池中获取分组
 */
function getGroup(gid) {
	return groupPool[gid];
}

/*
 * 聚焦
 */
function focus(id) {
	// Element
	var element = getElement(id);
	// Change element focus-css
	if(element && _$(id)) {
		// 记录focus id
		focusId = id;
		// 如果当前元素被标识为open, 则样式为open css上叠加focus css
		if(element.id == openId && element.focusCss) {
			_$(id).className = element.openCss +" " + element.focusCss;
		} else if(element.focusCss) {
			_$(id).className = element.focusCss;
		}
		if(element.belongGroup) {
			// Group
			var group = getGroup(element.belongGroup);
			// 记录group的focus id
			if(group){
				group.focusId = focusId;
			}
		}
		// 执行onfocus方法
		if(element.onfocus) {
			eval(element.onfocus);
		}
	}
}

/*
 * 失焦
 */
function blur(id, blurCss) {
	var element = getElement(id);
	// Change element blur-css
	if(element && _$(id)) {
		// 记录last focus id
		lastFocusId = id;
		// 如果当前元素被标识为open, 则样式改为open css
		if(element.id == openId && element.openCss) {
			_$(id).className = element.openCss;
		} if(blurCss === "" || blurCss) {
			_$(id).className = blurCss;
		} else if(element.blurCss === "" || element.blurCss) {
			_$(id).className = element.blurCss;
		}
		// 执行onblur方法
		if(element.onblur) {
			eval(element.onblur);
		}
	}
}

/*
 * 判断元素在页面上是否存在或隐藏
 */
function isExist(id) {
	// 如果没有注册到Ejs对象或者已删除,则返回false
	if(!getElement(id)) {
		return false;
	}
	// 获取页面标签对象
	var tagobj = _$(id);
	// 如果页面标签不存在,则返回false
	if(!tagobj) {
		return false;
	}
	// 如果页面标签已经隐藏,则返回false
	var s = tagobj.style;
	if(s.visibility == "hidden" || s.display == "none") {
		return false;
	} 
	var dv = document.defaultView;
	if(dv && (dv.getComputedStyle (tagobj,null)["visibility"] == "hidden" || dv.getComputedStyle (tagobj,null)["display"] == "none")) {
		return false;
	}
	var cs = tagobj.currentStyle;
	if(cs && (cs.currentStyle.visibility == "hidden" || cs.currentStyle.display == "none" )) {
		return false;
	}
	return true;
}

/*
 * 搜索下一个元素ID
 */
function nextId(curElement, direction) {
	var id = "";
	if (curElement.leftId && direction == "left") {
		id = curElement.leftId;
	} else if (curElement.rightId && direction == "right") {
		id = curElement.rightId;
	} else if (curElement.upId && direction == "up") {
		id = curElement.upId;
	} else if (curElement.downId && direction == "down") {
		id = curElement.downId;
	} 
	return id;
}
 
/*
 * 区域内向某方向搜索下一个邻组id
 */
function nextIdOtherGroup(startId, direction) {
	var id = "";
	var startElement = getElement(startId);
	var nextElement = getElement(startId);
	while(startElement.belongArea == nextElement.belongArea) {
		// 已搜索到邻组Id,则结束循环,返回邻组Id
		if(startElement.belongGroup != nextElement.belongGroup) {
			id = nextElement.id;
			break;
		}
		// 沿各个方向搜索
		if (direction == "left") {
			if(!nextElement.leftId || isEmpty(nextElement.leftId)) break;
			nextElement = getElement(nextElement.leftId);
		} else if (direction == "right") {
			if(!nextElement.rightId || isEmpty(nextElement.rightId)) break;
			nextElement = getElement(nextElement.rightId);
		} else if (direction == "up") {
			if(!nextElement.upId || isEmpty(nextElement.upId)) break;
			nextElement = getElement(nextElement.upId);
		} else if (direction == "down") {
			if(!nextElement.downId || isEmpty(nextElement.downId)) break;
			nextElement = getElement(nextElement.downId);
		}
		// 如果回到起始点,则终止循环,返回""
		if(startElement.id = nextElement.id) {
			break;
		}
	}
	return id;
}
 
 /*
 * 组内移动
 */
function moveInGroup(fromId, toId, direction) {
	var fromElement = getElement(fromId);
	var toElement = getElement(toId);
	position = toId;
	// 同组搜索,单向搜索
	while (fromElement.belongGroup == toElement.belongGroup) {
		if(isExist(toId)) {
			blur(fromId);
			focus(toId);
			return true;
		}
		toId = nextId(toElement, direction);
		position = toId;
		if(isEmpty(toId) || toId == fromId) {
			return false;
		}
		toElement = getElement(toId);
	}
	return false;
};

/*
 * 跨组正交移动
 */
function moveVertical(fromId, toId, direction) {
	// 设定正交点为起始点
	var startElement = getElement(toId);
	var toElement = startElement;
	var fromGroup = getGroup(getAttribute(fromId, "belongGroup"));
	// 异组内向上搜索
	while(startElement.belongGroup == toElement.belongGroup) {
		if(isExist(toId)) {
			if(fromGroup.keepFocus && fromGroup.keepFocusCss) {
				blur(fromId, fromGroup.keepFocusCss);
			} else {
				blur(fromId);
			}
			focus(toId);
			return true;
		}
		if(direction == "left" || direction == "right") {
			toId = toElement.upId;
		} else {
			toId = toElement.leftId;
		}
		// 如果没有下一个ID或者回到起点,则退出循环
		if(isEmpty(toId) || toId == startElement.id) {
			break;
		}
		toElement = getElement(toId);
	}
	// 回到正交点(起始点)
	var toElement = startElement;
	toId = toElement.id;
	// 异组内向下搜索
	while(startElement.belongGroup == toElement.belongGroup) {
		if(isExist(toId)) {
			if(fromGroup.keepFocus && fromGroup.keepFocusCss) {
				blur(fromId, fromGroup.keepFocusCss);
			} else {
				blur(fromId);
			}
			focus(toId);
			return true;
		}
		if(direction == "left" || direction == "right") {
			toId = toElement.downId;
		} else {
			toId = toElement.rightId;
		}
		// 如果没有下一个ID或者回到起点,则退出循环
		if(isEmpty(toId) || toId == startElement.id) {
			break;
		}
		toElement = getElement(toId);
	}
	return false;
};

/*
 * 跨组移动
 */
function moveOtherGroup(fromId, toId, direction) {
	var fromElement = getElement(toId);
	var toElement = getElement(toId);
	var fromGroup = getGroup(getAttribute(fromId, "belongGroup"));
	// 跨组移动,组保留了焦点,直接定位到组焦点
	var group = getGroup(toElement.belongGroup);
	if(group.keepFocus && !isEmpty(group.focusId) && isExist(group.focusId)) {
		if(fromGroup.keepFocus && fromGroup.keepFocusCss) {
			blur(fromId, fromGroup.keepFocusCss);
		} else {
			blur(fromId);
		}
		focus(group.focusId);
		return true;
	}
	// 记录起始点
	var startElement = toElement;
	while(fromElement.belongGroup == toElement.belongGroup) {
		if(isExist(toId)) {
			if(fromGroup.keepFocus && fromGroup.keepFocusCss) {
				blur(fromId, fromGroup.keepFocusCss);
			} else {
				blur(fromId);
			}
			focus(toId);
			return true;
		}
		// 正交搜索
		if(moveVertical(fromId, toId, direction)) {
			return true;
		}
		// 继续沿异组内原方向搜索
		toId = nextId(toElement, direction);
		position = toId;
		if(isEmpty(toId) || startElement.id == toId) {
			return false;
		}
		toElement = getElement(toId);
	}
	return false;
};

/*
 * 区域内垂直移动
 */
function moveVerticalArea(fromId, toId, direction) {
	// 设定正交点为起始点
	var startElement = getElement(toId);
	// 区域内向上搜索
	while(true) {
		if(direction == "left" || direction == "right") {
			toId = nextIdOtherGroup(toId, "up");
		} else {
			toId = nextIdOtherGroup(toId, "left");
		}
		if(isEmpty(toId) || startElement.id == toId) {
			break;
		}
		toElement = getElement(toId);
		if(startElement.belongArea != toElement.belongArea) {
			break;
		}
		if(moveOtherGroup(fromId, toId, direction)) {
			return true;
		}
	}
	// 回到起始点
	toId = startElement.id;
	// 区域内向下搜索
	while(true) {
		if(direction == "left" || direction == "right") {
			toId = nextIdOtherGroup(toId, "down");
		} else {
			toId = nextIdOtherGroup(toId, "right");
		}
		if(isEmpty(toId) || startElement.id == toId) {
			break;
		}
		toElement = getElement(toId);
		if(startElement.belongArea != toElement.belongArea) {
			break;
		}
		if(moveOtherGroup(fromId, toId, direction)) {
			return true;
		}
	}
	return false;
};

/*
 * 区域内移动
 */
function moveInArea(fromId, toId, direction) {
	var fromElement = getElement(fromId);
	var toElement = getElement(toId);
	while(fromElement.belongArea == toElement.belongArea) {
		// 组内移动
		if(moveInGroup(fromId, toId, direction)){
			return true;
		}
		// 记下当前组开始的位置
		var startId = position;
		if(isEmpty(startId)) {
			return;
		}
		// 异组移动
		if(moveOtherGroup(fromId, startId, direction)) {
			return true;
		}
		// 记下当前组移动的最终位置
		var startId2 = position;
		// 区域内移动
		if(moveVerticalArea(fromId, startId, direction)) {
			return true;
		}
		toId = startId2;
		toElement = getElement(toId);
	}
	return false;
}

/*
 * 焦点移动
 */
function move(fromId, toId, direction) {
	// 记录焦点移动位置
	position = toId;
	return moveInArea(fromId, toId, direction);
}

/*
 * 元素默认事件.
 * toLeft: 左移
 * toRight: 右移
 * toUp: 上移
 * toDown: 下移
 * onOk: 确定
 */
// 默认使用不带参数,如果带参数,如: toLeft("^id_0$"),表示如果上一焦点如果是id_0,则按左键直接从当前焦点移到id_0
function toLeft(regx) {
	if(regx && lastFocusId.match(regx)) {
		var lastFocusId = lastFocusId;
		blur(focusId);
		focus(lastFocusId);
	} else {
		var element = getElement(focusId);
		if(isEmpty(element.leftId)){
			return;
		}
		move(focusId, element.leftId, "left");
	}
}
function toRight(regx) {
	if(regx && lastFocusId.match(regx)) {
		var lastFocusId = lastFocusId;
		blur(focusId);
		focus(lastFocusId);
	} else {
		var element = getElement(focusId);
		if(isEmpty(element.rightId)){
			return;
		}
		move(focusId, element.rightId, "right");
	}
}
function toUp(regx){
	if(regx && lastFocusId.match(regx)) {
		var lastFocusId = lastFocusId;
		blur(focusId);
		focus(lastFocusId);
	} else {
		var element = getElement(focusId);
		if(isEmpty(element.upId)){
			return;
		}
		move(focusId, element.upId, "up");
	}
}
function toDown(regx){
	if(regx && lastFocusId.match(regx)) {
		var lastFocusId = lastFocusId;
		blur(focusId);
		focus(lastFocusId);
	} else {
		var element = getElement(focusId);
		if(isEmpty(element.downId)){
			return;
		}
		move(focusId, element.downId, "down");
	}
}
function onOk(){
	var element = getElement(focusId);
	if(element && element.url) {
		var url = element.url;
		if (/\?$/.test(url)) {
			url += 'focusid=' + focusId + '&gfocusid=' + getGFocus();
		} else if (/\?.+$/.test(url)) {
			url += '&focusid=' + focusId + '&gfocusid=' + getGFocus();
		} else {
			url += '?focusid=' + focusId + '&gfocusid=' + getGFocus();
		}
		location.href = url;
	}
}

/*
 * 元素绑定按键响应事件.
 * eg: bindEvent('id1', 97, 'myFunc("a", 10)')
 */
function bindEvent(id, key, func){
	if(lEventPool[id] == undefined) {
		lEventPool[id] = {};
	}
	// 同时支持PCKey和TVKey
	if(typeof(key) == 'object') {
		for(var i = 0; i < key.length; i ++) {
			lEventPool[id][key[i]] = func;
		}
	} else {
		lEventPool[id][key] = func;
	}
}

/*
 * 注册全局按键响应事件.
 * eg: reigsterEvent(97, 'myFunc("a", 10)')
 */
function registerEvent(key, func){
	// 同时支持PCKey和TVKey
	if(typeof(key) == 'object') {
		for(var i = 0; i < key.length; i ++) {
			gEventPool[key[i]] = func;
		}
	} else {
		gEventPool[key] = func;
	}
}

/*
 * 判断元素是否绑定按键事件.
 */
function hasLEvent(id, key){
	if(lEventPool[id] == undefined){
		return false;
	}
	if(lEventPool[id][key] == undefined){
		return false;
	}
	return true;
}

/*
 * 判断是否注册全局按键事件.
 */
function hasGEvent(key){
	if(gEventPool[key] == undefined){
		return false;
	}
	return true;
}

/*
 * 响应按键,执行事件
 */
function handleEvent(key){
	var id = focusId;
	// 优先执行元素绑定的按键事件.
	if(hasLEvent(id, key)){
		return eval(lEventPool[id][key]);
	}
	// 元素没有绑定事件,执行全局按键事件.
	if(hasGEvent(key)){
		return eval(gEventPool[key]);
	}
	return;
}
/*
 * Input parameter:
 * 		{
 * 			id 			: "id1",
 * 			leftId 		: "id0",
 * 			rightId 	: "id2",
 * 			upId		: "",
 * 			downId 		: "id6",
 * 			focusCss 	: "focus-css",
 * 			blurCss	 	: "blur-css",
 * 			openCss	 	: "open-css",
 * 			url			: "http://xxxx",
 * 			belongGroup	: "g1"
 * 		}
 */
function addElement(element) {
	var id = element.id;
	if(isEmpty(element.belongGroup)) {
		element.belongGroup = defaultGroup;
	}
	if(isEmpty(element.belongArea)) {
		element.belongArea = defaultArea;
	}
	elementPool[id] = element;
	var gid = element.belongGroup;
	var group = {"gid" : gid, keepFocus : false};
	groupPool[gid]  = group;
}

function removeElement(id) {
	elementPool[id] = undefinded;
}
function getElement(id) {
	return elementPool[id];
}
function getAttribute(id, attrKey) {
	return elementPool[id][attrKey];
}
function setAttribute(id, attrKey, attrValue) {
	elementPool[id][attrKey] = attrValue;
}

/*
 * eg: setKeepFocus(["g1", "g2"], true, "css")
 */
function setKeepFocus(gids, keepFocus, keepFocusCss) {
	if(keepFocus == undefined) {
		keepFocus = false;
	}
	if(keepFocusCss == undefined) {
		keepFocusCss = false;
	}
	for (var i = 0; i < gids.length; ++ i ) {
		groupPool[gids[i]]["keepFocus"] = keepFocus;
		groupPool[gids[i]]["keepFocusCss"] = keepFocusCss;
	}
}
/* 
 * setGroup( "g1", ["a1", "a2"], true, "css")
 */
function setGroup(gid, ids, keepFocus, keepFocusCss) {
	for(var i = 0; i < ids.length; i ++) {
		if(Cfg.debug && !elementPool[ids[i]]) {
			alert(ids[i] + " is not in elementPool");
		}
		elementPool[ids[i]].belongGroup = gid;
	}
	if(keepFocus == undefined) {
		keepFocus = false;
	}
	if(keepFocusCss == undefined) {
		keepFocusCss = false;
	}
	var group = {"gid" : gid, "keepFocus" : keepFocus, "keepFocusCss" : keepFocusCss};
	groupPool[gid]  = group;
}
function getGroup(gid) {
	return groupPool[gid];
}
function setOpen(id) {
	var element = getElement(id);
	openId = id;
	if(_$(id)) _$(id).className = element.openCss;
}
function setFocus(id) {
	focus(id);
}
function getFocus() {
	return focusId;
}
function getLastFocus() {
	return lastFocusId;
}

/* 
 * setGFocus( "a1,a2")
 */
function setGFocus(ids) {
	var focusId = focusId;
	var gfocusIds = ids.split(",");
	for(var i in gfocusIds) {
		focus(gfocusIds[i]);
	}
	focusId = focusId;
}

/* 
 * 获取组焦点,参数为组id,如果没有传参数,则默认取得所有组的id
 */
function getGFocus(gid) {
	var gfocusid = "";
	if(gid) {
		gfocusid = groupPool[gid].focusId;
	} else {
		for (var gid in groupPool) {
			if (!isEmpty(groupPool[gid].focusId)) {
				gfocusid += groupPool[gid].focusId + ",";
			}
		}
		gfocusid = gfocusid.replace(/,$/, "");
	}
	return gfocusid;
}

/* 
 * 清除组焦点样式
 * removeGFocus('g1', true)
 * delFocusFlag = true, 不仅清除样式,组保留的焦点也清除,false,只清除样式,仍保留焦点的数据
 */
function removeGFocus(gid, delFocusFlag) {
	var gfocusid = groupPool[gid].focusId;
	if(_$(gfocusid)) blur(gfocusid);
	if(delFocusFlag) groupPool[gid].focusId = "";
}
	
registerEvent(PKey.left, "toLeft()");
registerEvent(PKey.right, "toRight()");
registerEvent(PKey.up, "toUp()");
registerEvent(PKey.down, "toDown()");
registerEvent(PKey.ok, "onOk()");
onLoad();
function onLoad() {
	document.onkeypress = function (event) {
		var event = event || window.event;
		// if(Cfg.debug) alert("Press key: " + event.keyCode);
		handleEvent(event.keyCode);
		return false;
	};	
}
publickey.js

var publickey = {};
// 键值函数数组,key=键值,value=函数名
var global_key_func_arry = [];

/*
 * 电视注册键
 */
var TVKey = {
	left    	: 0x0025, // 左/快退
	right		: 0x0027, // 右/快进
	up			: 0x0026, // 上
	down		: 0x0028, // 下
	ok			: 0x000D, // 确定
	back		: 0x0008, // 删除/返回
	stop        : 0x00B8, // 停止
	pause       : 0x0107, // 暫停
	pageup		: 0x0021, // 上页
	pagedown	: 0x0022, // 下页
	moreVolume  : 0x0103, // 增加音量
	lessVolume  : 0x0104, // 減少音量
	mute        : 0x0105, // 静音
	key0		: 0x0030, // 0
	key1 		: 0x0031, // 1
	key2 		: 0x0032, // 2
	key3 		: 0x0033, // 3
	key4 		: 0x0034, // 4
	key5 		: 0x0035, // 5
	key6 		: 0x0036, // 6
	key7 		: 0x0037, // 7
	key8 		: 0x0038, // 8
	key9 		: 0x0039, // 9
	menu		: 0x0110,
	del         : 0x0118,
	mediaplayer : 0x0300,
	fastforward : 0x108,//快进,交互视频
	fastbackward: 0x109//快退,交互视频
};

/*
 * 电脑注册键
 * 注意电脑注册键保持与电视注册键一致
 */
var PCKey = {
	left    	: 97,  // A
	right		: 100, // D
	up			: 119, // W
	down		: 115,  // S
	ok			: 13,  // Enter
	back		: 98,  // B
	pageup		: 117, // U
	pagedown	: 105, //I
	key0		: 48, // 0
	key1 		: 49, // 1
	key2 		: 50, // 2
	key3 		: 51, // 3
	key4 		: 52, // 4
	key5 		: 53, // 5
	key6 		: 54, // 6
	key7 		: 55, // 7
	key8 		: 56, // 8
	key9 		: 57, // 9
	del         :118 //v
};

(function(){
	if(Cfg.environment == "PC") {
		publickey = PCKey;
	} else if(Cfg.environment == "TV") {
		publickey = TVKey;
	} else {
		publickey = TVKey;
		for(var k in PCKey){
			if(publickey[k]) {
				publickey[k] = [publickey[k], PCKey[k]];
			} else {
				publickey[k] = PCKey[k];
			}
		}
	}
})();

var PKey = publickey;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值