package net;

import java.net.URLEncoder;
import java.util.Vector;
import java.io.UnsupportedEncodingException;

public class MetaSearch
        implements Runnable {

    String ss;
    String email;
    //
    //request.getParameter ("searchString"));

    Thread thread = new Thread(this);

    Vector sv = new Vector();

    private void initSearchVector() {
        sv.addElement(
                "http://www.alltheweb.com"
                + "/cgi-bin/search?"
                + "exec=FAST+Search&type=all&query="
                + ss
        );
        sv.addElement(
                "http://www.go.com/Split?pat=go&col=WW&qt="
                + ss);
        sv.addElement("http://www.google.com/search?q="
                + ss + "&btnG=Google+Search");
        sv.addElement(
                "http://www.northernlight.com/nlquery.fcg?"
                + "cb=0&qr="
                + ss
                + "&search.x=28&search.y=8");
        sv.addElement(
                "http://search.excite.com/search.gw?"
                + "c=net.web&s=" + ss);
        sv.addElement(
                "http://search.yahoo.com/bin/search?p="
                + ss);
        sv.addElement(
                "http://www.lycos.com/srch/?"
                + "lpv=1&loc=searchhp&query="
                + ss);
        sv.addElement(
                "http://hotbot.lycos.com/?MT="
                + ss
                + "&SM=MC&DV=0&LG=any&DC=10&DE=2&AM1=MC");
    }

    public MetaSearch(String searchString, String _email) {
        // for jdk1.4.x, uncomment the try,catch
        //try {
            // used to be that the encoding
            // was not passed as an argument.
            // however, this was deprecated.
           // ss = URLEncoder.encode(searchString,"UTF-8");
           ss = URLEncoder.encode(searchString);
        //} catch (UnsupportedEncodingException e) {
        //    e.printStackTrace();
        //}
        email = _email;
        initSearchVector();
        thread.start();
    }

    public void run() {
        String message = getSearchResults();
        Smtp sm = new Smtp();
        sm.setMailServerHostName("192.168.1.95");
        sm.setRecipientEmail(email);
        sm.setSenderEmail("lyon@docjava.com");
        sm.setMessage(message);
        sm.start();
    }

    public String getSearchResults() {
        String searchResults =
                "Search for " + ss + " yields:<hr><p>";
        for (int i = 0; i < sv.size(); i++) {
            String url = (String) sv.elementAt(i);
            System.out.println("url=" + url);
            String s = "<hr><p>" + url
                    + " yields:<p>"
                    + net.web.Browser.toString(url);
            searchResults =
                    searchResults + s;
        }
        return searchResults;
    }

    public static void main(String args[]) {
        new MetaSearch(
                "java server pages",
                "lyon@docjava.com");
    }

}