﻿var pageReferencee;
var idtFocus;

function init() {
    // initialisation
    $addHandler(window, 'resize', resizeContenu );

	if ($get('NavigationSecondaire')) {
        // code for MouseScroll Event
        if (window.addEventListener)  window.addEventListener('DOMMouseScroll', wheel, false);
        window.onmousewheel = document.onmousewheel = wheel;
        //
        initScrollLayer();
        resizeContenu();
        //
        if ($get('txtScrollH').value!='') { 
            positionnerScroll( parseInt($get('txtScrollH').value,10) );
        }
    }
    else {
        // popup
        resizeContenu();
    }
}

function resizeContenu() {
    var haut, offSetH;
    if (document.all || window.opera)
 	    haut = document.documentElement.clientHeight;
    else
	    haut = window.innerHeight;

	if ($get('NavigationSecondaire')) {
	    var position = offsetTop( $get('ColContenu') );
        var bas = $get('PiedDePage').offsetHeight;
        offSetH = $get('div-scroll-content').offsetHeight;

        haut = haut - position - bas;
        (window.opera)? haut-=15 : haut-=30;
        
        $get('ColContenu').style.height = haut+'px';
        $get('div-scroll-container').style.height = haut+'px';
        $get('wn').style.height = $get('dragBar').style.height = haut+'px';
        $get('scrollbar').style.height = $get('down').style.top = haut+'px';
        $get('track').style.height= parseInt(haut-10, 10)+'px';
        
        initScrollLayer();
        
        // affiche la scrollbar si necessaire
        $get('scrollbar').style.display = (offSetH > haut)? "block" : "none";
        }
	else {
	    // pop-up
	    haut = parseInt(haut-50, 10);
	    $get('ColContenu').style.height = haut+'px';
	    $get('ColContenu').style.overflow = 'auto';
	    }
}
function initScrollLayer() {
	  // arguments: id of layer containing scrolling layers (clipped layer), id of layer to scroll, 
	  // if horizontal scrolling, id of element containing scrolling content (table?)
	  var wndo = new dw_scrollObj('wn', 'div-scroll-content');
	  
	  // bSizeDragBar set true by default (explained at www.dyn-web.com/dhtml/scroll/ )
	  wndo.bSizeDragBar = false;
	  
	  // arguments: dragBar id, track id, axis ("v" or "h"), x offset, y offset
	  // (x/y offsets of dragBar in track)
	  wndo.setUpScrollbar("dragBar", "track", "v", 1, 1);
	  
	  // pass id('s) of scroll area(s) if inside table(s)
	  // i.e., if you have 3 (with id's wn1, wn2, wn3): dw_scrollObj.GeckoTableBugFix('wn1', 'wn2', 'wn3');
	  dw_scrollObj.GeckoTableBugFix('wn'); 
}

// Scroll avec la souris
function positionnerScroll(posY) {
    if ($get('scrollbar').style.display=='none')  return;
    if (posY < 10)  posY=1;
    var max = parseInt($get('track').style.height,10) - 10;
    if (posY > max)  posY=max;
    $get('dragBar').style.top  = posY + "px";
    $get('txtScrollH').value = posY;
    //
    var container = parseInt($get('div-scroll-container').style.height,10);
    var data = parseInt($get('div-scroll-content').offsetHeight,10);
    var top = (data - container + 20) * (posY-1)/max;
    $get('div-scroll-content').style.top = -top + "px";
}
function wheel(event) {
    if ($get('scrollbar').style.display=='none')  return;
	var delta = 0;
	if (!event) event = window.event;
	if (event.wheelDelta) {
		delta = event.wheelDelta/120; 
		if (window.opera) delta = -delta;
	} else if (event.detail) {
		delta = -event.detail/3;
	}
	if (delta) {
	    var posY = $get('dragBar').style.top;
        posY = parseInt(posY, 10) - (delta*12);
	    positionnerScroll(posY);
	    }
    if (event.preventDefault)  event.preventDefault();
    event.returnValue = false;
}

