/* js functions used to start webfrontend sessions inside navigator, each frame in
	the frameset of navigator includes this library */

var winprops = "z-lock,width=1,height=1,left=12000,top=8000,dependent";
//var winprops = "menubar,z-lock,width=200,height=200,left=0,top=0,dependent";
//var winprops = "menubar,width=200,height=200,left=0,top=0";


//V+ 4.7.0010 of 12/10/2004
//RU,PL,NL,EN
msgs = new Array();
msgs[1] = new Array();
msgs[1][1]= "Uw voorkeuren zijn opgeslagen!\nEen herstart is nodig om ze te activeren!";
msgs[1][2]= "Your preferences have been saved!\nA restart is required to activate them!";

msgs[2] = new Array();
msgs[2][1]= "Er is al een open sessie voor deze link!\n\n"+
			"Klik 'Ok' als U deze open sessie wilt gebruiken.\n"+
			"Klik 'Annuleren' als U een nieuwe sessie wilt starten.";

msgs[2][2]= "There is an open session for this command/query!\n\n"+
			"Hit 'Ok' if you want to use that open session.\n"+
			"Hit 'Cancel' if you want to create a new session.";

msgs[3] = new Array();
msgs[3][1]= "Even wachten a.u.b. tot alle Navigator frames zijn geladen!";
msgs[3][2]= "Please wait for all Navigator frames to finish loading before starting a Webfrontend session!";

msgs[5] = new Array();
msgs[5][1]= "\nMogelijke redenen:\n"+
			"1. De Java Virtuele Machine was voor het eerst geinstalleerd of een andere was geinstalleerd.\n\n"+
			"2. Verkeerde of verkeerd geinstalleerde Java Virtuele Machine.\n\n"+
			"   Dit zijn de Browser-Java VM combinaties die door Webfrontend ondersteund worden:\n"+
			"   - IE 5.x of later met MS Java VM versie 5.0 release 5.0.0.35xx of later (Windows).\n"+
			"   - IE 5.x of later met Sun Java Plug-in('Hotspot') versie 1.4.x of later (Windows). \n"+
			"   - Mozilla 1.x of later met Sun Java Plug-in('Hotspot') versie 1.4.x of later (Windows en Linux).\n"+
			"   - Netscape 4.x met Netscape Java VM (Windows en Linux).\n"+
			"   - Netscape 6/7 with Sun Java Plug-in('Hotspot') versie 1.4.x of later (Windows en Linux).\n\n"+
			"3. Lokale firewalls en/of andere beveiligings filters kunnen het downloaden van (java) applets tegenhouden.\n\n"+
			"Als deze informatie niet helpt, neem dan contact op met Uw systeembeheerder.\n\n";
msgs[5][2]= "\nPossible reasons could be:\n"+
			"1. The Java Virtual Machine was installed for the first time or a different one was installed.\n\n"+
			"2. Incorrect or not installed Java Virtual Machine.\n\n"+
			"   These are the Browser-Java VM combinations supported by Webfrontend:\n"+
			"   - IE 5.x or later with MS Java VM version 5.0 release 5.0.0.35xx or later (Windows).\n"+
			"   - IE 5.x or later with Sun Java Plug-in('Hotspot') version 1.4.x or later (Windows). \n"+
			"   - Mozilla 1.x or later with Sun Java Plug-in('Hotspot') version 1.4.x or later (Windows and Linux).\n"+
			"   - Netscape 4.x with Netscape Java VM (Windows and Linux).\n"+
			"   - Netscape 6/7 with Sun Java Plug-in('Hotspot') version 1.4.x or later (Windows and Linux).\n\n"+
			"3. Local firewalls or security filters may prohibit the download of (java) applets.\n\n"+
			"If this information did not help, contact your Systems Administrator.\n\n";
msgs[6] = new Array();
msgs[6][1]= "U zult gevraagd worden welke Java Virtuele Machine(VM) U momenteel gebruikt.\n"+
			"Als U deze vragen niet begrijpt, neem dan contact op met Uw systeembeheerder."+
			"\n\nKlik 'Ok' als U de Microsoft VM gebruikt,\n"+
			"klik 'Annuleren' om door te gaan met de volgende vraag.";
