jQuery(function () {
	var i = 0,
		img = [	'banner_dordrecht.jpg',
				'banner_vlaardingen.jpg'],
		l = img.length;
	// NB global scope var!
	a = jQuery('img#attachment'), swap_img = function () {
		a.attr('src', '/images/degoedeschilders/misc/' + img[i++ % l]);
	};
		
	
	/* IE6 menu hover */
	if(typeof document.body.style.maxHeight == "undefined"){
		jQuery('ul#navigation > li').hover(
			function(){
				jQuery(this).addClass('hover');
			},
			function(){
				jQuery(this).removeClass('hover');
			}
		);
		
		if(jQuery('body').hasClass('contact')){
			window.setInterval("swap_img()", 3000);
		}
	}else{
		if(jQuery('body').hasClass('contact')){
			setInterval(swap_img, 3000);
		}
	}
	
	jQuery("select[name=sFunction]").change(function(){
		var $this = jQuery(this), f2 = jQuery("#sFunction2");
		if($this.val() == "Overig, namelijk..."){
			f2.show().attr("disabled", "");
		}else{
			f2.hide().attr("disabled", "disabled");
		}
	});
	
	jQuery('form').submit(function(){
		var valid = true, form = jQuery(this);
		jQuery('#warning').remove();
		form.find('.required').each(function(){
			var r = new RegExp('^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$');
			if(this.value == '' || (this.id == 'sEmail' && !r.test(this.value))){
				this.style.borderColor = 'red';
				valid = false;
			}else{
				this.style.borderColor = 'black';
			}
		});
		if(!valid){
			form.prepend('<div id="warning"><p>Vul a.u.b. alle verplichte velden correct in.</p></div><br/>');
			jQuery("#warning").get(0).scrollIntoView(true);
		}
		return valid;
	});
	
});





var Carousel = {
	itemList: [],
	init: function(){
		
		jQuery('ul#carousel').find('li').each(function(){
			var img = jQuery(this).find('img');
			Carousel.itemList.push({src: img.attr('src'), title: img.attr('alt')});
		}).end().jcarousel({
	        wrap: 'circular',
			scroll: 2,
	        itemVisibleInCallback: {onBeforeAnimation: Carousel.visibleInCallback},
	        itemVisibleOutCallback: {onAfterAnimation: Carousel.visibleOutCallback},
			buttonNextHTML: '<a href="#" id="carousel-next" title="Volgende">Volgende</a>',
			buttonPrevHTML: '<a href="#" id="carousel-prev" title="Vorige">Vorige</a>'
	    }).find('a').click(Carousel.click);
		
		jQuery('div#carousel-content').click(Carousel.next);
		jQuery('a.close-pic').click(Carousel.closeBox).addClass('hide');
		jQuery('a#carousel-prev,a#carousel-next').mouseenter(function(){jQuery(this).click();})
		
	},
	click: function(ev){
		var a = jQuery(this), img = a.find('img'), b = jQuery('body'), cc = jQuery('div#carousel-content'), ac= jQuery('a.close-pic'), newsrc = img.attr('src').replace(/tn-/,'');
		if(b.hasClass('expanded')){ // already expanded
			if(a.hasClass('selected')){ // click on the same link, close box
				Carousel.closeBox();
			}else{ // click on other link, change img
				a.parent().parent().find('a.selected').removeClass('selected').end().end().end().addClass('selected');
				cc.find('img').fadeOut('slow', function(){
					jQuery(this).remove();
					Carousel.loadImage(newsrc, img.attr('alt'));
				});				
			}
		}else{ // open up
			a.addClass('selected');
			cc.slideDown('slow');
			ac.removeClass('hide');
			Carousel.loadImage(newsrc, img.attr('alt'));			
			b.addClass('expanded');
		}
	},	
	next: function(){
		var c = jQuery('ul#carousel');
		c.find('a.selected').parent().next().find('a').click();
	},
	loadImage: function(src, alt){
		img = new Image();
		jQuery(img).load(function(){
			jQuery(img).hide();
			jQuery('div#carousel-content').append(img);
			jQuery(img).fadeIn('slow');
		}).attr('src', src).attr('alt', alt);
	},
	closeBox: function(){
		jQuery('div#carousel-content').find('img').fadeOut('slow', function(){
			jQuery('a.close-pic').addClass('hide');
			jQuery(this).parent().slideUp('slow', function(){
				jQuery('body').removeClass('expanded');
				jQuery('ul#carousel a.selected').removeClass('selected');
			});
			jQuery(this).remove();
		});
	},
	visibleInCallback: function(carousel, item, i, state, evt){
	    var idx = carousel.index(i, Carousel.itemList.length);
	    carousel.add(i, Carousel.getItemHTML(Carousel.itemList[idx - 1]));
		jQuery('ul#carousel li a').click(Carousel.click);
	},
	visibleOutCallback: function(carousel, item, i, state, evt){
		carousel.remove(i);
	},
	getItemHTML: function(item){
		return '<a href="#" title="'+item.title+'"><img src="'+item.src+'" alt="'+item.title+'" /></a>';
	}
}
jQuery(Carousel.init);
