accurator/commit

promises added for form page

authorCristina-Iulia Bucur
Tue Mar 22 12:55:37 2016 +0100
committerCristina-Iulia Bucur
Tue Mar 22 12:55:37 2016 +0100
commit34f40a727194e8c4639164dbabfa078bee14b570
treebd62a70558fb34fc441bfcfc182d607db60ae31b
parent3ef3aac662b55d58fd09cd64a06ef22d2771071f
Diff style: patch stat
diff --git a/web/js/about.js b/web/js/about.js
index 68130ba..5f68a7a 100644
--- a/web/js/about.js
+++ b/web/js/about.js
@@ -42,6 +42,6 @@ function initLabels(labels) {
 
 function addButtonEvents() {
 	$("#aboutBtnGoBackHome").click(function() {
-		document.location.href="intro.html";
+		document.location.href = "intro.html";
 	});
 }
diff --git a/web/js/components/utilities.js b/web/js/components/utilities.js
index 67e3e6b..ad31579 100644
--- a/web/js/components/utilities.js
+++ b/web/js/components/utilities.js
@@ -49,7 +49,7 @@ function getParameterByName(name) {
 	// retrieve information from url parameters (often settings)
 	name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
 	var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
-	results = regex.exec(location.search);
+		results = regex.exec(location.search);
 	return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
 }
 
@@ -296,10 +296,12 @@ function localizedPageName(linkList, labels, counter) {
 }
 
 function setLinkLogo(page) {
-	if(page === "profile")
+	if(page === "profile") {
 	   $(".navbar-brand").attr('href', "profile.html");
-	if(page === "intro")
+   }
+	if(page === "intro") {
 		$(".navbar-brand").attr('href', "intro.html");
+	}
 }
 
 function truncate(string, limit) {
@@ -308,8 +310,8 @@ function truncate(string, limit) {
 
 	chars = string.split('');
 	if (chars.length > limit) {
-		for (var i=chars.length - 1; i>-1; --i) {
-			if (i>limit) {
+		for (var i = chars.length - 1; i > -1; --i) {
+			if (i > limit) {
 				chars.length = i;
 			}
 			else if (' ' === chars[i]) {
@@ -330,8 +332,12 @@ function userLoggedIn() {
 	// see if user is logged in (random for unique request)
 	return $.getJSON("get_user?time=" + Math.random())
 	.then(function(user) {
-		if (user.login) return user;
-		if (!user.login) return jQuery.Deferred().reject(user).promise();
+		if (user.login) {
+			return user;
+		}
+		if (!user.login) {
+			return jQuery.Deferred().reject(user).promise();
+		}
 	});
 }
 
@@ -343,8 +349,10 @@ function login(onSuccess, onDismissal) {
 	.then(function(labels) {
 		// add labels and show modal
 		var labels = initModalLabels(labels);
+
 		$("#loginDivLogin").modal();
 		$("#loginInpUsername").focus();
+
 		loginButtonEvents(onSuccess, onDismissal, labels);
 	})
 }
@@ -357,8 +365,11 @@ function initModalLabels(data) {
 	$("body").on('shown.bs.modal', '.modal', function () {
 		$("#loginInpUsername").focus();
 	});
+
 	var labels = {loginTxtWarning:data.loginTxtWarning,
-		 		  loginTxtIncomplete:data.loginTxtIncomplete}
+		 		  loginTxtIncomplete:data.loginTxtIncomplete
+	};
+
 	return labels;
 }
 
@@ -369,10 +380,14 @@ function loginButtonEvents(onSuccess, onDismissal, labels) {
 	});
 	// login on pressing enter
 	$("#loginInpPassword").keypress(function(event) {
-		if (event.which == 13) processLogin(onSuccess, labels);
+		if (event.which == 13) {
+			processLogin(onSuccess, labels);
+		}
 	});
 	$("#loginInpUsername").keypress(function(event) {
-		if (event.which == 13) processLogin(onSuccess, labels);
+		if (event.which == 13) {
+			processLogin(onSuccess, labels);
+		}
 	});
 	// run onDismissal if modal is dismissed
 	$("#loginDivLogin").on('hidden.bs.modal', function () {
@@ -406,6 +421,7 @@ function processLogin(onSuccess, labels) {
 				.then(function() {
 					$("#loginDivLogin").off('hidden.bs.modal');
 					$("#loginDivLogin").modal('hide');
+
 					return userLoggedIn();
 				})
 				.then(function(userData) {
@@ -425,7 +441,7 @@ function loginServer(user, password) {
 function logout() {
 	$.ajax({url: "user/logout", type: "POST"})
 	.then(function() {
-		document.location.href="intro.html";
+		document.location.href = "intro.html";
 	});
 }
 
@@ -541,8 +557,9 @@ function registerServer(name, user, password, settings, labels) {
 		// login user upon succesful register
 		firstLogin(user, password, settings);
 	}, function(response, textStatus, errorThrown) {
-		if(errorThrown == "Not Found")
+		if(errorThrown == "Not Found") {
 			setRegisterFailureText("Server did not respond.");
+		}
 		if(response.responseText.indexOf("User already exists") > -1) {
 			setRegisterFailureText(labels.registerTxtUserTaken);
 		} else {
@@ -564,7 +581,7 @@ function firstLogin(user, password, settings) {
 		save_user_info(settings)
 		.then(function() {
 			// page that will be shown next
-			document.location.href="domain.html";
+			document.location.href = "domain.html";
 		 });
 	});
 }
@@ -591,5 +608,6 @@ function getUserUriBase() {
 function generateIdFromUri(uri) {
 	// create a html id from a uri (jquery doesn't play well with full uri's)
 	var pathArray = uri.split(/[/#]/);
+
 	return pathArray[pathArray.length - 1];
 }
diff --git a/web/js/domain.js b/web/js/domain.js
index b3d18b8..ba75a0a 100644
--- a/web/js/domain.js
+++ b/web/js/domain.js
@@ -1,5 +1,6 @@
 /*******************************************************************************
 Accurator Domain
+
 This code loads domain options into the page, where the options depend on the
 domains loaded in the triple store.
 *******************************************************************************/
@@ -16,7 +17,10 @@ function domainInit() {
 		drawPage(userData);
 	}, function() {
 		// user is not logged in, show modal
-		var onDismissal = function() {document.location.href="intro.html"};
+		var onDismissal = function() {
+			document.location.href = "intro.html";
+		};
+
 		login(drawPage, onDismissal);
 	});
 
@@ -46,8 +50,8 @@ function populateDomains(locale, domainLabels) {
 	var row;
 
 	// get domain settings for all the domains
-	for(var i=0; i<domainLabels.length; i++) {
-		if(!(i%2===0)) {
+	for(var i = 0; i < domainLabels.length; i++) {
+		if(!(i%2 === 0)) {
 			row = parseInt((i/2) + 0.5);
 			// Add a new row for every two domains
 			$(".domainDiv").append(
@@ -67,6 +71,7 @@ function populateDomains(locale, domainLabels) {
 
 function domainHtml(domainData, row, locale) {
 	var domain = domainData.domain;
+
 	getLabels(locale, domainData.ui + "domain")
 	.then(function(labels) {
 		$("#domain" + row).append(
@@ -77,8 +82,10 @@ function domainHtml(domainData, row, locale) {
 				$.el.img({'class':'domainImg',
 						  'id':'domainImg' + domain,
 						  'src':domainData.image})));
+
 		if(domainData.image_brightness === "dark")
 			$("#domainTxt" + domainData.domain).css('color', '#fff');
+
 		addDomainEvent(domain);
 	});
 }
@@ -87,13 +94,13 @@ function addDomainEvent(domain) {
 	$("#domainImg" + domain).click(function() {
 		setDomain(domain)
 		.then(function() {
-			document.location.href="expertise.html"
+			document.location.href = "expertise.html";
 		});
 	});
 	$("#domainTxt" + domain).click(function() {
 		setDomain(domain)
 		.then(function() {
-			document.location.href="expertise.html"
+			document.location.href = "expertise.html";
 		});
 	});
 }
diff --git a/web/js/end.js b/web/js/end.js
index 9a4c7d6..2dd2e80 100644
--- a/web/js/end.js
+++ b/web/js/end.js
@@ -1,5 +1,6 @@
 /*******************************************************************************
 Accurator End
+
 Code for showing the last page, adapts to the domain and locale setting.
 *******************************************************************************/
 var locale, domain, experiment, ui, domainSettings;
@@ -42,14 +43,15 @@ function setBackground(backgroundUrl, imageBrightness) {
 function populateUI() {
 	// Retrieve labels from server according to locale and ui
 	$.getJSON("ui_elements", {locale:locale, ui:ui, type:"labels"})
-		.done(function(labels){
-			  addButtonEvents();
-			  initLabels(labels);});
+	.done(function(labels){
+		addButtonEvents();
+		initLabels(labels);
+	});
 }
 
 function addButtonEvents() {
 	$("#endBtnContinue").click(function() {
-		window.location.href="http://annotate.accurator.nl";
+		window.location.href = "http://annotate.accurator.nl";
 	});
 }
 
diff --git a/web/js/expertise.js b/web/js/expertise.js
index b81ac53..fcd21a9 100644
--- a/web/js/expertise.js
+++ b/web/js/expertise.js
@@ -53,14 +53,18 @@ function initLabels(data) {
 		sldALot: data.expertiseSldALot,
 		sldNothing: data.expertiseSldNothing,
 		txtChangeAll: data.expertiseTxtChangeAll
-	}
+	};
 
 	return labels;
 }
 
 function registerEvents(topics) {
-	$("#expertiseBtnSubmit").click(function() {processExpertiseValues(topics);});
-	$("#expertiseBtnSkip").click(function() {document.location.href="results.html"});
+	$("#expertiseBtnSubmit").click(function() {
+		processExpertiseValues(topics);
+	});
+	$("#expertiseBtnSkip").click(function() {
+		document.location.href = "results.html";
+	});
 }
 
 function initExpertiseTopics(domainData, locale, labels) {
@@ -78,7 +82,7 @@ function initExpertiseTopics(domainData, locale, labels) {
 
 		addMasterSlider(sliderIds, labels);
 
-		for(var i=0; i<halfTheTopics; i++) {
+		for(var i = 0; i < halfTheTopics; i++) {
 			$("#expertiseDivExpertiseLeft").append(
 				$.el.div({'class':'row'},
 					$.el.div({'class':'col-md-10 col-md-offset-1'},
@@ -94,7 +98,7 @@ function initExpertiseTopics(domainData, locale, labels) {
 			initSlider(topics[i].id);
 			sliderIds[i] = topics[i].id;
 		}
-		for(var i=halfTheTopics; i<topics.length; i++) {
+		for(var i = halfTheTopics; i < topics.length; i++) {
 			$("#expertiseDivExpertiseRight").append(
 				$.el.div({'class':'row'},
 					$.el.div({'class':'col-md-10 col-md-offset-1'},
@@ -117,15 +121,16 @@ function initExpertiseTopics(domainData, locale, labels) {
 }
 
 function generateIds(topics) {
-	for(var i=0; i<topics.length; i++) {
+	for(var i = 0; i < topics.length; i++) {
 		topics[i].id = generateIdFromUri(topics[i].uri);
 	}
+
 	return topics;
 }
 
 function expertiseSlider(id) {
 	return $.el.input({'id':id,
-						'data-slider-id':'sld'+id,
+						'data-slider-id':'sld' + id,
 						'type':'text',
 						'data-slider-min':'1',
 						'data-slider-max':'5',
@@ -134,7 +139,7 @@ function expertiseSlider(id) {
 }
 
 function initSlider(id) {
-	$("#"+id).slider();
+	$("#" + id).slider();
 }
 
 function processExpertiseValues(topics) {
@@ -142,8 +147,8 @@ function processExpertiseValues(topics) {
 	userExpertise.user = user;
 	userExpertise.expertise = {};
 
-	for (var i=0; i<topics.length; i++) {
-		var value = $("#"+topics[i].id).val();
+	for (var i = 0; i < topics.length; i++) {
+		var value = $("#" + topics[i].id).val();
 		var scaledValue = (value - 1) / 4;
 		var roundedValue = scaledValue.toFixed(2);
 		userExpertise.expertise[topics[i].uri] = roundedValue;
@@ -155,15 +160,17 @@ function processExpertiseValues(topics) {
 			data: JSON.stringify(userExpertise),
 	})
 	.then(function() {
-		document.location.href="results.html";
+		document.location.href = "results.html";
 	});
 }
 
 function printArray(labelArray) {
 	var arrayString = "";
-	for(var i=0; i<labelArray.length; i++) {
+
+	for(var i = 0; i < labelArray.length; i++) {
 		arrayString += " " + labelArray[i];
 	}
+
 	return arrayString;
 }
 
@@ -171,7 +178,8 @@ function setSliderValues() {
 	$.getJSON("expertise_values")
 	.then(function(expertValues){
 		var uris = Object.keys(expertValues);
-		for(var i=0; i<uris.length; i++){
+
+		for(var i = 0; i < uris.length; i++){
 			// Generate id based on uri
 			var uri = uris[i];
 			var id = generateIdFromUri(uri);
@@ -204,7 +212,7 @@ function addMasterSlider(sliderIds, labels) {
 
 	//Change all values on using master slider
 	$("#master").on("slide", function(slideEvt) {
-		for(var i=0; i<sliderIds.length; i++) {
+		for(var i = 0; i < sliderIds.length; i++) {
 			$("#" + sliderIds[i]).slider('setValue', slideEvt.value);
 		}
 	});
diff --git a/web/js/form.js b/web/js/form.js
index 8110240..e056015 100644
--- a/web/js/form.js
+++ b/web/js/form.js
@@ -1,253 +1,220 @@
 /*******************************************************************************
 Accurator Form
+
 Code for rendering fields used for elliciting information about user.
 *******************************************************************************/
-var locale, domain, experiment, ui;
-var countries = [];
-var languages = [];
-var formOptsEducation,  formOptsInternet;
-var info = {};
-var twitterFieldAdded = false;
-var tagsiteFieldAdded = false;
-var socialFieldAdded = false;
-var formLblTwitterId, formLblTagSiteOpen, formLblSocialSiteOpen;
-var formTxtDisclaimer, formHdrDisclaimer;
+"use strict";
 
+// Initialize page
 function formInit() {
-	locale = getLocale();
-	domain = getDomain();
-	experiment = getExperiment();
+	var locale = getLocale();
+	var domain = getDomain();
+
 	populateFlags(locale);
 
-	// Make sure user is logged in
-	onLoggedIn = function(loginData){
+	userLoggedIn()
+	.then(function(userData){
+		//user is logged in, draw page
+		drawPage(userData);
+	}, function() {
+		// user is not logged in, show modal
+		var onDismissal = function() {
+			document.location.href = "intro.html";
+		};
+
+		login(drawPage, onDismissal);
+	});
+
+	function drawPage(userData){
+		var user = userData.user;
+		var userName = getUserName(user);
+
+		var ui, labels;
+		var countries = [];
+		var languages = [];
+		var info = {};
+
 		setLinkLogo("profile");
+		populateNavbar(userName, [{link:"profile.html",	name:"Profile"}], locale);
 
-		//Get domain settings before populating ui
-		onDomain = function(domainData) {
+		domainSettings(domain)
+		.then(function (domainData) {
 			ui = domainData.ui + "form";
-			populateUI();
-			var userName = getUserName(loginData.user);
-			populateNavbar(userName, [{link:"profile.html", name:"Profile"}]);
-		};
-		domainSettings = domainSettings(domain, onDomain);
-	};
-	onDismissal = function(){document.location.href="intro.html"};
-	logUserIn(onLoggedIn, onDismissal);
-}
 
-function nextPage() {
-	// Determine which page will be shown next
-	if(experiment === "true") {
-		return function(){document.location.href="expertise.html"};
-	} else {
-		return function(){document.location.href="domain.html"};
+			return getLabels(locale, ui);
+		})
+		.then(function(labelData) {
+			labels = initLabels(locale, ui, countries, languages, labelData);
+			addButtonEvents(info, labels, countries, languages);
+			addFormEvents(labels);
+			alertMessage(labels.formHdrDisclaimer, labels.formTxtDisclaimer, 'info');
+		});
 	}
 }
 
-function populateUI() {
-	$.getJSON("ui_elements", {locale:locale, ui:ui, type:"labels"})
-	.done(function(data){
-		addButtonEvents();
-		initLabels(data);
-		addFormEvents();
-		alertMessage(formHdrDisclaimer, formTxtDisclaimer, 'info');
-	});
-}
+function initLabels(locale, ui, countries, languages, labelData) {
+	document.title = labelData.formPageTitle;
 
-function addButtonEvents() {
-	$("#formBtnAdd").click(function() {
-		processFormFields();
-	});
-	$("#formBtnSkip").click(function() {
-		// Get function for next page and execute
-		nextPage()();
-	});
-}
+	var labels = {
+		twitterFieldAdded: false,
+		tagsiteFieldAdded: false,
+		socialFieldAdded: false,
+		formLblTwitterId: labelData.formLblTwitterId,
+		formLblTagSiteOpen: labelData.formLblTagSiteOpen,
+		formLblSocialSiteOpen: labelData.formLblSocialSiteOpen,
+		formOptsEducation: labelData.formOptsEducation,
+		formOptsInternet: labelData.formOptsInternet,
+		formTxtDisclaimer: labelData.formTxtDisclaimer,
+		formHdrDisclaimer: labelData.formHdrDisclaimer
+	};
 
-function initLabels(labels) {
-	document.title = labels.formPageTitle;
-	$("#formHdrInternetUsage").append(labels.formHdrInternetUsage);
-	$("#formHdrPersonalInfo").append(labels.formHdrPersonalInfo);
-	formLblTwitterId = labels.formLblTwitterId;
-	formLblTagSiteOpen = labels.formLblTagSiteOpen;
-	formLblSocialSiteOpen = labels.formLblSocialSiteOpen;
-	$("#formHdrSlogan").prepend(labels.formHdrSlogan);
-	$("#formHdrSubSlogan").append(labels.formHdrSubSlogan);
-	initFormQuestions(labels);
-	$("#formBtnAdd").append(labels.formBtnAdd);
-	$("#formBtnSkip").append(labels.formBtnSkip);
-	initRadioButtons(labels);
-	initCheckboxes(labels);
-	initCountriesSelector();
-	initLanguagesSelector();
-	formOptsEducation = labels.formOptsEducation;
-	initEducationSelector();
-	formOptsInternet = labels.formOptsInternet;
-	initInternetSelector(labels.formOptsInternet);
-	formTxtDisclaimer = labels.formTxtDisclaimer;
-	formHdrDisclaimer = labels.formHdrDisclaimer;
-}
+	$("#formHdrInternetUsage").append(labelData.formHdrInternetUsage);
+	$("#formHdrPersonalInfo").append(labelData.formHdrPersonalInfo);
+	$("#formHdrSlogan").prepend(labelData.formHdrSlogan);
+	$("#formHdrSubSlogan").append(labelData.formHdrSubSlogan);
+	initFormQuestions(labelData);
+	$("#formBtnAdd").append(labelData.formBtnAdd);
+	$("#formBtnSkip").append(labelData.formBtnSkip);
+	initRadioButtons(labelData);
+	initCheckboxes(labelData);
+	initCountriesSelector(locale, ui, countries);
+	initLanguagesSelector(locale, ui, languages);
+	initEducationSelector(labelData);
+	initInternetSelector(labelData);
 
-function initFormQuestions(data) {
-	$("#formLblBirthDate").append(data.formLblBirthDate);
-	$("#formLblGender").append(data.formLblGender);
-	$("#formLblCountry").append(data.formLblCountry);
-	$("#formLblCommunity").append(data.formLblCommunity);
-	$("#formLblLanguage").append(data.formLblLanguage);
-	$("#formLblEducation").append(data.formLblEducation);
-	$("#formLblMail").append(data.formLblMail);
-	$("#formLblEmailCheck").append(data.formLblEmailCheck);
-	$("#formLblSocialNetwork").append(data.formLblSocialNetwork);
-	$("#formLblInternetUsage").append(data.formLblInternetUsage);
-	$("#formLblMuseumVisits").append(data.formLblMuseumVisits);
-	$("#formLblTaggingExperience").append(data.formLblTaggingExperience);
-	$("#formLblTagSite").append(data.formLblTagSite);
+	return labels;
 }
 
-function initRadioButtons(data) {
-	$("#formRbtnMale").after(data.formRbtnMale);
-	$("#formRbtnFemale").after(data.formRbtnFemale);
-	$("#formRbtnUrban").after(data.formRbtnUrban);
-	$("#formRbtnSubUrban").after(data.formRbtnSubUrban);
-	$("#formRbtnRural").after(data.formRbtnRural);
-	$("#formRbtnNone").after(data.formRbtnNone);
-	$("#formRbtnNovice").after(data.formRbtnNovice);
-	$("#formRbtnIntermediate").after(data.formRbtnIntermediate);
-	$("#formRbtnExpert").after(data.formRbtnExpert);
+function initFormQuestions(labelData) {
+	$("#formLblBirthDate").append(labelData.formLblBirthDate);
+	$("#formLblGender").append(labelData.formLblGender);
+	$("#formLblCountry").append(labelData.formLblCountry);
+	$("#formLblCommunity").append(labelData.formLblCommunity);
+	$("#formLblLanguage").append(labelData.formLblLanguage);
+	$("#formLblEducation").append(labelData.formLblEducation);
+	$("#formLblMail").append(labelData.formLblMail);
+	$("#formLblEmailCheck").append(labelData.formLblEmailCheck);
+	$("#formLblSocialNetwork").append(labelData.formLblSocialNetwork);
+	$("#formLblInternetUsage").append(labelData.formLblInternetUsage);
+	$("#formLblMuseumVisits").append(labelData.formLblMuseumVisits);
+	$("#formLblTaggingExperience").append(labelData.formLblTaggingExperience);
+	$("#formLblTagSite").append(labelData.formLblTagSite);
 }
 
-function initCheckboxes(data) {
-	$("#formChkFacebook").after(data.formChkFacebook);
-	$("#formChkLinkedIn").after(data.formChkLinkedIn);
-	$("#formChkTwitter").after(data.formChkTwitter);
-	$("#formChkOther").after(data.formChkOther);
-	$("#formChkNone").after(data.formChkNone);
-	$("#formChkTagFlickr").after(data.formChkTagFlickr);
-	$("#formChkTagDelicious").after(data.formChkTagDelicious);
-	$("#formChkTagFacebook").after(data.formChkTagFacebook);
-	$("#formChkTagOther").after(data.formChkTagOther);
-	$("#formChkTagNone").after(data.formChkTagNone);
+function initRadioButtons(labelData) {
+	$("#formRbtnMale").after(labelData.formRbtnMale);
+	$("#formRbtnFemale").after(labelData.formRbtnFemale);
+	$("#formRbtnUrban").after(labelData.formRbtnUrban);
+	$("#formRbtnSubUrban").after(labelData.formRbtnSubUrban);
+	$("#formRbtnRural").after(labelData.formRbtnRural);
+	$("#formRbtnNone").after(labelData.formRbtnNone);
+	$("#formRbtnNovice").after(labelData.formRbtnNovice);
+	$("#formRbtnIntermediate").after(labelData.formRbtnIntermediate);
+	$("#formRbtnExpert").after(labelData.formRbtnExpert);
 }
 
-function addFormEvents() {
-	$("#formChkOther").click(function() {
-		if(!socialFieldAdded) {
-			$("#formDivSocialNetwork").after(
-				$.el.div({'class':'form-group'},
-						$.el.label({'for':'addSocialSite',
-									'id':'frmSocialOpen',
-									'class':'col-sm-5 control-label'},
-									formLblSocialSiteOpen),
-						$.el.div({'class':'col-sm-5'},
-								 $.el.input({'type':'text',
-									 		 'id':'addSocialSite',
-									 		 'class':'form-control'}))));
-			socialFieldAdded = true;
-		}
-	});
-	$("#formChkTwitter").click(function() {
-		if(!twitterFieldAdded) {
-			$("#formDivSocialNetwork").after(
-				$.el.div({'class':'form-group'},
-						$.el.label({'for':'addTwitterId',
-									'id':'formLblTwitterId',
-									'class':'col-sm-5 control-label'},
-									formLblTwitterId),
-						$.el.div({'class':'col-sm-5'},
-								 $.el.input({'type':'text',
-									 		 'id':'addTwitterId',
-									 		 'class':'form-control'}))));
-			twitterFieldAdded = true;
-		}
-	});
-	$("#formChkTagOther").click(function() {
-		if(!tagsiteFieldAdded) {
-			$("#formDivTaggingSite").after(
-				$.el.div({'class':'form-group'},
-					$.el.label({'for':'addTagSite',
-							    'id':'formLblTagSite',
-								'class':'col-sm-5 control-label'},
-								formLblTagSiteOpen),
-					$.el.div({'class':'col-sm-5'},
-							 $.el.input({'type':'text',
-										 'id':'addTagSite',
-										 'class':'form-control'}))));
-			tagsiteFieldAdded = true;
-		}
-	});
+function initCheckboxes(labelData) {
+	$("#formChkFacebook").after(labelData.formChkFacebook);
+	$("#formChkLinkedIn").after(labelData.formChkLinkedIn);
+	$("#formChkTwitter").after(labelData.formChkTwitter);
+	$("#formChkOther").after(labelData.formChkOther);
+	$("#formChkNone").after(labelData.formChkNone);
+	$("#formChkTagFlickr").after(labelData.formChkTagFlickr);
+	$("#formChkTagDelicious").after(labelData.formChkTagDelicious);
+	$("#formChkTagFacebook").after(labelData.formChkTagFacebook);
+	$("#formChkTagOther").after(labelData.formChkTagOther);
+	$("#formChkTagNone").after(labelData.formChkTagNone);
 }
 
-function initCountriesSelector() {
+function initCountriesSelector(locale, ui, countries) {
 	$.getJSON("ui_elements", {locale:locale, ui:ui, type:"countries"})
-	.done(function(data){
+	.then(function(data) {
 		for (var key in data) {
-			countries[key] = {"name":data[key].name, "country_code":data[key].country_code};
+			countries[key] = {"name": data[key].name, "country_code": data[key].country_code};
 		}
-		countries.sort(function(a,b) { return a.name.localeCompare(b.name) });
+
+		countries.sort(function(a, b) {
+			return a.name.localeCompare(b.name)
+		});
 
 		$("#formSltCountry").append($.el.option(""));
-		for (var i=0; i<countries.length; i++) {
+
+		for (var i = 0; i < countries.length; i++) {
 			$("#formSltCountry").append($.el.option(countries[i].name));
 		}
-	})
-	.fail(function(data, textStatus){
-		$("#formSltLanguage").append($.el.option("No countries found on server"));
+	}, function(){
+		$("#formSltCountry").append($.el.option("No countries found on server"));
 	});
 }
 
-function initLanguagesSelector() {
+function initLanguagesSelector(locale, ui, languages) {
 	$.getJSON("ui_elements", {locale:locale, ui:ui, type:"languages"})
-	.done(function(data){
+	.then(function(data) {
 		for (var key in data) {
 			languages[key] = {"iso_code":data[key].iso_code, "name":data[key].name};
 		}
-		languages.sort(function(a,b) { return a.name.localeCompare(b.name) });
+
+		languages.sort(function(a,b) {
+			return a.name.localeCompare(b.name)
+		});
 
 		$("#formSltLanguage").append($.el.option(""));
-		for (var i=0; i<languages.length; i++) {
+
+		for (var i = 0; i < languages.length; i++) {
 			$("#formSltLanguage").append($.el.option(languages[i].name));
 		}
-	})
-	.fail(function(data, textStatus){
+	}, function(){
 		$("#formSltLanguage").append($.el.option("No languages found on server"));
 	});
 }
 
-function initEducationSelector() {
+function initEducationSelector(labels) {
 	$("#formSltEducation").append($.el.option(""));
-	$("#formSltEducation").append($.el.option(formOptsEducation.formOptPrimarySchool.label));
-	$("#formSltEducation").append($.el.option(formOptsEducation.formOptHighSchool.label));
-	$("#formSltEducation").append($.el.option(formOptsEducation.formOptCollege.label));
-	$("#formSltEducation").append($.el.option(formOptsEducation.formOptBachelor.label));
-	$("#formSltEducation").append($.el.option(formOptsEducation.formOptMaster.label));
-	$("#formSltEducation").append($.el.option(formOptsEducation.formOptDoctorate.label));
-	$("#formSltEducation").append($.el.option(formOptsEducation.formOptUnkown.label));
+	$("#formSltEducation").append($.el.option(labels.formOptsEducation.formOptPrimarySchool.label));
+	$("#formSltEducation").append($.el.option(labels.formOptsEducation.formOptHighSchool.label));
+	$("#formSltEducation").append($.el.option(labels.formOptsEducation.formOptCollege.label));
+	$("#formSltEducation").append($.el.option(labels.formOptsEducation.formOptBachelor.label));
+	$("#formSltEducation").append($.el.option(labels.formOptsEducation.formOptMaster.label));
+	$("#formSltEducation").append($.el.option(labels.formOptsEducation.formOptDoctorate.label));
+	$("#formSltEducation").append($.el.option(labels.formOptsEducation.formOptUnkown.label));
 }
 
-function initInternetSelector(optionList) {
+function initInternetSelector(labels) {
 	$("#formSltInternet").append($.el.option(""));
-	$("#formSltInternet").append($.el.option(formOptsInternet.formOptInternetAlways.label));
-	$("#formSltInternet").append($.el.option(formOptsInternet.formOptInternetOnceADay.label));
-	$("#formSltInternet").append($.el.option(formOptsInternet.formOptInternet3to5.label));
-	$("#formSltInternet").append($.el.option(formOptsInternet.formOptInternet1to2.label));
-	$("#formSltInternet").append($.el.option(formOptsInternet.formOptInternetLessThan1.label));
+	$("#formSltInternet").append($.el.option(labels.formOptsInternet.formOptInternetAlways.label));
+	$("#formSltInternet").append($.el.option(labels.formOptsInternet.formOptInternetOnceADay.label));
+	$("#formSltInternet").append($.el.option(labels.formOptsInternet.formOptInternet3to5.label));
+	$("#formSltInternet").append($.el.option(labels.formOptsInternet.formOptInternet1to2.label));
+	$("#formSltInternet").append($.el.option(labels.formOptsInternet.formOptInternetLessThan1.label));
+}
+
+function addButtonEvents(info, labels, countries, languages) {
+	$("#formBtnAdd").click(function() {
+		processFormFields(info, labels, countries, languages);
+	});
+	$("#formBtnSkip").click(function() {
+		document.location.href = "domain.html";
+	});
 }
 
-function processFormFields() {
-	getInput();
-	var onSuccess = nextPage();
+function processFormFields(info, labels, countries, languages) {
+	getInput(info, labels, countries, languages);
+
+	var onSuccess = function () {
+		document.location.href = "domain.html";
+	};
+
 	save_user_info(info, onSuccess);
 }
 
-function getInput() {
-	getInputTextFields();
-	getInputRadioButtons();
-	getInputCheckboxes();
-	getInputDropdownMenus();
+function getInput(info, labels, countries, languages) {
+	getInputTextFields(info);
+	getInputRadioButtons(info);
+	getInputCheckboxes(info);
+	getInputDropdownMenus(info, labels, countries, languages);
 }
 
-function getInputTextFields() {
+function getInputTextFields(info) {
 	if (!($("#formInpAddAge").val() === ""))
 		info.age = $("#formInpAddAge").val();
 	if (!($("#formInpAddMail").val() === ""))
@@ -256,7 +223,7 @@ function getInputTextFields() {
 		info.museum_visits = $("#formInpAddMuseumVisits").val();
 }
 
-function getInputRadioButtons() {
+function getInputRadioButtons(info) {
 	if(!($("input[name='formRbtnsGender']:checked").val() === undefined))
 		info.gender = $("input[name='formRbtnsGender']:checked").val();
 	if(!($("input[name='communityRadio']:checked").val() === undefined))
@@ -265,13 +232,13 @@ function getInputRadioButtons() {
 		info.tagging_experience_level = $("input[name='formRbtnsTaggingExperience']:checked").val();
 }
 
-function getInputCheckboxes() {
-	getInputSocialNetwork();
-	getInputTaggingSite();
-	getInputEmailCheck();
+function getInputCheckboxes(info) {
+	getInputSocialNetwork(info);
+	getInputTaggingSite(info);
+	getInputEmailCheck(info);
 }
 
-function getInputSocialNetwork() {
+function getInputSocialNetwork(info) {
 	if($("#formChkNone").is(":checked")) {
 		info.facebook = false;
 		info.linked_in = false;
@@ -300,7 +267,7 @@ function getInputSocialNetwork() {
 	}
 }
 
-function getInputTaggingSite() {
+function getInputTaggingSite(info) {
 	if($("#formChkTagNone").is(":checked")) {
 		info.flickr = false;
 		info.delicious = false;
@@ -325,7 +292,7 @@ function getInputTaggingSite() {
 	}
 }
 
-function getInputEmailCheck() {
+function getInputEmailCheck(info) {
 	if($("#formChkEmail").is(":checked")) {
 		info.accurator_email = true;
 	} else {
@@ -333,28 +300,28 @@ function getInputEmailCheck() {
 	}
 }
 
-function getInputDropdownMenus() {
+function getInputDropdownMenus(info, labels, countries, languages) {
 	if (!($("#formSltCountry").val() === ""))
-		info.country = getCountryId($("#formSltCountry").val());
+		info.country = getCountryId(countries, $("#formSltCountry").val());
 	if (!($("#formSltLanguage").val() === ""))
-		info.language = getLanguageCode($("#formSltLanguage").val());
+		info.language = getLanguageCode(languages, $("#formSltLanguage").val());
 	if (!($("#formSltEducation").val() === ""))
-		info.education = getOptionId(formOptsEducation, $("#formSltEducation").val());
+		info.education = getOptionId(labels.formOptsEducation, $("#formSltEducation").val());
 	if (!($("#formSltInternet").val() === ""))
-		info.internet_use = getOptionId(formOptsInternet, $("#formSltInternet").val());
+		info.internet_use = getOptionId(labels.formOptsInternet, $("#formSltInternet").val());
 }
 
-function getCountryId(name) {
+function getCountryId(countries, name) {
 	// Find the geonames id corresponding to the selected name
-	for(var i=0; i<countries.length; i++) {
+	for(var i = 0; i < countries.length; i++) {
 		if (countries[i].name === name)
 			return countries[i].country_code;
 	}
 }
 
-function getLanguageCode(name) {
+function getLanguageCode(languages, name) {
 	// Find the iso code corresponding to the selected name
-	for(var i=0; i<languages.length; i++) {
+	for(var i = 0; i < languages.length; i++) {
 		if (languages[i].name === name)
 			return languages[i].iso_code;
 	}
@@ -367,3 +334,53 @@ function getOptionId(optionList, name) {
 			return optionList[key].id;
 	}
 }
+
+function addFormEvents(labels) {
+	$("#formChkOther").click(function() {
+		if(!labels.socialFieldAdded) {
+			$("#formDivSocialNetwork").after(
+				$.el.div({'class':'form-group'},
+						$.el.label({'for':'addSocialSite',
+									'id':'frmSocialOpen',
+									'class':'col-sm-5 control-label'},
+									labels.formLblSocialSiteOpen),
+						$.el.div({'class':'col-sm-5'},
+								 $.el.input({'type':'text',
+									 		 'id':'addSocialSite',
+									 		 'class':'form-control'}))));
+			labels.socialFieldAdded = true;
+		}
+	});
+
+	$("#formChkTwitter").click(function() {
+		if(!labels.twitterFieldAdded) {
+			$("#formDivSocialNetwork").after(
+				$.el.div({'class':'form-group'},
+						$.el.label({'for':'addTwitterId',
+									'id':'formLblTwitterId',
+									'class':'col-sm-5 control-label'},
+									labels.formLblTwitterId),
+						$.el.div({'class':'col-sm-5'},
+								 $.el.input({'type':'text',
+									 		 'id':'addTwitterId',
+									 		 'class':'form-control'}))));
+			labels.twitterFieldAdded = true;
+		}
+	});
+
+	$("#formChkTagOther").click(function() {
+		if(!labels.tagsiteFieldAdded) {
+			$("#formDivTaggingSite").after(
+				$.el.div({'class':'form-group'},
+					$.el.label({'for':'addTagSite',
+							    'id':'formLblTagSite',
+								'class':'col-sm-5 control-label'},
+								labels.formLblTagSiteOpen),
+					$.el.div({'class':'col-sm-5'},
+							 $.el.input({'type':'text',
+										 'id':'addTagSite',
+										 'class':'form-control'}))));
+			labels.tagsiteFieldAdded = true;
+		}
+	});
+}
diff --git a/web/js/intro.js b/web/js/intro.js
index 60ff28f..e15fba9 100644
--- a/web/js/intro.js
+++ b/web/js/intro.js
@@ -1,5 +1,6 @@
 /*******************************************************************************
 Accurator Intro
+
 Code for showing the welcome page, adapts to the domain and locale setting.
 *******************************************************************************/
 "use strict";
@@ -14,7 +15,7 @@ function introInit() {
 	userLoggedIn()
 	.then(function() {
 		// go to profile page if logged in
-		document.location.href="profile.html";
+		document.location.href = "profile.html";
 	}, function() {
 		// get domain settings
 		return domainSettings(domain);
@@ -45,16 +46,18 @@ function addButtonEvents(settings) {
 		var onDismissal = function() {
 			$("#registerDivRegister").modal('hide');
 		};
+		
 		registerModal(onDismissal, settings);
 	});
 	$("#introBtnLogin").click(function() {
 		// show login modal and on success go to profile
 		var onSuccess = function() {
-			document.location.href="profile.html";
+			document.location.href = "profile.html";
 		};
 		var onDismissal = function() {
 			$("#loginDivLogin").modal('hide');
 		};
+
 		login(onSuccess, onDismissal);
 	});
 }
diff --git a/web/js/item.js b/web/js/item.js
index b842b74..6041646 100644
--- a/web/js/item.js
+++ b/web/js/item.js
@@ -1,5 +1,6 @@
 /*******************************************************************************
 Accurator Item
+
 This code allows the item page to be setup according to the locale, domain
 and user settings. The main functionallity regards annoting the item, for which
 it relies upon the following files:
@@ -42,7 +43,10 @@ function itemInit() {
 		drawPage(userData);
 	}, function() {
 		// user is not logged in, show modal
-		var onDismissal = function() {document.location.href="intro.html"};
+		var onDismissal = function() {
+			document.location.href = "intro.html"
+		};
+
 		login(drawPage, onDismissal);
 	});
 
@@ -74,8 +78,11 @@ function itemInit() {
 			var labelArray = initLabels(labels);
 
 			// Only show path when cluster is available TODO: remove ugly check for undefined
-			if((localStorage.getItem("currentCluster") !== null) && (localStorage.getItem("currentCluster") !== "undefined"))
+			if((localStorage.getItem("currentCluster") !== null) &&
+					(localStorage.getItem("currentCluster") !== "undefined")) {
 				addPath();
+			}
+
 			addButtonEvents();
 			return events(user, labelArray);
 		})
@@ -111,7 +118,7 @@ function initLabels(labels) {
 function events(user, labels) {
 	return $.getJSON("annotations", {uri:user, type:"user"})
 	.then(function(annotations) {
-		if(annotations.length===0) {
+		if(annotations.length === 0) {
 			alertMessage(labels.vntFirstTitle, labels.vntFirstText, 'success');
 		}
 	});
@@ -129,18 +136,18 @@ function addPath() {
 
 function addButtonEvents() {
 	$("#navbarBtnRecommend").click(function() {
-		document.location.href="results.html" + "?user=" + user;
+		document.location.href = "results.html" + "?user=" + user;
 	});
 	// Search on pressing enter
 	$("#navbarInpSearch").keypress(function(event) {
 		if (event.which == 13) {
 			var query = encodeURIComponent($("#navbarInpSearch").val());
-			document.location.href="results.html?query=" + query;
+			document.location.href = "results.html?query=" + query;
 		}
 	});
 	$("#navbarBtnSearch").click(function() {
 		var query = encodeURIComponent($("#frmSearch").val());
-		document.location.href="results.html?query=" + query;
+		document.location.href = "results.html?query=" + query;
 	});
 }
 
@@ -154,7 +161,7 @@ function addNavigationButtonEvents() {
 	} else {
 		$("#itemBtnPrevious").click(function() {
 			localStorage.setItem("itemIndex", index - 1);
-			document.location.href= "annotate.html?uri=" + items[index -1].uri;
+			document.location.href = "annotate.html?uri=" + items[index -1].uri;
 		});
 	}
 
@@ -163,7 +170,7 @@ function addNavigationButtonEvents() {
 	} else {
 		$("#itemBtnNext").click(function() {
 			localStorage.setItem("itemIndex", index + 1);
-			document.location.href= "annotate.html?uri=" + items[index + 1].uri;
+			document.location.href = "annotate.html?uri=" + items[index + 1].uri;
 		});
 	}
 }
@@ -176,7 +183,7 @@ function addAnnotationFields(metadata, user, uri, locale, domain, annotation_ui)
 		   	   annotation_ui:annotation_ui})
 	.then(function(fields) {
 		// Add fields whole image
-		for (var i=0; i<fields.whole_fields.length; i++) {
+		for (var i = 0; i < fields.whole_fields.length; i++) {
 			// Create new field object
 			var wholeField = new Field(
 				fields.whole_fields[i],
@@ -201,7 +208,7 @@ function addAnnotationFields(metadata, user, uri, locale, domain, annotation_ui)
 		}
 
 		// Add fields to hidden dom elements for annotorious
-		for (var i=0; i<fields.fragment_fields.length; i++) {
+		for (var i = 0; i < fields.fragment_fields.length; i++) {
 			// Create new field object
 			var fragmentField = new Field(
 				fields.fragment_fields[i],
@@ -241,15 +248,16 @@ function appendMetadataWell(metadata) {
 					$.el.dl({'class':'dl-horizontal',
 							 'id':'itemLstMetadata'})))));
 
-	for(var i=0; i<metadata.properties.length; i++) {
+	for(var i = 0; i < metadata.properties.length; i++) {
 		var encodedQuery = encodeURIComponent(metadata.properties[i].object_label);
+
 		$("#itemLstMetadata").append(
 			$.el.dt(metadata.properties[i].predicate_label));
 		$("#itemLstMetadata").append(
 			$.el.dd(
 				$.el.a({'class':'r_undef',
 					    'href':'results.html?query=' + encodedQuery},
-					metadata.properties[i].object_label)));
+						metadata.properties[i].object_label)));
 	}
 }
 
@@ -275,15 +283,16 @@ function annotationWell(annotations) {
 							 'id':'itemLstAnnotations'})))));
 
 
-	for(var i=0; i<annotations.annotations.length; i++) {
+	for(var i = 0; i < annotations.annotations.length; i++) {
 		var encodedQuery = encodeURIComponent(annotations.annotations[i].body);
+
 		$("#itemLstAnnotations").append(
 			$.el.dt(annotations.annotations[i].field));
 		$("#itemLstAnnotations").append(
 			$.el.dd(
 				$.el.a({'class':'r_undef',
 					    'href':'results.html?query=' + encodedQuery},
-					annotations.annotations[i].body)));
+						annotations.annotations[i].body)));
 	}
 }
 
@@ -329,12 +338,13 @@ function addExperimentNavigation() {
 		$("#itemBtnExperimentNext").click(function() {
 			// Go to thank you page after 20 annotations else results
 			if(numberAnnotated == 500) {
-				document.location.href="end.html";
+				document.location.href = "end.html";
 			} else {
 				var items = JSON.parse(localStorage.getItem("currentCluster"));
 				var index = items.indexOf(uri);
 				var next = index + 1;
-				document.location.href="annotate.html" + "?uri=" + items[next];
+
+				document.location.href = "annotate.html" + "?uri=" + items[next];
 			}
 		});
 	});
diff --git a/web/js/profile.js b/web/js/profile.js
index 63e4f50..20d4ca8 100644
--- a/web/js/profile.js
+++ b/web/js/profile.js
@@ -18,8 +18,9 @@ function profileInit() {
 	}, function() {
 		// user is not logged in, show modal
 		var onDismissal = function() {
-			document.location.href="intro.html"
+			document.location.href = "intro.html";
 		};
+
 		login(drawPage, onDismissal);
 	});
 
@@ -83,7 +84,7 @@ function initDomains(locale, domain, labels) {
 	getAvailableDomains()
 	.then(function(domains) {
 		// set domain settings for all the domains
-		for(var i=0; i<domains.length; i++) {
+		for(var i = 0; i < domains.length; i++) {
 			var currentDomain = domains[i];
 
 			// already create function so currentdomain is not the last deu to asynchronisity
@@ -113,7 +114,7 @@ function addDomainTitle(domainData, locale, labels) {
 		$("#profileTxtDomain").append(
 			labels.profileTxtDomain,
 			$.el.span({'class':'text-info'},
-				data.domainLabel));}
+						data.domainLabel));}
 	);
 }
 
@@ -126,6 +127,7 @@ function domainHtml(domainData, locale) {
 				$.el.a({'href':'#',
 						'id':domainData.domain},
 						 data.domainLabel)));
+
 		addDomainEvent(domainData.domain);
 	});
 }
@@ -142,20 +144,22 @@ function addDomainEvent(domain) {
 
 function addButtonEvents(user) {
 	$("#navbarBtnRecommend").click(function() {
-		document.location.href="results.html" + "?user=" + user;
+		document.location.href = "results.html" + "?user=" + user;
 	});
 	// Search on pressing enter
 	$("#navbarInpSearch").keypress(function(event) {
 		if (event.which == 13) {
 			var query = encodeURIComponent($("#navbarInpSearch").val());
-			document.location.href="results.html?query=" + query;
+
+			document.location.href = "results.html?query=" + query;
 		}
 	});
 	$("#navbarBtnSearch").click(function() {
 		var query = encodeURIComponent($("#navbarInpSearch").val());
-		document.location.href="results.html?query=" + query;
+
+		document.location.href = "results.html?query=" + query;
 	});
 	$("#profileBtnChangeExpertise").click(function() {
-		document.location.href="expertise.html";
+		document.location.href = "expertise.html";
 	});
 }
diff --git a/web/js/results.js b/web/js/results.js
index 9f7f7cf..9030550 100644
--- a/web/js/results.js
+++ b/web/js/results.js
@@ -28,7 +28,7 @@ Layout of the results:
 var clusters = [];
 var randoms = [];
 
-// Display options deciding how to results get displayed
+// Display options deciding how the results get displayed
 var display = {
 	layout: "cluster",
 	imageFilter: "onlyImages",
@@ -49,7 +49,10 @@ function resultsInit() {
 		drawPage(userData);
 	}, function() {
 		// user is not logged in, show modal
-		var onDismissal = function() {document.location.href="intro.html"};
+		var onDismissal = function() {
+			document.location.href = "intro.html";
+		};
+
 		login(drawPage, onDismissal);
 	});
 
@@ -68,12 +71,14 @@ function resultsInit() {
 		.then(function(domainData) {
 			ui = domainData.ui + "results";
 			target = domainData.target;
+
 			return getLabels(locale, ui);
 		})
 		.then(function(labelData) {
 			labels = initLabels(labelData);
 			labels.realName = realName; // Add realname to labels for rendering
 			addButtonEvents(user);
+
 			return events(user, labels);
 		})
 		.then(function() {
@@ -110,18 +115,20 @@ function initLabels(labelData) {
 // Add button events in the navbar
 function addButtonEvents(user) {
 	$("#navbarBtnRecommend").click(function() {
-		document.location.href="results.html" + "?user=" + user;
+		document.location.href = "results.html" + "?user=" + user;
 	});
 	// Search on pressing enter
 	$("#navbarInpSearch").keypress(function(event) {
 		if (event.which == 13) {
 			var query = encodeURIComponent($("#navbarInpSearch").val());
-			document.location.href="results.html?query=" + query;
+
+			document.location.href = "results.html?query=" + query;
 		}
 	});
 	$("#navbarBtnSearch").click(function() {
 		var query = encodeURIComponent($("#navbarInpSearch").val());
-		document.location.href="results.html?query=" + query;
+
+		document.location.href = "results.html?query=" + query;
 	});
 }