if ((navigator.appName == "Microsoft Internet Explorer") &&
    (navigator.platform != "MacPPC") &&
    (navigator.platform != "Mac68k")) {
  var browser = "IE"
} else {
  var browser = "Netscape"
}


// This function shows a message in the status bar
function showStatus(msg)
{
  window.status = msg
  return true
}

// This functions draws the top of a box, e.g. used when drawing the video source list
function drawBoxHeader(title)
{
  var args = drawBoxHeader.arguments;
  var fill = (args.length >= 2 ? args[1] : false);

  document.write('' +
'<td' + (fill ? ' width="100%"' : '') + '>' +
'  <table width="100%" height="46" cellpadding=0 cellspacing=0 border=0>' +
'    <tr>' +
'      <td colspan=2 width=5 background="/pics/gray_corner_lt_5x50px.gif"><img src="/pics/blank.gif" width=5 height=5 border=0 alt=""></td>' +
'      <td valign="top" align="center" width="100%" background="/pics/gray_t_5x50px.gif" height="5" class="funcText" nowrap>' + title + '</td>' +
'      <td colspan=2 width=5  background="/pics/gray_corner_rt_5x50px.gif"><img src="/pics/blank.gif" width=5 height=5 border=0 alt=""></td>' +
'    </tr>' +
'    <tr>' +
'      <td width=1 class="lineBg"><img src="/pics/blank.gif" width=1 height=5 alt=""></td>' +
'      <td width=4><img src="/pics/blank.gif" width=4 height=5 alt=""></td>' +
'      <td valign="middle" align="center" width="100%">' +
'        <table cellpadding=0 cellspacing=0 border=0>' +
'          <tr>');
}

// This functions draws the bottom of a box, e.g. used when drawing the video source list
function drawBoxFooter()
{
  document.write('' +
'          </tr>' +
'        </table>' +
'      </td>' +
'      <td width=4><img src="/pics/blank.gif" width=4 height=5 alt=""></td>' +
'      <td width=1 class="lineBg"><img src="/pics/blank.gif" width=1 height=5 alt=""></td>' +
'    </tr>' +
'    <tr>' +
'      <td colspan=2 width=5 height=5><img src="/pics/line_corner_lb_5x5px.gif" width=5 height=5 border=0 alt=""></td>' +
'      <td width="100%" height=5 background="/pics/line_b_100x5px.gif"><img src="/pics/blank.gif" width=1 height=5 alt=""></td>' +
'      <td colspan=2 width=5 height=5><img src="/pics/line_corner_rb_5x5px.gif" width=5 height=5 border=0 alt=""></td>' +
'    </tr>' +
'  </table>' +
'</td>');
}

// This function draws the buttons, e.g. for sequence mode, triggers etc. 
function drawBoxButton(pic, title)
{
  var args = drawBoxButton.arguments;
  var url =      (args.length >= 3 ? args[2] : null);
  var name =     (args.length >= 4 ? args[3] : null);
  var pressed =  (args.length >= 5 ? args[4] : null);
  var on_click = (args.length >= 6 ? args[5] : null);
  var width =    (args.length >= 7 ? args[6] : 27);
  var height =   (args.length >= 8 ? args[7] : 27);

  if (url) {
    if (name) {
      document.write('<td valign="middle" align="left">' +
                     '<a href="' + url + '" target="Temp"' +
                     (on_click ? ' onClick="' + on_click+ '"' : '') +
                     ' onMouseDown="movepic(\'' + name + '\', \'' + pressed + '\')"' +
                     ' onMouseUp="movepic(\'' + name + '\', \'' + pic + '\')"' +
                     '>' +
                     '<img name="' + name + '" src="' + pic + '" ' +
                     'width=' + width + ' height=' + height + ' border=0 ' +
                     (title ? ' title="' + title + '" alt="' + title + '"' : '') +
                     '>' +
                     '</a>' +
                     '</td>');
    } else {
      document.write('<td valign="middle" align="left">' +
                     '<a href="' + url + '"' +
                     (on_click ? ' onClick="' + on_click+ '"' : '') +
                     '>' +
                     '<img src="' + pic + '" ' +
                     'width=' + width + ' height=' + height + ' border=0 ' +
                     (title ? ' title="' + title + '" alt="' + title + '"' : '') +
                     '>' +
                     '</a>' +
                     '</td>');
    }
  } else {
    document.write('<td valign="middle" align="left">' +
                   '<img src="' + pic + '" ' +
                   'width=' + width + ' height=' + height + ' border=0' +
                   (title ? ' title="' + title + '" alt="' + title + '"' : '') +
                   '>' +
                   '</td>');
  }
}
// This function is used to give the impression that the buttons are being pressed
function movepic(img_name, img_src)
{
  document[img_name].src = img_src;
}

