var BLANKURL 		= "/jsp/atsc/blank.html";
var nextmsg = "";
var modalitem;
var ifd;
var vArguments = [];
var lwin = null;
var previousWindowURL = "";
var doUpdateFrameSet = true;
var focusCurrentFrameDone = false;

document.oncontextmenu = contextHandler;

var wt = getFrameSetWindow();

if(wt.ui && wt.ui.window)
{
	ui.window = wt.ui.window;
}
else
{
	ui.window = {
		current_frame_name: "w0",
		getCurrentFrame: function()
		{
			return ui.window.getFrame(ui.window.current_frame_name);
		},
		
		getFrame: function(frame_name)
		{
			if(!wt){ return null; }
			return wt[frame_name];
		}
	};
}

function getFrameSetWindow()
{
	var www = getFrameSetWindowR(window);
	
	if (www == null) {www = window;}

	return www;
}

function getFrameSetWindowR(wwindow)
{
	try
	{
		var wwd	= wwindow.document;
		
		if (wwd)
		{
			var ww 	= wwindow.frameSetTopPage
			
			if (!ww) 
			{	
				if (wwindow.parent && wwindow.parent != wwindow) 
				{
					if (wwindow.parent.document.location) return getFrameSetWindowR(wwindow.parent);
					else return wwindow;
				}
				else return wwindow;
			}
			else return wwindow;
		}
		else {return wwindow;}
	}
	catch (e) {return wwindow;}
}

function initDragOver(bd)
{
	if (bd == null) var body = document.body; else var body = bd;
	
	body.ondragstart = noDragDrop;
	body.ondragenter = noDragDrop;
	body.ondragover = noDragDrop;
	body.ondragleave = noDragDrop;
	body.ondragend = noDragDrop;
	body.ondrop = noDragDrop;
}

function noDragDrop()
{
	return false;
}

function askQuitApplication()
{
	if (wt.dialogArguments == null)
	{
		if (!wt.logout)
		{
			if (getFrame(wt.currentFrameName).isChanged)
			{
				return "Uw wijzigingen gaan verloren!";
				//event.returnValue	= "Uw wijzigingen gaan verloren!";
			}
			else
			{
				return getApplicationName() + " wordt afgesloten!";
				//event.returnValue	= getApplicationName() + " wordt afgesloten!";
			}
		}
	}
}

function done()
{
}

function quitApplication()
{
	if (wt.dialogArguments == null)
	{
		/* 
		id = wt.oldws;
	
		if (id != null)
		{
			var d = new Date();
	    	d.setFullYear(d.getFullYear()+1);
			Set_Cookie("ws", id, d, "/", false);
		}
		*/
		
		// Indien alle child windows gesloten zijn dan sessie op server opheffen
		var mp = wt.mainparent;
	
		if (mp == null) mp = wt.name;
	
		var mpcookie = Get_Cookie(mp);
		var mpcounter;
		if (mpcookie == null) mpcounter = 0; else mpcounter = parseInt(mpcookie);
	
		if (isNaN(mpcounter)) mpcounter = 0;
	
		var d = new Date();
	    d.setDate(d.getDate() + 1);
	
		Set_Cookie(mp, mpcounter - 1, d, false, false);
	
		if (mpcounter <= 0) processXMLDoc(IOSERVLETURL + "?action=9&name=" + getSessionId(), null, true, false)
	}
}

function contextHandler()
{
	//return wt.debug || getUser() == "ATSC";
	return true;
}

function openLookup(item, url, jsessionid, width)
{
	var lookupwindow = document.getElementById("lookupwindow");

	if (lookupwindow != null)
	{
		try
		{
			var ddbs = document.getElementsByTagName("SELECT");
			for (var i = 0; i<ddbs.length; i++) ddbs[i].style.visibility = "hidden";
		
			var lookupwin = null;
			var fr;
			
			for (var f = window.frames.length - 1; lookupwin == null && f >= 0; f--)
			{
				fr = window.frames[f];
				
				if (fr.location.href.indexOf("lookup=true") > -1) lookupwin	= fr;				
			}
			
			//lookupwin.initreset();
			lookupwin.ui.table.reset();
		 	lookupwin.table.location = url;

		 	lookupwindow.style.top 	= (($(document.body).outerHeight() - lookupwindow.offsetHeight) / 2) + "px";
			lookupwindow.style.left = (($(document.body).outerWidth() - lookupwindow.offsetWidth) / 2) + "px";
			
			lookupwindow.style.visibility = "";
			
			$("iframe", lookupwindow).css("visibility", ""); // calendar.js verbergt iframe's...
					
			var lookuptitle = document.getElementById("lookuptitle");
			try
			{
				lookuptitle.innerHTML = "Snel opzoeken '" + document.getElementById("l"+item.id).innerHTML+"'"  ;
			}
			catch(e)
			{
				lookuptitle.innerHTML = "Snel opzoeken...";
			}
			
			doModal();
		}
		catch(e) {}
	}
	else
	{
		vArguments = [];
		vArguments[0] = document;
		vArguments[1] = item;
		vArguments[2] = url;
		vArguments[3] = window;
		var url2 = "/jsp/atsc/UITableLookup.jsp;jsessionid=" + jsessionid + "?mode=3&cms=true";
		
		var ah = screen.availHeight - 30;
    	var aw = screen.availWidth - 10;

		var h = 365;
		var w = 880;
		if(width != null) w = width;
		
    	var xc = (aw - w) / 2;
    	var yc = (ah - h) / 2;
				
		lwin = window.document.open(url2, "lwin" + getContextName(), "width=" + w + "px, height=" + h + "px, top=" + yc + "px, left=" + xc + "px, help=No, resizable=No, status=No, scroll=No");		
	}
}

