Keytab runtime reload

I have written a test server which acts as a Kerberos service that uses GSSAPI to authenticate users connect to the service. Here is my gss.conf:
com.sun.security.jgss.accept {
com.sun.security.auth.module.Krb5LoginModule
required
isInitiator=false
storeKey=true
keyTab="/home/danny/temp/GSSKerberosServer/kserver.keytab"
doNotPrompt=true
useKeyTab=true
principal="kserver/danny.com"
debug=true;
Everything works fine. But then I tried making the server runtimer reload the keytab by manually (physically) overwritten the keytab file but noticed that the new file doesn't get read (it still reads the old one) when a new GSSCredential is created. Does anyone know how to do runtime reload of the keytab? Here is the code of my test server:
package GSSKerberosServer;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import org.ietf.jgss.GSSContext;
import org.ietf.jgss.GSSCredential;
import org.ietf.jgss.GSSException;
import org.ietf.jgss.GSSManager;
import org.ietf.jgss.GSSName;
import org.ietf.jgss.Oid;
public class GSSKerberosServer {
* @param args
public static void main(String[] args) throws IOException, GSSException,
InterruptedException{
// Obtain the command-line arguments and parse the port number
if (args.length != 2) {
System.err.println("Usage: java <options> Login SampleServer <localPort> <SPN_name>");
System.exit(-1);
int localPort = Integer.parseInt(args[0]);
String spnName = args[1];
ServerSocket ss = new ServerSocket(localPort);
GSSManager manager = GSSManager.getInstance();
Oid krb5Oid = new Oid("1.2.840.113554.1.2.2");
GSSName spnGSSName = manager.createName("kserver/danny.com", null);
System.out.println("b4 createCredential1");
GSSCredential gssCred = manager.createCredential(spnGSSName,
GSSCredential.INDEFINITE_LIFETIME, krb5Oid,
GSSCredential.ACCEPT_ONLY);
System.out.println("after createCredential1");
System.out.println("Press a key to load credential again!!");
System.in.read();
GSSCredential gssCred2 = manager.createCredential(spnGSSName,
GSSCredential.INDEFINITE_LIFETIME, krb5Oid,
GSSCredential.ACCEPT_ONLY);
System.out.println("Done reloading");
int num = 0;
while (true) {
num++;
System.out.println("Waiting for incoming connection...");
Socket socket = ss.accept();
DataInputStream inStream =
new DataInputStream(socket.getInputStream());
DataOutputStream outStream =
new DataOutputStream(socket.getOutputStream());
System.out.println("Got connection from client "
+ socket.getInetAddress());
* Create a GSSContext to receive the incoming request
* from the client. Use null for the server credentials
* passed in. This tells the underlying mechanism
* to use whatever credentials it has available that
* can be used to accept this connection.
System.out.println("b4 createContext");
GSSContext context = null;
if (num % 2 == 0) {
context = manager.createContext(gssCred);
else {
context = manager.createContext(gssCred2);
// GSSContext context = manager.createContext(gssCred2);
System.out.println("after createContext");
// GSSContext context = manager.createContext((GSSCredential) null);
// Do the context eastablishment loop
byte[] token = null;
while (!context.isEstablished()) {
token = new byte[inStream.readInt()];
System.out.println("Will read input token of size "
+ token.length
+ " for processing by acceptSecContext");
inStream.readFully(token);
token = context.acceptSecContext(token, 0, token.length);
// Send a token to the peer if one was generated by
// acceptSecContext
if (token != null) {
System.out.println("Will send token of size "
+ token.length
+ " from acceptSecContext.");
outStream.writeInt(token.length);
outStream.write(token);
outStream.flush();
System.out.print("Context Established! ");
System.out.println("Client is " + context.getSrcName());
System.out.println("Server is " + context.getTargName());
* If mutual authentication did not take place, then
* only the client was authenticated to the
* server. Otherwise, both client and server were
* authenticated to each other.
if (context.getMutualAuthState())
System.out.println("Mutual authentication took place!");
token = new byte[inStream.readInt()];
inStream.readFully(token);
String readString = new String (token, "US-ASCII");
System.out.println("1 read =" + readString);
String reply = "Server got =" + readString;
byte[] replyByte = reply.getBytes("US-ASCII");
outStream.writeInt(replyByte.length);
outStream.write(replyByte);
outStream.flush();
System.out.println("Closing connection with client "
+ socket.getInetAddress());
context.dispose();
socket.close();
}

This question has been answered on another forum. The solution is to set refreshKrb5Config=true.

Similar Messages

  • SOA mediator cache xsl

    Hi folks !
    How I can at runtime reload xslt at mediator. Now I use file:c:/test/test.xsl. SOA cache my xsl . Cache updated only when I create redeploy composite.

    Dynamic XSLT loading is not yet supported in 11g. You may consider writing a custom XPATH function for the same and use that XPath function for transformation. Please refer -
    https://blogs.oracle.com/reynolds/entry/building_your_own_path
    Regards,
    Anuj

  • My Itunes quit functioning so I removed it and when I tried to reload i keep getting a runtime error. Program: C:\ProgramFiles(x86)\itunes\itunes.exe. R6034. Any suggestions?

    My Itunes quit functioning so I removed it and when I tried to reload i keep getting a runtime error. Program: C:\ProgramFiles(x86)\itunes\itunes.exe. R6034. Any suggestions?

    You will have to follow the instructions of tt2 in https://discussions.apple.com/thread/5822086 to correct.

  • Forcing JVM to unload bytecode at runtime, to allow reloading of new class?

    Hi all,
    I would like to know a few things about classes once they are loaded. I believe a loaded class is nothing more than an Object in terms of its lifecycle, correct? If so, then to make a class "unload", you simply have to make sure there are no references to the class correct? So, what are the rules for making sure nothing references a class instance?
    Below I'll list a couple of examples. In Example 1 below, I have class A, B and C. Class A creates a instance variable to class B. In the constructor of class A, it creates a temporary class C, passing to it a reference of itself, which C stores in a local variable. Now, in class C, since it is only created in a Constructor (or method) in class A, it goes out of scope at the end of the method/constructor, and thus its reference to class A is no longer any good, correct? Therefore, at this point, there are no references to class A and thus setting A = null (assuming a "central" class loads class A, B and C like a plugin engine would do) should properly dispose of class A. I know, the GC does NOT necessarily remove the class A bytecode from memory right away. So I guess a question here is in need. When does the class A bytecode actually get removed from the JVM memory, in such a way that a "new" call to create it would effectively tell the JVM to have to open the .class file, read its byte code and create a new instance of it in memory? The purpose of these questions is to figure out how, at runtime to reload a class AND get the actual new version of the code. The reason is, if you do everything possible to unload a class, but the JVM doesn't discard the bytecodes of the class before you tell it to load the same class, it will use the "old" bytecode it has in memory, rather than load the bytecode off the HD or URL location and discard the old bytecode. I need a way to get the JVM to discard the bytecode to reload a newer version of a class. But the reason for the examples below is to also help me understand how a class is actually permitted to be unloaded by the JVM. This is also so that the JVM is not wasting memory with multiple versions of the same class, if it even does that. I want to definitely reclaim any memory used by the older version of the class, before loading a newer version.
    So, in example 2 below, the situation changes slightly. A is now keeping a reference to the class C it creates in the constructor. Because C also creates a reference back to A since the A instance is passed in to C's constructor, A can now not be freed and made available for unloading until the reference to A in C is set to null, is this correct? I seem to lack basic understanding of how the whole reference counting thing works for objects and when a JVM can actually unload the bytecode of an object, thus freeing up memory. I suppose a good book on the JVM would clear this up, but I am hoping one of you reading this will know and can help me understand this process. So in this example, am I correct in that the C reference to A must be set to null, then the A instance must be set to null to tell the JVM there is no more use for the A class? I do realize that if other classes also use A, that the bytecode for A would be kept in memory. Let's assume this is the only use of A, B and C (and looking at the examples, B serves no real purpose anyway, but I already wrote it down so I'll leave it).
    So once again, my goal here is to understand the lifecycle of an object, specifically a Class object (they are one and the same, correct, in terms of lifecycle?), and when the JVM actually removes the bytecode from memory so that if a new version of the same class is now available at runtime, the JVM loads the new bytecode into memory.
    Thanks very much for taking the time to read this and reply.
    Example 1:
    class A
    B b = new B();
    public A()
    C c = new C(this);
    class B
    public B()
    class C
    A a = null;
    public C(A a)
    this.a = a;
    Example 2:
    class A
    B b = new B();
    C c = null;
    public A()
    c = new C(this);
    class B
    public B()
    class C
    A a = null;
    public C(A a)
    this.a = a;
    }

    Cross post (numerous times.)
    http://forum.java.sun.com/thread.jsp?thread=292465&forum=37&message=1152136

  • Reloading the same jar at runtime

    Hi Friends,
    I have loaded the jar at runtime using the urlclassloader, but now I want to reload the same jar of different version again.
    Is it possible, if yes ..Could you please explain.
    Thanks in advance,
    Kk

    If your application permits, you can do this:
    1. Create an URLClassLoader with an URL referencing the original version of the JAR;
    2. Create an instance of a class, most probably a Runnable, keeping a reference to it;
    3. Use the object created in 2.
    And when you want to reload the JAR, you set the reference to null, perform any cleanup needed, and repeat those three steps again.
    Something like
    public class MyApplication {
      public static void main(String[] args) throws Exception /* error handling removed for clarity */ {
        URLClassLoader loader = new URLClassLoader(new URL[] {new URL("name.jar"});
        Runnable run = (Runnable) loader.loadClass("com.mypackage.MyApplicationStage2").getConstructor().newInstance();
        run.run();
        System.out.print("Press Enter to reload name.jar, or Ctrl+C to exit: ");
        new BufferedReader(new InputStreamReader(System.in)).readLine();
        run = null;
        loader = new URLClassLoader(new URL[] {new URL("name.jar"});
        Runnable run = (Runnable) loader.loadClass("com.mypackage.MyApplicationStage2").getConstructor().newInstance();
        run.run();
    }And then the class in name.jar could look like this (old, then new):
    package com.mypackage;
    public class MyApplicationStage2 implements Runnable {
      public void run() { System.out.println("Old code"); }
    package com.mypackage;
    public class MyApplicationStage2 implements Runnable {
      public void run() { System.out.println("New code"); }
    }Edited by Looce on Nov 8, 2008 6:00 PM (three steps, not two)

  • Reloading tuxedo servers at runtime without stopping Tuxedo instance.

    Hi,
    Is there any command in order to tell tuxedo to reload a server a runtime? Is it possible to hot deploy a server?
    I understand that it would be impossible to reload the tuxconfig at runtime, but it's possible to replace an existing server that's already running?
    Thanks,
    Brunno Attorre

    Hi Brunno,
    Usually the best way to handle this is to have multiple copies of a server running, replace the binary image on disk, and the in sequence tmshutdown/tmboot each server.  This ensures that the services they offer will still be available, and when the servers reboot they will pick up the new executable image.
    You don't need to reload TUXCONFIG to implement configuration changes.  You can use the tmconfig command, although it's not the friendliest tool in the shed.  TSAM Plus 12c provides a Cloud Control plug-in for Oracle Enterprise Manager that provides complete management capabilities for Tuxedo including making pretty much any configuration change on the fly.  You can also make direct MIB requests yourself with an FML32 client or ud32 to make dynamic changes to the configuration.  Just remember that these dynamic changes will be reflected in the TUXCONFIG, but NOT in the UBBCONFIG source file.  So you would typically want to perform a tmunloadcf after making any significant dynamic changes.
    So adding new servers, changing the server binary, creating new server groups, adding a new machine to a cluster, etc., can all be done dynamically.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • I get a runtime error when attempting to search the store in Itunes.  I unistalled and reloaded. How can I fix this?

    I just began getting a runtime error when attempting to search the iTunes store.
    I uninstalled and reinstalled but, it's still happening.
    How can I fix this so I can start to buy music again?

    I have the same error, but I think we will get no solution for this problem.
    You've get no answer here and the Apple support also doesn't send an answer how to solve the problem.
    BTW I have also Windows 7 and the newest version of iTunes 64-bit.
    Greetings Mike

  • SSL-Config: Oc4J does not reload keystore/truststore at runTime

    Hi all, i have a little question about the SSL-Config into OC4J.
    I have a webApp bound to a secure web site that requires mutual-authentication. If I add at run-time (without stopping OC4J) a trusted entry (a CA) to the keystore the secure-web-site is related to, OC4J does not "reload" the keystore with the new entry. Thus, i have to restart the OC4J to be able to accept SSLconnection that are authenticated by means of that new CA. The qeustion is: Does it exist a conifguration that has to be performed to reload at run-time a keystore in OC4J or it's necessary to restart OC4J each time a new entry to a keystore mapped for a given secure-web-site is added?
    I hope someone can give me a tip,
    Best Regards

    Hi I tried this with latest 10.1.3 Developer Preview 4 and it worked great and I could start OC4J standalone in https mode. Can you please download the latest version of OC4J 10.1.3 DP4 stand-alone and try in there ? The OC4J version embedded with JDev 10.1.3 Preview is pretty old and there have been many bugs fixed since then
    http://www.oracle.com/technology/tech/java/oc4j/index.html
    -Debu

  • Crystal report runtime error on print preview

    Hi everybody
    I've built a CR report based on a 'SAP B1' connection type
    I pick my tables from the DBO menu and not from the B1 tables menu (not the one which is organized like  the SAP main menu)
    I  open CR application and the report
    I click on the print preview button
    I enter the parameter
    I enter the Company user password in the "Enter connection details below' window
    After this step, I've often have a C++ runtime error
         Detail of the error message :
         TITLE : MS Visual C++ Runtime library
         Runtime error !
         Prgram : C:\Program files (x86) \business...
    Problem signature:
      Problem Event Name:     APPCRASH
      Application Name:     crw32.exe
      Application Version:     12.2.0.290
      Application Timestamp:     4a365bb5
      Fault Module Name:     MSVCR80.dll
      Fault Module Version:     8.0.50727.3053
      Fault Module Timestamp:     4889d619
      Exception Code:     40000015
      Exception Offset:     000046b4
      OS Version:     6.0.6001.2.1.0.16.7
      Locale ID:     1033
      Additional Information 1:     fbca
      Additional Information 2:     4dd03cfc2bbb8ba75251d9b6c3496254
      Additional Information 3:     81d9
      Additional Information 4:     759284bec319ee7a483715cbc8f2c898
    this erreor does not appear every time
    I do not understand what makes tihs error to appear or not.
    The only solution I've found so far :
    Re open the report
    Go to DATABASE Manue / Set Datasource location
    I change the location of all the table to a new connection source.
    environnement : win XP SP3 and CR 12.2.0.290 or Win 2008 serv and CR 12.2.0.290
    Have you met the same problem in your editions ? Have you found any solutions ?
    Thks for all answers
    Edited by: Antoine TESSIER on Apr 19, 2010 11:58 AM

    I am having the same problem, reloaded Crystal, tried changing database, still getting error message.  I am running in Windows 7 Professional.
    Description
    Faulting Application Path:     C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\crw32.exe
    Problem signature
    Problem Event Name:     APPCRASH
    Application Name:     crw32.exe
    Application Version:     12.1.3.1028
    Application Timestamp:     4991a897
    Fault Module Name:     MSVCR80.dll
    Fault Module Version:     8.0.50727.4927
    Fault Module Timestamp:     4a2752ff
    Exception Code:     40000015
    Exception Offset:     000046b4
    OS Version:     6.1.7600.2.0.0.256.48
    Locale ID:     1033
    Additional Information 1:     cd41
    Additional Information 2:     cd416236504bbf90e1e977a0426bc2fe
    Additional Information 3:     671e
    Additional Information 4:     671eefc7db4b2a40792acc9f378ae3f4

  • Itunes will no longer load on my computer says C runtime library runtime error

    I tunes will not load on my desktop PC...says C runtime library error. Have uninstalled, reloaded ran updates with n success.

    Follow the directions of tt2 in https://discussions.apple.com/thread/5822086

  • Can't get the latest itunes update to download on my windows7 laptop. It gives runtime error window then error 7, windows error 114, any ideas

    First thing to say is I'm new at trying to slove my own computer issues, so I may be a little slow. The latest iTunes update will not install on my Windows 7 labtop,   I keep getting a runtime error window with Error 7 and Windows eror 1114. I have run a fix and reload the file with no resuts and can't seem to get it do download manually either, any ideas for this computer challanged person?

    See... Unable to install or open > http://support.apple.com/kb/TS5376
    Also See this User Tip by turingtest2
    https://discussions.apple.com/docs/DOC-6562

  • How to change the size of a box in the runtime

    I created a box in my scene, and want to change it's size in the runtime.
    Is there any method to do so?
    ps: I used "Box(float xdim, float ydim, float zdim, int primflags, Appearance ap)" to create the box .
    thank you guys!

    Dropping and re-creating the table is by far the best way (of course you need to unload the table's data to a flat file with ttBulkCp first and then reload it again afterwards).
    a second option is to drop the column and re-add it with the new size but you still need to preserve the data first and put it back afterwards and this is harder for a single column than for a whole table. Also, if you are using replication you should exercise care when using ALTER TABLE to ensure iall replicated copies of the table maintain the same physical structure.
    Chris

  • Something went wrong. To try again, reload the page and then start the workflow

    We have a SP 2013 farm with Aug 2013 CU. While trying to start an SPD 2013 platform workflow from browser I get an error "Something went wrong. To try again, reload the page and then start the workflow."
    I could also see the following in ULS:
    System.NotSupportedException: Not supported in Windows authentication mode.
    at Microsoft.SharePoint.IdentityModel.SPIdentityContext.Create(SPUserToken token, Boolean
    isShareByLinkGuestUser)
    at Microsoft.SharePoint.WorkflowServices.WorkflowServiceContextExtensions.GetApplicationUserCredentials
    (WorkflowServicesContext context) StackTrace:
    at Microsoft.Office.Server.Native.dll: (sig=35339f9c-8871-4ef1-9118-9c1bd0cb6598|2|
    microsoft.office.server.native.pdb, offset=131CE)
    at Microsoft.Office.Server.Native.dll
    This seems to be a bug and is solved in Mar 2013 PU but I have Aug CU. The web where I have this workflow has classic mode auth. Has anyone come across this error before?
    I have checked the following:
    1. Service
    Bus Gateway and Service
    Bus Manager Broker services are started
    2. Authentication for this web application is Windows NTLM
    -- The opinions expressed here represent my own and not those of anybody else -- http://manojvnair.blogspot.com

    Thank you for the steps.
    I have checked User Profile service and it is started and running fine. The user who is trying to start the workflow (me) has a profile created. I'm not starting wf as system account and my account is not added to web application user policy. Workflow isn't
    even firing when I try to edit list item.
    I tried to edit the list item as system account and workflow started this time. But it does to suspended state with the following message:
    RequestorId: 54f4a912-ab0b-a1f2-0000-000000000000. Details: RequestorId: 54f4a912-ab0b-a1f2-0000-000000000000. Details: An unhandled exception occurred during the execution of the workflow instance. Exception details: System.ApplicationException: HTTP 401
    {"SPRequestGuid":["54f4a912-ab0b-a1f2-be58-305dd8b6eab4"],"request-id":["54f4a912-ab0b-a1f2-be58-305dd8b6eab4"],"X-FRAME-OPTIONS":["SAMEORIGIN"],"SPRequestDuration":["2"],"SPIisLatency":["1"],"MicrosoftSharePointTeamServices":["15.0.0.4535"],"X-Content-Type-Options":["nosniff"],"X-MS-InvokeApp":["1;
    RequireReadOnly"],"Date":["Thu, 24 Apr 2014 15:32:05 GMT"],"Server":["Microsoft-IIS\/8.0"],"WWW-Authenticate":["NTLM"],"X-Powered-By":["ASP.NET"]} at Microsoft.Activities.Hosting.Runtime.Subroutine.SubroutineChild.Execute(CodeActivityContext context) at System.Activities.CodeActivity.InternalExecute(ActivityInstance
    instance, ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
    WhenI try to start wf I can see the first error:
    System.NotSupportedException: Not supported in Windows authentication mode.    
     at Microsoft.SharePoint.IdentityModel.SPIdentityContext.Create(SPUserToken token, Boolean isShareByLinkGuestUser)    
     at Microsoft.SharePoint.WorkflowServices.WorkflowServiceContextExtensions.GetApplicationUserCredentials(WorkflowServicesContext context) StackTrace: 
     at Microsoft.Office.Server.Native.dll: (sig=35339f9c-8871-4ef1-9118-9c1bd0cb6598|2|microsoft.office.server.native.pdb, offset=131CE)
     at Microsoft.Office.Server.Native.dll: (offset=21B4D
    -- The opinions expressed here represent my own and not those of anybody else -- http://manojvnair.blogspot.com

  • Runtime error in menu using javascript

    i got a code for building menu using javascript from internet. But when run this file, it gives a runtime error stating Error: 'Trigger' is null or not an object.I am not able to rectify it. Can you please help me with this problem? Its very urgent..
    I am giving the code here.The initialization of the trigger is given in bold, italics.
    <script type='text/javascript'>
    function Go(){return}
    Menu1=new Array("1","1.jsp","a",0,20,150);
    Menu2=new Array("2","2.jsp","",0,0,150);
    Menu3=new Array("3","","",4,0,150);
    Menu3_1=new Array("3-1","","",2,20,170);
    Menu3_1_1=new Array("3-1-1","3-1-1.jsp","",0,20,170);
    Menu3_1_2=new Array("3-1-2","3-1-2.jsp","",0,20,170);
    Menu3_2=new Array("3-2","3-2.jsp","",0,20,170);
    Menu3_3=new Array("3-3","3-3.jsp","",0,20,0);
    Menu3_4=new Array("3-4","3-4.jsp","",0,20,170);
    Menu4=new Array("4","","",3,0,150);
    Menu4_1=new Array("4-1","4-1.jsp","",0,20,170);
    Menu4_2=new Array("4-2","","",3,20,170);
    Menu4_2_1=new Array("4-2-1","4-2-1.jsp","",0,20,170);
    Menu4_2_2=new Array("4-2-2","4-2-2.jsp","",0,20,170);
    Menu4_2_3=new Array("4-2-3","4-2-3.jsp","",0,20,170);
    Menu4_3=new Array("4-3","","",2,20,170);
    Menu4_3_1=new Array("4-3-1","4-3-1.jsp","",0,20,170);
    Menu4_3_2=new Array("4-3-2","4-3-2.jsp","",0,20,170);
    var NoOffFirstLineMenus=4;     // Number of first level items
    var LowBgColor='FFFFFF';     // Background color when mouse is not over
    var LowSubBgColor='FFFFFF';     // Background color when mouse is not over on subs
    var HighBgColor='ECE9D8';     // Background color when mouse is over
    var HighSubBgColor='ECE9D8';     // Background color when mouse is over on subs
    var FontLowColor='000000';     // Font color when mouse is not over
    var FontSubLowColor='000000';     // Font color subs when mouse is not over
    var FontHighColor='FF0000';     // Font color when mouse is over
    var FontSubHighColor='FF0000';     // Font color subs when mouse is over
    var BorderColor='ACA899';     // Border color
    var BorderSubColor='ACA899';     // Border color for subs
    var BorderWidth=1;          // Border width
    var BorderBtwnElmnts=0;          // Border between elements 1 or 0
    var FontFamily="Bookman Old Style"             // Font family menu items
    var FontSize=10;                             // Font size menu items
    var FontBold=0;                                 // Bold menu items 1 or 0
    var FontItalic=0;                               // Italic menu items 1 or 0
    var MenuTextCentered='center';                  // Item text position 'left', 'center' or 'right'
    var MenuCentered='center';     // Menu horizontal position 'left', 'center' or 'right'
    var MenuVerticalCentered='top';     // Menu vertical position 'top', 'middle','bottom' or static
    var ChildOverlap=.2;          // horizontal overlap child/ parent
    var ChildVerticalOverlap=.2;     // vertical overlap child/ parent
    var StartTop=1;          // Menu offset x coordinate
    var StartLeft=1;          // Menu offset y coordinate
    var VerCorrect=0;          // Multiple frames y correction
    var HorCorrect=0;          // Multiple frames x correction
    var LeftPaddng=3;          // Left padding
    var TopPaddng=2;          // Top padding
    var FirstLineHorizontal=1;     // SET TO 1 FOR HORIZONTAL MENU, 0 FOR VERTICAL
    var MenuFramesVertical=1;     // Frames in cols or rows 1 or 0
    var DissapearDelay=1000;     // delay before menu folds in
    var TakeOverBgColor=1;          // Menu frame takes over background color subitem frame
    var FirstLineFrame='menu';     // Frame where first level appears
    var SecLineFrame='menu';     // Frame where sub levels appear
    var DocTargetFrame='home';     // Frame where target documents appear
    var TargetLoc='';          // span id for relative positioning
    var HideTop=0;               // Hide first level when loading new document 1 or 0
    var MenuWrap=1;               // enables/ disables menu wrap 1 or 0
    var RightToLeft=0;          // enables/ disables right to left unfold 1 or 0
    var UnfoldsOnClick=0;          // Level 1 unfolds onclick/ onmouseover
    var WebMasterCheck=0;          // menu tree checking on or off 1 or 0
    var ShowArrow=1;          // Uses arrow gifs when 1
    var KeepHilite=1;          // Keep selected path highligthed
    var Arrws=['arrow_r2.gif',8,8,'arrow_d2.gif',8,8,'new1-05.gif',5,5];     // Arrow source, width and height
    var AgntUsr=navigator.userAgent.toLowerCase();
    var DomYes=document.getElementById?1:0;
    var NavYes=AgntUsr.indexOf('mozilla')!=-1&&AgntUsr.indexOf('compatible')==-1?1:0;
    var ExpYes=AgntUsr.indexOf('msie')!=-1?1:0;
    var Opr=AgntUsr.indexOf('opera')!=-1?1:0;
    var Opr6orless=window.opera && navigator.userAgent.search(/opera.[1-6]/i)!=-1 //DynamicDrive.com added code
    var DomNav=DomYes&&NavYes?1:0;
    var DomExp=DomYes&&ExpYes?1:0;
    var Nav4=NavYes&&!DomYes&&document.layers?1:0;
    var Exp4=ExpYes&&!DomYes&&document.all?1:0;
    var PosStrt=(NavYes||ExpYes)&&!Opr6orless?1:0;
    var FrstLoc,ScLoc,DcLoc;
    var ScWinWdth,ScWinHght,FrstWinWdth,FrstWinHght;
    var ScLdAgainWin;
    var FirstColPos,SecColPos,DocColPos;
    var RcrsLvl=0;
    var FrstCreat=1,Loadd=0,Creatd=0,IniFlg,AcrssFrms=1;
    var FrstCntnr=null,CurrntOvr=null,CloseTmr=null;
    var CntrTxt,TxtClose,ImgStr;
    var Ztop=100;
    var ShwFlg=0;
    var M_StrtTp=StartTop,M_StrtLft=StartLeft;
    var StaticPos=0;
    var LftXtra=DomNav&&!Opr?LeftPaddng:0; //Changed for Opera
    var TpXtra=DomNav?TopPaddng:0;
    var M_Hide=Nav4?'hide':'hidden';
    var M_Show=Nav4?'show':'visible';
    var Par=parent.frames[0]&&FirstLineFrame!=SecLineFrame?parent:window;
    var Doc=Par.document;
    var Bod=Doc.body;
    var Trigger=NavYes&&!Opr?Par:Bod; //Changed for Opera
    MenuTextCentered=MenuTextCentered==1||MenuTextCentered=='center'?'center':MenuTextCentered==0||MenuTextCentered!='right'?'left':'right';
    WbMstrAlrts=["Item not defined: ","Item needs height: ","Item needs width: "];
    if(Trigger.onload)Dummy=Trigger.onload;
    if(DomNav||Opr)Trigger.addEventListener('load',Go,false); //Changed for Opera
    else Trigger.onload=Go;
    function Dummy(){return}
    function CnclSlct(){return false}
    function RePos(){
    FrstWinWdth=ExpYes?FrstLoc.document.body.clientWidth:FrstLoc.innerWidth;
    FrstWinHght=ExpYes?FrstLoc.document.body.clientHeight:FrstLoc.innerHeight;
    ScWinWdth=ExpYes?ScLoc.document.body.clientWidth:ScLoc.innerWidth;
    ScWinHght=ExpYes?ScLoc.document.body.clientHeight:ScLoc.innerHeight;
    if(MenuCentered=='justify'&&FirstLineHorizontal){
    FrstCntnr.style.width=FrstWinWdth;
    ClcJus();
    var P=FrstCntnr.FrstMbr,W=Menu1[5],i;
    for(i=0;i<NoOffFirstLineMenus;i++){P.style.width=W;P=P.PrvMbr}}
                                 StaticPos=-1;
                                 if(TargetLoc)ClcTrgt();
                                 if(MenuCentered)ClcLft();
                                 if(MenuVerticalCentered)ClcTp();
                                 PosMenu(FrstCntnr,StartTop,StartLeft)}
                                 function UnLoaded(){
                                 if(CloseTmr)clearTimeout(CloseTmr);
                                 Loadd=0; Creatd=0;
                                 if(HideTop){
                                 var FCStyle=Nav4?FrstCntnr:FrstCntnr.style;
                                 FCStyle.visibility=M_Hide}}
                                 function ReDoWhole(){
    if(ScWinWdth!=ScLoc.innerWidth||ScWinHght!=ScLoc.innerHeight||FrstWinWdth!=FrstLoc.innerWidth||FrstWinHght!=FrstLoc.innerHeight)Doc.location.reload()}
                                 function Check(WMnu,NoOf){
                                 var i,array,ArrayLoc;
                                 ArrayLoc=parent.frames[0]?parent.frames[FirstLineFrame]:self;
                                 for(i=0;i<NoOf;i++){
                  array=WMnu+eval(i+1);
                  if(!ArrayLoc[array]){WbMstrAlrt(0,array); return false}
                  if(i==0){     if(!ArrayLoc[array][4]){WbMstrAlrt(1,array); return false}
                  if(!ArrayLoc[array][5]){WbMstrAlrt(2,array); return false}}
                  if(ArrayLoc[array][3])if(!Check(array+'_',ArrayLoc[array][3])) return false}
                  return true}
                  function WbMstrAlrt(No,Xtra){
                  return confirm(WbMstrAlrts[No]+Xtra+'   ')}
                  function Go(){
                  Dummy();
                  if(Loadd||!PosStrt)return;
                  BeforeStart();
                  Creatd=0; Loadd=1;
                  status='Building menu';
                  if(FrstCreat){
                  if(FirstLineFrame =="" || !parent.frames[FirstLineFrame]){
                  FirstLineFrame=SecLineFrame;
                  if(FirstLineFrame =="" || !parent.frames[FirstLineFrame]){
                  FirstLineFrame=SecLineFrame=DocTargetFrame;
                  if(FirstLineFrame =="" || !parent.frames[FirstLineFrame])FirstLineFrame=SecLineFrame=DocTargetFrame=''}}
                  if(SecLineFrame =="" || !parent.frames[SecLineFrame]){
                  SecLineFrame=DocTargetFrame;
                  if(SecLineFrame =="" || !parent.frames[SecLineFrame])SecLineFrame=DocTargetFrame=FirstLineFrame}
                  if(DocTargetFrame =="" || !parent.frames[DocTargetFrame])DocTargetFrame=SecLineFrame;
                  if(WebMasterCheck){     if(!Check('Menu',NoOffFirstLineMenus)){status='build aborted';return}}
                  FrstLoc=FirstLineFrame!=""?parent.frames[FirstLineFrame]:window;
                  ScLoc=SecLineFrame!=""?parent.frames[SecLineFrame]:window;
                  DcLoc=DocTargetFrame!=""?parent.frames[DocTargetFrame]:window;
                  if (FrstLoc==ScLoc) AcrssFrms=0;
                  if (AcrssFrms)FirstLineHorizontal=MenuFramesVertical?0:1;
                  FrstWinWdth=ExpYes?FrstLoc.document.body.clientWidth:FrstLoc.innerWidth;
                  FrstWinHght=ExpYes?FrstLoc.document.body.clientHeight:FrstLoc.innerHeight;
                  ScWinWdth=ExpYes?ScLoc.document.body.clientWidth:ScLoc.innerWidth;
                  ScWinHght=ExpYes?ScLoc.document.body.clientHeight:ScLoc.innerHeight;
                  if(Nav4){     CntrTxt=MenuTextCentered!='left'?"<div align='"+MenuTextCentered+"'>":"";
    TxtClose="</font>"+MenuTextCentered!='left'?"</div>":""}}
    FirstColPos=Nav4?FrstLoc.document:FrstLoc.document.body;
    SecColPos=Nav4?ScLoc.document:ScLoc.document.body;
    DocColPos=Nav4?DcLoc.document:ScLoc.document.body;
    if (TakeOverBgColor)FirstColPos.bgColor=AcrssFrms?SecColPos.bgColor:DocColPos.bgColor;
    if(MenuCentered=='justify'&&FirstLineHorizontal)ClcJus();
    if(FrstCreat){
    FrstCntnr=CreateMenuStructure('Menu',NoOffFirstLineMenus);
    FrstCreat=AcrssFrms?0:1}
    else CreateMenuStructureAgain('Menu',NoOffFirstLineMenus);
    if(TargetLoc)ClcTrgt();
    if(MenuCentered)ClcLft();
    if(MenuVerticalCentered)ClcTp();
    PosMenu(FrstCntnr,StartTop,StartLeft);
    IniFlg=1;
    Initiate();
    Creatd=1;
    if (AcrssFrms)      //Added for Opera
    {      //Added for Opera
    ScLdAgainWin=ExpYes?ScLoc.document.body:ScLoc;
    ScLdAgainWin.onunload=UnLoaded;
    }      //Added for Opera
    Trigger.onresize=Nav4?ReDoWhole:RePos;
    AfterBuild();
    if(MenuVerticalCentered=='static'&&!AcrssFrms)setInterval('KeepPos()',250);
    status='Menu ready for use'}
    function KeepPos(){
    var TS=ExpYes?FrstLoc.document.body.scrollTop:FrstLoc.pageYOffset;
    if(TS!=StaticPos){
    var FCStyle=Nav4?FrstCntnr:FrstCntnr.style;
    FCStyle.top=FrstCntnr.OrgTop=StartTop+TS;StaticPos=TS}}
    function ClcJus(){
    var a=BorderBtwnElmnts?1:2,b=BorderBtwnElmnts?BorderWidth:0;
    var Size=Math.round(((FrstWinWdth-a*BorderWidth)/NoOffFirstLineMenus)-b),i,j;
    for(i=1;i<NoOffFirstLineMenus+1;i++){j=eval('Menu'+i);j[5]=Size}
                                 StartLeft=0}
                                 function ClcTrgt(){
                                 var TLoc=Nav4?FrstLoc.document.layers[TargetLoc]:DomYes?FrstLoc.document.getElementById(TargetLoc):FrstLoc.document.all[TargetLoc];
                                 StartTop=M_StrtTp;
                                 StartLeft=M_StrtLft;
                                 if(DomYes){
                                 while(TLoc){StartTop+=TLoc.offsetTop;StartLeft+=TLoc.offsetLeft;TLoc=TLoc.offsetParent}}
                                 else{     StartTop+=Nav4?TLoc.pageY:TLoc.offsetTop;StartLeft+=Nav4?TLoc.pageX:TLoc.offsetLeft}}
                                 function ClcLft(){
                                 if(MenuCentered!='left'&&MenuCentered!='justify'){
                                 var Size=FrstWinWdth-(!Nav4?parseInt(FrstCntnr.style.width):FrstCntnr.clip.width);
                                 StartLeft=M_StrtLft;
                                 StartLeft+=MenuCentered=='right'?Size:Size/2}}
                                 function ClcTp(){
                                 if(MenuVerticalCentered!='top'&&MenuVerticalCentered!='static'){
                                 var Size=FrstWinHght-(!Nav4?parseInt(FrstCntnr.style.height):FrstCntnr.clip.height);
                                 StartTop=M_StrtTp;
                                 StartTop+=MenuVerticalCentered=='bottom'?Size:Size/2}}
                                 function PosMenu(CntnrPntr,Tp,Lt){
                                 var Topi,Lefti,Hori;
                                 var Cntnr=CntnrPntr;
                                 var Mmbr=Cntnr.FrstMbr;
                                 var CntnrStyle=!Nav4?Cntnr.style:Cntnr;
                                 var MmbrStyle=!Nav4?Mmbr.style:Mmbr;
                                 var PadL=Mmbr.value.indexOf('<')==-1?LftXtra:0;
                                 var PadT=Mmbr.value.indexOf('<')==-1?TpXtra:0;
                                 var MmbrWt=!Nav4?parseInt(MmbrStyle.width)+PadL:MmbrStyle.clip.width;
                                 var MmbrHt=!Nav4?parseInt(MmbrStyle.height)+PadT:MmbrStyle.clip.height;
                                 var CntnrWt=!Nav4?parseInt(CntnrStyle.width):CntnrStyle.clip.width;
                                 var CntnrHt=!Nav4?parseInt(CntnrStyle.height):CntnrStyle.clip.height;
                                 var SubTp,SubLt;
                                 RcrsLvl++;
                                 if (RcrsLvl==1 && AcrssFrms)!MenuFramesVertical?Tp=FrstWinHght-CntnrHt+(Nav4?4:0):Lt=RightToLeft?0:FrstWinWdth-CntnrWt+(Nav4?4:0);
                                 if (RcrsLvl==2 && AcrssFrms)!MenuFramesVertical?Tp=0:Lt=RightToLeft?ScWinWdth-CntnrWt:0;
                                 if (RcrsLvl==2 && AcrssFrms){Tp+=VerCorrect;Lt+=HorCorrect}
                                 CntnrStyle.top=RcrsLvl==1?Tp:0;
                                 Cntnr.OrgTop=Tp;
                                 CntnrStyle.left=RcrsLvl==1?Lt:0;
                                 Cntnr.OrgLeft=Lt;
                                 if (RcrsLvl==1 && FirstLineHorizontal){
                                 Hori=1;Lefti=CntnrWt-MmbrWt-2*BorderWidth;Topi=0}
                                 else{     Hori=Lefti=0;Topi=CntnrHt-MmbrHt-2*BorderWidth}
                                 while(Mmbr!=null){
                                 MmbrStyle.left=Lefti+BorderWidth;
                                 MmbrStyle.top=Topi+BorderWidth;
                                 if(Nav4)Mmbr.CmdLyr.moveTo(Lefti+BorderWidth,Topi+BorderWidth);
                                 if(Mmbr.ChildCntnr){
                                 if(RightToLeft)ChldCntnrWdth=Nav4?Mmbr.ChildCntnr.clip.width:parseInt(Mmbr.ChildCntnr.style.width);
                                 if(Hori){     SubTp=Topi+MmbrHt+2*BorderWidth;
                                 SubLt=RightToLeft?Lefti+MmbrWt-ChldCntnrWdth:Lefti}
                                 else{     SubLt=RightToLeft?Lefti-ChldCntnrWdth+ChildOverlap*MmbrWt+BorderWidth:Lefti+(1-ChildOverlap)*MmbrWt+BorderWidth;
                                 SubTp=RcrsLvl==1&&AcrssFrms?Topi:Topi+ChildVerticalOverlap*MmbrHt}
                                 PosMenu(Mmbr.ChildCntnr,SubTp,SubLt)}
                                 Mmbr=Mmbr.PrvMbr;
                                 if(Mmbr){     MmbrStyle=!Nav4?Mmbr.style:Mmbr;
                                 PadL=Mmbr.value.indexOf('<')==-1?LftXtra:0;
                                 PadT=Mmbr.value.indexOf('<')==-1?TpXtra:0;
                                 MmbrWt=!Nav4?parseInt(MmbrStyle.width)+PadL:MmbrStyle.clip.width;
                                 MmbrHt=!Nav4?parseInt(MmbrStyle.height)+PadT:MmbrStyle.clip.height;
                                 Hori?Lefti-=BorderBtwnElmnts?(MmbrWt+BorderWidth):(MmbrWt):Topi-=BorderBtwnElmnts?(MmbrHt+BorderWidth):(MmbrHt)}}
                                 RcrsLvl--}
                                 function Initiate(){
                                 if(IniFlg){     Init(FrstCntnr);IniFlg=0;
                                 if(ShwFlg)AfterCloseAll();ShwFlg=0}}
                                 function Init(CntnrPntr){
                                 var Mmbr=CntnrPntr.FrstMbr;
                                 var MCStyle=Nav4?CntnrPntr:CntnrPntr.style;
                                 RcrsLvl++;
                                 MCStyle.visibility=RcrsLvl==1?M_Show:M_Hide;
                                 while(Mmbr!=null){
                                 if(Mmbr.Hilite){Mmbr.Hilite=0;if(KeepHilite)LowItem(Mmbr)}
                                 if(Mmbr.ChildCntnr) Init(Mmbr.ChildCntnr);
                                 Mmbr=Mmbr.PrvMbr}
                                 RcrsLvl--}
                                 function ClearAllChilds(Pntr){
                                 var CPCCStyle;
                                 while (Pntr){
                                 if(Pntr.Hilite){
                                 Pntr.Hilite=0;
                                 if(KeepHilite)LowItem(Pntr);
                                 if(Pntr.ChildCntnr){
                                 CPCCStyle=Nav4?Pntr.ChildCntnr:Pntr.ChildCntnr.style;
                                 CPCCStyle.visibility=M_Hide;
                                 ClearAllChilds(Pntr.ChildCntnr.FrstMbr)}
                                 break}
                                 Pntr=Pntr.PrvMbr}}
                                 function GoTo(){
                                 if(this.LinkTxt){
                                 status='';
                                 var HP=Nav4?this.LowLyr:this;
                                 LowItem(HP);
                                 this.LinkTxt.indexOf('javascript:')!=-1?eval(this.LinkTxt):DcLoc.location.href=this.LinkTxt}}
                                 function HiliteItem(P){
                                 if(Nav4){
                                 if(P.ro)P.document.images[P.rid].src=P.ri2;
                                 else{     if(P.HiBck)P.bgColor=P.HiBck;
                                 if(P.value.indexOf('<img')==-1){
                            P.document.write(P.Ovalue);
                            P.document.close()}}}
                            else{     if(P.ro){     var Lc=P.Level==1?FrstLoc:ScLoc;
                            Lc.document.images[P.rid].src=P.ri2}
                            else{     if(P.HiBck)P.style.backgroundColor=P.HiBck;
                            if(P.HiFntClr)P.style.color=P.HiFntClr}}
                            P.Hilite=1}
                            function LowItem(P){
                            if(P.ro){     if(Nav4)P.document.images[P.rid].src=P.ri1;
                            else{     var Lc=P.Level==1?FrstLoc:ScLoc;
                            Lc.document.images[P.rid].src=P.ri1}}
                            else{     if(Nav4){     if(P.LoBck)P.bgColor=P.LoBck;
                            if(P.value.indexOf('<img')==-1){
                            P.document.write(P.value);
                            P.document.close()}}
                            else{     if(P.LoBck)P.style.backgroundColor=P.LoBck;
                            if(P.LwFntClr)P.style.color=P.LwFntClr}}}
                            function OpenMenu(){
                            if(!Loadd||!Creatd) return;
                            var TpScrlld=ExpYes?ScLoc.document.body.scrollTop:ScLoc.pageYOffset;
                            var LScrlld=ExpYes?ScLoc.document.body.scrollLeft:ScLoc.pageXOffset;
                            var CCnt=Nav4?this.LowLyr.ChildCntnr:this.ChildCntnr;
                            var ThisHt=Nav4?this.clip.height:parseInt(this.style.height);
                            var ThisWt=Nav4?this.clip.width:parseInt(this.style.width);
                            var ThisLft=AcrssFrms&&this.Level==1&&!FirstLineHorizontal?0:Nav4?this.Container.left:parseInt(this.Container.style.left);
                            var ThisTp=AcrssFrms&&this.Level==1&&FirstLineHorizontal?0:Nav4?this.Container.top:parseInt(this.Container.style.top);
                            var HP=Nav4?this.LowLyr:this;
                            CurrntOvr=this;
                            IniFlg=0;
                            ClearAllChilds(this.Container.FrstMbr);
                            HiliteItem(HP);
                            if(CCnt!=null){
                            if(!ShwFlg){ShwFlg=1;     BeforeFirstOpen()}
                            var CCW=Nav4?this.LowLyr.ChildCntnr.clip.width:parseInt(this.ChildCntnr.style.width);
                            var CCH=Nav4?this.LowLyr.ChildCntnr.clip.height:parseInt(this.ChildCntnr.style.height);
                            var ChCntTL=Nav4?this.LowLyr.ChildCntnr:this.ChildCntnr.style;
                            var SubLt=AcrssFrms&&this.Level==1?CCnt.OrgLeft+ThisLft+LScrlld:CCnt.OrgLeft+ThisLft;
                            var SubTp=AcrssFrms&&this.Level==1?CCnt.OrgTop+ThisTp+TpScrlld:CCnt.OrgTop+ThisTp;
                            if(MenuWrap){
                            if(RightToLeft){
                            if(SubLt<LScrlld)SubLt=this.Level==1?LScrlld:SubLt+(CCW+(1-2*ChildOverlap)*ThisWt);
                    if(SubLt+CCW>ScWinWdth+LScrlld)SubLt=ScWinWdth+LScrlld-CCW}
                    else{     if(SubLt+CCW>ScWinWdth+LScrlld)SubLt=this.Level==1?ScWinWdth+LScrlld-CCW:SubLt-(CCW+(1-2*ChildOverlap)*ThisWt);
                    if(SubLt<LScrlld)SubLt=LScrlld}
                    if(SubTp+CCH>TpScrlld+ScWinHght)SubTp=this.Level==1?SubTp=TpScrlld+ScWinHght-CCH:SubTp-CCH+(1-2*ChildVerticalOverlap)*ThisHt;
                    if(SubTp<TpScrlld)SubTp=TpScrlld}
                     ChCntTL.top=SubTp;ChCntTL.left=SubLt;ChCntTL.visibility=M_Show}
                     status=this.LinkTxt}
                     function OpenMenuClick(){
                     if(!Loadd||!Creatd) return;
                     var HP=Nav4?this.LowLyr:this;
                     CurrntOvr=this;
                     IniFlg=0;
                     ClearAllChilds(this.Container.FrstMbr);
                     HiliteItem(HP);
                     status=this.LinkTxt}
                     function CloseMenu(){
                     if(!Loadd||!Creatd) return;
                     if(!KeepHilite){
                     var HP=Nav4?this.LowLyr:this;
                     LowItem(HP)}
                     status='';
                     if(this==CurrntOvr){
                     IniFlg=1;
                     if(CloseTmr)clearTimeout(CloseTmr);
                     CloseTmr=setTimeout('Initiate(CurrntOvr)',DissapearDelay)}}
                     function CntnrSetUp(Wdth,Hght,NoOff){
                     var x=RcrsLvl==1?BorderColor:BorderSubColor;
                     this.FrstMbr=null;
                     this.OrgLeft=this.OrgTop=0;
                     if(x)this.bgColor=x;
                     if(Nav4){     this.visibility='hide';
                     this.resizeTo(Wdth,Hght)}
                     else{     if(x)this.style.backgroundColor=x;
                     this.style.width=Wdth;
                     this.style.height=Hght;
                     this.style.fontFamily=FontFamily;
                     this.style.fontWeight=FontBold?'bold':'normal';
                     this.style.fontStyle=FontItalic?'italic':'normal';
                     this.style.fontSize=FontSize+'pt';
                     this.style.zIndex=RcrsLvl+Ztop}}
                     function MbrSetUp(MmbrCntnr,PrMmbr,WhatMenu,Wdth,Hght){
                     var Location=RcrsLvl==1?FrstLoc:ScLoc;
                     var MemVal=eval(WhatMenu+'[0]');
                     var t,T,L,W,H,S;
                     var a,b,c,d;
                     this.PrvMbr=PrMmbr;
                     this.Level=RcrsLvl;
                     this.LinkTxt=eval(WhatMenu+'[1]');
                     this.Container=MmbrCntnr;
                     this.ChildCntnr=null;
                     this.Hilite=0;
                     this.style.overflow='hidden';
                     this.style.cursor=ExpYes&&(this.LinkTxt||(RcrsLvl==1&&UnfoldsOnClick))?'hand':'default';
                     this.ro=0;
                     if(MemVal.indexOf('rollover')!=-1){
                     this.ro=1;
                     this.ri1=MemVal.substring(MemVal.indexOf(':')+1,MemVal.lastIndexOf(':'));
                     this.ri2=MemVal.substring(MemVal.lastIndexOf(':')+1,MemVal.length);
                     this.rid=WhatMenu+'i';MemVal="<img src='"+this.ri1+"' name='"+this.rid+"'>"}
    this.value=MemVal;
    if(RcrsLvl==1){
    a=LowBgColor;
    b=HighBgColor;
    c=FontLowColor;
    d=FontHighColor}
    else{     a=LowSubBgColor;
    b=HighSubBgColor;
    c=FontSubLowColor;
    d=FontSubHighColor}
    this.LoBck=a;
    this.LwFntClr=c;
    this.HiBck=b;
    this.HiFntClr=d;
    this.style.color=this.LwFntClr;
    if(this.LoBck)this.style.backgroundColor=this.LoBck;
    this.style.textAlign=MenuTextCentered;
    if(eval(WhatMenu+'[2]'))this.style.backgroundImage="url(\'"+eval(WhatMenu+'[2]')+"\')";
    if(MemVal.indexOf('<')==-1){
    this.style.width=Wdth-LftXtra;
    this.style.height=Hght-TpXtra;
    this.style.paddingLeft=LeftPaddng;
    this.style.paddingTop=TopPaddng}
    else{     this.style.width=Wdth;
    this.style.height=Hght}
    if(MemVal.indexOf('<')==-1&&DomYes){
    t=Location.document.createTextNode(MemVal);
    this.appendChild(t)}
    else this.innerHTML=MemVal;
    if(eval(WhatMenu+'[3]')&&ShowArrow){
    a=RcrsLvl==1&&FirstLineHorizontal?3:RightToLeft?6:0;
    S=Arrws[a];
    W=Arrws[a+1];
    H=Arrws[a+2];
    T=RcrsLvl==1&&FirstLineHorizontal?Hght-H-2:(Hght-H)/2;
    L=RightToLeft?2:Wdth-W-2;
    if(DomYes){
    t=Location.document.createElement('img');
    this.appendChild(t);
    t.style.position='absolute';
    t.src=S;
    t.style.width=W;
    t.style.height=H;
    t.style.top=T;
    t.style.left=L}
    else{     MemVal+="<div style='position:absolute; top:"+T+"; left:"+L+"; width:"+W+"; height:"+H+";visibility:inherit'><img src='"+S+"'></div>";
    this.innerHTML=MemVal}}
    if(ExpYes){this.onselectstart=CnclSlct;
    this.onmouseover=RcrsLvl==1&&UnfoldsOnClick?OpenMenuClick:OpenMenu;
    this.onmouseout=CloseMenu;
    this.onclick=RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?OpenMenu:GoTo     }
    else{     RcrsLvl==1&&UnfoldsOnClick?this.addEventListener('mouseover',OpenMenuClick,false):this.addEventListener('mouseover',OpenMenu,false);
    this.addEventListener('mouseout',CloseMenu,false);
    RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?this.addEventListener('click',OpenMenu,false):this.addEventListener('click',GoTo,false)}}
    function NavMbrSetUp(MmbrCntnr,PrMmbr,WhatMenu,Wdth,Hght){
    var a,b,c,d;
    if(RcrsLvl==1){
    a=LowBgColor;
    b=HighBgColor;
    c=FontLowColor;
    d=FontHighColor}
    else {     a=LowSubBgColor;
    b=HighSubBgColor;
    c=FontSubLowColor;
    d=FontSubHighColor     }
    this.value=eval(WhatMenu+'[0]');
    this.ro=0;
    if(this.value.indexOf('rollover')!=-1){
    this.ro=1;
    this.ri1=this.value.substring(this.value.indexOf(':')+1,this.value.lastIndexOf(':'));
    this.ri2=this.value.substring(this.value.lastIndexOf(':')+1,this.value.length);
    this.rid=WhatMenu+'i';this.value="<img src='"+this.ri1+"' name='"+this.rid+"'>"}
    if(LeftPaddng&&this.value.indexOf('<')==-1&&MenuTextCentered=='left')this.value='�\;'+this.value;
    if(FontBold)this.value=this.value.bold();
    if(FontItalic)this.value=this.value.italics();
    this.Ovalue=this.value;
    this.value=this.value.fontcolor(c);
    this.Ovalue=this.Ovalue.fontcolor(d);
    this.value=CntrTxt+"<font face='"+FontFamily+"' point-size='"+FontSize+"'>"+this.value+TxtClose;
    this.Ovalue=CntrTxt+"<font face='"+FontFamily+"' point-size='"+FontSize+"'>"+this.Ovalue+TxtClose;
    this.LoBck=a;
    this.HiBck=b;
    this.ChildCntnr=null;
    this.PrvMbr=PrMmbr;
    this.Hilite=0;
    this.visibility='inherit';
    if(this.LoBck)this.bgColor=this.LoBck;
    this.resizeTo(Wdth,Hght);
    if(!AcrssFrms&&eval(WhatMenu+'[2]'))this.background.src=eval(WhatMenu+'[2]');
    this.document.write(this.value);
    this.document.close();
    this.CmdLyr=new Layer(Wdth,MmbrCntnr);
    this.CmdLyr.Level=RcrsLvl;
    this.CmdLyr.LinkTxt=eval(WhatMenu+'[1]');
    this.CmdLyr.visibility='inherit';
    this.CmdLyr.onmouseover=RcrsLvl==1&&UnfoldsOnClick?OpenMenuClick:OpenMenu;
    this.CmdLyr.onmouseout=CloseMenu;
    this.CmdLyr.captureEvents(Event.MOUSEUP);
    this.CmdLyr.onmouseup=RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?OpenMenu:GoTo;
    this.CmdLyr.LowLyr=this;
    this.CmdLyr.resizeTo(Wdth,Hght);
    this.CmdLyr.Container=MmbrCntnr;
    if(eval(WhatMenu+'[3]')&&ShowArrow){
    a=RcrsLvl==1&&FirstLineHorizontal?3:RightToLeft?6:0;
    this.CmdLyr.ImgLyr=new Layer(Arrws[a+1],this.CmdLyr);
    this.CmdLyr.ImgLyr.visibility='inherit';
    this.CmdLyr.ImgLyr.top=RcrsLvl==1&&FirstLineHorizontal?Hght-Arrws[a+2]-2:(Hght-Arrws[a+2])/2;
    this.CmdLyr.ImgLyr.left=RightToLeft?2:Wdth-Arrws[a+1]-2;
    this.CmdLyr.ImgLyr.width=Arrws[a+1];
    this.CmdLyr.ImgLyr.height=Arrws[a+2];
    ImgStr="<img src='"+Arrws[a]+"' width='"+Arrws[a+1]+"' height='"+Arrws[a+2]+"'>";
    this.CmdLyr.ImgLyr.document.write(ImgStr);
    this.CmdLyr.ImgLyr.document.close()}}
    function CreateMenuStructure(MName,NumberOf){
    RcrsLvl++;
    var i,NoOffSubs,Mbr,Wdth=0,Hght=0;
    var PrvMmbr=null;
    var WMnu=MName+'1';
    var MenuWidth=eval(WMnu+'[5]');
    var MenuHeight=eval(WMnu+'[4]');
    var Location=RcrsLvl==1?FrstLoc:ScLoc;
    if (RcrsLvl==1&&FirstLineHorizontal){
    for(i=1;i<NumberOf+1;i++){
                      WMnu=MName+eval(i);
                      Wdth=eval(WMnu+'[5]')?Wdth+eval(WMnu+'[5]'):Wdth+MenuWidth}
                      Wdth=BorderBtwnElmnts?Wdth+(NumberOf+1)*BorderWidth:Wdth+2*BorderWidth;Hght=MenuHeight+2*BorderWidth}
                      else{     for(i=1;i<NumberOf+1;i++){
                            WMnu=MName+eval(i);
                            Hght=eval(WMnu+'[4]')?Hght+eval(WMnu+'[4]'):Hght+MenuHeight}
                            Hght=BorderBtwnElmnts?Hght+(NumberOf+1)*BorderWidth:Hght+2*BorderWidth;Wdth=MenuWidth+2*BorderWidth}
                            if(DomYes){
                            var MmbrCntnr=Location.document.createElement("div");
                            MmbrCntnr.style.position='absolute';
                            MmbrCntnr.style.visibility='hidden';
                            Location.document.body.appendChild(MmbrCntnr)}
                            else{     if(Nav4) var MmbrCntnr=new Layer(Wdth,Location)
                            else{     WMnu+='c';
                            Location.document.body.insertAdjacentHTML("AfterBegin","<div id='"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

    Hi Harjeet,
    Reason of your Dump is that the enhancement "LFDCB001" which you used contains one Function module exit "EXIT_SAPLFDCB_001" and another one screen exit in calling screen  "SAPLFDCB" number 0150.
    So when you activate your project these above mentioned both components were activated.
    So when you execute transaction SAP looks for called screen "SAPLXM08" No-0400 but as you havn't created and program go for DUMP.
    Solution - Just Create called screen  "SAPLXM08" No-0400 and activate.
    Thanks,
    Vijay

  • How to Detect LV runtime engine prior to showing Remote panel in browser?

    I work on a web server that delivers remote panels embedded in browser windows.  On new machines, the labview runtime engine needs to be downloaded and installed.
    Currently, when a new user 'hits' the remote panel, the user is prompted and then downloads the component.  However, the user experiences some errors that can be confusing.  The first time, the remote panel is not embedded properly and the user must go 'BACK' then reload the page.
    We would like to check and detect whether the LVRT engine is installed prior to posting a webpage that contains a remote panel.
    What is the best way to detect whether the LVRT engine is installed on a remote computer?
    Jim West

    Jim West wrote:
    My brain is swimming... I haven't had enough coffee this morning... There is a chicken and egg issue.  As soon as I post the page, the client knows it needs to install the Labview runtime engine.  However, my Labview process has already attempted to place the remote panel in the page.   I get an error.  I'll admit that I haven't delved into my software since there are two spawned processes involved.  One process responds to the request and another lingers in memory running the remote panel until the user finishes. 
    From my perspective my lingering process should be sufficient to get the remote panel displayed when the RTE in finished installing but here is the catch.  Installing the RTE requires a reboot, therefore the server process would need to linger in memory a long time and then would need to recoginize that a user from the same computer and login is looking for the page.  Not really the way to go.  I can't have a process on the server lingering waiting for a user to reboot his computer and then do something when they start running again.  That process needs to die right away if the RTE is not available.
    Jim
    Would it be possible for this lingering process to check to see if the web server read has timed out?  The default is 60 seconds, and you can change it by going to Tools>>Options>>Web Server: Configuration.
    Trey B
    Applications Engineering
    National Instruments

Maybe you are looking for

  • SAP Query :: ABAP Code Help

    Hi, I have created a query which reads a material Table and has consumption by date. What I want the report to do is show me a total number of PO's by month. i.e. below Any idea how can I go about this? I can understand ABAP but don't know how to put

  • Top-level navigation & workset title

    Hello, I have created a workset with three pages. Is it possible to display only the title of the pages and not the title of the workset in the top-level navigation ? Thanks VC

  • Solution Manager error "The termination type was: RABAX_STATE "

    Hello All, I was tasked with setting up security for our new SAP Solman Project Managment solution and ran into the following errors while testing. BACKGROUND: User type was application consultant and was prompted by business test users that this typ

  • How to see borrowed films on another notebook?

    I have borrowed some movies at itunes store. The movies are saved on my noebook. Then the display crashed so that I have put all movies on a hard disc. Now I want to see the lended movies on a new notebook but after pressing "play" it says that movie

  • Text item of varchar2(2000) with vertical scrollbar not displaying properly

    Hi, I have a text item of varchar2(2000) with a vertical scroll bar. I am populating data into the text item using a forms procedure. (Look at the sample code below) The problem is the rpadding is NOT displayed properly. I mean the detail records are