PR = {
	formSubmit: function() {
		urls = $F("urls")
		keyword = $F("keyword")
		uk = $F("uk")
		if (keyword) {
			if (uk) {
				new Ajax.Request("/clickability.py/scrape_google_ie", {
					method:"post",
					postBody:"keyword="+escape(keyword),
					onSuccess:function(t) {
						var results = eval('('+t.responseText+')')
						urls = []
						results.each(function(r) {
							urls.push(r.link)
						})
						PR.handleURLs(urls)
					}
				})
			} else { 
				searcher = new GwebSearch()
				searcher.setNoHtmlGeneration()
				searcher.setResultSetSize(GSearch.LARGE_RESULTSET)
				searcher.setSearchCompleteCallback(this,
					PR.submitCallback,
					[searcher])
				searcher.execute(keyword)
			}
		} else {
			PR.handleURLs(urls.split("\n"))
		}
	},
	submitCallback: function(searcher) {
		var results = []
		searcher.results.each(function(r) {
			results.push(r.unescapedUrl)
		})
		PR.handleURLs(results)
	},
	handleURLs: function(urls) {
		var q = []
		urls.each(function(d) {
			q.push("urls="+escape(d))
		})
		query = q.join("&")
		new Ajax.Request("/clickability.py/multi_url_pr", {
			method:"post",
			postBody:query,
			onSuccess: function(t) {
				var results = eval('('+t.responseText+')')
				tbody = PR.createTable()
				results.each(function(r) {
					bw = 10
					if (typeof r.pagerank == "number")
						w = bw * r.pagerank
					else
						w = 0
					wno = (bw * 10) - w
					tbody.appendChild(Builder.node("tr", [
						Builder.node("td", r.url),
						Builder.node("td", r.pagerank.toString()),
						Builder.node("td", {"class":"prbar"}, [
							Builder.node("div", {"class":"pr", "style":"width: "+w+"px"}),
							Builder.node("div", {"class":"nopr", "style":"width: "+wno+"px"})
						])

					]))
				})
				new Effect.Highlight("results")
			}
		})
	},
	createTable: function() {
		Element.infanticide("results_cont")
		t = Builder.node("table", [
			Builder.node("thead", [
				Builder.node("tr", [
					Builder.node("th", "URL"),
					Builder.node("th", "PageRank"),
					Builder.node("th")
				])
			])
		])
		tbody = Builder.node("tbody")
		t.appendChild(tbody)
		$("results_cont").appendChild(t)
		Element.show("results")
		return tbody
	}
}
