// *** function to replace href="#" ***
function v(){
	return;
}

function getParam(){
  var url=String(document.location);
  if(url.indexOf("?")>-1){
    url=url.substr(url.indexOf("?")+1);
    for(var i=0;i<arrCode.length;i++){
      if(url==arrCode[i]){
        arrService[0][4]=false;
        arrService[i][4]=true;
        return i;
      }
    }
  }else{
    return 0;
  }
}

////////////////////////////////////
// Language
////////////////////////////////////
function lang(label){
  document.write(arrLang[label]);
}

////////////////////////////////////
// Channels
////////////////////////////////////
var activeTab=0;

// *** Output Channel List ***
function writeTabs(){
  var obj=document.getElementById("navtabs");
  for(var i=0;i<arrService.length-1;i++){
    obj.innerHTML+=('<li><a href="javascript:v()" onclick="clickTab('+i+');this.blur()">' + arrService[i][1] + '</a></li>\n');
  }
}

// *** Output List panel for channels ***
function writeLists(){
  var obj=document.getElementById("itemList");
  for(var i=0;i<arrService.length-1;i++){
    obj.innerHTML+= '<div id="list_'+arrService[i][0]+'">\n</div>\n';
  }
}

// *** Output Link List ***
function writeLinks(){
  var obj=document.getElementById("links");
  for(var i=0;i<arrLinks.length;i++){
		if(arrLinks[i].length==3){
	    obj.innerHTML+= '&nbsp;&nbsp;<a href="' + arrLinks[i][1] + '" title="' + arrLinks[i][0] +'" target="_blank">'+
				'<img src="' + arrLinks[i][2] + '" alt="' + arrLinks[i][0] + '" />'+
				'</a>\n';
		}
  }
}

// *** Load Lists ***
function loadList(listid){

	for(var i=0;i<arrService.length-1;i++){
    var objPanel=document.getElementById("list_"+arrService[i][0]);

    // UI
    if(listid!=0){
      objPanel.style.display='none';
    }else{
      objPanel.style.display='block';
    }

    if(i==listid){
      objPanel.style.display='block';
    }

	}
  
  // Load Action
  if(listid!=0){
    getChannelItems(listid);
  }else{
    for(var i=1;i<arrService.length-1;i++){
      setTimeout("getChannelItems("+i+")", i*100);
    }
  }

	activeTab=listid;
}

////////////////////////////////////
// Item Panel
////////////////////////////////////
function togglePanel(){
  var obj=document.getElementById("chPanel");
  var objSep=document.getElementById("sep");
	if(obj){
		if(obj.style.display!='none'){
			obj.style.display='none';
			objSep.innerHTML="&raquo;";
		}else{
			obj.style.display='block';
			objSep.innerHTML="&laquo;";
		}
	}
}

function getChannelItems(id){
  if(!arrService[id][3]){
    var channelid=arrService[id][0];
    var obj=document.getElementById("list_"+channelid);
    obj.innerHTML=arrService[id][1]+" "+arrLang["loading"];
    arrService[id][3]=true;
    if(!simpleAjax.load("call_"+id,arrService[id][2],outputItemList,0)){
      obj.innerHTML=arrService[id][1]+" "+arrLang["load_error"];
      arrService[id][3]=false;
      if(simpleAjax.error){
        obj.innerHTML+='('+simpleAjax.error.number+":"+simpleAjax.error.description+')';
      }
    }
  }
}

function outputItemList(callid,result,errorCode,errorText){
  var id=parseInt(callid.replace("call_",""),10);
  var obj=document.getElementById("list_"+arrService[id][0]);
  if(result){
    fillItemData(id, simpleParser.parse(simpleAjax.result[callid]));
  }else{
    obj.innerHTML=arrService[id][1]+" "+arrLang["load_error"];
    arrService[id][3]=false;
    if(simpleAjax.error){
      obj.innerHTML+='('+simpleAjax.error.number+":"+simpleAjax.error.description+')';
    }
  }
}

// *** Fill data ***
function fillItemData(id, objFeed){
  var obj=document.getElementById("list_"+arrService[id][0]);
  if(typeof(objFeed)=="string"){
    arrService[id][3]=false;
    obj.innerHTML=arrService[id][1]+" "+arrLang["parse_error"]+' ('+objFeed+')';
  }else{
    obj.innerHTML = generateListHTML(objFeed);
  }
}

// *** gerneate Ouput HTML for channel list ***
function generateListHTML(objFeed){

	if(objFeed.items.length<1){
		return '<li>'+arrLang["no_content"]+'</li>';
	}

	var outputHTML = "";
	var arrList = [];


	// sort items by category
	for(var i=0;i<objFeed.items.length;i++){
		if(arrList[objFeed.items[i].category]==undefined){
			arrList[objFeed.items[i].category]=[];
		}
		arrList[objFeed.items[i].category].push(objFeed.items[i]);
	}

	
	for(var category in arrList){
		outputHTML += '<div class="catpanel" id="cattitle_'+objFeed.type+'_'+escape(category)+'" onclick="toggleCat(\''+objFeed.type+'\',\''+escape(category)+'\')">' +'&raquo; ' + category + '</div>' +
									'<ul id="cat_'+objFeed.type+'_'+escape(category)+'" style="display: none;">';
		for( var i=0; i< arrList[category].length; i++){
			outputHTML+='<li><a href="javascript:playContent(\''+objFeed.type+'\',\''+arrList[category][i].url+'\',\''+escape(arrList[category][i].title)+'\')" onclick="this.blur()">'+arrList[category][i].title+'</a>'+
			'</li>\n';
		}
		outputHTML += '</ul>';
	}
	
	return '<ul>\n'+outputHTML+'</ul>\n';

}

