var IE = document.all?true:false;
//if( !IE ) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
var MouseX = 0;
var MouseY = 0;
var WinX = 0;
var WinY = 0;
function getMouseXY(e)
{
	if( IE )
	{
		MouseX = event.clientX + document.body.scrollLeft;
		MouseY = event.clientY + document.body.scrollTop;
	}
	else
	{
		MouseX = e.pageX;
		MouseY = e.pageY;
	}
	if( MouseX < 0 ){MouseX = 0;}
	if( MouseY < 0 ){MouseY = 0;}

	return true;
}
/*
if( document.all )
{
	WinW = document.body.offsetWidth;
	WinH = document.body.offsetHeight;
}
else
{
	WinW = window.outerWidth;
	WinH = window.outerHeight;
}*/

js_conn = Array();
function jA(Xu,Xc,XcP,Xr,aId)
{
	if( !aId ) aId = 0; //@@TODO - make auto detect if connection is created and use next one, or just increase each usage, but destroy connection on end

	try{ js_conn[aId] = new XMLHttpRequest(); }
	catch(e){ try{ js_conn[aId] = new ActiveXObject("Msxml2.XMLHTTP"); }
	catch(e){ try{ js_conn[aId] = new ActiveXObject("Microsoft.XMLHTTP"); }
	catch(e){ try{ js_conn[aId] = new XMLHttpRequest(); }
	catch(e){ alert('You need ActiveX to be enabled in your browser to use it.'); } } } }

	try
	{
		js_conn[aId].onreadystatechange = function()
		{
			if( js_conn[aId].readyState == 4 )
			{
				if( js_conn[aId].status == 200 )
				{
					if( !XcP ) XcP = '';
					if( Xr )
					{
						eval(Xc + '(js_conn[aId].responseXML '+XcP+')');
					}
					else
					{
						eval(Xc + '(js_conn[aId].responseText '+XcP+')');
					}
				}
				//else
				//{
				//	alert('There was a problem with the request.(Code: ' + js_conn[aId].status + ')');
				//}
			}
		}

		js_conn[aId].open("GET", Xu, true);
		js_conn[aId].send(null);
	}
	catch(e){}
}

function jB(result)
{
	try
	{
		if( document.implementation.createDocument )
		{
			var xml_conn = (new DOMParser()).parseFromString(result, "text/xml");
		}
		else if( window.ActiveXObject )
		{
    		var xml_conn = new ActiveXObject("Microsoft.XMLDOM");
			xml_conn.async="false";
    		xml_conn.loadXML(result);
		}

		var root = xml_conn.getElementsByTagName('report')[0];
		for( i = 0 ; i < root.childNodes.length ; i++ )
		{
			var node = root.childNodes.item(i);
			if( node.nodeType == 1 )
			{
				var name = node.nodeName;
				var value = ''; if( node.firstChild ) value = node.firstChild.nodeValue;
				var action = node.getAttribute("action");
				switch(action)
				{
					case 'reload': eval(" "+name+".location.reload("+value+");"); break;
					case 'alert': alert(value); break;
					case 'location': document.location.href=value; break;
					case 'eval': eval(value); break;
					default: eval("if(document.getElementById('"+name+"')){document.getElementById('"+name+"')."+action+" = '"+value+"'};");
					//alert("if(document.getElementById('"+name+"')){document.getElementById('"+name+"')."+action+" = '"+value+"'};");
				}
			}
		}
	}
	catch(e){}
}

function jN(result)
{
}

function jC(result, _id, _append)
{
	if( !document.getElementById(_id) ) return;
	if( _append == true )
		document.getElementById(_id).innerHTML += result;
	else
		document.getElementById(_id).innerHTML = result;
}

var optShowHideVar = '';
function optShowHide(_id)
{
	if( document.getElementById(_id) )
	{
		if( document.getElementById(_id).style.display == '' )
		{
			optHide(_id);
			optShowHideVar = '';
		}
		else
		{
			//close previous
			if( optShowHideVar != '' && document.getElementById(optShowHideVar) ) optHide(optShowHideVar);
			optShow(_id);
			optShowHideVar = _id;
		}
	}
}
function optHide(_id)
{
	document.getElementById(_id).style.display = 'none';
	if( document.getElementById(_id+'TO') ) document.getElementById(_id+'TO').className = 'optO';
}
function optShow(_id)
{
	document.getElementById(_id).style.display = '';
	if( document.getElementById(_id+'TO') ) document.getElementById(_id+'TO').className = 'optX';
}

function createPopup(_parent, _id, _style)
{
	if( !document.getElementById(_parent) ) return;
	if( document.getElementById(_id) ){ showPopup(_id); return; }

	obj = document.createElement("DIV");
    obj.id = _id+'Shadow';
    obj.className = "div_popup_shadow";
    for( var name in _style )
	{
		value = _style[name];
		if( name == "left" || name == "top") value = parseInt(value) + 5;
		if( value != "" && /*!(value instanceof Object) && */name != "length" && name !="parentRule" ){obj.style[name] = value;}
    }
	document.getElementById(_parent).appendChild(obj);

	obj = document.createElement("DIV");
    obj.id = _id;
    obj.className = "div_popup";
    for( var name in _style )
	{
		value = _style[name];
		if( value != "" && /*!(value instanceof Object) && */name != "length" && name !="parentRule" ){obj.style[name] = value;}
    }
    objX = document.createElement("DIV");
    objX.style["position"] = "absolute";
    objX.style["right"] = "2";
    objX.style["top"] = "1";
    objX.innerHTML = '<a href="" onclick="hidePopup(\''+_id+'\');return false;"><b>X</b></a>';
    obj.appendChild(objX);
	document.getElementById(_parent).appendChild(obj);
}

