function fix_one_layer( obj, x, y ){
	var width_start,height_start;
	var ie=document.all
	var ns=document.layers
	var ns6=document.getElementById&&!document.all
	width_start=(document.body.offsetWidth-950)/2;
	height_start=document.documentElement.scrollTop;
	if(ie){
		eval("document.getElementById('"+obj+"')").style.left=width_start + x + "px";
		eval("document.getElementById('"+obj+"')").style.top=height_start + y + "px";
		
	}else{
		eval("document.getElementById('"+obj+"')").style.left=width_start + x + "px";
		eval("document.getElementById('"+obj+"')").style.top=height_start + y + "px";
				
	}
}
//HUϤsܤƬ********************************************
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//HWϤsܤƬ********************************************
//HU~T********************************************
function check_media_play_could_show() {
    if ($("#wrong_info_layer").css("visibility") == "visible" && $('#MediaPlayer').css("visibility") == "visible") {
        $('#MediaPlayer').css("visibility", "hidden");
    } else if ($("#function_layer").css("visibility") == "visible" && $('#MediaPlayer').css("visibility") == "visible") {
        $('#MediaPlayer').css("visibility", "hidden");
    }
}
function after_hide_info() {
    //check other layer
    if ($("#wrong_info_layer").css("visibility") == "visible" && $('#MediaPlayer').css("visibility") == "visible") {
        show_wrong_info();
    } else if ($("#function_layer").css("visibility") == "visible" && $('#MediaPlayer').css("visibility") == "visible") {
        show_function_layer();
    }
}

function show_wrong_info_wrap(varHtml) {
    document.getElementById("wrong_info_layer").innerHTML = varHtml;
    show_wrong_info();
}

function show_wrong_info(){
	if(document.getElementById("wrong_info_layer").style.visibility="hidden"){
		document.getElementById("wrong_info_layer").style.visibility="visible";
		document.getElementById("wrong_bg_layer").style.visibility="visible";
		document.getElementById("wrong_bg_layer").style.height = document.body.offsetHeight +"px";
	}
	fix_wrong_info_loader();
    $('#MediaPlayer').css("visibility", "hidden");	    
}

function hide_wrong_info(){
	if(document.getElementById("wrong_info_layer").style.visibility="visible"){
		document.getElementById("wrong_info_layer").style.visibility="hidden";
		document.getElementById("wrong_bg_layer").style.visibility="hidden";
		document.getElementById("wrong_bg_layer").style.height = "0px";
    }
    // for function layer still be visible
    if ($('#function_layer').css("visibility") != "visible") {
        $('#MediaPlayer').css("visibility", "visible");
    } else {
        document.getElementById("wrong_bg_layer").style.visibility = "visible";
        document.getElementById("wrong_bg_layer").style.height = document.body.offsetHeight + "px";
    }
    after_hide_info();
}

function fix_wrong_info_loader(){
	var width_start,height_start;
	var ie=document.all
	var ns=document.layers
	var ns6=document.getElementById&&!document.all
	width_start=(document.body.offsetWidth-950)/2;
	height_start=document.documentElement.scrollTop;
	if(ie){
		document.getElementById("wrong_info_layer").style.left=width_start+220+"px";
		document.getElementById("wrong_info_layer").style.top=height_start+130+"px";
	}else{
		document.getElementById("wrong_info_layer").style.left=width_start+220+"px";
		document.getElementById("wrong_info_layer").style.top=height_start+130+"px";
	}
}

//HW~T********************************************

//HU\gray ********************************************
function disable_fullwindow() {
    document.getElementById("wrong_bg_layer").style.visibility = "visible";
    document.getElementById("wrong_bg_layer").style.height = document.body.offsetHeight + "px";
    $('#MediaPlayer').css("visibility", "hidden");
}

function enable_fullwindow() {
    document.getElementById("wrong_bg_layer").style.visibility = "hidden";
    $('#MediaPlayer').css("visibility", "visible");
}

//HU\ϼh(function_layer)********************************************
function show_function_layer_wrap(varHtml) {
    show_function_layer();
	document.getElementById("function_layer").innerHTML = varHtml;
}

