CmdUtils.CreateCommand({
	name:"tokyotosho",
	author: { name: "KnightAR", email: "knightar(a)gmail.com"},
	homepage: "http://dl.getdropbox.com/u/3983/TokyoTosho.html",
	license: "MPL",
	takes:{text:noun_arb_text},
	modifiers:{from: new CmdUtils.NounType("conversion-options",
		["All","Anime","Non-English","Drama","Manga","Music","Music-Video","Music-Videos","Raws","Hentai","Batch","Other"])},
	description:"Searches <a href=\"http://www.tokyotosho.com\">Tokyo Toshokan</a> for torrents matching the given words.",
	icon: "http://tokyotosho.com/favicon.ico",
	preview: function(pBlock, directObj, modifiers) {
		if (modifiers.from && modifiers.from.text) {
			var doc = CmdUtils.getDocumentInsecure();
			var sel = doc.getSelection().substring(0,375);
			if (!sel || sel.length==0) { sel = directObj.text; }
			var htmltitle = "Searching Tokyotosho in the " + modifiers.from.text + " category for " + sel + ":";
		} else if (directObj.text.length > 0) {
			sel = directObj.text;
			var htmltitle = "Searching Tokyotosho for " + directObj.text + ":";
		} else { 
			var htmltitle = "Searches Tokyotosho for torrents.";
			return;
		}
		var doca = context.focusedWindow.document;
		var div = doca.createElement( "div" );

		searchtype = this._convertCat(modifiers.from.text);
		var params = Utils.paramsToString({
			terms: sel,
			type: searchtype
		});
		var entries = [];
		var listHtml = "<br/><div style=\"height:400px;margin:0;overflow:auto;padding:2px 0 0;\"><ol>";
		
		

		var feedUrl='http://www.tokyotosho.com/search.php' + params;
		var self = this;
		
		pBlock.innerHTML = htmltitle + "<br /><br /><img src=\"http://img225.imageshack.us/img225/5609/250cc3.gif\"> Loading Results Please Wait... ";
		
		jQuery.get(feedUrl,function(pagedata) {
			div.innerHTML = pagedata;
			jQuery("tr td.centertext",div).parent().remove();
			var mapLink = jQuery("table.listing",div)[0];
			feed = jQuery("tr",mapLink);

			if( feed.length > 0 ) {
				for (i=0;i<=feed.length;i=i+1) 
				{
					if (!feed[i]) { break; }
					jQuery("td[rowspan='2'] a img", feed[i]).attr("border",0);
					var image = jQuery("td[rowspan='2'] a", feed[i])[0].innerHTML;
					var imageurl = jQuery("td[rowspan='2'] a", feed[i]).attr("href");
					var torrenturl = jQuery("td.desc-top", feed[i])[0].innerHTML;
					
					var theurl = jQuery("td.web a[href~='details.php']", feed[i]).attr("href");
					if (theurl) jQuery("td.web a[href~='details.php']", feed[i]).attr("href",'http://www.tokyotosho.com/' + theurl);
				
					var fromurl = jQuery("td.web", feed[i])[0].innerHTML;
					i=i+1;
					var descbot = jQuery("td.desc-bot", feed[i])[0].innerHTML;
					listHtml += "<li><span style=\"font-size:12pt\"><a border=\"0\" href=\"http://www.tokyotosho.com/"+ imageurl +"\">" + image + "</a>&nbsp;" + torrenturl + " </span><br /><span style=\"font-size:10pt\"> " + fromurl + " | " + descbot.replace('chrome://ubiquity/content/','http://www.tokyotosho.com/') + "</span></li>";
				}
				listHtml += "</ol></div>";
			    pBlock.innerHTML = htmltitle + listHtml;
			}
			else {
			    if (sel.length > 0) {
					pBlock.innerHTML = htmltitle + "<br /><br />No Results Found";
					return;
				}
		    }
		}, "xml");
	},
	_convertCat : function(catname) {
		if (!catname) return 0;
		search = catname.toLowerCase();
		switch ( search ) {
			case 'anime':
				searchtype=1;
				break;
			case 'non-english':
				searchtype=10;
				break;
			case 'drama':
				searchtype=8;
				break;
			case 'manga':
				searchtype=3;
				break;
			case 'music':
				searchtype=2;
				break;
			case 'music videos':
			case 'music-videos':
				searchtype=9;
				break;
			case 'raws':
				searchtype=7;
				break;
			case 'hentai':
				searchtype=4;
				break;
			case 'batch':
				searchtype=11;
				break;
			case 'other':
				searchtype=5;
				break;
			default:
			case 'all':
				searchtype=0;
				break;
		}
		return searchtype;
	},
	execute: function(directObj, modifiers) {
		if (modifiers.from && modifiers.from.text) {
			searchtype = this._convertCat(modifiers.from.text);
			var doc = CmdUtils.getDocumentInsecure();
			var sel = doc.getSelection().substring(0,375);
			if (!sel || sel.length==0) { sel = directObj.text; }

			var params = Utils.paramsToString({
				terms: sel,
				type: searchtype
			});

			story_url='http://www.tokyotosho.com/search.php' + params;
			Utils.openUrlInBrowser(story_url);
		}
		else {
			searchtype=0;
			var params = Utils.paramsToString({
				terms: directObj.text,
				type: searchtype
			});

			story_url='http://www.tokyotosho.com/search.php' + params;
			Utils.openUrlInBrowser(story_url);
		}
	}
});