import java.io.*;
import java.util.*;
import javax.microedition.rms.*;



class Salvestamine{
	
	static int 							punkte=0;	
	static int 							koht=0;
	static String 						nimi="     ";
	static RecordStore 					rs;
	static byte[] 						kompott=null;
	static String[] 					nimed=new String[15];
	static int[] 						punktiskoorid=new int[15];		
	
	public Salvestamine(){
		//System.out.println("klass tehtud");		
		try{
			rs=RecordStore.openRecordStore("hoidla", true);						
		}catch(Exception e){}
	}
	/*
	 * Muudab andmed kirjele arusaadavaks baidimassiiviks
	 */
	static byte[] tee_baitideks(int k,String n){		
		ByteArrayOutputStream bos=new ByteArrayOutputStream();		
  		DataOutputStream dos=new DataOutputStream(bos);  		
		try{
   			//UTF paneb stringi
   			//kirjutab inti	
    		dos.writeInt(k);    		
    		dos.writeUTF(n);
    		dos.close();
    		kompott=bos.toByteArray();
   		}catch(Exception e){
   			System.out.println("mingi kala"+e);
   		}   			   			
		return kompott;
	}
	static String loe_nimi(int i) throws Exception{
		
		ByteArrayInputStream bis=new ByteArrayInputStream(rs.getRecord(i));
		DataInputStream dis=new DataInputStream(bis);
		int arv=dis.readInt();
		String otsitav=dis.readUTF();
					
		return otsitav;
	}
	static int loe_punktid(int i) throws Exception{
		ByteArrayInputStream bis=new ByteArrayInputStream(rs.getRecord(i));
		DataInputStream dis=new DataInputStream(bis);
		int otsitav=dis.readInt();
		String nimi=dis.readUTF();
					
		return otsitav;
	}
	/*
	 * Kui kirjeid üldse puuduvad, tekitatakse esimene. 
	 * Kui juba mõni kirje leidub, vaadatakse massiiv tagntpoolt ettepoole liikudes läbi ning leitakse 
	 * punktiskoori asukoht tabelis.
	 * Seejärel tõstetakse väiksemad väärtused alates antud skoorist ühe koha võrra massiivis edasi ja kirjutatakse hetke skoor
	 * omale kohale.
	 * Lõpuks kirjutatakse kogu massiiv kirjetesse tagasi
	 */
	static void seiv(String n, int skoor){		
		byte[] baidipuder=tee_baitideks(0,"");
		try{
			int jnr=5;
			int kirjeid=rs.getNumRecords();
			
			if(kirjeid<3){
				// lisame kirjed
				while(kirjeid<3){
						rs.addRecord(baidipuder, 0, baidipuder.length);
						kirjeid=rs.getNumRecords();
						System.out.println("aa");
				}
			}
				// võrdlemine / ülekirjutamine
				for(int i=1;i<=kirjeid;i++){
					punktiskoorid[i]=loe_punktid(i);
					nimed[i]=loe_nimi(i);
				}
				// uue kirje asukoha leidmine
				for(int i=kirjeid;i>=1;i--){
					if((n==nimed[i])&&(skoor==punktiskoorid[i])){
					}else{
						if(skoor>punktiskoorid[i])jnr=i;
					}
				}
				// tõstame teised andmed edasi
				for(int i=kirjeid;i>=jnr;i--){
					punktiskoorid[i+1]=punktiskoorid[i];
					nimed[i+1]=nimed[i];
				}
				// uus kirje omale kohale
				punktiskoorid[jnr]=skoor;
				nimed[jnr]=n;
				// kirjuta kõik kirjesse
				for(int i=1;i<=3;i++){
					baidipuder=tee_baitideks(punktiskoorid[i],nimed[i]);
					rs.setRecord(i,baidipuder, 0, baidipuder.length);
				}
			
		}catch(Exception e){
			//System.out.println("jälle kala:"+e);
		}
	}
	/*
	 * Salvestab kogu kupatuse kirjetesse
	 */
	void kirjuta_kirjesse(int i,String j,int kuhu) throws Exception{		
  	}
  	void info(){
		try{
			int kirjeid=rs.getNumRecords();
			//System.out.println("kirjeid on kokku"+kirjeid);
			for(int i=1;i<=rs.getNumRecords();i++){
				//System.out.println(i+" = "+loe_punktid(i)+" : "+loe_nimi(i));
			}
		}catch(Exception e){
			//System.out.println(e);
		}
	}
  	
	static void imporditudAndmed(String[] a, String b[]){
		int i=0;
		System.out.println("****************SALVESTAMINE NIMED*************");
		for(int j=0; j<a.length;j++){
			if(a[j]!=null){				
				nimed[j]=a[j];
				System.out.println(nimed[j]);
			}
		}
		System.out.println("****************SALVESTAMINE PUNKTID*************");
	try{
		for(int j=0; j<b.length;j++){
			if(b[j]!=null){
				int n=Integer.parseInt(b[j]);
				punktiskoorid[j]=n;
				System.out.println(punktiskoorid[j]);
			}
		}
	}catch(Exception e){System.out.println("viga:"+e);}
		
		
		//njaa();
		
	}
	static void njaa(){
		for(int j=0;j<nimed.length;j++){
			if(nimed[j]!=null){
				System.out.println("j:"+j);
				seiv(nimed[j],punktiskoorid[j]);
			}
		}
	}
}