function show_function_layer(){
	if(document.getElementById("function_layer").style.visibility="hidden"){
		document.getElementById("function_layer").style.visibility="visible";
		document.getElementById("wrong_bg_layer").style.visibility="visible";
		document.getElementById("wrong_bg_layer").style.height = document.body.offsetHeight +"px";
			
	}
	fix_function_layer();
	$('#MediaPlayer').css("visibility", "hidden");
	
}

function hide_function_layer(){
	document.getElementById("function_layer").style.visibility="hidden";
	document.getElementById("wrong_bg_layer").style.visibility = "hidden";
	document.getElementById("function_layer").style.left = -1000 + "px";
	document.getElementById("function_layer").style.top = -1000 + "px";
	$('#MediaPlayer').css("visibility", "visible");
	after_hide_info();
}
function fix_function_layer(){
	var width_start,height_start;
	var ie=document.all
	var ns=document.layers
	var ns6=document.getElementById&&!document.all
	width_start=(document.body.offsetWidth-950)/2;
	height_start=document.documentElement.scrollTop;
	if(ie){
		document.getElementById("function_layer").style.left=width_start+220+"px";
		document.getElementById("function_layer").style.top=height_start+130+"px";
	}else{
		document.getElementById("function_layer").style.left=width_start+220+"px";
		document.getElementById("function_layer").style.top=height_start+130+"px";
	}
}
//HW\ϼh(function_layer)********************************************




function show_tuner(){
	if(document.getElementById("load_layer").style.visibility="hidden"){
		//alert(document.body.offsetHeight);
		document.getElementById("load_layer").style.visibility="visible";
		document.getElementById("bg_layer").style.visibility="visible";
		//document.getElementById("bg_layer").style.top=document.documentElement.scrollTop+"px";
		document.getElementById("bg_layer").style.height = document.body.offsetHeight +"px";
		//document.body.style.overflow="hidden";
		
	}
	fix_loader();
}

function hide_tuner(){
	if(document.getElementById("load_layer").style.visibility="visible"){
		document.getElementById("load_layer").style.visibility="hidden";
		document.getElementById("bg_layer").style.visibility="hidden";
		document.getElementById("bg_layer").style.height = "0px";
		//document.body.style.overflow="visible";
		
	}
	
}
function fix_loader(){
	var width_start,height_start;
	var ie=document.all
	var ns=document.layers
	var ns6=document.getElementById&&!document.all
	width_start=(document.body.offsetWidth-950)/2;
	height_start=document.documentElement.scrollTop;
	if(ie){
		document.getElementById("load_layer").style.left=width_start+120+"px";
		document.getElementById("load_layer").style.top=height_start+130+"px";
	}else{
		document.getElementById("load_layer").style.left=width_start+120+"px";
		document.getElementById("load_layer").style.top=height_start+130+"px";
	}
}


//////////////////////////////////////////////////
/////HUjosh lodingϥ
//////////////////////////////////////////////////
function show_loding_for_table(varTblId)
{	
	if( $('#' +varTblId).size() === 1 )
	{
		if( $('#' +varTblId+' tbody').size() > 1 )
		{
			$('#' +varTblId+' tbody').remove();
		}
		if( $('#' +varTblId+' tbody').size() === 0 )
		{
			$("#" + varTblId).append('<tbody/>');
		}
		$('#' +varTblId+' tbody').empty();
		$('#'+varTblId+' tbody').append('<tr><td><div style="padding-top:10px; text-align:center"><img src="public/images/loadinfo_data.gif" /></div></td></tr>');
	}
}

function clear_row_expectfirstone_table(varTblId)
{
    $('#'+varTblId+' tbody').empty();
}

function pop_loding_for_table(varTblId) { // no sorting table(without thead)
    var varTargetTbl = $("#" + varTblId)[0];
    var varIndex = varTargetTbl.rows.length - 1;    
    if (varIndex >= 0) {
        varTargetTbl.deleteRow(varIndex);
    }
}

//////////////////////////////////////////////////
/////HUjosh sorting ϥ
//////////////////////////////////////////////////
function display_selectedone_hide_others(varSelectedItem, varOthersClssname) {
    $('.' + varOthersClssname).css('visibility', 'hidden');      
    $('#' + varSelectedItem).css('visibility', 'visible');
}

