/*
 * Created on 29-Apr-2009
 *
 * TODO 
 */
package uk.ac.roe.wfau;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;

import net.mar.SLALIB;

/**
 * @author MAR
 *
 */
public class SSAQueryRetrieverThread extends QueryRetrieverThread{
    static String [] RANAMES={"ra"};
    static String [] DECNAMES={"dec"};
    
    String []  getRANames(){
        return RANAMES;
    }
    String []  getDecNames(){
        return DECNAMES;
    }

    
    public synchronized String getHTMLTableColorRowOdd() {
        return "#66CCFF";
    };
    public synchronized String getHTMLTableColorRowEven() {
        return "#CCCCCC";
    };
    
    /**
     * @param dbURL
     */
    public SSAQueryRetrieverThread(String dbURL) {
        super(dbURL);
        // TODO Auto-generated constructor stub
    }

    public static String [][] showArray = { {"ra","dec"}};
   // boolean [] showBoolean = new boolean [] {false};
    
    
    public StringBuffer getLinkInfo () {
        StringBuffer st=new StringBuffer("");
        if (showBoolean[1]) {
            st.append("The checkbox column can be used to obtain thumbnail images.<p>");
        }
   
        return st;
    }
    
    static String FORMSTART="<form action=\"http://horus.roe.ac.uk/sss/cgi-bin/checkbox.cgi\" method=post>";
    static String FORMEND =        "<SCRIPT LANGUAGE=\"javascript\">"+
	"function checkAll(){"+
	"for (var i=0;i<document.forms[0].ch.length;i++)"+
	"document.forms[0].ch[i].checked = true;}"+
	"function uncheckAll(){"+
	"for (var i=0;i<document.forms[0].ch.length;i++)"+
	"document.forms[0].ch[i].checked = false;}"+
	"</script>"+
	"To extract images centred on the RA and Decs returned in the above table "+
	"check the boxes of the objects you wish to view, select the waveband(s) "+
	"required and enter a size."+
	"<p><input class=\"FontSans\" type=\"button\" name=\"selectall\" value=\"&nbsp;check all&nbsp;\" onclick=\"checkAll();\">"+
	"&nbsp&nbsp;<input class=\"FontSans\" type=\"button\" name=\"selectall\" value=\"uncheck all\" onclick=\"uncheckAll();\">"+
	"<p>Survey/Waveband (tick at least one box):<br>"+
	"<table  class=\"norm\" bgcolor=\"#ffffff\" border=\"0\">"+
	"<tr><td>Blue (UK-J/POSSII-B)</td><td><INPUT TYPE=\"checkbox\" NAME=\"waveband1\" VALUE=\"1\"></td>"+
	"<tr><td>Red 1st epoch (ESO-R/POSSI-e)</td><td><INPUT TYPE=\"checkbox\" NAME=\"waveband2\" VALUE=\"1\"></td>"+
	"<tr><td>Red 2nd epoch (UK-R/POSSII-R)</td><td><INPUT TYPE=\"checkbox\" NAME=\"waveband3\" VALUE=\"1\"></td>"+
	"<tr><td>InfraRed (UK-I/POSSII-I)</td><td><INPUT TYPE=\"checkbox\" NAME=\"waveband4\" VALUE=\"1\"></td>"+
	"</table><p>Size of extracted box: <input type=\"text\" name=\"size\" value=\"1\" size=4 maxlength=4> arcmin (maximum 3)<p>"+
	"<input class=\"FontSans\" type=submit value=\"getThumbnails\">";
    
    public String getPreTableHTML () {        
        return FORMSTART;
    }

    public StringBuffer getShowTitles () {
        StringBuffer st=new StringBuffer("");
            if (showBoolean[1]) {
                st.append("<th nowrap=\"nowrap\">&nbsp;</th>");
            }
        return st;
    }
    public String getExtraPostTableHTML() {
        if (showBoolean[1] && row >= 1) {
        return FORMEND+"</form>\n";
        }
        else {
            return "</form>\n";
        }
    }
    public StringBuffer getShowLinks (ResultSet rs) {
        StringBuffer st=new StringBuffer("");
        try {
            if (showBoolean[1]) {
                st.append("<td><input type=checkbox name=ch value=\""+rs.getString("ra")+":"+
                        rs.getString("dec")+"\"></td>");
            }
            
        }
        catch (Exception e){
          return EMPTYSTRINGBUFFER;  
        }
        
        return st;
    }
    
    public void setShowBoolean(ResultSetMetaData rsmd) {
        
        showBoolean=showArrayPresent(rsmd,showArray);
        //logger.info(showBoolean[0]+" "+showBoolean[1]);
    }

}
