C_MEDIA = "";
CALLBACK ='';
deeplink_array = [];
MAP_REF = {};
//alert("startChanelMap");
function resetMap(){
	MAP_REF.setZoom(14);
	MAP_REF.panTo(new GLatLng(53.8454,-3.0255));
}

function startChanelMap(deeplink)
{
	//alert("startChanelMap" +deeplink);
	$("#overlay_popin").hide();
    //<![CDATA[

    if (GBrowserIsCompatible()) {
 
	var side_bar_html = "";
	var gmarkers = [];
	var htmls = [];
	var i = 0;
	
	var tab_stat = [];
	tab_stat['CHANEL-Shanghai-Exclusive.html']="Boutique exclusive products entry1";

	tab_stat['CHANEL-Paris-Shanghai-Episode-01.html']="Diary episode 01 entry1";
	tab_stat['CHANEL-Paris-Shanghai-Episode-02.html']="Diary episode 02 entry1";
	tab_stat['CHANEL-Paris-Shanghai-Episode-03.html']="Diary episode 03 entry1";
	tab_stat['CHANEL-Paris-Shanghai-Episode-04.html']="Diary episode 04 entry1";
	tab_stat['CHANEL-Paris-Shanghai-Episode-05.html']="Diary episode 05 entry1";
	tab_stat['CHANEL-Paris-Shanghai-Episode-06.html']="Diary episode 06 entry1";
	tab_stat['CHANEL-Paris-Shanghai-Episode-07.html']="Diary episode 07 entry1";
	tab_stat['CHANEL-Paris-Shanghai-Episode-08.html']="Diary episode 08 entry1";
	tab_stat['CHANEL-Paris-Shanghai-Episode-09.html']="Diary episode 09 entry1";
	tab_stat['CHANEL-Paris-Shanghai-Episode-10.html']="Diary episode 10 entry1";
	tab_stat['CHANEL-Paris-Shanghai-Episode-11.html']="Diary episode 11 entry1";
	tab_stat['CHANEL-Paris-Shanghai-Episode-12.html']="Diary episode 12 entry1";
	tab_stat['CHANEL-Paris-Shanghai-Episode-13.html']="Diary episode 13 entry1";
	

	tab_stat['Karl-Lagerfeld-paris-shanghai-a-fantasy-the-trip-that-coco-chanel-only-made-in-her-dreams.html']="KL movie entry1";
	tab_stat['CHANEL-Show-Paris-Shanghai.html']="Fashion Show entry1";
	

	tab_stat['CHANEL-Shanghai-Boutique-interior.html']="Boutique virtual tour entry1";
	
	tab_stat['CHANEL-Shanghai-Boutique-description.html']="Boutique concept entry1";
	tab_stat['CHANEL-Shanghai-Boutique-useful-information.html']="Boutique Information entry1";
	tab_stat['CHANEL-Shanghai-Boutique-architect.html']="Boutique architect itw entry1";
	// ===== This function is invoked when the mouse goes over an entry in the side_bar =====
	// It launches the tooltip on the icon      
	function mymouseover(i) {
		showTooltip(gmarkers[i])
	}
	// ===== This function is invoked when the mouse leaves an entry in the side_bar =====
	// It hides the tooltip      
	function mymouseout() {
		tooltip.style.visibility="hidden";
	}
	
	// This function picks up the click and opens the corresponding info window
	function myclick(i) {
		
		GEvent.trigger(gmarkers[i], "click");
		window.location.hash = "#map";
	}
		
	  var map = new GMap2(document.getElementById("map"), {backgroundColor:"#000000"});
	  map.addControl(new GLargeMapControl());
	  map.enableScrollWheelZoom();

	  MAP_REF = map;
      
     

      // ============================================================
      // ====== Create a copyright collection =====
      // ====== and add the copyright to it   =====
      var copyrightCollection = new GCopyrightCollection('Map Data:');
      

      // ============================================================
      // == Write our own getTileUrl function ========
      // In this case the tiles are names like  8053_5274_3.jpg      
      CustomGetTileUrl=function(a,b){
			var z = b+1;
			var f = "../tiles/"+z+"_"+a.x+"_"+a.y+".jpg";//"image.php?x="+a.x+"&y="+a.y+"&zoom="+z;
			return f;
      }
	
      // ============================================================
      // ===== Create the GTileLayer =====
      // ===== adn apply the CustomGetTileUrl to it
      var tilelayers = [new GTileLayer(copyrightCollection,14,16)];
      tilelayers[0].getTileUrl = CustomGetTileUrl;
	   
	/*	GEvent.addListener(map, "click", function(overlay,latlng) {
          if (latlng) {
            var myHtml = "The GPoint value is: " +latlng +"  "+ map.fromLatLngToDivPixel(latlng) + " at zoom level " + map.getZoom();
            map.openInfoWindow(latlng, myHtml);
          }
        });*/
	
	
	// Add a move listener to restrict the bounds range
      GEvent.addListener(map, "move", function() {
        checkBounds();
      });

      // The allowed region which the whole map must be within
      var allowedBounds = new GLatLngBounds(new GLatLng(53.835,-3.055), new GLatLng(53.855,-2.990));
      
      // If the map position is out of range, move it back
      function checkBounds() {
			// Perform the check and return if OK
			if (allowedBounds.contains(map.getCenter())) {
			  return;
			}
			// It`s not OK, so find the nearest allowed point and move there
			var C = map.getCenter();
			var X = C.lng();
			var Y = C.lat();
	
			var AmaxX = allowedBounds.getNorthEast().lng();
			var AmaxY = allowedBounds.getNorthEast().lat();
			var AminX = allowedBounds.getSouthWest().lng();
			var AminY = allowedBounds.getSouthWest().lat();
	
			if (X < AminX) {X = AminX;}
			if (X > AmaxX) {X = AmaxX;}
			if (Y < AminY) {Y = AminY;}
			if (Y > AmaxY) {Y = AmaxY;}
			//alert ("Restricting "+Y+" "+X);
			map.setCenter(new GLatLng(Y,X));
		}
		

		/*GESTION DU ZOOM*/
		 GEvent.addListener(map,'zoomend',function(){ 
                //alert("zoomed" + map.getZoom()); 
        }); 
		
		// ============================================================
		// ===== Create the GMapType =====
		// ===== and add it to the map =====
		var custommap = new GMapType(tilelayers, new GMercatorProjection(17), "Old OS");
		map.addMapType(custommap);

		map.addControl(new GMapTypeControl());
		map.removeMapType(G_NORMAL_MAP);
		map.removeMapType(G_SATELLITE_MAP);
		map.removeMapType(G_HYBRID_MAP);
	
		map.setCenter(new GLatLng(53.8454,-3.0255), 14, custommap);
	 	
	 
	 /*GESTION DES MARKERS */
	
	 	  
		function createMarker(point,img,w,h,media,action) {
		
			var myIcon = new GIcon();
			myIcon.image = img;
			myIcon.iconSize = new GSize(w,h);
			myIcon.iconAnchor = new GPoint(0,0);
			if(action!="")
			{
				var marker = new GMarker(point,{icon: myIcon});
			}else{
				var marker = new GMarker(point,{icon: myIcon,clickable : false});
				//GEvent.addListener(marker, "click", function() {
			}
			
			
			GEvent.addListener(marker, "click", function() {
				C_MEDIA = media;	
				
				var c = document.getElementById("popin_content");
				if (!c) {
					var d = document.createElement("div");						
					d.setAttribute("id", "popin_content");
					document.getElementById("popin").appendChild(d);
				}
				
				for(var i = 0 ; i < deeplink_array.length ; i ++)
				{
					
					if(deeplink_array[i].media == C_MEDIA)
					{
						//map.panTo(new GLatLng(deeplink_array[i].lat,deeplink_array[i].lng));
						var action  = String(deeplink_array[i].action)+"('"+String(deeplink_array[i].media)+"')";
						window.location.replace("#"+deeplink_array[i].media);
						try {
							eval(action);
						} catch (e)
						{
							//alert(e+"  "+e.message);
						}
					
						break;
					}
						
				}
				
				//-- STAT //
   				var url = myUrl();
				var lang = myLang();
				FlashTrack('DCSext.ch_re','chanelcom', 'DCSext.ch_div','paris-shanghai', 'DCSext.ch_cat','PARIS SHANGHAI site','DCSext.ch_lang',lang, 'DCS.dcsuri', 'index.html#'+C_MEDIA,'WT.ti','C H A N E L', 'DCSext.ch_scat1','P_S Nav entry1', 'DCSext.ch_scat2', tab_stat[C_MEDIA]);
				
				
				
				$("#popin").show();
				$("#overlay_popin").show();
				
			});
			return marker;
		}
		
		
		function deepLinkIt(deeplink)
		{
		
			if(deeplink!='')
			{
				var where2 = String(deeplink.split("?")[0]);
				var c = document.getElementById("popin_content");
				if (!c) {
					var d = document.createElement("div");						
					d.setAttribute("id", "popin_content");
					document.getElementById("popin").appendChild(d);
				}
				
				
				for(var i = 0 ; i < deeplink_array.length ; i ++)
				{
					if(deeplink_array[i].media == where2)
					{
						
						//MAP_REF.panTo(new GLatLng(deeplink_array[i].lat,deeplink_array[i].lng));
						//MAP_REF.setZoom(15);
						//map.panTo(new GLatLng(deeplink_array[i].lat,deeplink_array[i].lng));
						C_MEDIA = deeplink_array[i].media;
						var action  = String(deeplink_array[i].action)+"('"+String(deeplink_array[i].media)+"')";
						eval(action);
						break;
					}
				}
				
				$("#popin").show();
				$("#overlay_popin").show();
				deeplink = "";
			}
			
		}
		
		
		function onOverlayLoaded(data)
		{
			
			var strHTML = new String(data);
			var xml = GXml.parse(strHTML);
			
			var markers = xml.documentElement.getElementsByTagName("li");
			var mm = new GMarkerManager(map);
			
			for (var i = 0; i < markers.length; i++) {
				var lat = parseFloat(markers[i].getAttribute("lat"));
				var lng = parseFloat(markers[i].getAttribute("lng"));
				
				var point = new GLatLng(lat,lng);
				var media = markers[i].getAttribute("media");
				var icone = markers[i].getAttribute("src");
				var action = markers[i].getAttribute("action");
				var zoom = markers[i].getElementsByTagName("img");
				
								
				for (var j = 0; j < zoom.length; j++) {	
					
					var gmarker = createMarker(point,zoom[j].getAttribute("src"),zoom[j].getAttribute("width"),zoom[j].getAttribute("height"),media,action);
					var zoomID = parseFloat(zoom[j].getAttribute("id"));
					mm.addMarker(gmarker,zoomID,zoomID); 
					//lat, long, C_MEDIA, méthode, deeplink
				}
				var o = {};
					o.lat = lat;
					o.lng = lng;
					o.media = media;
					switch (action)
					{
						case 'video' : o.action = "initVideo" ; break;
						case 'slideshow' : o.action = "initSlideShow" ; break;
						case 'scroll' : o.action = "initScroll"; break;
						case 'scroll2' : o.action = "initScroll2"; break;
						case 'interview' : o.action = "initAudio"; break;
						case 'information' : o.action = "initInformation"; break;
					}
					o.zoom = zoom;
					deeplink_array.push(o);
			}
			
			//alert("deeplink " + deeplink);
			deepLinkIt(deeplink);
		}
		jQuery.get("overlays.html", "", onOverlayLoaded)
		
		
	
    
    // display a warning if the browser was not compatible
  }
  
 
}
	
