﻿
/**
* Méthode pour créer un cookie
*/
jQuery.fn.setCookie = function (name, value, days) {
    expire = new Date();
    expire.setTime(expire.getTime() + (24 * 60 * 60 * 1000) * days);
    document.cookie = name + "=" + escape(value) + "; expires=" + expire.toGMTString();
    return this;
};

/**
* Méthode pour récupérer la valeur d'un cookie
*/
jQuery.fn.getCookie = function (name) {
    startIndex = document.cookie.indexOf(name);
    if (startIndex != -1) {
        var endIndex = document.cookie.indexOf(";", startIndex);
        if (endIndex == -1) endIndex = document.cookie.length;
        return unescape(document.cookie.substring(startIndex + name.length + 1, endIndex));
    }
    else return null;
};

/**
* Méthode pour supprimer un cookie
*/
jQuery.fn.deleteCookie = function (name) {
    expire = new Date();
    expire.setTime(expire.getTime() - (24 * 60 * 60 * 1000));
    document.cookie = name + "=; expires=" + expire.toGMTString();
};


/**
* Méthode pour afficher un texte dans un input[type=text] lorsqu'il est vide.
* 
* Paramètres :
*
*    opt = {
*        id:               - Identifiant du champ (ex: .classname input.inputClass, #inpuId)
*        classEmptyTxt:    - Classe du texte vide
*        emptyTxt:         - Texte à afficher
*    }
*/
jQuery.fn.setEmptyText = function (opt) {

    input = jQuery(opt.id);
    if (input.val() == "" || input.val() == opt.emptyTxt) input.val(opt.emptyTxt).addClass(opt.classEmptyTxt);

    input
        .focus(function () {
            if (jQuery(this).val() == opt.emptyTxt) jQuery(this).val("");
            jQuery(this).removeClass(opt.classEmptyTxt);
        })
        .blur(function () {
            if (jQuery(this).val() == "") jQuery(this).val(opt.emptyTxt).addClass(opt.classEmptyTxt);
        }
    );

    return this;
};

/**
* Méthode pour supprimer l'affichage d'un texte vide dans un champ input[type=text]
* 
* Paramètres :
*
*    opt = {
*        id:               - Identifiant du champ (ex: .classname input.inputClass, #inpuId)
*        classEmptyTxt:    - Classe du texte vide
*        emptyTxt:         - Texte à afficher
*    }
*/
jQuery.fn.removeEmptyText = function (opt) {

    input = jQuery(opt.id);

    // Supprime la classe et le texte vide
    input.removeClass(opt.classEmptyTxt);
    if (opt.emptyTxt != null && input.val() == opt.emptyTxt) input.val("");

    // Supprime l'évènement
    input.unbind("focusin").unbind("focusout");
    return this;
};