function doModal()
{
	try
	{
		var modal = document.getElementById("modal");
		if (modal.style.visibility != "")
		{
			modal.style.visibility	= "visible";
			
			//wt.focus(); // TH: Dit werkt niet goed als je in updateAfterTabSwitch save aanroept
		}
	}
	catch (e) {}
}

function undoModal(focusitem)
{
	try
	{
		var modal = window.parent.document.getElementById("modal");
		if (modal == null) modal = document.getElementById("modal");
		modal.style.visibility = "hidden";

		if (lastitem != null && focusitem) lastitem.focus();
		return true;
	}
	catch (e) {return false;}
}

function closeLookup(ok, jsessionid)
{
	try {window.parent.specificCloseLookupBegin(target, ok);} catch (e) {}
	var ddbs = window.parent.document.getElementsByTagName("SELECT");
	for (var i = 0; i<ddbs.length; i++) ddbs[i].style.visibility = "visible";

	var lookupwindow = window.parent.document.getElementById("lookupwindow");
	if (lookupwindow == null) lookupwindow = document.getElementById("lookupwindow");
	lookupwindow.style.visibility = "hidden";

	undoModal(false);
		
	var lookupwin = null;
	var fr;
	
	for (var f = window.parent.frames.length - 1; lookupwin == null && f >= 0; f--)
	{
		fr = window.parent.frames[f];
		
		if (fr.location.href.indexOf("lookup=true") > -1) lookupwin	= fr;				
	}			
			
	var lookupdoc = lookupwin.document;
	lookupwin.zoom = false;
	lookupwin.table.location = "/jsp/atsc/blank.html";

	setStatusMessage("");
	window.parent.focusCurrentFrame();

	var item = window.parent.document.getElementById(ui.table.target);
	if (item == null) try{item = window.parent.opener.vArguments[1];} catch (e) {}

	if (ok)
	{
		if (ui.table.source == ui.table.table_name + "_unid") item.value = ui.table.getCell(0, ui.table.row).parent().attr("unid");
		else
		{
			var colt = ui.table.getColumnFromID(ui.table.source);
			if(colt == -1){ colt = 0; }
			
			var obj_cell = ui.table.getCell(colt, ui.table.row);
			
			var v = specialCharCheck(ui.table.getCell(colt, ui.table.row).html()).replace(/&nbsp;/g, " ");
			
			if (item.allowmultiplevalues == "true") 
			{
				if (item.value != "") 
				{
					item.values = item.values + "_sep_" + v
					item.value = item.value + ", " + v;
				}
				else 
				{
					item.values = v;
					item.value = v;
				}
			}
			else item.value = v;
		}
	}

	var wwp = window.parent;

	try {if (window.parent.opener.vArguments[3] != null) wwp = window.parent.opener.vArguments[3];}catch (e) {}

	wwp.lookup = false;

	if (ok)
	{
		item.oldQmapValue = "_<null>_";
		wwp.checkItem(item);
		processNext(item, wwp);
	}
	
	wwp.zoom = false;
	wwp.stopLoading();
	try {window.parent.specificCloseLookupEnd(ui.table.target, ok);} catch (e) {}	
}

function processNext(item, wwp)
{
	try
	{
		item.blur();
		item.focus();
		if(item.id != wwp.getLastInputOnTab(wwp.activeTab).id)
			wwp.focusNextElement(item, null);
	}
	catch (e)
	{
		try
		{
			var next = wwp.getNextValidElement(item);
			next.focus();
		}
		catch (e) {}
	}
}

function isLookupOpen()
{
	var isopen		 		= false;
	
	try
	{
		var lookupwindow 	= document.getElementById("lookupwindow");
		
		if (!isopen && lookupwindow != null) isopen = lookupwindow.style.visibility != "hidden";
		if (!isopen && cal != null) 		 isopen = !cal.hidden;

		var gpdwindow 		= window.frames["gpd"];

		if (gpdwindow == null && window.parent) gpdwindow = window.parent.frames["gpd"];

		if (!isopen && gpdwindow != null)	 isopen = gpdwindow.document.getElementById("gpdDialog").style.display != "none";
	}
	catch (e) {}

	return isopen;
}

