/*
 * Created on 22-Oct-2009
 *
 * TODO 
 */
package uk.ac.roe.wfau;

import javax.servlet.http.HttpSession;

/**
 * @author mar
 *
 */


public class VDFSSchema {
    public static final String VSAARCHIVE="VSA";
    public static final String WSAARCHIVE="WSA";
    public static final String SSAARCHIVE="SSA";
    public static final String OSAARCHIVE="OSA";
    public static final String GESARCHIVE="GES";
    public static final int SSAARCHIVEID=0;
    public static final int WSAARCHIVEID=1;
    public static final int VSAARCHIVEID=2;
    public static final int OSAARCHIVEID=3;
    public static final int GESARCHIVEID=4;
    public static final String VSASUPPORT="vsa-support@roe.ac.uk";
    public static final String WSASUPPORT="wsa-support@roe.ac.uk";
    public static final String OSASUPPORT="osa-support@roe.ac.uk";
    public static final String GESSUPPORT="ges-support@roe.ac.uk";
    
    public static final String [] EXTERNALSURVEYS={"bestdr1..","bestdr2..","bestdr3..","bestdr5..","bestdr7..","bestdr8..","seguedr6..","ssa.."};
            //,"first","glimpse","iras","mgc","nvss","seguedr6","twoxmm","twomass"};
    public static final String [] ALLSQLSERVERS={"amenhotep","ahmose","thutmose","hatshepsut",
            "ramses1","ramses2","ramses3","ramses4","ramses5","ramses6","ramses7","ramses8","ramses9","ramses10","ramses11","ramses12","ramses13"};
    
    public static final String UPLOADTABLE="#userTable";
    
        public static int getPositionInArray(String str,String [] strArray) {
        for (int i=0;i<strArray.length;i++) {
            if (strArray[i].equalsIgnoreCase(str)) {
                return i;
            }
        }
        return -1;
    }

    public static int getPositionInArray(int si ,int [] intArray) {
        for (int i=0;i<intArray.length;i++) {
            if (si==intArray[i]) {
                return i;
            }
        }
        return -1;
    }
    public static String getDateFromFile(String filename,int archiveID) {
        int pos;
        if (archiveID==WSAARCHIVEID) {
            pos=filename.lastIndexOf("/w20");
            if (pos >0) {
            return filename.substring(pos+2,pos+10);
            }
            else {
                return "";
            }
                    
        }
        else if (archiveID==VSAARCHIVEID) {
            pos=filename.lastIndexOf("/v20");
            if (pos >0) {
            return filename.substring(pos+2,pos+10);
            }
            else {
                return "";
            }
        }
        else {
            return "";
        }
    }
    public static int getArchiveID(String archive) {
        if (archive.equalsIgnoreCase(VSAARCHIVE)) {
            return VSAARCHIVEID;
        }
        else if (archive.equalsIgnoreCase(SSAARCHIVE)) {
            return SSAARCHIVEID;
        }
        else if (archive.equalsIgnoreCase(OSAARCHIVE)) {
            return OSAARCHIVEID;
        }
        else if (archive.equalsIgnoreCase(GESARCHIVE)) {
            return GESARCHIVEID;
        }
        else {
            return WSAARCHIVEID;
        }
    }
    
    
    public static String getUCDOfCol(int archiveID,String col) {
        switch (archiveID) {
        case WSAARCHIVEID:
        	return WSASchema.getUCDofCol(col);
        case VSAARCHIVEID:
            return VSASchema.getUCDofCol(col);
        case OSAARCHIVEID:
            return null;
        case GESARCHIVEID:
        	return null;
        default:
        	return null;      
        }
    }
    
    public static String getDescOfCol(int archiveID,String col) {
        switch (archiveID) {
        case WSAARCHIVEID:
        	return WSASchema.getDescofCol(col);
        case VSAARCHIVEID:
            return VSASchema.getDescofCol(col);
        case OSAARCHIVEID:
            return null;
        case GESARCHIVEID:
        	return null;
        default:
        	return null;      
        }
    }
    
