tmanfList = new Array("Advance-Rumely","Rumely","AGCO","AGCO Allis","AGCO White","Ag King","AgraCat","Agrinar","Agri-Power","AgTrac","Allis Chalmers","Aultman & Taylor","ArmaTrac","ATC","Terratrac","Avery","B.F. Avery","Belarus","Benye","Best","Big Bud","Bima","Bobcat","Branson","Bristol","Buhler Versatile","Bukh","CaseIH","Carraro","Caterpillar","Century","Challenger","Chamberlain","Claas","Cletrac","Cockshutt","CO-OP","County","Corbitt","Cub Cadet","Custom","Daedong","David Brown","Deutz","Deutz-Allis","Deutz-Fahr","Doe","Dongfeng","Eagle","Earthmaster","East Wind","Ebro","Erkunt","Escorts","Farm Pro","Fate-Root-Heath","Farmall","Farmtrac","Ferguson","Fendt","Fiat","Fiatagri","Force Motors","Ford","Fordson","Ford-New Holland","Fortschritt","Foton","Gibson","Haas","Hart-Parr","Hesston","Hinomoto","Hitachi","Holder","Holt","Hurlimann","International Harvester","IMT","Iseki","J.I. Case","Case","Jacobsen","JCB","Jinma","John Deere","Deere","Kioti","Kubota","Knudson","Lamborghini","Landini","Lanz","Lenar","Leyland","Limb","Lindner","Long","LS","Marshall","Massey Ferguson","Massey-Harris","Mahindra","McConnell-Marc","McCormick-Deering","McCormick Intl","McKee","Memo","Mercedes-Benz","Merlin","Minneapolis-Moline","Mitsubishi","Montana","New Holland","NorTrac","Nuffield","Oliver","Pauny","Pasquali","Porsche","Ranch Hand","Ransomes","Renault","Rhino","Rome","SAME","Samson","Satoh","Saunderson","Sawyer-Massey","Schluter","Schramm","Shibaura","Silver King","Siromer","Sonalika","Steiger","Steyr","Suzue","Swaraj","TAFE","Toro","Twin City","Tytan","TYM","Ursus","UTB/Universal","Valmet","Valtra","Valpadana","Volvo","Versatile","Wagner","Waterloo Boy","Wingin","Wisconsin Tractor","White","Woods & Copeland","Wuzheng","Yanmar","YTO","Zanello","Zen-noh","Zetor","all");
tmanfURL = new Array("rumely/rumely-tractors","rumely/rumely-tractors","agco/agco-tractors","agcoallis/agcoallis-tractors","agcowhite/agcowhite-tractors","agking/agking-tractors","agracat/agracat-tractors","agrinar/agrinar-tractors","agripower/agripower-tractors","agtrac/agtrac-tractors","allischalmers/allischalmers-tractors","aultmantaylor/aultmantaylor-tractors","armatrac/armatrac-tractors","atc/atc-tractors","atc/atc-tractors","avery/avery-tractors","bfavery/bfavery-tractors","belarus/belarus-tractors","benye/benye-tractors","best/best-tractors","bigbud/bigbud-tractors","bima/bima-tractors","bobcat/bobcat-tractors","branson/branson-tractors","bristol/bristol-tractors","buhlerversatile/buhlerversatile-tractors","bukh/bukh-tractors","caseih/caseih-tractors","carraro/carraro-tractors","cat/cat-tractors","century/century-tractors","challenger/challenger-tractors","chamberlain/chamberlain-tractors","claas/claas-tractors","cletrac/cletrac-tractors","cockshutt/cockshutt-tractors","coop/coop-tractors","county/county-tractors","corbitt/corbitt-tractors","cubcadet/cubcadet-tractors","custom/custom-tractors","daedong/daedong-tractors","davidbrown/davidbrown-tractors","deutz/deutz-tractors","deutzallis/deutzallis-tractors","deutzfahr/deutzfahr-tractors","doe/doe-tractors","dongfeng/dongfeng-tractors","eagle/eagle-tractors","earthmaster/earthmaster-tractors","eastwind/eastwind-tractors","ebro/ebro-tractors","erkunt/erkunt-tractors","escorts/escorts-tractors","farm-pro/farm-pro-tractors","fate-root-heath/fate-root-heath-tractors","farmall/farmall-tractors","farmtrac/farmtrac-tractors","ferguson/ferguson-tractors","fendt/fendt-tractors","fiat/fiat-tractors","fiat/fiat-tractors","forcemotors/forcemotors-tractors","ford/ford-tractors","fordson/fordson-tractors","fordnh/fordnh-tractors","fortschritt/fortschritt-tractors","foton/foton-tractors","gibson/gibson-tractors","haas/haas-tractors","hartparr/hartparr-tractors","hesston/hesston-tractors","hinomoto/hinomoto-tractors","hitachi/hitachi-tractors","holder/holder-tractors","holt/holt-tractors","hurlimann/hurlimann-tractors","ih/ih-tractors","imt/imt-tractors","iseki/iseki-tractors","case/case-tractors","case/case-tractors","jacobsen/jacobsen-tractors","jcb/jcb-tractors","jinma/jinma-tractors","johndeere/johndeere-tractors","johndeere/johndeere-tractors","kioti/kioti-tractors","kubota/kubota-tractors","knudson/knudson-tractors","lamborghini/lamborghini-tractors","landini/landini-tractors","lanz/lanz-tractors","lenar/lenar-tractors","leyland/leyland-tractors","limb/limb-tractors","lindner/lindner-tractors","long/long-tractors","ls/ls-tractors","marshall/marshall-tractors","massferg/massferg-tractors","masseyharris/masseyharris-tractors","mahindra/mahindra-tractors","mcconnellmarc/mcconnellmarc-tractors","mccormickdeering/mccormickdeering-tractors","mccormickti/mccormickti-tractors","mckee/mckee-tractors","memo/memo-tractors","mercedesbenz/mercedesbenz-tractors","merlin/merlin-tractors","minnmoline/minnmoline-tractors","mitsubishi/mitsubishi-tractors","montana/montana-tractors","newholland/newholland-tractors","nortrac/nortrac-tractors","nuffield/nuffield-tractors","oliver/oliver-tractors","pauny/pauny-tractors","pasquali/pasquali-tractors","porsche/porsche-tractors","ranchhand/ranchhand-tractors","ransomes/ransomes-tractors","renault/renault-tractors","rhino/rhino-tractors","rome/rome-tractors","same/same-tractors","samson/samson-tractors","satoh/satoh-tractors","saunderson/saunderson-tractors","sawyermassey/sawyermassey-tractors","schluter/schluter-tractors","schramm/schramm-tractors","shibaura/shibaura-tractors","silver-king/silver-king-tractors","siromer/siromer-tractors","sonalika/sonalika-tractors","steiger/steiger-tractors","steyr/steyr-tractors","suzue/suzue-tractors","swaraj/swaraj-tractors","tafe/tafe-tractors","toro/toro-tractors","twincity/twincity-tractors","tytan/tytan-tractors","tym/tym-tractors","ursus/ursus-tractors","utb/utb-tractors","valmet/valmet-tractors","valtra/valtra-tractors","valpadana/valpadana-tractors","volvo/volvo-tractors","versatile/versatile-tractors","wagner/wagner-tractors","waterlooboy/waterlooboy-tractors","wingin/wingin-tractors","wisconsin/wisconsin-tractors","white/white-tractors","woods-copeland/woods-copeland-tractors","wuzheng/wuzheng-tractors","yanmar/yanmar-tractors","yto/yto-tractors","zanello/zanello-tractors","zennoh/zennoh-tractors","zetor/zetor-tractors","index");
lmanfList = new Array("AGCO","Allis Chalmers","Amigo","Ariens","Bolens","Cub Cadet","J.I. Case","Case","Colt","Deutz-Allis","Ford","General Electric","Gravely","Honda","Husqvarna","Ingersoll","Iseki","Jacobsen","John Deere","Kubota","Massey Ferguson","Minneapolis-Moline","MTD","Oliver","Panzer","Poulan","Sabre","Scotts","Simplicity","Snapper","Steiner","Toro","Troy-Bilt","Ventrac","Wheel Horse","White","Yard Machines","Yard-Man","all");
lmanfURL = new Array("agco/agco-lawn-tractors","allischalmers/allischalmers-lawn-tractors","amigo/amigo-lawn-tractors","ariens/ariens-lawn-tractors","bolens/bolens-lawn-tractors","cubcadet/cubcadet-lawn-tractors","case/case-lawn-tractors","case/case-lawn-tractors","colt/colt-lawn-tractors","deutzallis/deutzallis-lawn-tractors","ford/ford-lawn-tractors","generalelectric/generalelectric-lawn-tractors","gravely/gravely-lawn-tractors","honda/honda-lawn-tractors","husqvarna/husqvarna-lawn-tractors","ingersoll/ingersoll-lawn-tractors","iseki/iseki-lawn-tractors","jacobsen/jacobsen-lawn-tractors","johndeere/johndeere-lawn-tractors","kubota/kubota-lawn-tractors","massferg/massferg-lawn-tractors","minnmoline/minnmoline-lawn-tractors","mtd/mtd-lawn-tractors","oliver/oliver-lawn-tractors","panzer/panzer-lawn-tractors","poulan/poulan-lawn-tractors","sabre/sabre-lawn-tractors","scotts/scotts-lawn-tractors","simplicity/simplicity-lawn-tractors","snapper/snapper-lawn-tractors","steiner/steiner-lawn-tractors","toro/toro-lawn-tractors","troybilt/troybilt-lawn-tractors","ventrac/ventrac-lawn-tractors","wheelhorse/wheelhorse-lawn-tractors","white/white-lawn-tractors","yardmachines/yardmachines-lawn-tractors","yardman/yardman-lawn-tractors","index");
function tdMfGo()
{
	var schbox = document.getElementById("manfsearch");
	for (i in manfList){
		if(schbox.value.toLowerCase() == manfList[i].toLowerCase()){
			window.location='http://www.tractordata.com/' + baseDIR + '/' + manfURL[i] + '.html';
			return;
		}
	}
	window.location='http://www.tractordata.com/farm-tractors/index.html';
}