function focusLookup()
{
	try
	{
		$("#iframelookup")[0].contentWindow.ui.table.focusTable();
 	}
 	catch (e) {}
}

function getStatusDocument()
{
	try
	{
		if (wt.statusdoc == null) wt.statusdoc = getFrame("wstatus").document;
		return wt.statusdoc;
	}
	catch (e) {}
}

function setStatusMessage(msg, force)
{
	try
	{
		if (isLoading() && !force) nextmsg = msg;
		else
		{
			getStatusMessageObject().innerHTML = msg.replace(/\s/g, "&nbsp;");
			
			nextmsg = "";
		}
	}
	catch(e) {}
}

function getStatusMessageObject()
{
	if (wt.statusmsgobj == null) wt.statusmsgobj = getStatusDocument().getElementById("msg");
	return wt.statusmsgobj;
}

function getStatusMessage()
{
	try {return getStatusMessageObject().innerHTML;} catch(e) {return "";}
}

function getUser()
{
	var u;
	try
	{
		u = getSpecialUser();
	}
	catch(e)
	{
		try
		{
			u = getStatusDocument().getElementById("username").innerHTML;
		}
		catch(e)
		{
			u = getServerVariable("USERNAME");
		}
	}
	
	return u;
}

function getUserUnid()
{
	var uu;
	
	try
	{
		uu = getSpecialUserUnid();	
	}
	catch (e1)
	{
		try
		{
			uu = getStatusDocument().getElementById("username").getAttribute("unid");		
		}
		catch (e2)
		{
			try
			{
				uu = getServerVariable("USERUNID");
			}
			catch (e3) {}
		}
	}

	return uu;
}

function getUserId()
{
	return getStatusDocument().getElementById("username").getAttribute("userid");
}

function getLoginName()
{
	return getStatusDocument().getElementById("username").getAttribute("login");
}

function getApplicationName()
{
	try 		{return getStatusDocument().getElementById("appname").innerHTML;}
	catch (e) 	{return getServerVariable("APPLICATIONNAME");}
}

function getContextName()
{
	try			{return getStatusDocument().getElementById("appname").getAttribute("context");}
	catch (e) 	{return getServerVariable("CONTEXTNAME");}
}

function getContextUNID()
{
	try			{return getStatusDocument().getElementById("appname").getAttribute("contextunid");}
	catch (e) 	{return getServerVariable("CONTEXTUNID");}
}

function getOrganisationName()
{
	try			{return getStatusDocument().getElementById("organisation").innerHTML;}
	catch (e) 	{return getServerVariable("ORGANISATIONNAME");}
}

function getOrganisationUNID()
{
	try			{return getStatusDocument().getElementById("organisation").getAttribute("unid");}
	catch (e) 	{return getServerVariable("ORGANISATIONUNID");}
}

function getOrganisationCode()
{
	try			{return getStatusDocument().getElementById("organisation").getAttribute("code");}
	catch (e) 	{return getServerVariable("ORGANISATIONCODE");}
}

function getWareHouseUNID()
{
	try			{return getStatusDocument().getElementById("warehouse").getAttribute("unid");}
	catch (e) 	{return getServerVariable("USERWAREHOUSEUNID");}
}

function getWareHouseCod()
{
	try			{return getStatusDocument().getElementById("warehouse").getAttribute("cod");}
	catch (e) 	{return getServerVariable("USERWAREHOUSECODE");}
}

function getWareHousesCount()
{
	try			{return getStatusDocument().getElementById("warehouse").getAttribute("count");}
	catch (e) 	{return 0;}
}

function getWareHouse()
{
	try			{return getStatusDocument().getElementById("warehouse").innerHTML;}
	catch (e) 	{return getServerVariable("USERWAREHOUSENAME");}
}

function getWareHouseOwner()
{
	try			{return getStatusDocument().getElementById("warehouse").getAttribute("owner");}
	catch (e) 	{return getServerVariable("USERWAREHOUSEOWNER");}
}

function getAdminCod()
{
	try			{return getStatusDocument().getElementById("warehouse").getAttribute("admincod");}
	catch (e) 	{return getServerVariable("ADMINCOD");}
}

function isHelpServletAvailable()
{
	try			{return getStatusDocument().getElementById("helpAvailable").innerHTML == "true";}
	catch (e) 	{return getServerVariable("ISHELPSERVLETAVAILABLE") == "true";}
}

function isCMS()
{
	try			{return getStatusDocument().getElementById("cms").innerHTML == "true";}
	catch (e) 	{return getServerVariable("ISCMS") == "true";}
}