function display_sorting_flag(varSelectedItem, varOthersClssname) {
    $('.' + varOthersClssname).css('visibility', 'hidden');
   //alert($('#' + varSelectedItem)[0].order);
    if ($('#' + varSelectedItem)[0] == null) return;
    
    if ($('#' + varSelectedItem)[0].order == 1) {
        $('#' + varSelectedItem + "_pic").attr('src', "public/images/sorting_up.jpg")
    } else if ($('#' + varSelectedItem)[0].order == 0) {
        $('#' + varSelectedItem + "_pic").attr('src', "public/images/sorting_down.jpg")
    }
    $('#' + varSelectedItem + "_pic").css('visibility', 'visible');
}

//////////////////////////////////////////////////
/////HUjosh request lay Ʀr
//////////////////////////////////////////////////

function show_request_count_ontop(varCount) {
    if (varCount < 1) {
        $("#my_friend_num_layer").css('visibility', 'hidden').css('cursor', 'default');
    } 
	else
	{
        $("#my_friend_num_layer").css('visibility', 'visible').css('cursor', 'pointer').text(varCount);
    }         
}

//////////////////////////////////////////////////
/////HUjosh detect bandwidth 
//////////////////////////////////////////////////
var g_last_detect_bw_hostname = 0;
var g_last_detect_bw_port = 0;
var g_detect_bw_timeout_pass = false;
var g_detect_bw_timeout_timerid = 0;

function bw_detect_frame_and_play(varHostname, varPort, varNattype, varSid, varPlayUrl,  varbMustDetect, varRelayNode,device_id,ch_number,source_id) {
    if (varbMustDetect == true || g_last_detect_bw_hostname != varHostname || g_last_detect_bw_port != varPort) {
        
        var varSpeedUrl = "";
		if (varNattype === '0'  || g_var_station_var.same_net )
		{
            varSpeedUrl = "http://";
        }
        else
		{
            varSpeedUrl = "http://"+varRelayNode+"/";
        }
		//varSpeedUrl = varSpeedUrl + varHostname + ":" + varPort + "/speed.html?sid=" + varSid + "&date=" + fnGetHmsString();
        
		
		varSpeedUrl = varSpeedUrl + varHostname + ":" + varPort + "/speed.html?sid=" + varSid 
			+ "&date=" + fnGetHmsString()
			+"&dev="+device_id
			+"&src="+source_id
			+"&type="+'0'
			+( ch_number?("&ch="+ch_number):'');
		

		//varSpeedUrl = varSpeedUrl + varHostname + ":" + varPort + "/speed.html?sid=" + varSid + "&date=" + fnGetHmsString()+"&dev="+device_id;

		//set timeout for that it can't get speed.html sometimes.
        g_detect_bw_timeout_pass = false;
        //if the pre-test doesn't finish, stop the pre-test timer.
        TimerStop(g_detect_bw_timeout_timerid);
        g_detect_bw_timeout_timerid = TimerStart(
			function()
			{
				if ( !g_detect_bw_timeout_pass )
				{
					g_detect_bw_timeout_pass = true;
					show_media_play_loading_status(2);
					webpage_error_handle("WRONG_POPUP_CONTENT_CHECK_BANDWIDTH_TIMEOUT");
				}
				g_detect_bw_timeout_timerid = 0;
			}
			,60000
		);//60s
         
        
        $("#bw_detect_frame").unbind('load');
        $("#bw_detect_frame").attr("src", varSpeedUrl);        
        $("#bw_detect_frame").bind('load', function()
			{
				if (g_detect_bw_timeout_pass == false)
				{
					g_detect_bw_timeout_pass = true;
					g_last_detect_bw_hostname = varHostname;
					g_last_detect_bw_port = varPort;                
					player_set_src(varPlayUrl);
					player_play_timeout_check();
				}	
			});
    }
	else
	{
        player_set_src(varPlayUrl);
        player_play_timeout_check();
    }
}
//////////////////////////////////////////////////
/////HUjosh detect station availabe
//////////////////////////////////////////////////
/*
input variable: varStreamingType = "live" or "recorde"
*/
var g_last_check_ajax_xhr = 0; // for ajax run once one time
var g_last_check_owner = 0;
var g_last_check_station = 0;
var g_last_check_tuner = 0;
var g_last_check_sourcetype = 0;




