function detectWindowsMediaPlayer() {
	var c = (navigator.plugins && navigator.plugins.length);
	if(c) return detectPlugin('Windows Media Player');
    else return detectPlugin('WMPlayer.OCX');
}

function detectQuickTime() {
	var c = (navigator.plugins && navigator.plugins.length);
	if(c) return detectPlugin('QuickTime');
    else return detectPlugin('QuickTime.QuickTime');
}

function detectPlugin(a) {
	//exemple de parametre : QuitckTime, Shockwave Flash, etc...
	var c = (navigator.plugins && navigator.plugins.length);
    var b = false;
    
    if(c) {
        b = ($A(navigator.plugins).pluck("name").join(",").indexOf(a) >= 0)
    } else {
        try {
            b = new ActiveXObject(a)
        } catch(e) {}
    }
    return !!b
}

function onlyNumericKey(evt) {
	var charCode = (evt.which ? evt.which : evt.keyCode);
	if(charCode > 31 && (charCode < 48 || charCode > 57)) {
		return false;
	}
	return true;
}

function goToAnchor(strAnchor, strUrl) {
	if(!strUrl) {
		strUrl = URL_SITE + CONTROLLER + '/' + MODULE_NAME + '/' + ACTION_NAME;
	}
	document.location = strUrl + '#' + strAnchor;
}

function strtolower(str) {
    return (str + '').toLowerCase();
}

function getBrowserName(strReturn) {
    var nVer = navigator.appVersion;
    var nAgt = navigator.userAgent;
    var browserName = navigator.appName;
    var fullVersion = '' + parseFloat(navigator.appVersion);
    var majorVersion = parseInt(navigator.appVersion, 10);
    var nameOffset, verOffset, ix;
    if ((verOffset = nAgt.indexOf("MSIE")) != -1) {
        browserName = "Microsoft Internet Explorer";
        fullVersion = nAgt.substring(verOffset + 5)
    } else if ((verOffset = nAgt.indexOf("Opera")) != -1) {
        browserName = "Opera";
        fullVersion = nAgt.substring(verOffset + 6)
    } else if ((verOffset = nAgt.indexOf("Chrome")) != -1) {
        browserName = "Chrome";
        fullVersion = nAgt.substring(verOffset + 7)
    } else if ((verOffset = nAgt.indexOf("Safari")) != -1) {
        browserName = "Safari";
        fullVersion = nAgt.substring(verOffset + 7)
    } else if ((verOffset = nAgt.indexOf("Firefox")) != -1) {
        browserName = "Firefox";
        fullVersion = nAgt.substring(verOffset + 8)
    } else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {
        browserName = nAgt.substring(nameOffset, verOffset);
        fullVersion = nAgt.substring(verOffset + 1);
        if (browserName.toLowerCase() == browserName.toUpperCase()) {
            browserName = navigator.appName
        }
    }
    if ((ix = fullVersion.indexOf(";")) != -1) fullVersion = fullVersion.substring(0, ix);
    if ((ix = fullVersion.indexOf(" ")) != -1) fullVersion = fullVersion.substring(0, ix);
    majorVersion = parseInt('' + fullVersion, 10);
    if (isNaN(majorVersion)) {
        fullVersion = '' + parseFloat(navigator.appVersion);
        majorVersion = parseInt(navigator.appVersion, 10)
    }
    switch (strReturn) {
    case 'browserName':
    default:
        return browserName;
        break;
    case 'fullVersion':
        return fullVersion;
        break;
    case 'majorVersion':
        return majorVersion;
        break;
    case 'appName':
        return navigator.appName;
        break;
    case 'userAgent':
        return navigator.userAgent;
        break
    }
}

function showDate() {
    semaine = new Array("lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche");
    mois = new Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");

    function annee(an) {
        if ((navigator.appName == "Netscape") && (parseFloat(navigator.appVersion) >= 4.06)) an = eval(an + 1900);
        return an
    }

    function getDate() {
        var jour = new Date();
        var retour = (semaine[eval(jour.getDay() - ((jour.getDay() > 0) ? 1 : -6))] + " " + jour.getDate()) + " " + mois[jour.getMonth()] + " " + annee(jour.getYear());
        return retour
    }

    function completeA2(nombre) {
        return ((nombre <= 9) ? "0" : "") + nombre
    }

    function getTime() {
        var jour = new Date();
        var retour = (completeA2(jour.getHours()) + ":" + completeA2(jour.getMinutes()) + ":" + completeA2(jour.getSeconds()));
        return retour
    }
    return getDate() + "  �� " + getTime()
}

function faqToggle(idReponse) {
    if ($(idReponse).style.display != '') {
        $$('li.reponse').each(function (element) {
            if (element.id != idReponse) {
                element.hide()
            }
        })
    }
    $(idReponse).toggle()
}

function toggleDisabledOnSeveral(bUnlock, tabIdOrElt) {
	tabIdOrElt.each(function(item) {
		toggleDisabled(bUnlock, item);
	});
}