// This function extracts the video source number 
function extractVideoNbr(theParamPos)
{
  var i = 0;
  var start, stop;
  var len;
  var colonCount = 0;

  while (theParamPos.charAt(i++) != '~' && i < theParamPos.length);
  if (i >= theParamPos.length) {
    return -1;
  }
  while (colonCount < 6 && i < theParamPos.length) {
    if (theParamPos.charAt(i++) == ':') {
      colonCount++;
      if (colonCount == 4)
        start = i;
      if (colonCount == 5)
        len = i-2-start+1;
    }
  }
  if (i < theParamPos.length && len > 0)
    return parseInt(theParamPos.substr(start,len));
  else
   return -1;
}


function extractPresetNbr(name)
{
  var nbr = name.slice(20, -4)
  return parseInt(nbr)
}



function listVideoSources()
{
  var videoList = "videoList"

  var formInt = document.listFormInt
  var formExt = document.listFormExt
  var presetForm = document.listFormPreset;
  var form = document.WizardForm
	
	if ("".indexOf("mpeg4") == -1) {
		var imageType = '/mjpg/';
		var imageSource = 'video.mjpg';
	} else {
		var imageType = '/mpeg4/';
		var imageSource = 'video.mpg';
	}

		
  if ((1 > 1) || (formExt.elements.length > 0)  || presetForm.elements.length > 0 ) {
    document.write('<select name="' + videoList + '" onChange="selectView()" >');

		if((1 == 1) && (formExt.elements.length < 1)  || presetForm.elements.length > 0 ) {
			document.write('<option class="gray">&nbsp;----------------</option>');
		} else {
    	for (i=0; i<1; i++) {
      	var camera_nice_nbr = i + 1;
      	document.write('<option value="' + imageType + '' + imageSource + '"');
      	if (imageType + '' + imageSource + '' == '') {
        	document.write(' selected');
      	} else if ('/jpg/image.jpg' == '') {
        	document.write(' selected');
      	}
			
      	document.write('>' + formInt['root_ImageSource_I' + i + '_Name'].value + '</option>');
    	}
		}
    if (1 > 1) {
      document.write('<option value="' + imageType + '' + imageSource + '"');
      	if (imageType + '' + imageSource + '' == '') {
        	document.write(' selected');
      }
      document.write('>Quad Stream</option>');
    } 


    // ***** PTZ presets *****
    var curpreset = unescape('');
    for (i=0; i<1; i++) {
      if (presetForm.elements.length >= 2) {
        for (var j=0; j<presetForm.elements.length; j+=2) {
          var videoNbr = extractVideoNbr(presetForm.elements[j].value);
          var presetNbr = extractPresetNbr(presetForm.elements[j].name);
          var preset = escape(presetForm["root_PTZ_PresetPos_P" + presetNbr + "_Label"].value);
          if (videoNbr-1 == i) {
            document.write('<option value="' + '' + '&camera=' + videoNbr + '&gotopresetname=' + preset + '"');
     	    if (preset == curpreset) document.write(' selected');
            document.write('>' + formInt['root_ImageSource_I' + [i] + '_Name'].value + '');
            document.write('&nbsp;-&nbsp;'+ presetForm.elements[j+1].value + '</option>');
          }
        }
      }
    }

  }

  if (formExt.elements.length > 0) {
    for (i=0; i<formExt.elements.length/3; i++) {
      var k = i*3
      var aTempString = formExt.elements[k].name
      var videoNr = aTempString.substring(20, aTempString.lastIndexOf('_'))
      document.write('<option value="' + formExt['root_ExternalVideo_E' + videoNr + '_ImagePath'].value + '"');
      if (formExt['root_ExternalVideo_E' + videoNr + '_ImagePath'].value == '')
        document.write(' selected');
      document.write('>' + formExt['root_ExternalVideo_E' + videoNr + '_Name'].value + '</option>');
    }
    document.write('</select>');
//  } else {
//    document.write(formInt.root_ImageSource_I0_Name.value);
  }
}

function zoom(size)
{
  var url = document.URL;

  if (url.indexOf("?") == -1) {
    url += "?size=" + size
  } else if (url.indexOf("size=") == -1) {
    url += "&size=" + size
  } else {
    var searchStr = "size=1"
    var replaceStr = "size=" + size
    var re = new RegExp(searchStr , "g")
    url = url.replace(re, replaceStr)
  }

  document.location = url;
}

var aNewImagePath;

function reloadPage()
{
  document.location = aNewImagePath;
}

function selectView()
{
  var form = document.WizardForm;
  var source = form.videoList.options[form.videoList.selectedIndex].value;
  var params = source.split('&');
  var newCamera = null;
  var presetName = null;

  if (params[1] != null) {
    newCamera = (params[1].split('='))[1];
    presetName = unescape((params[2].split('='))[1]);
  }

  changeView(params[0], newCamera, presetName, null, null);
}

