/*------------------------------------------------------------------------------
    JS Document (https://developer.mozilla.org/en/JavaScript)

    project:    www.dhh-online.net
    created:    2009-12-31
    author:     djohad

    summary:    MAJX_CORE
                CONSTANTES
				CONFIG
                UTILITIES
                WINDOW.ONLOAD
                SHOWHIDE
				FORM_VALIDATION
				POPIN

----------------------------------------------------------------------------- */

/* =MAJX_CORE (http://code.google.com/p/majx-js/)
----------------------------------------------------------------------------- */
(function(){if(typeof majx=="undefined"){majx={};majx.init=function(){if(!majx.config){majx.config={};}}();}}());majx.set=function(){var e=arguments[0]||{};var b=null;var d=arguments.length;var c=1;if(d==c){e=majx.config;--c;}for(;c<d;c++){if((b=arguments[c])!=null){for(var a in b){var f=e[a];var g=b[a];if(e===g){continue;}else{if(g!==undefined){e[a]=g;}}}}}majx.config=e;};


/*  =CONSTANTES
----------------------------------------------------------------------------- */
jQuery.noConflict();
var d = document;
var w = window;
pm = {};
majx.set({
    firebuglite : {
        active : false, // disable (false) in production environment
        url : 'js/firebug-lite-modem.js'
    }
});

/* =CONFIG
------------------------------------------------------------------------------*/
majx.set({
   
	formValidation : {
        elms : '.form-required',
        form : '.form-verify',
        intro : '#form-intro',
        messages : {
			lastname  : 'Veuillez entrer votre nom',
			email    : 'Veuillez entrer une adresse email valide',
			message : 'Veuillez entrer votre message'
		},
        html : {
            error : '<span class="error"><span></span></span>',
            valid : '<img src="/img/data/ico_valid.png" alt="" />'
			
        }
    }
});



/*  =UTILITIES
----------------------------------------------------------------------------- */
var log = function(x) {
    if (typeof console != 'undefined') {
        console.log(x);
    }
};

var debuger = function(){
    if (majx.config.firebuglite.active && typeof console == 'undefined') {
        document.write('<script src="'+majx.config.firebuglite.url+'" type="text/javascript"></script>');
    }
}();


/*  =WINDOW.ONLOAD
----------------------------------------------------------------------------- */
jQuery(document).ready(function(){
    // Call Functions
	showHide(); 			// For the portfolio
	formValidation();		// For the contact page
	animateHeader();
    if (jQuery.browser.msie && jQuery.browser.version == 6) {
        // IE 6 FUNCTIONS ONLY
        
    }

});



/*  =SHOWHIDE
----------------------------------------------------------------------------- */
showHide = function() {
    jQuery(".mini-work").hover(function(){
	   jQuery(this).addClass("hover");
	 },function(){
	   jQuery(this).removeClass("hover");
	 });
};


/*  =FORM_VALIDATION
----------------------------------------------------------------------------- */
function formValidation() {
    var elms = majx.config.formValidation.elms;
    var form = majx.config.formValidation.form;
    var intro = jQuery(majx.config.formValidation.intro);
    
    var html_error = majx.config.formValidation.html.error;
    var html_valid = majx.config.formValidation.html.valid;
    var txt_intro  = majx.config.formValidation.messages.intro;
    
    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    var launch = function() {
        var required = jQuery(elms);
        
        var resetMsg = function(input) {
            input.nextAll().remove();
        };

        var setError = function(input, label) {
            resetMsg(input);
            input.nextAll().remove();
            input.after(html_error);
            input.parent().find('.error span').append(majx.config.formValidation.messages[label]);
			input.parent().addClass('error');
        };
        
        var setValid = function(input) {
            resetMsg(input);
            input.nextAll().remove();
            input.after(html_valid);
			input.parent().removeClass('error');
        };        
        
        var verify = function() {
            var status = true;
            
            required.each(function(){
                var current = jQuery(this);
                var input   = current.children('input, select, textarea');
                var label   = input.attr('id').split('f-')[1].replace('-','');
                var obj = {current : current, input : input, label : label};

                if (input[0].tagName == 'INPUT' && input.attr('type') == 'text' && label == 'email') {
                    if (!(emailPattern.test(input[0].value))) {
                        setError(input, label);
                        status = false;
                    }
                    else {
                        setValid(input, label);
                    }
                }

                else if ((input[0].tagName == 'INPUT' && input.attr('type') == 'text') 
                || (input[0].tagName == 'INPUT' && input.attr('type') == 'file')
                || (input[0].tagName == 'INPUT' && input.attr('type') == 'password')
                || (input[0].tagName == 'TEXTAREA')) {
                    if (input[0].value == ' ' || input[0].value == '') {
                        setError(input, label);
                        status = false;
                    }
                    else {
                        setValid(input, label);
                    }
                }
                
                else if (input[0].tagName == 'SELECT') {
                    if (input[0].value == 0) {
                        setError(input, label);
                        status = false;
                    }
                    else {
                        setValid(input, label);
                    }
                }
                
            });
            
            return status;
        };
        
        var formSubmit = function() {
            var dForm = jQuery(form);
            dForm.bind('submit', function(event){
                event.preventDefault();
                if (verify()) {
                    this.submit();
					var name1=document.getElementById('f-lastname').value;
					var company1=document.getElementById('job').value;
					var email1=document.getElementById('f-email').value;
					var phone1=document.getElementById('phone').value;
					var message1=document.getElementById('f-message').value;
					
					file('mail.php?name='+name1+'&company='+company1+'&email='+email1+'&phone='+phone1+'&message='+message1);

                }
                else {
                    dForm.attr("tabindex","-1");
                    dForm.focus();
                    dForm.removeAttr("tabindex");
                    intro.find('.error-2').empty();
                    intro.find('.error-2').append(txt_intro);
                    intro.show();
                }
            });
        }();
        
    };
    
    var init = function() {
        if (jQuery(elms).length > 0) {
            launch();
        }
    }();
}

function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open('GET', fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4)
return(xhr_object.responseText); 
	
else return(false);
}

/*  =ANIMATE_HEADER

----------------------------------------------------------------------------- */

var rand_before;

function animateHeader() {
	/*if(jQuery('#intro .picture #background').length < 1 ){
				jQuery('#intro .picture').append('<div id="background"></div>');
	}*/
	jQuery('#intro .picture #background').fadeOut('slow', function(){
				var rand = Math.round(Math.random()*100);
				while(rand==0 || rand > 7 || rand==rand_before){
				   rand = Math.round(Math.random()*100);
				}
				rand_before = rand;

				jQuery('#intro .picture #background').removeClass();
				jQuery('#intro .picture #background').addClass('background-'+rand+'');
				jQuery('#intro .picture #background').fadeIn('slow');                   
	});
	setTimeout("animateHeader()",4000);
}



