/**
 * Handels the javascript on the installation page.
 *
 * @copyright	Daniel Lehmann, DreamMedia, Berlin, Germany (www.dreammedia-bny.com)
 * @author		Daniel Lehmann <code@dreammedia-bny.com>
 * @version		1.0
 * @date        08.10.2011
 */

(function() {
	
	new StartUp(init);
	var facebook;
	
	var values = new Array();
	
	var installing = false;
	
	function init() {
		
		facebook = new Facebook(fb_app_key, fb_channel);
		facebook.addEventListener(Facebook.ON_INITIALISED, onInitialised);
		facebook.init();
	}
	
	function onInitialised() {
		
		if (save_user_data) {
			onLoggedIn();
		} else {
			facebook.removeEventListener(Facebook.ON_INITIALISED, onInitialised);
			FB.Canvas.setSize({height:759});		
			document.getElementById("kon_btn_install").onclick = install;
		}
	}	
	
	function install() {
		track('Install Invite '+invite_version+' click', 'index_'+invite_version+'_click')
		
		if (!facebook.initialised) return;
		if (installing) return;
		
		facebook.addEventListener(Facebook.ON_LOGGED_IN, onLoggedIn);
		facebook.login(fb_permissions);
	}
	
	function onLoggedIn() {
		facebook.removeEventListener(Facebook.ON_LOGGED_IN, onLoggedIn);
		
		installing = true;
		facebook.addEventListener(Facebook.ON_RESPONSE, onMe);
		facebook.apiCall("/me");
	}
	
	function onMe() {
		
		facebook.removeEventListener(Facebook.ON_RESPONSE, onMe);
		
		values["name"] = (facebook.response.name) ? facebook.response.name : "";
		values["birthday"] = (facebook.response.birthday) ? facebook.response.birthday : "";
		values["city"] = (facebook.response.location) ? facebook.response.location.name : ((facebook.response.hometown) ? facebook.response.hometown.name : "");
		values["gender"] = (facebook.response.gender) ? facebook.response.gender : "";
		values["email"] = (facebook.response.email) ? facebook.response.email : "";
		values["image"] = "http://graph.facebook.com/"+facebook.response.id+"/picture?type=large";
		values["participate"] = "1";
		
		if (facebook.response.interested_in) values["preference"] = (facebook.response.interested_in.length > 1) ? "both" : facebook.response.interested_in[0];
		else {
			if (values["gender"] == "male") values["preference"] = "female";
			else if (values["gender"] == "female") values["preference"] = "male";
			else values["preference"] = "both";
		}
		
		values["city"] = values["city"].split(",")[0];
		
		
		switch (values["gender"]) {
			case "male":
				values["gender"] = 1;
				break;
			case "female":
				values["gender"] = 2;
				break;
			default:
				values["gender"] = 0;
		}
		
		switch (values["preference"]) {
			case "both":
				values["preference"] = 0;
				break;
			case "male":
				values["preference"] = 1;
				break;
			case "female":
				values["preference"] = 2;
				break;
		}
		
		
		values["name"] = values["name"].substr(0,100);
		values["city"] = values["city"].substr(0,100);
		values["email"] = values["email"].substr(0,100);
		values["image"] = values["image"].substr(0,255);
		
		
		facebook.addEventListener(Facebook.ON_RESPONSE, onInterests);
		facebook.apiCall("/me/interests?locale=de_DE");
	}
	
	function onInterests() {
		facebook.removeEventListener(Facebook.ON_RESPONSE, onInterests);
		
		values["interests"] = "";
		for (var i=0; i<facebook.response.data.length; i++) {
			if (i>0) values["interests"] += ", ";
			values["interests"] += facebook.response.data[i].name;
		}
		
		values["interests"] = values["interests"].substr(0,1024);
		
		values["type"] = "save";
		
		var save = new Ajax("php/db_handler.php");
		save.call(values, onDataSaved);
		
	}
	
	function onDataSaved(values, success) {
		
		installing = false;
		
		if (!success || values != 1) {
			alert("Error saving data.");
			return;
		}
		
		location.href = "profil.php?new=1";
		
	}
	
	
})();