    public static String getSupportEmail(int archiveID) {
        switch (archiveID) {
        case WSAARCHIVEID:
        	return WSASUPPORT;
        case VSAARCHIVEID:
            return VSASUPPORT;
        case OSAARCHIVEID:
            return OSASUPPORT;
        case GESARCHIVEID:
        	return GESSUPPORT;
        default:
        	return WSASUPPORT;      
        }
    	
        /*
        if (archiveID == VSAARCHIVEID) {
            return VSASUPPORT;
        }
        else {
            return WSASUPPORT;
        }*/
    }
    
    public static String getAllSurveys(int archiveID) {
        switch (archiveID) {
        case VSAARCHIVEID:
            return VSASchema.ALLSURVEYS;
        case OSAARCHIVEID:
            return OSASchema.ALLSURVEYS;
        default:
            return WSASchema.ALLSURVEYS;      
        }
    }
    public static String getFilterName(int filterID,int archiveID) {
        switch (archiveID) {
        case VSAARCHIVEID:
            return VSASchema.getFilterName(filterID);
        case OSAARCHIVEID:
            return OSASchema.getFilterName(filterID);
        default:
            return WSASchema.getFilterName(filterID);      
        }
    }   
    
    public static String getSourceViewName(int progID,int archiveID) {
        switch (archiveID) {
        case VSAARCHIVEID:
            return VSASchema.getSourceViewName(progID);
        default:
            return WSASchema.getSourceViewName(progID);      
        }
    }  
    public static String getSourceTableName(int progID,int archiveID) {
        switch (archiveID) {
        case VSAARCHIVEID:
            return VSASchema.getSourceTableName(progID);
        case OSAARCHIVEID:
            return OSASchema.getSourceTableName(progID);
        default:
            return WSASchema.getSourceTableName(progID);      
        }
    }  
    public static String getDetectionTableName(int progID,int archiveID) {
        switch (archiveID) {
        case VSAARCHIVEID:
            return VSASchema.getDetectionTableName(progID);
        case OSAARCHIVEID:
            return OSASchema.getDetectionTableName(progID);
        default:
            return WSASchema.getDetectionTableName(progID);      
        }
    }  
    
    public static int [] getReqFilters(String db, int progID, int archiveID) {
        switch (archiveID) {
        case VSAARCHIVEID:
            return VSASchema.getReqFilters(db,progID);
        default:
            return WSASchema.getReqFilters(db,progID);      
        }
    }   
    
    public static String getDefaultList(int[] reqFilters, String table,
            String database, int progID,int archiveID) {
        switch (archiveID) {
        case VSAARCHIVEID:
            return VSASchema.getDefaultList(reqFilters,table,database,progID);
        default:
            return WSASchema.getDefaultList(reqFilters,table,database);      
        }
    }   
    
    public static String getMergeTableName(int surveyID,String archive){
        if (archive.equalsIgnoreCase("vsa")) {
            return VSASchema.getMergeTableName(surveyID);
        }
        if (archive.equalsIgnoreCase("osa")) {
            return OSASchema.getMergeTableName(surveyID);
        }
        else {
            return WSASchema.getMergeTableName(surveyID);
        }
    }
    public static String getSurveyName(int progID,int archiveID) {
        switch (archiveID) {
        case VSAARCHIVEID:
            return VSASchema.getSurveyName(progID);
        case OSAARCHIVEID:
            return OSASchema.getSurveyName(progID);
        default:
            return WSASchema.getSurveyName(progID);      
        }
    }
    public static boolean isProprietary(String community) {
       return VSASchema.isProprietary(community);
    }
    
    public static boolean isProprietary(String community, int archiveID) {
    	  switch (archiveID) {
          case VSAARCHIVEID:
              return VSASchema.isProprietary(community);
          case OSAARCHIVEID:
              return OSASchema.isProprietary(community);
          default:
        	  VSASchema.isProprietary(community);      
          }
		return false;
     }
    public static boolean isReserved(String community) {
        if (community != null && (isProprietary(community) || community.toLowerCase().contains(WSASchema.NONSURVEYCOMMUNITY.toLowerCase()))) {
            return true;
        }
        else {
            return false;
        }
    }

}