jQuery(document).ready(function(){
	blackxs.init();
});

jQuery(window).load(function(){
	blackxs.fixHeightHPBlocks();
});

var blackxs = {
	init: function(){
		blackxs.lng();
		blackxs.subNav();
		blackxs.cufon();
		blackxs.kwicks();
		blackxs.facebox();
		blackxs.checkFormComments();
		blackxs.checkFormContest1();
		blackxs.checkFormSubscribe();
		blackxs.checkFormVideoQuiz();
		blackxs.swapDefaultTextareaDefaultValue();
		blackxs.disableIfEmpty();
		blackxs.enableCountDown();
		blackxs.swapValue();
		blackxs.addBlank();
	},
	addBlank: function(){
		jQuery('.comment-author a').attr('target', '_blank');
	},
	swapValue: function(){
		swap_val = [];
		jQuery(".swap").each(function(i){
			swap_val[i] = jQuery(this).val();
			jQuery(this).focusin(function(){
				if (jQuery(this).val() == swap_val[i]) {
					jQuery(this).val("");
				}
			}).focusout(function(){
				if ($jQuery.trim(jQuery(this).val()) == "") {
					jQuery(this).val(swap_val[i]);
				}
			});
		});		
	},
	lng: function(){
		jQuery("#header .lng p, #wrapper .nav .lng p").hover(function(){
			jQuery(".lng ul").show();
		}, function(){
		});
		
		jQuery("#header .lng ul, #wrapper .nav .lng ul").hover(function(){
			jQuery(".lng ul").show();
		}, function(){
			jQuery(".lng ul").hide();
		});
	},
	subNav: function(){
		jQuery("#wrapper .nav .sub-nav a:eq(0)").hover(function(){
			jQuery("#wrapper .nav .sub-nav ul").show();
		}, function(){
			jQuery("#wrapper .nav .sub-nav ul").hide();
		});
		
		jQuery("#wrapper .nav .sub-nav ul").hover(function(){
			jQuery("#wrapper .nav .sub-nav ul").show();
		}, function(){
			jQuery("#wrapper .nav .sub-nav ul").hide();
		});
	},
	carousel: function(auto, start){
		if (jQuery("#sidebar .map").length) {
			jQuery("#sidebar .map ul").jcarousel({
				scroll: 1,
				auto: auto,
				start: start
			});
		}
	},
	cufon: function(){
		Cufon.replace("#content .focus h2, #content .block-carousel h1, #content .block-episode h1 .text, .archives h1, #content.page h1");
	},
	kwicks: function(){
		if (jQuery("#content .kwicks").length) {
			jQuery("#content .kwicks").kwicks({
				max: 416,
				sticky: true,
				defaultKwick: episodeNumberDefault,
				callback: function(){
					jQuery("#content .kwicks-description").hide();
					jQuery("#content ." + this.id + "-description").show();
				}
			});
			jQuery(".kwicks-description:eq(" + episodeNumberDefault + ")").show();
		}
	},
	facebox: function(){
		jQuery('a[rel*=facebox]').facebox();
	},
	enableCountDown: function(){
		jQuery("#showAnswers").click(function(event) {
			jQuery("#quizzVideoForm, .showtime.on, .step3").show();
			jQuery(".showtime.on strong").countdown({ until: +120, onExpiry: hideForm, onTick: function() { jQuery('#countdown').val(jQuery(this).text()); }, compact: true, format: 'is', description: ''});
			event.preventDefault();
		});
	},
	fixHeightHPBlocks: function(){
		if(jQuery(".home .col-content-left").length && jQuery(".home .block-whats-up").length) {
			var leftContent = jQuery(".home .col-content-left").height();
			var whatUpContent = jQuery(".home .block-whats-up").height();
			if (leftContent > whatUpContent) {
				jQuery(".home .block-whats-up").css("height",(leftContent-8));
			}
		}
	},
	disableIfEmpty: function(){
		jQuery(".search form").submit(function() {
			if ((jQuery("#search").val().length == 0) || (jQuery("#search").val().length == null)) {
				return false;
			} else {
				return true;
			}
		});
	},
	swapDefaultTextareaDefaultValue: function(){
		if (jQuery("#comment").length) {
			swapValue = jQuery("#comment").html();
			jQuery("#comment").focus(function(){
				if (jQuery("#comment").html() == swapValue) {
					jQuery("#comment").html("");
				}
			});
		}
	},
	// CHECK FORM COMMENTS 
	checkFormComments: function() {
		if (jQuery("#commentform").length) {
			var introErrorMsg,authorErrorMsg,emailRequiredErrorMsg,emailIncorrectErrorMsg;
			if (jQuery("body").hasClass("fr")) {
				introErrorMsg = "<p>Les champs indiqués ci-dessous sont mal renseignés :<\/p>";
				authorErrorMsg = "Pseudo";
				emailRequiredErrorMsg = "E-mail";	
				emailIncorrectErrorMsg = "E-mail (Format de votre E-mail incorrect)";
			} else if (jQuery("body").hasClass("es")) {
				introErrorMsg = "<p>Los Campos siguiente son incorrectos :<\/p>";
				authorErrorMsg = "Pseudo";
				emailRequiredErrorMsg = "E-mail";	
				emailIncorrectErrorMsg = "E-mail (non válido)";
			} else {
				introErrorMsg = "<p>The following fields are mandatory:<\/p>";
				authorErrorMsg = "Pseudo";
				emailRequiredErrorMsg = "E-mail";	
				emailIncorrectErrorMsg = "E-mail (format)";	
			}
			jQuery("#commentform").validate({
				rules: {
					author: "required",
					email: {required:true, email:true}
				},
				messages: {
					author: authorErrorMsg,			
					email: {required:emailRequiredErrorMsg, email:emailIncorrectErrorMsg}
				},
				showErrors: function (errors, validator) {
					if (this.errorList.length) {
							jQuery("#errorMsg").fadeIn();
							jQuery("#errorMsg").html(introErrorMsg);
							jQuery("#errorMsg").scrollTo(1000);
					} else {
						jQuery("#errorMsg").hide();
					}
					this.defaultShowErrors();
				},
				focusInvalid: false,
				onfocusin: false,
				onkeyup: false,
				onclick: false,
				onfocusout: false,
				errorLabelContainer: jQuery("#errorMsg")
			});
		}
	},
	// CHECK FORM CONTEST #1
	checkFormContest1: function() {
		if (jQuery("#contestForm1").length) {
			var introErrorMsg,dateErrorMsg,titleRequiredErrorMsg,categoryRequiredErrorMsg,userErrorMsg,URLRequiredErrorMsg,URLIncorrectErrorMsg;
			if (jQuery("body").hasClass("fr")) {
				introErrorMsg = "<p>Les champs indiqués ci-dessous sont mal renseignés :<\/p>";
				dateErrorMsg = "Date";
				titleRequiredErrorMsg = "Titre";	
				categoryRequiredErrorMsg = "Catégorie";
				userErrorMsg = "Auteur";
				URLRequiredErrorMsg = "URL";
				URLIncorrectErrorMsg = "URL (format http://)";
			} else if (jQuery("body").hasClass("es")) {
				introErrorMsg = "<p>Los Campos siguiente son incorrectos :<\/p>";
				dateErrorMsg = "Date";
				titleRequiredErrorMsg = "Tîtulo del enlace";	
				categoryRequiredErrorMsg = "Categorìa";
				userErrorMsg = "Apellido";
				URLRequiredErrorMsg = "URL";
				URLIncorrectErrorMsg = "URL (format http://)";
			} else {
				introErrorMsg = "<p>The following fields are mandatory:<\/p>";
				dateErrorMsg = "Date";
				titleRequiredErrorMsg = "Title";	
				categoryRequiredErrorMsg = "Category";
				userErrorMsg = "Author";
				URLRequiredErrorMsg = "URL";
				URLIncorrectErrorMsg = "URL (format http://)";
			}
			jQuery("#contestForm1").validate({
				rules: {
					contest_title: "required",
					contest_category: "required",
					contest_author: "required",
					contest_url: {required: true, url:true}
				},
				messages: {
					contest_title: titleRequiredErrorMsg,
					contest_category: categoryRequiredErrorMsg,
					contest_author: userErrorMsg,
					contest_url: {required: URLRequiredErrorMsg, url: URLIncorrectErrorMsg}
				},
				showErrors: function (errors, validator) {
					if (this.errorList.length) {
							jQuery("#errorMsg").fadeIn();
							jQuery("#errorMsg").html(introErrorMsg);
							jQuery("#errorMsg").scrollTo(1000);
					} else {
						jQuery("#errorMsg").hide();
					}
					this.defaultShowErrors();
				},
				focusInvalid: false,
				onfocusin: false,
				onkeyup: false,
				onclick: false,
				onfocusout: false,
				errorLabelContainer: jQuery("#errorMsg")
			});
		}
	},
	// CHECK FORM VIDEO QUIZ
	checkFormVideoQuiz: function() {
		if (jQuery("#quizzVideoForm").length) {
			var introErrorMsg,quizVideoQ1ErrorMsg,quizVideoQ2ErrorMsg,quizVideoQ3ErrorMsg,quizVideoQ4ErrorMsg;
			if (jQuery("body").hasClass("fr")) {
				introErrorMsg = "<p>Les champs indiqués ci-dessous sont mal renseignés :<\/p>";
				quizVideoQ1ErrorMsg = "Question 1";
				quizVideoQ2ErrorMsg = "Question 2";
				quizVideoQ3ErrorMsg = "Question 3";
				quizVideoQ4ErrorMsg = "Question 4";
			} else if (jQuery("body").hasClass("es")) {
				introErrorMsg = "<p>Los Campos siguiente son incorrectos :<\/p>";
				quizVideoQ1ErrorMsg = "Question 1";
				quizVideoQ2ErrorMsg = "Question 2";
				quizVideoQ3ErrorMsg = "Question 3";
				quizVideoQ4ErrorMsg = "Question 4";
			} else {
				introErrorMsg = "<p>The following fields are mandatory:<\/p>";
				quizVideoQ1ErrorMsg = "Question 1";
				quizVideoQ2ErrorMsg = "Question 2";
				quizVideoQ3ErrorMsg = "Question 3";
				quizVideoQ4ErrorMsg = "Question 4";
			}
			jQuery("#quizzVideoForm").validate({
				rules: {
					quizvideo1: "required",
					quizvideo2: "required",
					quizvideo3: "required",
					quizvideo4: "required"
				},
				messages: {
					quizvideo1: quizVideoQ1ErrorMsg,
					quizvideo2: quizVideoQ2ErrorMsg,
					quizvideo3: quizVideoQ3ErrorMsg,
					quizvideo4: quizVideoQ4ErrorMsg
				},
				showErrors: function (errors, validator) {
					if (this.errorList.length) {
							jQuery("#errorMsg").fadeIn();
							jQuery("#errorMsg").html(introErrorMsg);
							jQuery("#errorMsg").scrollTo(1000);
					} else {
						jQuery("#errorMsg").hide();
					}
					this.defaultShowErrors();
				},
				focusInvalid: false,
				onfocusin: false,
				onkeyup: false,
				onclick: false,
				onfocusout: false,
				errorLabelContainer: jQuery("#errorMsg")
			});
		}
	},
	// CHECK FORM SUBSCRIBE
	checkFormSubscribe: function() {
		if (jQuery("body").hasClass("en"))
			dateValidationString = 'dd/mm/yy';
		else
			dateValidationString = 'dd/mm/yy';
			
		jQuery.validator.addMethod(
		               "customDateValidator",
		                function(value, element) {
							// parseDate throws exception if the value is invalid
		                    try{jQuery.datepicker.parseDate( dateValidationString, value);return true;}
		                    	catch(e){return false;}
		                    },
		                    "Please enter a valid date"
		                );			
		jQuery.validator.addMethod(
		               "customRadioValidator",
		                function(value, element) {
		                    try{return jQuery(element).attr('checked'); }
		                    	catch(e){return false;}
		                    },
		                    "Please accept the CGU"
		                );			
		
		if (jQuery("#subscribeForm").length) {
			var introErrorMsg,usercountryErrorMsg,usergenderErrorMsg,userlastnameErrorMsg,userfirstnameErrorMsg,birthdateRequiredErrorMsg,birthdateIncorrectErrorMsg,useremailRequiredErrorMsg,useremailIncorrectErrorMsg,optinErrorMsg,cguErrorMsg,captchaErrorMsg;
			if (jQuery("body").hasClass("fr")) {
				introErrorMsg = "<p>Les champs indiqués ci-dessous sont mal renseignés :<\/p>";
				usercountryErrorMsg = "Pays";
				usergenderErrorMsg = "Civilité";
				userlastnameErrorMsg = "Nom";
				userfirstnameErrorMsg = "Prénom";	
				birthdateRequiredErrorMsg = "Date de naissance";
				birthdateIncorrectErrorMsg = "Date de naissance (format)";
				useremailRequiredErrorMsg = "E-mail";
				useremailIncorrectErrorMsg = "E-mail (Format de votre E-mail incorrect)";
				optinErrorMsg = "Inscription à la Newsletter";
				cguErrorMsg = "Conditions Générales d'Utilisation";
				captchaErrorMsg = "Captcha";
			} else if (jQuery("body").hasClass("es")) {
				introErrorMsg = "<p>Los Campos siguiente son incorrectos :<\/p>";
				usercountryErrorMsg = "País";
				usergenderErrorMsg = "Género";
				userlastnameErrorMsg = "Apellido";
				userfirstnameErrorMsg = "Nombre";	
				birthdateRequiredErrorMsg = "Año de nacimiento";
				birthdateIncorrectErrorMsg = "Año de nacimiento (format)";
				useremailRequiredErrorMsg = "E-mail";	
				useremailIncorrectErrorMsg = "E-mail (non válido)";
				optinErrorMsg = "Inscripciòn a la hoja informativa";
				cguErrorMsg = "Condiciones de uso";
				captchaErrorMsg = "Captcha";
			} else {
				introErrorMsg = "<p>The following fields are mandatory:<\/p>";
				usercountryErrorMsg = "Country";
				usergenderErrorMsg = "Gender";
				userlastnameErrorMsg = "Last Name";
				userfirstnameErrorMsg = "First Name";	
				birthdateRequiredErrorMsg = "Date of birth";
				birthdateIncorrectErrorMsg = "Date of birth (format)";
				useremailRequiredErrorMsg = "E-mail";	
				useremailIncorrectErrorMsg = "E-mail (format)";
				optinErrorMsg = "Newsletter subscription";
				cguErrorMsg = " Terms and Conditions";
				captchaErrorMsg = "Captcha";
			}
			jQuery("#subscribeForm").validate({
				rules: {
					contest_country: "required",
					contest_gender: "required",
					contest_lastname: "required",
					contest_firstname: "required",
					contest_birthday: {required:true, customDateValidator:true},
					email: {required:true, email:true},
					contest_optin1: {required:true },
					contest_cgu: {required:true },
					captcha: { 
						required: true, 
						remote: "/wp-content/plugins/blackxs/captcha-check.php"
					}
				},
				messages: {
					contest_country: usercountryErrorMsg,
					contest_gender: usergenderErrorMsg,
					contest_lastname: userlastnameErrorMsg,
					contest_firstname: userfirstnameErrorMsg,
					contest_birthday: {required:birthdateRequiredErrorMsg,date:birthdateIncorrectErrorMsg},
					email: {required:useremailRequiredErrorMsg, email:useremailIncorrectErrorMsg},
					contest_optin1: optinErrorMsg,
					contest_cgu: cguErrorMsg,
					captcha: captchaErrorMsg
				},
				showErrors: function (errors, validator) {
					if (this.errorList.length) {
							jQuery("#errorMsg").fadeIn();
							jQuery("#errorMsg").html(introErrorMsg);
							jQuery("#errorMsg").scrollTo(1000);
					} else {
						jQuery("#errorMsg").hide();
					}
					this.defaultShowErrors();
				},
				focusInvalid: false,
				onfocusin: false,
				onkeyup: false,
				onclick: false,
				onfocusout: false,
				errorLabelContainer: jQuery("#errorMsg")
			});
		}
	}
};

window.onerror=function(){
 return true;
};

function hideForm() {
	jQuery(".step2, .step3, .showtime.on").hide();
	jQuery(".showtime.off").show();
	jQuery(".limit").show("fast");
	jQuery("#quizzVideoForm").hide("slow");
}