// JavaScript Document
function link_init(){
	$$('a').each(function(el,index){
		if(el.get('rel') == 'external' || (el.get('href') && el.get('href').test('http://'))){
			el.set('target','_blank');
		}
	});
	$$('img.popup','a.slimbox').each(function(el,index){
		var reg = new RegExp('mini_');
		el.setStyle('cursor','pointer');
		el.addEvent('click',function(ev){
			var ev = new Event(ev).stop();
			var src = el.get('src') || el.get('href');
			var rel = el.get('rel') || false;
			Slimbox.open(src.replace(reg,''),rel);
		})
	});
}
function site_init(){
	if($('cf_contact')){
		$$('form#cf_contact input','form#cf_contact textarea').each(function(el,i){
			el.addEvents({
				'focus':function(e){
					e.target.tween('background-color','#fff');
				},
				'blur':function(e){
					e.target.tween('background-color','#ccc');
				}
			});
		});
	}
	if($('gmap')){
		loadGmap();
	}
	if($('cap_orderform')){
		monitor_form();
	}
}
function loadGmap(){
	if (GBrowserIsCompatible()) {
		var map = new GMap2($('gmap'),{mapTypes:[G_HYBRID_MAP,G_NORMAL_MAP]});
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		var point = new GLatLng(46.9987,6.9129);
		map.setCenter(point, 13);
		map.addOverlay(createmarker(point));
		document.body.addEvent('unload',function(){
			GUnload();
		});
	}
}
function createmarker(point){
	var icon = new GIcon();
	icon.image = "__layout/__statics/gmap_log.png";
	icon.iconSize = new GSize(139,64);
	icon.iconAnchor = new GPoint(20,39);
	var marker = new GMarker(point,icon);
	GEvent.addListener(marker, "click", function(){
		var win = window.open('http://maps.google.ch/maps?daddr=rue+du+Puits-Godet+8,+2000+Neuch%C3%A2tel+(Cappuccino+SA)&geocode=CeOuBrno9MXWFVokzQIdjHxpACEpnf2rVTp0UQ&dirflg=&saddr=&f=d&dq=Cappuccino+SA&sll=46.362093,9.036255&sspn=4.185162,8.822021&cid=5869380354002754857&ie=UTF8&z=14','_blank');
	});
	return marker;
}
function monitor_form(){
	var required = [$('usr_name'),$('usr_firstname'),$('usr_address'),$('usr_zip'),$('usr_city'),$('usr_email')];
	var delivery = [$('usr_delivery_name'),$('usr_delivery_firstname'),$('usr_delivery_address'),$('usr_delivery_zip'),$('usr_delivery_city')];
	
	// --- filter for input keys ---
	$$('input.int').each(function(el,i){
		el.addEvent('keypress',function(ev){
			ev = new Event(ev);
			if(ev.key.test('[0-9]|backspace|left|right|tab')){
				return true;
			}
			return false;
		});
	});
	
	// --- check form on submit ---
	$$('input.submit').addEvent('click',function(ev){
		var error			= '';
		var error_message	= '';
		var label			= '';
		var deliveryfields	= 0;
		var order_value		= 0;
		
		// --- checks values for required fields ---
		required.each(function(el,i){
			if(el.value.trim() == ''){
				label = el.getParent().getPrevious().getFirst().get('text');
				error += " - "+label+"\n";
			}
		});
		
		if(error){
			error_message += "Les champs suivants ne sont pas remplis.\nEin oder mehrere Felder wurden nicht ausgefüllt.\n\n"+error+"\n";
		}
		
		// --- lean error var for next step ---
		error = '';
		// --- checks each delivery field, if any is filled increment counter ---
		delivery.each(function(el,i){
			if(el.value.trim() != ''){
				deliveryfields++;
			}
		});
		// --- if counter is below the number of required fields add field name in error message ---
		if(deliveryfields < delivery.length && deliveryfields > 0){
			delivery.each(function(el,i){
				if(el.value.trim() == ''){
					label = el.getParent().getPrevious().getFirst().get('text');
					error += " - "+label+"\n";
				}
			});
			error_message += "Les champs de livraison suivants ne sont pas remplis\nEin oder mehrere Felder wurden nicht ausgefüllt.\n\n"+error+"\n";
		}
		
		// --- checks all input order fields and if none is filled ask for correction ---
		$$('input.int').each(function(el,i){
			if(el.value){
				el.v = el.getParent().getPrevious().get('text').toFloat();
				order_value += (el.value*el.v).toFloat();
			}
		});
		// --- if no order is performed
		if(!order_value){
			// --- check if this is just a message ---
			if(!$('usr_comm').value.trim()) error_message += "Au moins un produit doit être commandé ou le champ commentaire rempli\nALLEMAND\n";
		}
		// --- if error message is filled then show it and die ---
		if(error_message){
			alert(error_message);
			return false;
		
		// --- otherwise send form ---
		}else{
			return true;
		}
	});
}
window.addEvent('domready',function(){
	link_init();
	site_init();
});
var _active = false;
