﻿//Gestionnaire d'évènement lié à Prototype.js

Event.observe(document,'mousemove', DonneCoordonneeSouris, false);

var mouseposx;
var mouseposy; 
function DonneCoordonneeSouris(e)
{
    mouseposx = Event.pointerX(e);
    mouseposy = Event.pointerY(e);    
}



function pageNavigate(sender, args) 
{       
    var val = args.get_state().pageClientState|| 0;   
    if (val == 0)
    {          
        JSCallReal("001", "", "Accueil", ""); 
    }
    else
    {    
        //$get("div2").innerHTML = "pageNavigate " + val;             
        
        Sys.Debug.trace("navigate to : " + val);
        var reg=new RegExp("[~]+", "g");
        
        var tableau=val.split(reg);
        var IDModule;
        var stringAction;
        var stringNouveauContexte;
        var stringParam;
        if (tableau.length == 4)
        {
            IDModule = tableau[0];
            stringAction = tableau[1];
            stringNouveauContexte = tableau[2];
            stringParam = tableau[3];
        }   
        else
        {            
            IDModule = tableau[0];
            stringAction = "";
            stringNouveauContexte = tableau[1];
            stringParam = tableau[2];
        }            
        
        if (stringParam == undefined)
        {
            stringParam = '';
        }
        var csAlert ="IDModule - " + IDModule + "\n";
            csAlert += "stringAction  - " + stringAction + "\n";
            csAlert += "stringNouveauContexte -  " + stringNouveauContexte + "\n";
            csAlert +="stringParam - " + stringParam + "\n";
            
            //alert("tableau = " + tableau);
           
            //alert(csAlert);
        
        //if ($get("H_MEM_CONTEXTE").value != stringNouveauContexte)
        //{
        //    alert("47");
        //    window.location = "Default.aspx?Param=" + stringParam + "&Action=" + stringAction + "&IDModule=" + IDModule + "&Contexte=" + stringNouveauContexte;
        //}
        //else        
        //{
            //alert("JSCallReal(" + IDModule + "," +  stringAction +"," + stringNouveauContexte + "," + stringParam + ");" );
            JSCallReal(IDModule, stringAction, stringNouveauContexte, stringParam);
        //}
    }
}
function AjaxAjoutChequeCadeau(vKeyChequeCadeau)
{
    
    $get('TexteRetourChequeCadeau').innerHTML = "<center><img border='0' src='Image/WEB/loading.gif' /></center>";
    
    try
	{		       
		PageMethods.AjaxAjoutChequeCadeau(vKeyChequeCadeau, OnSucceeded_AjaxAjoutChequeCadeau, OnFailed_AjaxAjoutChequeCadeau);	
    }
	catch (e)
	{
	    //alert(e.message);
    }		
    
}
function OnSucceeded_AjaxAjoutChequeCadeau(result)
{
    if(result == 'reloadpage')
    {
        window.location.reload();
    }
    else
    {
        $get('TexteRetourChequeCadeau').innerHTML = result;
    }
}
	
function OnFailed_AjaxAjoutChequeCadeau(error)
{	    
   //alert('La méthode Ajax à causé une erreur : ' + error.get_message());
}

function JSCallReal(IDModule, stringAction, stringNouveauContexte, stringParam)
{
    try
	{		       
        var csAncienContexte = document.getElementById('H_MEM_CONTEXTE').value;
		document.getElementById('H_MEM_CONTEXTE').value = stringNouveauContexte;
				
		PageMethods.AjaxAction(IDModule, stringAction, stringNouveauContexte, csAncienContexte ,stringParam, OnSucceeded_JSCall, OnFailed_JSCall);	
        
        //if(stringAction == 'AjoutPanier')
        //{
        //    showDrop('mp_detail');
        //    temporiz('mp_detail','3000');
        //}
        
        //pour le popup d'image
		initLightbox();	
//urchinTracker('JSCall_' + 'IDModule=' + IDModule + '&Action='+ stringAction + '&Contexte' + stringNouveauContexte + '&Param=' + stringParam);

    }
	catch (e)
	{
	   // alert(e.message);
    }		
}
	
