
function SetRule( cssrule, properties )
{
	for( var s = 0; s < document.styleSheets.length; s++ )
	{
		var sheet = document.styleSheets[s];
		
		if( !sheet )
			continue;
		
		var rules = ( sheet.rules ) ? sheet.rules : sheet.cssRules;
		
		if( !rules )
			continue;
		
		var rule = null;
		
		for( var r = 0; r < rules.length; r++ )
		{
			if( rules.item( r ).selectorText.toLowerCase() == cssrule.toLowerCase() )
			{
				rule = rules.item( r );
				break;
			}
		}
		
		if( !rule )
			continue;
		
		var style = rule.style;

		if( !style )
			continue;

		for( p = 0; p < properties.length; p++ )
			eval( "style." + properties[p][0] + "='" + properties[p][1] + "'" );
	}
}

function FixBrowsers()
{
	var aBrowser = GetBrowserInfo();

	switch( aBrowser[0] )
	{
		case 'msie':
			break;
		
		case 'safari':
			SetRule( 'input.file', 
				[
					[ 'width', '80px' ],
					[ 'color', 'black' ],
					[ 'borderColor', 'black' ]
				]
			);
			break;

		case 'opera':
			SetRule( 'input.file', 
				[
					[ 'width', '95px' ],
					[ 'color', 'black' ],
					[ 'borderColor', 'black' ]
				] 
			);
			break;
		
		case 'firefox':
			break;
	}
}

// scan dom nodes for anything with class that contains 'rounded_' .. 
function ScanForRounded( obj )
{
	var re = /rounded_([^\s]+)/i;
	if( re.test( obj.className ) )
	{
		var s = RegExp.$1.replace( /_/g, ' ' );
		Rounded( obj, s );
	}
	obj = obj.firstChild;
	while( obj )
	{
		ScanForRounded( obj );
		obj = obj.nextSibling;
	}
}

function DoRoundedCorners( obj )
{
	if( obj.length ) // possible array ???
	{
		for( var i = 0; i < obj.length; i++ )
		{
			var s = obj[i].replace( "_", " " );
			Nifty( "*.rounded_" + obj[i], s );
		}
	}
	else // element, scan it and children
	{
		ScanForRounded( obj );
	}
}

FixBrowsers();
