var Puffer = '';
var g_objDatepicker = null;

function selectfiles(feldname,typ,burl) {

	windowHandler = window.open('/include/ressourcen.asp?BURL='+burl+'&Typ='+typ+'&Aktion=AW','Fenster1','resizable=1,location=0,directories=0,status=0,menubar=0,scrollbars=1,toolbar=0,width=520,height=450');

  	if (windowHandler.opener == null) windowHandler.opener = self;
  	if (!windowHandler.opener) windowHandler.opener = self;  	
	vPolling = window.setInterval("selectfiles_insert('"+feldname+"')",300);	 
}

function selectfiles_insert(feldname)
{
	if (windowHandler){
		if (windowHandler.closed) {
			window.clearInterval(vPolling);
			if (Puffer.length > 0){
				eval("document.Formular."+feldname+".value = Puffer");
			}
			Puffer = '';		
		}
	}
	else{
		window.clearInterval(vPolling);
	}			
	
}
		
function init(strActualDate)
{
	oDate = new Date();
	g_objDatepicker   = new framedatepicker.DatePicker("divDatePicker", oDate.getFullYear()-6, oDate.getFullYear()+14, false, strActualDate);
	// If you want Sunday as first day of the week use this construction call instead:
	// g_objDatepicker = new framedatepicker.DatePicker("divDatePicker", oDate.getFullYear()-2, oDate.getFullYear()+5, true);
	
	// Use another init year/month than todays. 0=Jan, 11=Dec
	//g_objDatepicker.setInitDate(2003, 0);
}


function showIFrameNew(f,id,source,width,height,blnNoValue){
  if(document.all) parent.event.cancelBubble = true;
  HideAllFrames();
  var objFrame=document.getElementById('id_iframe');
  if(typeof(objFrame)!='undefined'){
      var strValue='';
      if(blnNoValue!=true){
      	if(eval('typeof(Formular.Source_'+id+')!="undefined"')){eval('strValue=Formular.Source_'+id+'.value');}
      }
      var posx=f.offsetParent.offsetLeft+f.offsetLeft+15;
      var posy=f.offsetParent.offsetTop+f.offsetTop+38;
      if(f.offsetParent.offsetLeft==0)posx=595;
      var windowx=parent.document.body.clientWidth;
      var windowy=parent.document.body.clientHeight;
      var framex=width;
      var framey=height;
      objFrame.style.width=framex;
      objFrame.style.height=framey;
      if(posy-framey-17>0){if(posy+framey > windowy){posy=posy-framey-17};}
      objFrame.style.top=posy;
      objFrame.style.left=posx-framex;
      var action='objFrame.src="'+source+'&selection='+strValue+'"';
      eval(action);
      objFrame.style.visibility='visible';
  }
}


//globale Variablen für XML-Parsing
var g_XMLStream = '';
var g_blnProcess=false;
var g_blnIsDeepNode=false;
var g_blnIsSingleNode=false;
var g_blnIsEmptyNode=false;
var g_arrDeepNodes = new Array('');
var g_NodeName='';
var g_NodeId=0;
var g_NodeParentId='';
var g_NodeLevel=0;

