package ranade;

import java.io.File;
import java.io.*;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.InputStream;
import java.net.InetAddress;

import java.util.Date;
import java.util.Calendar;
import java.util.*;
import java.sql.Time;


import javax.swing.JOptionPane;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;

import ranade.FTPClient;


public class SubmitServlet extends HttpServlet
{


   public void service(HttpServletRequest request, HttpServletResponse response )
      throws ServletException,java.io.IOException
   {
      String login = null;
      String userString = null;
      String passwd = null;
      String input = null;
      String timeStamp = null;
      String query = null;
      PrintWriter output = null;
      String getFile = null;
      File [] listDir = null;
      Calendar calendar = new GregorianCalendar();
      FileWriter fileWriter = null;
      File file = null;
      boolean buttons = false;
      String app = null;

      try
      {

      output = response.getWriter();

      if ( (login = request.getHeader("LOGIN")) == null )
      {
	  login = request.getParameter("LOGIN"); 
      }

      if ((userString = request.getHeader("Username")) == null )
      {
	  userString = request.getParameter("Username"); 
      }
      if ( (passwd = request.getHeader("password")) == null )
      {
	     passwd = request.getParameter("password"); 
      }
//System.out.println("Password is  -- " + passwd);

      if ( (input = request.getHeader("Input")) == null )
      {
	     input= request.getParameter("Input"); 
      }

      if ( (getFile = request.getHeader("FILE")) == null )
      {
	      getFile= request.getParameter("FILE");
      }

//System.out.println("Input is -- " + input + " &  Login is --  " + login);
      
      if ( (app = request.getHeader("APP")) == null )
      {
         app= request.getParameter("APP");
      }

// The following two  IF....ELSE structures pop a INVALID user message

      if ( login != null )
      {
	  if ((  userString == null ) || ( passwd==null))
	  {
		throw new Exception ("Invalid user");
	  }

          if (! ( ( userString.equals("pnm") && passwd.equals("ranade") )  ))
	  {
	       throw new RuntimeException ( "Invalid User");
	  }

// Following Lines of Code creates the  ".txt"  format of the MAIN WEB PAGE for data entry !

        file = new File ( "C:\tomcat\jakarta-tomcat-3.1.1a\jakarta-tomcat-3.1.1a\webapps\ROOT\dange\frame0.txt" );
	  String line;
	  int lineNum = 0;
	  File outFile = new File ( "C:/tomcat/jakarta-tomcat-3.1.1a/jakarta-tomcat-3.1.1a/webapps/ROOT/dange/frame0.html" );



        fileWriter = new FileWriter(outFile);

        BufferedReader br = new BufferedReader ( new FileReader(file));
	  while ( (line = br.readLine()) != null )
	  {
		if (lineNum == 18)
	      {
		      fileWriter.write ( Integer.toString(calendar.get(Calendar.YEAR)));
		      fileWriter.write ( "\n");
		}
		else if ( lineNum == 23 )
		{
		    fileWriter.write ( Integer.toString(calendar.get(Calendar.YEAR)) + "/");
		    fileWriter.write ( Integer.toString(1+calendar.get (Calendar.MONTH) ));
		    fileWriter.write ( "\n");
		}
		else if ( lineNum == 28 )
		{
		    fileWriter.write ( Integer.toString(calendar.get(Calendar.YEAR)) + "/");
		    fileWriter.write ( Integer.toString(1+calendar.get (Calendar.MONTH) ) + "/");
		    fileWriter.write (Integer.toString(calendar.get (Calendar.DAY_OF_MONTH)) );
		    fileWriter.write ( "\n");
		}
		else
		{
    		    fileWriter.write(line + "\n");
		}
			lineNum ++;
	    }

		fileWriter.close();
		br.close();

	output.write("<html>");
	output.write ("<head>");
	output.write ("<title></title>");
	output.write ("</head>");
	output.write ("<frameset cols=\"200,*\">");
	output.write ("<frame name=\"frame\" src=\"http://128.123.130.247:8080/webapps/ROOT/dange/frame0.html\">");
	output.write ("<frame name=\"content\" src=\"http://128.123.130.247:8080/webapps/ROOT/dange/frame1.html\">");
	output.write ("</frameset>");
      output.flush();
		 
	}
	else if ( getFile != null )
	{
  		file = new File ( "C:/tomcat/jakarta-tomcat-3.1.1a/jakarta-tomcat-3.1.1a/webapps/ROOT/dange"+"/" + getFile);
	   	System.out.println("getting the file here -- " + getFile);
	   	StringTokenizer tokenizer = null;
	   	String tempStr = null;
	   	if ( file.isFile() )
	 	{
		 	throw new RuntimeException ("Fatal error: Directory strucuture corrupted");
	   	}
	   	else
	   	{
	   	// requests should be for directories ..
		listDir = file.listFiles();

		//System.out.println("value of listDir --  " + listDir);

 		File fileName = null;

		if ( ( listDir == null ) || ( listDir.length == 0 ) )
		{
			throw new Exception ("Directory structure for : " + file.toString() + " does not exist");
		}
		output.write("<HTML><HEAD>\n");
		output.write("<TITLE>Index of " + file.getName() + " </TITLE>\n");
		output.write("<LINK HREF=\"/style/directory.css\" REL=\"STYLESHEET\">\n");
		output.write("</HEAD>\n");
		output.write("<BODY><h1>" + file.getName()+ " </h1><p>\n");
		output.write("<a href=" + file.getParent()+ ">Parent</a><br>\n");
		//System.out.println( file.getName() );
		for ( int i = 0; i < listDir.length ; i ++ )
		{
  			fileName = listDir[i];
		//System.out.println( listDir[i] );
		    	if (fileName.isDirectory())
		    	{
		      	output.write("<img src=\"http://128.123.130.235:8080/webapps/ROOT/icons/dir.gif\" alt=\"dir.gif\">");
		       	tempStr = fileName.toString();
				System.out.println( "1st tempStr is -- " + tempStr );
		       	tempStr = tempStr.substring(tempStr.indexOf("ranade")+6);
				System.out.println( "New tempStr is -- " + tempStr );                                          
				output.write("<a href=\"http://128.123.130.247:8080/webapps/ROOT/WEB-INF/classes/ranade.SubmitServlet?FILE="+tempStr+"\">" + fileName.getName() +"</a><br>\n");
 		    	}
		    	else
		    	{
                  	output.write("<img src=\"http://128.123.130.235:8080/webapps/ROOT/icons/text.gif\" alt=\"text.gif\">");
                     	tempStr = fileName.toString();
                     	tempStr = tempStr.substring(tempStr.indexOf("ranade")+6);
                     	output.write("<a href=\"http://128.123.130.247:8080/webapps/ROOT/WEB-INF/classes/ranade"+tempStr+"\">" + fileName.getName()+"</a><br>\n");

                     	buttons = true;
		    	}

   	 	}
            if ( buttons )
            {
            	output.write(" This page will contain seperate paths for .log files & .cps files & .txt files too ");
		}
                 output.write("</BODY></HTML>");
		}// end of the for loop
	}
	else if ( app != null )
	{
		Process process = null;
            InputStream in = null;
      	String command = "C:/tomcat/jakarta-tomcat-3.1.1a/jakarta-tomcat-3.1.1a/webapps/ROOT/ranade/execs/Debug/popup";
      	byte data;

	      try
      	{
         		Runtime runtime = Runtime.getRuntime();
         		process = runtime.exec(command);
         		in = process.getInputStream();
	         	while ((data = (byte)in.read() ) != -1 )
        		{
	        	    output.write(String.valueOf((char)data));
        		}

      	}
	      catch ( Throwable thrown)
      		{
		         output.write("Error: " + thrown.getMessage());
      		}
 
	 } // end of the else-if loop

	 else if (input == null)
	 {
	       data (output, request, userString);
	 }
	 else 
    	 {
       		getFrame( output, request ); 
    	 }
   }
   catch ( Throwable thrown)
   {
	   sendError(output,thrown.toString());
   }

 }



private void getFrame ( PrintWriter output, HttpServletRequest request ) throws Exception
{

	String Text0 = null;
	String firstString = null;
      String secString = null;
	int num1 ;
	double num2 ;
	String CH0 = null;
      String CH1 = null;
      String CH2 = null;
      String CH3 = null;
      String CH4 = null;
      String CH5 = null;
      String CH6 = null;
      String CH7 = null;
      String CH8 = null;
      String CH9 = null;
      String CH10 = null;
      String CH11 = null;
      String CH12 = null;
      String CH13 = null;
      String CH14 = null;
//    String CH15 = null;
      String Text3 = null;
	String Text4 = null;
	String Text5 = null;
	String Text6 = null;
	String message = null;
	String flag = "000000";
	File file = null;
    	FileWriter fileWriter = null;
	FTPClient client = null;
	InetAddress inet = null;
	Calendar calendar = new GregorianCalendar();

//  Following few lines of code decides the DEFAULT values for the " STATION "


	if ( (Text0 = request.getHeader("Text0")) == null )
      {
		Text0 = request.getParameter("Text0"); 
      }
	if ( Text0 == null )
	{
		Text0 = new String("0000");
	}
	Text0 = Text0.trim();
	if ( Text0.length() < 1)
	{
		Text0 = new String("0000");
	}



// Follwing lines decides the DEFAULT values of DISTURBANCE SENSITIVITY


      if ( (secString = request.getHeader("Text2")) == null )
      {
	    secString = request.getParameter("Text2"); 
         }

	 if (secString == null )
	 {
	    secString = new String("1");
	 }

/*	
	 num2 = Double.valueOf(secString.trim() ).DoubleValue();
	 if ( num2 >= 0.1 )
	 {
	 	num2 = 0.1;
	    	secString = new Double( num2 ).toString();
	 }

	 num2 = Float.valueOf(secString.trim()).floatValue();

       num2 = Float.parseFloat( secString );
	 System.out.println( "num2 = " + num2 );

	 if ( num2 > 0.1 )
	 {
	    	num2 = 0.1;
	    	secString = Float.toString(float num2);
		
 	 //  secString = String.parseString ( num2 );	
	 //  secString = new String("0.1");
	 }
*/

	 secString.trim();
	 System.out.println( "****" +secString + "**** " + secString.length() );
	 if (secString.length() != 3  || secString.startsWith(" "))
	 {
	   	secString = new String("1");
	 }


//  Following few lines of code decides the DEFAULT values for the DATA FILE INTERVAL


       if ( (firstString = request.getHeader("Text1")) == null )
       {
	 	firstString = request.getParameter("Text1"); 
       }
	 if (firstString == null )
	 {
	    	firstString = new String("10");
	 }
	 firstString.trim();
	 System.out.println( "****" +firstString + "**** " + firstString.length() );
	 if (firstString.length() < 1 || firstString.startsWith(" ") )
	 {
	   	firstString = new String("10");
	 }

//  Following few lines of code decides the DEFAULT values for the " 1st VALUE of VOLTAGE "

       if ( (CH0 = request.getHeader("CH0")) == null )
       {
	    	CH0 = request.getParameter("CH0"); 
       }
	 if ( CH0 == null )
	 {
	    	CH0 = new String("5");
	 }
	 CH0 = CH0.trim();
	 if ( CH0.length() < 1)
	 {
	    	CH0 = new String("5");
	 }

//  Following few lines of code decides the DEFAULT values for the " 2nd VALUE of VOLTAGE "


      if ( (CH1 = request.getHeader("CH1")) == null )
      {
	 	CH1 = request.getParameter("CH1"); 
      }
	if ( CH1 == null )
	{
	  	CH1 = new String("5");
	}
	CH1 = CH1.trim();
	if ( CH1.length() < 1)
	{
	    	CH1 = new String("5");
	}

//  Following few lines of code decides the DEFAULT values for the " 3rd VALUE of VOLTAGE "


	if ( (CH2 = request.getHeader("CH2")) == null )
      {
	    	CH2 = request.getParameter("CH2"); 
         }
	 if ( CH2 == null )
	 {
	    	CH2 = new String("5");
	 }
	 CH2 = CH2.trim();
	 if ( CH2.length() < 1)
	 {
	    	CH2 = new String("5");
	 }

//  Following few lines of code decides the DEFAULT values for the " 1st VALUE of CURRENT "


	if ( (CH3 = request.getHeader("CH3")) == null )
      {
	    	CH3 = request.getParameter("CH3"); 

	}
	if ( CH3 == null )
	{
	    	CH3 = new String("5");
	}
	CH3 = CH3.trim();
	if ( CH3.length() < 1)
	{
	    	CH3 = new String("5");
	}

//  Following few lines of code decides the DEFAULT values for the " 1st VALUE of CURRENT "


      if ( (CH4 = request.getHeader("CH4")) == null )
      {
	    	CH4 = request.getParameter("CH4"); 

	}
	if ( CH4 == null )
	{
	    	CH4 = new String("5");
	}
	CH4 = CH4.trim();
	if ( CH4.length() < 1)
	{
	    	CH4 = new String("5");
	}

//  Following few lines of code decides the DEFAULT values for the " 2nd VALUE of CURRENT "

      if ( (CH5 = request.getHeader("CH5")) == null )
      {
	    	CH5 = request.getParameter("CH5"); 
      }
	if ( CH5 == null )
	{
		CH5 = new String("5");
	}
	CH5 = CH5.trim();
	if ( CH5.length() < 1)
	{
	    	CH5 = new String("5");
	}

//  Following few lines of code decides the DEFAULT values for the " 3rd VALUE of CURRENT "


      if ( (CH6 = request.getHeader("CH6")) == null )
      {
	    	CH6 = request.getParameter("CH6"); 
      }
	if ( CH6 == null )
	{
	    	CH6 = new String("5");
	}
	CH6 = CH6.trim();
	if ( CH6.length() < 1)
	{
	    	CH6 = new String("5");
	}

//  Following few lines of code decides the DEFAULT values for the " 4th VALUE of CURRENT "

      if ( (CH7 = request.getHeader("CH7")) == null )
      {
	    	CH7 = request.getParameter("CH7"); 
      }
	if ( CH7 == null )
	{
	    	CH7 = new String("5");
	}
	CH7 = CH7.trim();
	if ( CH7.length() < 1)
	{
	    	CH7 = new String("5");
	}

//  Following few lines of code decides the DEFAULT values for the " 5th VALUE of CURRENT "

      if ( (CH8 = request.getHeader("CH8")) == null )
      {
	    	CH8 = request.getParameter("CH8"); 
      }
	if ( CH8 == null )
	{
	    	CH8 = new String("5");
	}
	CH8 = CH8.trim();
	if ( CH8.length() < 1)
	{
	    	CH8 = new String("5");
	}

//  Following few lines of code decides the DEFAULT values for the " 6th VALUE of CURRENT "


      if ( (CH9 = request.getHeader("CH9")) == null )
      {
	    	CH9= request.getParameter("CH9"); 
      }
	if ( CH9 == null )
	{
	    	CH9 = new String("5");
	}
	CH9 = CH9.trim();
	if ( CH9.length() < 1)
	{
	    	CH9 = new String("5");
	}

//  Following few lines of code decides the DEFAULT values for the " 7th VALUE of CURRENT "


      if ( (CH10 = request.getHeader("CH10")) == null )
      {
	    	CH10 = request.getParameter("CH10"); 
      }

	if ( CH10 == null )
	{
	    	CH10 = new String("5");
	}
	CH10 = CH10.trim();
	if ( CH10.length() < 1)
	{
	    	CH10 = new String("5");
	}


//  Following few lines of code decides the DEFAULT values for the " 8th VALUE of CURRENT "

      if ( (CH11 = request.getHeader("CH11")) == null )
      {
		CH11 = request.getParameter("CH11"); 
      }
	if ( CH11 == null )
	{
	    	CH11= new String("5");
	}
	CH11 = CH11.trim();
	if ( CH11.length() < 1)
	{
	    	CH11 = new String("5");
	}

//  Following few lines of code decides the DEFAULT values for the " 9th VALUE of CURRENT "

      if ( (CH12 = request.getHeader("CH12")) == null )
      {
	    	CH12 = request.getParameter("CH12"); 
      }
	if ( CH12 == null )
	{
	    	CH12 = new String("5");
	}
	CH12 = CH12.trim();
	if ( CH12.length() < 1)
	{
	    	CH12 = new String("5");
	}

//  Following few lines of code decides the DEFAULT values for the " 10th VALUE of CURRENT "


      if ( (CH13 = request.getHeader("CH13")) == null )
      {
		CH13 = request.getParameter("CH13"); 
      }
	if ( CH13 == null )
	{
		CH13 = new String("5");
	}
	CH13 = CH13.trim();
	if ( CH13.length() < 1)
	{
	    	CH13 = new String("5");
	}


//  Following few lines of code decides the DEFAULT values for the " 11th VALUE of CURRENT "


      if ( (CH14 = request.getHeader("CH14")) == null )
      {
		CH14 = request.getParameter("CH14"); 
      }
	if ( CH14 == null )
	{
	   	CH14 = new String("5");
	}
	CH14 = CH14.trim();
	if ( CH14.length() < 1)
	{
	    	CH14 = new String("5");
	}

/*
//  Following few lines of code decides the DEFAULT values for the " 12th VALUE of CURRENT "


         if ( (CH15 = request.getHeader("CH15")) == null )
         {
	    CH15 = request.getParameter("CH15"); 
         }
	 if ( CH15 == null )
	 {
	    CH15 = new String("5");
	 }
	 CH15 = CH15.trim();
	 if ( CH15.length() < 1)
	 {
	    CH15 = new String("5");
	 }
*/
//  Following few lines of code decides the DEFAULT values for the " 1st VALUE of SendFiles@ "


         if ( (Text3 = request.getHeader("Text3")) == null )
         {
	    Text3 = request.getParameter("Text3"); 
         }

	 if ( Text3 == null )
	 {
	    Text3 = new String("0000");
	 }

	 Text3 = Text3.trim();
	 if ( Text3.length() < 1)
	 {
	    Text3 = new String("0000");
	 }

/*
//  Following few lines of code decides the DEFAULT values for the " 2nd VALUE of SendFiles@ "


	if ( (Text4 = request.getHeader("Text4")) == null )
      {
	    	Text4 = request.getParameter("Text4"); 
      }
	if ( Text4 == null )
	{
	    	Text4 = new String("000000");
	}
	Text4 = Text4.trim();
	if ( Text4.length() < 1)
	{
	    	Text4 = new String("000000");
	}


//  Following few lines of code decides the DEFAULT values for the " 3rd VALUE of SendFiles@ "


      if ( (Text5 = request.getHeader("Text5")) == null )
      {
	    	Text5 = request.getParameter("Text5"); 
      }
	if ( Text5 == null )
	{
	    	Text5 = new String("000000");
	}
	Text5 = Text5.trim();
	if ( Text5.length() < 1)
	{
	    	Text5 = new String("000000");
	}


//  Following few lines of code decides the DEFAULT values for the " 4th VALUE of SendFiles@ "


      if ( (Text6 = request.getHeader("Text6")) == null )
      {
	    	Text6 = request.getParameter("Text6"); 
      }
	if ( Text6 == null )
	{
	    	Text6 = new String("000000");
	}
	Text6 = Text6.trim();
	if ( Text6.length() < 1)
	{
	    	Text6 = new String("000000");
	}

*/

//  Following few lines of code sprcifies the FORMAT of date for the fileName

	Date date = new Date();
	Time time = new Time(date.getTime());

      String fileName = time.toString();
      fileName = fileName.replace(':','_');


	file = new File("C:/tomcat/jakarta-tomcat-3.1.1a/jakarta-tomcat-3.1.1a/webapps/ROOT/dange/"+ calendar.get(Calendar.YEAR) + "/" + (1+calendar.get(Calendar.MONTH)) +"/"+ calendar.get(Calendar.DAY_OF_MONTH)+"/"+"Files@"+Text0+ ".dat");

	        
//	 Runtime runtime = Runtime.getRuntime();
//	 runtime.exec("C:/tomcat/jakarta-tomcat-3.1.1a/jakarta-tomcat-3.1.1a/webapps/ROOT/ranade/temp/javac -classpath %CLASSPATH% dirStru.java");
	 fileWriter = new FileWriter ( file);
	 fileWriter.write("Data File Interval: " + firstString + "\n");
	 fileWriter.write("Disturbance Sensitivity: " + secString + "\n");
	 fileWriter.write("New Triggers: 2 \n");

/*
	 fileWriter.write("Voltages: CH1 ->" + CH1 + " CH2 -> " + CH2 + " CH3: " + CH3 + " CH4: " + CH4 + "\n");
	 fileWriter.write("Current 1: CH5 ->" + CH5 + " CH5 -> " + CH5 + " CH6: " + CH6 + " CH7: " + CH7 + "\n");
	 fileWriter.write("Current 2: CH8 ->" + CH8 + " CH9 -> " + CH9 + " CH10: " + CH10 + " CH11: " + CH11 + "\n");
	 fileWriter.write("Current 3: CH12 ->" + CH12 + " CH13 -> " + CH13 + " CH14: " + CH14 + " CH15: " + CH15 + "\n");

*/

/*
fileWriter.write(" 1 " + "  2 " + "  3 " + "\n");
fileWriter.write(" "+CH1+"   "+CH2+"   "+CH3+"\n");
fileWriter.write(" "+CH4+"   "+CH5+"   "+CH6+"\n");
fileWriter.write(" "+CH7+"   "+CH8+"   "+CH9+"\n");
fileWriter.write(" "+CH10+"   "+CH11+"   "+CH12+"\n");
fileWriter.write(" "+CH13+"   "+CH14+"   "+CH15+"\n");
*/

	fileWriter.write("0"+"\t"+CH0+"\n");
	fileWriter.write("1"+"\t"+CH1+"\n");
	fileWriter.write("2"+"\t"+CH2+"\n");
	fileWriter.write("3"+"\t"+CH3+"\n");
	fileWriter.write("4"+"\t"+CH4+"\n");
	fileWriter.write("5"+"\t"+CH5+"\n");
	fileWriter.write("6"+"\t"+CH6+"\n");
	fileWriter.write("7"+"\t"+CH7+"\n");
	fileWriter.write("8"+"\t"+CH8+"\n");
	fileWriter.write("9"+"\t"+CH9+"\n");
	fileWriter.write("10"+"\t"+CH10+"\n");
	fileWriter.write("11"+"\t"+CH11+"\n");
	fileWriter.write("12"+"\t"+CH12+"\n");
	fileWriter.write("13"+"\t"+CH13+"\n");
	fileWriter.write("14"+"\t"+CH14+"\n");


      fileWriter.write("SendFile@: " + Text3 +"\n");
//	fileWriter.write("SendFile@: " + Text4 +"\n");
//	fileWriter.write("SendFile@: " + Text5 +"\n");
//	fileWriter.write("SendFile@: " + Text6 +"\n");
	fileWriter.flush();
	fileWriter.close();


	inet = InetAddress.getByName("128.123.131.237");
	client = new FTPClient(inet);
	client.login("pnm", "trap1234");
	client.setType(FTPTransferType.ASCII);
	client.put(file.toString(),"/home/special/pnm/RA/"+(1+calendar.get(Calendar.MONTH))
		  +"_"+ calendar.get(Calendar.DAY_OF_MONTH)+"_" + calendar.get(Calendar.YEAR)+".txt");
	 client.quit();

//      output.write("Data was successfully updated");
	System.out.println( flag );
      if( Text3 == flag )
	message = " Use The Browser's BACK button to go back & modify the values - Time : " ;
      else
	message = " Data Was Sent Successfully at " ;	
 		
      JOptionPane.showMessageDialog(
	null, message + fileName, " Result ", JOptionPane.INFORMATION_MESSAGE );

      output.flush();
   }