function getSessionId()
{
	var sessionid = "";
	
	try
	{
		sessionid = getStatusDocument().getElementById("sessionid").value;
	}
	catch (e)
	{
		sessionid = Get_Cookie("JSESSIONID");
		
		if (sessionid == null || sessionid == "") 
		{	
			sessionid = window.location.href;

			var pos = sessionid.indexOf(";jsessionid=");
							
			if (pos >= 0) sessionid = sessionid.substring(pos + 12, pos + 12 + 32);
		}
	}
	
	return sessionid;
}

function getWorkstation()
{
	try
	{
		return getStatusDocument().getElementById("workstation").innerHTML;
	}
	catch (e)
	{
		return "";
	}
}

function getGlobalParameter(param,check)
{
	var item = getStatusDocument().getElementById(param);
	if(item != null) return item.value;
	else
	{
		if(check)alert("Parameter : "+param+" is niet aanwezig!");
		return "";
	}
}

function rejectRefresh(event)
{
	try
	{
		if (event.keyCode == 116) event.keyCode = 0;
	}
	catch(e) {}
	return false;
}

function rejectEveryThing(event)
{
	try {wt.focus();} catch (e) {}
	try {event.keyCode 	= 0;} catch (e) {}
	try {event.cancelBubble	= true;} catch (e) {}
	
	return false;
}

function refreshCurrentFrame(reload, event)
{
	if(IE){rejectRefresh(event.originalEvent);}

	if (reload)
	{
		setStatusMessage("");
		if (window.request)
		{
			wt.focus(); // Focus naar bekend object zetten (anders problemen met F5)
			request();
		}
		else
		{
			startLoading();
			getFrame(getCurrentFrameName()).location.reload(true);
		}
	}

	return false;
}

function focusCurrentFrame(checkLoading, iframedoc)
{
	if($.atsc.dialog.exists())
	{
		return false;
	}
	
	ifd = iframedoc;
	if (!isLoading())
	{
		var focusok = 0;

		var frame = getFrame(getCurrentFrameName());
		
		// Proberen: IFrame focus te geven.
		try
		{
			var ff = frame.frames;
			var ffl = ff.length;
			var ffk;

			if (!frame.isLookupOpen()) // Als er geen lookup open staat probeer dan iframe focus te geven.
			{
				var ct = 0;

				for (k = 0; k < ffl; k++)
				{
					ffk = ff[k];

					if (iframedoc != null)
					{							
						if (ffk.document == iframedoc)
						{
							var t = 0;
							
							var grandparent = iframedoc.frames[0].parent.parent;
							
							try {t = grandparent.activeTab;} catch (e) {} 
							
							var focusiframe = false;
							
							if (t == 0)
							{	
								try 
								{
									focusiframe = grandparent.focusiframe;
									grandparent.focusiframe = true;
								} 
								catch (e) {}
							}
							
							if (mode == MODE_READ || t != 0 || focusiframe) // Om iframe op eerste tab geen focus te geven bij openen record in wijzigen of toevoeg modus.
							{
								ffk.focus();
								focusok = 1;
							}
						}
					}
					else
					{
						var iFrame = null;
						// Even kijken of het iframe wel op een actieve tab zit anders moet body focus krijgen
						try
						{
							if (document.tabPages == null)
							{
								if (ffk.executeStartTime > ct || !IE) // BOY: !IE toegevoegd om het werkend te krijgen in FireFox
								{
									iFrame = ffk;
									ct = ffk.executeStartTime;
								}
							}
							else
							{
								var tabIframes = tabPages[activeTab].getElementsByTagName("IFRAME");

								for (var r = 0; r<tabIframes.length; r++)
								{
									if (ff[tabIframes[r].name].document.table.document.getElementById("name").value == ffk.name)
									{									
										iFrame = ff[tabIframes[r].name];										
									}
								}
							}
						}
						catch(e) {}

						if (iFrame != null)
						{
							iFrame.focus();
							focusok = 2;
						}
					}
					try {ffk.initTitle();} catch(e) {try{wt.document.title = ffk.document.title}catch(e) {}}
					try {ffk.initStatus();} catch (e) {}
				}
			}
			else // Als er een lookup open staat deze altijd focus geven.
			{
				var lookupwindow		= document.getElementById("lookupwindow");
				var linkwindow		= document.getElementById("linkwindow");

				if (lookupwindow && lookupwindow.style.visibility != "hidden") { $("#iframelookup")[0].contentWindow.ui.table.focusTable(); focusok=8; return;}
				else if (linkwindow && linkwindow.style.visibility != "hidden") {linkwindow.focus();focusok=8;return;}
				else
				{
					ff[ffl-1].focus();
					focusok = 8;
				}
			}
		}
		catch(e) {}
				
		try {frame.initTitle();} catch(e) {try{wt.document.title = frame.document.title}catch(e) {}}
		try {frame.initStatus();} catch(e) {}
		
		if (focusok != 1)
		{
			try
			{
				if (frame.currentField != null)
				{
					if (isContentEditable(frame.currentField))
					{
						// Proberen: veld waar vanaf vertokken is (m.b.v. F4) focus geven.
						frame.currentField.focus();
						focusok = 3;
					}
				}
				else
				{
					// Proberen: eerste veld focus te geven.
					try
					{
						frame.specificFocusFirstElement();
						focusok = 4;
					}
					catch(e)
					{
						try
						{
							frame.focusFirstElement();
							focusok = 5;					
						}
						catch(e){}
					}
				}
			}
			catch(e) {}
		}
		
		if (focusok == 0)
		{
			// Proberen: document body focus te geven.
			try	{if (IE) {frame.document.body.focus(); focusok = 6;}} catch(e) {}

			if (focusok == 0)
			{
				try	{frame.focus(); focusok = 7;} catch(e) {}
			}
		}
		//alert(focusok);
		
		focusCurrentFrameDone = true;
	}
	else
	{
		setTimeout("focusCurrentFrame(" + checkLoading + ", ifd)", 10);
	}
}

