﻿/* release-65 20090318 05:53:07 */
function session_callback(sessionObj, statusMes) {
	if (sessionObj.getStatus() == "close") {
		document.getElementById("live_img").onload = null;
		document.getElementById("live_img").onerror = null;
		connectFlg = false;
		if (statusMes == "Livescope-408" || statusMes == "Livescope-503" || statusMes == "HTTP-403" || 
			statusMes == "HTTP-404" || statusMes == "HTTP-401" || statusMes == "Livescope-404") {
			show_msg_file(statusMes, "error");
		} else {
			show_msg_file("disconnect", "info");
		}
		do_disconnect("session_close");
		return;
	} else {
		tsessionObj = sessionObj;
		show_msg_file("connect", "notice");
		if (browserType == "Opera") {
			show_msg_file("notsupport", "warn");
		}
		if (browserType == "IE" && browserVersion == "") {
			show_msg_file("notsupport", "warn");
		}
		if (browserType == "Firefox" && browserVersion == "") {
			show_msg_file("notsupport", "warn");
		}
		if (browserType == "Safari" && (browserVersion == "" || browserVersion < 5)) {
			show_msg_file("notsupport", "warn");
		}
		connectFlg = true;
		document.getElementById("live_img").onload = loadLiveImg;
		document.getElementById("live_img").onerror = errorLiveImg;
		next_frame();
		document.getElementById("panorama_img").onerror = function() { document.getElementById("panorama_img").onerror = null; document.getElementById("panorama_img").src = "/viewer/common/img/panoramaground.gif"; }
		timerID2 = setInterval('setFrameRate()', 10000);
		if (browserType == "Safari") {
			initLabel();
			initStyle();
			setEventHandler();
			setEnable();
			if (connectFlg) {
				init();
			}
		}
	}
}
function loadLiveImg() {
	next_frame();
	tryCount = 0;
	if (!panoramaFlg) {
		document.getElementById("panorama_img").src = tsessionObj.getPanoImage();
		panoramaFlg = true;
	}
}
function errorLiveImg() {
	var retstatus = oSession.sendRequestSync("getLiveImage", "", "old");
	if (retstatus == "HTTP-401" || retstatus == "HTTP-403") {
		document.getElementById("live_img").onload = null;
		document.getElementById("live_img").onerror = null;
		document.getElementById("live_img").src = "/viewer/common/img/unconnected.jpg";
		document.getElementById("panorama_img").src = "/viewer/common/img/panoramaground.gif";
		do_disconnect("errorLive-" + retstatus);
		show_msg_file("disconnect", "info");
		return;
	}
	if (tsessionObj.getStatus() != "close" && tryCount < retryTimes) {
		tryCount++;
		next_frame();
	} else {
		document.getElementById("live_img").onload = null;
		document.getElementById("live_img").onerror = null;
		document.getElementById("live_img").src = "/viewer/common/img/unconnected.jpg";
		do_disconnect("errorLive-CountOver");
	}
}
function notice_callback(sessionObj, noticeNum, noticeItems) {
	if (!noticeFlg) {
		document.title = "VB-C60 VB Viewer - " + origin;
		if (noticeItems['v'] != null) {
			var v = noticeItems['v'].split(':');
			videoImageSize = v[1];
			initReceiveSizeSelect();
		}
		var p = eval(noticeItems["p.count"]);
		if (p > 0) {
			positionArray = new Array;
			for (i = 0; i < p; i++) {
				if (lang == noticeItems["p." + (i+1) + ".name.lang"] && noticeItems["p." + (i+1) + ".name.utf8"] != "") {
					positionArray[i]= noticeItems["p." + (i+1) + ".name.utf8"];
				} else {
					positionArray[i]= noticeItems["p." + (i+1) + ".name.asc"];
				}
				if (noticeItems["p." + (i+1) + ".pan"] != null) {
					panArray[i] = noticeItems["p." + (i+1) + ".pan"];
				}
				if (noticeItems["p." + (i+1) + ".tilt"] != null) {
					tiltArray[i] = noticeItems["p." + (i+1) + ".tilt"];
				}
				if (noticeItems["p." + (i+1) + ".zoom"] != null) {
					zoomArray[i] = noticeItems["p." + (i+1) + ".zoom"];
				}
				if (noticeItems["p." + (i+1) + ".ae.brightness"] != null) {
					var bl = eval(noticeItems["p." + (i+1) + ".ae.brightness"]);
					if (bl > 0) {
						backLightArray[i] = "ON";
					} else {
						backLightArray[i] = "OFF";
					}
				}
				if (noticeItems["p." + (i+1) + ".focus"] != null) {
					var fm = noticeItems["p." + (i+1) + ".focus"];
					if (fm.indexOf("manual") > -1) {
						var manualParam = fm.split(':');
						focusModeArray[i] = manualParam[0];
						focusValueArray[i] = manualParam[1];
					} else {
						focusModeArray[i] = fm;
					}
				}
			}
		}
		if (noticeItems["c.1.ae.brightness"] != null) {
			brightness = eval(noticeItems["c.1.ae.brightness"]);
			if (brightness > 0) {
				backlightFlg = true;
			} else {
				backlightFlg = false;
			}
		}
		expMode = noticeItems["c.1.exp"];
		noticeFlg = true;
		setEnable();
		return;
	}
	if (noticeItems["s.control"] != null && noticeItems["s.control"].indexOf("enabled") >= 0) {
		if (!controlFlg) {
			controlFlg = true;
			show_msg_file("control", "info");
		}
		waitFlg = false;
		clearInterval(timerID);
		var wait = noticeItems["s.control"].split(":")[1];
		if (wait != null) {
			waitSec = new Date().getTime() + eval(wait);
			timerID = setInterval('show_wait_msg("")', 1000);
			show_wait_msg("");
		} else {
			document.getElementById("time_6_img").style.visibility = "hidden";
			document.getElementById("time_7_img").style.visibility = "hidden";
			document.getElementById("time_1_img").style.visibility = "hidden";
			document.getElementById("time_2_img").style.visibility = "hidden";
			document.getElementById("time_3_img").style.visibility = "hidden";
			document.getElementById("time_4_img").style.visibility = "hidden";
			document.getElementById("time_5_img").style.visibility = "hidden";
			document.getElementById("timeicon_img").style.visibility = "hidden";
		}
	}
	if (noticeItems["s.control"] != null && noticeItems["s.control"].indexOf("disabled") >= 0) {
		clearInterval(timerID);
		controlFlg = false;
		waitFlg = false;
		if (noticeNum == 32) {
			show_msg_file("releasecontrol", "error");
		}
	}
	if (noticeItems["s.control"] != null && noticeItems["s.control"].indexOf("waiting") >= 0) {
		clearInterval(timerID);
		controlFlg = false;
		waitFlg = true;
		var wait = noticeItems["s.control"].split(":")[1];
		if (wait != null) {
			waitSec = new Date().getTime() + eval(wait);
			timerID = setInterval('show_wait_msg("st_")', 1000);
			show_wait_msg("st_");
		} else {
			document.getElementById("time_6_img").style.visibility = "hidden";
			document.getElementById("time_7_img").style.visibility = "hidden";
			document.getElementById("time_1_img").style.visibility = "hidden";
			document.getElementById("time_2_img").style.visibility = "hidden";
			document.getElementById("time_3_img").style.visibility = "hidden";
			document.getElementById("time_4_img").style.visibility = "hidden";
			document.getElementById("time_5_img").style.visibility = "hidden";
			document.getElementById("timeicon_img").style.visibility = "hidden";
		}
	}
	var repflg = false;
	if (noticeItems['c.1.pan'] != null) {
		panCurrentValue = eval(noticeItems['c.1.pan']);
		repflg = true;
	}
	if (noticeItems['c.1.tilt'] != null) {
		tiltCurrentValue = eval(noticeItems['c.1.tilt']);
		repflg = true;
	}
	if (noticeItems['c.1.zoom'] != null) {
		zoomCurrentValue = eval(noticeItems['c.1.zoom']);
		repflg = true;
	}
	if (noticeItems['c.1.ae.brightness'] != null) {
		brightness = eval(noticeItems["c.1.ae.brightness"]);
		if (brightness > 0) {
			backlightFlg = true;
		} else {
			backlightFlg = false;
		}
		repflg = true;
	}
	if (repflg) {
		repaintPtzbValue();
	}
	if (noticeItems['v'] != null) {
		var v = noticeItems['v'].split(':');
		videoImageSize = v[1];
		initReceiveSizeSelect();
	}
	if (noticeItems["c.1.exp"] != null) {
		expMode = noticeItems["c.1.exp"];
	}
	var limitflg = false;
	if (noticeItems["c.1.pan.min"] != null) {
		panLeftLimit = eval(noticeItems["c.1.pan.min"]);
		limitflg = true;
	}
	if (noticeItems["c.1.pan.max"] != null) {
		panRightLimit = eval(noticeItems["c.1.pan.max"]);
		limitflg = true;
	}
	if (noticeItems["c.1.tilt.min"] != null) {
		tiltDownLimit = eval(noticeItems["c.1.tilt.min"]);
		limitflg = true;
	}
	if (noticeItems["c.1.tilt.max"] != null) {
		tiltUpLimit = eval(noticeItems["c.1.tilt.max"]);
		limitflg = true;
	}
	if (noticeItems["c.1.zoom.limit.min"] != null) {
		zoomTeleEnd = eval(noticeItems["c.1.zoom.limit.min"]);
		limitflg = true;
	}
	if (noticeItems["c.1.zoom.min"] != null) {
		zoomTeleLimit = eval(noticeItems["c.1.zoom.min"]);
		viewTeleBoundary = eval(noticeItems["c.1.zoom.min"]);
		limitflg = true;
	}
	if (noticeItems["c.1.zoom.max"] != null) {
		zoomWideLimit = eval(noticeItems["c.1.zoom.max"]);
		viewWideBoundary = eval(noticeItems["c.1.zoom.max"]);
		limitflg = true;
	}
	if (noticeItems["c.1.view"] != null) {
		var view = noticeItems["c.1.view"];
		var viewarray = view.split(":");
		viewLeftBoundary = eval(viewarray[0]);
		viewRightBoundary = eval(viewarray[0]) + eval(viewarray[2]);
		viewUpBoundary = eval(viewarray[1]);
		viewDownBoundary = eval(viewarray[1]) - eval(viewarray[3]);
		limitflg = true;
	}
	if (limitflg) {
		minW = getWFromZoom(viewTeleBoundary);
		maxW = getWFromZoom(viewWideBoundary);
		var point = getXYFromPanTilt(panCurrentValue, tiltCurrentValue);
		cx = point[0];
		cy = point[1];
		resizeWidth = getWFromZoom(zoomCurrentValue);
		resizeHeight = resizeWidth * 3 / 4;
		resizeHeight = Math.round((resizeHeight + 1) / 2) * 2 - 1;
		drawViewpict();
		drawOldpict();
		drawMask();
	}
	setEnable();
}
function request_callback(reqCommand, prot, reqArray) {
	var items = new Array;
	var line;
	switch(reqCommand) {
		case "claim.cgi":
			if (reqArray[0] != null) {
				if (reqArray[0] == "HTTP-401") {
					show_msg_file("uncontrol", "error");
				} else {
					show_msg_file(reqArray[0], "error");
				}
				return;
			}
			for (i = 0; i < reqArray[1].length; i++) {
				line = reqArray[1][i].split(':=');
				if (line.length >= 2) {
					items[line[0]] = line[1];
					continue;
				}
				line = reqArray[1][i].split('==');
				if (line.length >= 2) {
					items[line[0]] = line[1];
					continue;
				}
				line = reqArray[1][i].split('=');
				if (line.length >= 2) {
					items[line[0]] = line[1];
					continue;
				}
			}
			if (items["s.control"] != null && items["s.control"].indexOf("disabled") >= 0) {
				clearInterval(timerID);
				controlFlg = false;
				waitFlg = false;
				show_msg_file("uncontrol", "error");
			}
			break;
		case "control.cgi":
			if (reqArray[0] != null) {
				show_msg_file(reqArray[0], "error");
				return;
			}
			if (reqArray[1] == null) {
				break;
			}
			for (i = 0; i < reqArray[1].length; i++) {
				line = reqArray[1][i].split(':=');
				if (line.length >= 2) {
					items[line[0]] = line[1];
					continue;
				}
				line = reqArray[1][i].split('==');
				if (line.length >= 2) {
					items[line[0]] = line[1];
					continue;
				}
				line = reqArray[1][i].split('=');
				if (line.length >= 2) {
					items[line[0]] = line[1];
					continue;
				}
			}
			var repflg = false;
			if (items['c.1.pan'] != null) {
				panCurrentValue = eval(items['c.1.pan']);
				repflg = true;
			}
			if (items['c.1.tilt'] != null) {
				tiltCurrentValue = eval(items['c.1.tilt']);
				repflg = true;
			}
			if (items['c.1.zoom'] != null) {
				zoomCurrentValue = eval(items['c.1.zoom']);
				repflg = true;
			}
			if (items['c.1.ae.brightness'] != null) {
				brightness = eval(items['c.1.ae.brightness']);
				if(brightness > 0) {
					backlightFlg = true;
				} else {
					backlightFlg = false;
				}
				repflg = true;
			}
			if (repflg) {
				repaintPtzbValue();
			}
			break;
		default:
	}
}
function init() {
	getCameraInfo();
	getCameraInfoEx();
	getPanoramaInfo();
	getCameraServerInfo();
	initViewSizeSelect();
	initReceiveSizeSelect();
	initPresetSelect();
	initPanoramaImg();
	document.getElementById("panorama_img").width = imageWidth;
	document.getElementById("panorama_img").height = imageHeight;
	document.getElementById("event_img").style.left = document.getElementById("panorama_img").offsetLeft + "px";
	document.getElementById("event_img").style.top = document.getElementById("panorama_img").offsetTop + "px";
	document.getElementById("event_img").width = document.getElementById("panorama_img").offsetWidth;
	document.getElementById("event_img").height = document.getElementById("panorama_img").offsetHeight;
	document.getElementById("panorama_img").style.visibility = "visible";
	document.getElementById("old_img").style.visibility = "visible";
	document.getElementById("symbol_img").style.visibility = "visible";
	minW = getWFromZoom(viewTeleBoundary);
	maxW = getWFromZoom(viewWideBoundary);
	var point = getXYFromPanTilt(panCurrentValue, tiltCurrentValue);
	cx = point[0];
	cy = point[1];
	resizeWidth = getWFromZoom(zoomCurrentValue);
	resizeHeight = resizeWidth * 3 / 4;
	resizeHeight = Math.round((resizeHeight + 1) / 2) * 2 - 1;
	drawViewpict();
	drawOldpict();
	drawMask();
}
function initLabel() {
	document.getElementById("preset_caption_div").innerHTML = getLabelFile("preset_caption_div");
	document.getElementById("login_caption_div").innerHTML = getLabelFile("login_caption_div");
	document.getElementById("user_caption_div").innerHTML = getLabelFile("user_caption_div");
	document.getElementById("password_caption_div").innerHTML = getLabelFile("password_caption_div");
	document.getElementById("ok_button_div").innerHTML = getLabelFile("ok_button_div");
	document.getElementById("cancel_button_div").innerHTML = getLabelFile("cancel_button_div");
}
function initStyle() {
}
function setStyle(id, prop) {
	var st = getStyleFile(id, prop);
	if (st != "") {
		switch (prop) {
			case "line-height":
				document.getElementById(id).style.lineHeight = st;
				break;
			case "font-size":
				document.getElementById(id).style.fontSize = st;
				break;
		}
	}
}
function setEventHandler() {
	document.onkeydown = keydownDocument;
	document.getElementById("receive_size_select").onchange = changeReceiveSize;
	document.getElementById("view_size_select").onchange = changeViewSize;
	document.getElementById("pause_img").onclick = clickPause;
	document.getElementById("reconnect_img").onclick = clickReconnect;
	document.getElementById("speaker_img").onclick = clickSpeaker;
	document.getElementById("live_img").onclick = clickLive;
	document.getElementById("live_img").oncontextmenu = contextmenuLive;
	document.getElementById("tele_img").onmousedown = mousedownTele;
	document.getElementById("tele_img").onmouseup = mouseupTeleWide;
	document.getElementById("tele_img").onmouseout = mouseupTeleWide;
	document.getElementById("zoom_img").onclick = clickZoom;
	document.getElementById("wide_img").onmousedown = mousedownWide;
	document.getElementById("wide_img").onmouseup = mouseupTeleWide;
	document.getElementById("wide_img").onmouseout = mouseupTeleWide;
	document.getElementById("backlight_img").onclick = clickBacklight;
	document.getElementById("event_img").onmousedown = mousedownEvent;
	document.getElementById("event_img").onmouseup = mouseupEvent;
	document.getElementById("event_img").onmousemove = mousemoveEvent;
	document.getElementById("event_img").onmouseout = mouseupEvent;
	document.getElementById("lite_honor_img").onclick = clickHonor;
	document.getElementById("preset_select").onchange = changePreset;
	document.getElementById("user_input").onkeydown = keydownAudioUser;
	document.getElementById("password_input").onkeydown = keydownAudioPassword;
	document.getElementById("receive_size_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("receive_size_select").onmouseover = mouseoverHelpMessage;
	document.getElementById("view_size_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("view_size_select").onmouseover = mouseoverHelpMessage;
	document.getElementById("pause_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("reconnect_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("speaker_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("live_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("tele_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("zoom_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("wide_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("backlight_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("panorama_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("mask_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("old_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("symbol_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("view_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("event_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("timebase_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("timeicon_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("time_6_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("time_7_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("time_1_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("time_2_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("time_3_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("time_4_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("time_5_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("lite_honor_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("preset_caption_div").onmouseover = mouseoverHelpMessage;
	document.getElementById("preset_select").onmouseover = mouseoverHelpMessage;
	document.getElementById("info_img").onmouseover = mouseoverHelpMessage;
	document.getElementById("info_text_div").onmouseover = mouseoverHelpMessage;
	document.getElementById("receive_size_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("receive_size_select").onmouseout = mouseoutHelpMessage;
	document.getElementById("view_size_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("view_size_select").onmouseout = mouseoutHelpMessage;
	document.getElementById("pause_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("reconnect_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("speaker_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("live_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("tele_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("zoom_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("wide_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("backlight_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("panorama_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("mask_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("old_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("symbol_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("view_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("timebase_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("timeicon_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("time_6_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("time_7_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("time_1_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("time_2_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("time_3_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("time_4_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("time_5_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("lite_honor_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("preset_caption_div").onmouseout = mouseoutHelpMessage;
	document.getElementById("preset_select").onmouseout = mouseoutHelpMessage;
	document.getElementById("info_img").onmouseout = mouseoutHelpMessage;
	document.getElementById("info_text_div").onmouseout = mouseoutHelpMessage;
}
function keydownAudioUser(e) {
	if (document.all) {
		e = window.event;
	}
	if (e.keyCode == 13) {
		document.getElementById("password_input").focus();
		return false; 
	} 
}
function keydownAudioPassword(e) {
	if (document.all) {
		e = window.event;
	}
	if (e.keyCode == 13) {
		clickAudioOk();
		return false; 
	} 
}
function keydownDocument(e) {
	if (document.all) {
		e = window.event;
	}
	if (e.keyCode == 27) {
		return false; 
	} 
}
function setEnable() {
	if(!connectFlg) {
		document.getElementById("receive_size_select").disabled = true;
		document.getElementById("view_size_select").disabled = true;
		document.getElementById("preset_select").disabled = true;
		setImageType("pause_img", "g");
		if (document.getElementById("reconnect_img").src.indexOf("reconnection_c.jpg") != -1) {
			setImageType("reconnect_img", "c");
		} else {
			setImageType("reconnect_img", "n");
		}
		setImageType("speaker_img", "g");
		setImageType("tele_img", "g");
		setImageType("wide_img", "g");
		setImageType("backlight_img", "g");
		setImageType("timebase_img", "2");
		document.getElementById("old_img").style.borderColor="#00ccff";
		document.getElementById("symbol_img").src = "/viewer/common/img/symbol_b.gif";
		setImageType("lite_honor_img", "g");
		document.getElementById("timeicon_img").style.visibility = "hidden";
		document.getElementById("time_6_img").style.visibility = "hidden";
		document.getElementById("time_7_img").style.visibility = "hidden";
		document.getElementById("time_1_img").style.visibility = "hidden";
		document.getElementById("time_2_img").style.visibility = "hidden";
		document.getElementById("time_3_img").style.visibility = "hidden";
		document.getElementById("time_4_img").style.visibility = "hidden";
		document.getElementById("time_5_img").style.visibility = "hidden";
	} else if (pauseFlg) {
		document.getElementById("receive_size_select").disabled = true;
		document.getElementById("view_size_select").disabled = false;
		document.getElementById("preset_select").disabled = true;
		setImageType("pause_img", "c");
		setImageType("reconnect_img", "g");
		setImageType("speaker_img", "g");
		setImageType("tele_img", "g");
		setImageType("wide_img", "g");
		setImageType("backlight_img", "g");
		setImageType("timebase_img", "4");
		document.getElementById("old_img").style.borderColor="#00ccff";
		document.getElementById("symbol_img").src = "/viewer/common/img/symbol_b.gif";
		setImageType("lite_honor_img", "g");
		document.getElementById("timeicon_img").style.visibility = "hidden";
		document.getElementById("time_6_img").style.visibility = "hidden";
		document.getElementById("time_7_img").style.visibility = "hidden";
		document.getElementById("time_1_img").style.visibility = "hidden";
		document.getElementById("time_2_img").style.visibility = "hidden";
		document.getElementById("time_3_img").style.visibility = "hidden";
		document.getElementById("time_4_img").style.visibility = "hidden";
		document.getElementById("time_5_img").style.visibility = "hidden";
	} else if (controlFlg) {
		document.getElementById("receive_size_select").disabled = false;
		document.getElementById("view_size_select").disabled = false;
		if (document.getElementById("preset_select").length > 1) {
			document.getElementById("preset_select").disabled = false;
		} else {
			document.getElementById("preset_select").disabled = true;
		}
		setImageType("pause_img", "n");
		if (document.getElementById("reconnect_img").src.indexOf("reconnection_c.jpg") != -1) {
			setImageType("reconnect_img", "c");
		} else {
			setImageType("reconnect_img", "n");
		}
		if (browserType == "IE" && origin != null && origin != "" && originHost != "" && originPort != "") {
			if (audioFlg) {
				setImageType("speaker_img", "c");
			} else {
				setImageType("speaker_img", "n");
			}
		} else {
			setImageType("speaker_img", "g");
		}
		if (viewerMode == "Admin" || ((zoomWideLimit - zoomTeleLimit) > 0)) {
			setImageType("tele_img", "n");
			setImageType("wide_img", "n");
		} else {
			setImageType("tele_img", "g");
			setImageType("wide_img", "g");
		}
		if (expMode == "manual") {
			setImageType("backlight_img", "g");
		} else if (backlightFlg) {
			setImageType("backlight_img", "c");
		} else {
			setImageType("backlight_img", "n");
		}
		setImageType("timebase_img", "2");
		document.getElementById("old_img").style.borderColor="#f8c058";
		document.getElementById("symbol_img").src = "/viewer/common/img/symbol_y.gif";
		setImageType("lite_honor_img", "c");
	} else {
		document.getElementById("receive_size_select").disabled = false;
		document.getElementById("view_size_select").disabled = false;
		setImageType("pause_img", "n");
		if (document.getElementById("reconnect_img").src.indexOf("reconnection_c.jpg") != -1) {
			setImageType("reconnect_img", "c");
		} else {
			setImageType("reconnect_img", "n");
		}
		document.getElementById("preset_select").disabled = true;
		if (browserType == "IE" && origin != null && origin != "" && originHost != "" && originPort != "") {
			if (audioFlg) {
				setImageType("speaker_img", "c");
			} else {
				setImageType("speaker_img", "n");
			}
		} else {
			setImageType("speaker_img", "g");
		}
		setImageType("tele_img", "g");
		setImageType("wide_img", "g");
		setImageType("backlight_img", "g");
		setImageType("timebase_img", "3");
		document.getElementById("old_img").style.borderColor="#00ccff";
		document.getElementById("symbol_img").src = "/viewer/common/img/symbol_b.gif";
		setImageType("lite_honor_img", "n");
		if (!waitFlg) {
			document.getElementById("timeicon_img").style.visibility = "hidden";
			document.getElementById("time_6_img").style.visibility = "hidden";
			document.getElementById("time_7_img").style.visibility = "hidden";
			document.getElementById("time_1_img").style.visibility = "hidden";
			document.getElementById("time_2_img").style.visibility = "hidden";
			document.getElementById("time_3_img").style.visibility = "hidden";
			document.getElementById("time_4_img").style.visibility = "hidden";
			document.getElementById("time_5_img").style.visibility = "hidden";
		}
	}
}
function getCameraInfo() {
	var reqArray = sendRequestForReplySync("GetCameraInfo", "", "old", false, false, false, false);
	if (reqArray != null) {
		var cameraInfo = new Array;
		for (var i = 0; i < reqArray.length; i++) {
			var reqParam = reqArray[i].split('=');
			if (reqParam.length >= 2) {
				cameraInfo[reqParam[0]] = reqParam[1];
			}
		}
		cameraId = cameraInfo["camera_id"];
		panCurrentValue = eval(cameraInfo["pan_current_value"]);
		tiltCurrentValue = eval(cameraInfo["tilt_current_value"]);
		zoomCurrentValue = eval(cameraInfo["zoom_current_value"]);
		panLeftEnd = eval(cameraInfo["pan_left_end"]);
		panRightEnd = eval(cameraInfo["pan_right_end"]);
		tiltUpEnd = eval(cameraInfo["tilt_up_end"]);
		tiltDownEnd = eval(cameraInfo["tilt_down_end"]);
		zoomTeleEnd = eval(cameraInfo["zoom_tele_end"]);
		zoomWideEnd = eval(cameraInfo["zoom_wide_end"]);
		panLeftLimit = eval(cameraInfo["pan_left_limit"]);
		panRightLimit = eval(cameraInfo["pan_right_limit"]);
		tiltUpLimit = eval(cameraInfo["tilt_up_limit"]);
		tiltDownLimit = eval(cameraInfo["tilt_down_limit"]);
		zoomTeleLimit = eval(cameraInfo["zoom_tele_limit"]);
		zoomWideLimit = eval(cameraInfo["zoom_wide_limit"]);
		viewLeftBoundary = eval(cameraInfo["view_left_boundary"]);
		viewRightBoundary = eval(cameraInfo["view_right_boundary"]);
		viewUpBoundary = eval(cameraInfo["view_up_boundary"]);
		viewDownBoundary = eval(cameraInfo["view_down_boundary"]);
		viewTeleBoundary = eval(cameraInfo["view_tele_boundary"]);
		viewWideBoundary = eval(cameraInfo["view_wide_boundary"]);
		focusMode = cameraInfo["focus_mode"];
		if (focusMode == "far_fix") {
			focusMode = "infinity";
		}
	}
}
function getCameraInfoEx() {
	var reqArray = sendRequestForReplySync("GetCameraInfoEx", "", "old", false, false, false, false);
	if (reqArray != null) {
		var cameraInfoEx = new Array;
		for (var i = 0; i < reqArray.length; i++) {
			var reqParam = reqArray[i].split('=');
			if (reqParam.length >= 2) {
				cameraInfoEx[reqParam[0]] = reqParam[1];
			}
		}
		digitalZoomBoundary = eval(cameraInfoEx["digital_zoom_boundary"]);
		irisMin = eval(cameraInfoEx["iris_min"]);
		irisMax = eval(cameraInfoEx["iris_max"]);
		gainMin = eval(cameraInfoEx["gain_min"]);
		gainMax = eval(cameraInfoEx["gain_max"]);
	}
}
function getPanoramaInfo() {
	panoLeft = Math.round(panLeftEnd - zoomWideEnd / 2);
	panoTop = Math.round(tiltUpEnd + zoomWideEnd * 3 / 8)
	panoWidth = panRightEnd - panLeftEnd + zoomWideEnd;
	panoHeight = Math.round(tiltUpEnd - tiltDownEnd + zoomWideEnd * 3 / 4);
	panoramaImageWidth = panoWidth;
	panoramaImageHeight = panoHeight;
}
function getCameraServerInfo() {
	var reqArray = sendRequestForReplySync("GetCameraServerInfo", "", "old", false, false, false, false);
	if (reqArray != null) {
		var cameraServerInfo = new Array;
		var j = 0;
		for (var i = 0; i < reqArray.length; i++) {
			var reqParam = reqArray[i].split('=');
			if (reqParam.length >= 2 && reqParam[0] == "image_size") {
				imageSize[j] = reqParam[1];
				j++;
			}
		}
	}
}
function repaintPtzbValue() {
	if (pauseFlg || fullscreenFlg) {
		return;
	}
	var point = getXYFromPanTilt(panCurrentValue, tiltCurrentValue);
	cx = point[0];
	cy = point[1];
	resizeWidth = getWFromZoom(zoomCurrentValue);
	resizeHeight = resizeWidth * 3 / 4;
	resizeHeight = Math.round((resizeHeight + 1) / 2) * 2 - 1;
	drawViewpict();
	drawOldpict();
	showPTZBInfo();
}
function show_msg_file(param, stat) {
	show_msg(getMessageFile(param), stat);
}
function getMessageFile(param) {
	var str = messageArray[param + "." + lang];
	if (str == null) {
		str = "";
	}
	return str
}
function getLabelFile(param) {
	var str = labelArray[param + "." + lang];
	if (str == null) {
		str = "";
	}
	return str
}
function getStyleFile(param, prop) {
	var str = styleArray[param + "." + prop + "." + lang];
	if (str == null) {
		str = "";
	}
	return str
}
function getParameterFile(param) {
	var str = parameterArray[param + "." + lang];
	if (str == null) {
		str = "";
	}
	return str
}
function getHelpMessageFile(param) {
	var str = helpMessageArray[param + "." + lang];
	if (str == null) {
		str = "";
	}
	return str
}
function show_msg(message, stat) {
	switch(stat) {
		case "notice":
			window.status = message;
			if (infoLockFlg) {
				return;
			}
			document.getElementById("info_text_div").innerHTML=message;
			document.getElementById("info_img").src = "/viewer/common/img/mark_info.jpg";
			break;
		case "info":
			if (infoLockFlg) {
				return;
			}
			document.getElementById("info_text_div").innerHTML=message;
			document.getElementById("info_img").src = "/viewer/common/img/mark_info.jpg";
			break;
		case "warn":
			if (infoLockFlg) {
				return;
			}
			document.getElementById("info_text_div").innerHTML=message;
			document.getElementById("info_img").src = "/viewer/common/img/mark_warning.jpg";
			infoLockFlg = true;
			infoLockTimer = setTimeout("clearInfoLock()", 10000);
			break;
		case "error":
			if (infoLockFlg) {
				clearTimeout(infoLockTimer);
			}
			document.getElementById("info_text_div").innerHTML=message;
			document.getElementById("info_img").src = "/viewer/common/img/mark_error.jpg";
			infoLockFlg = true;
			infoLockTimer = setTimeout("clearInfoLock()", 10000);
			break;
		case "fatal":
			if (infoLockFlg) {
				clearTimeout(infoLockTimer);
			}
			document.getElementById("info_text_div").innerHTML=message;
			document.getElementById("info_img").src = "/viewer/common/img/mark_materialerror.jpg";
			infoLockFlg = true;
			infoLockTimer = setTimeout("clearInfoLock()", 10000);
			break;
		default:
	}
}
function clearInfoLock() {
	infoLockFlg = false;
	show_msg("", "info");
}
function show_wait_msg(prefix) {
	var now = new Date().getTime();
	show_waittime(Math.round((waitSec - now) / 1000), prefix);
}
function show_waittime(s, prefix) {
	if (pauseFlg || fullscreenFlg) {
		return;
	}
	var min = Math.floor(s / 60);
	var sec = s % 60;
	var min1000 = Math.floor(min / 1000);
	var min100 = Math.floor(min % 1000 / 100);
	var min10 = Math.floor(min % 100 / 10);
	var min1 = min % 10;
	var sec10 = Math.floor(sec / 10);
	var sec1 = sec % 10;
	if (min1000 > 0) {
		document.getElementById("time_7_img").src = "/viewer/common/img/" + prefix + "num9.gif";
		document.getElementById("time_7_img").style.visibility = "visible";
	} else if (min100 > 0) {
		document.getElementById("time_7_img").src = "/viewer/common/img/" + prefix + "num" + min100 + ".gif";
		document.getElementById("time_7_img").style.visibility = "visible";
	} else {
		document.getElementById("time_7_img").style.visibility = "hidden";
	}
	if (min1000 > 0) {
		document.getElementById("time_1_img").src = "/viewer/common/img/" + prefix + "num9.gif";
		document.getElementById("time_1_img").style.visibility = "visible";
	} else if(min10 > 0 || min100 > 0) {
		document.getElementById("time_1_img").src = "/viewer/common/img/" + prefix + "num" + min10 + ".gif";
		document.getElementById("time_1_img").style.visibility = "visible";
	} else {
		document.getElementById("time_1_img").style.visibility = "hidden";
	}
	if (min1000 > 0) {
		document.getElementById("time_2_img").src = "/viewer/common/img/" + prefix + "num9.gif";
		document.getElementById("time_2_img").style.visibility = "visible";
		document.getElementById("time_3_img").src = "/viewer/common/img/" + prefix + "colon.gif";
		document.getElementById("time_3_img").style.visibility = "visible";
	} else if (min > 0) {
		document.getElementById("time_2_img").src = "/viewer/common/img/" + prefix + "num" + min1 + ".gif";
		document.getElementById("time_2_img").style.visibility = "visible";
		document.getElementById("time_3_img").src = "/viewer/common/img/" + prefix + "colon.gif";
		document.getElementById("time_3_img").style.visibility = "visible";
	} else {
		document.getElementById("time_2_img").style.visibility = "hidden";
		document.getElementById("time_3_img").style.visibility = "hidden";
	}
	if (min1000 > 0) {
		document.getElementById("time_4_img").src = "/viewer/common/img/" + prefix + "num5.gif";
		document.getElementById("time_4_img").style.visibility = "visible";
	} else if (min > 0 || sec10 > 0) {
		document.getElementById("time_4_img").src = "/viewer/common/img/" + prefix + "num" + sec10 + ".gif";
		document.getElementById("time_4_img").style.visibility = "visible";
	} else {
		document.getElementById("time_4_img").style.visibility = "hidden";
	}
	if (min1000 > 0) {
		document.getElementById("time_5_img").src = "/viewer/common/img/" + prefix + "num9.gif";
		document.getElementById("time_5_img").style.visibility = "visible";
		if (prefix == "st_") {
			document.getElementById("timeicon_img").src = "/viewer/common/img/wait.jpg";
		document.getElementById("timeicon_img").style.visibility = "visible";
		} else {
			document.getElementById("timeicon_img").src = "/viewer/common/img/sclock.gif";
		}
		document.getElementById("timeicon_img").style.visibility = "visible";
	} else if (min > 0 || sec > 0) {
		document.getElementById("time_5_img").src = "/viewer/common/img/" + prefix + "num" + sec1 + ".gif";
		document.getElementById("time_5_img").style.visibility = "visible";
		if (prefix == "st_") {
			document.getElementById("timeicon_img").src = "/viewer/common/img/wait.jpg";
		document.getElementById("timeicon_img").style.visibility = "visible";
		} else {
			document.getElementById("timeicon_img").src = "/viewer/common/img/sclock.gif";
		}
		document.getElementById("timeicon_img").style.visibility = "visible";
	} else {
		document.getElementById("time_5_img").style.visibility = "hidden";
		document.getElementById("timeicon_img").style.visibility = "hidden";
		clearInterval(timerID);
	}
}
function setFrameRate() {
	frameRate = frameCount / 10;
	frameCount = 0;
	showPTZBInfo();
}
function showPTZBInfo() {
	var msg = "";
	if (browserType != "Firefox") {
		msg = msg + frameRate + getLabelFile("notice_fps");
	}
	msg = msg + getLabelFile("notice_pan") + " : " + (panCurrentValue / 100)+ "  ";
	msg = msg + getLabelFile("notice_tilt") + " : " + (tiltCurrentValue / 100) + "  ";
	msg = msg + getLabelFile("notice_zoom") + " : " + (zoomCurrentValue / 100);
	show_msg(msg, "notice");
}
function checkRequest(isConnect, isControl, isPause, isFullscreen) {
	if (isFullscreen && fullscreenFlg) {
		return false;
	}
	if (isPause && pauseFlg) {
		return false;
	}
	if (isConnect && !connectFlg) {
		show_msg_file("notconnect", "error");
		return false;
	}
	if (isControl && !controlFlg) {
		show_msg_file("notcontrol", "error");
		return false;
	}
	return true;
}
function sendRequest(command, parameter, protocol, isConnect, isControl, isPause, isFullscreen) {
	if (checkRequest(isConnect, isControl, isPause, isFullscreen)) {
		var status = oSession.sendRequest(command, parameter, protocol);
		if (status == null) {
			return true;
		} else {
			show_msg_file(status, "error");
			return false;
		}
	}
	return false;
}
function sendRequestForReply(command, parameter, protocol, isConnect, isControl, isPause, isFullscreen) {
	if (checkRequest(isConnect, isControl, isPause, isFullscreen)) {
		var status = oSession.sendRequestForReply(command, parameter, protocol);
		if (status != null) {
			show_msg_file(status, "error");
			return false;
		} else {
			return true;
		}
	}
	return false;
}
function sendRequestSync(command, parameter, protocol, isConnect, isControl, isPause, isFullscreen) {
	if (checkRequest(isConnect, isControl, isPause, isFullscreen)) {
		var status = oSession.sendRequestSync(command, parameter, protocol);
		if (status == null) {
			return true;
		} else {
			show_msg_file(status, "error");
			return false;
		}
	}
	return false;
}
function sendRequestForReplySync(command, parameter, protocol, isConnect, isControl, isPause, isFullscreen) {
	if (checkRequest(isConnect, isControl, isPause, isFullscreen)) {
		var status = oSession.sendRequestForReplySync(command, parameter, protocol);
		if (status[0] != null) {
			if (command != "GetPanoramaInfo" || status[0] != "Livescope-403") {
				show_msg_file(status[0], "error");
			}
		}
		return status[1];
	}
	return null;
}
function do_connect() {
	var agent = navigator.userAgent;
	if (window.opera) {
		browserType = "Opera";
	} else if (document.all) {
		browserType = "IE";
		var ind = agent.indexOf("MSIE");
		if (ind != -1) {
			browserVersion = agent.substring(ind + 5, ind + 6);
		}
	} else if (typeof(Components) == "undefined") {
		browserType = "Safari";
		var ind = agent.indexOf("Safari");
		if (ind != -1) {
			browserVersion = agent.substring(ind + 7, ind + 8);
		}
	} else {
		browserType = "Firefox";
	}
	timerID = 0;
	timerID2 = 0;
	frameCount = 0;
	frameRate = 0;
	noticeFlg = false;
	connectFlg = false;
	controlFlg = false;
	waitFlg = false;
	pauseFlg = false;
	fullscreenFlg = false;
	settingFlg = false;
	audioFlg = false;
	audioLoad = false;
	panoramaFlg = false;
	oSession.openSession("");
	if (browserType != "Safari") {
		oSession._recv_session();
		initLabel();
		initStyle();
		setEventHandler();
		setEnable();
		if (connectFlg) {
			init();
		}
	}
}
function do_disconnect(debugParam) {
	document.getElementById("live_img").onload = null;
	document.getElementById("live_img").onerror = null;
	if (!pauseFlg) {
		document.getElementById("live_img").src = "/viewer/common/img/unconnected.jpg";
	}
	if (browserType == "IE" && audioFlg) {
		audioStop();
	}
	if (browserType == "IE") {
		changeAudioVisibility("hidden");
	}
	connectFlg = false;
	controlFlg = false;
	waitFlg = false;
	pauseFlg = false;
	fullscreenFlg = false;
	settingFlg = false;
	audioFlg = false;
	audioLoad = false;
	panoramaFlg = false;
	directionPT = null;
	directionZ = null;
	clearInterval(timerID);
	clearInterval(timerID2);
	oSession.closeSession();
	setEnable();
}
function next_frame() {
	if(intervalTime == null || isNaN(intervalTime) || intervalTime <= 0) {
		next_frame2();
	} else {
		setTimeout("next_frame2()", Math.min(intervalTime, intervalTimeMax));
	}
}
function next_frame2() {
	frameCount = frameCount + 1;
	document.getElementById("live_img").src = tsessionObj.getImage();
}
function setImageType(id, footer) {
	var oldsrc = document.getElementById(id).src;
	var newsrc = oldsrc.substr(0, oldsrc.length - 5) + footer + oldsrc.substr(oldsrc.length - 4, oldsrc.length);
	if (oldsrc.indexOf(newsrc) == -1) {
		document.getElementById(id).src = newsrc;
	}
}
function mouseoverHelpMessage(e) {
	var msg = getHelpMessageFile(this.id);
	show_msg(msg, "info");
}
function mouseoutHelpMessage(e) {
	if (connectFlg) {
		showPTZBInfo();
	}
}
function initReceiveSizeSelect() {
	for (i=0; i<imageSize.length; i++) {
		document.getElementById("receive_size_select").options[i] = new Option(imageSize[i], imageSize[i]);
		if (imageSize[i] == videoImageSize) {
			if (browserType == "Opera") {
				document.getElementById("receive_size_select").options[i].defaultSelected = true;
			} else {
				document.getElementById("receive_size_select").options[i].selected = true;
			}
		}
	}
}
function changeReceiveSize() {
	var imagesize = this.value;
	sendRequest("ChangeImageSize", "image_size=" + imagesize, "old", true, false, true, true);
}
function initViewSizeSelect() {
	var sizeSelected = false;
	for (i=0; i<viewImageSize.length; i++) {
		document.getElementById("view_size_select").options[i] = new Option(viewImageSize[i], viewImageSize[i]);
		if (viewImageSize[i] == defaultViewImageSize) {
			sizeSelected = true;
			if (browserType == "Opera") {
				document.getElementById("view_size_select").options[i].defaultSelected = true;
			} else {
				document.getElementById("view_size_select").options[i].selected = true;
			}
		}
	}
	if (!sizeSelected) {
		document.getElementById("view_size_select").options[1].selected = true;
	}
	changeViewSize();
}
function changeViewSize() {
	if (checkRequest(false, false, false, true)) {
		var imagesize = document.getElementById("view_size_select").value.split("x");
		var imagex = eval(imagesize[0]);
		var imagey = eval(imagesize[1]);
		document.getElementById("live_img").style.width = imagex + "px";
		document.getElementById("live_img").style.height = imagey + "px";
		if (imagex <= 320 && imagey <= 240) {
			document.getElementById("live_img").style.left = (320 - imagex) / 2 + 22 + "px";
			document.getElementById("main_div").style.width = "1024px";
			document.getElementById("top_div").style.left = "6px";
			document.getElementById("view_div").style.width = "460px";
			document.getElementById("right_div").style.left = "408px";
			document.getElementById("bottom_div").style.left = "22px";
			document.getElementById("live_img").style.top = (240 - imagey) / 2 + 42 + "px";
			document.getElementById("main_div").style.height = "768px";
			document.getElementById("view_div").style.height = "477px";
			document.getElementById("right_div").style.top = "42px";
			document.getElementById("bottom_div").style.top = "308px";
		} else {
			document.getElementById("live_img").style.left = (640 - imagex) / 2 + 22 + "px";
			document.getElementById("main_div").style.width = "1344px";
			document.getElementById("top_div").style.left = "326px";
			document.getElementById("view_div").style.width = "780px";
			document.getElementById("right_div").style.left = "728px";
			document.getElementById("bottom_div").style.left = "342px";
			document.getElementById("live_img").style.top = (480 - imagey) / 2 + 42 + "px";
			document.getElementById("main_div").style.height = "1008px";
			document.getElementById("view_div").style.height = "717px";
			document.getElementById("right_div").style.top = "282px";
			document.getElementById("bottom_div").style.top = "548px";
		}
	}
}
function clickPause() {
	if (!connectFlg || fullscreenFlg) {
		return;
	}
	if(pauseFlg) {
		document.getElementById("live_img").onload = function() { next_frame(tsessionObj); }
		next_frame(tsessionObj);
		pauseFlg = false;
		repaintPtzbValue();
		if (audioFlg) {
			audioPlayStart();
		}
	} else {
		pauseFlg = true;
		document.getElementById("live_img").onload = "";
		if (audioFlg) {
			audioPlayStop();
		}
	}
	setEnable();
}
function clickReconnect() {
	if (checkRequest(false, false, true, true)) {
		setImageType(this.id, "c");
		do_disconnect("clickReconnect");
		do_connect();
		setTimeout('setImageType("reconnect_img", "n")', 500);
	}
}
function clickSpeaker() {
	if (checkRequest(true, false, true, true) && browserType == "IE" && origin != null && origin != "" && originHost != "" && originPort != "") {
		if (audioFlg) {
			audioStop();
		} else {
			audioTryCount = 0;
			document.getElementById("audio_div").innerHTML = '<object id="WvlsAudio" width="0" height="0" classid="CLSID:FDAC3966-5DDA-4de8-B936-14714E467426" codebase="/viewer/common/audio.cab"></object>';
			if (!audioLoad) {
				audioLoad = true;
				checkAudioPlugin();
			}
		}
	}
}
function checkAudioPlugin() {
	if (audioTryCount < audioRetryTimes) {
		var acx = null;
		try {
			acx = new ActiveXObject("CAM_AUDIO.cam_audioCtrl.1");
			delete acx;
			audioStart();
			audioLoad = false;
		} catch(e) {
			audioTryCount = audioTryCount + 1;
			setTimeout("checkAudioPlugin()", audioIntervalTime * 1000);
		}
	} else {
		show_msg_file("pluginerror", "error");
		audioLoad = false;
	}
}
function clickLive(e) {
	var x, y;
	var point = getMouseXY(e);
	x = (point[0] - (this.width / 2)) * 200 / this.width;
	y = -(point[1] - (this.height / 2)) * 200 / this.height;
	sendRequest("OperateCameraOnScreen", "pan=" + Math.round(x) + "&tilt=" + Math.round(y), "old", true, true, true, true);
}
function contextmenuLive() {
	return pauseFlg;
}
function mousedownTele() {
	mouseDownFlg = true;
	if (directionZ == null) {
		directionZ = "slow";
		sendRequest("SetPTZSpeed", "mode=direction&z=0", "old", true, true, true, true);
	}
	if (sendRequest("OperateCameraEx", "zoom=tele", "old", true, true, true, true)) {
		document.getElementById("zoom_img").src = "/viewer/live/img/wc_zoomup_anim.gif";
	}
}
function mousedownWide() {
	mouseDownFlg = true;
	if (directionZ == null) {
		directionZ = "slow";
		sendRequest("SetPTZSpeed", "mode=direction&z=0", "old", true, true, true, true);
	}
	if (sendRequest("OperateCameraEx", "zoom=wide", "old", true, true, true, true)) {
		document.getElementById("zoom_img").src = "/viewer/live/img/wc_zoomdown_anim.gif";
	}
}
function mouseupTeleWide() {
	if (!mouseDownFlg) {
		return;
	}
	if (sendRequest("OperateCameraEx", "zoom=stop", "old", true, true, true, true)) {
		document.getElementById("zoom_img").src = "/viewer/live/img/wc_zoomknurling.jpg";
	}
	mouseDownFlg = false;
}
function clickZoom(e) {
	var z;
	var point = getMouseXY(e);
	if (point[1] < borderDrag) {
		z = zoomTeleLimit;
	} else if (point[1] > this.height - borderDrag) {
		z = zoomWideLimit;
	} else {
		z = (zoomWideLimit - zoomTeleLimit) * (point[1] - borderDrag) / (this.height - borderDrag * 2) + zoomTeleLimit;
	}
	sendRequest("OperateCamera", "zoom=" + Math.round(z), "old", true, true, true, true);
}
function clickBacklight() {
	if (expMode == "manual") {
		return;
	}
	if (backlightFlg) {
		if (sendRequest("OperateCamera", "back_light=OFF", "old", true, true, true, true)) {
			setImageType(this.id, "n");
		}
	} else {
		if (sendRequest("OperateCamera", "back_light=ON", "old", true, true, true, true)) {
			setImageType(this.id, "c");
		}
	}
}
function initPanoramaImg() {
	imageWidth = Math.round(panoramaImageWidth * 100 / panoramaImageHeight);
	imageHeight = 100;
	document.getElementById("panorama_img").width = imageWidth;
	document.getElementById("panorama_img").height = imageHeight;
	document.getElementById("panorama_img").style.left = Math.round((320 - imageWidth) / 2) + "px";
}
function mousedownEvent(e) {
	if (!checkRequest(true, true, true, true)) {
		return false;
	}
	mouseDownFlg = true;
	var point = getMouseXY(e);
	sx = point[0];
	sy = point[1];
	downPosition = getDownPosition(point[0], point[1]);
	return false;
}
function mousemoveEvent(e) {
	var point = getMouseXY(e);
	ex = point[0];
	ey = point[1];
	if (!mouseDownFlg) {
		if (controlFlg) {
			var mousepoint = getDownPosition(point[0], point[1]);
			if (mousepoint == 1) {
				document.getElementById("event_img").style.cursor = "move";
			} else if(mousepoint == 2) {
				if (ex > cx && ey > cy || ex < cx && ey < cy) {
					document.getElementById("event_img").style.cursor = "nw-resize";
				} else {
					document.getElementById("event_img").style.cursor = "ne-resize";
				}
			} else {
				document.getElementById("event_img").style.cursor = "crosshair";
			}
		} else {
			document.getElementById("event_img").style.cursor = "default";
		}
		return false;
	}
	if (!checkRequest(true, true, true, true)) {
		return false;
	}
	if (!mouseMoveFlg && Math.abs(ex - sx) < startDrag && Math.abs(ey - sy) < startDrag) {
		return false;
	}
	mouseMoveFlg = true;
	document.getElementById("view_img").style.visibility = "visible";
	switch (downPosition) {
		case 1:
			moveDiveDrag()
		break;
		case 2:
			viewDivCenter();
		break;
		case 3:
			viewDiv();
		break;
		default :
		break;
	}
	return false;
}
function mouseupEvent(e) {
	if (!mouseDownFlg) {
		return false;
	}
	if (!checkRequest(true, true, true, true)) {
		return false;
	}
	if (downPosition == 3 && !mouseMoveFlg) {
		moveDivCenter();
	}
	drawOldpict();
	if (downPosition == 1) {
		sendOldPict(true, false);
	} else if (downPosition == 2) {
		sendOldPict(false, true);
	} else {
		if (mouseMoveFlg) {
			sendOldPict(true, true);
		} else {
			sendOldPict(true, false);
		}
	}
	mouseDownFlg = false;
	mouseMoveFlg = false;
	return false;
}
function getMouseXY(e) {
	var x, y;
	if (document.all) {
		e = window.event;
		x = e.offsetX;
		y = e.offsetY;
	} else {
		x = e.layerX;
		y = e.layerY;
	}
	return [x, y];
}
function getDownPosition(x, y) {
	var left = document.getElementById("old_img").offsetLeft - document.getElementById("panorama_img").offsetLeft + borderWidth;
	var top = document.getElementById("old_img").offsetTop - document.getElementById("panorama_img").offsetTop + borderWidth;
	var right = left + document.getElementById("old_img").width;
	var bottom = top + document.getElementById("old_img").height;
	if (x >= left && x <= right && y >= top && y <= bottom) {
		return 1;
	}
	if (x < left - borderDrag - borderWidth
	 || x > right + borderDrag + borderWidth
	 || y < top - borderDrag - borderWidth
	 || y > bottom + borderDrag + borderWidth) {
		return 3;
	}
	return 2;
}
function moveDiveDrag() {
	cx = cx + (ex - sx);
	sx = ex;
	cy = cy + (ey - sy);
	sy = ey;
	drawViewpict();
}
function viewDivCenter() {
	resizeWidth = Math.abs(cx - ex) * 2 + 1;
	resizeHeight = Math.abs(cy - ey) * 2 + 1;
	resizeControl();
	drawViewpict();
}
function viewDiv() {
	resizeWidth = Math.abs(ex - sx + 1);
	resizeHeight = Math.abs(ey - sy + 1);
	resizeControl();
	if (sx > ex) {
		cx = sx - (resizeWidth - 1) / 2;
	} else {
		cx = sx + (resizeWidth - 1) / 2;
	}
	if (sy > ey) {
		cy = sy - (resizeHeight - 1) / 2;
	} else {
		cy = sy + (resizeHeight - 1) / 2;
	}
	drawViewpict();
}
function moveDivCenter() {
	cx = sx;
	cy = sy;
	drawViewpict();
}
function resizeControl() {
	if (resizeWidth * 3 < resizeHeight * 4) {
		resizeWidth = resizeHeight * 4 / 3;
	}
	if (resizeWidth < minW) {
		resizeWidth = minW;
	} else if(resizeWidth > maxW) {
		resizeWidth = maxW;
	}
	resizeWidth = Math.round((resizeWidth + 1) / 2) * 2 - 1;
	resizeHeight = resizeWidth * 3 / 4;
	resizeHeight = Math.round((resizeHeight + 1) / 2) * 2 - 1;
}
function drawViewpict() {
	if (isNaN(cx) || isNaN(cy) || isNaN(resizeWidth) || isNaN(resizeHeight)) {
		return;
	}
	document.getElementById("view_img").style.left = document.getElementById("panorama_img").offsetLeft + cx - (resizeWidth - 1) / 2 + "px";
	document.getElementById("view_img").style.top = document.getElementById("panorama_img").offsetTop + cy - (resizeHeight - 1) / 2 + "px";
	document.getElementById("view_img").width  = resizeWidth - borderWidth * 2;
	document.getElementById("view_img").height = resizeHeight - borderWidth * 2;
}
function drawOldpict() {
	if (isNaN(cx) || isNaN(cy) || isNaN(resizeWidth) || isNaN(resizeHeight)) {
		return;
	}
	document.getElementById("old_img").style.left = document.getElementById("view_img").offsetLeft + "px";
	document.getElementById("old_img").style.top = document.getElementById("view_img").offsetTop + "px";
	document.getElementById("old_img").width = document.getElementById("view_img").width;
	document.getElementById("old_img").height = document.getElementById("view_img").height;
	document.getElementById("symbol_img").style.left = document.getElementById("panorama_img").offsetLeft + cx - 2 + "px";
	document.getElementById("symbol_img").style.top = document.getElementById("panorama_img").offsetTop + cy - 2 + "px";
	document.getElementById("view_img").style.visibility = "hidden";
}
function sendOldPict(ptmove, zmove) {
	var point = getPanTiltFromXY(cx, cy);
	var param = "";
	if (ptmove && zmove) {
		sendRequestForReply("control.cgi", "c.1.pan=" + Math.round(point[0]) + "&c.1.tilt=" + Math.round(point[1]) + "&c.1.zoom=" + Math.round(getZoomFromW(resizeWidth)), "new", true, true, true, true);
	} else if (ptmove) {
		sendRequestForReply("control.cgi", "c.1.pan=" + Math.round(point[0]) + "&c.1.tilt=" + Math.round(point[1]), "new", true, true, true, true);
	} else {
		sendRequestForReply("control.cgi", "c.1.zoom=" + Math.round(getZoomFromW(resizeWidth)), "new", true, true, true, true);
	}
}
function drawMask() {
	var point1 = getXYFromPanTilt(viewLeftBoundary, viewUpBoundary);
	var point2 = getXYFromPanTilt(viewRightBoundary, viewDownBoundary);
	document.getElementById("mask_img").style.left = document.getElementById("panorama_img").offsetLeft + "px";
	document.getElementById("mask_img").style.top = document.getElementById("panorama_img").offsetTop + "px";
	document.getElementById("mask_img").width  = point2[0] - point1[0] + 1;
	document.getElementById("mask_img").height = point2[1] - point1[1] + 1;
	document.getElementById("mask_img").style.borderLeftWidth = point1[0] + "px";
	document.getElementById("mask_img").style.borderTopWidth = point1[1] + "px";
	document.getElementById("mask_img").style.borderRightWidth = Math.max(0,imageWidth - point2[0] - 1) + "px";
	document.getElementById("mask_img").style.borderBottomWidth = Math.max(0,imageHeight - point2[1] - 1) + "px";
	document.getElementById("mask_img").style.visibility = "visible";
}
function getPanTiltFromXY(x, y) {
	var pan = x * panoWidth / imageWidth + panoLeft;
	var tilt = panoTop - y * panoHeight / imageHeight;
	return [pan, tilt];
}
function getXYFromPanTilt(pan, tilt) {
	var x = imageWidth * (pan - panoLeft) / panoWidth;
	var y = imageHeight * (panoTop - tilt) / panoHeight;
	return [Math.round(x), Math.round(y)];
}
function getZoomFromW(w) {
	if (w == maxW) {
		return viewWideBoundary;
	}
	var zoom = w * panoWidth / imageWidth;
	return zoom;
}
function getWFromZoom(zoom) {
	var w = imageWidth * zoom / panoWidth;
	w = Math.round((w + 1) / 2) * 2 - 1;
	return w;
}
function clickHonor() {
	sendRequestForReply("claim.cgi", "", "new", true, false, true, true);
}
function initPresetSelect() {
	document.getElementById("preset_select").options[0] = new Option(getLabelFile("presetDefault"), "");
	for (i=0; i<positionArray.length; i++) {
		document.getElementById("preset_select").options[i+1] = new Option(positionArray[i], positionArray[i]);
	}
	document.getElementById("preset_select").length = positionArray.length + 1;
}
function changePreset() {
	var index = this.selectedIndex;
	if (index == 0) {
		return;
	}
	clearTimeout(timerPreset);
	var params = "";
	if (panArray[index - 1] != null && panArray[index - 1] != "") {
		params = params + "pan=" + panArray[index - 1] + "&";
	}
	if (tiltArray[index - 1] != null && tiltArray[index - 1] != "") {
		params = params + "tilt=" + tiltArray[index - 1] + "&";
	}
	if (zoomArray[index - 1] != null && zoomArray[index - 1] != "") {
		params = params + "zoom=" + zoomArray[index - 1] + "&";
	}
	if (backLightArray[index - 1] != null && backLightArray[index - 1] != "") {
		params = params + "back_light=" + backLightArray[index - 1] + "&";
	}
	if (focusModeArray[index - 1] != null && focusModeArray[index - 1] != "") {
		var fm = focusModeArray[index - 1];
		if (fm == "infinity") {
			fm = "far_fix";
		}
		params = params + "focus_mode=" + fm + "&";
	}
	if (focusValueArray[index - 1] != null && focusValueArray[index - 1] != "") {
		params = params + "focus_value=" + focusValueArray[index - 1] + "&";
	}
	sendRequest("OperateCamera", params.substr(0,params.length - 1), "old", true, true, true, true);
	timerPreset = setTimeout("resetPreset()", 5000);
}
function resetPreset() {
	document.getElementById("preset_select").options[0].selected = true;
}
