// read url parameters
(function ($) {
    $.url = {};
    $.extend($.url, {
        _params: {},
        init: function(){
            var paramsRaw = "";
            try{
                paramsRaw =
                (document.location.href.split("?", 2)[1] || "").split("#")[0].split("&") || [];
                for(var i = 0; i< paramsRaw.length; i++){
                    var single = paramsRaw[i].split("=");
                    if(single[0])
                        this._params[single[0]] = unescape(single[1]);
                }
            }
            catch(e){
                alert(e);
            }
        },
        param: function(name){
            return this._params[name] || "";
        },
        paramAll: function(){
            return this._params;
        }
    });
    $.url.init();
})(jQuery);

// Googlemap + actions
$(function() {
        var map;
        var rms = new google.maps.LatLng(49.238868, 4.002671);
        var docXMLDefault = 'http://www.reims-ms.fr/docs/googlemap/en/xml-rms.php?zone=' + $.url.param("zone");
        if ($('#map').hasClass('big')) {
            var zoomDefault = 3
        }
        else { 
            var zoomDefault = 2
        }
       

        var myOptions = {
          zoom: zoomDefault,
          center: rms,
          mapTypeControl: true,
          mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
          mapTypeId: google.maps.MapTypeId.TERRAIN,
          streetViewControl: true
        };

        map = new google.maps.Map(document.getElementById("map"), myOptions);

        // add markerRMS
        var goBackToRmsDiv = document.createElement('DIV');
        var goBackToRms = new GoBackToRms(goBackToRmsDiv, map);
        goBackToRmsDiv.index = 1;
        map.controls[google.maps.ControlPosition.TOP_RIGHT].push(goBackToRmsDiv);

        var imageRms = 'http://www.reims-ms.fr/images/googlemap/ico-rms.png';

        var markerRms = new google.maps.Marker({
            position : rms,
            map: map,
            icon: imageRms,
            title: 'Reims Management School'
        });
        var contentString = '<div class="contentRms">' +
            '<p><img src="http://www.reims-ms.fr/images/googlemap/rms-logo-rms.jpg" /><\/p>'+
            '<p>Numbered among the top management training groups, RMS has educated over 25,000 students in the last 80 years. RMS has always known how to innovate in order to meet the expressed needs of the business world.<\/p>' +
            '<h2>Reims Management School<\/h2>' +
            '<ul>' +
            '<li>59, rue Pierre Taittinger - 51100 Reims <br /> France<\/li>' +
            '<li><strong>Tel. :<\/strong> +33 (0) 3 26 77 47 47<\/li>' +
            '<li><strong>Fax :<\/strong> +33 (0)3 26 04 69 63<\/li>' +
            '<li><strong>Website :<\/strong> <a href="http://www.reims-ms.fr" target="_blank">http://www.reims-ms.fr<\/a><\/li>' +
            '<\/ul>' +
            '<\/div>';

        var infoWindowRms = new google.maps.InfoWindow({
           content: contentString
        });

        google.maps.event.addListener(markerRms, 'click', function() {
          infoWindowRms.open(map,markerRms);
          map.setCenter(rms);
        });



       // add Xml
       var infoWindow = new google.maps.InfoWindow;

       downloadUrl(docXMLDefault, dataFunction = function(data){
           var xml = parseXML(data);
           var chargementXml = xml.documentElement;

           var markers = chargementXml.getElementsByTagName('marker');

           for (i = 0; i < markers.length; i++) {
               var title = chargementXml.getElementsByTagName('title')[i].firstChild.nodeValue ;
               var logo = chargementXml.getElementsByTagName('logo')[i].firstChild.nodeValue;
               var address = chargementXml.getElementsByTagName('address')[i].firstChild.nodeValue;
               var tel = chargementXml.getElementsByTagName('tel')[i].firstChild.nodeValue;
               var fax = chargementXml.getElementsByTagName('fax')[i].firstChild.nodeValue;
               var pays = chargementXml.getElementsByTagName('pays')[i].firstChild.nodeValue;
               var web = chargementXml.getElementsByTagName('website')[i].firstChild.nodeValue;
               var lat = chargementXml.getElementsByTagName('lat')[i].firstChild.nodeValue;
               var lng = chargementXml.getElementsByTagName('lng')[i].firstChild.nodeValue;


               var point = new google.maps.LatLng(lat, lng);

               if(logo !='') {var docLogo = '<p><img src="http://www.reims-ms.fr/'+ logo +'" \/><\/p>'} else {docLogo = ''}
               if(address !='') {var docAddress = '<li>'+ address +'<br />'+ pays +'<\/li>'} else {docAddress = ''}
               if(tel !='') {var docTel = '<li><strong>Tel. :<\/strong> '+ tel +'<\/li>'} else {docTel = ''}
               if(fax !='') {var docFax = '<li><strong>Fax :<\/strong> '+ fax +'<\/li>'} else {docFax = ''}
               if(web !='') {var docWeb = '<li><strong>Website :</\strong> <a href="'+ web +'" target="_blank">'+ web +'<\/a><\/li>'} else {docWeb = ''}

               var supdeco = markers[i].getAttribute("supdeco");
               var cesem = markers[i].getAttribute("cesem");
               var tema = markers[i].getAttribute("tema");
               var suptg = markers[i].getAttribute("suptg");
               var imba = markers[i].getAttribute("imba");
               var mim = markers[i].getAttribute("mim");

               if(supdeco == 1) { var txtSupdeco = '<li><a href="http://www.supdeco-rms.com/" target="_blank"><img src="http://www.reims-ms.fr/images/googlemap/rms-logo-supdecoreims.jpg" \/><\/a><\/li>'} else { txtSupdeco = ''}
               if(cesem == 1) { var txtCesem = '<li><a href="http://www.cesem-rms.com/" target="_blank"><img src="http://www.reims-ms.fr/images/googlemap/rms-logo-cesem.jpg" /><\/a><\/li>'} else { txtCesem = '' }
               if(tema == 1) { var txtTema = '<li><a href="http://www.tema-rms.com/" target="_blank"><img src="http://www.reims-ms.fr/images/googlemap/rms-logo-tema.jpg" /><\/a><\/li>'} else {txtTema = '' }
               if(suptg == 1) { var txtSuptg = '<li><a href="http://www.suptg-rms.com/" target="_blank"><img src="http://www.reims-ms.fr/images/googlemap//rms-logo-suptg.jpg" /><\/a><\/li>'} else { txtSuptg = ''}
               if(imba == 1) { var txtImba = '<li><a href="http://www.mba-rms.com/" target="_blank"><img src="http://www.reims-ms.fr/images/googlemap/rms-logo-imba.jpg" /><\/a><\/li>'} else { txtImba = ''}
               if(mim == 1) { var txtMim = '<li><a href="http://www.masters-rms.com/mim.html" target="_blank"><img src="http://www.reims-ms.fr/images/googlemap/rms-logo-mim.jpg" /><\/a><\/li>'} else { txtMim = ''}

               if(supdeco == 1 || cesem == 1 || tema == 1 || suptg == 1 || imba == 1 || mim == 1) {var ouvertureUl = '<ul class="logo">'} else {ouvertureUl = '' }
               if(supdeco == 1 || cesem == 1 || tema == 1 || suptg == 1 || imba == 1 || mim == 1) {var fermetureUl = '</ul>'} else {fermetureUl = '' }

              var html = '<div class="content">' +
                   docLogo +
                   "<h2>"+ title +"<\/h2>" +
                   "<ul>" + docAddress + docTel + docFax + docWeb + "<\/ul>" +
                   ouvertureUl +
                   txtSupdeco + txtCesem + txtTema + txtSuptg + txtImba + txtMim +
                   fermetureUl +
                   "<\/div>";

               var image = 'http://www.reims-ms.fr/images/googlemap/ico-partner-rms.png';
               var marker = new google.maps.Marker({
                   position: point,
                   map: map,
                   title: title,
                   icon: image
               });
               bindInfoWindow(marker, map, infoWindow, html, lat, lng);
            }
            google.maps.event.addListener(map, 'click', function() {
              infoWindow.close();
              infoWindowRms.close();
            });
        });

       function GoBackToRms(rmsDiv, map) {
            rmsDiv.style.padding = "5px";

            var controlUI = document.createElement('DIV');
            controlUI.className = 'controlUI';
            controlUI.innerHTML = 'RMS Location';
            rmsDiv.appendChild(controlUI);

            google.maps.event.addDomListener(controlUI, 'click', function() {
                map.setCenter(rms);
            });
        }

        // function necessaire
        function bindInfoWindow(marker, map, infoWindow, html, lat, lng) {
            google.maps.event.addListener(marker, 'click', function() {
              infoWindow.setContent(html);
              infoWindow.open(map, marker);
              var center = new google.maps.LatLng(lat, lng);
              map.setCenter(center);
            });
        }

        // function necessaire pour le parse
       function downloadUrl(url, callback) {
          var request = window.ActiveXObject ?
              new ActiveXObject('Microsoft.XMLHTTP') :
              new XMLHttpRequest;

          request.onreadystatechange = function() {
            if (request.readyState == 4) {
              request.onreadystatechange = doNothing;
              callback(request.responseText, request.status);
            }
          };

          request.open('GET', url, true);
          request.send(null);
        }

      function parseXML(str) {
          if (window.ActiveXObject) {
            var doc = new ActiveXObject('Microsoft.XMLDOM');
            doc.loadXML(str);
            return doc;
          } else if (window.DOMParser) {
            return (new DOMParser).parseFromString(str, 'text/xml');
          }
        }

       function doNothing() {}

       // Partners All link
       if($.url.param("zone") != '') { 
           $('#mapMenu').find('.' + $.url.param("zone")).addClass('actif')
       }
       else { 
           $('#mapMenu li:first').addClass('actif')
       }
       // actions
        $('#showFullMap').parent('#mceContentBody').css({'position':'relative'});
       // Tooltip
	$('#rmsMenu a').hover(function(e) {
            var html = '<div id="more-info">';
            html +=    $(this).text();
            html +=		'</div>';

	$('body').append(html).children('#more-info').hide().show();
	$('#more-info').css('top', e.pageY - 50).css('left', e.pageX + 20);
        
	}, function() {
            $('#more-info').remove();
	});

	$('#rmsMenu a').mousemove(function(e) {
            $('#more-info').css('top', e.pageY - 50).css('left', e.pageX - 300);
	});

});
