if (navigator.appName == 'Netscape') 
var language = navigator.language; 
else 
var language = navigator.browserLanguage; 

if(language.indexOf('zh') != -1)
{			
	var strChId= "ID"; 
	var strChName= "频道名"; 
	var strChKbps= "码率"; 
	var strChUsers= "热度"; 
	var strChVisitors= "累计"; 
	var strChQuality= "质量"; 
	var strBookGroup = "已订阅的播放组";
	var strNoBookGroup = "要看该组中的节目需要订阅"
	var strChSubscribe = "订阅";
	var strSopAdd = "SoP地址: ";
	var strUsage = "用法";
	var strChMsg = "对该频道的评论";
	var strChSchedule = "该频道的时间表";
	var strEditSchedule = "编辑频道时间表";
	var strLoader="<img src='../img/indicator_arrows.gif' width='16' height='16'> <span class='indicator'> 正在加载频道列表...</span>";
	var strLoader1="<img src='../img/indicator_arrows.gif' width='16' height='16'> <span class='indicator'> 正在加载频道列表....</span>";
	var strNoFound="<span class='indicator'>没有找到频道,<br>请稍后再试!</span>";
	var strRefresh = "<a href=\"#\" onClick=\"refreshChList();\" class=\"line1\">刷新频道列表</a>";
	var strMore = "<a target=_blank href=\"http://www.sopcast.com/cn/player/\" class=\"line1\">技术提供SopCast</a>";
	
	var strSort5="语言";
	var strQc="传输质量:";
	var strQs="信号质量:";

} else {
		
	var strChId= "ID"; 
	var strChName= "Channel Name"; 
	var strChKbps= "Kbps"; 
	var strChUsers= "Ratio"; 
	var strChVisitors= "Visits"; 
	var strChQuality= "Qlty"; 
	var strBookGroup = "Subscribed Channel";
	var strNoBookGroup = "Unsubscribed Channel";
	var strChSubscribe = "Subscribe";
	var strSopAdd = "SoP Address: ";
	var strUsage = "Usage";
	var strChMsg = "Message for Channel";
	var strChSchedule = "Channel Schedule";
	var strEditSchedule = "Edit Schedule"
	var strLoader="<img src='../img/indicator_arrows.gif' width='16' height='16'> <span class='indicator'> Loading Channel List...</span>";
	var strLoader1="<img src='../img/indicator_arrows.gif' width='16' height='16'> <span class='indicator'> Loading Channel List....</span>";
	var strNoFound="<span class='indicator'>No channel is available,<br>Please retry later!</span>";
	var strRefresh = "<a href=\"#\" onClick=\"refreshChList();\" class=\"line1\"> Refresh Channel List</a>";
	var strMore = "<a target=_blank href=\"http://www.sopcast.com/player/\" class=\"line1\">Powered by SopCast</a>";
	
	var strQc="Network Quality:";
	var strQs="Source Quality:";

}


var inHtmlCache="";
var xmlObj = null;
var displayOff=0;
var chClass=0;
var oldTime=new  Date(); 

function showHeader() 
{	
	
	var inHtmlHeader = ""; 
	//start channel title
	inHtmlHeader += "<table cellspacing=1 border='1' bgcolor='#E5ECF9' width='100%' class='channel'>\n";
	inHtmlHeader += "<tr class='ch_title1'><td align='right' colspan=4>"+strRefresh + " | " + strMore; +"</td></tr>";
	inHtmlHeader += "<tr class='ch_title1'><td width='10%'>"+strChId+"</td><td width='*'>"+strChName+"</td><td width='12%'>"+strChKbps+"</td>";
	inHtmlHeader += "<td valign='top' width='12%'>"+strChQuality+"</td></tr>";
	inHtmlHeader += "</table>"
	//end channel title
	document.getElementById("headerArea").innerHTML = inHtmlHeader;
		
}

function menuChange(iconId, gId)  //Control the display of channels in a group
{
	document.getElementById(gId).style.display=(document.getElementById(gId).style.display=='none'?'block':'none');
	document.getElementById(iconId).innerHTML=(document.getElementById(gId).style.display=='none'?"+":"-");

}