function getPreviousFrameName()
{
	return getFrameTags()[getCurrentFrameName()].previousFrame;
}

function showPreviousFrame(reload, newURL)
{
	if (!isLoading()) 
	{
		if (previousWindowURL != "")
		{
			window.location.replace(previousWindowURL);
			
			previousWindowURL = "";
		}
		else
		{
			try
			{
				specificShowPreviousFrame(reload);
			}
			catch (e)
			{
				if (!previousbreadcrumb())
				{
					try
					{
						var cfn = getCurrentFrameName();

						if (cfn != "w0")
						{
							wt.showFrame(null, getFrameTags()[cfn].previousFrame, reload, newURL);

							if (getFrameSet().cols.split(",")[getFrameNumber(cfn)] == 0)
							{
								wt.emptyFrame(cfn, reload);
							}
						}
						else
						{
							try {wt.gotoHomePage();} catch (e) {}
						}
					}
					catch (e) {window.close();}
				}
			}
		}
	}
}

function emptyFrame(cfn, reload)
{
	if (!isLoading())
	{
		var pf = getFrameTags();

		getFrame(cfn).location.replace(BLANKURL);		
	}
	else {setTimeout("emptyFrame('" + cfn + "', " + reload + ")", 15);}
}

function isFrameLoading(frameName)
{
	try
	{
		var framedoc = getFrame(frameName).document;

		return !(framedoc != null && framedoc.readyState == "complete");
	}
	catch (e) {return false;}
}

function showFrame(url, frameName, reload, newURL)
{
	if (!isLoading())
	{
		startLoading();
		try
		{
			var cfn = getCurrentFrameName();

			if (frameName==null) frameName = getRelativeFrameName(cfn, +1);

			wt.currentFrameName = frameName;

			if ((!isFrameLoading(frameName) /*&& cfn != frameName*/)) // Synchronizeren van showFrame
			{			
				var nextFrameName = frameName;
				var previousFrameName = cfn;
			  	var pf = getFrameTags();

			  	if (url != null)
			  	{
			  		if (pf == null) window.open(url, "_parent");
					else
					{
			  			var pfnf = pf[nextFrameName];
				  		pfnf.previousFrame = previousFrameName;
				  		getFrame(nextFrameName).location.replace(url);
					}
			  	}
			  	else
			  	{
			  		try
			  		{
				  		if (reload)
				  		{
				  			var nfr = getFrame(nextFrameName);
				  			nfr.iframesaved = true;
				  			var nfrs = nfr.frames;
				  			var nfrsl = nfrs.length
				  			
				  			if (nfrsl > 0) // IFrame(s) reloaden
				  			{
				  				for (k=0; k<nfrsl; k++)
				  				{
				  					//if this is a UITableIFrame.jsp iframe
				  					if(nfrs[k].parent && nfrs[k].parent.ui && nfrs[k].parent.ui.table)
				  					{
				  						//if this isn't lookup mode
				  						if(!nfrs[k].parent.ui.table.lookup_mode)
				  						{
				  							//force a refresh
				  							try
				  							{
				  								nfrs[k].parent.ui.table.forceRefresh(false);
				  							}
					  						catch(e){}
				  						}
				  					}
				  					else
				  					{
				  						try
				  						{
				  							nfrs[k].request(true);
				  						}
					  					catch(e){}
				  					}
				  				}
				  			}
				  			else // Heel het document reloaden
				  			{
				  				nfr.request(true);
				  			}
				  		}
				  	}
				  	catch(e) { }
			  	}

				setStatusMessage("");

				if (newURL == null) 
				{
					if (IE) updateFrameSet(nextFrameName);
					else	setTimeout("updateFrameSet('" + nextFrameName + "');", 100); // Andere browsers veranderen te laat readyState van de vorige pagina, indien je window.location.replace o.i.d. gebruikt.
				}
				else 
				{
					stopLoading();
					showFrame(newURL);
				}
		  	}
		  	else {stopLoading();}
		}
		catch(e) {}
	}
}