function check_sation_available(varOwner, varStation, varTuner, varSourceType) {
    check_sation_available.owner = varOwner; // for ajax in differet function 
    check_sation_available.station = varStation;
    check_sation_available.tuner = varTuner;
    check_sation_available.sourcetype = varSourceType; 
    var differ_source  = (g_last_check_owner != varOwner || g_last_check_station != varStation ||   g_last_check_tuner != varTuner ||   g_last_check_sourcetype != varSourceType);
	var not_my_station = ( varOwner != G_SESSION_EMIAL );
	//alert(not_my_station);
	//alert(differ_source);
	if ( differ_source && not_my_station )
	{
		try{g_last_check_ajax_xhr.abort();}catch (e){    }      
        if (g_last_check_ajax_xhr != 0) { g_last_check_ajax_xhr.abort(); }       
        g_last_check_ajax_xhr = $.ajax({
            type: "POST",
            url: "application/im/proxy_actions/check_available.php",
            data: {
                owner: varOwner,
                station: varStation,
                tuner: varTuner,
                source_type: varSourceType
            },
            dataType: "text",
            success: function(varMsg) {
                g_last_check_ajax_xhr = 0;
                check_sation_available_ajax(varMsg);
            }
        });
    } 
	else
	{
		if (G_NOW_PAGE == "live") {
            PlayStreamingUrlAjaxcallbackSuc();
        } else if (G_NOW_PAGE == "recorded") {
            PlayRecFileStreamingUrlAjaxcallbackSuc();
        } 
    }
}

function check_sation_available_ajax(varMsg)
{
	//alert(varMsg);
	if (varMsg == "") 
	{
        xml_error_check(null, "check_available.php", null);
        if (G_NOW_PAGE == "live")
		{
            PlayStreamingUrlAjaxcallbackFail();
        } 
		else if (G_NOW_PAGE == "recorded")
		{
            PlayRecFileStreamingUrlAjaxcallbackFail();
        }
    } 
	else 
	{
        var varXmlObj = $("<xml>" + varMsg + "</xml>");
		if (xml_error_check(varXmlObj, "check_available.php", null) == true) 
		{
            if (G_NOW_PAGE == "live")
			{
                PlayStreamingUrlAjaxcallbackFail();
            } 
			else if (G_NOW_PAGE == "recorded")
			{
                PlayRecFileStreamingUrlAjaxcallbackFail();
            }
			return;
        }
        g_last_check_owner = check_sation_available.owner;
        g_last_check_station = check_sation_available.station;
        g_last_check_tuner = check_sation_available.tuner;
        g_last_check_sourcetype = check_sation_available.sourcetype;
        if (G_NOW_PAGE == "live")
		{
            PlayStreamingUrlAjaxcallbackSuc();
        } 
		else if (G_NOW_PAGE == "recorded") 
		{
            PlayRecFileStreamingUrlAjaxcallbackSuc();
        }        
    }
}

//////////////////////////////////////////////////
/////HUjosh Sƪplay src
//////////////////////////////////////////////////
var g_play_timeout_check_active = false;
var g_play_timeout_check_active_timeout_timerid = 0;
//btimeout emedia player niJ"buffer", "play" or "error"@
function player_play_timeout_check() {
    TimerStop(g_play_timeout_check_active_timeout_timerid);
    g_play_timeout_check_active = false;
	player_play();
	//setTimeout(function(){ player_play();   }, 5000);	

    g_play_timeout_check_active_timeout_timerid = TimerStart(
    function() {
        if (g_play_timeout_check_active != true) {
            g_play_timeout_check_active = true;
            player_stop();
            show_media_play_loading_status(2);
            webpage_error_handle("WRONG_POPUP_CONTENT_TOO_LONG_TO_PLAY");
        }
    },
     120000 // 120 second
    );
}