var _raffrScrollBar;
function raffraichirScrollBar() {
    //if ($get('scrollbar').style.display!='block')  setTimeout('resizeContenu();', 1000);
    if ($get('scrollbar').style.display!='block') {
        _raffrScrollBar = 0;
        setTimeout('raffraichirScrollBar_();', 500);
        }
}
function raffraichirScrollBar_() {
    if ($get('scrollbar').style.display!='block')  {
        resizeContenu();
        _raffrScrollBar++;  // 3s
        if (_raffrScrollBar != 6)  setTimeout('raffraichirScrollBar_();', 500);
        }
}

function positionnerScrollAElement(idtElt) {
    setTimeout('positionnerScrollAElement_(\''+ idtElt + '\');', 100);
}
function positionnerScrollAElement_(idtElt) {
    var hautPage = $get('div-scroll-content').offsetHeight;
    var hautScroll = parseInt($get('dragBar').style.height);
    var position = offsetTopInterne( $get(idtElt) );
    var posY = parseInt( (hautScroll * position) / hautPage );
    positionnerScroll(posY);
}

/** positions **/
function offsetTop(elt) {
     var iVal = 0;
     while (elt && elt.tagName != 'BODY') {
         iVal += elt.offsetTop;;
         elt = elt.offsetParent;
     }
     return iVal;
} 
function offsetLeft(elt) {
     var iVal = 0;
     while (elt && elt.tagName != 'BODY') {
         iVal += elt.offsetLeft;
         elt = elt.offsetParent;
     }
     return iVal;
}
function offsetTopInterne(elt) {
     var iVal = 0;
     while (elt && elt.id!='div-scroll-container') {
         iVal += elt.offsetTop;
         elt = elt.offsetParent;
     }
     return iVal - parseInt($get('div-scroll-content').style.top);
} 
function offsetLeftInterne(elt) {
     var iVal = 0;
     while (elt && elt.id!='div-scroll-container') {
         iVal += elt.offsetLeft;;
         elt = elt.offsetParent;
     }
     return iVal;
}

/** affichage title sur blacktypes **/
function titleBlackType(idt, eltSansLien) {
    var elt = document.getElementById(idt);
    if (elt==null)  return;
    //
    function titleElt(elem) {
        var classN = elem.className;
		if (classN.indexOf('nomChevalP1')!=-1 || classN.indexOf('nomChevalO1')!=-1) {
			elem.title = _msgBTGagnant;
			}
		else if (classN.indexOf('nomChevalP2')!=-1 || classN.indexOf('nomChevalO2')!=-1) {
			elem.title = _msgBTPlace;
			}
	    }
    //
    if (eltSansLien==true)  titleElt(elt);
    else
	    for (var list=elt.getElementsByTagName('a'), i=0, item; item=list[i]; i++)  titleElt(item);
}


/** gestion affichage menu pour Safari **/
function afficherMenusCompatibleSafari() {
    function afficherMenuCompatibleSafari(idtMenu) {
        var pos, content, list = $get(idtMenu).getElementsByTagName('span');
        for (var i=0, item; item=list[i]; i++) {
            content = item.innerHTML;
            if (content.indexOf('<a ')==-1)  {
                item.innerHTML = '&nbsp;' + content + ' :&nbsp;';
                break;
                }
            }
        //
        list = $get(idtMenu).getElementsByTagName('a');
        for (var i=0, item; item=list[i]; i++) {
            content = item.innerHTML;
            pos = content.indexOf(' Expand');
            if (pos==-1)  pos = content.indexOf(' Développer');
            if (pos!=-1)  {
                item.innerHTML = content.substr(0, pos);
                }
            else {
                if (content.indexOf('^')!=-1) {
                    item.innerHTML = '^^^';
                    item.className = 'menu-up';
                    }
                }
            }
        return list.length;          
    }
    //
    afficherMenuCompatibleSafari('haut-menu-sitemap');
    if (afficherMenuCompatibleSafari('NavigationSecondaire')>2 && $get('NavigationSecondaire').getElementsByTagName('table').length==0)
        $get('NavigationSecondaire').style.marginBottom = '8px';
}


