
function CCargoTypes(parent, options)
{
	if (typeof parent == "string")
	{
		parent = document.getElementById(parent);
	}
	
	
	this.scombo = new CSearchCombo(parent, 
		// options
		{
			css : 
			{
				listClassName : "scombo_list",
				textBoxClassName : "cargotype_textbox inputbox",
				itemClassName : "scombo_item",
				selectionClassName : "scombo_selection"
			},
			
			showOnFocus : true,

			maxlength : 60,

			getItemFullText : CCargoTypes.getItemText,
			
			getItemSearchText : CCargoTypes.getItemText,
			
			searchFill : CCargoTypes.searchFill
		}// END options
	); // END new CSearchCombo
}


CCargoTypes.cargoTypesList = BT.data.CargoTypes;


CCargoTypes.create = function(parent, options)
{
	var c = new CCargoTypes(parent, options);

	return c;
}



/* public functions
-----------------------------------------------
*/

CCargoTypes.prototype.setText = function(text)
{
	this.scombo.setText(text);
}


CCargoTypes.prototype.getText = function()
{
	return this.scombo.getText();
}





/* helper functions
---------------------------------------------------------
*/

CCargoTypes.searchFill = function(combo, stext)
{
	var truckTypes = CCargoTypes.cargoTypesList;
	var ttname;
	var atext = ["<b style='color:blue'>", "", "</b>",  ""];
	
	// search variables
	var slen = stext.length;
	var clen;	
	var c1;
	var c2;

	stext = stext.toLowerCase();
	for (var i = 0, num = truckTypes.length; i < num; i++)
	{
		ttname = truckTypes[i];

		// compare case insensitive
		clen = ttname.length;			
		if (slen > clen) continue;			
		for (var j = 0; j < slen; j++)
		{
			c1 = stext.charCodeAt(j);
			c2 = ttname.charCodeAt(j);
			
			if (c2 >= 65 && c2 <= 90) c2 += 32;
			
			if (c1 != c2) break;
		}
		
		// match ?
		if (j == slen)
		{
			// the bold text in location name
			atext[1] = ttname.substring(0, slen);
			// normal text in location name
			atext[3] = ttname.substring(slen);
		
			combo.addItem(atext, i);
		}
	}
}

CCargoTypes.getItemText = function(index)
{
	return CCargoTypes.cargoTypesList[index];
}










function CTruckTypes(parent, options)
{
	if (typeof parent == "string")
	{
		parent = document.getElementById(parent);
	}
	
	
	this.scombo = new CSearchCombo(parent, 
		// options
		{
			css : 
			{
				listClassName : "scombo_list",
				textBoxClassName : "trucktype_textbox inputbox",
				itemClassName : "scombo_item",
				selectionClassName : "scombo_selection"
			},
			
			showOnFocus : true,

			maxlength : 60,

			getItemFullText : CTruckTypes.getItemText,
			
			getItemSearchText : CTruckTypes.getItemText,
			
			searchFill : CTruckTypes.searchFill
		}// END options
	); // END new CSearchCombo
}


CTruckTypes.truckTypesList = BT.data.TruckTypes;


CTruckTypes.create = function(parent, options)
{
	var c = new CTruckTypes(parent, options);

	return c;
}



/* public functions
-----------------------------------------------
*/

CTruckTypes.prototype.setText = function(text)
{
	this.scombo.setText(text);
}


CTruckTypes.prototype.getText = function()
{
	return this.scombo.getText();
}





/* helper functions
---------------------------------------------------------
*/

CTruckTypes.searchFill = function(combo, stext)
{
	var truckTypes = CTruckTypes.truckTypesList;
	var ttname;
	var atext = ["<b style='color:blue'>", "", "</b>",  ""];
	
	// search variables
	var slen = stext.length;
	var clen;	
	var c1;
	var c2;

	stext = stext.toLowerCase();
	for (var i = 0, num = truckTypes.length; i < num; i++)
	{
		ttname = truckTypes[i];

		// compare case insensitive
		clen = ttname.length;			
		if (slen > clen) continue;			
		for (var j = 0; j < slen; j++)
		{
			c1 = stext.charCodeAt(j);
			c2 = ttname.charCodeAt(j);
			
			if (c2 >= 65 && c2 <= 90) c2 += 32;
			
			if (c1 != c2) break;
		}
		
		// match ?
		if (j == slen)
		{
			// the bold text in location name
			atext[1] = ttname.substring(0, slen);
			// normal text in location name
			atext[3] = ttname.substring(slen);
		
			combo.addItem(atext, i);
		}
	}
}

CTruckTypes.getItemText = function(index)
{
	return CTruckTypes.truckTypesList[index];
}










