var slideshow;

function startSlide()
{ 		
	 slideshow = new MDSK.Slideshow("slideMainDiv", ".slideDiv", {
	    seconds_per_slide: 5.0
	  	});
}

		var myRequest = null;
		var basepath ="/product/storeLocatorList.jsp?path=";
		var opt_value="";
		var curr_lvl = 0;
		var current_value="";
		var curr_array_value=new Array();
		var curr_desc ="";
		var pathImages ="";
		var STORE_NAME = "";//"(Bulgari)";
		
	
		var FRAME_WIDTH = 425;
		var FRAME_HEIGHT = 350;
		
		
		//for to center the lightbox//
		/*var widthFrame = 619;
		var heightFrame = 434;*/

		var googlePath = "http://maps.google.com/maps?q=";
		var otherMapParam = "&output=embed";
		//var COUNTRY = 'PLEASE SELECT COUNTRY';	
		//var STATE = 'STATE';
		
		//translation from label_locale.js start
		var CITY = CITY;
		var STORE_TYPE = STORE_TYPE;
		var MAP = VIEW_MAP;
		var PIPE =  '|' ;
		var PHOTOS = VIEW_PHOTO;
		//translation from label_locale.js end
		
		var googleLang =''; 
		var clear='';

function getXMLHttp()
  	{
   		var xmlhttp = null;	
   		if (window.ActiveXObject)
   		{
     		if (navigator.userAgent.toLowerCase().indexOf("msie 5") != -1)
     		{	
       			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
     		}
     		else
     		{
       			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");	
       		}
   		}
   		else
   		{
    		if (window.XMLHttpRequest)
    		{	
      			xmlhttp = new XMLHttpRequest();
      			xmlhttp.overrideMimeType("text/xml");
    		}
   		}
   		if (!xmlhttp && typeof(XMLHttpRequest) != 'undefined')
   		{
     		xmlhttp = new XMLHttpRequest()
   		}
   		return xmlhttp
  	}
  	
		function initialize(){
			startSlide();
			executeAjax("store_locator/country",-1);
		
		}
		
		function executeAjax(value,current_level, curr_state,last,last_selection) {
			opt_value=value;
			curr_lvl=current_level;
			myRequest = getXMLHttp(renderStore);
			myRequest.open("get",basepath + value + "&lvl=" + (current_level+1) + "&state=" + curr_desc + "&last=" + last  + "&lastselect=" + last_selection);
			myRequest.onreadystatechange = renderStore;
			myRequest.send(null);									
		
		}
		

		
		function renderStore(){
			if (myRequest.readyState == 4 && myRequest.status == 200) {
				if(myRequest.responseXML){
					curr_lvl=parseInt(curr_lvl);
					var xmlDoc = myRequest.responseXML;
				
					for(var i = curr_lvl+1;i<4;i++){
						emptySelect(i);
						
					}
				
					var item_list = xmlDoc.getElementsByTagName("root")[0].getElementsByTagName("item");
					var is_stores = xmlDoc.getElementsByTagName("root")[0].getElementsByTagName("stores");
					
					
					if(is_stores.length==0){
						
							makeSlideShowVisible(true);
							var livello = xmlDoc.getElementsByTagName("root")[0].getElementsByTagName("level")[0].getAttribute("current");
							var li_select = document.getElementById("li_" + (curr_lvl+1) );
				
						 //	li_select.className="success";
							var ifiden = xmlDoc.getElementsByTagName("root")[0].getElementsByTagName("item").length;
							//alert(ifiden);
							li_select.className="opacity";
							if(ifiden>1){							
							li_select.className="success";
							}
							
							var span_select = document.getElementById("span" + (curr_lvl+1) );//livello da riemp
							var ul_select = document.getElementById("ul" + (curr_lvl+1) );
							if(curr_lvl==-1) curr_array_value = new Array();
							for(var i =0;i<item_list.length;i++){
								//popolo l'header
								
								if(i==0){
								//alert(item_list[i].getAttribute("name") );
								span_select.innerHTML =item_list[i].getAttribute("name") ;
								
								}else{
									var last =item_list[i].getAttribute("last") ;
									var last_selection =item_list[i].getAttribute("name") ;
									//alert("ultimo" + last);
								if(last=="last"){
									var loc_storetype = item_list[i].getAttribute("name");
								
									var storeT_inlang ="";
									switch(loc_storetype) {
									
												  case '1JWL':											  
												  	 storeT_inlang=JEWELS.toUpperCase();
												  break; 	
												  case '2WA':		   
												     storeT_inlang=WATCHES.toUpperCase();											  
												  break; 
												  case '3ACC':
												     storeT_inlang=ACCESSORIES.toUpperCase();
												  break; 
												  case '4PFM':
												     storeT_inlang=FRAGRANCES.toUpperCase();
												  break; 
												  case '5SKN':
												     storeT_inlang=SKINCARE.toUpperCase();
												  break; 
												  default:
												     storeT_inlang='';
												} 
								
								ul_select.innerHTML += "<li><a onclick=\"changeOptionSelect(this,'" + item_list[i].getAttribute("iden") + "','" + livello + "','" + i +"','"+ last +"','"+ last_selection + "')\" >" +  storeT_inlang + "</a></li><br/>"; 	
									
								}else{	
								last_selection =last_selection.replace(/[\']/g,"\\'");
							
								
								
								ul_select.innerHTML += "<li><a onclick=\"changeOptionSelect(this,'" + item_list[i].getAttribute("iden") + "','" + livello + "','" + i +"','"+ last +"','"+ last_selection + "')\" >" + item_list[i].getAttribute("name") + "</a></li><br/>"; 
								
								}									
								
								}
								
								
								if(curr_lvl==-1){
								 curr_array_value[i]=item_list[i].getAttribute("descr");
								//canada,usa,japan
								}
									
							}
							
							
					}else{
						makeSlideShowVisible(false);
						makeClearAllVisible(false);
						startShowStore(xmlDoc);
						
					}
				}
			}
		}
		
		function setGoogStoreLocatorVar(action){
			var i = 0;
			var droplev = document.getElementById("span" + 3 );
			var goog_country = document.getElementById("span" + 0 ).innerHTML;
			//alert('country' + goog_country);
			
			if(droplev.innerHTML!= ''){
				++i;
			}
				var goog_city = document.getElementById("span" + (i + 1) ).innerHTML;
				//alert('city' + goog_city);
				
				var goog_storetype = document.getElementById("span" + (i + 2) ).innerHTML;
				//alert('storetype' + goog_storetype);					
			
			 GoogStoreLocatorTrack(goog_country,goog_city,goog_storetype,action);
		}
		
		
		function changeOptionSelect(ancor,obj,current_level,selectedIndex,last,last_selection){
			
			if(parseInt(current_level)==0 ){
				curr_desc=curr_array_value[parseInt(selectedIndex)];
			}
			
			var span_select = document.getElementById("span" + parseInt(current_level) );
			span_select.innerHTML =ancor.innerHTML;
			current_value = obj;
			executeAjax(current_value,parseInt(current_level),curr_desc,last,last_selection);
			//alert(current_level);
			
			if(current_level==0){
			 emptySelect(2);
			 var li_select = document.getElementById("li_" + 2);
			 li_select.className="opacity";
			}
			
			if(current_level==1){
			 emptySelect(3);
			// var li_select = document.getElementById("li_" + 2);
			 //li_select.className="opacity";
			}
			
			//mi serve per chiudere il menu a tendina
			var li_Menu = ancor.parentNode;
			if(li_Menu){
				var ul_Menu = li_Menu.parentNode;
				if(ul_Menu){
					var dd_Menu = ul_Menu.parentNode;
					if(dd_Menu){
						dd_Menu.style.display="none";
					}
				}
			}
			//
		}
			
		function clearAll(){
	
				clear = 'clarAll';
				
				initialize();
				
				//
			
				var li_select = document.getElementById("li_" + 3);
				li_select.className="failure";
				//

				
				
				var li_select = document.getElementById("li_" + 1);
				li_select.className="opacity";
				var li_select = document.getElementById("li_" + 2);
				li_select.className="opacity";
				//				
		}

			
		function emptySelect(obj_id){
			var li_select = document.getElementById("li_" + obj_id );
			
			
			if(obj_id==3 ){
				li_select.className="failure";
			}
		
			
			//if(clear=='true')
			//if(clear){
				var span_select = document.getElementById("span" + obj_id );
				span_select.innerHTML ="";
				
				
				if(obj_id==1 ){
					var span = document.getElementById("span"  + obj_id);
					span.innerHTML =CITY;
					
					
				}
				if(obj_id==2 ){
					var span = document.getElementById("span" + obj_id );
					span.innerHTML =STORE_TYPE;
				}
				
			//}
		
			var obj = document.getElementById("ul"+obj_id);
			obj.innerHTML="";
			
		}
		
		function makeSlideShowVisible(vis){
					var slideHeaderDiv = document.getElementById("slideHeaderDiv");	
					if(vis){
							
							
						slideHeaderDiv.style.visibility = "visible";
						slideHeaderDiv.style.display = "block";
						var mainStoreDiv = document.getElementById("storeAddress");
						var mapDiv = document.getElementById("map");
						mainStoreDiv.innerHTML="";
						mapDiv.innerHTML="";
						makeClearAllVisible(true);		
						
						var mainStoreDiv = document.getElementById("storeAddress");
						mainStoreDiv.style.visibility = "hidden";
						mainStoreDiv.style.display = "block";
						
						
						
					}else{				
						slideHeaderDiv.style.visibility = "hidden";
						slideHeaderDiv.style.display = "none";
					}
		}
		function makeClearAllVisible(vis){
					var clearDiv = document.getElementById("clearlink");	
					if(vis){
						clearDiv.style.visibility = "hidden";
						clearDiv.style.display = "block";
					
					}else{				
						clearDiv.style.visibility = "visible";
						
					}
		}
	function getLocale(locale){
		switch(locale) {
  
			  case 'en':
			  	googleLang='&hl=en';
			  break; 	
			  case 'en_US':		   
			    googleLang='&hl=EN';
			  break; 
			  case 'it_IT':
			   googleLang='&hl=it';
			  break; 
			  case 'fr_FR':
			   googleLang='&hl=fr';
			  break; 
			  case 'ja_JP':
			   googleLang='&hl=ja';
			    break; 
			  case 'ko_KR':
			    googleLang='&hl=ko';
			  break; 
			  case 'zh_TW':
			    googleLang='&hl=zh-CN';
			  break;
			   case 'zh_CN':
			    googleLang='&hl=zh-CN';
			  break;
			  default:
			    googleLang='&hl=EN';
			}
		//alert(locale);
		}
		
		function startShowStore(xmlDoc){
		
					var mainStoreDiv = document.getElementById("storeAddress");
					var mapDiv = document.getElementById("map");
					mainStoreDiv.innerHTML="";
					mapDiv.innerHTML="";
					
					var numberSubStores =  xmlDoc.getElementsByTagName("root")[0].getElementsByTagName("stores")[0].getElementsByTagName("subtype").length;
					var storeCategory = new Array ();
					setGoogStoreLocatorVar('View Stores');
				 
					for (var j=0; j < numberSubStores; j++)
					 {
						var title = xmlDoc.getElementsByTagName("root")[0].getElementsByTagName("stores")[0].getElementsByTagName("subtype")[j].getAttribute("type");
						
						// dirt workaround to change JP Boutique title without modifying 800 entries via CMS
						if(title=="ブティック"){
							title="ブルガリショップ";							
						}
						
						
						
					 	// create a div for store type (Boutiques, Authorized Retailers)
					 	titleDiv = document.createElement("div"); 
					 	titleDiv.setAttribute('id',"storeType");
					 	categoryText = document.createTextNode(title);
					 	titleDiv.appendChild(categoryText);
					 	mainStoreDiv.appendChild(titleDiv);
					 	mainStoreDiv.style.visibility = "visible";
					 	
					 
					 	
					 	mainStoreDiv.style.display = "block";
					 	var numberAddressStores =  xmlDoc.getElementsByTagName("root")[0].getElementsByTagName("stores")[0].getElementsByTagName("subtype")[j].getElementsByTagName("item").length;
					 	addressDiv = document.createElement("div"); 
				 		addressDiv.setAttribute('id',"addresses");
					 	
					 	for (var k=0; k < numberAddressStores; k++)
						{
					 		var address =  xmlDoc.getElementsByTagName("root")[0].getElementsByTagName("stores")[0].getElementsByTagName("subtype")[j].getElementsByTagName("item")[k];
					 		var completeAddress = '';			 		
					 		
					 		// create a div to contain address details - street, city, tel and fax
					 		/*clearAllDiv = document.createElement("a"); 
					 		clearAllDiv.setAttribute('id',"clearall");	
					 		clearAllDiv_Text = document.createTextNode('cancella');
					 		clearAllDiv.appendChild(clearAllDiv_Text);
					 		*/
					 		addressDetDiv = document.createElement("div"); 
					 	
					 		addressDetDiv.setAttribute('id',"addressDetails");	
					 		//addAddressDetail(address, "name", addressDetDiv);	
					 		//addAddressDetail(address, "description", addressDetDiv);
					 		//addAddressDetail(address, "Store_Type", addressDetDiv);
					 		
					 				
					 		addAddressDetail(address, "Address", addressDetDiv);	 						 	
						 	completeAddress = address.getAttribute("Address");
						 	//addAddressDetail(address, "City", addressDetDiv);
						 	//addAddressDetail(address, "Contact", addressDetDiv);
							//addAddressDetail.innerHTML=replace("\n", "<br />");
							completeAddress = completeAddress + address.getAttribute("City");
							addressMapSpan = document.createElement("div"); 
							addressMapSpan.setAttribute("id","addressMap");
						
							var there_is_map=false;
							
							if(address.getAttribute("mapLink")!=""){
								there_is_map=true;
								mapLink = document.createElement("a");
								mapLink.setAttribute("rel","lightframe");
							
								mapLink.setAttribute("rev",FRAME_WIDTH  + PIPE + FRAME_HEIGHT);
								//mapLink.setAttribute("title",completeAddress);
								
							mapLink.setAttribute("href", googlePath + address.getAttribute("mapLink") + STORE_NAME + otherMapParam +  googleLang);
								
							
								mapLink.onclick = function () {showLightbox(this,true); setGoogStoreLocatorVar('Map View');return false;}
								
						 		mapText = document.createTextNode(MAP);
						 		mapLink.appendChild(mapText);					 		
						 		addressMapSpan.appendChild(mapLink);						
							}							
							if(address.getAttribute("url")!=""){

						 		if(there_is_map){
								
								 	//addrText = document.createTextNode(PIPE);
								 	//	addressMapSpan.appendChild(addrText);
								 	addrText = document.createElement('span');
								 	addrText.setAttribute('id',"contentPipe");	
								 	addrText2 = document.createTextNode(PIPE);
								 	
								 	addrText.appendChild(addrText2);
								addressMapSpan.appendChild(addrText);
										
						 		}
								// create an anchor to the Store image with lightbox effect
								imgLink = document.createElement("a");							
								imgLink.setAttribute("rel","lightbox");
								//imgLink.setAttribute("title",completeAddress);
								
								var light_contact = address.getAttribute("Contact") + " ";// +address.getAttribute("Store_Type");
								//imgLink.setAttribute("title",light_contact);
								
								imgLink.setAttribute("href", pathImages + address.getAttribute("url"));
								
								// photo or flash						
								if(imgLink.href.endsWith(".swf")){
								imgLink.setAttribute("rel","lightframe");
									imgLink.onclick = function () {showLightbox(this,true); setGoogStoreLocatorVar('Photo View');return false;}
								
								}else{
									imgLink.onclick = function () {showLightbox(this,false); setGoogStoreLocatorVar('Photo View');return false;}
								}
						
								
								linkText = document.createTextNode(PHOTOS);
								imgLink.appendChild(linkText);
								addressMapSpan.appendChild(imgLink);							
							}
							
						
							
										
							addressDiv.appendChild(addressDetDiv);
							
							addressDetDiv.appendChild(addressMapSpan);
						
									
						
													 							 
						}
						
												 	
					 	mainStoreDiv.appendChild(addressDiv);
					 				
		 	
					}
		}
		
	/**
	 *    Utilities
	 */
	
	
	// Removes all childnodes from a specific node
	function removeChildNodes(arrayEl){
		while(arrayEl.hasChildNodes()){
				arrayEl.removeChild(arrayEl.childNodes[0]);
		}
	}
	
	
	// Adds a <br> tag to format text
	function addNewLine(divName){
	 	brEl = document.createElement("br");
	 	divName.appendChild(brEl);
	}
	
	
	// Retrieves an attribute from the xml document, appends its value to the div and inserts a new <br> tag at the end.
	function addAddressDetail(xmlElement, attrName, divName){		
		
	var txt_split;
	var addrTextsplit;
	var ltxt;
		
	addrText = document.createTextNode(xmlElement.getAttribute(attrName));

//	
	ltxt = xmlElement.getAttribute(attrName);

	 if (ltxt!=''){
	 
	 	 txt_split = ltxt.split("<BR>");
		 	if(txt_split.length > '1'){
			 	for(var i = 0 ; i < txt_split.length ; i ++){
							
					addrTextsplit = document.createTextNode(txt_split[i]);
					divName.appendChild(addrTextsplit);
					addNewLine(divName);
				 	} 	
			 }else{
					divName.appendChild(addrText);
					addNewLine(divName);
			 }
	}else{ 	
//
	divName.appendChild(addrText);
	addNewLine(divName);
	}
			
		}
	

	function setCurrentValue(dtName, currentValue)
	{		
		document.getElementById(dtName).innerHTML=currentValue;
	}
	
	
	function trim(value)
	{
		
		var trimmedValue = value.replace(/^\s+|\s+$/g, '') ;
		return trimmedValue;
	}
	
	
	/*
	function hideMenu(elName)
	{
		var el = document.getElementById(elName);
		//el.style.display = "none";
		
	}
	
	
	
	function showMenu()
	{
		var arrDD = document.getElementsByTagName("dd");
		for (i=0; i<arrDD.length; i++){
				//arrDD[i].style.display="block";
		}
		
	}*/
	
		function showMenu(obj)
	{
		

		var dlMenu = obj.parentNode;
		
		if(dlMenu){
			var liMenu = dlMenu.parentNode;
			if(liMenu){
			
			classLi=liMenu.className;
			if(classLi!="opacity"){
			
				var arrDD = dlMenu.getElementsByTagName("dd")[0];
				if(arrDD){
				
						//close all menu
						JQ(".js").find(".success").each(function(){
								var $ddd =JQ(this).find("dd");
								 if( $ddd.attr("id")!= arrDD.id ) {
								 	$ddd.css({"display":"none"});
								 
								 	}
							}
						);
				
					var displayMode = arrDD.style.display;
					if(displayMode=="block"){ 
						arrDD.style.display="none";
					}else{
						JQ(arrDD).fadeIn("slow");
						//arrDD.style.display="block";
						}
					}
			
				}
			
			
			}
			
		}
	}
	