function toggleDisabled(bUnlock, targetIdOrElt) {
	var targetElt;
	
	if(typeof(targetIdOrElt) == 'string') {
		if($(targetIdOrElt)) {
			targetElt = $(targetIdOrElt);
		} else {
			return false;
		}
	} else {
		if(targetIdOrElt) {
			targetElt = targetIdOrElt;
		} else {
			return false;
		}
	}
	
    if(bUnlock) {
    	targetElt.removeClassName('disabled');
    	targetElt.addClassName('enabled');
    	targetElt.disabled = false;
    } else {
    	targetElt.removeClassName('enabled');
    	targetElt.addClassName('disabled');
    	targetElt.disabled = true;
    }
    
    return true;
}

function ajaxCheckForm(eltForm, strNameField, strPrefixFieldsName, strModule, strAction, strView, strQueryOtherParams) {
    if (eltForm) {
        var strPrefixFieldsId = str_replace(']', '', strPrefixFieldsName);
        strPrefixFieldsId = str_replace('[', '_', strPrefixFieldsId);
        var strPrefixIdErrorMsg = 'msg_' + strPrefixFieldsId + '_';
        var sTab = partiallySerialize(eltForm, strPrefixFieldsId, strPrefixFieldsName) + '&strFieldToCheck=' + strNameField + '&strPrefixIdErrorMsg=' + strPrefixIdErrorMsg;
        if (strView) {
            sTab += '&strView=' + strView
        }
        if (strView == 'parrainage') {
            sTab += '&nbError=' + countError(eltForm, strPrefixFieldsId, strNameField, 'errorFormRow')
        }
        if (strQueryOtherParams) {
            sTab += '&' + strQueryOtherParams
        }
        doRequestAndXmlResponse(strModule, strAction, sTab)
    }
    return false
}

function ajaxCheckDateNaissance(eltForm, strNameField, strPrefixFieldsName, strModule, strAction, strView, strQueryOtherParams) {
    var strPrefixFieldsId = str_replace(']', '', strPrefixFieldsName);
    strPrefixFieldsId = str_replace('[', '_', strPrefixFieldsId);
    var strPrefixFieldDateNaissance = strPrefixFieldsId + '_date_naissance';
    if ($(strPrefixFieldDateNaissance + '_day').value != '' && $(strPrefixFieldDateNaissance + '_month').value != '' && $(strPrefixFieldDateNaissance + '_year').value != '') {
        return ajaxCheckForm(eltForm, strNameField, strPrefixFieldsName, strModule, strAction, strView, strQueryOtherParams)
    }
    return false
}

function str_replace(search, replace, subject) {
    var i = subject.indexOf(search);
    var r = '';
    if (i == -1) return subject;
    r += subject.substring(0, i) + replace;
    if (i + search.length < subject.length) {
        r += str_replace(search, replace, subject.substring(i + search.length, subject.length))
    }
    return r
}

function partiallySerialize(eltForm, prefixFieldsId, prefixFieldsName) {
    var tabElements = Form.getElements(eltForm);
    var key, value, keypart1, keypart2;
    var data = tabElements.inject({},
    function (result, element) {
        if (!element.disabled && element.name) {
            key = element.name;
            value = $(element).getValue();
            if (value != null && element.type != 'submit') {
                if (element.id.toString().indexOf(prefixFieldsId) == 0) {
                    if (prefixFieldsName) {
                        key = key.substring(prefixFieldsName.length, key.length);
                        if (key.indexOf('[') == 0) {
                            key = key.substring(key.indexOf('[') + 1, key.length);
                            keypart2 = key.substring(key.indexOf(']') + 1, key.length);
                            keypart1 = key.substring(0, key.indexOf(']'));
                            key = keypart1 + keypart2
                        }
                    }
                    if (key in result) {
                        if (!Object.isArray(result[key])) result[key] = [result[key]];
                        result[key].push(value)
                    } else result[key] = value
                }
            }
        }
        return result
    });
    return Object.toQueryString(data)
}

function countError(eltForm, strPrefixFieldsId, strNameField, idClass) {
    var tabElements = Form.getElements(eltForm);
    var key, ligne, test, nb;
    nb = 0;
    var data = tabElements.inject({},
    function (result, element) {
        if (!element.disabled && element.name) {
            key = element.id;
            ligne = 'ligne_' + key;
            test = strPrefixFieldsId + '_' + strNameField;
            if (document.getElementById(ligne) && key != test) {
                if (document.getElementById(ligne).className == idClass) {
                    nb++
                }
            }
        }
    });
    return nb
}

function ajaxFormSanteVetMag(email) {
	espece = 0;
	if ($('formSantevetMagEspece1').checked) {
		espece = 1;
	}
	if ($('formSantevetMagEspece4').checked) {
		espece = 4;
	}
    doRequestAndXmlResponse('accueil', 'santevetMag', 'email=' + email + '&espece=' + espece);
    return false;
}

function sleep(milliseconds) {
	  var start = new Date().getTime();
	  while(true) {
	    if ((new Date().getTime() - start) > milliseconds){
	      break;
	    }
	  }
}
