/*
// Site	: http://www.alinea.fr
// Date	: 2007-06-04
*/

window.onload = init;

//
// Initialize and bind elements & behaviours.
var map;
function init(){

    if(! document.getElementById || ! document.createTextNode) return;
	//var requete = document.getElementById("requete");

	// Search engine input focus.
	//if(requete) requete.focus();

	// Bookmark handling for Opera.
	var bookmark       = document.getElementById("bookmark");

	if(bookmark) {
		if(window.opera){
			bookmark.rel   = "sidebar";
			bookmark.title = current_title;
			bookmark.href  = current_href;
		}else{
			bind_event(bookmark, 'click', add_bookmark);
		}
	}
	
	// Handle panier plus/minus
	var basket_plus  = document.getElementById("basket-plus");
	if(basket_plus) bind_event(basket_plus, "click", basket_quantity)
	
	var basket_minus = document.getElementById("basket-minus");
	if(basket_minus) bind_event(basket_minus, "click", basket_quantity)

	var map = document.getElementById("map");
	if(map) load_map();

}


//
// Bind Event & Object
function bind_event(object, event, action){
	if(document.all){
		event = 'on'+event;
		object.setAttribute(event, action);
	}else{
		object.addEventListener(event, action, false);
	}
}


//
// Add current page to bookmark
function add_bookmark(){
	var current_href  = location.href;
	var current_title = document.title;

	if(window.sidebar){
		// Mozilla Firefox
		window.sidebar.addPanel(current_title, current_href,"");
	}else if(window.external){
		// IExplorer
		window.external.AddFavorite(current_href, current_title);
	}else if(window.opera){
		// Opera
		return true;
	}else{
		alert("Fonctionnalité indisponible pour votre navigateur.\nVeuillez ajouter manuellement le site à vos favoris.");
	}
}


//
// Manage basket quantity
function basket_quantity(){
	var basket_qty = document.getElementById("quantite");

	if((this.id == "basket-minus") && (parseInt(basket_qty.value) - 1) > 0){
		basket_qty.value = parseInt(basket_qty.value) - 1;
	}else if((this.id == "basket-plus") && (parseInt(basket_qty.value) + 1) < 21){
		basket_qty.value = parseInt(basket_qty.value) + 1;
	}
}

//
// Handle Google Map
function load_map(){

	if(!document.getElementById("map")) return;

	// Setup Google Maps
	if(GBrowserIsCompatible()){
		map = new GMap2(document.getElementById("map"));

		// Paris area behaviour
		// var alinea_paris = document.getElementById("alinea_paris");
		// bind_event(alinea_paris, "click", switch_map);

		// Province area behaviour
		// var alinea_province = document.getElementById("alinea_province");
		// bind_event(alinea_province, "click", switch_map);

		map.setCenter(new GLatLng(46.58906908309182, 2.548828125), 5);

		map.addControl(new GLargeMapControl());
		map.addControl(new GScaleControl());
		map.addControl(new GOverviewMapControl());

        // GEvent.addListener(map, "moveend", function() {
        //   var center = map.getCenter();
        //   document.getElementById("message").innerHTML = center.toString();
        // 
        //   document.getElementById("message").style.border = "2px solid #900";
        //   document.getElementById("message").style.padding = "4px";
        //   document.getElementById("message").style.margin  = "4px 0 0 0";
        //   document.getElementById("message").style.background = "#FFC";
        // });

		magasins();
	}
}

//
// Add an Alinéa Magasin
function add_magasin(nom, latitude, longitude){
	if(!document.getElementById("map")) return;

	// Alinea icon
	var alinea_icon         = new GIcon(G_DEFAULT_ICON);
	alinea_icon.image       = "http://media.alinea.fr/template/media/img/pco/magasins-alinea-icon.png";
	alinea_icon.shadow      = "http://media.alinea.fr/template/media/img/pco/magasins-alinea-icon-shadow.png";
	alinea_icon.iconSize    = new GSize(17, 18);
	alinea_icon.shadowSize  = new GSize(2, 18);
	alinea_icon.iconAnchor  = new GPoint(8, 9);

	// For magasins
	magasin_alinea       = new GMarker(new GLatLng(latitude, longitude), {icon : alinea_icon});
	magasin_alinea.href  = nom;

	GEvent.addListener(magasin_alinea, "click", function() {
		location.href    = "/magasins/" + this.href
	});

	// Set up our GMarkerOptions object
	map.addOverlay(magasin_alinea);
}


//
// Switch map
function switch_map(){
	if(this.id == "alinea_province"){
		alinea_province.setAttribute("class", "selected");
		alinea_paris.removeAttribute("class");
	}else{
		alinea_paris.setAttribute("class", "selected");
		alinea_province.removeAttribute("class");
	}
}
