var TrupTools = {
	Version : "1.0",

	sDivMessage : "message",
	sMessage : "",



	checkForm : function (sForm) {
		var oForm = $(sForm).serialize(true);
		for (sProperty in oForm) {
			if ($(sProperty)) {
				if (oForm[sProperty] === "") {
					if ($(sProperty + 'Label')) {
						getMessage(sProperty, sProperty + 'Label', 'empty', 0);
					} else {
						getMessage(sProperty, sProperty, 'empty', 0);
					}
				} else {
					if ($(sProperty + 'Label')) {
						goodField(sProperty, sProperty + 'Label');
					} else {
						goodField(sProperty, sProperty);
					}
				}
			}
		}
	},


	getMessage : function (sDiv, sLabel, sMode, bActivate) {
		switch (sMode) {
			case "empty" :
				$(sDiv).addClassName("missingValue");
				$(sLabel).addClassName("missingValueLabel");
				if(bActivate == 1){
					$(sDiv).activate();
				}
				break;
			case "error" :
				$(sDiv).addClassName("missingValue");
				$(sLabel).addClassName("missingValueLabel");
				if(bActivate == 1){
					$(sDiv).activate();
				}
				break;
		}
		showMessage();
	},


	goodField : function (sDiv, sLabel) {
		$(sDiv).removeClassName("missingValue");
		$(sLabel).removeClassName("missingValueLabel");
	},


	showMessage : function () {
		$(this.sDivMessage).update(this.sMessage);
		$(this.sDivMessage).show();
	},


	copyValue : function (sValue, sDestination) {
		$(sDestination).value = sValue;
	},


	str_replace : function (search, replace, subject) {
	    var f = search, r = replace, s = subject;
	    var ra = r instanceof Array, sa = s instanceof Array, f = [].concat(f), r = [].concat(r), i = (s = [].concat(s)).length;
	    while (j = 0, i--) {
	        if (s[i]) {
	            while (s[i] = s[i].split(f[j]).join(ra ? r[j] || "" : r[0]), ++j in f){};
	        }
	    };
	    return sa ? s : s[0];
	},


	AjaxUpdater : function (sDiv, sUrl, sQuery, sReturnValid, sReturnError) {
		var oRequete = new Ajax.Updater(sDiv,
										sUrl, {method:'get',
											   postBody:sQuery,
											   evalScripts:true,
											   onSuccess:function(xhr) {
											   		var oResult = xhr.responseText.evalJSON();
											   		if (oResult.bValid == "true") {
											   			eval(sReturnValid);
											   			if (oResult.sText !== "") {
											   				eval(oResult.sText);
											   			}
											   		} else {
											   			eval(sReturnError);
											   		}
											   },
											   onFailure:function() {
											   		eval(sReturnError);
											   }});
	},


	AjaxRequest : function (sUrl, sQuery, sReturnValid, sReturnError) {
		var oRequete = new Ajax.Request(sUrl, {method:'post',
											   postBody:sQuery,
											   onSuccess:function(xhr) {
											   		var oResult = xhr.responseText.evalJSON();
											   		if (oResult.bValid == "true") {
											   			eval(sReturnValid);
											   			if (oResult.sText !== "") {
											   				eval(oResult.sText);
											   			}
											   		} else {
											   			eval(sReturnError);
											   		}
											   },
											   onFailure:function() {
											   		eval(sReturnError);
											   }});
	},

	Accordeon : function (sClass, bOpen){
		var oElements = $$("." + sClass);
		oElements.each(
			function (oElement) {
				$(oElement.id + "Title").observe('click', function(){
															if(oElements.length > 1){
																oElements.each(
																	function (oElementClose){
																		if($(oElementClose).hasClassName('open')){
																			new Effect.BlindUp($(oElementClose.id + "Content"), {duration:0.2,
																																 afterFinish:function(){
																																 	$(oElementClose).removeClassName("open");
																															 	 	$(oElement).addClassName("open");
																																 	new Effect.toggle($(oElement.id + "Content"), 'blind', {duration:0.2});}});
																		}
																	}
																);
															}else{
																if($(oElement).style.display == "none"){
																	$(oElement).addClassName("open");
																}else{
																	$(oElement).removeClassName("open");
																}
															 	new Effect.toggle($(oElement.id + "Content"), 'blind', {duration:0.2});
															}
				});
				$(oElement.id + "Content").hide();
			}
		);

		$(oElements[0]).addClassName("open");
		if(bOpen === 1){
			$(oElements[0].id + "Content").show();
		}
	}
}

showPress = function (sPressDetail){
	$('pressRevue').hide();
	var oPage = new TrupTools.AjaxUpdater("pressRevueDetail", "/press/" + sPressDetail + ".html", "", "", "");
	$('pressRevueDetail').show();
};

showPressArchive = function (sPressDetail, sMonth, sYear){
	$('pressRevue').hide();
	var oPage = new TrupTools.AjaxUpdater("pressRevueDetail", "/press/" + sYear + "/" + sMonth + "/" + sPressDetail + ".html", "", "", "");
	$('pressRevueDetail').show();
};

backPress = function(){
	$('pressRevueDetail').hide();
	$('pressRevue').show();
};