function get_RelayNode(hostname,port){
	var varRelayNode = '';
	$.ajax({
			type: "GET",
			url: "application/stun/notify_rns_request.php?ip=" + hostname + "&port=" + port,
			dataType: "text",
			async: false,
			timeout: 10000,  //10(s)
			success: function(varMsg) {
				varRelayNode = varMsg;
			}
        });
	return varRelayNode;
}
var usefloor = function(min,max) { return Math.floor(Math.random()*(max-min+1)+min); }//üƨ禡

var myLightBox = function(ele_id)
{
	var ele  = $( '#'+ele_id );
	var topPad = 30;
	var docOffsetT =  $(document).scrollTop();
	var docOffsetL =  $(document).scrollLeft();
	var winW = $('body').outerWidth(true);
	var winH = $('body').outerHeight(true);
	var eleW = ele.outerWidth(true);
	var eleH = ele.outerHeight(true);
	var eleX = ( (winW-eleW) > 0 )?((winW-eleW)/2):0;
	var eleY = topPad+docOffsetT;
	var bkW  = ( (winW-eleW) > 0 )?winW:eleW;
	var bbH  =  ( (( topPad*2 ) + eleH) > winH )?(( topPad*2 ) + eleH):winH;
	var bk = $('<div />');
	var close = function(){ bk.remove(); ele.css('display','none'); }

	bk.css('z-index',30).css('position','absolute').css('top',0).css('left',0).css('background','black').width(bkW).height(bbH).prependTo('body');
	ele.css('position','absolute').css('z-index',40).css('top',eleY).css('left',eleX).css('display','block');
	bk.click( close );
	ele.click( close );
	bk.fadeTo(300, 0.5);
}

var wol_win = function(obj)
{

	obj = $(obj);
	//alert( obj.attr('mac') );
	//alert( obj.attr('dns') );

    var varData = "";
    $.ajax({
        type: "POST",
        url: "common/confirm_popup.php",
        data: {
                titlepicsrc: "public/images/my_profile_wrong_icon.jpg",
                titleid: "WOL_TITLE",
                messageid: "WOL_DES",
                warningid: "WOL_WARNING",
                okcallbackfn: "wol('"+ obj.attr('dns') +"','"+ obj.attr('mac') +"')",
                cancelcallbackfn: "",
				okBtnImg:'wake_up.png',
				canBtnImg:'myfriend_request_reject_btn_01.png'
            },
        dataType: "text",
        async: false,
        timeout: 30000,
        success: function(msg) {
            varData = msg;
        }
    });
    show_function_layer_wrap(varData);
};


var wol=function(dns,mac)
{

    $.ajax({
        type: "POST",
        url: "application/wol/",
        data: {
                dns: dns,
                mac: mac
            },
        dataType: "text",
        async: false,
        timeout: 30000,
        success: function(msg) {
            //if(msg !=='')alert(msg);
        }
    });



};


/**********************************************************************/
//
//
//    Demo User Limit
//
//
/************************************************************************/

var FactoryWatchDemoTime = function()
{
	var count = 0;
	var find_demo = true;
	var first_false = false;
	var check_demo = function(){
		find_demo = true;
		$.post('data.php',{app:'im',fun:'get_roster',sharefilter:'accept',without_demo:0},function(data){
			//alert( data );
			$( '<xml>'+data+'</xml>').find("sharelist account[id='AVerMedia.Demo'] status").each(function(){
				//alert($(this).text());
				switch ( parseInt($(this).text()) )
				{
					case 2:
						find_demo = false;
						break;
					case 1:
						first_false = false;
						break;
				}
				return false;
			});
			if( false === find_demo && false == first_false )
			{
				if( count >0 )
				{
				   //alert(2);
				   	clearInterval( int_id );
					if ( g_media_popup_window != null ) { try{ g_media_popup_window.close(); }catch(e){ } }					
					player_stop();
					player_set_fullscreen(false);
					window.location = "lang/" + G_SESSION_LANG + "/static/time_up_page.php";
				}
				else
				{
					first_false = true;
					//alert(1);
				}
			}
			else
			{
				//alert(3);
			}
			count++;
		});
	};
	
	var int_id = setInterval( check_demo , 1000 * 30 );
}
