var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
		
BrowserDetect.init();


var SimpleSelectStyle = new Class(
{
    Implements: Options,
   
    options :
    {   
        select_class : '',
        form_id : '',
        left_padding : 0
    },
   
    initialize: function(options)
    {
        this.setOptions(options);
        if ($chk(this.options.select_class))
        {          
            this.selects = $chk($(this.options.form_id)) ? $(this.options.form_id).getElements('select') : $$('select.'+this.options.select_class) ;
            this.selects.each(this.style_selects.bind(this));
        }
    },
   
    style_selects : function(select_el)
    {      
        var select_el_width = select_el.getSize().x;   
        var value = select_el.getFirst().get('value');     
        var text = select_el.getFirst().get('text');
   
        select_el.getElements('option').each(function(o){ if(o.selected == true){ value = o.get('value'); text = o.get('text'); } });
       
        //var span = new Element('span',{'class':this.options.select_class}).set('text',text).inject(select_el,'before').setStyles({'width':select_el_width - this.options.left_padding,'display':'inline-block','position':'relative','padding-left':this.options.left_padding});
        var span = new Element('span',{'class':this.options.select_class}).set('text',text).inject(select_el,'before').setStyles({'width':select_el_width - this.options.left_padding,'display':'block','position':'absolute','padding-left':this.options.left_padding});
       
        //select_el.addClass(this.options.select_class).setProperty('size',1).setStyles({'width':select_el_width + span.getStyle('border-left-width').toInt() + span.getStyle('border-right-width').toInt(),'opacity':.01,'display':'inline-block','position':'relative','margin-left':-(select_el_width + span.getStyle('border-left-width').toInt() + span.getStyle('border-right-width').toInt())}).addEvent('change',function(){span.set('text',this.options[this.options.selectedIndex].get('text'));});
		select_el.addClass(this.options.select_class).setProperty('size',1).setStyles({'width':select_el_width + span.getStyle('border-left-width').toInt() + span.getStyle('border-right-width').toInt(),'opacity':.01,'display':'block','position':'relative'}).addEvent('change',function(){span.set('text',this.options[this.options.selectedIndex].get('text'));});
    }   
});
 
 
window.addEvent('domready', function(){
	if (!(BrowserDetect.browser=='Explorer') || !(BrowserDetect.version<7)) {
		$$('select').each(function(item) {
			x = item.clone().addClass('select_special');
			item.getParent().addClass("clearfix");
			if (item.getParent().getParent().getElement('label[for='+item.id+']'))
				item.getParent().getParent().getElement('label[for='+item.id+']').getParent().setStyle('display', 'block');
				
				//generate three wrapper div elements
	     	t = divWrap(divWrap(divWrap(x, "special_input_outer_2"), "special_input_outer_1"), "special_input_outer_0");  
				
				//switch original input box with the new one with wrapper div elements
			t.injectAfter(item);
			item.dispose();
		});
		var selects = new SimpleSelectStyle({select_class:'select_special'});
	}
});

function divWrap(el, divClass){  
       x = new Element('div', {'class':divClass});
	   el.inject(x);
	   return x; 
}  

function verifyForm(formEl) {
	formEl.getElements('input, textarea').each(function(item) {
		if (item.retrieve('label_text') == item.value) item.value = '';
	});

	return true;
}
