function highlightErrors( errors )
{
	$(document).ready( function(){
		var d = function(i,p,o){if(o instanceof Array) o=o.join(', ');if(typeof(o)=='string'){if(i[p])i[p]+=', '+o;else i[p]=o;}else for(x in o)d(i,p+'_'+x,o[x]);return i;}
		var flat = d({},'inp',errors);
		for(x in flat){
			var sp = document.createElement('span');
			sp.className = 'invalid';
			sp.innerHTML = flat[x]+'<br>';
			$('#'+x).parent().prepend( sp ); 
		}
			
		$('label[for]').each(function(){ 
			var f = this.getAttribute('for');
			if(f && flat[ f ]){
				$(this).addClass('invalid')
			}; 
		});
		
		$('.invalid').each(function(){ $(this).closest('.fold').show().prevAll('h4:eq(0)').addClass('invalid'); });

	});
}

$(function(){
	$('form').submit( handleFormTranslation );
	if($.fn.panels) $('#home-panel').panels();
	$('.grey-input').focus(function(){ $(this).val('').removeClass('grey-input').unbind('click', arguments.callee ); });
});

function handleFormTranslation(e){
	var m,h = $('#image-home-link').get(0)
	if(h && (m = h.href.match(/#.*$/))){
		e.target.action += m;
	}
}

function googleTranslateElementInit() {
	new google.translate.TranslateElement({
			pageLanguage: 'en',
			includedLanguages: 'fr,de,es,it'
		}, 'google_translate_element');
}

function triggerTranslate(lang){
	var $sel = $('#google_translate_element').find('select');
	if(!$sel.find('option').length){
		window.setTimeout( 'triggerTranslate("'+lang+'");', 300 );
		return false;
	}
	var el = $sel.val(lang).get(0);	
	if (document.createEvent) {
       // dispatch for firefox + others
       var evt = document.createEvent("HTMLEvents");
       evt.initEvent('change', true, true ); // event type,bubbling,cancelable
       return !el.dispatchEvent(evt);
   } else {
       // dispatch for IE
       var evt = document.createEventObject();
       return el.fireEvent('onchange',evt)
   }
}


function importBookingValues(obj){
	var vals = $(obj).closest('form').serializeArray();
	var flds = {
		'firstname' : 'FIRSTNAME', 'name' : 'LASTNAME', 'address' : 'STREET', 'city' : 'CITY', 'state' : 'STATE', 'postcode' : 'ZIP', 'country' : 'COUNTRYCODE' 
	};
	for(var i=0;i<vals.length;i++){
		if(flds[ vals[i].name ]) $('#inp_'+flds[ vals[i].name ]).val( vals[i].value );
	}
	// obj.disabled = true;
	// $(obj).parent().fadeTo('fast',0.3);
}

(function($){
	$.fn.panels = function( opt ){
		return this.each(function(){
			var $self = $(this);
			var option = $.extend({ speedOut : 50, speedIn : 100 }, opt );
			var $li = $(this).children('ul').children('li');
			var $p = $(this).children('div').children('div').hide();
			$p.each(function(index){ $(this).data('link',$li.eq(index)); });
			$li.each(function(index){ $(this).data('panel',$p.eq(index)); });
			var $cur = $p.eq(0).show(), $next;
			var show = function(e,override){
				$this = $(this).closest('li');
				if($self.data('locked') && !override) return;
				$li.not($this).removeClass('bmg-panel-highlight');
				$next = $this.addClass('bmg-panel-highlight').data('panel');
				if($next[0]!==$cur[0]){
					$cur.fadeOut(option.speedOut,function(){ 
						$cur = $next.fadeIn(option.speedIn);
						if($.fn.jScrollPane) $self.find('.scroll-pane').jScrollPane( Opts.jScrollPane );
						var $link = $cur.data('link');
						$li.not($link).removeClass('bmg-panel-highlight');
						$link.addClass('bmg-panel-highlight');
					}); 
				}
			};
			var lock = function(e){
				if(this!==$self.data('locked'))	$self.data('locked',this);
				else $self.data('locked',false);
				$(this).trigger('mouseenter',[true]);
			};
			$li.find('a').hover( show, function(){} ).click( lock );
		});
	};
})(jQuery);
