(function(window,document,$,undefined){
	$.widget("ui.pvselect", {
		options: {
			boxclass: null,
			menuclass: null,
			menuMaxHeight: 400
		},
		
		_create: function() {
			var self = this;
			self.element.hide();
			self.select = self.element
				.after('<div />').next();
			self.select
				.addClass('selectbox')
				.addClass(self.options.boxclass)
				.append('<div class="textval" />');
			self._changeText(self.element.find('option:selected').text());
			self._createMenu();
			self.select
				.bind('click.pvselect',function(){
					if (self.menu.is(':visible')) {
						self._hideMenu();
					}
					else {
						self._showMenu();
					}
					return false;
					
				});
				
			$('body').bind('click.pvselect',function(){
				self._hideMenu();
			})
		},
		
		_hideMenu: function(){
			this.menu
				.slideUp();
		},
		
		_showMenu: function(){
			this.menu.css({
				left: this.select.offset().left,
				bottom: $(window).height() - this.select.offset().top
			}).slideDown();
		},
		
		_changeText: function(value) {
			this.select
				.find('.textval').text(value);
		},
		
		_createMenu: function() {
			var menustr = [], self = this;
			menustr.push('<div class="selectmenu">');
			self.element
				.find('option')
				.each(function(){
					if ($(this).is(':selected')) {
						menustr.push('<div class="option selected">');
					}
					else {
						menustr.push('<div class="option">');
					}					
					menustr.push($(this).text());
					menustr.push('</div>');
				});
			menustr.push('</div>');
			self.menu = $(menustr.join(''));
			self.menu
				.addClass(self.options.menuclass)
				.hide()
				.appendTo('body');
			if (self.menu.height() > self.options.menuMaxHeight) {
				self.menu.height(self.options.menuMaxHeight);
			}
			self.menu.find('div.option').hover(function(){
				$(this).addClass('hover');
			},function(){
				$(this).removeClass('hover');
			}).bind('click.pvselect',function(event){
				self._hideMenu();
				self._selectItem(this);
				$(this).addClass('selected').siblings('.selected').removeClass('selected');
				return false;
			});
		},
		
		_selectItem: function(option){
			var selectedIndex = $(option).index(), self = this;
			self.element.find('option:selected').prop('selected',false);
			self.element.find('option').eq(selectedIndex).prop('selected',true);
			self._changeText(self.element.find('option:selected').text())
			self.element.trigger('change');		
		},
		
		_destroyMenu: function() {
			this.menu.remove();
			this.menu = undefined;
		},
		
		_refreshMenu: function() {
			this._destroyMenu();
			this._createMenu();
		},
		
		destroy: function() {
			$.Widget.prototype.destroy.apply(this, arguments);
		
		},
		
		value: function() {
			return this.element.val();
		},
		
		_setOption: function(key, value) {
			$.Widget.prototype.setOption.apply(this, arguments);
		
		}		
	});
})(window,document,jQuery)
$(function(){
	$('.countryselect').pvselect({boxclass:'countryselect'}).change(function(){
		var country = $(this).val();
		var keeplist = "US,CA,other,CO,VE,GY,SR,GF,PY,UY,AR,CL,BO,PE,EC,MX,BR";
		$.post('/includes/choosecountry.cfm',{country: country},function(response){
			/*if (!keeplist.match(country)) {
				location.href = "http://www.peavey-eu.com/index.php?flag=" + country;
			}
			else {*/
				location.href = location.href;
			/*}*/
		});
	});
	$('.langselect').pvselect({boxclass:'langselect'}).change(function(){
		var lang = $(this).val();
		$.post('/includes/chooselang.cfm',{lang: lang},function(){
			location.href = location.href;
		});
	});
	$('input[name=term],input[name=email]').bind('focus',function(){
		if ($(this).val() === $(this).data('loc')) {
			$(this).val('');
		}
	}).bind('blur',function(){
		if ($(this).val() === "") {
			$(this).val($(this).data('loc'));
		}
	}).trigger('blur');
	function isValidEmail(email) {
		return /\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i.test(email);
	}
	$('form[name=mailing_list]').submit(function(e){
		e.preventDefault();
		if ( isValidEmail($(this).find(".email").val()) ) {
			alert('Thank you for joining the Peavey Mailing List.');
			$.post('/includes/maillist.cfm',$(this).serializeArray());
		} else {
			alert('Please enter a valid email address.');
		}
		return false;
	});
});
