// Spam arrest
emailInfo='splitgigs.com';
emailInfo=('info' + '@' + emailInfo);
emailAbuse='splitgigs.com';
emailAbuse=('abuse' + '@' + emailAbuse);
emailBugs='splitgigs.com';
emailBugs=('bugs' + '@' + emailBugs);

var splitgigs = {
	utils : {
		searchHeaderOnFocus : function (obj) {
			if (obj.value == "type location") {
				obj.value = "";
				obj.className = "find-gigs-header-focus";
				obj.className = obj.className
			}

		},
		searchHeaderOnBlur : function (obj) {
			if (obj.value == "") {
				obj.value = "type location";
				obj.className = "find-gigs-header-off";
			}
			obj.className = obj.className			
		},
		checkVanityUrl : function (obj) {			
			obj.value = obj.value.replace(/[^a-zA-Z 0-9 _]+/g,""); // Tolgo tutti i caratteri non alfanumerici
			obj.value = obj.value.replace( /\s/g, "" ); // Tolgo tutti gli spazi o tab
		},
		showAdvancedSearch : function () {
			var boxAdvanced = document.getElementById("box-search-advanced");
			var statusAdvanced = document.getElementById("status-advanced");
			if (boxAdvanced.style.display == "none") {
				boxAdvanced.style.display = "block";
				statusAdvanced.value = "open";
			}
			else {
				boxAdvanced.style.display = "none";
				statusAdvanced.value = "closed";
			}
		},
		searchOnFocus : function (obj) {
			obj.className = "withValue";
		},
		searchOnLoad : function (objId) {
			var obj = document.getElementById(objId);
			if (obj.value == "") obj.className = "noValue";
			else obj.className = "withValue";
		},
		searchOnBlur : function (obj) {
			if (obj.value == "") obj.className = "noValue";
			else obj.className = "withValue";			
		},		
		openVideoHome : function (isLogged) {			
			if (isLogged == "false") document.getElementById("homeLearnMore").style.display = "none";
			document.getElementById("home-banner").className = "showVideo";
		},
		closeVideoHome : function () {			
			document.getElementById("homeLearnMore").style.display = "block";
			document.getElementById("home-banner").className = "";
		},
		closeLoginDialog: function() {
			document.getElementById("box-login-register-content").style.display="none"
			document.getElementById("box-login-register-container").style.display="none";
			document.getElementById("errorfeedback").style.display="none";
			document.getElementById("dialogLogin").style.display="none";
			document.getElementById("dialogPassReminder").style.display="none";
			document.getElementById("dialogRegister").style.display="none";
			document.getElementById("dialogRequestSent").style.display="none";
			document.getElementById("dialogEmailConfirmed").style.display="none";
			document.getElementById("dialogActivationLink").style.display="none";			
			
		},
		focusOnInput: function(obj) {
			obj.style.backgroundColor = "#FFC"
		},
		blurOnInput: function(obj) {
			obj.style.backgroundColor = ""
		},
		changeShareSection: function(objId) {
			var shareVideoTutorial = document.getElementById("shareVideoTutorial");
			var shareVideoPromo = document.getElementById("shareVideoPromo");
			
			if (objId == "controls1") {
				shareVideoTutorial.style.display = "block";
				shareVideoPromo.style.display = "none";
			}
			else {
				shareVideoTutorial.style.display = "none";
				shareVideoPromo.style.display = "block";
			}
		},
		posAdvancedSearch: function () {
		var boxAdvancedSearch = document.getElementById('box-search-advanced');
		boxAdvancedSearch.style.paddingLeft = ((868 - boxAdvancedSearch.clientWidth) / 2) - 5 + "px";
		},
		registerDialogCheckObbligatori: function(form) {
			var feedback = document.getElementById("errorfeedback");
			var bandName = document.getElementById("registerDialogBandName");
			var fullname = bandName;
			var email = document.getElementById("registerDialogEmail");
			var username = email;
			var password = document.getElementById("registerDialogPassword");
			var type = document.getElementById("registerDialogType");
			var country = document.getElementById("registerDialogCountry");
			var city = document.getElementById("registerDialogCity");
			var genre = document.getElementById("dialogGenre1");
			var privacy = document.getElementById("chk-terms");
			
			feedback.innerHTML = "";
			
			function showBoxError() {
				feedback.style.display = "block"
				document.getElementById("box-login-register-container").className = document.getElementById("box-login-register-container").className; // Baco Explorer 7
			}
			
			// controllo i campi vuoti
			if (bandName.value == "") {
				showBoxError();
				feedback.innerHTML += "Please enter your Musician or Band Name";
				bandName.focus();
				return false;
			}
			if (email.value == "") {
				showBoxError();				
				feedback.innerHTML += "Please enter Your Current Email Address";
				email.focus();
				return false;
			}
			
			// controllo che la mail sia valida
			var eMail = email.value;
			var re = new RegExp(/^([a-zA-Z0-9_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/);
			var isValido = (eMail.match(re) != null);
			if (!isValido) {
				showBoxError();
				feedback.innerHTML = "Enter a valid email address";
				email.focus();
				return false;
			}
			
			if (password.value == "") {
				showBoxError();
				feedback.innerHTML += "Please enter a password";
				password.focus();
				return false;
			}

			// controllo che la password abbia una lunghezza tra i 6 ed i 30 caratteri
			if (password.value.length < 6 || password.value.length > 30) {
				showBoxError();
				feedback.innerHTML = "Your password needs to be at least 6 characters and no more than 30";
				password.focus();
				return false;
			}
			
			// controllo che abbia inserito la city
			if (city.value == "") {
				showBoxError();
				feedback.innerHTML += "Please enter your City";
				city.focus();
				return false;
			}
			
			// controllo che abbia selezionato la nazione
			if (country.value == "") {
				showBoxError();
				feedback.innerHTML = "Please select your country";
				country.focus();
				return false;
			}
			
			// controllo che abbia selezionato un tipo
			if (type.value == "") {
				showBoxError();
				feedback.innerHTML = "Please select a value for the field \"You are\"";
				type.focus();
				return false;
			}						

			// controllo che abbia selezionato la citta
			if (city.value == "") {
				showBoxError();
				feedback.innerHTML = "Please select your city";
				city.focus();
				return false;
			}
			
			// controllo che abbia selezionato almeno un genere
			if (genre.value == "") {
				showBoxError();
				feedback.innerHTML = "Please select at least one genre";
				genre.focus();
				return false;
			}
						
			if (!privacy.checked) {
				showBoxError();
				feedback.innerHTML = "Please agree with SplitGigs Terms &amp; Conditions.";
				privacy.focus();
				return false;
			}

			busy_start = function(){
				// busy_start 
				document.getElementById("btSignMeUp").style.display = "none";
				document.getElementById("wait-register").style.display = "block";
			}
			busy_stop = function(){
				// busy_stop
				document.getElementById("wait-register").style.display = "none";
				document.getElementById("btSignMeUp").style.display = "block";
			}

			//join_now(document.getElementById("registerDialogBandName").value, email.value, password.value, document.getElementById("registerDialogType").value, document.getElementById("registerDialogCountry").value, document.getElementById("dialogGenre1").value, document.getElementById("dialogGenre2").value, document.getElementById("dialogGenre3").value, busy_start, busy_stop);
                        var formData = $(form).serialize();
                        var onRegistrationSuccess = function(data){
                                busy_stop();
                                if (data == true) {
                                    $('#dialogRegister').hide();
                                    $('#dialogRequestSent-mail').text(eMail);
                                    $('#dialogRequestSent').show();
                                    feedback.style.display = "none";
                                } else  {
                                    try{
                                        for (key in data){
                                            showBoxError();
                                            feedback.innerHTML = data[key];
                                            eval(key+".focus()");
                                            break;
                                        }

                                    } catch (e){}
                                }
                                return false;
                        };
                        busy_start();
                        jQuery.post($('#registration_url').val(), formData, onRegistrationSuccess, "json");

			return false;
		},
		loginDialogCheckObbligatori: function(form) {
			var feedback = document.getElementById("errorfeedback");
			var email = document.getElementById("loginDialogEmail");
			var password = document.getElementById("loginDialogpassword");
			
			feedback.innerHTML = "";
			
			function showBoxError() {
				feedback.style.display = "block"
				document.getElementById("box-login-register-container").className = document.getElementById("box-login-register-container").className; // Baco Explorer 7
			}
			
			// controllo i campi vuoti
			if (email.value == "") {
				showBoxError();				
				feedback.innerHTML += i18n.please_enter_email_address;
				email.focus();
				return false;
			}
			
			// controllo che la mail sia valida
			var eMail = email.value;
			var re = new RegExp(/^([a-zA-Z0-9_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/);
			var isValido = (eMail.match(re) != null);
			if (!isValido) {
				showBoxError();
				feedback.innerHTML = "Enter a valid email address";
				email.focus();
				return false;
			}
			
			if (password.value == "") {
				showBoxError();
				feedback.innerHTML += "Please enter your password";
				password.focus();
				return false;
			}

                        var formData = $(form).serialize();
                        var onLoginSuccess = function(data){
                                if (data) {
                                    self.location.href = form.action;
                                } else  {
                                    showBoxError();
                                    feedback.innerHTML = "Invalid username or password";
                                    email.focus();
                                }
                                return false;
                        };
                        jQuery.post($('#login_url').val(), formData, onLoginSuccess, "json");

			return false;
		},
		passReminderCheckObbligatori: function() {
			var feedback = document.getElementById("errorfeedback");
			var email = document.getElementById("passReminderDialogEmail");
			
			feedback.innerHTML = "";
			
			function showBoxError() {
				feedback.style.display = "block"
				document.getElementById("box-login-register-container").className = document.getElementById("box-login-register-container").className; // Baco Explorer 7
			}
			
			// controllo i campi vuoti
			if (email.value == "") {
				showBoxError();				
				feedback.innerHTML += "Please enter the email address";
				email.focus();
				return false;
			}
			
			// controllo che la mail sia valida
			var eMail = email.value;
			var re = new RegExp(/^([a-zA-Z0-9_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/);
			var isValido = (eMail.match(re) != null);
			if (!isValido) {
				showBoxError();
				feedback.innerHTML = "Enter a valid email address";
				email.focus();
				return false;
			}
			
			account.recuperaPassword(
				'http://splitgigs/inc/account_manager/', 
				email.value, 
				"", 
				function(){
					// busy_start 
					document.getElementById("btPassReminder").style.display = "none";
					document.getElementById("wait-pass-reminder").style.display = "block";
				}, 
				function(){
					// busy_stop
					document.getElementById("wait-pass-reminder").style.display = "none";
					document.getElementById("btPassReminder").style.display = "block";
				}, 
				function(username){
					// callback_ok
					var errorfeedback = document.getElementById("errorfeedback");
					errorfeedback.className = "feedback-ok";
					errorfeedback.innerHTML = "Mail di recupero password inviata con successo.";
					feedback.style.display = "block";
				}, 
				function(message){
					// callback_ko
					if(message.toString() == "false")
						message = "User inesistente";

					var errorfeedback = document.getElementById("errorfeedback");
					errorfeedback.className = "";
					feedback.innerHTML = message;
					feedback.style.display = "block";
				});

			return false;
		},
			resendActivationCheckObbligatori: function() {
			var feedback = document.getElementById("errorfeedback");
			var email = document.getElementById("resendActivationDialogEmail");

			feedback.innerHTML = "";
			
			function showBoxError() {
				feedback.style.display = "block"
				document.getElementById("box-login-register-container").className = document.getElementById("box-login-register-container").className; // Baco Explorer 7
			}
			
			// controllo i campi vuoti
			if (email.value == "") {
				showBoxError();				
				feedback.innerHTML += "Please enter the email address";
				email.focus();
				return false;
			}
			
			// controllo che la mail sia valida
			var eMail = email.value;
			var re = new RegExp(/^([a-zA-Z0-9_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/);
			var isValido = (eMail.match(re) != null);
			if (!isValido) {
				showBoxError();
				feedback.innerHTML = "Enter a valid email address";
				email.focus();
				return false;
			}
			
			return true;
		},
		openSignUp: function() {
			var hHtml = document.getElementById("html").scrollHeight;
			document.getElementById("box-login-register-container").style.display = "block";
			if (hHtml != 0) document.getElementById("box-login-register-container").style.height = hHtml + "px";
			document.getElementById("box-login-register-content").style.display = "block";
			document.getElementById("dialogRegister").style.display = "block";
		},
		openLogin: function() {
			var hHtml = document.getElementById("html").scrollHeight;
			document.getElementById("box-login-register-container").style.display = "block";
			if (hHtml != 0) document.getElementById("box-login-register-container").style.height = hHtml + "px";
			document.getElementById("box-login-register-content").style.display = "block";
			document.getElementById("dialogLogin").style.display = "block";
		},
		openMessage: function(uid, username) {
			if( userInfo.is_authenticated == true ){
				document.getElementById("privateMessage_to_user").value=uid;
				document.getElementById("privateMessage_to_username").innerHTML=username;
	
				var scrollHtml = document.getElementById("html").scrollTop;			
				if (scrollHtml == 0) var scrollHtml = document.body.scrollTop;
				document.getElementById("overlay-message").style.display = "block";
				if (scrollHtml != 0)			
					document.getElementById("overlay-message").style.top = (scrollHtml+40) + "px";
			}
		},
		openFeedback: function() {
			var scrollHtml = document.getElementById("html").scrollTop;			
			if (scrollHtml == 0) var scrollHtml = document.body.scrollTop;
			document.getElementById("overlay-feedback").style.display = "block";
			if (scrollHtml != 0)			
				document.getElementById("overlay-feedback").style.top = (scrollHtml+40) + "px";
		},
		sendMessage: function(form) {
            var formData = $(form).serialize();
            
            document.getElementById("sendPrivateMessage-buttons").style.display = "none";
            document.getElementById("sendPrivateMessage-spinner").style.display = "block";
            
            var onSendMessageSuccess = function(data){
                    if (true==data) {
                    	document.getElementById("sendPrivateMessage-title").innerHTML = "MESSAGE SENT";
                    	document.getElementById("sendPrivateMessage").style.display = "none";
                    	document.getElementById("sendPrivateMessage-feedback").style.display = "block";
                    } else  {
                    	document.getElementById("sendPrivateMessage-title").innerHTML = "ERROR";
                    	document.getElementById("sendPrivateMessage").style.display = "none";
                    	document.getElementById("sendPrivateMessage-feedback").style.display = "block";
                    	document.getElementById("sendPrivateMessage-feedback").className += " error-message";
                    	document.getElementById("sendPrivateMessage-feedback-result").innerHTML = data;
                    }
                    return false;
            };
            jQuery.post($('#send_private_message_url').val(), formData, onSendMessageSuccess, "json");
            
            return false;
		},
		closeMessage: function() {
			document.getElementById("overlay-message").style.display = "none";

            //reset
            document.getElementById("sendPrivateMessage-buttons").style.display = "block";
            document.getElementById("sendPrivateMessage-spinner").style.display = "none";
        	document.getElementById("sendPrivateMessage").style.display = "block";
        	document.getElementById("sendPrivateMessage-feedback").style.display = "none";
        	document.getElementById("privateMessage_to_username").value = "";
        	document.getElementById("privateMessage_message").value = "";
        	document.getElementById("privateMessage_to_user").value = "";
		},
		sendFeedback: function(form) {
            var formData = $(form).serialize();
            
            document.getElementById("sendFeedback-buttons").style.display = "none";
            document.getElementById("sendFeedback-spinner").style.display = "block";
            
            var onSendFeedbackSuccess = function(data){
                    if (true==data) {
                    	document.getElementById("sendFeedback-title").innerHTML = "FEEDBACK SENT";
                    	document.getElementById("sendFeedback").style.display = "none";
                    	document.getElementById("sendFeedback-feedback").style.display = "block";                    	
                    } else  {
                    	document.getElementById("sendFeedback-title").innerHTML = "ERROR";
                    	document.getElementById("sendFeedback").style.display = "none";
                    	document.getElementById("sendFeedback-feedback").style.display = "block";
                    	document.getElementById("sendFeedback-feedback").className += " error-message";
                    	document.getElementById("sendFeedback-feedback-result").innerHTML = data;
                    }
                    return false;
            };
            jQuery.post($('#send_feedback_url').val(), formData, onSendFeedbackSuccess, "json");
            
            return false;
		},
		closeFeedback: function() {
			document.getElementById("overlay-feedback").style.display = "none";
			
            //reset
            document.getElementById("sendFeedback-buttons").style.display = "block";
            document.getElementById("sendFeedback-spinner").style.display = "none";
        	document.getElementById("sendFeedback").style.display = "block";
        	document.getElementById("sendFeedback-feedback").style.display = "none";
        	document.getElementById("feedback_message").value = "";
		},
		openMenuLogged: function(obj) {
			var menuLogged = document.getElementById("window-logged");

			if (obj.getAttribute("isOpen") == "false") {
				menuLogged.style.display = "block";
				obj.setAttribute("isOpen", "true");
				obj.className = "open";
			}

			else {
				menuLogged.style.display = "none";
				obj.setAttribute("isOpen", "false");
				obj.className = "close";
			}
		},
		homeSignupCheckObbligatori: function(form) {
			var feedback = document.getElementById("feedbakHomeError");
			var bandName = document.getElementById("homeBandName");
			var fullname = bandName;
			var email = document.getElementById("homeEmail");
			var username = email;
			var password = document.getElementById("homePassword");
			var privacy = document.getElementById("home-term-check");
			var type = document.getElementById("homeType");
			var country = document.getElementById("homeCountry");
			var genre = document.getElementById("homeGenre1");
			
			feedback.innerHTML = "";
			
			function showBoxError() {
				feedback.style.display = "block"
			}
			
			// controllo i campi vuoti
			if (bandName.value == "") {
				showBoxError();
				feedback.innerHTML += "Please enter your Musician or Band Name";
				bandName.focus();
				return false;
			}
			if (email.value == "") {
				showBoxError();				
				feedback.innerHTML += "Please enter Your Current Email Address";
				email.focus();
				return false;
			}
			
			// controllo che la mail sia valida
			var eMail = email.value;
			var re = new RegExp(/^([a-zA-Z0-9_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/);
			var isValido = (eMail.match(re) != null);
			if (!isValido) {
				showBoxError();
				feedback.innerHTML = "Enter a valid email address";
				email.focus();
				return false;
			}
			
			if (password.value == "") {
				showBoxError();
				feedback.innerHTML += "Please enter a password";
				password.focus();
				return false;
			}

			// controllo che la password abbia una lunghezza tra i 6 ed i 30 caratteri
			if (password.value.length < 6 || password.value.length > 30) {
				showBoxError();
				feedback.innerHTML = "Your password needs to be at least 6 characters and no more than 30";
				password.focus();
				return false;
			}
			
			// controllo che abbia selezionato un tipo
			if (type.value == "") {
				showBoxError();
				feedback.innerHTML = "Please select a value for the field \"You are\"";
				type.focus();
				return false;
			}
			
			// controllo che abbia selezionato la nazione
			if (country.value == "") {
				showBoxError();
				feedback.innerHTML = "Please select your country";
				country.focus();
				return false;
			}
			
			// controllo che abbia selezionato almeno un genere
			if (genre.value == "") {
				showBoxError();
				feedback.innerHTML = "Please select a genre";
				genre.focus();
				return false;
			}
						
			if (!privacy.checked) {
				showBoxError();
				feedback.innerHTML = "Please agree with SplitGigs Terms &amp; Conditions.";
				privacy.focus();
				return false;
			}

			busy_start = function(){
				// busy_start 
				document.getElementById("btHomeSignUp").style.display = "none";
				document.getElementById("wait-register-home").style.display = "block";
			}
			busy_stop = function(){
				// busy_stop
				document.getElementById("wait-register-home").style.display = "none";
				document.getElementById("btHomeSignUp").style.display = "block";
			}
						
                        var formData = $(form).serialize();
                        var onRegistrationSuccess = function(data){
                                busy_stop();
                                if (data == true) {
                                    $('#dialogRequestSent-mail').text(eMail);
                                    $('#dialogRequestSent').show();
                                    $('#box-login-register-content').show();
                                    $('#box-login-register-container').show();
                                    feedback.style.display = "none";
                                    form.reset();
                                } else  {
                                    try{
                                        for (key in data){
                                            showBoxError();
                                            feedback.innerHTML = data[key];
                                            eval(key+".focus()");
                                            break;
                                        }

                                    } catch (e){}
                                }
                                return false;
                        };
                        busy_start();
                        jQuery.post($('#registration_url').val(), formData, onRegistrationSuccess, "json");

			return false;
		}
		
		
	}	
}