	private void data ( PrintWriter output, HttpServletRequest request, String userString )
	{
	
    	output.write("<HTML><HEAD><TITLE>Electricity Utility Program</TITLE></HEAD>\n");
    	output.write("<BODY BGCOLOR=\"#FFFFF0\"><H1><CENTER>");
    	output.write(" MONITOR  SETTINGS " + "</CENTER></H1><HR>\n");
    	output.write("<FORM " + "ACTION=\"http://128.123.130.247:8080/Submit\">\n");
    	output.write("<INPUT TYPE=\"HIDDEN\" NAME=\"Input\" VALUE=\"YES\">\n");
   	output.write("<INPUT TYPE=\"HIDDEN\" NAME=\"Username\" VALUE=\"" + userString+ "\">\n");
    	output.write("<P><H2><CENTER>STATION  &nbsp&nbsp&nbsp: <INPUT TYPE=\"string\" NAME=\"Text0\"MAXLENGTH=4 ></CENTER></H2><HR>\n");

    	output.write("<P><H3>Data File Interval &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp: <INPUT TYPE=\"string\" NAME=\"Text1\"MAXLENGTH=2 SIZE=10><I>&nbsp( 10 )</I></H3><HR> </P>\n");
    	output.write("<P><H3>Frequency Disturbance Sensitivity  &nbsp&nbsp: <INPUT TYPE=\"string\" NAME=\"Text2\"MAXLENGTH=3 SIZE=10><I>&nbsp( 1 )</I> </H3></P>\n");
    	output.write("<HR><P><H3>Channel Trigger Levels:</H3>\n");
    	output.write("<P>Voltages &nbsp&nbsp: &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp CH1 -> <INPUT TYPE=\"string\" NAME=\"CH1\" MAXLENGTH=1 SIZE=10\n><B><I> &nbsp( 5 ) </B></I>");
    	output.write("&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp CH2 -> <INPUT TYPE=\"string\" NAME=\"CH2\" MAXLENGTH=1 SIZE=10> <B><I> &nbsp( 5 ) </B></I>\n");
    	output.write("&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp CH3 -> <INPUT TYPE=\"string\" NAME=\"CH3\" MAXLENGTH=1 SIZE=10> <B><I> &nbsp( 5 ) </B></I>\n</P>");
    	output.write("<P>Current 1&nbsp: &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp CH4 -> <INPUT TYPE=\"string\" NAME=\"CH4\" MAXLENGTH=1 SIZE=10> <B><I> &nbsp( 5 ) </B></I>\n");
    	output.write("&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp CH5 -> <INPUT TYPE=\"string\" NAME=\"CH5\" MAXLENGTH=1 SIZE=10> <B><I> &nbsp( 5 ) </B></I>\n");
    	output.write("&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp CH6 -> <INPUT TYPE=\"string\" NAME=\"CH6\" MAXLENGTH=1 SIZE=10> <B><I> &nbsp( 5 ) </B></I>\n" +"</P>");
    	output.write("<P>Current 2&nbsp: &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp CH7 -> <INPUT TYPE=\"string\" NAME=\"CH7\" MAXLENGTH=1 SIZE=10 ><B><I> &nbsp( 5 ) </B></I>\n");
   	output.write("&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp CH8 -> <INPUT TYPE=\"string\" NAME=\"CH8\" MAXLENGTH=1 SIZE=10> <B><I> &nbsp( 5 ) </B></I>\n");
    	output.write("&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp CH9 -> <INPUT TYPE=\"string\" NAME=\"CH9\" MAXLENGTH=1 SIZE=10> <B><I> &nbsp( 5 ) </B></I>\n" + " </P>");
    	output.write("<P>Current 3 : &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp CH10 -> <INPUT TYPE=\"string\" NAME=\"CH10\" MAXLENGTH=1 SIZE=10> <B><I> &nbsp( 5 ) </B></I>\n");
    	output.write("&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp CH11 -> <INPUT TYPE=\"string\" NAME=\"CH11\" MAXLENGTH=1 SIZE=10> <B><I> &nbsp( 5 ) </B></I>\n");
    	output.write("&nbsp&nbsp&nbsp&nbsp CH12 -> <INPUT TYPE=\"string\" NAME=\"CH12\" MAXLENGTH=1 SIZE=10> <B><I> &nbsp( 5 ) </B></I>\n</P>");
    	output.write("<P>Current 4 : &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp CH13 -> <INPUT TYPE=\"string\" NAME=\"CH13\" MAXLENGTH=1 SIZE=10> <B><I> &nbsp( 5 ) </B></I>\n");
    	output.write("&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp CH14 -> <INPUT TYPE=\"string\" NAME=\"CH14\" MAXLENGTH=1 SIZE=10> <B><I> &nbsp( 5 ) </B></I>\n");
    	output.write("&nbsp&nbsp&nbsp&nbsp CH15 -> <INPUT TYPE=\"string\" NAME=\"CH15\" MAXLENGTH=1 SIZE=10> <B><I> &nbsp( 5 ) </B></I>\n</P>");
    	output.write("<HR><P><H3>Send Files@  &nbsp&nbsp&nbsp: <INPUT TYPE=\"string\" NAME=\"Text3\"MAXLENGTH=6 SIZE=10>&nbsp&nbsp<INPUT TYPE=\"string\" NAME=\"Text4\"MAXLENGTH=6 SIZE=10> &nbsp&nbsp<INPUT TYPE=\"string\" NAME=\"Text5\"MAXLENGTH=6 SIZE=10>&nbsp&nbsp<INPUT TYPE=\"string\" NAME=\"Text6\"MAXLENGTH=6 SIZE=10><I>&nbsp( 0000 )</I></H3>All the timings for the files should be specified as per 24 Hr. Clock Time ! <HR></P>\n");
    	output.write("<P><center>");
    	output.write("<INPUT TYPE=\"SUBMIT\" VALUE=\"Submit\">");
    	output.write("<INPUT TYPE=\"RESET\" VALUE=\"Reset Fields\"> </P>\n");
    	output.write("</center>");
    	output.write("</P></FORM><HR></BODY></HTML>\n");
    	output.flush();
	
	}

   private void sendError( PrintWriter out, String message )
      throws IOException
   {
      out.write( "<html>" );
      out.write( "<head><title>Error</title></head>" );
      out.write( "<body>" );
      out.write( "<h1>Invalid request</h1>" );
      out.write( "<p>" );
      out.write( message );
      out.write( "</p>" );
      out.write( "</body>" );
      out.write( "</html>" );
      out.flush();
   }

}
