﻿var SetUpdateProgress = function() {
	if (self.Sys && self.Sys.WebForms && Sys.WebForms.PageRequestManager && self.ShowWaitMsgNet) {
		Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
		Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
	}
}

function BeginRequestHandler(sender, eArgs) {
	ShowWaitMsgNet();
}

function EndRequestHandler(sender, eArgs) {
	HideMessage()
}

var init = function() {
	document.forms[0].action = '../../default.asp';
	SetUpdateProgress();
}

var enterCodeDialogElement = null;
var enterCodeDialogHTML = "Введите код: <input id='codeEntered' style='width:4em; margin-right: .5em;' maxlength='4'/><input type='button' value=' >> ' onclick='codeSubmit()'/>";
var enterCodeDialogSource = null;
var clicksCount = 0;
var confirmMessage = "";

function getSecretCode() {
	var secret_code = document.getElementById('secret_code') || document.getElementById('ctl00_ContentPage_secret_code');
	if (!secret_code)
		return null;
	return secret_code.value;
}

function getBox(el) {
	var pos = [el.offsetLeft, el.offsetTop,
    			el.offsetWidth, el.offsetHeight];
	if (el = el.offsetParent) {
		el = getBox(el);
		pos[0] += el[0];
		pos[1] += el[1];
	}
	return pos;
}

function codeSubmit() {
	var el = document.getElementById('codeEntered');
	if (!el || !el.value) return;
	document.forms[0].code.value = el.value;
	document.forms[0].action = "";
	destroyCodeDialog();
	if (confirm(confirmMessage))
		document.forms[0].submit();
}

function destroyCodeDialog() {
	if (!enterCodeDialogElement) return;
	if (!enterCodeDialogSource.disabled) return;
	if (!clicksCount++) return;
	document.body.onclick = null;
	enterCodeDialogElement.onclick = null;
	document.body.removeChild(enterCodeDialogElement);
	enterCodeDialogSource.disabled = false;
}

function enterCodeDialog(source) {
	enterCodeDialogSource = source;
	var size = { width: 220, height: 25, padding: 5 };
	var disabled = source.disabled;
	var el = enterCodeDialogElement = document.createElement("div");
	el.className = "enter-code-dialog";
	var box = getBox(source);
	el.style.width = size.width + "px";
	el.style.height = size.height + "px";
	el.style.padding = size.padding + "px";
	var box = getBox(source);
	el.style.left = box[0] + (((box[2] - (size.width + size.padding * 2)) / 2) >> 0) + "px";
	el.style.top = box[1] - size.height - size.padding * 2 - 1 + "px";
	el.innerHTML = enterCodeDialogHTML;

	document.body.onclick = function() {
		destroyCodeDialog();
	}

	el.onclick = function(evt) {
		evt = evt || window.event;
		evt.cancelBubble = true;
	}

	document.body.appendChild(el);
	source.disabled = true;
	clicksCount = 0;
	codeEntered.focus();
}

function enterCode(source) {
	enterCodeDialog(source);
}

var travel = {
	showPopup: function(event, id) {
		if (document.body.onclick) document.body.onclick(event);
		event = event || window.event;
		var el = document.getElementById(id);
		if (!el) return;
		el.style.display = "";
		el.style.position = "absolute";
		var $this = this;
		this._currentPopup = el;
		document.body.onclick = function() {
			el.style.display = "none";
			el.onclick = null;
			delete $this._currentPopup;
		}
		el.onclick = function(ev) {
			ev = ev || window.event;
			event.cancelBubble = true;
			if (ev.stopPropagation) {
				ev.stopPropagation();
			}
		}
		var hiddenInput = this._processCheckBoxes(el, null);
		if (hiddenInput) {
			var values = hiddenInput.value.split(',');
			var hashed_values = {};
			for (var i = 0; i < values.length; i++)
				hashed_values[values[i]] = 1;

			this._processCheckBoxes(el, function(el) {
				el.checked = hashed_values[el.value] ? "checked" : "";
			});
		}
		event.cancelBubble = true;
		if (event.stopPropagation) {
			event.stopPropagation();
		}

		return false;
	},
	_processCheckBoxes: function(el, func) {
		var elms = el.getElementsByTagName("INPUT");
		var hiddenInput = null;
		for (var i = 0; i < elms.length; i++) {
			var el = elms[i];
			if (el.type.toLowerCase() == "hidden") {
				hiddenInput = el;
				continue;
			} else if (func) {
				func(el);
			}
		}
		return hiddenInput;
	},
	submitPopup: function() {
		if (!this._currentPopup) return;
		var values = [];
		var hiddenInput = this._processCheckBoxes(this._currentPopup, function(el) {
			if (el.checked) values.push(el.value);
		});
		if (hiddenInput) hiddenInput.value = values.join(",");
	}
}
