﻿var isOp = !!window.opera, isIE = !!document.all && !isOp;
function _getRoot() {
	var scs = document.getElementsByTagName('SCRIPT'), path = scs[0].src, ind = path.search(/scripts|mnf\.axd/i);
	return path.substr(0, ind);
}
function __isArray(value) {
	return value != null && value instanceof Array;
}
function isIn(value, list) {
	var i, args = [], tl = typeof list;
	if (tl != 'undefined' && isNaN(list.length) || arguments.length > 2 || tl != "string") {
		for (i = 1; i < arguments.length; i++)
			args.push(arguments[i]);
	} else
		args = list;
	for (i = 0; i < args.length; i++)
		if (value == args[i]) return true;
	return false;
}
function $() {
	var result = [], args = (arguments.length > 1 || !__isArray(arguments[0])) ? arguments : arguments[0];
	for (var i = 0, len = args.length; i < len; i++) {
		var e = args[i];
		if (typeof e == "string")
			e = document.getElementById(e);
		if (len == 1) return e;
		result.push(e);
	}
	return result;
}
function _getLeft(node) {
	return (!node) ? 0 : node.offsetLeft + _getLeft(node.offsetParent);
}
function _getTop(node) {
	return (!node) ? 0 : node.offsetTop + _getTop(node.offsetParent);
}
function _fixTag(tagName) {
	return (!tagName) ? '*' : tagName.toUpperCase();
}
function _getParentByTagName(node, tagName) {
	if (!node) return;
	tagName = _fixTag(tagName);
	var res = null, par = node, ignTag = tagName == '*';
	while (par = par.parentNode) {
		if (ignTag || tagName == par.tagName) {
			res = par;
			break;
		}
	}
	return res;
}
function _getDKids(el, tagName) {
	var res = [];
	tagName = _fixTag(tagName);
	for (var i = 0, kids = el.childNodes; i < kids.length; i++)
		if (kids[i].tagName == tagName) res.push(kids[i]);
	return res;
}
function _getKidsByClassName(node, name, tagName, just1) {
	node = node || document.body;
	tagName = _fixTag(tagName);
	var res = [], re = new RegExp("(^|\\s)" + name + "(\\s|$)");
	for (var i = 0, els = node.getElementsByTagName(tagName); i < els.length; i++) {
		var el = els[i];
		if (re.test(el.className)) {
			res.push(el);
			if (just1) break;
		}
	}
	return res;
}
function removeClass(node, name) {
	var old = (node) ? node.className : null;
	if (!old) return;
	node.className = old.replace(new RegExp("(^|\\s)" + name + "(\\s|$)"), '');
}
function _preloadImages(srcs) {
	this.imgs = [];
	var start = _getRoot() + 'images/';
	for (var i = 0; i < srcs.length; i++) {
		var ctl = new Image();
		ctl.src = start + srcs[i];
		this.imgs.push(ctl);
	}
}
function update_ValidatorHookupEvent() {
	if (typeof ValidatorHookupEvent != 'function') return;
	var body = _getFunctionBody(ValidatorHookupEvent);
	var newBody = body.replace("var func;", "var func;\r\n\tev += 'ValidationSummaryOnSubmit(null);';");
	ValidatorHookupEvent = new Function("control", "eventType", "functionPrefix", newBody);
}
String.prototype.endsWith = function(end, compareCase) {
	if (end != null && typeof end == 'string') {
		var ln = end.length, tl = this.length;
		if (tl < ln) return false;
		if (isIn(compareCase + '', 'false', '0', ''))
			return this.toLowerCase().substr(tl - ln) == end.toLowerCase();
		else
			return this.substr(tl - ln) == end;
	}
	return false;
}
Menu = {
	_cmi: null, _tID: null,
	init: function() {
		var tm = _getKidsByClassName(null, "tmenu", "div", true)[0];
		var ul = _getKidsByClassName(tm, "tul", "ul", true)[0];
		var sbs = _getKidsByClassName(tm, "nd", "div");
		if (sbs.length != 0) {
			setEvent(document, 'mouseover', Menu.over);
			for (var i = 0, mis = _getDKids(ul, 'LI'); i < mis.length; i++) {
				var end = '_' + (i + 1), sm = null, mi = mis[i];
				for (var j = 0; j < sbs.length; j++) {
					if (sbs[j].id.endsWith(end)) {
						sm = sbs[j];
						sm.mi = mi;
						sm.style.display = 'none';
						removeClass(sm, 'nd');
						break;
					}
				}
				mi.mIndex = i;
				mi.sm = sm;
			}
		}
	},
	over: function(e) {
		var ev = e || event, el = ev.target || ev.srcElement, mi, sm;
		while (el && !el.mi && !el.mIndex)
			el = el.parentNode;
		if (el) mi = el.mi || el;
		if (!mi) {
			Menu.hide();
			Menu._cmi = null;
		} else if (!Menu._cmi || mi != Menu._cmi) {
			if (Menu._tID) { clearTimeout(Menu._tID); Menu.hide(Menu._cmi); }
			if (sm = mi.sm) {
				var st = sm.style;
				st.left = _getLeft(mi) - 5 + 'px';
				st.top = _getTop(mi) + mi.offsetHeight - 7 + 'px';
				st.minWidth = mi.offsetWidth + 10 + 'px';
				Menu._tID = setTimeout(function() { Menu.fadeIn(sm); }, 0);
			}
			Menu._cmi = mi;
		}
	},
	fadeIn: function(el) {
		var op = (el.op ? el.op : 0) + .08, st = el.style;
		if (op > 1) op = 1;
		if (isIE)
			st.filter = 'alpha(opacity=' + parseInt(100 * op) + ')';
		else
			st.opacity = op;
		if (Menu._cmi != el.mi)
			Menu.hide(el.mi);
		else {
			st.display = '';
			if (op < 1) {
				el.op = op;
				setTimeout(function() { Menu.fadeIn(el); }, 25);
			}
		}
	},
	hide: function(el) {
		el = el || Menu._cmi;
		var sm;
		if (!el || !(sm = el.sm)) return;
		sm.op = 0;
		sm.style.display = 'none';
	}
}
function setEvent(el, type, fn) {
	if (el.addEventListener)
		el.addEventListener(type, fn, false);
	else if (el.attachEvent)
		el.attachEvent('on' + type, fn);
	else
		eval('el.on' + type + '=fn');
}
function _getOutHtml(nd) {
	if (!nd) return;
	var res = nd.outerHTML;
	if (!res) {
		if (!nd.getOuter)
			nd.getOuter = function(e) {
				var el = document.createElement('DIV');
				el.appendChild(e.cloneNode(true));
				return el.innerHTML;
			}
		res = nd.getOuter(nd);
	}
	return res;
}
function resetInputFile(id) {
	var fl = $(id);
	if (!fl) return;
	var i, flNew = fl.cloneNode(false), prn = fl.parentNode, nxt = fl.nextSibling;
	if (!isOp)
		flNew.value = "";
	else {
		var frm = document.createElement("FORM");
		frm.appendChild(flNew);
		frm.reset();
		frm.removeChild(flNew);
	}
	setEventFunction(flNew, "onchange", _getFunctionBody(fl.onchange));
	setEventFunction(flNew, "onkeypress", _getFunctionBody(fl.onkeypress));
	prn.removeChild(fl);
	var vals = (typeof Page_Validators != "undefined") ? Page_Validators : null;
	if (__isArray(vals)) {
		flNew.Validators = [];
		for (i = 0; i < vals.length; i++) {
			var val = vals[i];
			var isSng = isIn(id, val.controltovalidate, val.controlhookup);
			var isMlt = typeof val.controlstovalidate == 'string' && val.controlstovalidate.indexOf(id) != -1;
			if (isSng || isMlt) {
				flNew.Validators.push(val);
				val.isvalid = true;
			}
		}
	}
	prn.insertBefore(flNew, nxt);
	flNew.disabled = flNew.readOnly = false;
	validator_ControlOnChange(flNew);
}
function _getFunctionBody(func) {
	var body = (typeof func == "string") ? func : func.toString();
	return body.substring(body.indexOf("{") + 1, body.lastIndexOf("}") - 1);
}
function _getChangeEvent(ctl) {
	return { srcElement: ctl, type: "change" };
}
function setEventFunction(node, type, content) {
	var func = (isIE) ? new Function(content) : new Function("event", content);
	eval("node." + type + "=func;");
}
function validator_ControlOnChange(ctl) {
	//	this method is required to invoke control validation from javascript - this way the neccessary properties are set and Microsoft validation scripts do not fail
	if (!ctl || typeof ctl.onchange != "function") return;
	var body = ctl.onchange.toString();
	var insert = "var ev = (typeof(event)!='undefined' && event && event.type=='change') ? event : _getChangeEvent($('" + ctl.id + "'));\r\nValidatorOnChange(ev);";
	var val = "ValidatorOnChange(event);", valIndex = body.indexOf(val);
	if (body.indexOf(insert) == -1 && valIndex != -1) {
		var newBody = body.substr(0, valIndex - 1);
		if (newBody.indexOf('{') == -1) newBody += '{';
		newBody += insert + body.substr(valIndex + val.length);
		setEventFunction(ctl, "onchange", _getFunctionBody(newBody));
	}
	ctl.onchange();
}
function swapImg(lnk, on) {
	var img = (!lnk) ? null : (!!lnk.img) ? lnk.img : lnk.img = lnk.getElementsByTagName('IMG')[0];
	if (img)
		img.src = (on == 1) ? img.src.replace(/\.(\w+)$/, 'r.$1') : img.src.replace(/r\.(\w+)$/, '.$1');
}
function initServices() {
	for (var i = 0, dvs = _getKidsByClassName(null, 'svc', 'div'); i < dvs.length; i++)
		for (var j = 0, lnks = dvs[i].getElementsByTagName('A'); j < lnks.length; j++) {
		var lnk = lnks[j];
		if (lnk.href && lnk.href != "" && lnk.getElementsByTagName('IMG').length != 0) {
			lnk.onmouseover = function() { swapImg(this, 1); };
			lnk.onmouseout = function() { swapImg(this, 0); };
		}
	}
}
function largeImg(lnk, src) {
	if (!lnk || !lnk.parentNode || !src) return;
	var img = lnk.parentNode.parentNode.getElementsByTagName('IMG')[0];
	if (!img) return;
	var dv = (lnk.dv) ? lnk.dv : lnk.dv = document.createElement('DIV'), st = dv.style;
	var scrWidth = screen.availWidth, is8x6 = (scrWidth == 800), width = (is8x6) ? 500 : 800;
	if (!lnk.dvAdded) {
		st.display = 'none';
		st.position = 'absolute';
		dv.al = _getKidsByClassName(null, 'ccnt', 'div', true)[0];
		st.width = width + 'px';
		st.height = (is8x6) ? 405 : 650 + 'px';
		st.zIndex = 500;
		document.body.appendChild(dv);
		dv.img = dv.appendChild(new Image());
		dv.img.style.width = st.width;
		dv.img.style.height = st.height;
		dv.img.onclick = function() { this.parentNode.style.display = 'none'; };
		lnk.dvAdded = true;
	}
	var al = dv.al;
	st.left = (al) ? al.offsetLeft + (al.offsetWidth - width) / 2 + 'px' : '20px';
	st.top = (al) ? al.offsetTop + al.offsetHeight + 5 + 'px' : '0px';
	dv.img.src = img.src.replace(/\/([^\/])+$/, "/" + src);
	dv.style.display = '';
}
var __wol = window.onload;
if (typeof __wol != 'function')
	window.onload = function() { Menu.init(); };
else
	window.onload = function() { if (__wol) __wol(); Menu.init(); };

