/* COMMON JS */
$(document).ready(function(){
	// USEFULL VARS
	var pageURL = $("#pageURL").text();
	var errorMessage = $("#messages_errorFormData");
	
	// USEFULL FUNCTIONS
	// trim
	function trim(str,charlist){var whitespace,l=0,i=0;str+='';if(!charlist){whitespace=" \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000";}else{charlist+='';whitespace=charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g,'$1');}
		l=str.length;for(i=0;i<l;i++){if(whitespace.indexOf(str.charAt(i))===-1){str=str.substring(i);break;}}
		l=str.length;for(i=l-1;i>=0;i--){if(whitespace.indexOf(str.charAt(i))===-1){str=str.substring(0,i+1);break;}}
	return whitespace.indexOf(str.charAt(0))===-1?str:'';}
	
	// SPOT CONTACT EVENTS
	var spotContactEvents = function(){
		var spotContact = $(".spotContact");
		if(spotContact.length > 0){
			
			// Comments actions
			var actionContactBox = $("#actionContactBox");
			var actionRecipient = $("#actionRecipientBox");
			
			function hideAllActions(){
				var actionSelects = $(".actionContact");
				if(actionSelects.length > 0){
					actionContactBox.hide();
					actionSelects.hide();
				}
			}
			
			// Sub select actions filters
			var actionAttr = $(".actionAttr");
			var actionAttrSub = $(".actionAttrSub");
			if(actionAttr.length > 0 && actionAttrSub.length > 0){
				actionAttr.each(function(){
					// On page load
					if($(this).val() == 'yes'){
						$(this).parent().find('.actionAttrSub').fadeIn();
					}
					$(this).change(function(){
						if($(this).val() == 'yes'){
							$(this).parent().find('.actionAttrSub').fadeIn();
						} else {
							$(this).parent().find('.actionAttrSub').val('');
							$(this).parent().find('.actionAttrSub').fadeOut();
						}
					});
				});
			}
			
			var actionType = $("#actionType");
			if(actionType.length > 0){
				function changeAction(){
					optionType = actionType.find(":selected");
					if(optionType.length > 0){
						var objectID = optionType.attr("class").substring(17);
						if(objectID && !isNaN(objectID)){
							var select = $("#actionContact_"+objectID);
							if(select.length > 0){
								select.show();
								actionContactBox.fadeIn();
								actionRecipient.fadeOut();
							}
						} else {
							actionRecipient.fadeIn();
						}
					}
				}
				hideAllActions();
				if(actionType.val()){
					changeAction();
				}
				actionType.change(function(){
					hideAllActions();
					changeAction();
				});
			}
			
			var messageForm = $("#messageForm > form");
			
			// Switch languages (links)
			var languagesLinks = $(".switchLanguage a");
			var languageInput = $("#languageInput");
			var languageChangeInput = $("#languageChangeInput");
			if(languageChangeInput.length > 0 && languageInput.length > 0 && languagesLinks.length > 0 && messageForm.length > 0){
				languagesLinks.click(function(){
					languageInput.val($(this).attr("title"));
					languageChangeInput.val("yes");
					messageForm.submit();
					return false;
				});
			}
			
			// Switch languages (select)
			var languagesForm = $("#languageSwitcher");
			var languagesSelect = $("#languageCodeSelect");
			var languagesSubmit = $("#languageCodeSubmit");
			if(languageChangeInput.length > 0 && languageInput.length > 0 && languagesForm.length > 0 && messageForm.length > 0){
				// Hide submit button
				languagesSubmit.hide();
				languagesSelect.change(function(){
					languagesForm.submit();
				});
				languagesForm.submit(function(){
					languageInput.val(languagesSelect.val());
					languageChangeInput.val("yes");
					messageForm.submit();
					return false;
				});
			}
			
			// Boxes switcher
			var boxes = $("#box1, #box2, #box3, #box4, #box5");
			if(boxes.length > 0){
				boxes.each(function(){
					// Events
					var reg = new RegExp("[box]+", "g");
					var tab = $(this).attr("id").split(reg);
					if(!isNaN(tab[1])){
						var switcherBox = $("#switcherBox"+tab[1]);
						var box = $(this);
						switcherBox.css("cursor", "pointer");
						switcherBox.click(function(){
							box.toggle();
						});
					}
					
					// Show / Hide on document ready
					var show = $(this).find(".boxShow");
					var hide = $(this).find(".boxHide");
					if(show.length > 0){
						$(this).show();
					} else if(hide.length > 0){
						$(this).hide();
					}
				});
			}
			
			// Switch Statistics boxes
			var groupementSelect = $("#groupement");
			var attributsContacts = $("#attributsContacts");
			var attributsOpCom = $("#attributsOpCom");
			var nbrContacts = $("#nbrContacts");
			var attributsContactsNbrContacts = $("#attributsContactsNbrContacts");
			if(groupementSelect.length > 0 && attributsContacts.length > 0){
				// Select event
				groupementSelect.change(function(){
					if($(this).val() == "attributsDesContacts"){
						attributsContacts.show();
					} else {
						attributsContacts.hide();
						attributsContactsNbrContacts.hide();
						attributsContacts.find("input").attr("checked", "");
					}
				});
				// Show on document ready ?
				if(attributsContacts.find("span.show").length > 0){
					attributsContacts.show();
				}
			}
			if(groupementSelect.length > 0 && attributsOpCom.length > 0){
				// Select event
				groupementSelect.change(function(){
					if($(this).val() == "attributsDesOpCom"){
						attributsOpCom.show();
					} else {
						attributsOpCom.hide();
						attributsOpCom.find("input").attr("checked", "");
					}
				});
				// Show on document ready ?
				if(attributsOpCom.find("span.show").length > 0){
					attributsOpCom.show();
				}
			}
			if(nbrContacts.length > 0 && attributsContactsNbrContacts.length > 0){
				// Checkbox event
				nbrContacts.click(function(){
					if($(this).attr("checked") == true){
						attributsContactsNbrContacts.show();
					} else {
						attributsContactsNbrContacts.hide();
						attributsContactsNbrContacts.find("input").attr("checked", "");
					}
				});
				// Show on document ready ?
				if(attributsContactsNbrContacts.find("span.show").length > 0){
					attributsContactsNbrContacts.show();
				}
			}
			
			var groupementSelect2 = $("#groupement2");
			var attributsContacts2 = $("#attributsContacts2");
			var attributsOpCom2 = $("#attributsOpCom2");
			var nbrContacts2 = $("#nbrContacts2");
			var attributsContactsNbrContacts2 = $("#attributsContactsNbrContacts2");
			if(groupementSelect2.length > 0 && attributsContacts2.length > 0){
				// Select event
				groupementSelect2.change(function(){
					if($(this).val() == "attributsDesContacts2"){
						attributsContacts2.show();
					} else {
						attributsContacts2.hide();
						attributsContactsNbrContacts2.hide();
						attributsContacts2.find("input").attr("checked", "");
					}
				});
				// Show on document ready ?
				if(attributsContacts2.find("span.show").length > 0){
					attributsContacts2.show();
				}
			}
			if(groupementSelect2.length > 0 && attributsOpCom2.length > 0){
				// Select event
				groupementSelect2.change(function(){
					if($(this).val() == "attributsDesOpCom2"){
						attributsOpCom2.show();
					} else {
						attributsOpCom2.hide();
						attributsOpCom2.find("input").attr("checked", "");
					}
				});
				// Show on document ready ?
				if(attributsOpCom2.find("span.show").length > 0){
					attributsOpCom2.show();
				}
			}
			if(nbrContacts2.length > 0 && attributsContactsNbrContacts2.length > 0){
				// Checkbox event
				nbrContacts2.click(function(){
					if($(this).attr("checked") == true){
						attributsContactsNbrContacts2.show();
					} else {
						attributsContactsNbrContacts2.hide();
						attributsContactsNbrContacts2.find("input").attr("checked", "");
					}
				});
				// Show on document ready ?
				if(attributsContactsNbrContacts2.find("span.show").length > 0){
					attributsContactsNbrContacts2.show();
				}
			}
			
			// Switch vousEtes box
			var vousEtes = $("#field-33");
			var votreSociete = $("#votreSociete");
			if(vousEtes.length > 0 && votreSociete.length > 0){
				var checkVotreSociete = function(){
					if(vousEtes.val() != 28 && vousEtes.val() != 29 && vousEtes.val() != 40){
						votreSociete.slideUp("normal");
					} else {
						votreSociete.slideDown("normal");
					}
				}
				// Event onchange
				vousEtes.change(function(){
					checkVotreSociete();
				});
				// Event onload
				checkVotreSociete();
			}
			
			// Tabs
			var tabLinks = $(".tabLinkList a");
			if(tabLinks.length > 0){
				tabLinks.click(function(){
					// Switch link class
					tabLinks.removeClass("current");
					$(this).addClass("current");
					// Switch box class
					tabLinks.each(function(){
						var box = $($(this).attr("href"));
						if(box.length > 0){
							box.removeClass("currentBox");
						}
					});
					var box = $($(this).attr("href"));
					if(box.length > 0){
						box.addClass("currentBox");
					}
					return false;
				});
			}
		}
	}
	spotContactEvents();
	
	// COMMON EVENTS
	var commonEvents = function(){
		var confirmLinks = $("a.returnConfirm");
		var confirmMessage = $("#messages_confirmMessage");
		if(confirmMessage.length > 0 && confirmLinks.length > 0){
			confirmLinks.click(function(e){
				if(confirm(confirmMessage.text())){
					return true;
				} else {
					e.stopImmediatePropagation();
					return false;
				}
			});
		}
	}
	commonEvents();
	
	var ajaxARelancer = function(){
		var currentMessage = $("#currentMessage");
		var aRelancer = $("#aRelancer");
		var ajaxLoaderARelancer = $("#ajaxLoaderARelancer");
		if(aRelancer.length > 0 && ajaxLoaderARelancer.length > 0 && currentMessage.length > 0){
			var aRelancerBack = function(content){
				content = trim(content);
				if(content != "ko"){
					aRelancer.attr('checked', content);
				}
				ajaxLoaderARelancer.fadeOut();
			}
			
			aRelancer.click(function(){
				ajaxLoaderARelancer.fadeIn();
				$.ajax({
					type: 		"GET",
					url: 		pageURL+"&out=ajax&action=aRelancerAction&message="+parseInt(currentMessage.text()),
					success: 	aRelancerBack
				});
				return false;
			});
		}
	}
	ajaxARelancer();
	
	var ajaxEvents = function(){
		var actionComResults = $("#actionComResults");
		var currentMessage = $("#currentMessage");
		var ajaxLoader = $("#ajaxLoaderActionCom");
		if(errorMessage.length > 0 && ajaxLoader.length > 0 && currentMessage.length > 0 && actionComResults.length > 0){
			// Common action back
			var actionComBack = function(content){
				content = trim(content);
				if(content != "ko"){
					getActionsComByMessage();
				} else {
					ajaxLoader.fadeOut();
					alert(errorMessage.text());
				}
				actionComForm.unbind();
				actionComForm.bind("submit",actionComFormSubmit);
			}
			
			// Actions add
			var actionComForm = $("#actionComForm");
			if(actionComForm.length > 0){
				var input18 = $("#actionCom18");
				var input19 = $("#actionCom19");
				var input20 = $("#actionCom20");
				var input83 = $("#actionCom83");
				if(input18.length > 0 && input18.length > 0 && input18.length > 0){
					var actionComFormSubmit = function(){
						actionComForm.unbind("submit",actionComFormSubmit);
						actionComForm.submit(function(){return false;});
						ajaxLoader.fadeIn();
						$.ajax({
							type: 		"GET",
							url: 		actionComForm.attr("action")+"&out=ajax&action=addActionCom&message="+parseInt(currentMessage.text())+"&input18="+parseInt(input18.val())+"&input19="+encodeURIComponent(input19.val())+"&input20="+encodeURIComponent(input20.val())+"&input83="+encodeURIComponent(input83.val()),
							success: 	actionComBack
						});
						return false;
					}
					actionComForm.bind("submit",actionComFormSubmit);
				}
			}
			
			// Actions render
			var displayActionsComByMessage = function(content){
				content = trim(content);
				ajaxLoader.fadeOut();
				if(content != "ko"){
					actionComResults.html(content);
					commonEvents();
					deleteActionParse();
				}
			}
			var getActionsComByMessage = function(){
				ajaxLoader.fadeIn();
				$.ajax({
					type: 		"GET",
					url: 		pageURL+"&out=ajax&action=getActionsComByMessage&message="+parseInt(currentMessage.text()),
					success: 	displayActionsComByMessage
				});
			}
			getActionsComByMessage();
			
			// Actions deletion
			var deleteActionParse = function(){
				var deleteActionCom = $(".deleteActionCom");
				if(deleteActionCom.length > 0){
					deleteActionCom.click(function(){
						var href = $(this).is('a') ? $(this).attr("href") : $(this).parent('a').attr("href");
						if (href) {
							ajaxLoader.fadeIn();
							$.ajax({
								type: 		"GET",
								url: 		href,
								success: 	actionComBack
							});
						}
						return false;
					});
				}
			}
			deleteActionParse();
		}
	}
	ajaxEvents();
});

