/* 
 * If you're reading this, you're already dead. 
 * There is no reality. There is only this. This time. 
 * This place. This Contest. Be the best. Unleash your power. 
 * Lead your team in a battle of the mind. Win the Tournament. 
 * If you can't, step aside for someone who will. 
 * Keep your eyes on the prize, and your finger on the trigger.
 */
(function(){
$(document).ready(function() {
	/* //shame on me
    try {
		type;
	} catch (e) {
		type = '';
	}*/
    if (typeof type == "undefined") {
        type = '';
    }
	switch (type) {
		case 'm': // General
			stats_etc();
			break;
		case 'w': // Weapons
			stats_etc();
			loadChart(weaponsCreatePC);
			break;
		case 'v': // Vehicles
			$(".vpl * td:contains('Destroyed')").attr("title", "How many vehicles of this kind you've destroyed");
			stats_etc();
			loadChart(vehiclesCreatePC);
			break;
		case 't': // Top
			$.getJSON('/ajax.php?topJSON', function (data) {
				topp(data);
			});
			break;
		case 'advs': // Advanced Search
			$.getJSON('/ajax.php?topJSON', function (data) {
				advsearch(data);
			});
			break;
        case 'int':
            loadChart(interesting);
            break;
		default:
			break;
	}

    feedbackDialog();
});

function feedbackDialog() {
    var dialog = document.getElementById("fb_dialog");
    var dialogForm = document.getElementById('fb_dialog_form');

    dialogForm.firstChild.style.display = "none";

    var progressText = dialog.childNodes[dialog.childNodes.length - 1];


    var jq_dialog = $(dialog);
    window.jq_dialog = jq_dialog;
    var feedbackSpan = document.getElementById('feedback_span');
    
    jq_dialog.dialog({
		autoOpen: false,
		modal: true,
		width: 300,
		height: 450,
		position: ['center', 50],
		buttons: {
            Send: function() {
                if (!dialogForm._inProgress) {
                    dialogForm.ajaxSubmit();
                }
            },
			Close: function() {
				$(this).dialog("close");
			}
		},
        beforeclose: function() {
            dialogForm._inProgress = false;
            progressText.innerHTML = "";
        }
	});

    feedbackSpan.childNodes[0].onclick = function() {
        jq_dialog.dialog("open");
        return false;
    }

    dialogForm._inProgress = false;
    dialogForm.ajaxSubmit = function() {
        this._inProgress = true;
        progressText.innerHTML = "In progress..."
        var request = {};
        for (var i=0; i < this.length; i++) {
            request[this[i].name] = this[i].value;
        }
        if (request.subj == "" || request.body == "") {
            this._inProgress = false;
            progressText.innerHTML = "Please enter required fields.";
            return;
        }

        request["spam"] = "Nothin'!"; // too much spam

        $.post(this.action, request, function(data) {
            progressText.innerHTML = data + "<br /><i>Closing in 5 sec</i>";
            setTimeout("jq_dialog.dialog('close');", 5000);
        }, 'text')
    }
}

function addPlayer(Nick, ownerid) {
	function bExists(obj, ownerid) {
		for (var i=0; i < obj.length; i++) {
			if (obj[i][1] == ownerid) return true;
		}
		return false;
	}
	var object;
	try {
		object = $.evalJSON(unescape(document.cookie.match(/recent_players=([^;]+)/)[1]));
	} catch (e) {
		object = [];
	}
	
	while (object.length > 6) {
		object.pop();
	}
	if (!bExists(object, ownerid)) {
		object.unshift([Nick, ownerid]);
	}
	
	document.cookie = 'recent_players=' + $.compactJSON(object).replace(/[,"'; ]/g, encodeURIComponent) + ';path=/';
}

function loadChart(cb) {
	google.load("visualization", "1", {packages: ["piechart", "table", "linechart"], callback : cb});
}

function vehiclesCreatePC() {
	var data = function() {	
		var int_re = new RegExp("^\\d+$");
		var data = {
				cols: [
				       {id: 'name', label: "Vehicle", type: "string"},
				       {id: 'kills', label: "Kills", type: "number"},
				       {id: 'deaths', label: "Deaths", type: "number"},
				       {id: 'ratio', label: "Ratio", type: "number"},
				       {id: 'suicides', label: "Suicides", type: "number"},
				       {id: 'tm', label: "Time", type: "number"},
				       {id: 'fph', label: "FPH", type: "number"},
				       {id: 'destr', label: "Destroyed", type: "number"}
				],
				
				rows: []
		};
		
		var tds = $(".vpl td");
		
		var vehicle = -1;
		var kills = 0, deaths = 0, suicides = 0;
		
		function wtf(data, k, d, s) {
			data.rows[vehicle].c[1] = {v: k};
			data.rows[vehicle].c[2] = {v: d};
			data.rows[vehicle].c[3] = {v: (k / d) || 0};
			if (data.rows[vehicle].c[3].v == Infinity) {
				data.rows[vehicle].c[3].f = "∞";
			} else {
				data.rows[vehicle].c[3].f = data.rows[vehicle].c[3].v.toFixed(3);
			}
			data.rows[vehicle].c[4] = {v: s};
			
			data.rows[vehicle].c[6] = {v: (k / (data.rows[vehicle].c[5].v / 3600) || 0)};
			if (data.rows[vehicle].c[6].v == Infinity) {
				data.rows[vehicle].c[6].f = "∞";
			} else {
				data.rows[vehicle].c[6].f = data.rows[vehicle].c[6].v.toFixed(3);
			}
		}
		
		$.each(tds, function(i) {
			if (this.rowSpan > 1 || this.innerHTML == 'Hoverboard') { // New Vehicle
				if (vehicle != -1) { // dealing with previous vehicle
					wtf(data, kills, deaths, suicides);
					kills = deaths = suicides = 0;
				}
			
				vehicle++;
				data.rows.push({c: []});
				data.rows[vehicle].c[0] = {v: this.innerHTML};
			} else if (this.colSpan == 4) {
				if (this.className.indexOf("time") != -1) {
					data.rows[vehicle].c[5] = {v: parseTime(this.innerHTML), f: this.innerHTML};
				} else { //destroyed
					data.rows[vehicle].c[7] = {v: parseInt(this.innerHTML)};
				}
			} else if (int_re.test(this.innerHTML)) {
				switch (this.cellIndex) {
				case 1:
					kills += parseInt(this.innerHTML);
					break;
				case 2:
					deaths += parseInt(this.innerHTML);
					break;
				case 4:
					suicides += parseInt(this.innerHTML);
					break;
				default:
					break;
				}
			}
		});
		wtf(data, kills, deaths, suicides);
		
		return new google.visualization.DataTable(data, 0.5);
	}();
	var chart_params = {width: 500, height: 350};
	data.sort([{column: 1, desc: true}]);
	
	var v_summary = document.getElementById("v_summary");
	var v_table = document.getElementById("v_table");
	var v_chart = document.getElementById("v_chart");
	
	var Table = new google.visualization.Table(v_table);
	Table.draw(data, {sort: 'event'});
	
	cData = new google.visualization.DataView(data);
	cData.setColumns([0,1]);
	var chart = new google.visualization.PieChart(v_chart);
	chart.draw(cData, chart_params);
	
	google.visualization.events.addListener(Table, 'sort', function(event) {
		data.sort([{column: event.column, desc: true}]);
		Table.draw(data, {sort: 'event'});
		switch (event.column) {
		case 0:
		case 3:
		case 6:
			$(v_chart).hide();
			break;
		default:
			$(v_chart).show();
			cData.setColumns([0, event.column]);
			chart.draw(cData, chart_params);
			break;
		}
	});
	
	
	var v_summary_btn = document.getElementById("v_summary_btn");
	v_summary_btn.style.display = 'block';
	$(v_summary_btn).bind('click', function() {
		$(v_summary).slideToggle(175);
	});
	
}
function weaponsCreatePC() {
	var table = $(".pl")[0];
	
	var data = function (table) {
		var colors = [
		      	  	"#7B68EE",//xloc
		      	  	"#8B4513",//hammer
		      	  	"#996666",//enforcers 
		      	  	"#ADFF2F",//bio
		      	  	"#993399",//shock
		      	  	"#CC33CC",//combo
		      	  	"#32CD32",//link
		      	  	"#6699CC",//stinger
		      	  	"#DAA620",//flak
		      	  	"#DC143C",//rocket
		      	  	"#585944",//sniper
		      	  	"#36332c",//hs
		      	  	"#D2B48C",//avril
		      	  	"#336633",//deemer
		      	  	"#FF0000",//insta
		      	  	"#FA8072",//spider
		      	  	"#228B22",//shaped
		      		"#66CDAA" //env 
		];

		var rows = table.tHead.rows[0];
		var data = {
			cols: [
			       {id: 'name', label: rows.cells[0].innerHTML, type: "string"},
			       {id: 'kills', label: rows.cells[1].innerHTML, type: "number"},
			       {id: 'deaths', label: rows.cells[2].innerHTML, type: "number"},
			       {id: 'ratio', label: rows.cells[3].innerHTML, type: "number"},
			       {id: 'suicides', label: rows.cells[4].innerHTML, type: "number"},
			       {id: 'color', label: null, type: "string"},
			       {id: 'id', label: null, type: "number"}
			],
			
			rows: []
		};
      	
      	rows = table.tBodies[0].rows;
      	var row;
      	var oRow;
      	for (var i=0; i < rows.length; i++) {
      		row = rows[i];
      		oRow = {c: []};
      		oRow.c.push({v: row.cells[0].innerHTML}); // name
      		oRow.c.push({v: parseInt(row.cells[1].innerHTML)}); // kills
      		oRow.c.push({v: parseInt(row.cells[2].innerHTML)}); // deaths
      		var ratio = parseFloat(row.cells[3].innerHTML); //ratio
      		if (isNaN(ratio)) {
      			oRow.c.push({v: Infinity, f: row.cells[3].innerHTML});
      		} else {
      			oRow.c.push({v: ratio});
      		}
      		oRow.c.push({v: parseInt(row.cells[4].innerHTML)}); // suicides
      		oRow.c.push({v: colors[i]}); // color
      		oRow.c.push({v: i}); // id
      		
      		data.rows.push(oRow);
      	}
      	return new google.visualization.DataTable(data, 0.5);
	}(table);
	
	var chartCell = document.getElementById('chart_cell');
	var chartDiv = document.createElement('div');
	chartCell.appendChild(chartDiv);
	
	var chart = new google.visualization.PieChart(chartDiv);
	chart._toggleData = function() {
		var names = [null, "Kills", "Deaths", null, "Suicides"];
		try {
			if (names[this._num] === null) {
				chartCell.style.visibility = 'hidden';
				return;
			}
		} catch (e) {
			chartCell.style.visibility = 'hidden';
			return;
		}
		chartCell.style.visibility = 'visible';
		var view = new google.visualization.DataView(this._chartData);
		var colors = function(data) {
			var colors = [];
			for (var i=0; i < data.getNumberOfRows(); i++) {
				colors.push(data.getValue(i, 5));
			}
			return colors;
		}(this._chartData);
		view.setColumns([0, this._num]);
		this.draw(view, {width: 500, height: 400, is3D: false, title: names[this._num], colors: colors});
		document.getElementById('cb_merge').parentNode.style.display = 'inline';
		return;
	};
	
	var tableDiv = document.createElement('div');
	table.parentNode.appendChild(tableDiv);
	var vTable = new google.visualization.Table(tableDiv);
	
	var tData = new google.visualization.DataView(data);
	tData.setColumns([0,1,2,3,4]);
	vTable.draw(tData, {sort: 'event'});
	
	var mergedData = function(data) {
		var rows = [[5,4], [11,10]]; // [from, to]
		var cols = [1,2,4];
		
		var newData = data.clone();
		
		$.each(rows, function(i, val) {
			$.each(cols, function (ii, vval) {
				newData.setValue(val[1], vval, newData.getValue(val[1], vval) + newData.getValue(val[0], vval));
				newData.setValue(val[0], vval, 0);
			});
		});
		$.each(rows, function(i, val) {
			newData.removeRow(val[0] - i);
		});
		
		return newData;
	}(data);
	
	chart._chartData = mergedData;
	
	google.visualization.events.addListener(vTable, 'sort', function(event) {
		switch (event.column) {
			case 0:
				data.sort(6);
				break;
			default:
				data.sort([{column: event.column, desc: true}]);
				mergedData.sort([{column: event.column, desc: true}]);
				break;
		}
		this.draw(tData, {sort: 'event'});
		chart._num = event.column;
		chart._toggleData();
		return false;
	});
	$("#cb_merge").change(function () {
		if (this.checked) { // merge
			chart._chartData = mergedData;
		} else { // split
			chart._chartData = data;
		}
		chart._toggleData();
	});
	table.parentNode.removeChild(table);
}

function parseTime(s) {
	var arr = s.split(" ");
	var time = 0;
	$.each(arr, function() {
		if (this.lastIndexOf("h") != -1) {
			time += parseInt(this) * 60 * 60;
		} else if (this.lastIndexOf("min") != -1) {
			time += parseInt(this) * 60;
		} else if (this.lastIndexOf("s") != -1) {
			time += parseInt(this);
		}
	});
	return time;
}

function recursiveSearch(what, where) {
	var depth = { depth: [] };
	function search(what, where, depth) {
		if (typeof where == 'object') {
			depth.depth.push(0);
			for (var i=0; i < where.length; i++) {
				depth.depth[depth.depth.length - 1] = i;
				search(what, where[i], depth);
			}
			depth.depth.pop();
		} else {
			if (what == where) {
				throw "Done!";
			}
		}
	}
	try {
		search(what, where, depth);
	} catch (e) {
		if (e == "Done!") return depth.depth;
	}
}

function stats_etc() {
	$("td[title]").append("<sup> *</sup>").tooltip({
		delay: 550,
		showURL: false,
		track: true
	});
	$("#switch").change(function() {
		var opt = this.value;
		var url = window.location.href.replace(/\?.*/, '');
		if (opt != 'pure') {
			url += "?" + opt;
		}
		window.location.href = url;
	});
	var ownerid = parseInt(window.location.href.match(/player([0-9]+)\//)[1]);
	var Nick = document.title.match(/^([^ ]+)/)[1];

	addPlayer(Nick, ownerid);

}

/**
 * 
 * @param div [object HTMLDivElement]
 * @param data
 * @param callback function(is_final, id)
 * @return
 */
function createCoolSelector(div, data, callback) {
	var s_widths = ['10em', '10em', '14em', '15em'];
	
	function fill(sel, data) {
		for (var i=sel.parentNode.cellIndex + 1; i < sel.parentNode.parentNode.cells.length; i++) {
			sel.parentNode.parentNode.cells[i].firstChild.innerHTML = '';
		}
		switch (typeof(data)) {
		case 'object':
			sel = sel.parentNode.parentNode.cells[sel.parentNode.cellIndex + 1].childNodes[0];
			
			for (i=0; i<data.length; i++) {
				var opt = document.createElement('option');
				
				opt._data = data[i][1];
				opt.innerHTML = data[i][0];
				
				sel.appendChild(opt);
			}
			$(sel).bind('change', function() {
				fill(this, this.options[this.selectedIndex]._data);
			});
			callback(false, null);
			break;
		case 'string':
			callback(true, data);
			break;
		}
	}
	
	function fillTable(table, what) {
		var row = table.rows[0];
		var cell = document.createElement('td');
		cell.appendChild(what);
		row.appendChild(cell);
	}
	var table = document.createElement('table');
	var tbody = document.createElement('tbody');
	tbody.appendChild(document.createElement('tr'));
	table.appendChild(tbody)
	for (var i=0; i < 4; i++) {
		var s = document.createElement('select');
		s.size = 10;
		s.style.width = s_widths[i];
		fillTable(table, s)
	}
	div.appendChild(table);
	
	s = table.rows[0].cells[0].firstChild;
	for (i=0; i < data.length; i++) {
		var opt = document.createElement('option');
		opt.innerHTML = data[i][0];
		s.appendChild(opt);
	}
	
	$(s).bind('change', function() {
		fill(this, data[this.selectedIndex][1]);
	});
}
 
function topp(data) {
	
	var select_near = document.getElementById('near');
	var button = document.getElementById('send');
	var custom = document.getElementById('input_custom');
	var dialog = $(document.getElementById('s_dialog'));
	
	try {
		id = window.location.href.match(/top\/([^#?]+)/)[1];
	} catch (e) {
		id = '';
	}
	
	function restoreSelector(id, selects) {
		if (id.charAt(0) == 'c') {
			custom.checked = true;
			id = id.replace(/^(c)/, 'p');
		}
		var list = recursiveSearch(id, data);
		if (list) {
			var j = 0;
			//var s;
			for (var i=0; i < list.length; i++) {
				selects[j][list[i]].selected = true;
				$(selects[j]).change();
				
				i++; //jump over one
				j++;
			}
		}
	}
	
	
	function restorePlayer(id) {
		for (var j=0; j < select_near.options.length; j++) {
			if (select_near.options[j].value == id) {
				select_near.options[j].selected = true;
				break;
			}
		}
	}
	
	function fillPlayers() {
		var optgroup = select_near.childNodes[1];
		if (optgroup.nodeName != 'OPTGROUP') {
			optgroup = document.createElement('optgroup');
			optgroup.label = 'Recent';
			select_near.insertBefore(optgroup, select_near.childNodes[1])
		}
		optgroup.innerHTML = '';
		var object;
		try {
			object = $.evalJSON(unescape(document.cookie.match(/recent_players=([^;]+)/)[1]));
		} catch (e) {
			object = [];
		}
		
		if (object.length == 0) {
			select_near.removeChild(optgroup);
		} else {
			for (var i=0; i < object.length; i++) {
				var opt = document.createElement('option');
				opt.innerHTML = object[i][0];
				opt.value = object[i][1];
				optgroup.appendChild(opt);
			}
		}
		
	}
	
	
	button._selected = null;
	button.disabled = true; // to prevent caching
	
	createCoolSelector(document.getElementById('top'), data, function(fin, id) {
			if (fin) {
				button._selected = id;
				button.disabled = false;
			} else {
				button._selected = null;
				button.disabled = true;
			}
	});
	
	fillPlayers();
	
	if (id != "") {
		restoreSelector(id, $("#top * select"));
		
		var near = window.location.href.match(/p=([0-9]+)/);
		if (near) {
			var table = $('.search');
			if (table.length > 0) {
				table = table[0];
				for (var i=1; i < table.rows.length; i++) {
					if (table.rows[i].cells[1].childNodes[0].href.match(near[1])) {
						table.rows[i].style.backgroundColor = '#FFFFCC';
						var nick = table.rows[i].cells[1].childNodes[0].innerHTML;
						addPlayer(nick, parseInt(near[1]));
						fillPlayers();
						restorePlayer(near[1])
						break;
					}
				}
			}
		}
	}
	
	
	$(button).bind('click', function() {
		if (custom.checked) this._selected = this._selected.replace(/^(.)/, 'c');
		var url = window.location.href.replace(/(top\/)([^#?]*)/,  "$1"+this._selected);
		url = url.replace(/\?p=[0-9]+/, '');
		switch (select_near.selectedIndex) {
		case 0:
		case (select_near.length - 1):
			break;
		default:
			url += '?p=' + select_near.options[select_near.selectedIndex].value;
			break;
		}
		window.location.href = url;
	});
	
	dialog.dialog({ 
		autoOpen: false, 
		modal: true,
		width: 300,
		height: 400,
		position: ['center', 50],
		buttons: {
			"Cancel": function() {
				$(this).dialog("close");
			}
		},
		beforeclose: function () {
			if (select_near.selectedIndex == (select_near.length - 1)) {
				select_near.options[0].selected = true;
			}
		}
	});
	
	var dialog_results = $("#s_dialog p");
	
	
	$("#s_dialog form").bind('submit', function () {
		dialog_results[0].innerHTML = 'Loading...';
		$.getJSON("/ajax.php", {qsearch: this.elements[0].value}, function (data) {
			if (data) {
				var table = document.createElement('table');
				var row, cell;
				
				table.appendChild(document.createElement('thead'));
				table.appendChild(document.createElement('tbody'));
				
				
				row = document.createElement('tr');
				
				cell = document.createElement('th');
				cell.innerHTML = 'Nick';
				row.appendChild(cell);
				cell = document.createElement('th');
				cell.innerHTML = 'Elo';
				row.appendChild(cell);
				cell = document.createElement('th');
				cell.innerHTML = 'Kills';
				row.appendChild(cell);
				
				table.tHead.appendChild(row);
				
				function cell_callback() {
					var ownerid = data[this.parentNode.sectionRowIndex][0];
					var nick = this.innerHTML;
					
					addPlayer(nick, ownerid);
					fillPlayers();
					restorePlayer(ownerid);
					
					dialog.dialog('close');
				}
				
				for (var i=0; i < data.length; i++) {
					row = document.createElement('tr');
					for (var j=1; j < data[i].length; j++) { // skipping ownerid
						cell = document.createElement('td');
						cell.innerHTML = data[i][j];
						row.appendChild(cell);
						$(cell).bind('click', cell_callback);
					}
					table.tBodies[0].appendChild(row);
				}
				
				dialog_results[0].innerHTML = '';
				dialog_results[0].appendChild(table);
			} else {
				dialog_results[0].innerHTML = 'No players have been found';
			}
		});
		return false;
	});
	
	$(select_near).bind('change', function () {
		if (this.selectedIndex == (this.length - 1)) {
			dialog.dialog('open');
		} else if (this.options[this.selectedIndex].value == 'noop') {
			this.options[0].selected = true; // disable again
		}
	});
	
	
}

function interesting() {
    var chart1div = document.getElementById('chart1');
    var chart1data = function() {
        var data = {
            cols: [
                   {id: 'frags', label: "Frags", type: "string"},
                   {id: 'players', label: "Players", type: "number"},
            ],
            rows: []
        };
        for (n in playersByFrags) {
            data.rows.push({c: [{v: n}, {v: playersByFrags[n]}]});
        }
        
        return new google.visualization.DataTable(data, 0.5);
    }();

    var chart1 = new google.visualization.LineChart(chart1div);
    chart1.draw(chart1data, {width: 800, height: 600, legend: 'none',
        title: 'Interesting Info', titleX: 'Frags', titleY: "Players"});

}

function advsearch(data) {
	var filter = $("#filter input")[0];
	var sortBy =  $("#sortby select")[0];
	
	var custom = document.getElementById('input_custom');
	
	function insertIntoFilter () {
		filter.value += '['+this._id+']';
	}
	var helpers = $("#filter #helpers span");
	helpers.each(function () {
		this._id = this.title;
		this.title = '';
	});
	helpers.bind('click', insertIntoFilter);
	
	var button = document.getElementById('add_field');
	$(button).bind('click', function() {
		var bCustom = custom.checked;
		
		
		function alreadyAdded(s) {
			var subj;
			var a = $("#helpers > span");
			for (var i=0; i < a.length; i++) {
				subj = a[i]._id;
				if (subj == s) return true;
			}
			return false;
		}
		
		function getTree(sep) {
			var a = $("#fields select");
			var arr = [];
			for (var i=0; i < a.length; i++) {
				try {
					arr.push(a[i].options[a[i].selectedIndex].value);
				} catch (e) {}
			}
			return arr.join(sep);
		}
		
		var selected = this._selected;
		if (bCustom) {
			selected = selected.replace(/^p/, 'c');
		}
		
		if (!alreadyAdded(selected)) {
			var span = document.createElement('span');
			span.innerHTML = getTree('→');
			span._id = selected;
			if (bCustom) {
				span.innerHTML += ' [Custom]';
			}
			
			var opt = document.createElement('option');
			opt.value = selected;
			opt.innerHTML = span.innerHTML;
			
			var remover = document.createElement('span');
			remover.innerHTML = '(delete)';
			remover.className = 'remover'
			span.appendChild(remover);
			
			sortBy.appendChild(opt);
			
			$(remover).bind('click', function() {
				this.parentNode.parentNode.removeChild(this.parentNode);
				sortBy.removeChild(opt);
				return false;
			});
			
			$(span).bind('click', insertIntoFilter)
			
			$("#helpers")[0].appendChild(span);
			
		}
		
	});
	createCoolSelector(document.getElementById('fields'), data, function(fin, id) {
		if (fin) {
			button._selected = id;
			button.disabled = false;
		} else {
			button._selected = null;
			button.disabled = true;
		}
	});

    var count = document.getElementById('bCount');
	
	$("#send").bind('click', function () {

        var queryString = '';

        if (count.checked) {
           queryString += 'count';
        } else {
		queryString += 'fields=';
            var a = $("#helpers > span");
            var fields = [];
            for (var i=0; i < a.length; i++) {
                switch (a[i]._id) {
                    case 'Nick':
                    case 'ownerid':
                        break;
                    default:
                        fields.push(a[i]._id);
                        break;
                }
            }
            queryString += fields.join(',');


            var sortBy = $("#sortby select :selected")[0].value;
            var sortOrd = 'd';
            if ($("#sortby input")[1].checked == true) {
                sortOrd = 'a';
            }
            queryString += '&sb=' + sortBy + '&so=' + sortOrd;
        }
		
		var filter = $("#filter input")[0].value;
		queryString += '&fltr=' + escape(filter).replace(/\+/g,"%2B");
		
		window.open('/advsearch?' + queryString);
	});
	
}
// Yeah, I was lazy to implement it myself

//+ Jonas Raoni Soares Silva
//@ http://jsfromhell.com/string/rot13 [rev. #1]

String.prototype.rot13 = function(){
	return this.replace(/[a-zA-Z]/g, function(c){
		return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);
	});
};
})();