/**** utilitaires ****/
function visibleInvisible(idt) {
    if ($get(idt)==null)  return;
    $get(idt).style.display = ($get(idt).style.display=='none')? 'block' : 'none';
}

function disableAll(idt) {
	var elt = $get(idt);
	if (elt != null)
	{
	    var list = elt.getElementsByTagName('input');
        for (var i=0, nbr=list.length; i<nbr; i++) {
            list[i].disabled = true;
            list[i].className += ' disabled';
            }
        list = elt.getElementsByTagName('span');
        for (var i=0, nbr=list.length; i<nbr; i++) {
            list[i].disabled = true;
            list[i].className += ' disabled';
            }
        list = elt.getElementsByTagName('select');
        for (var i=0, nbr=list.length; i<nbr; i++) {
            list[i].disabled = true;
            list[i].className += ' disabled';
            }
    }
}

function enableAll(idt) {
	var elt = $get(idt);
	if (elt != null)
	{
	    var list = elt.getElementsByTagName('input');
        for (var i=0, nbr=list.length; i<nbr; i++) {
            list[i].disabled = false;
            list[i].className += ' enabled';
            }
        list = elt.getElementsByTagName('span');
        for (var i=0, nbr=list.length; i<nbr; i++) {
            list[i].disabled = false;
            list[i].className += ' enabled';
            }
        list = elt.getElementsByTagName('select');
        for (var i=0, nbr=list.length; i<nbr; i++) {
            list[i].disabled = false;
            list[i].className += ' enabled';
            }
    }
}

function disableButton(idt) {
    setTimeout('$get(\'' + idt + '\').getElementsByTagName("input")[0].disabled = true', 100);
    return true;
} 
function popup(url, nom, option) {
    nom='';
    if (option==null){
        option = 'scrollbars=no,resizable=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,top=10,left=15,width=940,height=650';
        }
	window.open(url, nom, option);
}
function imprimer() {
	if (window.print) self.print();
}
function ajouterFavoris() { 
	var siteURL = 'http://www2.france-galop.com';
	var siteNOM = 'France Galop - Espace professionnel';
	/*-- MESSAGE --*/
	function myMessage (raccourciClavier) {
		alert ("Utilisez '" + raccourciClavier + "'\npour ajouter " + siteNOM + " dans vos favoris !");
	}
	/*-- TRAITEMENT DES NAVIGATEURS --*/
	//Konqueror
	if (navigator.userAgent.indexOf('Konqueror') >= 0) {
	    /*Test a effectuer avant tout les autres car repond TRUE aux differents tests sans pouvoir les exploiter*/
		myMessage("CTRL + B");
	}
	else if (window.external) {
		/* Internet Explorer 4+, et ses dérivés (Crazy Browser, Avent Browser ...) */
		window.external.AddFavorite(siteURL,siteNOM);
	}
	else if (document.all && (navigator.userAgent.indexOf('Win') < 0)) {
		/* Internet Explorer Mac */
		myMessage("POMME + D");
	}
	else if (window.opera && window.print) {
		/* Opera 6+ */
		myMessage("CTRL + T");
	}
	else if (window.sidebar) {
		/* Netscape 6+ ; Mozilla, FireFox et compagnie (K-Meleon ...) */
		window.sidebar.addPanel(siteNOM,siteURL,"");
	}
	else if (document.layers) {
		/* Netsccape 4 */
		myMessage("CTRL + D");
	}
	else alert ("Cette fonction n'est pas disponible pour votre navigateur.");
}
function envoyerAmi() {
    var chaine_mail = 'mailto:?subject=France-Galop : ' + escape(document.title);
    location.href = chaine_mail + '&body=' + escape( _msgEnvoiPageAmi.replace('{0}', document.title).replace('{1}', urlPage) );
} 

String.prototype.trim = function(){
return this.replace(/^\s+/, "").replace(/\s+$/, "");
}


