
function LoadCufon()
{
	Cufon.replace('#mainContent h1');
	Cufon.replace('p.intro');
	Cufon.replace('#promo h3');
	Cufon.replace('#secCol h3');
	Cufon.replace('#content2Col2 h3');
}

function recordOutboundLink(link, category, action) {
  try {
    _gaq.push(['_trackEvent', category, action]);
    setTimeout('document.location = "' + link.href + '"', 100)
  }catch(err){}
}

$(document).ready(function() {

        $(".newsTable tr:even").addClass("even");
        $(".newsPaging").removeClass("even");
        $(".newsPaging td table tbody tr td span").parent().addClass("selected");

    var timer="";

    $('#mLanguage').hover(
      function () {
      	clearTimeout(timer);
      	if ($("#smLanguage").is(":hidden")) {
        	$("#smLanguage").slideDown("fast");
      	}
      }, 
      function () {
      	timer = setTimeout("$('#smLanguage').slideUp('fast')",500);
      }
    );
    $('#smLanguage').hover(
      function () {
      	clearTimeout(timer);
      }, 
      function () {
      	timer = setTimeout("$('#smLanguage').slideUp('fast')",500)
      }
    );
    
    
    // fonction pour les cases bleues sur la page d'accueil
    $('#promo li').click(
      function () {
      	window.location = $('#' + this.id + ' a.big').attr("href");
      });
      
      $('#pubCatalog').click(
     	
	      function () {
	      	window.location = $('#' + this.id + ' a').attr("href");
	    
      });
      
      $('#pubEvents').click(
     	
	      function () {
	      	window.location = $('#' + this.id + ' a').attr("href");
	    
      });

    
    $("#banner #pub li").hover(
      function () {
        $(this).addClass("over");
      }, 
      function () {
        $(this).removeClass("over");
      }
    );
    
    $('#banner #pub li').click(function () {
        window.location = $('#' + this.id + ' a').attr("href");
    });

    //if(Configuration.GetCurrentLanguage() == "fr") {
    //    jQuery.extend(DateInput.DEFAULT_OPTS, {
    //      month_names: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
    //      short_month_names: ["Jan", "Fev", "Mar", "Avr", "Mai", "Jun", "Jui", "Aou", "Sep", "Oct", "Nov", "Dec"],
    //      short_day_names: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"]
    //    });
    //}
});

function openWindow(lien){
	myWindow = window.open(lien, "tinyWindow", 'width=340,height=300')
	myWindow.focus();
}

function openLargerWindow(lien){
	myWindow = window.open(lien, "tinyWindow", 'width=740,height=515')
	myWindow.focus();
}

function changezIndex(scanner){
	document.getElementById('viuBlack').style.zIndex=1;
	document.getElementById('viuBlue').style.zIndex=1;
	document.getElementById('viuGreen').style.zIndex=1;
	document.getElementById('viuRed').style.zIndex=1;
	
	document.getElementById(scanner).style.zIndex=5	;
}


// Objet Validation pour le formulaire de concours
// -----------------------------------------------
// Mettre des classes aux inputs de cette façon
// required
// required + (requiredEmail ou requiredRadio ou requiredCheckbox)
// -----------------------------------------------
// Ça ajoute la classe "error" aux objets qui ne valide pas
var Validation = {
    IsInputValid: function(obj) {
        if($(obj).hasClass("toggleText")) { return false; }

        if($(obj).hasClass("requiredEmail")) {
            return Validation.IsEmailValid($(obj).val());
        }
        
        if($(obj).hasClass("requiredRadio")) {
            var ok = false;
            
            $(obj).find("input").each(function() {
                if($(this).is(":checked")) {ok = true;}
            });
            
            return ok;
        }
        
        if($(obj).hasClass("requiredCheckbox")) {
            return $(obj).children("input").is(':checked');
        }
        
        if($(obj).hasClass("dateRange")) {
            var IDs = $(obj).val().split("|");
            var start = $("#" + IDs[0]);
            var end = $("#" + IDs[1]);
            var limit = IDs[2];

            if(start.val() > end.val()) {end.addClass("error"); return true;}
            if(end.val() > limit) {end.addClass("error"); return true;}

            if(Validation.IsDateValid(end.val())) {end.removeClass("error");}
        }
    
        if($(obj).val() == "") {
            return false;
        }
        
        return true;
    },
    CheckForm: function() {
        var ok = true;
        
        $("form .required").each(function() {
            if (!Validation.IsInputValid(this)) { ok = false; $(this).addClass("error"); }
            else { $(this).removeClass("error"); }
        });
        
        if(!ok) {alert(Text.GetString("lblValidationError"));}

        return ok;
    },
    IsEmailValid: function(str) {
        var filter = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
        if (!filter.test(str)) {return false;}
        
        return true;
    },
    IsDateValid: function(str) {
        var datePat = /^(\d{4})(\/|-)(\d{1,2})(\/|-)(\d{1,2})$/;
        var matchArray = str.match(datePat);

        if (matchArray == null) {
            return false;
        }

        month = matchArray[3];
        day = matchArray[5];
        year = matchArray[1];

        if (month < 1 || month > 12) {return false;}
        if (day < 1 || day > 31) {return false;}
        if ((month==4 || month==6 || month==9 || month==11) && day==31) {return false;}

        if (month == 2) {
            var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
            
            if (day > 29 || (day==29 && !isleap)) {
                return false;
            }
        }
        
        return true;
    },
    ToggleDisabled: function(obj, id) {
        if (obj.is(':checked')) {
            $('#' + id).attr('disabled', false);
            $('#' + id).addClass("required");
            Validation.ActivateErrorLookup();
        } else {
            $('#' + id).attr('disabled', true);
            $('#' + id).removeClass("required");
        }   
    },
    ToggleText: function(id, str) {
        var obj = $("#" + id);
        obj.val(str);
        obj.addClass("toggleText");
        
        obj.bind('keyup click', function() {
            if(obj.val() == str) {obj.val(""); obj.removeClass("toggleText");}
        })
        
        obj.bind("blur", function() {
            if(obj.val() == "") {obj.val(str); obj.addClass("toggleText");}
        });
    },
    ActivateErrorLookup: function() {
        $(".required").bind('blur change', function() {
            if(Validation.IsInputValid(this)) {$(this).removeClass("error");}   
            else {$(this).addClass("error");}
        });
        
        $(".required").bind('keyup click', function() {
            $(this).removeClass("error");
        });
    }
}