function formatStr(str)  //Control the display of group description
{   
	var str1 = str.replace(/'/g, "");
	str1 = str1.replace(/\"/g, " ");
	return str1;
	
}

function switchCh(chId,chSopAdd,chName)  //Control the display of channel info
{   
	//alert(chId+"===="+chSopAdd+"===="+chName);
	OnPlay(chSopAdd,chName);
	var chInfo= "<table width='100%' border='0' cellspacing='0' cellpadding='0'><tr>";
	return false;
}

function displayOffLine()  
{   
	
	if (displayOff==0) {
		displayOff=1;
	} else {
		displayOff=0;
	}
	processXML(xmlObj.responseXML);

}

function plusUnbookedCh()  
{   
	displayOff=0;
	chClass=3;
	ajaxRead("/chlist.xml?class="+chClass);
}

function searchCh()  
{   
	var keyword="";
	keyword=Trim(document.getElementById('searchChKeyword').value);
	if(keyword!="") {
		displayOff=1;
		ajaxRead("/chlist.xml?keyword="+encodeURIComponent(keyword));
		
	} else {
		return false;
	}
}

function refreshChList() 
{
	displayOff=0;
	chClass=0;
	var newTime=new  Date();
	var now=new Date();
	newTime=now.getTime();
	var ss =(newTime-oldTime)/1000;
	if (ss<60) 
	{		
		document.getElementById ('chListArea').innerHTML = strLoader1;
		setTimeout("document.getElementById ('chListArea').innerHTML = inHtmlCache", 1000);
	}
	else
	{
		if (chClass==0) {
			ajaxRead("/chlist.xml");
		} else {
			ajaxRead("/chlist.xml?class="+chClass);
		}
	}
}

function keepAlive(file){

	var xmlObj1 = null;
	if(window.XMLHttpRequest){
		xmlObj1 = new XMLHttpRequest();
	} else if(window.ActiveXObject){
		xmlObj1 = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		return;
	}

	xmlObj1.open ('GET', file, true);
	xmlObj1.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	xmlObj1.send ('');
	setTimeout("keepAlive('/echo.jsp')", 10*60*1000);
}


function ajaxRead(file){

	if(window.XMLHttpRequest){
		xmlObj = new XMLHttpRequest();
	} else if(window.ActiveXObject){
		xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		return;
	}

	xmlObj.onreadystatechange = function(){
	/*if(xmlObj.readyState == 4){
		
		}*/
		switch(xmlObj.readyState) 
		{
case 1: 
document.getElementById("chListArea").innerHTML = strLoader; 
break; 

case 2: 
document.getElementById("chListArea").innerHTML = strLoader; 
break; 
case 3: 
document.getElementById("chListArea").innerHTML = strLoader; 
break; 
case 4: 
processXML(xmlObj.responseXML);



} 
	}
	xmlObj.open ('GET', file, true);
	xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	xmlObj.send ('');
}


function processXML(obj){
	  if(obj.getElementsByTagName('group')!=null && obj.getElementsByTagName('group').length>0) 
	  {	
		var inHtml="";
		var gArray = obj.getElementsByTagName('group');
		var gArrayLen = gArray.length;
		var chArray, chArrayLen;
		var itemArray, itemArrayLen;
		var bShow=true;
		var rowCount=0;
		
		inHtml += "<table cellpadding=1 cellspacing=0 width='100%'  bgcolor='#FFFFFF' ><tr><td>\n";	

		//start twice loop, 1 for has_broadcasting channel group , 2 for no_broadcasting channel group
		for (var twice=1; twice<=2; twice++ ) {
			//start group_for
			for (var i=0; i<gArrayLen; i++)
			{ 
				var firstChannelStatus = gArray[i].getElementsByTagName('channel')[0].getElementsByTagName("status")[0].firstChild.data;
				if ( (twice==1 && firstChannelStatus>1) ||  (twice==2 && firstChannelStatus<=1))
				{	//chech if the group has broadcasting channel
					
					var iconId="icon"+gArray[i].getAttribute("id");
					var gId="gid"+gArray[i].getAttribute("id");
					var gType=gArray[i].getAttribute("type");
					var gIsBooked=1;
					if (gArray[i].getAttribute("isBooked")!=null) {
						gIsBooked=gArray[i].getAttribute("isBooked");
					}
					rowCount++;
					//if (rowCount >= 150 || firstChannelStatus<=1 ) { bShow=false; }
					
					//Start group table
					inHtml += "<table border='0' width='100%' cellspacing=0 class="+(firstChannelStatus>1?"group":"group_no_casting")+"><tr>\n";
					inHtml += "<td align='center' width='20'><div id='"+ iconId +"' class='menu_icon' onclick=menuChange(\""+ iconId +"\",\""+ gId +"\")>"+(bShow?"-":"+")+"</div></td>\n";
					
					var gName = gArray[i].firstChild.data;
					if(language.indexOf('zh') != -1)
					{ 
						if (gArray[i].getAttribute("cn")!="") gName = gArray[i].getAttribute("cn");
					} else {
						if (gArray[i].getAttribute("en")!="") gName = gArray[i].getAttribute("en");
					}
					inHtml += "<td width='*' class=g_name> <a title='"+formatStr(gArray[i].getAttribute("description"))+"' href='#'>"+ gName +"</a></td>\n";
					if (gIsBooked==1) {
						inHtml += "<td  title＝'"+strBookGroup+"' width=36> "+(gType>=2?"<img src='../images/star1.gif' width='12' height='12'>":" ") +"</td>\n";
					} else {
						inHtml += "<td title='"+strNoBookGroup+"' align='right' width=75><img src='../images/locked.gif' width='12' height='12'> <a href='../m/user/index.jsp' target='_blank'>"+strChSubscribe+"</a></td>\n";
					}
					inHtml += "</tr></table>\n";
					//Start channel item
					inHtml += "<table border='1' width='100%' cellspacing=1 class=channel id='"+ gId +"' style='display:"+(bShow?"block":"none")+"'>\n";		
						  
					chArray = gArray[i].getElementsByTagName('channel');
					chArrayLen = chArray.length;
				  
					for(var j=0; j<chArrayLen; j++){

					if(chArray[j].getAttribute("type") == "1")
					{
						continue;
					}
						
					var chStatus=chArray[j].getElementsByTagName("status")[0].firstChild.data;
					if ( chStatus>1 || (chStatus<=1 && displayOff==1) ){  
						rowCount++;
						var ch_item_class="ch_item_disable";
						if (gIsBooked==1) {
							if (chStatus>1) ch_item_class="ch_item";
						} else {
							if (chStatus>1) ch_item_class="ch_item_unbooked";
						}
				
				
						  itemArray = chArray[j].getElementsByTagName("name");
						  var chName = itemArray[0].firstChild.data;
							itemArray1 = chArray[j].getElementsByTagName("description")
							var chDisc = itemArray1[0].firstChild.data;
							if(language.indexOf('zh') != -1)
							{ 
								if (itemArray[0].getAttribute("cn")!="") chName = itemArray[0].getAttribute("cn");
								if (itemArray1[0].getAttribute("cn")!="") chDisc = itemArray1[0].getAttribute("cn");
							} else {
								if (itemArray[0].getAttribute("en")!="") chName = itemArray[0].getAttribute("en");
							}

						  	 inHtml += "<tr class='"+ch_item_class+"'><td width='10%' class='numfield'><span class='ch_id_list'>"+ chArray[j].getAttribute("id") +"</span>.</td>\n";      																//channel-id
							 inHtml += "<td  width='*' title='"+formatStr(chDisc)+"\nStart from:"+chArray[j].getElementsByTagName("start_from")[0].firstChild.data+"'>";   														//channel name
							  if (gIsBooked==1) {
								  if (chStatus<=1){  //channel isnot broadcasting
										inHtml += chName +"</td>\n";   
									} else { //broadcasting
										inHtml += "<a href='#' onClick=\"switchCh('"+chArray[j].getAttribute("id")+"','"+chArray[j].getElementsByTagName("sop_address")[0].getElementsByTagName("item")[0].firstChild.data+"','"+ formatStr(chName)+"');\">"+ chName +"</a></td>\n"
									}
							  } else {
								  inHtml += chName +"</td>\n"; 
							  }
				
		
							inHtml += "<td width='30'>"+ chArray[j].getElementsByTagName("kbps")[0].firstChild.data +"</td>";	
							//inHtml += "<td width='60'>Qlty:"+ chArray[j].getElementsByTagName("qc")[0].firstChild.data +"/"+chArray[j].getElementsByTagName("qs")[0].firstChild.data+"</td>\n";      	//qlty
							
							var bar1 = 5;
							var qs = parseInt(chArray[j].getElementsByTagName("qs")[0].firstChild.data);
							var qc = parseInt(chArray[j].getElementsByTagName("qc")[0].firstChild.data);
							if (qs<20) {
								bar1 = 0;
							} else if (qs>=20 && qs<50){
								bar1 = 1;
							}
							else {
								bar1 = Math.floor((qc+10)/20);
							}
							var strQuality = strQc + qc +"\n"+  strQs + qs ;
							inHtml += "<td width='30' align='center'>";	
							inHtml += "<table align='center' title='"+strQuality+"' height='12' border='0' cellpadding='0' cellspacing='1'><tr>";	
							for (k=1; k<=5; k++) {
								if( k<=bar1 ) {
									inHtml += "<td class='q_green'></td>";	
								} else {
									inHtml += "<td class='q_gray'></td>";
								}
							}
							inHtml += "</tr></table>";	
							inHtml += "</td></tr>\n";

						}
					}
					inHtml += "</table>\n";
				}	//end chech if the group has broadcasting channel
			} 
			//end group_for
		} //end twice loop
		
		inHtml+="</td></tr></table>";  
	} else {
		inHtml = strNoFound;
	}
	inHtmlCache=inHtml;
	var now=new Date();
	oldTime=now.getTime();
	document.getElementById ('chListArea').innerHTML = inHtml;

}



if (navigator.appName.indexOf("Netscape") >-1 ) {
		
	HTMLElement.prototype.__defineSetter__("innerText", function (sText) {
	   this.innerHTML = sText.replace(/\&/g, "&").replace(/</g, "&lt;").replace(/>/g, ">").replace(/\n/g, "<BR>");
	});
	HTMLElement.prototype.__defineGetter__("innerText", function () {
	   var r = this.ownerDocument.createRange();
	   r.selectNodeContents(this);
	   return r.toString();
	});
}