function updateFrameSet(frameName)
{
	if (wt.doUpdateFrameSet)
	{
		try
		{
			var iframeready = true;
			var frame = getFrame(frameName);
			var frs = frame.frames;
			var frsl = frs.length;		
			var fdoc = frame.document;

			if (fdoc.readyState == "complete")
			{
				if (frsl > 0)
				{
					var framedoc;
					for (k = 0; k < frsl; k++)
					{
						try
						{
							framedoc = frs[k].document;

							if (framedoc.readyState != "complete" && IE) iframeready = false;
							else if (framedoc.table.document.readyState != "complete" && IE) iframeready = false;
						}
						catch (e) {}
					}
				}
	
				if (iframeready)
				{
					var errormsg = fdoc.getElementById("errormsg");
					
					if (errormsg == null)
					{
						var pf = getFrameTags();
	
						if (frame.location.href.indexOf(BLANKURL) == -1 || !IE)
						{
							getFrameSet().cols = pf[frameName].getAttribute("framecols");

		  					frame.focusCurrentFrame();
			  			}
			  			
			  			stopLoading();
			  		}
			  		else
			  		{
			  			var msg = $(errormsg).html().trim();
			  			
				  		if (msg != "") alert(msg.replace(/_&lt;newline&gt;_/g, "\n"));
				  		wt.currentFrameName = getPreviousFrameName();
				  		focusCurrentFrame();

	  			        var url = IOSERVLETURL + "?action=" + GETFILESTOPRINT;
						processXMLDoc(url, "processUserFiles");
						
						stopLoading();
					}	
					
					try {frame.specificRefresh();} catch(e) {}	  						
			  	}
			 	else
			 	{
			 		if (!isLoading()) {startLoading();}
	
			 		setTimeout("updateFrameSet('" + frameName + "', null)", 10)		 		
			 	}
			}
			else
			{					
				if (!isLoading()) {startLoading();}
	
				setTimeout("updateFrameSet('" + frameName + "', null)", 10)			
			}
		}
		catch(e)
		{
			stopLoading();
		}
	}
}

function isCorrect(x)
{
	return x != "undefined" && x != null && x != "";
}

function startLoading()
{
	if (!wt.loading)
	{		
		wt.loading = true;
		wt.focus(); // Set focus to top window, to prevent key strokes on page that is loading
		setLoadingMessage("Bezig met laden", true);
	}
}

function stopLoading()
{
	if (wt.loading)
	{
		wt.loading = false;
		setStatusMessage(nextmsg);
	}
}

function setLoadingMessage(defaultmsg, showdefaultmsg)
{
	if (isLoading())
	{
		if (showdefaultmsg) setStatusMessage(defaultmsg, true);
		else
		{
			var msg = getStatusMessage();
			var ml = msg.length;
			if (ml == 0 || ml >= (defaultmsg.length + 45)) setStatusMessage(defaultmsg, true);
			setStatusMessage(getStatusMessage() + " .", true);
		}
		setTimeout("setLoadingMessage('" + defaultmsg +"', false)", 75);
	}
}

function isLoading()
{
	try 
	{
		if (wt.loading == null) wt.loading = false;

		if (wt.loading)
		{
			for (var f = 0; f < wt.frames.length; f++)
			{
				wt.frames[f].testOwnDomain = true;
			}
		}

		return wt.loading;
	} 
	catch (e) {return false;}
}

function getFrame(frameName)
{
	var result = ui.window.getFrame(frameName);
	if(!result){ return window; }
	return result;
}

function getFrameSet()
{
	return wt.document.getElementById("windows");
}

function getFrameTags()
{
	try
	{
		if (wt.frametags == null) wt.frametags = getFrameSet().getElementsByTagName("frame");
		return wt.frametags;
	}
	catch (e) {}
}

function getCurrentFrameName()
{
	if (wt.currentFrameName == null) wt.currentFrameName = "w0";
	
	return wt.currentFrameName;
}

function getRelativeFrameName(frameName, pos)
{
	return "w" + (getFrameNumber(frameName) + pos);
}

function getFrameNumber(frameName)
{
	if (!frameName || frameName == "") frameName = "w0";
	return parseInt(frameName.substring(1, frameName.length));
}

function rejectFocus()
{
	if (!isLoading()) 
	{
		if (window.parent.isRecord) 
		{
			if (window.parent.isLookupOpen()) document.frames[document.frames.length - 1].focus();						
			else getFrame(wt.currentFrameName).focus();
		}
		else getFrame(wt.currentFrameName).focus();
	}
	
	return false;
}

function download(file)
{
	try
	{			 
		wt.frames["wtemp"].location.replace(file);	
	}
	catch (e) { window.open(file); }	
}

