var initReadMore = function() {
    jQuery(".readMore").toggle(function() {
        jQuery(this).addClass("slideUp");
        jQuery(this).text("refermer");
        jQuery(this).parents(".blocContent").find(".blocTxt").css("height", "auto");
    }, function() {
        jQuery(this).removeClass("slideUp");
        jQuery(this).text("lire la suite");
        jQuery(this).parents(".blocContent").find(".blocTxt").css("height", "62px");
    });
};

var initRollover = function() {
    jQuery(".rollover").mouseover(function() {
        rollover(jQuery(this));
    });
    jQuery(".rollover").mouseout(function() {
        rollout(jQuery(this));
    });
};

var rollover = function(elt) {
    var imgOn = jQuery(elt).find(".on").text();
    jQuery(elt).find("img").attr("src", imgOn);
};

var rollout = function(elt) {
    var imgOff = jQuery(elt).find(".off").text();
    jQuery(elt).find("img").attr("src", imgOff);
};

var js_forms = function() {
    if (jQuery("form#checkForm").size() < 1) {
        return false;
    }
    jQuery("form#checkForm").each(function() {
        currentForm = this;

        jQuery(this).submit(function () {
            var validationError = false;
            jQuery(".msgError").remove();
            jQuery(".error").removeClass("error");

            jQuery("input, select, textarea, input:radio", this).each(function() {
                if (jQuery(this).attr("class")) {
                    if (!js_tools.validateField(this))
                        validationError = true;
                }
            });

            if (validationError == false) {
                /* Traitement cote serveur puis affiche popin */
                process();
                //showPopin();
                //initClosePopin();
                return false;
            }

            return !validationError;
        });
    });
};

var process = (function () {
    var url;
    if (jQuery("form#checkForm input[name='desturl']").length > 0) {
        url = jQuery("form#checkForm input[name='desturl']")[0].value;
    } else if (jQuery("form#checkForm").length > 0) {
        url = jQuery("form#checkForm").attr('action');
    }
    if (!url || url.length == 0 || url == '#') {
        return false;
    }
    jQuery.ajax({
        url : url,
        dataType : 'json',
        type : 'post',
        data : jQuery('form#checkForm').serialize(),
        success : function (datas) {
            try {
                if (datas.form_errors) {
                    jQuery.each(datas.form_errors, function(key, value) {
                        jQuery.each(jQuery('form#checkForm select[name=' + key + '], form#checkForm input[name=' + key + ']'), function() {
                            js_tools.showError(this, value);
                        });
                        if (key == 'formError') {
                            jQuery("#formError").html(value);
                            jQuery("#formError").show();
                        }
                    });
                } else if (datas.popin_code) {
                    // On injecte le texte d'attente
                    jQuery("#popin").html('<img src="file/sitemodel/vinciauto/img/common/loading.gif" alt="..." class="wait"/>');
                    // et on affiche
                    showPopin();
                    // maintenant on charge
                    var url = jQuery('form#checkForm #current').val();
                    var params = {};
                    params.popin = datas.popin_code;
                    if (datas.redirect && datas.redirect.length > 0 && datas.redirect != '#') {
                        params.redirect = datas.redirect;
                    }
                    jQuery("#popin").load(url, params, function() {
                        initClosePopin();
                    });
                } else if (datas.redirect && datas.redirect.length > 0 && datas.redirect != '#') {
                    document.location = datas.redirect;
                } else if (datas.send) {
                    // popin V1
                    showPopin();
                    initClosePopin();
                }
            } catch (e) {
            }
            return false;
        }
    });
});

var fillIn = function(orig, dest) {
    jQuery("#" + dest).val(jQuery(orig).val());
};

var franceRequireField = function(obj, val, css) {
    if (jQuery(obj).val().indexOf(val) != -1) {
        jQuery("." + css).each(function() {
            if (jQuery(this).hasClass("isRequired")) {
                jQuery(this).find("input").eq(0).addClass("required");
            }
            jQuery(this).show();
        });
    } else {
        jQuery("." + css).each(function() {
            if (jQuery(this).hasClass("isRequired")) {
                jQuery(this).find("input").eq(0).removeClass("required");
            }
            jQuery(this).hide();
        });
    }
};

var initServices = function () {
    jQuery(".btsService li a").click(function() {
        if (!jQuery(this).parent("li").hasClass("btServActive")) {
            var active = jQuery(".btServActive a");
            if (active.size() > 0) {
                jQuery(".blocActive").hide();
                jQuery(".blocActive").removeClass("blocActive");
                jQuery(".btServActive").removeClass("btServActive");
                rollout(active);
            }

            var id = jQuery(this).attr("href");
            jQuery(id).fadeIn();
            jQuery(this).parent("li").addClass("btServActive");
            jQuery(id).addClass("blocActive");
        }
        else {
            var id = jQuery(this).attr("href");
            jQuery(id).hide();
            jQuery(this).parent("li").removeClass("btServActive");
            jQuery(id).removeClass("blocActive");
        }
        return false;
    });
    jQuery(".btsService li a").mouseover(function() {
        if (!jQuery(this).parent("li").hasClass("btServActive")) {
            rollover(jQuery(this));
        }
    });
    jQuery(".btsService li a").mouseout(function() {
        if (!jQuery(this).parent("li").hasClass("btServActive")) {
            rollout(jQuery(this));
        }
    });
};

var initAll = function() {
    if (jQuery(".readMore").is("a")) initReadMore();
    if (jQuery(".rollover").is("a")) initRollover();
    js_forms();
    if (jQuery(".btsService").is("ul")) initServices();
};

jQuery(document).ready(function () {
    initAll();
//	jQuery('#checkForm').attr('autocomplete', 'off');
});

/**
 * Pour le rollover sur les boutons services
 */
var initRolloverServices = function() {
    jQuery("#pictosServices li").hover(function() {
        rolloverService(jQuery(this));
    }, function() {
        rolloutService(jQuery(this));
    });
};

var rolloverService = function(elt) {
    var imgOn = jQuery(elt).find(".on").text();
    jQuery(elt).find("img").attr("src", imgOn);
};

var rolloutService = function(elt) {
    var imgOff = jQuery(elt).find(".off").text();
    jQuery(elt).find("img").attr("src", imgOff);
};

jQuery(document).ready(function () {
    initRolloverServices();
});