function createFillPopup(_parent, _id, _idContent, _style)
{
	if( !document.getElementById(_parent) ) return;
	if( document.getElementById(_id) ){ showPopup(_id); return; }
	if( !document.getElementById(_idContent) ) return;
	createPopup(_parent, _id, _style);

	document.getElementById(_id).innerHTML = document.getElementById(_id).innerHTML+document.getElementById(_idContent).innerHTML;
}

function showPopup(_id)
{
	if( document.getElementById(_id+'Shadow') ) document.getElementById(_id+'Shadow').style.display = '';
	if( document.getElementById(_id) ) document.getElementById(_id).style.display = '';
}

function hidePopup(_id)
{
	if( document.getElementById(_id+'Shadow') ) document.getElementById(_id+'Shadow').style.display = 'none';
	if( document.getElementById(_id) ) document.getElementById(_id).style.display = 'none';
}

function DeleteDataStorage(obj)
{
	if( !obj.parentNode && !obj.parentNode.style || !obj.previousSibling.previousSibling ) return false;

	obj.parentNode.style.display='none';
	//obj.previousSibling.previousSibling.disabled = true;
	obj.previousSibling.previousSibling.value = ''; //mostly for import to leave variable "isset"

	return false;
}

if ('undefined' == typeof String.prototype.trim) {
  String.prototype.trim = function() {
    return this.replace(/^\s+/, '').replace(/\s+$/, '');
  }
}

function SplitTextLine(btn, target_div, target_val, id, btn_del)
{
	strItems = document.getElementById(id).value;
	sepItems = document.getElementById('sep1_'+id).value;
	sepItem = document.getElementById('sep2_'+id).value;
	order = document.getElementById('order1_'+id);
	order = order.checked?1:0;

	if( strItems == '' || sepItems == '' || sepItem == '' || !document.getElementById(target_div) ) return;

	btn_tmp = btn.value;
	btn.value = 'In Bearbeitung ...';

	strItems = new String(strItems);
	strItems = strItems.trim();
	arrItems = strItems.split(sepItems);

	for(i=0;i<arrItems.length;i++)
	{
		strItem = new String(arrItems[i]);
		strItem = strItem.trim();
		arrItem = strItem.split(sepItem);

		if( !arrItem[0] ) continue;
		if( !arrItem[1] ) arrItem[1] = '';

		if( order == 1 )
			resultItem = arrItem[1]+" "+arrItem[0];
		else
			resultItem = arrItem[0]+" "+arrItem[1];

		resultItem = resultItem.trim();
		if( resultItem == '' ) continue;

		data_storage = "<div>"
						+"<input type='hidden' name='"+target_val+"' value='"+resultItem.replace('\\', '\\\\')+"' />"
						+" "+resultItem+" &nbsp; (<a href='#' onclick='return DeleteDataStorage(this);'>"+btn_del+"</a>)<br/>"
						+"</div>";
		if( document.getElementById(target_div) ) document.getElementById(target_div).innerHTML += data_storage;
	}

	btn.value = btn_tmp;
}

function AppendOptionToSelection( _select, _name, _val )
{
	if( document.getElementById(_select) )
	{
		var opt = document.createElement("option");
        opt.value = _val;
        opt.innerHTML = _name;
        document.getElementById(_select).appendChild(opt);
    }
}

function ExpandCollapseMenu(obj, _id, path)
{
	if( !document.getElementById("menu"+_id) ) return;
	disp = document.getElementById("menu"+_id).style.display;
	if( disp == '' )
	{
		document.getElementById("menu"+_id).style.display = 'none';
		obj.src = path+'folder_plus.png';
	}
	else
	{
		document.getElementById("menu"+_id).style.display = '';
		obj.src = path+'folder_minus.png';
	}
}

//*******************************************************/
// SCROLL functions
//*******************************************************/
var db = (document.body) ? 1 : 0;
var scroll = (window.scrollTo) ? 1 : 0;

function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else {
    begin += 2;
  }
  var end = document.cookie.indexOf(";", begin);
  if (end == -1) end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function saveScroll() {
  if (!scroll) return;
  var now = new Date();
  now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
  var scr = getScrollXY();
  var x = scr[0];
  var y = scr[1];
  setCookie("xy", x + "_" + y, now);
}

function loadScroll() {
	if (!scroll) return;
  var xy = getCookie("xy");
  if (!xy) return;
  var ar = xy.split("_");
  if (ar.length == 2) window.setTimeout('window.scrollTo('+parseInt(ar[0])+', '+parseInt(ar[1])+')', 1);
}
//*******************************************************/

function setClientWidths()
{
	if( !IE )
	{
		winW = window.innerWidth;
		winH = window.innerHeight;
	}
	else
	{
		winW = document.body.offsetWidth;
		winH = document.body.offsetHeight;
	}
}
function HideLoadingDiv(_id)
{
	if( _id == undefined ) _id = 'div_loading';
	$("#"+_id).css("display", "none");
}
function ShowLoadingDiv(_txt, _id)
{
	setClientWidths();
	if( _id == undefined ) _id = 'div_loading';
	obj = document.getElementById(_id);
	inner_html = '<img src="/inf2/images/icon_loading2.gif">&nbsp;&nbsp;&nbsp;'+_txt;
	if( obj )
	{
		obj.style.display = '';
		obj.innerHTML = inner_html;
		return;
	}

	posX = (winW-400)/2;
	posY = (winH-100)/2;

	obj = document.createElement("DIV");
	obj.innerHTML = inner_html;
    obj.id = _id;
    obj.className = "div_loading";
	document.body.appendChild(obj);
}