function Get_Cookie(name) {

	if (document.cookie)
	{
	    var start = document.cookie.indexOf(name+"=");
	    var len = start+name.length+1;
	    if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
	    if (start == -1) return null;
	    var end = document.cookie.indexOf(";",len);
	    if (end == -1) end = document.cookie.length;
	    return unescape(document.cookie.substring(len,end));
	}
}

function Set_Cookie(name,value,expires,path,domain,secure) {
	secure = window.location.protocol == "https:";

	if (document.cookie)
	{
    	document.cookie = name + "=" +escape(value) +
	        ( (expires) ? ";expires=" + expires.toGMTString() : "") +
	        ( (path) ? ";path=" + path : "") +
	        ( (domain) ? ";domain=" + domain : "") +
	        ( (secure) ? ";secure" : "");	        
	}
}

function launchWindow(url, name, height, width)
{
	var str = "height=" + (height - 30);
	str += ",width=" + (width - 10);
	if (window.screen)
	{
    	var ah = screen.availHeight - 30;
    	var aw = screen.availWidth - 10;

    	var xc = (aw - (width - 10)) / 2;
    	var yc = (ah - (height - 30)) / 2;

    	str += ",left=" + xc + ",screenX=" + xc;
    	str += ",top=" + yc + ",screenY=" + yc;
    }
    return window.open(url, name, str + ", resize=no, menubar=no", true);
}
/*
function openOptionBox(title, selectOptions, defaultoption, f)
{
	var optionsHTML 	= "<select id=\"optionBoxSelect\">";
	var options 		= selectOptions.split(",");
	
	for (var i = 0; i < options.length; i++)
	{
		var option 		= options[i].split("|");
		var selected 	= "";
	
		if (defaultoption != null && defaultoption == i) selected = "SELECTED ";
		
		optionsHTML 	= optionsHTML + "<option " + selected + "id='" + option[1] + "' value=' " + option[1] + "'>" + option[0].replace("_<comma>_", ",") + "</option>";
	}
	
	optionsHTML 		= optionsHTML + "</select>";

	message(getApplicationName(), "<div>" + optionsHTML + "</div>", f, {
			"Ok": function() { 
			$(this).dialog("close");
			f($("option:selected", this).val());
		},
			"Annuleren": function() { 
			$(this).dialog("close"); 
		}
	});
}
*/

function getNowDate()
{
	var date;
	try
	{
		date = getStatusDocument().getElementById("nowdate").innerHTML;
	}
	catch (e) {date = toDutchDate(new Date());}
	
	return date;
}

function getNowYear()
{
	var date;
	try
	{
		date = getStatusDocument().getElementById("nowyear").innerHTML;
	}
	catch (e) {date = new Date().getYear();}
	
	return date;
}

function getNowMonth()
{
	var date;
	try
	{
		date = getStatusDocument().getElementById("nowmonth").innerHTML;
	}
	catch (e) {date = (new Date().getMonth()) + 1;}
	
	return date;
}

function getPreviousYear()
{
	var date;
	try
	{
		date = parseInt(getStatusDocument().getElementById("nowyear").innerHTML) - 1;
	}
	catch (e) {date = parseInt(new Date().getYear() - 1);}
	
	return date;
}

function getPreviousMonth()
{
	var date;
	try
	{
		date = parseInt(getStatusDocument().getElementById("nowmonth").innerHTML) - 1;
	}
	catch (e) {date = parseInt(new Date().getMonth() - 1);}
	
	if (date == 0) date = 12;
	
	return date;
}

function getPreviousMonthYear()
{
	if (getPreviousMonth() == 12) return getPreviousYear(); else return getNowYear();
}

function processUserFiles(xmlDoc)
{
	if (xmlDoc != null)
	{
		printFilesToPrint(xmlDoc);
		popupFilesToPopup(xmlDoc);
	}
}

function printFilesToPrint(xmlDoc)
{
	if (xmlDoc != null)
	{	
		var files	= xmlDoc.getElementsByTagName("file");

		if (files != null && files.length > 0)
		{	
			for (var i = 0; i < files.length; i++)
			{
				var f = files[i].firstChild.nodeValue;
		
				t = "_blank";
		
				if (f.indexOf(".pdf") > -1) t = "_self";

				pw = wt.frames["wtemp"].open(IOSERVLETURL + "?action=" + GETSPOOLERFILE + "&file=" + f, t);				
			}
		}
	}
}

function downloadFilesToDownload(xmlDoc)
{
	if (xmlDoc != null)
	{
		var sysfls_unids		= xmlDoc.getElementsByTagName("sysfls_unid");

		if (sysfls_unids != null && sysfls_unids.length > 0)
		{	
			for (var i = 0; i < sysfls_unids.length; i++)
			{
				var sysfls_unid	= sysfls_unids[i].firstChild.nodeValue;
				
				pw = wt.frames["wtemp"].open("/DownloadServlet;jsessionid=" + jsessionid + "?uniqueid=" + sysfls_unid, "_blank");				
			}
		}
	}
}