/* MS Ajax : UpdatePanel */
var fnCallBackUpdatePanel = function() { }
function definirCallBackUpdatePanel(fn) {
     fnCallBackUpdatePanel = fn;
     Sys.WebForms.PageRequestManager.getInstance().add_endRequest( fnCallBackUpdatePanel );
}



//---------------------------------------------------------------------------------------------------------------
// Gestion des dates
//---------------------------------------------------------------------------------------------------------------

function imgCalendrier_ClientClick(e)
{
    var src = null;
    // Cas Firefox et autres
    if (e.target)
        src = e.target;
    // cas IE
    else
        src = e.srcElement;
        
    var txtDateName = src.id.replace("imgCalendrier", "txtDate");
    var txtDate = document.getElementById(txtDateName);
    var frameDate = document.getElementById(txtDateName + "Frm");
    
    dtp_ShowCalendar(txtDate, frameDate, 1900, 2050, 'dd/mm/yyyy');
    return false;
}
function cmdPrecedent_ClientClick(e)
{
    var src = null;
    // Cas Firefox et autres
    if (e.target)
        src = e.target;
    // cas IE
    else
        src = e.srcElement;

    var txtDateName = src.id.replace("cmdPrecedent", "txtDate");
    var txtDate = document.getElementById(txtDateName);

    txtDate.value = cal_datePrecedente(txtDate.value);
    
    if (e.target)
    {
        var myevent = document.createEvent("HTMLEvents");
        myevent.initEvent("change", true, true);
        txtDate.dispatchEvent(myevent);
    }
    else
	    txtDate.fireEvent("onchange");
	    
    return false;
}
function cmdSuivant_ClientClick(e)
{
    var src = null;
    // Cas Firefox et autres
    if (e.target)
        src = e.target;
    // cas IE 
    else
        src = e.srcElement;
        
    var txtDateName = src.id.replace("cmdSuivant", "txtDate");
    var txtDate = document.getElementById(txtDateName);

    txtDate.value = cal_dateSuivante(txtDate.value);

    if (e.target)
    {
        var myevent = document.createEvent("HTMLEvents");
        myevent.initEvent("change", true, true);
        txtDate.dispatchEvent(myevent);
    }
    else
	    txtDate.fireEvent("onchange");

    return false;
}

function isFormat(d) 
{
	// On teste l'expression régulière pour valider la forme de la date
	e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$");	
	return e.test(d); 
}

// Cette fonction permet de vérifier la validité d'une date au format jj/mm/aaaa
function isDate(d) 
{
	if (!isFormat(d)) 
		return false; 

	// On sépare la date en 3 variables pour vérification
	j = parseInt(d.split("/")[0], 10); // jour
	m = parseInt(d.split("/")[1], 10); // mois
	a = parseInt(d.split("/")[2], 10); // année

	// Définition du dernier jour de février
	// Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
	if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
	else fev = 28;

	// Nombre de jours pour chaque mois
	nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);

	// Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
	return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
}

function cal_stringToDate(dateStr) 
{
    var dateTab = dateStr.split("/");
    return new Date(dateTab[2], dateTab[1] - 1, dateTab[0]);
}

function cal_dateToString(date) 
{
    var day = "" + date.getDate();
    day = (day.length < 2 ? "0" + day : day);
    var month = "" + (date.getMonth() + 1);
    month = (month.length < 2 ? "0" + month : month);
    return day + "/" + month + "/" + date.getUTCFullYear();
}

function cal_validerDate(source, arguments) 
{
    arguments.IsValid = isDate(arguments.Value);
}

function cal_validerDateFormat(source, arguments) 
{
    arguments.IsValid = isFormat(arguments.Value);
}

function cal_validerDateMin(source, arguments) 
{
    if (source.MinDate != null && isDate(arguments.Value))
        if (cal_stringToDate(arguments.Value) < cal_stringToDate(source.MinDate))
            arguments.IsValid = false;
}

