/******************************************************************************
* gifiRelaisColis.js
******************************************************************************/

var tableauMarqueurs = [];
var tableauInfoBulle = [];
var tableauAdresseLivraison = [];
var tableauXEETT = [];

var listeRelais = document.createElement("select");
listeRelais.setAttribute("onchange","clickLien(this.selectedIndex)");
var idRelaisChoisi = "";
var adresseRelaisChoisi = "";

function createMarker(point, contenuInfoBulle, agence, i) {
        var sogepIcon = new GIcon(G_DEFAULT_ICON);
        sogepIcon.image = "iso_icons/gifi-ancre_relaiscolis.png";
        sogepIcon.iconSize = new GSize(40, 51);
        sogepIcon.imageMap = [8, 8, 3, 25, 0, 40, 0, 50, 12, 50, 30, 40, 40, 30, 45, 25, 50, 20, 64, 12, 40, 5];
        sogepIcon.iconAnchor = new GPoint(12, 64);
        sogepIcon.infoWindowAnchor = new GPoint(33, 5);
        markerOptions = { icon:sogepIcon };

        var marker = new GMarker(point, markerOptions);
        tableauMarqueurs[i] = marker;
        tableauInfoBulle[i] = contenuInfoBulle;
        var markerControl = document.createElement("option");
        markerControl.appendChild(document.createTextNode(agence));
        listeRelais.appendChild(markerControl);

        if (i == 0) {
                marker.openInfoWindowHtml(contenuInfoBulle);
                idRelaisChoisi = tableauXEETT[i];
                adresseRelaisChoisi = tableauAdresseLivraison[i];
                var adresse = document.getElementById('adresse');
                adresse.innerHTML = contenuInfoBulle;
        }

        GEvent.addListener(marker, 'click', function() {
                this.openInfoWindowHtml(contenuInfoBulle);
                var adresse = document.getElementById('adresse');
                adresse.innerHTML = contenuInfoBulle;
                listeRelais.options[i].selected = true;
                idRelaisChoisi = tableauXEETT[i];
                adresseRelaisChoisi = tableauAdresseLivraison[i];

        });
        return marker;
}

function clickLien(j) {
        tableauMarqueurs[j].openInfoWindowHtml(tableauInfoBulle[j]);
        idRelaisChoisi = tableauXEETT[j];
        adresseRelaisChoisi = tableauAdresseLivraison [j];
        var adresse = document.getElementById('adresse');
        adresse.innerHTML = tableauInfoBulle[j];
}