var Text = {
    GetString: function(str) {
        var language = Configuration.GetCurrentLanguage();
        
        if(language != "en" && language != "fr") {language = "en";}
         
        if(language == "en") {
            switch(str) {
                case 'lblValidationError': return "Error! Please check your form.\n\nMistakes has been highlighted in red.";
                case 'lblLastName': return "Last name";
                case 'lblFirstName': return "First name";
            }
        }
        else if(language == "fr") {
            switch(str) {
                case 'lblValidationError': return "Erreur! Veuillez vérifier votre formulaire.\n\nLes champs en erreurs ont été surlignés en rouge.";
                case 'lblLastName': return "Nom de famille";
                case 'lblFirstName': return "Prénom";
            }
        }
    }
}

var Configuration = {
    GetCurrentLanguage: function() {
        if(document.location.href.search("/en/") != -1) {return "en";}
        if(document.location.href.search("/fr/") != -1) {return "fr";}
        if(document.location.href.search("/es/") != -1) {return "es";}
        if(document.location.href.search("/pt/") != -1) {return "pt";}
        if(document.location.href.search("/ja/") != -1) {return "ja";}
        if(document.location.href.search("/de/") != -1) {return "de";}
        if(document.location.href.search("/zh/") != -1) {return "zh";}
    }
}

jQuery.fn.countdown = function (str, lang) {
    var result = "";
    var countdown = new Date(str);
    var now = new Date();
    
    var days = Math.floor((countdown.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));
    var hours = Math.floor((countdown.getTime() - now.getTime()) / (1000 * 60 * 60)) - (days * 24);
    var minutes = Math.floor((countdown.getTime() - now.getTime()) / (1000 * 60)) - (days * 24 * 60) - (hours * 60);
    var seconds = Math.floor((countdown.getTime() - now.getTime()) / (1000)) - (days * 24 * 60 * 60) - (hours * 60 * 60) - (minutes * 60);
  
    var words = new Array();
    words["en"] = new Array("day", "days", "hour", "hours", "minute", "minutes", "second", "seconds", "Meeting expired");
    words["fr"] = new Array("jour", "jours", "heure", "heures", "minute", "minutes", "seconde", "secondes", "Rendez-vous expiré");
    words["de"] = new Array("tag", "tage", "stunde", "stunden", "minute", "minuten", "sekunde", "sekunden", "Termin abgelaufen");

    result += days + " " + ((days > 1) ? words[lang][1] : words[lang][0]) + " ";
    result += hours + " " + ((hours > 1) ? words[lang][3] : words[lang][2]) + " ";
    result += minutes + " " + ((minutes > 1) ? words[lang][5] : words[lang][4]) + " ";
    result += seconds + " " + ((seconds > 1) ? words[lang][7] : words[lang][6]);
    
    if(days < 0) {
        result = words[lang][8];
    }
    else {
        var that = this;
        setTimeout(function(){that.countdown(str, lang);}, 1000);
    }

    this.text(result);
};