var baseDIR;

function lawnSearch()
{
	ManfSearch(lmanfList, lmanfURL, 'lawn-tractors/tractor-brands');
}

function tdManfSearch()
{
	ManfSearch(tmanfList, tmanfURL, 'farm-tractors/tractor-brands');
}

function ManfSearch(manfList, manfURL, dir)
{
	baseDIR = dir

	var elem = document.getElementById("manfsearch");
	this.elem = elem;


	var me = this;
	this.match = new Array();
	this.inputText = null;
	this.highlighted = -1;
	this.ML = document.getElementById("manflist");

	elem.setAttribute("autocomplete","off");

	if(!elem.id)
	{
		var id = "manflist" + idCounter;
		idCounter++;

		elem.id = id;
	}


	elem.onkeydown = function(ev)
	{
		var key = me.getKey(ev);

		switch(key)
		{
			case 9: //tab
				me.useMatch();
			break;

			case 13: //enter
				if(this.highlighted != -1){	me.useMatch(); }
				me.findPage();
			break;

			case 27: //esc
				me.hideML();
			break;

			case 38: //key up
				if (me.highlighted > 0){ me.highlighted--; }
				me.changeHighlight(key);
			break;

			case 40: //key down
				if (me.highlighted < ( me.match.length - 1)){ me.highlighted++; }
				me.changeHighlight(key);
			break;
		}
	};

	elem.onkeyup = function(ev) 
	{
		var key = me.getKey(ev);

		if(key == 40){ return; }

		if (this.value != me.inputText && this.value.length > 0){
			me.inputText = this.value;
			me.getMatch();
			me.createML();
			me.positionML();
			me.showML();
		}else{ me.hideML();	}
	};


	this.findPage = function()
	{
		for (i in manfList) 
		{
			if(this.inputText.toLowerCase() == manfList[i].toLowerCase()){
				window.location='http://www.tractordata.com/' + baseDIR + '/' + manfURL[i] + '.html';
				return;
			}
		}
		window.location='http://www.tractordata.com/td/index.html';
	}


	this.useMatch = function()
	{
		if (this.highlighted > -1)
		{
			this.elem.value = this.match[this.highlighted];
			this.inputText = this.match[this.highlighted];
			this.hideML();
			setTimeout("document.getElementById('" + this.elem.id + "').focus()",0);
		}
	};


	this.showML = function()
	{
		this.ML.style.display = 'block';
	};


	this.hideML = function()
	{
		this.ML.style.display = 'none';
		this.highlighted = -1;
	};


	this.changeHighlight = function()
	{
		var lis = this.ML.getElementsByTagName('LI');
		for (i in lis)
		{
			var li = lis[i];

			if (this.highlighted == i)
			{
				li.className = "selected";
			}
			else
			{
				li.className = "";
			}
		}
	};

	/********************************************************
	Position the dropdown div below the input text field.
	********************************************************/
	this.positionML = function()
	{
		var el = this.elem;
		var x = 0;
		var y = el.offsetHeight;
	
		//Walk up the DOM and add up all of the offset positions.
		while (el.offsetParent && el.tagName.toUpperCase() != 'BODY')
		{
			x += el.offsetLeft;
			y += el.offsetTop;
			el = el.offsetParent;
		}

		x += el.offsetLeft;
		y += el.offsetTop;

		this.ML.style.left = x + 'px';
		this.ML.style.top = y + 'px';
	};


	this.createML = function()
	{
		var ul = document.createElement('ul');
	
		//Create an array of LI's for the words.
		for (i in this.match)
		{
			var word = this.match[i];
	
			var li = document.createElement('li');
			var a = document.createElement('a');
			a.href="javascript:false";
			a.innerHTML = word;
			li.appendChild(a);
	
			if (me.highlighted == i)
			{
				li.className = "selected";
			}
	
			ul.appendChild(li);
		}
	
		this.ML.replaceChild(ul,this.ML.childNodes[0]);
	

		/********************************************************
		mouseover handler for the dropdown ul
		move the highlighted suggestion with the mouse
		********************************************************/
		ul.onmouseover = function(ev)
		{
			//Walk up from target until you find the LI.
			var target = me.getEventSource(ev);
			while (target.parentNode && target.tagName.toUpperCase() != 'LI')
			{
				target = target.parentNode;
			}
		
			var lis = me.ML.getElementsByTagName('LI');
			
	
			for (i in lis)
			{
				var li = lis[i];
				if(li == target)
				{
					me.highlighted = i;
					break;
				}
			}
			me.changeHighlight();
		};

		/********************************************************
		click handler for the dropdown ul
		insert the clicked suggestion into the input
		********************************************************/
		ul.onclick = function(ev)
		{
			me.useMatch();
			me.hideML();
			me.cancelEvent(ev);
			me.findPage();
			return false;
		};
	
		this.ML.className="manflist";
		this.ML.style.position = 'absolute';

	};

	/********************************************************
	determine which of the suggestions matches the input
	********************************************************/
	this.getMatch = function()
	{
		this.match = new Array();
		for (i in manfList) 
		{
			var match = manfList[i];
			
			if(match.toLowerCase().indexOf(this.inputText.toLowerCase()) == "0")
			{
				this.match[this.match.length]=match;
			}
		}
	};


	this.getKey = function(ev)
	{
		if(ev){	return ev.keyCode; } //Moz
		if(window.event){ return window.event.keyCode; } //IE
	};


	this.getEventSource = function(ev)
	{
		if(ev){	return ev.target; } //Moz
		if(window.event){ return window.event.srcElement; } //IE
	};

	this.cancelEvent = function(ev)
	{
		if(ev){	ev.preventDefault(); ev.stopPropagation(); } //Moz
		if(window.event){ window.event.returnValue = false;	} //IE
	}
}

//counter to help create unique ID's
var idCounter = 0;
