
/* WebStyle js11Common */
function nic() {};
/* WebStyle js12Commands */
function aidaExtractScripts(html) {// based on PrototypeJs    var ScriptFragment = "<script[^>]*>([\\S\\s]*?)<\/script>";    var matchAll = new RegExp(ScriptFragment, "img");    var matchOne = new RegExp(ScriptFragment, "im");    return (html.match(matchAll) || []).map(function(scriptTag) {      return (scriptTag.match(matchOne) || [', '])[1];    });}function aidaEvalScripts(html) {    return aidaExtractScripts(html).map(function(script) { return eval(script) });}function aidaUpdate (id, content) {	document.getElementById(id).innerHTML = content;	aidaEvalScripts(content);}function aidaExecute(cmd) {	switch (cmd.command) {		case "update": 			aidaUpdate(cmd.id, cmd.value);			break;	}}
/* WebStyle js13Events */
function aidaEvent(event, elementId, context, value) {	var msg = {"event": event, "id": elementId, 		"pageUrl": window.location.href, "context": context, "value": value};	if (aidaWebSocket) {		aidaWebSocket.send(JSON.stringify(msg));		return;	}	xhr = new XMLHttpRequest;	xhr.onreadystatechange = function() {		if (xhr.readyState == 4) {			var cmds = JSON.parse(xhr.responseText);			for (var i=0; i < cmds.length; i++) {				aidaExecute(cmds[i]);			}		}	};	xhr.open("post", "/aidasession/ajax", true); 	xhr.send(JSON.stringify(msg));};// event send delayed since the last occurence of that eventfunction aidaDelayedEvent(event, elementId, context, value, delay) {	var e = document.getElementById(elementId);	if (e.timeoutId) { clearTimeout(e.timeoutId); };	e.timeoutId = setTimeout(function() {aidaEvent(event, elementId, context, value)}, delay);};
/* WebStyle js14WebSocket */
var aidaWebSocket;    // global variablefunction aidaProcessWebSocketMsg (event) {//	console.log(event.data);	var cmds = JSON.parse(event.data);	for (var i=0; i < cmds.length; i++) {		aidaExecute(cmds[i]);	}}function aidaOpenWebSocket() {   // call it at first page load	if (window.WebSocket) {		url = "ws://www.tsr-i.com:80/aidasession/websocket";	    	aidaWebSocket = new WebSocket(url);		aidaWebSocket.onmessage = aidaProcessWebSocketMsg;		aidaWebSocket.onclose = function(event) {			console.log("WebSocket closed, reopening..."); 			aidaOpenWebSocket();		};		console.log("WebSocket open");	} else { 		console.log("WebSocket not supported"); 	}};
/* WebStyle js15Forms */
function aidaSerializeForm(formId) {	elements = document.getElementById(formId).getElementsByTagName("*");	result = "";	for (var i=0; i < elements.length; i++) {		var e = elements[i];		if (!e.disabled && e.name && e.name.length > 0) {			switch (e.tagName.toLowerCase()) {				case "input":					switch (e.type) {						case "checkbox":						case "radio":							if (e.checked) {								if (result.length > 0) { 	result += "&"; };								result += e.name + "=" + encodeURIComponent(e.value);							};							break;						case "hidden":						case "password":						case "text":							if (result.length > 0 ) { result += "&"; };							result += e.name + "=" + encodeURIComponent(e.value);							break;					}					break;					case "select":						case "textarea":							if (result.length > 0 ) { result += "&"; };							result += e.name + "=" + encodeURIComponent(e.value);							break;			} 		}	}    return result;};
/* WebStyle js20Lightbox */
function updateLightboxLevel(level) {    var o = document.getElementById("overlay"+level);    o.style.display = "inline";    var e = document.getElementById("lightbox"+level);    e.style.position = "absolute";    e.style.display = "inline";    e.style.width = "auto"; e.style.height = "auto";    var width = e.offsetWidth; var height = e.offsetHeight;    var pageWidth = window.innerWidth;  var pageHeight = window.innerHeight;    if (typeof pageWidth != "number"){   // for IE        pageWidth = document.documentElement.clientWidth;        pageHeight = document.documentElement.clientHeight;    };    var x = (pageWidth - width) / 2;    var y = ((pageHeight - height) / 2);    x = x < 0 ? 0 : x; y = y < 0 ? 0 : y;    e.style.left =  x + "px"; e.style.top = y + "px";};

