function clearSelect(oListbox)
{
	for (var i=oListbox.options.length-1; i >= 0; i--)
	{
		oListbox.remove(i);
	}
}

function syncList() {}

syncList.prototype.sync = function()
{
	for (var i=0; i < arguments.length-1; i++)
	document.getElementById(arguments[i]).onchange = (function (o,id1,id2){return function(){o._sync(id1,id2);};})(this, arguments[i], arguments[i+1]);
	
	document.getElementById(arguments[0]).onchange();
}

syncList.prototype._sync = function (firstSelectId, secondSelectId)
{
	var firstSelect = document.getElementById(firstSelectId);
	var secondSelect = document.getElementById(secondSelectId);

	secondSelect.length = 0;

	if (firstSelect.length>0)
	{
		var optionData = this.dataList[ firstSelect.options[firstSelect.selectedIndex==-1 ? 0 : firstSelect.selectedIndex].value ];
		
		for (var key in optionData || null) secondSelect.options[secondSelect.length] = new Option(optionData[key], key);
		
		/* HACK */
		if (isOpera && secondSelect)
		{		
			var sourceArray = Array();
			for (var i=0; i < secondSelect.options.length; i++)
			sourceArray[ secondSelect.options[i].value ] = secondSelect.options[i].text;
			
			clearSelect(secondSelect);			
			
			var array1 = Array();
			var array2 = Array();
			var array3 = Array();
			
			for (var key in sourceArray || null)
			{
				var tvar1 = key;
				var tvar2 = sourceArray[ key ];
				
				array1.push( key );
				array2.push( sourceArray[ key ] );
				array3[ tvar2 ] = tvar1;
			}
			
			array2.sort();
			
			secondSelect.options[secondSelect.length] = new Option('.: Все города...', '');
			
			var optionData555 = Array();
			for (i in array2) 
			{ 
				var ttvar1 = array3[ array2[i] ];
				var ttvar2 = array2[i];
				
				if (ttvar1)
				secondSelect.options[secondSelect.length] = new Option(ttvar2, ttvar1);
			};
			
		}
		/* HACK */

		if (firstSelect.selectedIndex == -1) setTimeout( function(){ firstSelect.options[ town_id_get ].selected = true;}, 1 );
		if (secondSelect.length>0) setTimeout( function(){ secondSelect.options[ town_id_get ].selected = true;}, 1 );
		
		/* HACK */
		if (firstSelect.selectedIndex == 0) 
		setTimeout( function(){ secondSelect.options[ 0 ].selected = true;}, 1 );
	}
		
	secondSelect.onchange && secondSelect.onchange();
};
