// JavaScript Document
var lastMode;
var currMode = 1;

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

// Used to capture the ENTER as quick way of initiating search
document.onkeypress  = function DefaultPress(e){
	if (!e) { var evt = window.event; } else { var evt = e; }
	if (evt.keyCode == 13 && currMode >= 4)
	{
		customSearch();
		return false;
	}
	else
		return true;
}
// called when user clicks any one of the six search buttons
function formSearch(newSearch)
{
	var search_text = document.getElementById("txt");
	var search_owner = document.getElementById("rro");
	var search_scale = document.getElementById("scale");
	var sort_col = document.getElementById("scol");
	var sort_dir = document.getElementById("sdir");
	
	var page = document.getElementById("p").value;
	if (newSearch || page == null || page == "")
		page = 1;
	var url = "exchange.php?p="+page;
	if (search_text.value && search_text.value != "")
		url += "&txt=" + encodeText(search_text.value);
	if (search_owner.value != "")
		url += "&rro=" + search_owner.value;
	if (search_scale.value != "")
		url += "&scale=" + search_scale.value;
	if (sort_col.value != "")
		url += "&scol="+sort_col.value;
	if (sort_dir.value != "")
		url += "&sdir="+sort_dir.value;
	window.location.href = url;
}
function encodeText(text) {
     var txt = escape(text);
     txt = txt.replace(/\//g,"%2F");
     txt = txt.replace(/\?/g,"%3F");
     txt = txt.replace(/=/g,"%3D");
     txt = txt.replace(/&/g,"%26");
     txt = txt.replace(/@/g,"%40");
     return txt;
}
// Called when user selects page from navigation drop down
function onPageChange()
{
	formSearch();
}
function nextPage()
{
	var page_nav = document.getElementById("p");
	gotoPage(parseInt(page_nav.value)+1);
}
function prevPage()
{
	var page_nav = document.getElementById("p");
	gotoPage(parseInt(page_nav.value)-1);
}
function gotoPage(pageNo)
{
	document.getElementById("p").value = pageNo;
	onPageChange();
}
function getRailroadOwners_callback()
{
	var rro_id = queryString("rro");
	if (xmlHttp.readyState == 4)
	{
		//alert(xmlHttp.responseText);
		var sel = document.getElementById("form_rr_owner");
		// Add none
		var rows = getAjaxObjectArray();
		for(var i=0;i<rows.length;i++)
		{
			var opt = document.createElement("option");
			opt.value = rows[i].id;
			opt.text = rows[i].name;
			if (rows[i].id == rro_id) opt.selected = true;
			sel.options.add(opt);
		}
	}
}
function getBuilders_callback()
{
	var bld_id = queryString("bld");
	if (xmlHttp.readyState == 4)
	{
		//alert(xmlHttp.responseText);
		var sel = document.getElementById("form_builder");
		// Add none
		var rows = getAjaxObjectArray();
		for(var i=0;i<rows.length;i++)
		{
			var opt = document.createElement("option");
			opt.value = rows[i].id;
			opt.text = rows[i].name;
			if (rows[i].id == bld_id) opt.selected = true;
			sel.options.add(opt);
		}
	}
}
function getImporters_callback()
{
	var imp_id = queryString("imp");
	if (xmlHttp.readyState == 4)
	{
		//alert(xmlHttp.responseText);
		var sel = document.getElementById("form_importer");
		// Add none
		var rows = getAjaxObjectArray();
		for(var i=0;i<rows.length;i++)
		{
			var opt = document.createElement("option");
			opt.value = rows[i].id;
			opt.text = rows[i].name;
			if (rows[i].id == imp_id) opt.selected = true;
			sel.options.add(opt);
		}
	}
}

function update_subcat(obj, sel)
{
	var url="exchange_ajax.php";
	url=url+"?fn=get_subcats&cat="+obj.value+"&s="+sel;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) { return; }
	xmlHttp.onreadystatechange = function () { stateChanged('get_subcats'); };
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChanged(Jarg) {
	if (xmlHttp.readyState==4) {
		ajax_response = xmlHttp.responseText;
		switch(Jarg) {
			case 'get_subcats':
				var sep = '~';
				var Qarray = ajax_response.split(sep);
				var form_sel = document.getElementById(Qarray[0]);
				while(form_sel.length > 1) {
					// form_sel.options[form_sel.length-1] = null;
					form_sel.remove(form_sel.length-1);
				}
				var opt=document.createElement('option');
				opt.value='';
				opt.text='ALL';
				try { form_sel.add(opt,null); }
				catch(ex) { form_sel.add(opt); }
				for(i=1; i<=(Qarray.length-1); i++) { // first is sel name
					opt=document.createElement('option');
					var row = Qarray[i].split("|");
					opt.value=row[0];
					opt.text=row[1];
					try { form_sel.add(opt,null); }
					catch(ex) { form_sel.add(opt); }
				}
				break;
		}
		xmlHttp.close;
	}
}
