//
// Dvr Info
//
var DVRPort2;               // Monitor Port
var DvrLang;                // DVR Language
var DvrChnNum = 4;          // DVR Video Channel Number
var DvrAudio;               // DVR Audio Enable
var DvrLL15;                // DVR TimeZone
var DvrType;                // DVR Type
var DvrFirmVer;             // Dvr Firmware Version
var DVRVideoMsk = 0;        
var DVRAudioMsk = 0;
var DvrPTZ;
var DvrAlarm;
var DvrSensor;
var DVRNetAudio;

// Dvr Type Define
var HUGGY = true;

// Dvr OnLine Info
var NetLoginCount = 0;
var MaxClient     = 4;

var DVRHost;
var DVRPort;
var DVRHostName;
var Language    = 'English';   // Loaded Language js filename
var MaxItem     = 5;           // MAX SubMenu number


function DvrTypeDefine ()
{
    // HUGGY
    if (DvrType != 500) HUGGY = false;
}

function DvrInfo_Index ()
{
    GetXml("/gw/Port.xml", {}, function(xml) {
        DvrInfo_xml_to_var (xml);
        DvrTypeDefine ();
        $("#FirmVer").html(DvrFirmVer);
        Language_RUN (DvrLang);
    });
}


// save Dvr Info to Variable in Javascript
function DvrInfo_xml_to_var (xml)
{
    DVRPort2    = $("p2", xml).text();
    DvrLang     = $("lang", xml).text();
    DvrChnNum   = $("NUM_CAM", xml).text();
    DvrAudio    = $("Audio", xml).text();
    DvrLL15     = $("LL15", xml).text();
    DvrType     = $("dMainType", xml).text();
    DvrFirmVer  = $("FirmInfo", xml).text();
    DVRVideoMsk = $("VideoMsk", xml).text();
    DVRAudioMsk = $("AudioMsk", xml).text();
    DvrPTZ      = $("ptz", xml).text();
    DvrAlarm    = $("alarm", xml).text();
    DvrSensor   = $("sensor", xml).text();
    DvrNetAudio   = $("NetAudio", xml).text();
    
 
   
    //alert(DvrSensor);
   // alert("DvrInfo_xml_to_var");
}

function DvrInfo ()
{
    if (window.parent.opener != null) // for IE Config - open by IE Viewer
    {
        DVRPort2    = window.parent.opener.DVRPort2;
        DvrLang     = window.parent.opener.DvrLang;
        DvrChnNum   = window.parent.opener.DvrChnNum;
        DvrAudio    = window.parent.opener.DvrAudio;
        DvrLL15     = window.parent.opener.DvrLL15;
        DvrType     = window.parent.opener.DvrType;
        DVRVideoMsk = window.parent.opener.DVRVideoMsk;
        DVRAudioMsk = window.parent.opener.DVRAudioMsk;
        DvrPTZ      = window.parent.opener.DvrPTZ;
        DvrAlarm    = window.parent.opener.DvrAlarm;
        DvrSensor   = window.parent.opener.DvrSensor;
        DvrNetAudio = window.parent.opener.DvrNetAudio;
    }
    else if (window.parent.DvrInfoReady == true)  // for IE Config - open by PC Viewer
    {
        DVRPort2    = window.parent.DVRPort2;
        DvrLang     = window.parent.DvrLang;
        DvrChnNum   = window.parent.DvrChnNum;
        DvrAudio    = window.parent.DvrAudio;
        DvrLL15     = window.parent.DvrLL15;
        DvrType     = window.parent.DvrType;     //alert('true ' + window.parent.DvrInfoReady);
        DVRVideoMsk = window.parent.DVRVideoMsk;
        DVRAudioMsk = window.parent.DVRAudioMsk;
        DvrPTZ      = window.parent.DvrPTZ;
        DvrAlarm    = window.parent.DvrAlarm;
        DvrSensor   = window.parent.DvrSensor;
        DvrNetAudio = window.parent.DvrNetAudio;
    }
    else if (window.opener != null)   // for Window - open by other window
    {
        DVRPort2    = window.opener.DVRPort2;
        DvrLang     = window.opener.DvrLang;
        DvrChnNum   = window.opener.DvrChnNum;
        DvrAudio    = window.opener.DvrAudio;
        DvrLL15     = window.opener.DvrLL15;
        DvrType     = window.opener.DvrType;
        DVRVideoMsk = window.opener.DVRVideoMsk;
        DVRAudioMsk = window.opener.DVRAudioMsk;
        DvrPTZ      = window.opener.DvrPTZ;
        DvrAlarm    = window.opener.DvrAlarm;
        DvrSensor   = window.opener.DvrSensor;
        DvrNetAudio = window.opener.DvrNetAudio;
    }
    else
    {
        GetXml("/gw/Port.xml", {}, function(xml) {
            DvrInfo_xml_to_var (xml);
        });                                     //alert('false ' + window.parent.DvrInfoReady);
    }
    
    DvrTypeDefine ();
}