msgs[6][2]= "We will ask you to indicate which Java Virtual(VM) machine you are "+
			"currently using.\nIf you do not understand these questions, please contact your"+
			" Systems Administrator.\n\nPress 'Ok' to indicate that you are using the Microsoft VM,\n"+
			"press 'Cancel' to continue to the next question.";
msgs[7] = new Array();
msgs[7][1]= "Aangeven welke Java VM! Vervolg...\n\n"+
			"Klik 'Ok' als U de Sun VM(Hotspot) gebruikt,\n"+
			"klik 'Annuleren' om ";
msgs[7][2]= "Indicate the Java VM! Continued...\n\n"+
			"Press 'Ok' if you are using the Sun VM(Hotspot),\n"+
			"press 'Cancel' to ";
msgs[8] = new Array();
msgs[8][1]= "te stoppen.";
msgs[8][2]= "quit.";
msgs[9] = new Array();
msgs[9][1]= "door te gaan met de volgende vraag.";
msgs[9][2]= "continue to the next question.";
msgs[10] = new Array();
msgs[10][1]= "Aangeven welke Java VM! Vervolg...\n\n"+
			"Klik 'Ok' als U de Netscape VM gebruikt,\n"+
			"klik 'Annuleren' om te stoppen";
msgs[10][2]= "Indicate the Java VM! Continued...\n\n"+
			"Press 'Ok' if you are using the Netscape VM,\n"+
			"press 'Cancel' to quit.";
msgs[11] = new Array();
msgs[11][1]= "\n\nFout boodschap: ";
msgs[11][2]= "\n\nError message: ";
msgs[12] = new Array();
msgs[12][1]= "\n\nBij een langzame verbinding zal U, nadat U Navigator heeft gestart,"+
			"wellicht enkele seconden moeten wachten alvorens op een link naar Webfrontend(Wfe) te klikken.\n"+
			"Als dit probleem blijft, dan kan de Webfrontend(Wfe) Java Applet waarschijnlijk "+
			"niet geladen worden.\n";
msgs[12][2]= "\n\nOn slow network connections, after you started Chainware Navigator,"+
			" you may need to wait a few seconds\n"+
			"before clicking on a Webfrontend(Wfe) link.\n\n"+
			"If this problem persists, it is likely that the Webfrontend Java applet could "+
			"not be loaded.\n";
msgs[13] = new Array();
msgs[13][1]= "\nKlik 'Ok' voor meer.\n";
			//"Klik 'Annuleren' om eruit te gaan.\n";
msgs[13][2]= "\nPress 'Ok' for more.\n";
			//"Press 'Cancel' to continue.\n";
msgs[14] = new Array();
msgs[14][1]= "Webfrontend is (nog) niet klaar, probeer het later!";
msgs[14][2]= "Webfrontend not (yet) ready, try again later!";
msgs[15] = new Array();
msgs[15][1]= "\nKlik 'Ok' om automatische Java VM detectie te starten.\n"+
			"(ActiveX-besturingselementen moeten hiervoor worden toegestaan!).\n\n"+
			"Klik 'Annuleren' om zelf aan te geven welke Java VM U gebruikt.\n";
//msgs[15][1]= "\nKlik 'Ok' om aan te geven welke Java VM U zal gaan gebruiken.\n";
			//"klik 'Annuleren' om te stoppen";
msgs[15][2]= "\nPress Ok to start for automatic Java VM detection.\n"+
			"(For this ActiveX-controls must be allowed!).\n\n"+
			"Press 'Cancel' to indicate yourself which Java VM you will be using.\n";
//msgs[15][2]= "\nPress Ok to indicate which Java VM you will be using.\n";
			//"press 'Cancel' to quit.";