function changeView(imagePath, newCamera, presetName, newSize, other)
{
  var reload = false;

  // the whole Live View design is built on page reload >-(
  // must reload initial sequence mode view to toggle buttons etc
  reload = (other != null && other.search("seq=yes"));

  var delay = 0;

  reload |= (imagePath != '');

  if (presetName != null) {
    var prevCamera = '1';
    // set new image path
    if (prevCamera == 'quad') {
      imagePath = imagePath.replace(/quad/, newCamera);
      reload = true;
    } else if (prevCamera != newCamera) {
      imagePath = imagePath.replace(prevCamera, newCamera);
      reload = true;
    }
    gotoPreset(newCamera, presetName);
    if (reload) {
      // avoid request being suspended due to page reload
      delay = 100;
      /* append preset parameters so that preset postion is selected in drop
       * down list after reload */
      imagePath += '&gotopresetname=' + escape(presetName);
    }
  }

  if (reload) {
    var size = newSize;

    if (size == null) {

      size = 1;
	      
    }
    if (size != null) {
      size = '&size=' + size;
    }
    aNewImagePath = '/view/view.shtml?imagePath=' + imagePath + size;
    if (other != null) aNewImagePath += other;
    setTimeout("reloadPage()", delay);
  }

  else if (other != null){
    selectSource(newCamera, presetName);
  }

}


function gotoPreset(camera, presetName)
{
  var form = document.gotopresetForm;

  form.camera.value = camera;
  form.gotoserverpresetname.value = presetName;
  form.submit();
}

function selectSource(newCamera, presetName) {
  var options = document.WizardForm.videoList.options;
  var i = 0;
  var option;

  while ((option = options[i++]) != null) {
    if (presetName != null) {
      var presetStart = option.value.search('gotopresetname');
      if (presetStart != -1) {
        var preset = option.value.substring(presetStart).split('=');
        if (unescape(preset[1]) == presetName) {
          option.selected = true;
          return;
        }
      }
    } else {
      var videoNbr = option.value.match(/\d/);
      if (videoNbr == null && newCamera == 1 || videoNbr == newCamera) {
        option.selected = true;
        return;
      }
    }
  }
}


var seqNext = null;

function doSequence(size) {
  var formSeq = document.listFormSeq;
  var formExt = document.listFormExt;
  var presetForm = document.listFormPreset;
  var seqSources = new Array();
  var seqNumbers = new Array();
  var seqTimes = new Array();
  var cameraNbr;
  var presetName = null;
  var imagePath;
  var next;

  for (var i=0; i<formSeq['root_Sequence_S0_NbrOfSources'].value; i++) {
    seqSources[i] = formSeq['root_Sequence_S0_Source_S' + i + '_Type'].value;
    seqNumbers[i] =  formSeq['root_Sequence_S0_Source_S' + i + '_Number'].value;
    seqTimes[i] = formSeq['root_Sequence_S0_Source_S' + i + '_Time'].value;
  }

  if (seqNext != null) {
    next = seqNext;
  } else {

    next = 0;

  }

  if (seqSources[next] == 'Ext') {
    imagePath = formExt['root_ExternalVideo_E' + seqNumbers[next] + '_ImagePath'].value;
  } else if (seqSources[next] == 'Quad') {
    imagePath = '/mjpg/quad/video.mjpg';
  }

  else if (seqSources[next] == 'Preset') {
    cameraNbr = extractVideoNbr(presetForm['root_PTZ_PresetPos_P' + seqNumbers[next] + '_Pos'].value);
    presetName = presetForm['root_PTZ_PresetPos_P' + seqNumbers[next] + '_Label'].value;
    imagePath = '/mjpg/' + cameraNbr + '/video.mjpg';
  }

  else {
    cameraNbr = parseInt(seqNumbers[next]) + 1;
    defaultVideoFormat = "";
    if ((defaultVideoFormat == "mjpeg") || (defaultVideoFormat == "")) {
      imagePath = '/mjpg/' + cameraNbr + '/video.mjpg';
    } else {
      imagePath = '/mpeg4/' + cameraNbr + '/video.mpg';
    }
  }
  var nextNext;
  if (formSeq['root_Sequence_S0_RandomEnabled'].value == "yes")
    nextNext = Math.round(Math.random() * (formSeq['root_Sequence_S0_NbrOfSources'].value-1));
  else
    nextNext = next + 1;
  if (nextNext >= formSeq['root_Sequence_S0_NbrOfSources'].value)
    nextNext = 0;

  seqNext = nextNext;
  changeView(imagePath, cameraNbr, presetName, size, '&seq=yes&next=' + nextNext + '&sequencetime=' + seqTimes[next]);
  t1 = setTimeout("doSequence(size)", 1000 * seqTimes[next]);
}

function auto(Path) {
  parent.frames[1].location = Path
}
function ptzctrlpanel(obj, url) {
  url = url.replace(/auxiliary:/,'http://85.199.1.130/axis-cgi/com/ptz.cgi?camera=1&auxiliary=');
  auto(url);  
}