function fillMap(xmlData) {
        var map = new GMap2(document.getElementById('map'), { size: new GSize(400,400)});

        var myPoints = [];
        var point = [];

        for(var i=0; i<xmlData.getElementsByTagName('RelaisC').length; i++) {
                var oCoord_X = xmlData.getElementsByTagName('Coord_X')[i].firstChild.nodeValue;
                var oCoord_Y = xmlData.getElementsByTagName('Coord_Y')[i].firstChild.nodeValue;
                var oXEETT = xmlData.getElementsByTagName('XEETT')[i].firstChild.nodeValue;
                var oNom_Relais = xmlData.getElementsByTagName('Nom_Relais')[i].firstChild.nodeValue;
                var oAdresse = xmlData.getElementsByTagName('Adresse')[i].firstChild.nodeValue;
                var oCode_Postal = xmlData.getElementsByTagName('Code_Postal')[i].firstChild.nodeValue;
                var oCommune = xmlData.getElementsByTagName('Commune')[i].firstChild.nodeValue;
                var oAgence = xmlData.getElementsByTagName('AGENCE')[i].firstChild.nodeValue;


                var oLundi = xmlData.getElementsByTagName('LUNDI')[i];
                var oMardi = xmlData.getElementsByTagName('MARDI')[i];
                var oMercredi = xmlData.getElementsByTagName('MERCREDI')[i];
                var oJeudi = xmlData.getElementsByTagName('JEUDI')[i];
                var oVendredi = xmlData.getElementsByTagName('VENDREDI')[i];
                var oSamedi = xmlData.getElementsByTagName('SAMEDI')[i];
                var oDimanche = xmlData.getElementsByTagName('DIMANCHE')[i];

                var oLundiOuv = "Lundi : ";
                var oMardiOuv = "<br />Mardi : ";
                var oMercrediOuv = "<br />Mercredi : ";
                var oJeudiOuv = "<br />Jeudi : ";
                var oVendrediOuv = "<br />Vendredi : ";
                var oSamediOuv = "<br />Samedi : ";
                var oDimancheOuv = "<br />Dimanche : ";

                if (xmlData.getElementsByTagName('LUNDI')[i].firstChild.firstChild.nodeValue == "3") {
                        oLundiOuv += xmlData.getElementsByTagName('LUNDI')[i].childNodes[1].firstChild.nodeValue + " - " + xmlData.getElementsByTagName('LUNDI')[i].childNodes[2].firstChild.nodeValue + " et " + xmlData.getElementsByTagName('LUNDI')[i].childNodes[3].firstChild.nodeValue + " - " + xmlData.getElementsByTagName('LUNDI')[i].childNodes[4].firstChild.nodeValue;
                } else {
                        oLundiOuv += "Ferm\351";
                }

                if (xmlData.getElementsByTagName('MARDI')[i].firstChild.firstChild.nodeValue == "3") {
                        oMardiOuv += xmlData.getElementsByTagName('MARDI')[i].childNodes[1].firstChild.nodeValue + " - " + xmlData.getElementsByTagName('MARDI')[i].childNodes[2].firstChild.nodeValue + " et " + xmlData.getElementsByTagName('MARDI')[i].childNodes[3].firstChild.nodeValue + " - " + xmlData.getElementsByTagName('MARDI')[i].childNodes[4].firstChild.nodeValue;
                } else if (xmlData.getElementsByTagName('MARDI')[i].firstChild.firstChild.nodeValue == "0") {
                        oMardiOuv += "Ferm\351";
                }


                if (xmlData.getElementsByTagName('MERCREDI')[i].firstChild.firstChild.nodeValue == "3") {
                        oMercrediOuv += xmlData.getElementsByTagName('MERCREDI')[i].childNodes[1].firstChild.nodeValue + " - " + xmlData.getElementsByTagName('MERCREDI')[i].childNodes[2].firstChild.nodeValue + " et " + xmlData.getElementsByTagName('MERCREDI')[i].childNodes[3].firstChild.nodeValue + " - " + xmlData.getElementsByTagName('MERCREDI')[i].childNodes[4].firstChild.nodeValue;
                } else if (xmlData.getElementsByTagName('MERCREDI')[i].firstChild.firstChild.nodeValue == "0") {
                        oMercrediOuv += "Ferm\351";
                }

                if (xmlData.getElementsByTagName('JEUDI')[i].firstChild.firstChild.nodeValue == "3") {
                        oJeudiOuv += xmlData.getElementsByTagName('JEUDI')[i].childNodes[1].firstChild.nodeValue + " - " + xmlData.getElementsByTagName('JEUDI')[i].childNodes[2].firstChild.nodeValue + " et " + xmlData.getElementsByTagName('JEUDI')[i].childNodes[3].firstChild.nodeValue + " - " + xmlData.getElementsByTagName('JEUDI')[i].childNodes[4].firstChild.nodeValue;
                } else if (xmlData.getElementsByTagName('JEUDI')[i].firstChild.firstChild.nodeValue == "0") {
                        oJeudiOuv += "Ferm\351";
                }

                if (xmlData.getElementsByTagName('VENDREDI')[i].firstChild.firstChild.nodeValue == "3") {
                        oVendrediOuv += xmlData.getElementsByTagName('VENDREDI')[i].childNodes[1].firstChild.nodeValue + " - " + xmlData.getElementsByTagName('VENDREDI')[i].childNodes[2].firstChild.nodeValue + " et " + xmlData.getElementsByTagName('VENDREDI')[i].childNodes[3].firstChild.nodeValue + " - " + xmlData.getElementsByTagName('VENDREDI')[i].childNodes[4].firstChild.nodeValue;
                } else if (xmlData.getElementsByTagName('VENDREDI')[i].firstChild.firstChild.nodeValue == "0") {
                        oVendrediOuv += "Ferm\351";
                }

                if (xmlData.getElementsByTagName('SAMEDI')[i].firstChild.firstChild.nodeValue == "3") {
                        oSamediOuv += xmlData.getElementsByTagName('SAMEDI')[i].childNodes[1].firstChild.nodeValue + " - " + xmlData.getElementsByTagName('SAMEDI')[i].childNodes[2].firstChild.nodeValue + " et " + xmlData.getElementsByTagName('SAMEDI')[i].childNodes[3].firstChild.nodeValue + " - " + xmlData.getElementsByTagName('SAMEDI')[i].childNodes[4].firstChild.nodeValue;
                } else if (xmlData.getElementsByTagName('SAMEDI')[i].firstChild.firstChild.nodeValue == "0") {
                        oSamediOuv += "Ferm\351";
                }

                if (xmlData.getElementsByTagName('DIMANCHE')[i].firstChild.firstChild.nodeValue == "3") {
                        oDimancheOuv += xmlData.getElementsByTagName('DIMANCHE')[i].childNodes[1].firstChild.nodeValue + " - " + xmlData.getElementsByTagName('DIMANCHE')[i].childNodes[2].firstChild.nodeValue + " et " + xmlData.getElementsByTagName('DIMANCHE')[i].childNodes[3].firstChild.nodeValue + " - " + xmlData.getElementsByTagName('DIMANCHE')[i].childNodes[4].firstChild.nodeValue;
                } else {
                        oDimancheOuv += "Ferm\351";
                }

                infobulle = "<div class='titreMap'>" + oNom_Relais + "</div><div class='paraMap'>" + oAdresse +"<br />" + oCode_Postal + " " + oCommune + "</div><br /><div class='titreMap'>Horaires d'ouverture :</div><div class='paraMap'>"+ oLundiOuv + oMardiOuv +  oMercrediOuv + oJeudiOuv + oVendrediOuv + oSamediOuv + oDimancheOuv + "</div>";
                point[i] = new GLatLng(oCoord_Y, oCoord_X);
                myPoints.push(point[i]);
                var adresseLivraison = oNom_Relais + " " + oAdresse + " " + oCode_Postal + " " + oCommune;
                tableauAdresseLivraison.push(adresseLivraison);
                tableauXEETT.push(oXEETT);

                map.addOverlay(createMarker(point[i], infobulle, oNom_Relais, i));
        }

        document.getElementById("listeRelais").appendChild(listeRelais);

        var region = new GBounds(myPoints);
        var SW = new GLatLng(region.minY, region.minX);
        var NE = new GLatLng(region.maxY,region.maxX);
        var bounds = new GLatLngBounds(SW,NE);
        var zoom = map.getBoundsZoomLevel(bounds);
        var centre = bounds.getCenter();
        map.setCenter(centre, zoom-1);

        var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(-65,-5));
        map.addControl(new GLargeMapControl3D(), topRight);
        var customUI = map.getDefaultUI();
        customUI.controls.scalecontrol = false;
        customUI.controls.maptypecontrol = false;
        customUI.controls.largemapcontrol3d = false;
        customUI.controls.menumaptypecontrol = false;
        customUI.maptypes.satellite = false;
        customUI.maptypes.hybrid = false;
        customUI.maptypes.physical = false;

        map.setUI(customUI);
};