msgs[16] = new Array();
msgs[16][1]= "Geef op welke Java VM u gebruikt!\n\n";
msgs[16][2]= "Indicate which Java VM you are using!\n\n";
msgs[17] = new Array();
msgs[17][1]= "De Navigator herstarten a.u.b.!"
msgs[17][2]= "Please restart the Chainware Navigator!";
msgs[18] = new Array();
msgs[18][1]= "Uw voorkeuren opslaan"
msgs[18][2]= "Save your session settings";
msgs[19] = new Array();
msgs[19][1]= "Uw voorkeuren verwijderen"
msgs[19][2]= "Remove your session settings";
msgs[20] = new Array();
msgs[20][2]= "Help Java VM";
msgs[21] = new Array();
msgs[21][1]= "Uw instellingen zijn verwijderd!";
msgs[21][2]= "Your settings have been removed!";
msgs[22] = new Array();
msgs[22][1]= "Cookies verwijderd!";
msgs[22][2]= "Cookies removed!";
msgs[23] = new Array();
msgs[23][1]= "Webfrontend nog niet klaar!";
msgs[23][2]= "Webfrontend not ready!";
msgs[24] = new Array();
msgs[24][1]= "Uw Webfrontend instellingen verwijderen!\nWeet U dat zeker?";
msgs[24][2]= "Remove your Webfrontend settings!\nAre you sure?";
msgs[25] = new Array();
msgs[25][1]= "Navigator constateerde een fout tijdens het laden van de Webfrontend(Wfe) applet!\n\n";
msgs[25][2]= "Navigator detected an error loading the Webfrontend(wfe) applet!\n\n";
msgs[26] = new Array();
msgs[26][1]= "Webfrontend is (nog) niet geladen, even wachten en probeer het dan opnieuw!";
msgs[26][2]= "Webfrontend is not loaded (yet), please wait a few seconds and retry!";
msgs[27] = new Array();
msgs[27][1]= "Als U van Java VM gewisseld heeft, wilt U dan ook Uw persoonlijke voorkeuren verwijderen?";
msgs[27][2]= "If you have switched Java VM, do you want to remove your personal settings as well?";
msgs[28] = new Array();
msgs[28][1]= "Zal Webfrontend herstarten om Java VM te bepalen!\n"+
		"Klik 'Ok' voor Ja,\n"+
		"Klik 'Annuleren' om de default te herstellen.";
msgs[28][2]= "Will restart Webfrontend to determine Java VM!\n"+
		"Press 'Ok' to proceed,\n"+
		"Press 'Cancel' to reset to the default.";
msgs[29] = new Array();
msgs[29][1]= "Wilt U worden geholpen met het vaststellen van Uw huidige Java VM?\n"+
		"Klik 'Ok' voor Ja,\n"+
		"Klik 'Annuleren' voor Nee.";
msgs[29][2]= "Do you want to be assisted in determining your current Java VM?\n"+
		"Press 'Ok' to accept,\n"+
		"Press 'Cancel' to decline.";
msgs[30] = new Array();
msgs[30][1]= "Al Uw Webfrontend sessies zullen afgebroken worden!";
msgs[30][2]= "All your Webfrontend sessions will be closed!";
msgs[31] = new Array();
msgs[31][1]= "Kan Uw voorkeuren niet benaderen!";
msgs[31][2]= "Not able to access your settings!";
msgs[32] = new Array();
msgs[32][1]= "------ Webfrontend Opstart Log Informatie-------------\n";
msgs[32][2]= "------ Webfrontend Startup Log Information------------\n";
msgs[33] = new Array();
msgs[33][1]= "Geen Webfrontend Opstart Log Informatie";
msgs[33][2]= "No Webfrontend Startup Log Information";

