Event.observe(window, "load", function(event) {
	var wait = $("wait");
	var shimentOn = $("shipment-country-on");
	var shipmentUlList = $$("#shipment-countries ul").first();
	var shipmentUlListLink = $$("#shipment-countries ul li a");
	var popupUlListLink = $$("#popup-shipment-countries ul li a");
	
	if (wait != undefined) {
		wait.hide();
	}
	
	if ($("shipment-countries")) {

		$("shipment-countries").hide();
		$("shipment-countries").setStyle({visibility: "visible"});
		
		$("shipment-countries").appear({duration: 1});
	}
	
	var shipment = {

		countries : {},
		open : function(event) {

			var link = event.element();
			
			$$("#shipment-countries div:first").first().removeClassName("title");
			$$("#shipment-countries div:first").first().addClassName("active");
			$("shipment-countries").addClassName("active");
			
			$("shipment-country-off").hide();
			$("shipment-country-on").appear({duration: 0.2});
			
			$$("#shipment-countries ul").first().appear( {
				duration :0.5
			});	
			

			$("main").observe("mouseover", shipment.close);
		},
		
		close : function(event) {
			$$("#shipment-countries ul").first().fade( {
				duration :0.3
			});
			
			$("shipment-countries").removeClassName("active");
			$$("#shipment-countries div:first").first().removeClassName("active");
			$$("#shipment-countries div:first").first().addClassName("title");
			
			$("shipment-country-on").fade({duration: 0.5});
			$("shipment-country-off").appear({duration: 0.5});
			
			
		},
		change : function(event) {

			var link = event.element();
			$$("#shipment-countries ul").first().fade( {
				duration :0.5
			});
			$("shipment-country-on").fade( {
				duration :0.2
			});
			
			
			shipment.update(link.rel);
		},
		popup : function(countryId) {

			var form = $$("#popup-shipment-countries form").first();
			form.select("input[type=hidden]").first().setValue(countryId);

			new Ajax.Request(form.action, {
				method :form.method,
				parameters :form.serialize(),
				onSuccess : function(data) {

					
					if (data.responseText.isJSON()) {
						var response = data.responseText.evalJSON();
					}
					
					

					window.location.reload();


				},
				onLoading : function(data) {
			},
			onLoaded : function(data) {
				/* alert("onLoaded"); */
				$("waiting-message").hide();
			},
			on404 : function(data) { 
			},
			onComplete : function(data) {
			},
			onFailure : function(data) { /*
											 * alert(data.responseText);
											 * alert('Something went wrong...');
											 */
			}
			});
		},
		update : function(countryId) {
			
			$("main").stopObserving("mouseover", shipment.close);
			
			$("wait").show();

			var form = $$("#shipment-countries form").first();
			form.select("input[type=hidden]").first().setValue(countryId);

			new Ajax.Request(form.action, {
				method :form.method,
				parameters :form.serialize(),
				onSuccess : function(data) {

					
					if (data.responseText.isJSON()) {
						var response = data.responseText.evalJSON();
					}
					
					$("wait").hide();
					
					$("shipment-flag").setAttribute("src", response.country.flag);
					$("shipment-flag").setAttribute("title", response.country.name);
					$$("#shipment-country-off strong").first().update(response.country.name);
					
					
					$("shipment-country-off").appear({duration: 0.5});
					
					$("shipment-countries").removeClassName("active");
					$$("#shipment-countries div:first").first().removeClassName("active");
					$$("#shipment-countries div:first").first().addClassName("title");
					

					window.location.reload();
					
					//$("#shipment-close").fire("click");
					/*
					 * if (response.success == true && response.errors.length ==
					 * 0) {
					 * 
					 * new Effect.SlideUp($$("#newsletter div:first").first(),
					 * {duration:0.5, fps:35}); $$("#newsletter
					 * div:first").first().replace("<div>Merci, votre demande a
					 * bien été prise en compte.</div>"); new
					 * Effect.SlideDown($$("#newsletter div:first").first(),
					 * {duration:0.3, fps:35}); //$$("#newsletter
					 * div:first").first().show();
					 *  } else if (response.errors.length > 0) {
					 * 
					 * response.errors.each( function(message, index) {
					 * $("errors").insert(Builder.node("span", message)); });
					 * 
					 * new Effect.Opacity("errors", {duration:0.3, fps:35,
					 * from:0.0, to:1.0}); new Effect.SlideDown("errors",
					 * {duration:0.1, fps:35}); }
					 */


				},
				onLoading : function(data) {
					/* alert("onLoading"); */
					$("waiting-message").show();
					// $$("#newsletter div:first").first().hide();
			},
			onLoaded : function(data) {
				/* alert("onLoaded"); */
				$("waiting-message").hide();
			},
			on404 : function(data) { /* alert("onLoading"); */
			},
			onComplete : function(data) {
				/* alert("onComplete"); */
				$("waiting-message").hide();
			},
			onFailure : function(data) { /*
											 * alert(data.responseText);
											 * alert('Something went wrong...');
											 */
			}
			});
			

		}

	};

	if (shimentOn != undefined) {
		shimentOn.hide();
	}
	
	if (shipmentUlList != undefined) {
		shipmentUlList.hide();
	}
	
	if ($("shipment-update")) {
		$("shipment-update").observe("click", shipment.open);
	}
	
	if ($("shipment-close")) {
		$("shipment-close").observe("click", shipment.close);	
	}

	if (shipmentUlListLink != undefined) {
		shipmentUlListLink.invoke("observe", "click",
			shipment.change);
	}
	
	if (popupUlListLink != undefined) {
		popupUlListLink.invoke("observe", "click",
			function (event) { shipment.popup(event.element().rel); });
	}

});