var targetUrl = './ServiceRecupRelais.asmx';
//var targetUrl = 'http://127.0.0.1:81/WSRecupAdresseRelais/ServiceRecupRelais.asmx';
//var targetUrl = 'http://80.93.94.243:81/WSRecupAdresseRelais/ServiceRecupRelais.asmx'; 

function retournerRelais(codePostalClient, villeClient) {
        var callback = {
                success: function(o) {
                        if (window.ActiveXObject) { // IE
                                var d = new ActiveXObject("MSXML2.DOMDocument");
                                d.loadXML(o.responseText);
                                o.responseXML = d;
                        }
                        if(o.responseXML.getElementsByTagName('Erreur')[0].firstChild.nodeValue == 4) {
                                        document.getElementById("loading").style.display = "none";
                                        document.getElementById("dialog1").style.display = "block";
                                        document.getElementById('messageErreur').style.display = "block";
                                        document.getElementById('messageErreur').innerHTML = "Aucun relais trouv\351 pour le code postal "+codePostalClient+" et pour la ville "+villeClient+". V\351rifier le code postal et la ville.";
                        } else {
                                document.getElementById("loading").style.display = "none";
                                document.getElementById("bodyPopup").style.backgroundImage = "none";
                                document.getElementById("titreForm").innerHTML = "Choisissez votre point de livraison";
                                document.getElementById("dialog3").style.display = "block";
                                fillMap(o.responseXML);
                        }
                },
                failure: function( o ) {
                        alert ("Echec de connexion au Webservice SOGEP !");
                        alert("failure:    " + o.responseText);

                }
        };

        var message = '<?xml version="1.0" encoding="utf-8"?>';
        message += '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://www.w3.org/2003/05/soap-envelope">';
        message += '<soap:Body>';
        message += '<RetournerListeRelaisC xmlns="http://www.sogep.com/WSRecupAdresseRelaisSOGEPBOX/">';
        message += '<code_postal>'+ codePostalClient +'</code_postal>';
        message += '<ville>'+ villeClient +'</ville>';
        message += '<delais>10</delais>';
        message += '<date></date>';
        message += '</RetournerListeRelaisC>';
        message += '</soap:Body>';
        message += '</soap:Envelope>';

        YAHOO.util.Connect.setDefaultPostHeader(false);
        YAHOO.util.Connect.initHeader("Content-Type", "text/xml;charset=UTF-8");
        YAHOO.util.Connect.asyncRequest( 'POST', targetUrl, callback, message);


}