var cookiePBId = "_wfe5_pb";
function wfe(parms,role,title,jvm)
{
	if (eval("jvm") == null || jvm == null)
		jvm = "";
	 if (jvm != "")
		jvm = "&jvm="+ic_escape(jvm);
	if (eval("title") == null || title == null)
		title = "";
	if (!checkWfeFree())
		return;
	// alert("WFE:"+parms);
	var fw = myfindframe("wfe");
	//var fw = findFrame(top.window,"wfe");
	var proxy = false;
	if( fw ){
		//wfe frame is found and is a navi wfe frame
		// if it is dormant, start the new session
		//V+ 4.7.0012 of 13/10/2004
		if (fw.isStartDormant())
		{
			if (fw.getSesPoll()==0){   //V 4.11.0001 of 11/08/2005
				if (!wfeStart())
					return;
				if (useExistingWfeSession(fw,parms))
					return;
				var r,s;
				s = "r = fw.document.applets.wfe.wfex.jsapi.newSesWfeS(parms,role,title);";
				if (!document.layers)
						s = "try{"+s+"} catch(exc){r = 0;}";
				eval(s);
				if (r == -3){
					alert(getMsg(14));
				}
			}else{
				//V+ 4.11.0001 of 11/08/2005
				if (useExistingWfeSession(fw,parms))
					return;
				url = "ecwwfed.php?"+
					"title="+ic_escape(title)+
					jvm+
					"&role="+ic_escape(role)+
					"&checkcmd=noses"+
					"&cmd="+ic_escape(parms);

				 if (document.layers){
					f = findFrame(top.window,"wfed");
					if( f ) {
						f.location.replace(url);
					}else{
	   					top.ecwwfed = window.open(url
							,"wfed"
							,"z-lock,width=1,height=1,left=1200,top=800,dependent"
							);
					}
				}else{
					f = findFrame(top.window,"wfed");
                    if( f ) {
                    	f.location.replace(url);
                    }else{
						f = window.open(url,"wfed",winprops);
					}
				}
				//V- 4.11.0001 of 11/08/2005
			}
			return;
		}else
			proxy = fw.getProxy();
	}
	//no wfe frame found or wfe frame found was an 'empty' one
	//
	url = "ecwwfe.php?"+
		"title="+ic_escape(title)+
		jvm+
		"&role="+ic_escape(role)+
		"&checkcmd=na"+
		"&cmd="+ic_escape(parms)+
		(proxy?"&proxy="+ic_escape(proxy):"");
	//TODO _blank
	nw = window.open(url,"_blank",winprops);
	//V- 4.7.0012 of 13/10/2004
}

function wfed(parms,role,title,jvm)
{
//var props = "z-lock,width=1,height=1,left=12000,top=8000,dependent";
	var props = "z-lock,width=113,height=100,left="+(screen.width-113)+",top=0,dependent";
	if (eval("jvm") == null || jvm == null)
		jvm = "";
	if (jvm != "")
		jvm = "&jvm="+ic_escape(jvm);
	if (eval("title") == null || title == null)
		title = "";
	if (!checkWfeFree())
		return;
	//	var fw = findFrame(top.window,"wfe");

	var fw = myfindframe("wfe");
	//V+ 4.7.0012 of 13/10/2004
	var f = false;
	var proxy = false;
	var dormant = false;
	url = "ecwwfed.php?"+
		"title="+ic_escape(title)+
		jvm+
		"&role="+ic_escape(role)+
		"&cmd="+ic_escape(parms);
//in netscape 8: als voor firefox rendering gekozen is, dan wordt de
//wfe frame niet gevonden!
//alert(navigator.userAgent);
	if( fw ){
		dormant = fw.isStartDormant();
		if( dormant )
		{
			if (fw.getSesPoll()==0)
			{     //V 4.11.0001 of 11/08/2005
				if (!wfeStart())
					return;
		   		url += "&checkcmd=na";
			}else{
		   		url += "&checkcmd=nases";    //V 4.11.0001 of 11/08/2005
			}
			if (useExistingWfeSession(fw,parms)){
		   		return;
			}
			//V+ 4.8.0001 of 15/11/2004
			if (document.layers)
			{
				f = findFrame(top.window,"wfed");
				if( f ) {
					f.location.replace(url);
				}else{
					url += "&checkcmd=yes";
	   				top.ecwwfed = window.open(url
						,"wfed"
						,"z-lock,width=1,height=1,left=1200,top=800,dependent"
						);
				}
			}else{
			//V- 4.8.0001 of 15/11/2004
			//V 4.8.0002a DLE 16/12/2004
				f = findFrame(top.window,"wfed");
                                if( f ) {
                                        f.location.replace(url);
                                }else{
					f = window.open(url,"wfed",winprops);
				}
			}
			return;

		}else{
			proxy = fw.getProxy();
		}
	}else{
		//alert("wfe NOT fnd");
	}

	//TODO _blank maakt new win zelfs als navi ook al gestart is
	//url += "&checkcmd="+((dormant)?"yes":"no");
	url += "&checkcmd=no"+(proxy?"&proxy="+ic_escape(proxy):"");
	nw = window.open(url,"_blank",winprops);
//V 4.8.0002a DLE 16/12/2004
	//V- 4.7.0012 of 13/10/2004


}
var cookieJvm = "_ewfe5_jvm";
var cookieTvm = "_ewfe5_tvm";
var gexpcookie = 30;