//Funktionen zum Parsen von XML-Daten
function getNextNode(){
	var posCloseSingleNode=0;
	var posStartSearch=0;
	var posBeginNextNode=0;
	var strXMLReturn='';
	var countCloseNodes=0;
	var countCloseAllDeepNodes=0;
	var countCloseDeepNodes=0;
	
	
	if(g_XMLStream.length==0)return(''); //wenn XML leer, dann zurück
	if(!g_blnProcess)g_XMLStream=' '+g_XMLStream;//bei Parsing-Start ein ein Leerzeichen einfügen
	
	posBeginNextNode=g_XMLStream.substring(1).search(/<\w/)+1;

	g_blnProcess=true;
	if(posBeginNextNode==0){
		g_blnProcess=false;
		g_XMLStream='';
		return('');
	}
	//im Falle von schließenden DeepNodes --> Node-Tiefe reduzieren
	var strTest=g_XMLStream.substring(0,posBeginNextNode);
	countCloseNodes=0;
	if(strTest.indexOf('</')>-1)countCloseNodes=strTest.match(/<\//g).length;
	if(g_blnIsEmptyNode)countCloseNodes--; //letzter Node war leerer Contentnode --> zählt nicht als DeepNode
	for(var i=0;i<countCloseNodes;i++){
		g_arrDeepNodes.pop();
	}
	//Parent-Child Beziehungen vorbelegen
	g_NodeParentId=g_arrDeepNodes[g_arrDeepNodes.length-1]	
	g_NodeLevel=g_arrDeepNodes.length-1
	
	//g_XMLStream ersten Node wegschneiden
	g_XMLStream=g_XMLStream.substring(posBeginNextNode);
	//g_NodeId=getAttribute(g_XMLStream,'id');
	g_NodeId++;
	
	//NodeName lesen
	var posEndNodeName=g_XMLStream.search(/\s|>|\//);
	var strNodeName=g_XMLStream.substring(1,posEndNodeName);
	g_NodeName=strNodeName;
	
	g_blnIsDeepNode=false;
	g_blnIsSingleNode=false;
	g_blnIsEmptyNode=false;
	
	//ist Single Node?
	posCloseSingleNode=g_XMLStream.indexOf('/>');
	if(posCloseSingleNode!=-1){
		strXMLReturn=g_XMLStream.substring(0,posCloseSingleNode+2);
		if(strXMLReturn.lastIndexOf('<')==0){
			g_blnIsSingleNode=true;
			return strXMLReturn //ja, ist SingleNode
		}
	}
	
	//ist Node mit leerem Content?
	var posCloseNextNode=g_XMLStream.indexOf('</'+strNodeName+'>')+3+strNodeName.length;
	strTest=g_XMLStream.substring(0,posCloseNextNode);
	if(strTest.match(/</g).length==2){//ja, ist Node mit leerem Content;
		//g_XMLStream=g_XMLStream.substring(posCloseNextNode);//CloseNode abschneiden
		g_blnIsEmptyNode=true;
		return strTest;
	}

	//zähle CloseDeepNodes
	countCloseAllDeepNodes=g_XMLStream.match(/<\//g).length;
	var posNextDeepNodeClosed=0;
	for(var i=0;i<countCloseAllDeepNodes;i++){
		posNextDeepNodeClosed=g_XMLStream.indexOf('</',posStartSearch);
		posNextDeepNodeClosed=g_XMLStream.indexOf('>',posNextDeepNodeClosed)+1;
		strXMLReturn=g_XMLStream.substr(0,posNextDeepNodeClosed)
		countCloseDeepNodes=strXMLReturn.match(/<\//g).length;
		if(strXMLReturn.indexOf('<')>-1)countOpenDeepNodes=strXMLReturn.match(/</g).length;
		if(strXMLReturn.indexOf('/>')>-1)countOpenDeepNodes-=strXMLReturn.match(/\/>/g).length;
		countOpenDeepNodes-=countCloseDeepNodes;
		if(countOpenDeepNodes==countCloseDeepNodes){
			//ein konsistenter DeepNode wurde gefunden
			//g_arrDeepNodes.push(getAttribute(strXMLReturn,'id'));
			g_arrDeepNodes.push(g_NodeId);		
			g_blnIsDeepNode=true;
			g_NodeParentId=g_arrDeepNodes[g_arrDeepNodes.length-2]
			g_NodeLevel=g_arrDeepNodes.length-2
			//g_XMLStream=g_XMLStream.substring(posNextDeepNodeClosed);//Node abschneiden
			return strXMLReturn;
		}else{
			posStartSearch=posNextDeepNodeClosed
		}
	}
}

function getAttribute(strXML,strName){
	if(strXML.indexOf(strName+'="')>-1){
		var offset=strName.length+2;
		var posAttributeBegin=strXML.indexOf(strName+'="')+offset;
		var posAttributeEnd=strXML.indexOf('"',posAttributeBegin);
		return strXML.substring(posAttributeBegin,posAttributeEnd);
	}else{		
		return "";
	}
}

function resetXMLDom(){
g_blnProcess=false;
g_blnIsDeepNode=false;
g_blnIsSingleNode=false;
g_blnIsEmptyNode=false;
g_arrDeepNodes = new Array('');
g_NodeName='';
//g_NodeId='';
g_NodeId=0;
g_NodeParentId='';
g_NodeLevel=0;	
}

function calculatePosLeft(obj,intWidth) {
	var left = 0;
	var pos;
	pos=obj;
	left = left + pos.offsetLeft;
	while (pos.offsetParent!=null) {
		pos=pos.offsetParent;
		left = left + pos.offsetLeft;
	}
	if(parent.document.body.clientWidth<left+intWidth)left=left-intWidth
	return left;
}
  
function calculatePosTop(obj,intHight) {
	var top = 0;
	var pos;
	pos=obj;
	top= top + pos.offsetTop;
	while (pos.offsetParent!=null) {
		pos=pos.offsetParent;
		top= top + pos.offsetTop;
	}
	if(parent.document.body.clientHeight<top+intHight)top=top-intHight
	return top;
}

function MouseOutMenu(Item) 
{
	var MenuItem = document.getElementById(Item);
	MenuItem.style.backgroundColor= "";
	MenuItem.style.cursor= "";
}

function MouseOverMenu(Item) 
{
  var MenuItem = document.getElementById(Item);
  MenuItem.style.backgroundColor= "#eee";		
	MenuItem.style.cursor= "pointer";
}

function MouseOverRow(obj){
	obj.style.backgroundColor= "#eee";
}
function MouseOutRow(obj){
	obj.style.backgroundColor= "";
}

function MouseOverTab(obj,strStyle){
	if(strStyle=='')strStyle='gold';
	obj.style.backgroundImage="url(/include/extensions/xmlliste/images/tab_topmenu_"+strStyle+"_active.jpg)";
}
function MouseOutTab(obj,strStyle){
	if(strStyle=='')strStyle='gold';
	obj.style.backgroundImage="url(/include/extensions/xmlliste/images/tab_topmenu_"+strStyle+".jpg)";
}

function ml_doSearch(field,seite,xmlstyle) {
	var parameterstring='';
	var delimiter='';	
	var searchstring=field.value;
	var strTest='';
	var arrSearch=searchstring.split(' ');
	for(var i=0;i<arrSearch.length && i<6;i++){
		if(i>0)delimiter='&';
		strTest=arrSearch[i].match(/\d\d\.\d\d\.\d\d\d\d/);
		if(strTest!=null){
			strTest=strTest[0];
			if(strTest.length==10){
				strTest=strTest.substr(6,4)+strTest.substr(3,2)+strTest.substr(0,2)
				arrSearch[i]=strTest;
			}
		}
		parameterstring+=delimiter+'search'+(i+1)+'='+arrSearch[i]+delimiter+'&xmlstyle='+xmlstyle;
		
	}
	window.location.href=seite+"?"+parameterstring;
}
