var SOMEWHERE = function() {
	return {
		// addLoadEvent(e)
		// Ajout de l'execution de la fonction e au chargement de la page
		addLoadEvent : function(e) {
			if(jQuery)
			{
				$(document).ready(e);
			}
			else
			{
				if (window.addEventListener)
		 			window.addEventListener('load', e, false);
		  		else if (window.attachEvent)
					window.attachEvent('onload', e);
			}
		},
		// getElementsByClassName(className, tag, elm)
		// Retourne les elements correspondant a la classe CSS et la balise tag dans l'element elm
		getElementsByClassName : function(className, tag, elm) {
			var testClass = new RegExp("(^|s)" + className + "(s|$)");
			var tag = tag || "*";
			var elm = elm || document;
			var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
			var returnElements = [];
			var current;
			var length = elements.length;
			for(var i=0; i<length; i++){
				current = elements[i ];
				if(testClass.test(current.className)){
					returnElements.push(current);
				}
			}
			return returnElements;
		},
		// SOMEWHERE.user
		// Informations sur l'utilisateur courant
		user : function(){
			return {
				// isLoggedIn()
				// Retourne true si un utilisateur est loggue
				isLoggedIn : function() {
					var div_auth = document.getElementById("memo_authentification");
					if(div_auth)
					{
						var div_auth_rapide = div_auth.getElementsByTagName("div")[0];
						var input_auth = div_auth_rapide.getElementsByTagName("input");
						if(input_auth.length == 0)
							return true;
					}
					return false;
				},
				// getArticles()
				// Retourne le nombre d'articles dans le panier
				getArticles : function() {
					var n = 0;
					var linkPanier = $('#ctl00_ApercuPanier a').eq(0);
					if(linkPanier)
					{
						var t = linkPanier.text();
						var n = parseInt(t.substring(t.indexOf(":")+2,t.lastIndexOf(" ")));
					}
					return n;
				}
			};
		}(),
		// SOMEWHERE.page
		// Informations sur la page courante
		page : function(){
			return {
				// addSectorClass()
				// Ajoute une classe CSS sur le body de la page
				addSectorClass : function() {
					var css_prefix = "sw_";
					var breadcrumb = document.getElementById("memo_fil_ariane");
					if(breadcrumb)
					{                              
						var class_name;
						if(breadcrumb.innerHTML.toLowerCase().match("homme"))
							class_name = css_prefix + "homme";
						else if(breadcrumb.innerHTML.toLowerCase().match("femme")) 
							class_name = css_prefix + "femme"; 
						if(class_name)	
							document.getElementsByTagName("body")[0].className += " " + class_name; 	
					}
				},
				addClass : function(class_name) {
					var body = document.getElementsByTagName("body")[0];
					body.className += " " + class_name;
				},
				removeClass : function(class_name) {
					var body = document.getElementsByTagName("body")[0];
					body.className = body.className.replace(class_name, "");
				},
				isHome : function() {
					return (location.pathname == "/" || location.pathname == "/default.aspx");
				},
				isURL : function(path) {
					return (location.pathname == path);
				}
			};
		}(),
		// SOMEWHERE.cookies
		// Fonctions de lecture et d'ecriture de cookies (miam)
		// Source : Quirksmode (http://www.quirksmode.org/js/cookies.html)
		cookies : function() {
			return {
				create : function(name,value,days) {
					if (days) 
					{
						var date = new Date();
						date.setTime(date.getTime()+(days*24*60*60*1000));
						var expires = "; expires="+date.toGMTString();
					}
					else var expires = "";
					document.cookie = name+"="+value+expires+"; path=/";
				},
				read : function(name) {
					var nameEQ = name + "=";
					var ca = document.cookie.split(';');
					for(var i=0;i < ca.length;i++) {
						var c = ca[i];
						while (c.charAt(0)==' ') c = c.substring(1,c.length);
						if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
					}
					return null;
				},
				erase : function(name) {
					this.create(name,"",-1);
				}
			};
		}(),
		// SOMEWHERE.header
		// Fonctionnalites specifiques du header du site
		header : function() {
			return {
				init : function() {
					this.setNewsletterLight();
					this.setNumberOfArticles();
					this.setMenuPop(); 
					this.initBasketLink();
					this.setSearchLabel();
				},
				setNumberOfArticles: function() {
					var n = SOMEWHERE.user.getArticles();
					if(n > 0)
					{
						var link = $('#sw_account ul:eq(1) a:eq(0)').eq(0);
						var text = link.text();
						text += " : " + n + " article"
						if(n > 1)
							text += "s";
						link.text(text);
					}
				},
				setMenuPop : function() {
					var lis = $('#sw_menu').children('ul').eq(0).children('li');
					lis.mouseover(function() {
						$(this).children('.sw_nav_pop').show();
						$(this).children('.sw_nav_main_link').eq(0).addClass('sw_hover');
						add_header_zindex();
					});
					lis.mouseout(function() {
						$(this).children('.sw_nav_pop').hide();
						$(this).children('.sw_nav_main_link').eq(0).removeClass('sw_hover');
						remove_header_zindex();
					});
					/*var nav_items = document.getElementById("sw_menu").getElementsByTagName("ul")[0].getElementsByTagName("li");
					for(i=0; i<nav_items.length; i++)
					{
						if(nav_items[i].getElementsByTagName("div").length > 0)
						{				
							var link = nav_items[i].getElementsByTagName("a")[0]; 
							var pop = link.parentNode.getElementsByTagName("div")[0];
							if(link && pop)
								add_hover(link, pop); 
						}
					}  */                 
				},   
				//Minipanier
				initBasketLink : function() {
					$('#sw_nav_basket').bind('mouseover', function() { 
						$("#memo_mini_panier").show();
					});
					$('#sw_nav_basket').bind('mouseout', function() { 
						$("#memo_mini_panier").hide();
					});
					$('#memo_mini_panier').bind('mouseover', function() { 
						$("#memo_mini_panier").show();
						$('#sw_nav_basket').addClass('current');
					});
					$('#memo_mini_panier').bind('mouseout', function() { 
						$('#sw_nav_basket').removeClass('current');
						$("#memo_mini_panier").hide();
					});
					$(window).load(function() {
						$("#memo_mini_panier").unbind('mouseenter');
						$("#memo_mini_panier").unbind('mouseleave');
						if ($(".memo_mp_produits").children("div").children().length != 0) {
				            $("#memo_mini_panier").die('mouseenter mouseleave');
				            $('.memo_mp_produit').die('hover');
				            $('#memo_fp_acceder_panier').die('click');
				        }
					});
				}, 
				setMenuThemes: function() {
					if(jQuery)
					{
						$(".sw_nav_pop_column_tendances li").mouseover(function(e) {
							$(this).siblings().removeClass("sw_selected");
							$(this).addClass("sw_selected");
							$(this).parent().siblings(".sw_nav_pop_column_tendances_image").hide();
							var img = $(this).parent().siblings(".sw_nav_pop_column_tendances_image").get($(this).index());
							$(img).show();
							$(img).click(function() {
								var url = $(this).siblings('ul').find('.sw_selected a').attr('href');
								window.location = url;
							});
						});
					}
				},
				setSearchLabel : function() {
					var memo_search = document.getElementById("memo_search");
					if(memo_search)
					{
						var span = memo_search.getElementsByTagName("span"); 
						var input = memo_search.getElementsByTagName("input");
						if(span && input)
						{
							span = span[0]; 
							input = input[0];
							add_textbox_label(input, span);
						}
					}
				},
				setNewsletterLight : function() {
					var memo_newsletterLight = document.getElementById("memo_inscriptionNewsletterRapide");
					var sw_newsletterLight = document.getElementById("sw_newsletter_form");
					if(memo_newsletterLight && sw_newsletterLight)
					{

						sw_newsletterLight.innerHTML = memo_newsletterLight.innerHTML;
						memo_newsletterLight.innerHTML = "";
					}
				},
				events : function(){
					return {
						init : function() {
							var div_event = document.getElementById("sw_event");
							var body = document.getElementsByTagName("body")[0];
							body.appendChild(div_event);
							this.startScroll();
							document.getElementById("sw_event").style.display = "block";
							SOMEWHERE.page.addClass("sw_event_on");
						},
						startScroll : function() {
							var div_event = document.getElementById("sw_event");
							var a_events = div_event.getElementsByTagName("a");
							if(a_events.length > 1)
							{
								a_events[0].style.display = "block";
								for(i=1; i < a_events.length; i++)
									a_events[i].style.display = "none";
								setInterval(function() {
									SOMEWHERE.header.events.displayNext();
								}, 5000);
							}
						},
						displayNext : function() {
							var div_event = document.getElementById("sw_event");
							var a_events = div_event.getElementsByTagName("a");
							var a_current=0;
							for(i=0; i < a_events.length; i++)
							{
								if(a_events[i].style.display == "block")
									a_current = i;
							}
							a_events[a_current].style.display = "none";
							a_current++;
							if(a_current >= a_events.length)
								a_current = 0;
							a_events[a_current].style.display = "block";
						}
					};
				}(),
				pushPopup: function() {
					return {
						init : function() {
							if(!this.hasCookie())
							{
								$("#sw_pushpopup").appendTo("#memo_site_centre");
								// Affichage au chargement
								this.display();
								// Evenements divers
								$("#sw_pushpopup_nothanks").click(function() {
									SOMEWHERE.header.pushPopup.hide();
								});
								$("#sw_pushpopup_overlay").click(function() {
									SOMEWHERE.header.pushPopup.hide();
								});
								$("#sw_pushpopup_close").click(function() {
									SOMEWHERE.header.pushPopup.hide();
								});
							}
						},
						display : function() {
							this.setCookie();
							$("#sw_pushpopup").fadeIn("slow");
						},
						hide : function() {
							$("#sw_pushpopup").fadeOut("fast");
						},
						hasCookie: function() {
							return SOMEWHERE.cookies.read("sw_pushpopup");
						},
						setCookie: function() {
							SOMEWHERE.cookies.create("sw_pushpopup","dejavu",1);
						}
					};
				}(),
				pushNewsLight : function(){
					return {
						init : function() {
							if(!SOMEWHERE.header.pushPopup.hasCookie())
							{
								this.defaultTextboxValue = $("#sw_pushnewslight_textbox").val();
								// Evenements divers
								var pushNewsLight = this;
								$("#sw_pushnewslight_textbox").focus(function() {
									if($(this).val() == pushNewsLight.defaultTextboxValue) {
										$(this).val("");
									}
								});
								$("#sw_pushnewslight_textbox").blur(function() {
									if($(this).val() == "") {
										$(this).val(pushNewsLight.defaultTextboxValue);
									}
								});
								$("#sw_pushnewslight_button").click(function() { 
									SOMEWHERE.header.pushNewsLight.submitForm();
								});
							}
							SOMEWHERE.header.pushPopup.init();
						},
						submitForm : function() {
							var emailValue = $("#sw_pushnewslight_textbox").val();
							if(emailValue != "" && emailValue != this.defaultTextboxValue)
							{
								location.href = "/views/compteclient/inscriptionnewsletterlight.aspx?a="+emailValue;
								$("#sw_pushnewslight_error").hide();
							}
							else if(emailValue == "")
							{
								$("#sw_pushnewslight_error").show();
							}
						}
					};
				}()
			};
			// add_hover
			// Ajoute des evenements au rollover sur toggler pour faire apparaitre el
			function add_hover(toggler, el) { 
				toggler.onmouseover = function() { 
					el.style.display = "block";   
					add_hover_classname(toggler);
					add_header_zindex();
				};   
				toggler.onmouseout = function(e) { 
					el.style.display = "none";   
					remove_hover_classname(toggler);
					remove_header_zindex();
					if (!e) var e = window.event;
					e.cancelBubble = true;
					if (e.stopPropagation) e.stopPropagation();
				};              
				el.onmouseover = function() { 
					el.style.display = "block";   
					add_hover_classname(toggler);
					add_header_zindex();
				};  
				el.onmouseout = function() { 
					el.style.display = "none";   
					remove_hover_classname(toggler);
					remove_header_zindex();
				};
			}   
			function add_hover_classname(el) {
				var class_name = "sw_hover";   
				if(!el.className.match(class_name))
					el.className += " "+class_name;  
			}     
			function remove_hover_classname(el) {
				var class_name = "sw_hover";   
				if(el.className.match(class_name))
					el.className = el.className.substring(0, el.className.indexOf(class_name));  
			}
			function add_header_zindex() {
				document.getElementById("memo_site_haut").style.zIndex = "99999";
			}
			function remove_header_zindex() {
				document.getElementById("memo_site_haut").style.zIndex = "";
			}
			// add_textbox_label()
			// Ajoute les evenements pour qu'au clic dans la textbox, le label disparaisse
			function add_textbox_label(textbox, label) {
				if(textbox && label)
				{
					textbox.value = "";
					label.onclick = function() { 
						label.style.display = "none";
						textbox.focus();
					};   
					textbox.onclick = function() { 
						label.style.display = "none"; 
					};     
					textbox.onfocus = function() { 
						label.style.display = "none"; 
					};     
					textbox.onblur = function() {
						if(textbox.value == "")
							label.style.display = "block"; 
					};
				}
			}
		}()
	};
}();

$(document).ready(function() {
	SOMEWHERE.header.init();
});


// Affichage du message pendant les soldes
var SALESMESSAGE = function() {
	return {
		init: function() {
			if(SOMEWHERE.cookies.read('displayMessage') != 'true')
			{
				$('#memo_header').append('<div id="sw_message"><span class="sw_sales_message">Les livraisons pendant la p&eacute;riode des soldes peuvent prendre plusieurs jours, merci de votre compr&eacute;hension. </span><span class="sw_sales_close_button">Masquer ce message</span></div>');
				SALESMESSAGE.displayMessage();
				$('.sw_sales_close_button').click(function() {
					SALESMESSAGE.hideMessage();
				});
			}
		},
		displayMessage: function() {
			$('#sw_message').delay(500).animate({'height': 30});
		},
		hideMessage: function() {
			$('#sw_message').animate({'height': 0}, function() {
				$('sw_message').remove();
			});
			SOMEWHERE.cookies.create('displayMessage', 'true', 7);
		}
	};
}();
$(document).ready(function() {
	SALESMESSAGE.init();
});
