(function($){
	
	$.fn.zebra = function(){
		return this.each(function(){
			$this = $(this);
			var ch = '*';
			switch (this.tagName){
				case 'UL':
				case 'OL':
					ch = '> li';
				break;
				case 'TABLE':
					ch = '> tbody > tr';
				break;
				case 'THEAD':
				case 'TBODY':
				case 'TFOOT':
					ch = '> tr';
				break;
			}
			var i = 0;
			$this.find(ch).each(function(){
				$(this).removeClass('even odd').addClass(++i%2==0?'even':'odd');
			});
		});
	}

	$.fn.menu = function(){
		
		$(document).menu.draw(websitePath+(websiteLang?websiteLang+'/':'')+(websiteCurr=='/'?'':websiteCurr));
		
		return this.each(function(){
			var $box = $(this);
			var $buttons = $box.find('a.button');

			$buttons.click(function(){
				$buttons.parent().removeClass('s');
				$(this).parent().addClass('s');
				$(this).parent().find('ul a:first').focus();
				return false;
			})
		})
	}
	
	$.fn.menu.draw = function(currentPage){
		if (!currentPage) currentPage = '/';
		
 		$('a[href="'+currentPage+'"]').parents('li').addClass('s');

 		if ($('#menu li.s > ul').size()>0){
			$('#submenu').html($('#menu li.s > ul').html())
 		} else {
 			$('#context > .box:first').remove();
 			$('#context > hr:first').remove();
 		}
	}
	
	$.fn.storeField = function(){
		return this.each(function(){
			var oldValue = this.value;
			$(this).focus(function(){
				if (this.value==oldValue) this.value = '';
			})
			$(this).blur(function(){
				if (this.value=='') this.value = oldValue;
			})
		})
	}
	
	$.fn.autoGallery = function(){
		return this.each(function(){
			var $box = $(this);
			var $ul = $box.find('ul.scroll');
			var $prev = $box.find('a.prev');
			var $next = $box.find('a.next');
			var len = $ul.find('> li').size();
			
			var pos = 0;
			
			function scroll(shift){
				pos += shift;
				if (pos>=len-1||pos<0){
					pos -= shift;
					return false
				}
				$prev.show();
				$next.show();
				if (pos<=0) $prev.fadeOut('middle');
				if (pos>=len-2) $next.fadeOut('middle');
				
				var w = $ul.find('> li img').width() + 2;
				var l = - pos * w;
				$ul.css('width',w*len+'px').animate({'left':l+'px'},700);
			}
			
			$prev.click(function(){
				scroll(-1);
				return false;
			})
			$next.click(function(){
				scroll(1);
				return false;
			})
			
			function init(){
				$prev.hide();
				if (len<3){
					$prev.remove();
					$next.remove();
				}
			}
			
			init();
		})
	}
	
	$.fn.formValidation = function(options){
		
		var expr = {
			email		: /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2,7})$/i,
			password	: /^.{6,}$/i,
			string		: /^\S+.*$/mi,
			zip			: /^\S{5,10}$/i,
			phone		: /^\d{9,15}$/i,
			date		: /^\d{4}-\d{2}-\d{2}$/i,
			datetime	: /^\d{2}\.\d{2}\.\d{4} \d{2}:\d{2}$/i,
			'float'		: /^(\+|-)?([0-9]+\.?[0-9]*|\.[0-9]+)$/i
		}
		
		//var $.extend(defaults, options);
		if (!options) options = {expr:null};
		if (options.expr) expr = $.extend(expr, options.expr);
		
		return this.each(function(){
			$form = $(this);
			
			function checkField(event){
				if (!event) event = {which:0};
				var $this = $(this);
				var rule = expr[$this.attr('alt')] || /^\.{1,}$/i;
				var r = true;
				if (this.tagName=='INPUT'&&($this.attr('type')=='radio'||$this.attr('type')=='checkbox')){
					if (!$this.val()) r = false;
				} else if ((this.tagName=='INPUT')&&
					($this.attr('type')=='text'||$this.attr('type')=='password')){
					r &= rule.test($(this).val());
				} else if (this.tagName=='TEXTAREA'){
					r &= rule.test($(this).val());
				} else if (this.tagName=='SELECT'){
					if (this.options[this.selectedIndex].value<=0) r &= false;
				}
				if ($this.hasClass('confirmation')){
					var name = $this.attr('name');
					$form.find('[name="'+name.substring(0,name.length-1)+'"]').each(function(){
						r &= $(this).val()==$this.val();
					})
				}
				var name = $(this).attr('name').replace(/[\[\]]/gi,'_');
				var $l = $('#label_'+name).removeClass('error');
				if (!r) $l.addClass('error');
				return r ? true : false;
			}
			
			$form.find('.required').keyup(function(event){
				checkField.call(this,event);
			})
			$form.find('.required').blur(function(){
				var $this = $(this);
				if (checkField.call(this)){
					if ($this.hasClass('ajax')&&options.fn&&options.fn[$this.attr('name')]){
						options.fn[$this.attr('name')].call(this);
					}
				}
			})
			$form.submit(function(){
				var r = true;
				$form.find('.required').each(function(){
					r &= checkField.call(this);
				})
				$form.find('.required').each(function(){
					if ($(this).hasClass('error')) r = false;
				})
				return r ? true : false;
			})
		})
	}
	
	$.fn.printDialog = function(){
		
		return this.each(function(){
			var $this = $(this);
			
			$this.click(function(){
				var w = window.open(location.href+'?print=1','printWindow',
					'width=800,height=600,toolbar=0,status=0,scrollbars=1');
				return false;
			})
		})
	}
	
	$.fn.presentation = function(){

		return this.each(function(){
			var $this = $(this);
			
			$this.click(function(){
				var w = window.open($this.attr('href'),'presentationWindow','width=760,height=580,toolbar=0,status=0,scrollbars=0');
				return false;
			})
		})
	}
	
})(jQuery)

function redirect(url){
	location.href = url;
}


$(document).ready(function(){
	$('#menu').menu();
	
	$('#language').find('a[rel="'+websiteLang+'"]').parent().addClass('lang');
	
	$('ul.cars li').click(function(){
		if ($(this).find('> a').size()>0){
			redirect($(this).find('> a').attr('href'));
		}
		return false;
	})
	
	$('#footer input[name="s"]').storeField();
	
	$('form.required').formValidation();
	
	$('.zebra').zebra();
	
	// IE6 hacks
	if ($.browser.msie&&parseInt($.browser.version)<=6){
		//$('#menu ul').css({'position':'absolute','top':'0px'});
		//$('#menu ul ul').css({'left':$('#main_wrapper').offset().left+'px'}).width('800px');
		$('ul.cars li').hover(function(){
			$(this).addClass('iehover');
		},function(){
			$(this).removeClass('iehover');
		})
		$('#copy-developer').css({'position':'absolute', 'left':'70px'});
		$('.box > .head, .box > .foot, .years > .head, .years > .foot, div.line').each(function(){
			if ($(this).html()==''){
				$(this).html('<img src="'+websitePath+'img/1x1.gif" width="1" height="1" alt="1x1" />');
			}
		})
	}
})