/*********************************
					UTILS
*********************************/

function loadjscssfile(filename, filetype, _callback){
		CALLBACK = _callback;
		if (filetype=="js"){ //if filename is a external JavaScript file
			var fileref=document.createElement('script');
			fileref.setAttribute("type","text/javascript");
			fileref.setAttribute("src", filename);
		} else if (filetype=="css"){ //if filename is an external CSS file
			var fileref=document.createElement("link");
			fileref.setAttribute("rel", "stylesheet");
			fileref.setAttribute("type", "text/css");
			fileref.setAttribute("href", filename);
		}
		//alert("loadjscssfile " + _callback+"  " +fileref);
		if (typeof fileref!="undefined"){
			document.getElementsByTagName("head")[0].appendChild(fileref);
		}
		fileref.onreadystatechange = function () {
			if (fileref.readyState == 'loaded') {
				
				if(CALLBACK!='')
				{
					eval(CALLBACK);
				}
			}else if (fileref.readyState == 'complete') {

				if(CALLBACK!='')
				{
					eval(CALLBACK);
				}
			}
		}

		fileref.onload = function () {

			//alert("onload "+CALLBACK);
			if(CALLBACK!='' && CALLBACK!= undefined )
			{
				eval(CALLBACK);
			}
		}
}

var filesadded="" //list of files already added

