$(document).ready(function(){

    $(function() {
        if (window.PIE) {
            $('.rounded').each(function() {
                PIE.attach(this);
            });
        }
    });
    
    // VERIFY JAVASCRIPT
    var c = document.body.className;
    c = c.replace(/off_js/, 'on_js');
    document.body.className = c;

    // SLIDER TOP
    if($('#slider_top ul li').length == 1) {
        $("#slider_top").easySlider({
                prevId: 'prevBtn',
                prevText: ' ',
                nextId: 'nextBtn',
                nextText: '',
                firstId: 'firstBtn',
                speed: 1000,
                auto: false,
                pause: 6000,
                continuous: false,
                numeric: false
        });
    } else {
        $("#slider_top").easySlider({
                prevId: 'prevBtn',
                prevText: ' ',
                nextId: 'nextBtn',
                nextText: '',
                firstId: 'firstBtn',
                speed: 1000,
                auto: true,
                pause: 6000,
                continuous: true,
                numeric: true
        });
    }

    // CLEAR INPUT FOCUS
    $('.form_contact input[type=text], input[type=password], textarea').focus(function() {
        $(this).val('');
    });   


    // SHADOW

    $('.box-shadow').dropShadow({
            left: -1,
            top: -1,
            opacity: 0.8,
            blur: 2,
            color: '#cccccc'
    });

    $('#menu_top').dropShadow({
            left: -1,
            top: 1,
            opacity: 0.5,
            blur: 1,
            color: '#cccccc'
    });

    // FORM VALIDATION
    $.validator.setDefaults({
            submitHandler: function() {alert("submitted!");}
    });

    $(".form_contact").validate({
                    errorLabelContainer: "#containererreurtotal",
        // wrapper: "p",
        errorClass: "error", 

            rules: {
                    name: {
                            required: true,
                            minlength: 2
                    },
                    email: {
                            required: true,
                            email: true
                    },
                    message: {
                            required: true,
                            minlength: 2
                    }
            },
            messages: {
                    name: {
                            required: "Veuillez entrer un nom.",
                            minlength: "Le nom doit comporter au moins 2 caractères"
                    },
                    email: "Veuillez entrer une aresse email valide.",
                    message: {
                            required: "Veuillez entrer un message.",
                            minlength: "Le message doit comporter au moins 2 caractères"
                    }
            },
   invalidHandler: function(form, validator) {
        $("#containererreurtotal").show();
    },
    unhighlight: function(element, errorClass) {
        if (this.numberOfInvalids() == 0) {
            $("#containererreurtotal").hide();
        }
        $(element).removeClass(errorClass);
    }
    });

    /** ***** Start of: objectCollection used for News, Portrait, Agenda ***** */
    objectCollectionPageNumber = null; // is the current Page
    objectCollectionLastPage = null; //is the total of page in pagination
    objectCollectionMoreAction = null; //is the action for more News, Portrait, Agenda ajax loading
    
    $('.toogleBt').bind('click', function(event) {
        toogleContentAccordion(event, this);
    });

    function toogleContentAccordion(event, toogleBt) {
        if(event != null) {
            event.preventDefault();
        }
        var objectContent = $($($(toogleBt).parent('.objectElement')).children('.objectContent'));
        // Do we already have a .objectContent displayed
        // or is this the first down sliding of a .objectContent div ?
        if($('.activeObjectContent').attr('id') != null) {
            $('.activeObjectContent').slideUp(700);
            $('.toogleBt').css('visibility', 'visible');
        }
        $(objectContent).slideDown(800, function() {
            $(objectContent).addClass('activeObjectContent');
            $(toogleBt).css('visibility', 'hidden');
        });
    }

    $('.nav #moreObjects').click(
        function(event) {
            label = $('.nav #moreObjects .label').html();
            $('.nav #moreObjects .label').html('<img src="/image/ajax-loader-snake.gif"/>&nbsp;&nbsp;Chargement ...');
            objectCollectionPageNumber++;
            event.preventDefault();
            $.ajax({
                url: objectCollectionMoreAction + objectCollectionPageNumber,
                success: function(data) {
                    $('.objectCollection').append(data);
                    if(objectCollectionPageNumber == objectCollectionLastPage) {
                        $('.nav #moreObjects').css('visibility', 'hidden');
                    }
                    $('.toogleBt').unbind();
                    $('.toogleBt').bind('click', function(event) {
                        toogleContentAccordion(event, this);
                    });
                    $($('.objectCollection .objectGroup').last()).slideDown(1200);
                    modalSignupEvent();
                }
            });
        }
    );
    /** ***** End of: objectCollection used for News, Portrait, Agenda ***** */
    
    
    
    /* BEGIN PLUGIN CLEAR INPUT FOCUS
    ---------------------------------------------------- */
    // clear input focus
    $.fn.search = function() {
        return this.focus(function() {
            if( this.value == this.defaultValue ) {
                this.value = "";
            }
        }).blur(function() {
            if( !this.value.length ) {
                this.value = this.defaultValue;
            }
        });
    };
    $(".clearFocus").search();
    /* BEGIN PLUGIN CLEAR INPUT FOCUS
    ---------------------------------------------------- */


    /* BEGIN MODAL COLOBOX 
    ---------------------------------------------------- */
    function modalSignupEvent(){
       $("a.signupEvent").colorbox({
            scrolling: false,
            href: function(){
                var url = $(this).attr('href') + "/loadajax/true/";
                return encodeURI(url);
            },
            maxWidth:"95%",
            height: 300,
            onComplete: function(){              
                // reload reset clear focus after ajax load
                $(".clearFocus").search();
                // send ajax form
                sendFormAjaxEventSignup();
            }
        });
    }
    modalSignupEvent();
    /* BEGIN MODAL COLOBOX 
    ---------------------------------------------------- */
    
    
    /* BEGIN SEND AJAX FORM INSCRIPTION EVENT
    ---------------------------------------------------- */
    function sendFormAjaxEventSignup(){
        $('#sendFormSignupEvent').click(function(event) {
            event.preventDefault();
            
            $("#signupEventForm input[type='text']").change(function(){
                $(this).removeClass('inputError').val();
            });
          
            var lastname = $('input#lastname').val();
            if (lastname == '' || lastname == 'Nom' || lastname == 'Entrez votre nom') {
                $('input#lastname').focus().addClass('inputError').val('Entrez votre nom');
                return false;
            }
            
            var firstname = $('input#firstname').val();
            if (firstname == '' || firstname == 'Prénom' || firstname == 'Entrez votre prénome') {
                $('input#firstname').focus().addClass('inputError').val('Entrez votre prénome');
                return false;
            }
            
            var email = $('input#email').val();
            var emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
            if (!emailFilter.test(email)) {
                $('input#email').focus().addClass('inputError').val('Invalid e-mail');
                return false;
            }
            var redirect_to = $('input#redirect_to').val();
            var eventTitle  = $('input#eventTitle').val();
            var eventId     = $('input#eventId').val();
            var ajaxRequest = true;

            // data
            var dataString = 
                'firstname=' + firstname +
                '&lastname=' + lastname +
                '&email=' + email +
                '&redirect_to=' + redirect_to +
                '&eventTitle=' + eventTitle +
                '&eventId=' + eventId +
                '&ajaxRequest=' + ajaxRequest;

            // ajax send
            $.ajax({
                type: 'POST',
                url: $('form#signupEventForm').attr('action'),
                data: dataString,
                dataType: 'json',
                beforeSend: function(){            
                    $(this).attr('disabled', 'disabled').val("L'envoi...");
                    $('span', this).text("L'envoi...");
                },
                success: function(data) {
                    if(data['sendmail'] == 1){
                        $('#containerSignupEvents').html('<div id="message" class="sucess"></div>');
                        $('#message').html('<h2>Votre demande a été soumise!</h2>').append('<p>Une copie de votre commande a été envoyée à votre adresse email.</p><h3>Bientôt, nous prendrons contact avec vous pour confirmer votre inscription.</h3>').hide().fadeIn(1500);                        
                    } else if(data['sendmail'] == 0) {
                        if ($('#message').length == 0){
                            $('#containerSignupEvents').append('<div id="message" class="failed"></div>');
                        }
                        $(this).removeAttr('disabled').val("L'envoi...");
                        $('span', this).text("Envoyer");
                        $('#message').html("<h3>Impossible d'envoyer!</h3>").append("<p>Désolé, pas pu envoyer votre demande. S'il vous plaît essayez de nouveau.</p>").hide().fadeIn(1500);                                                
                    }
                }

            });
            return false; 
        });
    }
    sendFormAjaxEventSignup();
    /* BEGIN SEND AJAX FORM INSCRIPTION EVENT
    ---------------------------------------------------- */
    
    $('.albumGallery li a').colorbox({rel:'album', maxHeight:'95%', maxWidth: '95%'});
    
 
}); // END $(document).ready