function verifieCPVille() {
        document.getElementById('messageErreur').style.display = "none";
        var codePostalClient = document.getElementById("codePostalClient").value;
        var villeClient = document.getElementById("villeClient").value;

        if (codePostalClient != "") {

                var callback = {
                        success: function(o) {
                                if (window.ActiveXObject) { // IE
                                        var d = new ActiveXObject("MSXML2.DOMDocument");
                                        d.loadXML(o.responseText);
                                        o.responseXML = d;
                                }

                                if(o.responseXML.getElementsByTagName('Ville').length == 1 && o.responseXML.getElementsByTagName('Erreur')[0].firstChild.nodeValue == 0) {
                                        villeClient = o.responseXML.getElementsByTagName('nomVille')[0].firstChild.nodeValue;
                                        retournerRelais(codePostalClient, villeClient);
                                }

                                if(o.responseXML.getElementsByTagName('Ville').length == 1 && o.responseXML.getElementsByTagName('Erreur')[0].firstChild.nodeValue == 2) {
                                        document.getElementById("loading").style.display = "none";
                                        document.getElementById("dialog1").style.display = "block";
                                        document.getElementById('messageErreur').style.display = "block";
                                        document.getElementById('messageErreur').innerHTML = "Aucune ville trouv\351e pour le code postal saisi !";
                                }

                                if(o.responseXML.getElementsByTagName('Ville').length == 1 && o.responseXML.getElementsByTagName('Erreur')[0].firstChild.nodeValue == 4) {
                                        document.getElementById("loading").style.display = "none";
                                        document.getElementById("dialog1").style.display = "block";
                                        document.getElementById('messageErreur').style.display = "block";
                                        document.getElementById('messageErreur').innerHTML = "La ville ne correspond pas au code postal !";
                                }

                                if(o.responseXML.getElementsByTagName('Ville').length > 1) {
                                        document.getElementById("loading").style.display = "none";
                                        document.getElementById("dialog2").style.display = "block";

                                        document.getElementById("codePostalClient2").innerHTML = codePostalClient;
                                        for(var i=0; i < o.responseXML.getElementsByTagName('nomVille').length; i++) {
                                                var optionVille = document.createElement("option");
                                                optionVille.appendChild(document.createTextNode(o.responseXML.getElementsByTagName('nomVille')[i].firstChild.nodeValue));
                                                document.getElementById('listeVille').appendChild(optionVille);
                                        }

                                }
                        },
                        failure: function( o ) {
                                alert ("Echec de connexion au Webservice SOGEP !3");
								alert("Erreur: " + o.status + " - " + o.statusText);
                                alert("failure:    " + o.responseText);
                        }
                };

                var message = '<?xml version="1.0" encoding="utf-8"?>';
                message += '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://www.w3.org/2003/05/soap-envelope">';
                message += '<soap:Body>';
                message += '<VerifieCP_Ville xmlns="http://www.sogep.com/WSRecupAdresseRelaisSOGEPBOX/">';
                message += '<code_postal>'+ codePostalClient +'</code_postal>';
                message += '<ville>'+ villeClient +'</ville>';
                message += '</VerifieCP_Ville>';
                message += '</soap:Body>';
                message += '</soap:Envelope>';

                YAHOO.util.Connect.setDefaultPostHeader(false);
                YAHOO.util.Connect.initHeader("Content-Type", "text/xml;charset=UTF-8");
                YAHOO.util.Connect.asyncRequest( 'POST', targetUrl, callback, message);

        } else {
                document.getElementById("loading").style.display = "none";
                document.getElementById("dialog1").style.display = "block";
                document.getElementById('messageErreur').style.display = "block";
                document.getElementById('messageErreur').innerHTML = "Merci de remplir le champs Code Postal !";
        }
}