function wfeStart()
{
	//var fwfe = null;
	//fwfe = findFrame(top.window,"wfe");
	fwfe = myfindframe("wfe");
  	if( fwfe )  {
		if (!fwfe.isStartDormant())
			return false;
		if (eval("fwfe.wfeReady") == null || fwfe.wfeReady == null) {
			fwfe.wfeReady = false;
		}
		if (!fwfe.wfeReady){
			r = null;
			pro = null;
			msg = "";
			elaps = 0;
			test = "";
			s = "test = fwfe.document.applets.wfe.getAppletInfo()";
			if (!document.layers)
				s = "try{"+s+"} catch(exc){test = ''; msg = exc;}";
			eval(s);
			if (test!="")
			{
				s = "elaps = fwfe.ReadCookie(\""+cookiePBId+"\")";
				if (!document.layers)
					s = "try{"+s+"} catch(exc){elaps = 0; progress = null;}";
				eval(s);
				if (elaps > 0)
					elaps = ","+elaps + ",\"no\"";
				else
					elaps = "";
				s = "pro = fwfe.showProgressBar(\"wfe/progressbar\""+elaps+");";
				if (!document.layers)
					s = "try{"+s+"} catch(exc){pro = null; progress = null;}";

				eval(s);

			   //	s = "fwfe.setProgress(pro);";
			   //	if (!document.layers)
			   //		s = "try{"+s+"} catch(exc){progress = null;}";
			   //	eval(s);

				skip = 0;
				s = "skip = fwfe.document.applets.wfe.loadWfexAtStart()";
				if (!document.layers)
					s = "try{"+s+"} catch(exc){skip = 0; msg = exc;}";
				eval(s);
				if (skip == 0){
					s = "r = fwfe.document.applets.wfe.wfeStart()";
					if (!document.layers)
						s = "try{"+s+"} catch(exc){r = -1; msg = exc;}";

					eval(s);
				}else{
					if (skip != 1)
						r = 1;
					else
						r = 0;
				}

				s = "fwfe.stopProgressBar(pro)";
				if (!document.layers)
					s = "try{"+s+"} catch(exc){msg = exc;}";

				eval(s);
			}else{
				r = 1;
			}
		   	//r = 1; msg = "?";
			if (r == 0){
				fwfe.wfeReady = true;
				return true;
			}else{
				fwfe.wfeReady = false;
				m = "";
				if (msg != ""){
					m = getMsg(11)+msg;
				}
				m = getMsg(12);
				m1 = getMsg(13);
				m0 = getMsg(14);
				ans = confirm(m0+m+m1);
				if (ans){
					s = getMsg(5);
					if (navigator.userAgent.indexOf('MSIE')<0){
						alert(m0+m+s);
					}else{
						m2 = getMsg(15);
						ans = confirm(m0+s+m2);
						if (ans){
							fwfe.deleteJVMCookie();
							fwfe.restart(null);
							return false;
						}else{
							jvm = askVM(getMsg(16),false);
							if (jvm == ""){
								return false;
							}
						}
												//writecookie
						createCookie(cookieJvm, jvm, gexpcookie);
						alert(getMsg(17));

					}
				}
			}
		}else{
			return true;
		}
	}
	return false;
}
function useExistingWfeSession(f,cmd){
	if (eval("cmd") == null || cmd == null)
		return true;
	//true=do not make new session
	//false=continue starting a new session
	var s,r,v;

	s = "r = f.document.applets.wfe.wfex.jsapi.wfeGetOpenCmd(cmd);";
	if (!document.layers)
		s = "try{"+s+"} catch(exc){ r = null;}";
	eval(s);
	if (r == null){
		return false;
	}
	if (r > 0){
		s = "v = f.document.applets.wfe.wfex.jsapi.getAParm(\"same_cmd_action\");";
		if (!document.layers)
			s = "try{"+s+"} catch(exc){v = \"PROMPT\";}";
		eval(s);

		if (v == "PROMPT" || v == "SAME_SESSION"){
			if (v == "PROMPT"){
				m4 = getMsg(2);
				if (!confirm(m4))
					return false;
			}
			s = "f.document.applets.wfe.wfex.jsapi.wfeToFront(r);";
			if (!document.layers)
				s = "try{"+s+"} catch(exc){ }";
			eval(s);

			return true;
		}
	}
	return false;
}
/*
function jvmErrMsg()
{
	return getMsg(5);
}
*/
function createCookie(name, value, expiredays) {
  var todayDate = new Date();
  todayDate.setDate(todayDate.getDate() + expiredays);
  var ck = name +
                    "=" +
                    value +
                    "; expires=" +
                    todayDate.toGMTString() +
                    ";"
       //	alert(name+"="+ck);
	document.cookie = ck;
}
function askVM(msg,nons)
{

	ans = confirm(msg+getMsg(6));
	if (!ans){
		ans = confirm(getMsg(7)+((nons)?getMsg(8):getMsg(9)));
		if (!ans){
			if (nons){
				jvm = "";
			}else{
				ans = confirm(getMsg(10));
				if (!ans)
					jvm = "";
				else
					jvm = "netscape";
			}
		}else
			jvm = "sun";
	}else
		jvm = "microsoft";
	return jvm;
}
function logMessage(fw,msg)
{
	return;
	var s;
	s = "r = fw.document.applets.wfe.logMessage(msg);";
	if (!document.layers)
			s = "try{"+s+"} catch(exc){}";
	eval(s);
}
function checkWfeFree()
{
	var fmain = findFrame(top.window,"main");
	if( fmain )  {
   		if (!fmain.iswfefree())
		{
			alert(getMsg(3));
			return false;
		}
	}
	return true;
}
//V 4.7.0014 of 14/10/2004
function checkWfe()
{
	var wfe = findFrame(top.window,"wfe");
	if( wfe )  {
		return checkWfeSessions();
	}else
		return "";

}
//V+ 4.7.0010 of 12/10/2004
function getMsg(nr)
{

	if (!navigator.userLanguage) {
		lang = navigator.language.toUpperCase();
	}else{
		lang = navigator.userLanguage.toUpperCase();
	}
	//RU,PL,NL,EN
	if (lang.indexOf("NL") >= 0)
		ln = 1;
	else if (lang.indexOf("EN") >= 0)
		ln = 2;
	else if (lang.indexOf("FR") >= 0)
		ln = 3;
	else if (lang.indexOf("DE") >= 0)
		ln = 4;
	else if (lang.indexOf("PL") >= 0)
		ln = 7;
	else
		ln = 2;
	if (msgs[nr]){
		if (msgs[nr][ln])
			return msgs[nr][ln];
		else if (msgs[nr][2])
			return msgs[nr][2];
		else
			return "Unknown message: "+nr;
	}else
		return "Unknown message: "+nr;
}
function myfindframe(name)
{
	//V+ 4.8.0001 of 15/11/2004
	if (document.layers){
		return findFrame(top.window,name);
	}else{
	//V- 4.8.0001 of 15/11/2004
		var fw = window.open('',name,winprops);
  		if (fw){
			var msg = "";
			var test = "";
			s = "test = fw.isStartDormant()";
			if (!document.layers)
				s = "try{"+s+"} catch(exc){test = ''; msg = exc;}";
			eval(s);
			//alert("isStartDormant: "+test+msg);
			if (test == ""){
				fw.close();
				fw = false;
			}
		}
		return fw;
	}
}