function cal_validerDateMax(source, arguments) 
{
    if (source.MaxDate != null && isDate(arguments.Value))
        if (cal_stringToDate(arguments.Value) > cal_stringToDate(source.MaxDate))
            arguments.IsValid = false;
}

function cal_datePrecedente(dateStr) 
{
    if (dateStr != "" && isDate(dateStr))
    {
        var date = cal_stringToDate(dateStr);
        date.setDate(date.getDate() - 1);
        return cal_dateToString(date);
    }
    return "";
}

function cal_dateSuivante(dateStr) 
{
    if (dateStr != "" && isDate(dateStr))
    {
        var date = cal_stringToDate(dateStr);
        date.setDate(date.getDate() + 1);
        return cal_dateToString(date);
    }
    return "";
}
//---------------------------------------------------------------------------------------------------------------
// Affichage d'un DatePicker
//---------------------------------------------------------------------------------------------------------------
/*
Available Formats are:
'dd/mm/yyyy'   - 10/07/2002
'mm/dd/yyyy'   - 07/10/2002
'dd/mmm/yyyy'  - 10 Jul 2002
'mmm/dd/yyyy'  - Jul 10 2002
'dd/mmmm/yyyy' - 10 July 2002
'mmmm/dd/yyyy' - July 10 2002
*/
var ControlToSet;
var theForm = document.theForm;
var CalWidth=180;
var StartYear = "";
var EndYear = "";
var FormatAs;
var NN4 = (navigator.appName.indexOf("Netscape")>=0 && !document.getElementById)? true : false;
var NN6 = (document.getElementById && navigator.appName.indexOf("Netscape")>=0 )? true: false;
var TOP;
var LEFT;

if(NN4)document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = dtp_LogPosition;

function dtp_LogPosition(evt) {
	if (NN4||NN6) {
		LEFT = evt.screenX;
		TOP  = evt.screenY-10;
	    }
	else {
		LEFT = event.screenX;
		TOP  = event.screenY-10;
	    }	
}

function dtp_ShowCalendar(CONTROL_TO_SET, CAL_FRAME, START_YEAR, END_YEAR, FORMAT) 
{
    ControlToSet = CONTROL_TO_SET;
    CalFrame = CAL_FRAME;
	StartYear = START_YEAR;
	EndYear = END_YEAR;
	FormatAs = FORMAT;
	
	if(CalFrame != null)
	{
	    if (CalFrame.style.display == "none")
	    {
		    CalFrame.style.display = "inline";
		    CalFrame.style.position = "absolute";
		    CalFrame.style.left = offsetLeftInterne(ControlToSet) + 'px';
		    CalFrame.style.top = ( offsetTopInterne(ControlToSet) + 20 ) + 'px';
		}
		else
		{
		    CalFrame.style.display = "none";
		}
	}
} 
function dtp_SetDate(e, DATE) {
	if(ControlToSet)
	{
		ControlToSet.value = DATE; 
        // Cas Firefox et autres
        if (e.target)
        {
            var myevent = document.createEvent("HTMLEvents");
            myevent.initEvent("change", true, true);
            ControlToSet.dispatchEvent(myevent);
        }
        // Cas IE
        else
	        ControlToSet.fireEvent("onchange");
	}
	ControlToSet = null;
	StartYear = null;
	EndYear = null;
	FormatAs = null;
}
function AffichePVVide()
{ 
imprimer();
//    if (lblPrix.innerHTML == '- liste -')
//    {
//        lblPrix.innerHTML='AUCUNE COURSE SELECTIONNEE'; 
//        alert('Vous n avez pas sélectionné de course'); 
//    }
//    else
//    {  window.print();
//     //imprimer() ;
//    }    

}
function AffichePVVide2()
{ 
    if (lblPrix.innerHTML == '- liste -')
    {
        lblPrix.innerHTML='AUCUNE COURSE SELECTIONNEE'; 
        alert('Vous n avez pas sélectionné de course'); 
    }
    else
    {  
     imprimer() ;
    }    

}