isoYUILoader.onReady( function() {
        YAHOO.util.Event.onContentReady("dialogContainer", function() {

                $("body").append($("#gifiRelaisColis"));

                var dlg = new YAHOO.widget.Dialog("dialogContainer", {
                        width:"484px",
                        modal:true,
                        visible:false,
                        close:false,
                        zIndex:99
                });

                dlg.render();

                function loadScript() {
                        var gifiGoogleKey = document.getElementById('gifiGoogleKey').value;
                        var script = document.createElement("script");
                        script.type = "text/javascript";
                        script.src = "http://maps.google.com/maps?file=api&v=2&key=" + gifiGoogleKey + "&async=2&callback=verifieCPVille";
                        document.body.appendChild(script);
                }

                YAHOO.util.Event.addListener("gifiShowPopup", "click", fnCallShowPopup);

                YAHOO.util.Event.addListener("btnAnnuler1", "click", fnCallAnnuler1);
                YAHOO.util.Event.addListener("btnValider1", "click", fnCallValider1);

                YAHOO.util.Event.addListener("btnAnnuler2", "click", fnCallAnnuler2);
                YAHOO.util.Event.addListener("btnValider2", "click", fnCallValider2);

                YAHOO.util.Event.addListener("btnRetour3", "click", fnCallRetour3);
                YAHOO.util.Event.addListener("btnValider3", "click", fnCallValider3);

                YAHOO.util.Event.addListener("btnRetour4", "click", fnCallRetour4);
                YAHOO.util.Event.addListener("btnValider4", "click", fnCallValider4);

                function fnCallShowPopup(e) {
                        document.getElementById("bodyPopup").style.backgroundImage = "url(iso_icons/gifi-logo_relaiscolis.png)";
                        document.getElementById("titreForm").innerHTML = "Recherchez votre point de livraison";
                        document.getElementById("dialog1").style.display = "block";
                        dlg.show();
                }

                function fnCallValider1(e) {
                        document.getElementById("dialog1").style.display = "none";
                        document.getElementById("loading").style.display = "block";
                        loadScript();
                }

                function fnCallAnnuler1(e) {
                        document.getElementById("dialog1").style.display = "none";

                        var NodeListe = listeRelais.getElementsByTagName("option");
                        while(listeRelais.hasChildNodes()==true){
                                var Enfant=NodeListe.item(0);
                                listeRelais.removeChild(Enfant);
                        }

                        dlg.cancel();
                }

                function fnCallValider2(e) {
                        document.getElementById("dialog2").style.display = "none";
                        document.getElementById("loading").style.display = "block";
                        var a = document.getElementById("codePostalClient2").innerHTML;
                        var b = document.getElementById('listeVille').options[document.getElementById('listeVille').selectedIndex].innerHTML;
                        retournerRelais (a,b);

                        var c = document.getElementById('listeVille')
                        var NodeListeVille = c.getElementsByTagName("option");
                        while(c.hasChildNodes()==true){
                                var Enfant=NodeListeVille.item(0);
                                c.removeChild(Enfant);
                        }
                }


                function fnCallAnnuler2(e) {
                        document.getElementById("dialog2").style.display = "none";

                        var c = document.getElementById('listeVille')
                        var NodeListeVille = c.getElementsByTagName("option");
                        while(c.hasChildNodes()==true){
                                var Enfant=NodeListeVille.item(0);
                                c.removeChild(Enfant);
                        }

                        dlg.cancel();
                }

                function fnCallRetour3(e) {
                        document.getElementById("titreForm").innerHTML = "Recherchez votre point de livraison";
                        document.getElementById("bodyPopup").style.backgroundImage = "url(iso_icons/gifi-logo_relaiscolis.png)";
                        document.getElementById("dialog3").style.display = "none";

                        var NodeListe = listeRelais.getElementsByTagName("option");
                        while(listeRelais.hasChildNodes()==true){
                                var Enfant=NodeListe.item(0);
                                listeRelais.removeChild(Enfant);
                        }

                        document.getElementById("dialog1").style.display = "block";
                }

                function fnCallValider3(e) {
                        document.getElementById("bodyPopup").style.backgroundImage = "url(iso_icons/gifi-logo_relaiscolis.png)";
                        document.getElementById("titreForm").innerHTML = "Validez votre point de livraison";
                        document.getElementById("dialog3").style.display = "none";
                        document.getElementById("dialog4").style.display = "block";
                }

                function fnCallRetour4(e) {
                        document.getElementById("bodyPopup").style.backgroundImage = "none";
                        document.getElementById("titreForm").innerHTML = "Choisissez votre point de livraison";
                        document.getElementById("dialog4").style.display = "none";
                        document.getElementById("dialog3").style.display = "block";
                }

                function fnCallValider4(e) {
                        document.getElementById("dialog4").style.display = "none";
                        document.getElementById("gifiIdRelaisColis").value = idRelaisChoisi;
                        document.getElementById("gifiNewShippingAddress").value = adresseRelaisChoisi;
                        document.getElementById("gifiAdresseRelaisColis").style.display = "block";
                        document.getElementById("gifiAdresseRelaisColis").innerHTML = "<span>Lieu de retrait : </span>" + adresseRelaisChoisi;
                        dlg.cancel();
                }
        });
});
