﻿
/* DEBUT TOOLTIP*/

function InitMask(obj, checkFunction, defaultValue, message) {
    obj.focus(function () {
        if ($(this).val() == defaultValue && defaultValue) {
            $(this).css("color", "#000").val("").select();
        }
    }).blur(function () {
        if ($.trim($(this).val()) == "") {
            $(this).val(defaultValue).css("color", "#A1A1A1");
        } else if (!checkFunction($(this).val())) {
            $(this).val(defaultValue).css("color", "#A1A1A1");
        }
    }).change(function (e) {
        if (!checkFunction($(this).val())) {
            e.preventDefault();
            EPCTooltip($(this), message, "Error", 2);
        }
    });
}

/*DEBUT Fonctions de validation des formulaires*/
// Fonction qui retourne l'expression réguliere si [chaine] est null ou vide en fonction du  [type] a vérifier
function EPC_Check_Input(type, chaine) {
    var reg;
    if (!type) type = "inputtext";
    switch (type.toString().toLowerCase()) {
        case "email":
            //reg = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/; 
            reg=/^([a-zA-Z0-9]+(([\.\-\_]?[a-zA-Z0-9]+)+)?)\@(([a-zA-Z0-9]+[\.\-\_])+[a-zA-Z]{2,4})$/;
            break;
        case "indicatiftel":
            reg = /^([\+]?[0-9]{1,5})$/; //    /^\(\+[0-9]{2,3}\)$/
            break;
        case "phonenumber":
            reg = /^([-0-9 \.\/]{3,15})$/; // ^([\+][0-9]{1,3}[ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$
            break;
        case "noemail":
            reg = /^[^@]*$/;
            break;
        case "noCSinjection":
            reg = /<\/+/; ///((\%3C)|<)[^\n]+((\%3E)|>)/I 
            break;
        case "integersigned":
            reg = /^[\-\+]?\d+$/;
            break;
        case "epctelephone":
            reg = /^(0?)(1|2|3|4|5|6|7|9)[0-9]{8}$/;
            break;
        case "number":
            // Nombre incluant positif, négatif, Number, decimal
            reg = /^[\-\+]?(([0-9]+)([\.,]([0-9]+))?|([\.,]([0-9]+))?)$/;
            break;
        case "integer":
            reg = /^[\-\+]?\d+$/;
            break;
        case "date":
            reg = /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/;
            break;
        case "ipv4":
            reg = /([1-9][0-9]{0,2})+\.([1-9][0-9]{0,2})+\.([1-9][0-9]{0,2})+\.([1-9][0-9]{0,2})+/;
            break;
        case "url":
            reg = /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/;
            break;
        case "onlynumbersp":
            reg = /^[0-9\ ]+$/;
            break;
        case "onlylettersp":
            reg = /^[a-zA-Z\ \']+$/;
            break;
        case "onlyletterwithaccents":
            reg = /^[-a-zA-Z0-9*(é|è|à|ù)]+$# \']+$/;
            break;
        case "onlyletternumber":
            reg = /^[0-9a-zA-Z]+$/;
            break;
        case "inputtext":
        default:
            reg = /^([^\<\>]*)$/; ///((\%3C)|<)[^\n]+((\%3E)|>)/I 
    }
    if (chaine)
        return reg.test(str);
    else
        return reg;
}
/*FIN Fonctions de validation des formulaires*/


// Crée un tooltip
function EPCTooltip(obj, texte, type, temps) {
    KillTooltips();
    var cssClass = "EPCtooltip" + type;
    var div = "<div class='" + cssClass + "'>" + texte + "</div>";
    var offsetDepart = obj.offset();
    $("body").append(div);
    var selector = "." + cssClass;
    var widthTooltip = $(selector).outerWidth();
    var heightTooltip = $(selector).outerHeight();
    var widthObj = obj.outerWidth();
    var fleche = "<div class='EPCtooltip" + type + "Fleche'></div>";
    $("body").append(fleche);
    $("div.EPCtooltip" + type + "Fleche").css("top", offsetDepart.top - 6).css("left", offsetDepart.left - ((9 - widthObj) / 2)).fadeIn(200);
    $(selector).css("top", offsetDepart.top - heightTooltip - 5).css("left", offsetDepart.left - ((widthTooltip - widthObj) / 2)).fadeIn(200);
    $(selector).mouseover(function () { KillTooltips(); });
    if (parseInt(temps) > 0) { setTimeout(KillTooltips, temps * 1000); }
}
// Détruit tous les tooltips
function KillTooltips() {
    $("div[class^=EPCtooltip]").remove();
}
/* FIN TOOLTIP*/


/* MENU */
$(document).ready(function () {
    $("#lienAnnonces").mouseenter(function () {
        $("#barre_menu2 ul").hide(); $("#ulAnnonces").show("fast");
        $("#conteneurMenu").mouseleave(function () {
            $("#barre_menu2 ul").hide();
            $("#barre_menu2 ul[selected='selected']").show("fast");
            $("#conteneurMenu").unbind("mouseleave");
        });
    });
    $("#lienFinancement").mouseenter(function () {
        $("#barre_menu2 ul").hide(); $("#ulFinancement").show("fast");
        $("#conteneurMenu").mouseleave(function () {
            $("#barre_menu2 ul").hide();
            $("#barre_menu2 ul[selected='selected']").show("fast");
            $("#conteneurMenu").unbind("mouseleave");
        });
    });
    $("#lienPrixImmobiliers").mouseenter(function () {
        $("#barre_menu2 ul").hide(); $("#ulPrixImmo").show("fast");
        $("#conteneurMenu").mouseleave(function () {
            $("#barre_menu2 ul").hide();
            $("#barre_menu2 ul[selected='selected']").show("fast");
            $("#conteneurMenu").unbind("mouseleave");
        });
    });
    $("#lienImmoStory").mouseenter(function () {
        $("#barre_menu2 ul").hide(); $("#ulImmoSto").show("fast");
        $("#conteneurMenu").mouseleave(function () {
            $("#barre_menu2 ul").hide();
            $("#barre_menu2 ul[selected='selected']").show("fast");
            $("#conteneurMenu").unbind("mouseleave");
        });
    });
    $("#lienGuidesConseils").mouseenter(function () {
        $("#barre_menu2 ul").hide(); $("#ulGuides").show("fast");
        $("#conteneurMenu").mouseleave(function () {
            $("#barre_menu2 ul").hide();
            $("#barre_menu2 ul[selected='selected']").show("fast");
            $("#conteneurMenu").unbind("mouseleave");
        });
    });
    var t = parseInt($("#FooterVente").offset().top);
    if (parseInt($("#FooterVente").offset().top) < 789) {

        var topheight = "15px";
        var $beforefooter = $("#FooterVente").prev();

        var cssObj = {
            'position': 'relative',
            'margin-top': topheight
        };
        $("#FooterVente").css(cssObj);
    }
});
// Permet le placement exact du curseur à l'intérieur d'un input/textarea
function setSelectionRange(input, selectionStart, selectionEnd) {
    if (input.setSelectionRange) {
        input.focus();
        input.setSelectionRange(selectionStart, selectionStart);
    }
    else if (input.createTextRange) {
        var range = input.createTextRange();
        range.collapse(true);
        range.moveEnd('character', selectionEnd);
        range.moveStart('character', selectionStart);
        range.select();
    }
}

function close_commonmodal() {
    $('#mask').fadeOut(200);
    $('#modal').fadeOut(200);
}
function show_commonmodal(modal_id, title, message) {
    $('#mask').css({ 'display': 'block' });
    $("#modal div.header").html(title + '<a onclick=\"close_commonmodal()\" class=\'closeModal\'>Fermer</a>');
    $("#modal div.content").html(message);
    $('#mask').css({ 'height': $(document).height(), 'width': $(document).width(), 'display': 'block', opacity: 0 });
    $("#modal").css("left", (($('#mask').outerWidth() - $("#modal").outerWidth()) / 2) + "px");
    $('#mask').fadeTo(200, 0.75);
    $('#' + modal_id).fadeIn(200);

}

function show_common(modal_id, title, message) {
    $('#mask').css({ 'display': 'block' });
    $("#modal div.header").html(title + '<a onclick=\"close_commonmodal()\" class=\'closeModal\'>Fermer</a>');
    $("#modal div.content").html(message);
    $('#mask').css({ 'height': $(document).height(), 'width': $(document).width(), 'display': 'block', opacity: 0 });
    $("#modal").css("left", (($('#mask').outerWidth() - $("#modal").outerWidth()) / 2) + "px");
    $('#mask').fadeTo(200, 0);
    $('#' + modal_id).fadeIn(200);

}

function hide_common(modal_id) {
    $('#mask').css({ 'display': 'none' });
    $('#' + modal_id).hide();
}