function CAdCategories(parent, options)
{
	if (typeof parent == "string")
	{
		parent = document.getElementById(parent);
	}
	
	
	this.scombo = new CSearchCombo(parent, 
		// options
		{
			css : 
			{
				listClassName : "scombo_list",
				textBoxClassName : "adcategory_textbox inputbox",
				itemClassName : "scombo_item",
				selectionClassName : "scombo_selection"
			},
			
			showOnFocus : true,

			maxlength : 60,

			getItemFullText : CAdCategories.getItemText,
			
			getItemSearchText : CAdCategories.getItemText,
			
			searchFill : CAdCategories.searchFill
		}// END options
	); // END new CSearchCombo
}


CAdCategories.adCategoriesList = BT.data.AdCategories;


CAdCategories.create = function(parent, options)
{
	var c = new CAdCategories(parent, options);

	return c;
}



/* public functions
-----------------------------------------------
*/

CAdCategories.prototype.setText = function(text)
{
	this.scombo.setText(text);
}


CAdCategories.prototype.getText = function()
{
	return this.scombo.getText();
}





/* helper functions
---------------------------------------------------------
*/

CAdCategories.searchFill = function(combo, stext)
{
	var adCategories = CAdCategories.adCategoriesList;
	var ttname;
	var atext = ["<b style='color:blue'>", "", "</b>",  ""];
	
	// search variables
	var slen = stext.length;
	var clen;	
	var c1;
	var c2;

	stext = stext.toLowerCase();
	for (var i = 0, num = adCategories.length; i < num; i++)
	{
		ttname = adCategories[i];

		// compare case insensitive
		clen = ttname.length;			
		if (slen > clen) continue;			
		for (var j = 0; j < slen; j++)
		{
			c1 = stext.charCodeAt(j);
			c2 = ttname.charCodeAt(j);
			
			if (c2 >= 65 && c2 <= 90) c2 += 32;
			
			if (c1 != c2) break;
		}
		
		// match ?
		if (j == slen)
		{
			// the bold text in location name
			atext[1] = ttname.substring(0, slen);
			// normal text in location name
			atext[3] = ttname.substring(slen);
		
			combo.addItem(atext, i);
		}
	}
}

CAdCategories.getItemText = function(index)
{
	return CAdCategories.adCategoriesList[index];
}








function CBusTypes(parent, options)
{
	if (typeof parent == "string")
	{
		parent = document.getElementById(parent);
	}
	
	
	this.scombo = new CSearchCombo(parent, 
		// options
		{
			css : 
			{
				listClassName : "scombo_list",
				textBoxClassName : "trucktype_textbox inputbox",
				itemClassName : "scombo_item",
				selectionClassName : "scombo_selection"
			},
			
			showOnFocus : true,

			maxlength : 60,

			getItemFullText : CBusTypes.getItemText,
			
			getItemSearchText : CBusTypes.getItemText,
			
			searchFill : CBusTypes.searchFill
		}// END options
	); // END new CSearchCombo
}


CBusTypes.busTypesList = BT.data.BusTypes;


CBusTypes.create = function(parent, options)
{
	var c = new CBusTypes(parent, options);

	return c;
}



/* public functions
-----------------------------------------------
*/

CBusTypes.prototype.setText = function(text)
{
	this.scombo.setText(text);
}


CBusTypes.prototype.getText = function()
{
	return this.scombo.getText();
}





/* helper functions
---------------------------------------------------------
*/

CBusTypes.searchFill = function(combo, stext)
{
	var busTypes = CBusTypes.busTypesList;
	var ttname;
	var atext = ["<b style='color:blue'>", "", "</b>",  ""];
	
	// search variables
	var slen = stext.length;
	var clen;	
	var c1;
	var c2;

	stext = stext.toLowerCase();
	for (var i = 0, num = busTypes.length; i < num; i++)
	{
		ttname = busTypes[i];

		// compare case insensitive
		clen = ttname.length;			
		if (slen > clen) continue;			
		for (var j = 0; j < slen; j++)
		{
			c1 = stext.charCodeAt(j);
			c2 = ttname.charCodeAt(j);
			
			if (c2 >= 65 && c2 <= 90) c2 += 32;
			
			if (c1 != c2) break;
		}
		
		// match ?
		if (j == slen)
		{
			// the bold text in location name
			atext[1] = ttname.substring(0, slen);
			// normal text in location name
			atext[3] = ttname.substring(slen);
		
			combo.addItem(atext, i);
		}
	}
}

CBusTypes.getItemText = function(index)
{
	return CBusTypes.busTypesList[index];
}