var valHistory;
function JSCall(IDModule, stringAction, stringNouveauContexte, stringParam)
{
    try
	{	    
	$get('lbl_' + IDModule).innerHTML = "<center><img border='0' src='Image/WEB/loading.gif' /></center>";		
	// Set a history point in client script.
        var val =IDModule + "~" + stringAction + "~" + stringNouveauContexte + "~" + stringParam;
        valHistory = val;
        
        //$get("div2").innerHTML = "JSCall " + val;
        
        var csAncienContexte = document.getElementById('H_MEM_CONTEXTE').value;
        
        if ((csAncienContexte.length == 0) || (stringNouveauContexte == csAncienContexte))
        {
            var tableau = valHistory.split('~');
            var ChaineParam = tableau[tableau.length-1];
            
            tableau = ChaineParam.split('|');
            for (i = 0; i<= tableau.length; i=i+2)
            {
                if (tableau[i] == "TitrePage")
                {
                    ChangeTitle(tableau[i+1]);
                    break;
                }
            }
            
              
                  
            //Sys.Debug.trace("Ab by JSCall: " + val);                    
        }

window.status = BrowserDetect.browser;
if (BrowserDetect.browser != "Safari")
        {
        Sys.Application.get_history().addHistoryPoint({pageClientState: valHistory});   
}

        JSCallReal(IDModule, stringAction, stringNouveauContexte, stringParam);

    	}
	catch (e)
	{
    	//alert(e.message);
	}		
}

// This is the callback function
// that process the page method call 
// return value.
function OnSucceeded_JSCall(result)
{    try
{
    
if(result == "")
{
window.location = "/";
}
else
{
	var Tab = result.split('~#~');
    
    	if (Tab[0]=="reloadpage")
	{
	    window.location = Tab[1];
        return false;
	}
	else
	{   
    	if (Tab[0]=="005")
    	{
    	    hideMessageAjoutPanier('TexteAjoutPanier');
    	    //window.location = "Default.aspx?IDModule=001&Action=AffichePanierModifiable&Contexte=ValidationPanier&Date=" + new Date();
    	}
    	else    	
    	{
    	
    	    //alert(valHistory);   	        
            //Sys.Application.get_history().addHistoryPoint({pageClientState: valHistory});
            //Sys.Debug.trace("Ab by JSCall: " + valHistory);            
    	}
        var RsltElem = document.getElementById("lbl_" + Tab[0]);
	    RsltElem.innerHTML = Tab[1];
	   ChangeTitle(Tab[3]);
    	

    }
}
    }
    catch(e)
    {
       // alert(e.message);
    }
}
	
function OnFailed_JSCall(error)
{	
    // Alert user to the error.
    //alert('La méthode Ajax à causé une erreur : ' + error.get_message());
    window.location = 'Default.aspx';
}

function AjaxContactSendMail()
{
    var mExpediteurMail = document.getElementById('ContactExpediteurMail').value;
    var mExpediteurNom =  document.getElementById('ContactExpediteurNom').value;
    var mMessageObjet =   document.getElementById('ContactMessageObjet').value;
    var mMessageBody =    document.getElementById('ContactMessageBody').value;
    
    try
    {
        PageMethods.AjaxContactSendMail(mExpediteurMail, mExpediteurNom, mMessageObjet, mMessageBody, '', OnSucceeded_AjaxContactSendMail, OnFailed_AjaxContactSendMail);
        //PageMethods.AjaxAction('001', '', 'PageStatique', 'PageStatique','PageKey:Accueil', OnSucceeded_JSCall, OnFailed_JSCall);
    }
    catch (ex)
    {         
        //alert('Erreur AjaxContactSendMail ' + ex.Message + ' ' + mExpediteurMail + ' ' + mExpediteurNom + ' ' + mMessageObjet +' ' + mMessageBody);
    }
    AfficheBulleContactSendMail();
    setTimeout(function(){location.reload('Default.aspx?Contexte=Accueil')}, 1500);
    //location.reload('Default.aspx?Action=AfficheAccueil');
}
	
function OnSucceeded_AjaxContactSendMail(result)
{
    //alert(result);
}
function OnFailed_AjaxContactSendMail(error)
{	    
    //alert('La méthode Ajax AjaxContactSendMail a causé une erreur');
}
//****************************************************************************************************************************************************
//FIN Code pour l'envoi d'un panier par mail
//****************************************************************************************************************************************************