function toggleCat(type, category){
	var obj=document.getElementById("cat_"+type+"_"+category);
	var objTitle=document.getElementById("cattitle_"+type+"_"+category);
	if(obj){
		if(obj.style.display=='none'){
			obj.style.display='block';
			objTitle.innerHTML='&laquo; '+unescape(category);
		}else{
			obj.style.display='none';
			objTitle.innerHTML='&raquo; '+unescape(category);
		}
	}
}

///////////////////////////
// Play Item
///////////////////////////
function playContent(type, url, comment){
  var obj;
  if(currentPlayer!=type){
    doCleanup();

    obj=document.getElementById("playerBox");
    obj.innerHTML=arrPlayer[type];
  }

  obj=document.getElementById(playerID);

  currentPlayer=type;

  try{
    switch(type){
      case "pcast":
        obj.stop();
        obj.Channel=url;
        break;
      case "pplive":
        obj.Stop();
        obj.URL=url;
        break;
      case "ppstream":
        obj.pause();
        obj.src=url;
        obj.play();
        break;
    }
  }catch(e){
    foundError(type)
  }

  obj=document.getElementById("playerTitle");
  obj.innerHTML=arrLang["current_playing"]+" "+unescape(comment);

}

function foundError(type){
    obj=document.getElementById("playerBox");
    obj.innerHTML='<div class="note" id="installNote">'+
      arrInstall[type][0]+
      '&nbsp; <a href="'+arrInstall[type][1]+'" target="_blank">'+
      arrLang["manual_install"]+
      '</a>'+
      '</div>'+arrPlayer[type];
}

function doPlay(){
  if(currentPlayer=="") return;

  var obj=document.getElementById(playerID);

  try{
    switch(currentPlayer){
      case "pcast":
        if(obj.IsStop) obj.play();
        break;
      case "pplive":
        obj.Play();
        break;
      case "ppstream":
        if(obj.state=="1"){
          obj.pause();
        }else{
          obj.play();
        }
        break;
    }
  }catch(e){
    foundError(currentPlayer)
  }
}

function doPause(){
  if(currentPlayer=="") return;

  var obj=document.getElementById(playerID);
  try{
    switch(currentPlayer){
      case "pcast":
        return; // no interface
        break;
      case "pplive":
        obj.Pause();
        break;
      case "ppstream":
        obj.pause();
        break;
    }
  }catch(e){
    foundError(currentPlayer)
  }
}

function doStop(){
  if(currentPlayer=="") return;

  var obj=document.getElementById(playerID);

  try{
    switch(currentPlayer){
      case "pcast":
        if(!obj.IsStop) obj.stop();
        break;
      case "pplive":
        obj.Stop();
        break;
      case "ppstream":
        obj.stop();
        break;
    }
  }catch(e){
    foundError(currentPlayer)
  }
}

function doCleanup(){
  if(currentPlayer=="") return;

  var obj=document.getElementById(playerID);

  try{
    switch(currentPlayer){
      case "pcast":
        obj.stop();
        obj.Channel="";
        break;
      case "pplive":
        obj.Stop();
        obj.URL="";
        break;
      case "ppstream":
        obj.stop();
        obj.src="";
        break;
    }
  }catch(e){
  }
}

function doMute(){
  if(currentPlayer=="") return;

  var obj=document.getElementById(playerID);

  try{
    switch(currentPlayer){
      case "pcast":
        if(!obj.mute){
          obj.mute=true;
        }else{
          obj.mute=false;
        }
        break;
      case "pplive":
        if(!obj.Mute){
          obj.Mute=true;
        }else{
          obj.Mute=false;
        }
        break;
      case "ppstream":
        if(!obj.mute){
          obj.mute=true;
        }else{
          obj.mute=false;
        }
        break;
    }
  }catch(e){
    foundError(currentPlayer)
  }
}

function doFullscreen(){
  if(currentPlayer=="") return;

  var obj=document.getElementById(playerID);

  try{
    switch(currentPlayer){
      case "pcast":
        if(!obj.FullScreen){
          obj.FullScreen=true;
        }else{
          obj.FullScreen=false;
        }
        break;
      case "pplive":
        if(!obj.FullScreen){
          obj.FullScreen=true;
        }else{
          obj.FullScreen=false;
        }
        break;
      case "ppstream":
        obj.SetFullScreen(1);
        break;
    }
  }catch(e){
    foundError(currentPlayer)
  }
}