function checkloadjscssfile(filename, filetype, _callback){
		if (filesadded.indexOf("["+filename+"]")==-1){
			loadjscssfile(filename, filetype,_callback);
			filesadded+="["+filename+"]"; //List of files added in the form "[filename1],[filename2],etc"
		} else{
			eval(_callback);
		}
}


/*
on checke tous les css et js avant de lancer le startchanel
*/

var js_a = ["../js/slide.js","../js/video.js","../js/scrollPage.js","../js/jScrollPane.js","../js/jquery.mousewheel.js","../js/audio.js","../js/information.js","../js/scrollPage2.js"];
CURRENT  = 0;




function drawLine(x1, y1, x2, y2, w, c, o,id) {
	/*var lang = myLang();
	if (lang == "zh-cn" || lang == "zh-tw"){
	   x1 = x1-9;
	}
		alert(x1);*/
	var y = x = 0;
	var signX = (x1 - x2) / Math.abs(x1 - x2) * -1;
	var signY = (y1 - y2) / Math.abs(y1 - y2) * -1;
	if (x2 == x1) {
		setPx(Math.min(x1, x2), Math.min(y1, y2), w, Math.abs(y2 - y1), c, o,id);
	} else if (y1 == y2) {
		setPx(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2 - x1), w, c, o,id);
	} else {
		if (Math.abs((y2 - y1) / (x2 - x1)) <= 1) {
			while (x <= Math.abs(x2 - x1)) {
				y = (y2 - y1) / Math.abs(x2 - x1) * x;
				setPx(signX * x + x1, y + y1, w, w, c, o,id);
				x++;
			}
		} else {
			while (y <= Math.abs(y2 - y1)) {
				x = (x2 - x1) / Math.abs(y2 - y1) * y;
				setPx(x + x1, signY * y + y1, w, w, c, o,id);
				y++;
			}
		}
	}
	
}