//****************************************************************************************************************************************************
//Function de controle de saisie d'un controle
//****************************************************************************************************************************************************
//csObjetAControler : nom du contrôle à valider
//csControleRequireField : nom du contrôle à afficher en cas d'échec de la validation
//csExpressionReguliere : expression régulière à utiliser pour valider la saisie
//csControleExpressionReguliereField : nom du contrôle à afficher en cas d'échec de la validation de l'expression régulière
function ValidSaisieDetail(csObjetAControler, csControleRequireField, csExpressionReguliere, csControleExpressionReguliereField)  
{
    try   
    {
        var bRet = true;
        //si le champ est vide    
        if (document.getElementById(csObjetAControler).value.length == 0)
        {
            //et qu'on a une expression régulière en plus pour ce champ
            //on masque le texte d'erreur pour l'expression car il n'est pas utile à ce moment
            if (csControleExpressionReguliereField != "")
            {
                document.getElementById(csControleExpressionReguliereField).style.display = 'none';
            }
            //et on affiche le texte d'erreur pour le champ obligatoire
            document.getElementById(csControleRequireField).style.display = 'block';
            bRet = false;
        }    
        //par contre, si le champ n'est pas vide    
        else    
        {
            //on masque le message d'erreur pour Champ obligatoire
            document.getElementById(csControleRequireField).style.display = 'none';
            //si on doit vérifier une expression régulière on le fait
            if (csExpressionReguliere != "")
            {
                var exp=new RegExp(csExpressionReguliere, "gi"); //gi = recherche toute la chaine sans s'occuper de la casse
                //si le resultat de l'expression régulière est faux
                if (exp.test(document.getElementById(csObjetAControler).value) == false)
                {
                    //on affiche le message d'erreur pour l'expression régulière
                    document.getElementById(csControleExpressionReguliereField).style.display = 'block';
                    bRet = false;
                }
                //par contre, si le test de l'expression régulière est bon
                else
                {
                    //on masqe le message d'erreur pour l'expression régulière
                    document.getElementById(csControleExpressionReguliereField).style.display = 'none';
                }
        }
    }
    return bRet;   
    }   
    catch (e)   
    {
        //alert("Erreur avec les paramètres : " + csObjetAControler + " et " + csControleRequireField + "Détail de l'erreur : " + e.message);   
    }  
}
//****************************************************************************************************************************************************
//FIN Function de controle de saisie d'un controle
//****************************************************************************************************************************************************

function ChangeTitle(TitrePage)
{
    //TitrePage est le titre qui apparait dans le contenu de la page + dans le cadre du navigateur (avec un supp.)
    document.title=(TitrePage + " - Rassemblement à Son Image - Éditions catholiques");
    $get("TitrePage").innerHTML = TitrePage;
}

function AjaxAjoutPanier(vIDArticle, vCommentaire, vQuantite, vAttente)
{
    if (vAttente != false)
    {
        $get('lbl_005').innerHTML = "<center><img border='0' src='Image/WEB/loading.gif' /></center>";
        afficheCenterLoading();    
    }
    if ((typeof(vCommentaire) != "undefined") && (typeof(vQuantite) != "undefined"))
        JSCallReal('005', 'AjoutPanier', 'View', 'IDArticle:' + vIDArticle + '|LigneArticleCommentaire:' + vCommentaire + '|Quantite:' + vQuantite);
    else if (typeof(vCommentaire) != "undefined")
        JSCallReal('005', 'AjoutPanier', 'View', 'IDArticle:' + vIDArticle + '|LigneArticleCommentaire:' + vCommentaire + '|Quantite:1');
    else if (typeof(vQuantite) != "undefined")
        JSCallReal('005', 'AjoutPanier', 'View', 'IDArticle:' + vIDArticle + '|Quantite:' + vQuantite);
    else
        JSCallReal('005', 'AjoutPanier', 'View', 'IDArticle:' + vIDArticle + '|Quantite:1');    
    
}

function afficheCenterLoading()
{
    try
    {
        bubble = document.getElementById("TexteAjoutPanier");
        //if ((ie) || (moz))
        //{
            bubble.style.visibility = "visible";
		    bubble.style.display = "block";
        //}                     
        /*bubble.style.left = (screen.availWidth/2) + 'px';
        bubble.style.top = (screen.availHeight/2) + 'px';*/
        
        window.status = mouseposx + "|" + mouseposy;
        
        bubble.style.left = mouseposx + "px";
        bubble.style.top = mouseposy + "px";
        
        string="hideMessageAjoutPanier('TexteAjoutPanier');";
	    a = setTimeout(string,300);
    }
    catch (ex)
    {         
        window.status = "Erreur afficheCenterLoading : " + ex.Message;
    }
}

function hideMessageAjoutPanier(element) {
	bubble = document.getElementById("TexteAjoutPanier");
	bubble.style.visibility = "hidden";
	bubble.style.display = "none";
	clearTimeout(a);
}