function popupFilesToPopup(xmlDoc)
{
	if (xmlDoc != null)
	{
		var files	= xmlDoc.getElementsByTagName("popupfile");

		if (files != null && files.length > 0)
		{	
			var popupHTML = "<div id=\"popupmsg\"><span>Klik op de betreffende knop om het bestand te downloaden</span><br />";
			
			for (var i = 0; i < files.length; i++)
			{
				var f = files[i].firstChild.nodeValue;
				
				f	= f.replace(/\\/g, "/");

				if (f.endsWith(".silent"))
				{				
					download(IOSERVLETURL + "?action=" + GETSPOOLERFILE + "&file=" + f);
					return;
				}				
				
				popupHTML = popupHTML + "<br /><button class=\"modalbutton\" id=\"downloadButton" + i + "\" onclick=\"download('" + IOSERVLETURL + "?action=" + GETSPOOLERFILE + "&file=" + f + "'); return false;\">" + f.backwardsright("/") + "</button>";
			}
			
			popupHTML = popupHTML + "</div>";
			
			var dialog = $.atsc.dialog.makeModal({
				title: getApplicationName(),
				html: popupHTML,
				autoOpen: false,
				buttons: [
					{
						text: "Sluiten",
						click: function(){
							$(this).dialog("close")
						}
					}
				],
				closable: true,
				closeOnEscape: true,
				setFocus: function(){
					$(".modalbutton :first", this).focus();
				}
			});
			
			$(".modalbutton", dialog).button();
			dialog.dialog("open");
		}
	}
}

function endPopupFilesToPopup(v, m)
{
	return true;
}

function previousbreadcrumb()
{
	var pbc = document.getElementById("previousbreadcrumb");

	if (pbc != null) 
	{
		window.location.replace(pbc.href);
		
		return true;
	}
	else 
	{
		try 
		{
			specificpreviousbreadcrumb();
			
			return true;
		}
		catch (e) {return false;}
	}
}

function openEclipse(uri)
{
	try	{wt.frames["wtemp"].location.replace("atsc://" + uri);} catch (e) {}	
}

function getServerVariable(variable)
{
	var v = "";
	
	$.ajax({
		   type: "GET",
		   url: "/IOServlet",
		   cache: false,
		   async: false,
		   data: "action=" + SERVERVARIABLES + "&name=" + name,
		   dataType: "xml",
		   success: function(xmlDoc){
		     v = $(variable, xmlDoc).text();
		   }
		 });
	
	return v;
}

var editMode = false;
var helpDialogId = null;
function helpFrameLoad(doc)
{
	$(doc).keydown(function(e){
		$("#dialog_" + helpDialogId).trigger(e);
	});
}

function helpEventCallback(e, from_doc)
{
	if(e.type == "keydown")
	{
		$("#dialog_" + helpDialogId).trigger(e);
	}
	
	return true;
}

function openHelp(type, item_name, item, edit)
{
	try{
	if(isHelpServletAvailable())
	{
		if(helpidname != "-1")
		{
			name = helpidname;
		}
		
		var url = "/HelpServlet?action=0&type=" + type;
		if(item_name != null && item_name != "")
		{
			url += "&name=" + item_name;
		}
		
		if(item != null && item != "")
		{
			url += "&field=" + item.id;
		}
		
		if(edit)
		{
			url += "&edit=true";
		}
		
		var elem;
		//if(helpDialogId != null)
		//{
		//	elem = $("#dialog_" + helpDialogId);
		//}
		
		if(!elem)
		{
			elem = $.atsc.dialog.makeModal({
				title: getApplicationName() + " :: Help",
				buttons: [],
				width: 980,
				height: 540,
				closeOnEscape: true,
				closable: true,
				selectable: true,
				autoOpen: false,
				destroyOnClose: false
			});
			
			helpDialogId = elem.attr("id").substring(7);
		}
		
		elem.css("overflow", "hidden");
		elem.html("<iframe src=\"" + url + "\" frameborder=\"0\" allowtransparency=\"true\" style=\"width: 960px; height: 490px;\"></iframe>");
		elem.dialog("open");
		
		//alert("focus to " + $("iframe", elem)[0].document.body);
		//$("iframe", elem)[0].document.body.focus();
		//$("iframe", elem)[0].contentWindow.focus();
		
		if(edit)
		{
			
		}
		
		//If this is IE, make sure the regular F1 key is blocked
		if(IE){ document.onhelp = function(){ return false; } }
		
		elem.keydown(function(e){
			if(e.which == 112)
			{
				e.preventDefault();
				return false;
			}
			
			return true;
		});
	}
	}catch(e){ alert(e.message); }
}