function setPx(x, y, w, h, c, o,id) {
	var px = document.createElement('div');
	px.id = id;
	px.style.cssText = 'z-index: 600; position:absolute; top:' + y + 'px; left:' + x + 'px; background-color: '+ c + ' ; width:' + w + 'px; height:' + h + 'px; opacity:' + o / 100 + '; filter:alpha(opacity=' + o + '); font-size : 0; overflow : hidden';
	var loaderDiv = document.getElementById("loader")
	loaderDiv.appendChild(px);
}

function clearPx(id) {
	while (document.getElementById(id)) {
		document.body.removeChild(document.getElementById(id));
	}
}

function loadJs()
{	
	
		if(CURRENT < js_a.length)
		{
			var lang = myLang();
			if (lang == "zh-cn" || lang == "zh-tw"){
			   x1 = 130;
			}else{
				x1 = 139;
			}
			if(CURRENT!=0) drawLine(x1,wanted_ord,(CURRENT/js_a.length)*(wanted_width - 169),wanted_ord,1, '#ffffff', 100, 'loaded')
			loadjscssfile(js_a[CURRENT],"js",'loadJs()');
			
		}else{
			drawLine(139,wanted_ord,(wanted_width - 169),wanted_ord,1, '#ffffff', 100, 'loaded')
			startChanelMap(deeplink);
			document.getElementById('map').style.visibility='visible';
			document.getElementById('loader').style.visibility='hidden';
		}
		
		
		CURRENT ++;
}


/*MENU ACTIONS */
tab_ref_city = [];
tab_ref_city.push({name : "paris",lat : 53.84857738544771, lng :  -3.058319091796875});
tab_ref_city.push({name : "shangai",lat : 53.84214645605164, lng :  -2.9968643188476562});
function panToPoint(city)
{
	
	var o = getCoordsByCity(city);
	//alert(o+"  "+o.name);
	MAP_REF.panTo(new GLatLng(o.lat,o.lng));
}

function getCoordsByCity(s)
{
	
	for(var i  = 0; i < tab_ref_city.length ; i ++)
	{
		if(tab_ref_city[i].name == s)return tab_ref_city[i];
	}
	
	return null;
	
}


function openPage(deeplink)
{	
	if(deeplink!='')
	{
		var c = document.getElementById("popin_content");
		if (!c) {
			var d = document.createElement("div");						
			d.setAttribute("id", "popin_content");
			document.getElementById("popin").appendChild(d);
		}
		
		
		for(var i = 0 ; i < deeplink_array.length ; i ++)
		{
			if(deeplink_array[i].media == deeplink)
			{
				C_MEDIA = deeplink_array[i].media;
				var action  = String(deeplink_array[i].action)+"('"+String(deeplink_array[i].media)+"')";
				eval(action);
				break;
			}
				
		}
		
		$("#popin").show();
		$("#overlay_popin").show();
		deeplink = "";
	}
	
}