// Channel Number ADD
function Channel_Num_ADD ()
{
  var html = '';
  if (DvrChnNum >= 4) {
      for (var i = 1; i <= 4; i ++)
          html += '\n<a id="ch'+ i +'" href="javascript:Init('+ i +')">['+ i +']</a>';
  }
  if (DvrChnNum >= 8) {
      for (var i = 5; i <= 8; i ++)
          html += '\n<a id="ch'+ i +'" href="javascript:Init('+ i +')">['+ i +']</a>';
  }
  
  $('#channelTD').append(html);

  if (DvrChnNum >= 16)
  {
      html = '';
      html += '\n<tr><td></td><td></td><td class="CHb">';
      for (var i = 9; i <= 16; i ++)
          html += '\n<a id="ch'+ i +'" href="javascript:Init('+ i +')">['+ i +']</a>';
      html += '\n</td></tr>';

      $('#chTR').after(html);
  }
}


function GetXml (url, data, callback)
{
  $.ajax({
    async: false,
    cache: false,
    url: url,
    data: data,
    success: callback,
    dataType: 'xml'
  });
}

function Ajax (url, data, callback)
{
  $.ajax({
    async: true,
    cache: false,
    url: url,
    data: data,
    success: callback,
    dataType: 'xml'
  });
}

// Options Object
var FormOption = {
    async: true,
    cache: false,
    error: function() {
      alert("Please apply again !");
    },
    success: function(xml) {
      $("#apply").attr('disabled', true);
    }
};


// Channel Number Switch
function TabSwitch (ChNumber) 
{
  document.getElementById('current').id = 'ch' + $("#ch").val();
  document.getElementById('ch' + ChNumber).id = 'current';
  $("#ch").val(ChNumber);
}

function GET_HOSTNAME_PORT ()
{
	if (location.port !="")
	{
		DVRPort = location.port;
	}
	else
	{
		DVRPort = "80";
	}

  DVRHostName = location.hostname;
	DVRHost = "http://" + DVRHostName + ":" + DVRPort;
}


// ¤Á´« ¤l¿ï³æ
function ShowSubMenu (active)
{
    for (i = 1; i <= MaxItem; i++)
    {
        if ($('#SubMenu' + i) == null)  continue;

        if (i != active)
        {
            $('#SubMenu' + i).css('display', 'none');
            $('#Menu' + i).attr('class', 'MainMenu');
        }
        else
        {
            $('#SubMenu' + i).css('display', '');
            $('#Menu' + i).attr('class', 'MainMenu_cls');
        }
    }
}


function ApplyEnable()
{
  $('select').change(function() {
      $("#apply").attr('disabled', false);
  });

  $('input').keydown(function() {
      $("#apply").attr('disabled', false);
  });
}


// Disable Chinese Input
function CheckName(obj)
{
  if(obj.value == '') {}
  else
  {
    var regex = /[\u0391-\uFFE5]/;
    if (regex.test(obj.value))
        obj.value = '';
  }
}

// Enable Hex
function checkHex(obj)
{
  if(obj.value == '') {}
  else
  {
    var regex = /[^0-9A-Fa-f]/;
    if (regex.test(obj.value))
        obj.value = '';
  }
}

// Enable Url (Digits + .)
function checkHost(obj)
{
  if(obj.value == '') {}
  else
  {
    var regex = /[^.0-9A-Za-z]/;
    if (regex.test(obj.value))
        obj.value = '';
  }
}

// Enable E-Mail Address (Digits + _.@)
function checkAddr(obj)
{
  if(obj.value == '') {}
  else
  {
    var regex = /[^_.@0-9A-Za-z]/;
    if (regex.test(obj.value))
        obj.value = '';
  }
}

// Enable Digits
function checkNum(obj)
{
  if(obj.value == '') {}
  else
  {
    var regex = /[^0-9]/;
    if (regex.test(obj.value))
        obj.value = '';
  }
}


// Language RUN !!!
function Language_RUN (DvrLang)
{
    if (DvrLang == null)    DvrLang = 0;  // Default Language

    LoadLang (DvrLang);
    InitLang ();
}


function LoadLang__ (lang) {
	switch (lang) {
	case '0': Language = 'English'; break;
	case '1': Language = 'Chinese'; break;
	case '2': Language = 'Japanese'; break;
	case '3': Language = 'Thai'; break;
	case '4': Language = 'Russian'; break;
	case '5': Language = 'Hungary'; break;
	case '6': Language = 'Italian'; break;
	case '7': Language = 'Greek'; break;
	case '8': Language = 'Iran'; break;
	case '9': Language = 'French'; break;
	case '10': Language = 'German'; break;
	case '11': Language = 'Spanish'; break;
	case '12': Language = 'Romanian'; break;
	default: Language = 'English'; break;
	}
	$.localise(Language, {loadBase: true, path: 'lang/'});
}


function LoadLang (lang) {
	switch (lang) {
	case '0': Language = 'English'; break;
	case '1': Language = 'Italian'; break;
	case '2': Language = 'French'; break;
	case '3': Language = 'Spanish'; break;
	case '4': Language = 'German'; break;
	default: Language = 'English'; break;
	}
	$.localise(Language, {loadBase: true, path: 'lang/'});
}