function AfficheChargement()
{
    try
    {
        $get('lbl_005').innerHTML = "<div id='mp'><img border='0' src='Image/WEB/loading.gif' /></div>";
        $get('lbl_100').innerHTML = "<div id=DIV_LigneArticleCommentaire></div><div id='DIV2_LigneArticleCommentaire' style='TEXT-ALIGN:CENTER; overflow:hidden'><img border='0' src='Image/WEB/loading.gif' style='margin:16px 0 0 0'/></div>";
        showTextLightbox(80,80,true);    
    }
    catch(ex) { }
}


/*function AjaxAjoutPanier(vIDArticle)
{
    AjaxAjoutPanier(vIDArticle, "");
}*/

function JSClear(IDModule)
{
    try
	{	     
	    var Tab = IDModule.split('|');
		for (i=0; i<Tab.length; i++)
        {
            $get("lbl_" + Tab[i]).innerHTML = "";
        }
    }
	catch (e)
	{
	    //alert(e.message);
    }		
}
//****************************************************************************************************************************************************
/**Effet sur les images**/
//****************************************************************************************************************************************************
function MM_swapImgRestore() 
{ 
    //v3.0
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() 
{   
    //v3.0
    var d=document; 
    if(d.images)
    {
        if (!d.MM_p)
        {
            d.MM_p=new Array();
        }
    
        var i;
        var j=d.MM_p.length;
        var a=MM_preloadImages.arguments; 
    
        for(i=0; i<a.length; i++)
        {
            if (a[i].indexOf("#")!=0)
            { 
                d.MM_p[j] = new Image;
                d.MM_p[j++].src=a[i];
            }
        }
    }
}

function MM_findObj(n, d) 
{ 
    //v4.01
    var p;
    var i;
    var x;
    
    if (!d)
    {
        d=document; 
    }
    if ((p=n.indexOf("?"))>0&&parent.frames.length) 
    {
        d=parent.frames[n.substring(p+1)].document; 
        n=n.substring(0,p);
    }
    if (!(x=d[n])&&d.all)
    {
        x=d.all[n];
    } 
    for (i=0;!x&&i<d.forms.length;i++) 
    {
        x=d.forms[i][n];
    }
    for (i=0;!x&&d.layers&&i<d.layers.length;i++)
    {
        x=MM_findObj(n,d.layers[i].document);
    }
    if (!x && d.getElementById) 
    {
        x=d.getElementById(n); 
    }
    return x;
}

function MM_swapImage() 
{   
    //v3.0
    var i;
    var j=0;
    var x;
    var a=MM_swapImage.arguments; 
    
    document.MM_sr=new Array; 
    
    for(i=0;i<(a.length-2);i+=3)
    {
        if ((x=MM_findObj(a[i]))!=null)
        {
            document.MM_sr[j++]=x; 
            if(!x.oSrc) 
            {
                x.oSrc=x.src; 
                x.src=a[i+2];
            }
        }
    }
}
//****************************************************************************************************************************************************
/**FIN Effet sur les images**/
//****************************************************************************************************************************************************


//****************************************************************************************************************************************************
/**Renvoi la touche qui a été pressée**/
//****************************************************************************************************************************************************
function TouchePressee(evenement)
{
    var touche = window.event ? evenement.keyCode : evenement.which;
    return touche;
}
//****************************************************************************************************************************************************
/**FIN Renvoi la touche qui a été pressée**/
//****************************************************************************************************************************************************
function ChangeIDArticleStock(IDArticle)
{

var selObj = document.getElementById('mnu_' + IDArticle);
var selIndex = selObj.selectedIndex;
var IDArticleStock = selObj.options[selIndex].value;


if(IDArticleStock == "0")
{
$get('btAjout_' + IDArticle).innerHTML = "<a href=\"javascript:alert('Choisissez%20une%20taille');\" rel='nofollow'><img src='Image/WEB/ajouter-disable.gif' border = 0 align = 'center'></a>";    
}
else
{
$get('btAjout_' + IDArticle).innerHTML = "<a href=\"#\" onclick=\"AjaxAjoutPanier('"+ IDArticleStock +"');JSCall('001','','View','ViewKey:VueWebKey_Article_Popup|IDArticle:" + IDArticle + "');return false;\"><img src='Image/WEB/ajouter.gif' border = 0 align = 'center'></a>";
}

}



//http://www.quirksmode.org/js/detect.html
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();