function language_change(value) {
	oEnviroment.getLanguage().setID(value);
	oStrategy.setCheckSession(false);
	oEnviroment.initialize(oStrategy);
}

function logo_click() {
	gotoURL('index.php' , 'main');
}

/****************************************************
 * Main Menu click events
 ****************************************************/
function menu_main_click(key, tabx) {
	$('mainmenu_submenu-members').hide();
	activeSection[PARAM_INDEX_TAG] = '';
	selectedMember= '';
	if (oStrategy.getCurrentPage() == 'index.php') {
		welcome_refresh();
		updateMenus(PARAM_INDEX_SECTION);

		showContent(selectedMember);
		// Loads screen Banners
		loadBanner(activeSection[PARAM_INDEX_SECTION], "bannerAd");
	} else if (oStrategy.getCurrentPage() == 'mySquare.php') {
		gotoURL('index.php', "main");
	} else if (oStrategy.getCurrentPage() == 'myVideo.php') {
		gotoURL('index.php', "main");
	} else if (oStrategy.getCurrentPage() == 'mySlideshow.php') {
		gotoURL('index.php', "main");
	} else {
		gotoURL('index.php', "main");
	}
}

function menu_people_click(key, tabx) {
	$('mainmenu_submenu-members').hide();
	selectedMember= '';
	activeSection[PARAM_INDEX_TAG] = '';
	if (oStrategy.getCurrentPage() != 'index.php') {
		gotoURL('index.php', activeSection[PARAM_INDEX_SECTION]);
	} else {
		welcome_refresh();
		updateMenus(PARAM_INDEX_SECTION);
		showContent('');
		// Loads screen Banners
		loadBanner(activeSection[PARAM_INDEX_SECTION], "bannerAd");
	}
}

function menu_highliving_click(key, tabx) {
    window.location.href = 'directory.php?section=highliving';
}

function menu_nightlife_click(key, tabx) {
    window.location.href = 'directory.php?section=nightlife';
}

//function menu_nightlife_click(key, tabx) {
//	$('mainmenu_submenu-members').hide();
//	selectedMember= '';
//	activeSection[PARAM_INDEX_TAG] = '';
//	if (oStrategy.getCurrentPage() != 'index.php') {
//		gotoURL('index.php', activeSection[PARAM_INDEX_SECTION]);
//	} else {
//		welcome_refresh();
//		updateMenus(PARAM_INDEX_SECTION);
//		showContent(selectedMember);
//		// Loads screen Banners
//		loadBanner(activeSection[PARAM_INDEX_SECTION], "bannerAd");
//	}
//}

function menu_style_click(key, tabx) {
    window.location.href = 'directory.php?section=style';
}

//function menu_style_click(key, tabx) {
//	$('mainmenu_submenu-members').hide();
//	selectedMember= '';
//	activeSection[PARAM_INDEX_TAG] = '';
//	if (oStrategy.getCurrentPage() != 'index.php') {
//		gotoURL('index.php', activeSection[PARAM_INDEX_SECTION]);
//	} else {
//		welcome_refresh();
//		updateMenus(PARAM_INDEX_SECTION);
//		showContent(selectedMember);
//		// Loads screen Banners
//		loadBanner(activeSection[PARAM_INDEX_SECTION], "bannerAd");
//	}
//}

function menu_escape_click(key, tabx) {
    window.location.href = 'directory.php?section=escape';
}

function menu_travel_click(key, tabx) {
	$('mainmenu_submenu-members').hide();
	selectedMember= '';
	activeSection[PARAM_INDEX_TAG] = '';
	if (oStrategy.getCurrentPage() != 'index.php') {
		gotoURL('index.php', activeSection[PARAM_INDEX_SECTION]);
	} else {
		welcome_refresh();
		updateMenus(PARAM_INDEX_SECTION);
		showContent('');
		// Loads screen Banners
		loadBanner(activeSection[PARAM_INDEX_SECTION], "bannerAd");
	}
}

function menu_directory_click(key, tabx) {
    window.location.href = 'directory-home.php';
}

function menu_editorial_click(key, tabx) {
    window.location.href = 'http://blog.squa.re/';
}


function menu_members_click(key, tabx) {

	activeSection[PARAM_INDEX_TAG] = '';
	if (oEnviroment.isUserLogged()) {
		if (!$('mainmenu_submenu-members').visible()) {
			if(tabx){ $('mainmenu_submenu-members').style.left = tabx + 'px'; }
			// visited profiles loading service
			var connector = new AjaxConnector();
			var service = new Service("B1-003", oEnviroment.getServicePath() + oEnviroment.getServletName(), oEnviroment.getUser().getSID());
			service.setMethod('GET');
			service.addParameter("language", oEnviroment.getLanguage().getID());
			service.setOnServiceComplete(this, 'memberNetworkHandler');
			connector.asyncRun(service);
		} else {
			$('mainmenu_submenu-members').hide();
		}
	} else {
		showErrorMessage('Login Error', 'You must be logged in to view this section', '');
	}
}

function memberNetworkHandler(service) {
	if (service !== null) {
		if (!service.getResult().hasErrors()) {
			setMembersSubMenu(oEnviroment.getUser().getNickname(), service);
		}
	}
}

function menu_mysquare_click(key, tabx) {
	$('mainmenu_submenu-members').hide();
	activeSection[PARAM_INDEX_TAG] = '';
	if (oEnviroment.isUserLogged()) {
		if (oStrategy.getCurrentPage() != 'mySquare.php') {
			gotoURL('mySquare.php', 'mysquare');
		}
	} else {
		showErrorMessage('Login Error', 'You must be logged in to view this section', '');
	}
}


function invite_click() {
	if (oEnviroment.isUserLogged()) {
		gotoURL('invite.php', 'main');
	} else {
		showErrorMessage('Login Error', 'You must be logged in to invite a friend', '');
	}
}

function sendInvite(frm, msnMode) {
	if (validate_invite(frm, msnMode)) {

		var connector = new AjaxConnector();
		var service = new Service("C1-010", oEnviroment.getServicePath() + oEnviroment.getServletName(), oEnviroment.getUser().getSID());
		service.addParameter("language", oEnviroment.getLanguage().getID());

		if (!msnMode) {
			service.addParameter("email", frm.field_address.value);
			service.addParameter("message", frm.field_msg.value);
		} else {

			var serv = '';
			for (i=0;i< frm.selectcontact.length; i++) {
				if (frm.selectcontact[i].checked) {serv=frm.selectcontact[i].value;}
			}

			service.addParameter("services", serv);
			service.addParameter("service_user", frm.field_user.value);
			service.addParameter("service_password", frm.field_password.value);
		}

		service.setOnServiceComplete(this, 'inviteHandler');
		connector.asyncRun(service);
	}

}

function inviteHandler(service) {
	if (service !==null) {
		if (!service.getResult().hasErrors()) {
			gotoURL('index.php', 'main');
		} else {
			showErrorMessage('System Error', 'Unexpected Error', '');
		}
	}
}

function click_login(container) {
	if (!oEnviroment.isUserLogged()) {
		gotoURL('login.php', 'main');
	} else {
		myProfile_click();
	}
}

function logout_click() {
	if (oEnviroment.isUserLogged()) {
		showConfirmWindow('Logout from SQUA.RE?', "logoutHandler()", "");
	}
}

function logoutHandler() {
	var handler = new UserHelper();
	handler.doLogout(oEnviroment.getUser());
	oEnviroment.getLanguage().setID(oEnviroment.DEFAULT_LANGUAGE);
	//oStrategy.setCheckSession(true);
	gotoURL('index.php', 'main');
}

function about_click() {
	gotoURL('about.php', activeSection[PARAM_INDEX_SECTION]);
}

function jobs_click() {
	gotoURL('jobs.php', activeSection[PARAM_INDEX_SECTION]);
}

function press_click() {
	gotoURL('press.php', activeSection[PARAM_INDEX_SECTION]);
}

function advertise_click() {
	gotoURL('advertise.php', activeSection[PARAM_INDEX_SECTION]);
}

function terms_click() {
	gotoURL('terms.php', activeSection[PARAM_INDEX_SECTION]);
}

function privacy_click() {
	gotoURL('privacy.php', activeSection[PARAM_INDEX_SECTION]);
}

function faq_click() {
	gotoURL('faq.php', activeSection[PARAM_INDEX_SECTION]);
}

function writeToSquare_click() {
	gotoURL('writeToSquare.php', 'main');
}

function blog_click() {
	openExternalUrl('http://blog.squa.re');
}

function send_writeToSquare(frm) {

	if (validate_write(frm)) {
		// Sending a comment to square
		var connector = new AjaxConnector();
		var service = new Service("C1-001", oEnviroment.getServicePath() + oEnviroment.getServletName(), oEnviroment.getUser().getSID());
		service.addParameter("language", oEnviroment.getLanguage().getID());

		service.addParameter("email", frm.field_mail.value);
		service.addParameter("subject", frm.field_subject.value);
		service.addParameter("nickname", frm.field_name.value);
		service.addParameter("message", frm.field_msg.value);

		service.setOnServiceComplete(this, 'writeToSquareHandler');
		connector.asyncRun(service);
	}
}

function writeToSquareHandler(service) {
	if (service !==null) {
		if (!service.getResult().hasErrors()) {
			gotoURL('index.php', 'main');
		} else {
			showErrorMessage('System Error', 'Unexpected Error', '');
		}
	}
}

function myProfile_click() {
	member_click(oEnviroment.getUser().getID());
}

function grid_onFinishLoad() {
	setTimeout(	function () { showContent(selectedMember, true); }, 1000);
}

function member_click(id, tab) {
	if (!tab) tab = 'vlog';

	activeSection[PARAM_INDEX_SECTION] = 'main';
	activeSection[PARAM_INDEX_AREA] = tab;
	activeSection[PARAM_INDEX_TAG] = '';
	activeSection[PARAM_INDEX_CATEGORY] = 'CONTENT';
	activeSection[PARAM_INDEX_ENTRY_TYPE] = 0;
	selectedMember = id;

	var connector = new AjaxConnector();
	var service = new Service("A1-004", oEnviroment.getServicePath() + oEnviroment.getServletName(), oEnviroment.getUser().getSID());
	service.setMethod('GET');
	service.addParameter("language", oEnviroment.getLanguage().getID());
	service.addParameter("user", id);
	service.addParameter("tab", tab);
	service.setOnServiceComplete(this, 'memberProfileHandler');
	connector.asyncRun(service);
	$('mainmenu_submenu-members').hide();

}

function memberProfileHandler(service) {
	if (service !== null) {
		if (!service.getResult().hasErrors()) {
			if (service.getResult().hasNext()) {
				var serviceRow = service.getResult().getCurrentRow().split("|!|");
				var mysquare = 0;
				selectedMember = serviceRow[0];

				// Checks if the user is already on mysquare
				mysquare = parseInt('0' + serviceRow[30], 10);

				// Checks if the profile is public or not
				if (serviceRow[35].toLowerCase() == 'true' || parseInt('0' + serviceRow[35], 10) == 1) {
					mysquare = 1;
				}

				// Checks if the current user is equal to the profile user to display
				if (oEnviroment.getUser().getID() == selectedMember) {
					mysquare = 1;
				}
				if (!mysquare) {
					openPrivateMemberDetail('members' , selectedMember);
				}

				// Titulo: "SQUA.RE :: member_name"
				document.title = 'SQUA.RE : : ' + serviceRow[3];
			}

			if (mysquare) {
				var tab = service.getParameterByKey('tab')
				if (oStrategy.getCurrentPage() != 'index.php') {
					openMemberDetail('members', selectedMember,  tab);
				} else {
					hasWelcome = false;
					updateMenus(PARAM_INDEX_SECTION, true);
					setMemberProfile(service);
					oVLOG.setSmallSize();
					showContent(selectedMember);
					loadBanner('MEMBERS', "bannerAd", selectedMember);
				}
			}
		}
	}
}

/****************************************************
 * Main screen click events
 ****************************************************/
function window_unload(evt) {

}

function create_vlog_entry() {
	if (!oEnviroment.isUserLogged()) {
		gotoURL('login.php', 'main');
	} else {
		gotoURL('mySquare.php', 'mysquare');
	}
}


function send_message(node, member_id, name) {
	if (oEnviroment.isUserLogged()) {
		showSendMessage(node, member_id, name);
	} else {
		showErrorMessage('Login Error', 'You must be logged in to send a message!', '');
	}
}

function msg_member_send(frm, member_id) {
	if (validate_msg(frm)) {
		var connector = new AjaxConnector();
		var service = new Service("C0-004", oEnviroment.getServicePath() + oEnviroment.getServletName(), oEnviroment.getUser().getSID());
		service.addParameter("language", oEnviroment.getLanguage().getID());
		service.addParameter("destination", member_id);
		service.addParameter("subject", frm.field_member_subject.value);
		service.addParameter("message", frm.field_member_msg.value);

		service.setOnServiceComplete(null, 'msgSendHandler');
		connector.asyncRun(service);
	}
}

function share_entry_send(frm) {
	if (validate_send_link(frm)) {
		var connector = new AjaxConnector();
		var service = new Service("C0-007", oEnviroment.getServicePath() + oEnviroment.getServletName(), oEnviroment.getUser().getSID());
		service.addParameter("language", oEnviroment.getLanguage().getID());
		service.addParameter("sender_name", frm.field_share_yourname.value);
		//service.addParameter("sender_mail", frm.field_share_yourmail.value);
		service.addParameter("destination", frm.field_share_emails.value);
		service.addParameter("link", frm.field_share_link.value);
		service.addParameter("message", frm.field_share_msg.value);
		service.addParameter("website", '');

		service.setOnServiceComplete(null, 'share_entry_handler');
		connector.asyncRun(service);
	}
}

function share_entry_handler(service) {
	if (service !==null) {
		if (!service.getResult().hasErrors()) {
			oModalWindow.close();
			showErrorMessage("Notice", "The link has been sent to your friends");
		}
	}
}


function msgSendHandler(service) {
	if (service !==null) {
		if (!service.getResult().hasErrors()) {
			oModalWindow.close();
			showErrorMessage("Notice", "The message has been sent");
		}
	}
}

function forgot_click() {
	gotoURL('password.php', activeSection[PARAM_INDEX_SECTION]);
}

function doLogin(userName, password, remember) {

	var handler = new UserHelper();
	var usr = oEnviroment.getUser();
	usr.setMail(userName);
	usr.setPassword(password);
	var r = 0;
	if (remember.checked) { r='1'; }

	handler.doLogin(usr, oEnviroment.getLanguage(), r, null, 'loginHandler');
}

function loginHandler(service) {
	var user = oEnviroment.getUser();
	var error = false;

	if (service !==null) {
		if (!service.getResult().hasErrors()) {
			var serviceRow = null;
			if (service.getResult().hasNext()) {

				serviceRow = service.getResult().getCurrentRow().split("|!|");

				// Cargo los datos del tipo en el objeto user
				user.setID(serviceRow[0]);
				user.setSID(serviceRow[1]);
				user.setMail(serviceRow[2]);
				user.setNickname(serviceRow[4]);
				user.getProfile().setID(serviceRow[8]);
				user.getProfile().setName(serviceRow[9]);
				user.getLanguage().setID(serviceRow[18]);
				user.getLanguage().setName(serviceRow[19]);

				// Creates current session cookie
				var handler = new UserHelper();
				handler.createSession(user, 1);

				// Saves login information for current user
				if (parseInt('0' + service.getParameterByKey('remember'), 10) == 1) {
					handler.rememberUser(user, 30);
				} else {
					handler.clearRememberUser();
				}

				var tab = ""  + oEnviroment.getURLVariable("tab");
				var member_id= '';
				var extraParams = '';
				if (oEnviroment.getURLVariable("redirect") == 'prequests') {
					extraParams = 'tab=' + oEnviroment.getURLVariable("tab") + '&opt=' + oEnviroment.getURLVariable("opt");
					gotoURL('mySquare.php', 'mysquare', extraParams);
				} else {
					if (tab.toLowerCase() == "members") {
						member_id = oEnviroment.getURLVariable("id");
						member_click(member_id);
					} else if (tab.toLowerCase() == "comments") {
						member_id = oEnviroment.getURLVariable("member");
						member_click(member_id, tab);
					} else {
						gotoURL('mySquare.php', 'mysquare');
					}
				}

			} else { error = true; }
		} else { error = true; }
	}

	if (error) {
		showErrorMessage('System Error', service.getResult().getDescription(), '');
	}
}

/****************************************************
 * Sign up screen refresh events
 ****************************************************/
function signup_send(frm) {
	if (validate_signup(frm)) {
		var sex= '';
		var birthdate = '';

		if ($('birthdate_container').style.display != 'none') {
			birthdate = frm.year.value + '-' + frm.month.value + '-' + frm.day.value;
		}

		var connector = new AjaxConnector();
		var service = new Service("C0-001", oEnviroment.getServicePath() + oEnviroment.getServletName(), oEnviroment.getUser().getSID());
		service.setMethod('POST');
		service.addParameter('language', oEnviroment.getLanguage().getID());
		service.addParameter('sid', oEnviroment.getUser().getSID());
		service.addParameter('email', frm.field_signup_email.value);
		service.addParameter('nickname', frm.field_signup_nick.value);
		service.addParameter('password', frm.field_signup_pwd.value);
		service.addParameter('url', '');
		service.addParameter('sex', sex);
		service.addParameter('country', frm.country.value);
		service.addParameter('postcode', frm.field_signup_zip.value);
		service.addParameter('birthdate', birthdate);
		service.addParameter('profile', 1); // frm.profile_type.value
		service.addParameter('network_type', 0); // frm.network_type.value
		service.addParameter('categories', ''); //getValueFromList(frm.signup_category,true);
		service.addParameter('wantEmail', 1); //frm.field_signup_updates.checked
		service.addParameter('public', true); // frm.field_signup_public.checked
		service.addParameter('display_language', oEnviroment.getLanguage().getID());
		service.addParameter('about', ''); // frm.field_signup_www.value
		service.addParameter('interests', ''); // frm.field_signup_interests.value
		service.addParameter('invitation', frm.field_signup_invitation.value); // frm.field_signup_interests.value

		service.setOnServiceComplete(this, 'signup_handler');
		connector.asyncRun(service);
	}
}

function signup_handler(service) {
	if (service !==null) {
		if (!service.getResult().hasErrors()) {
			doLogin(service.getParameterByKey('email'), service.getParameterByKey('password'), 0);
		}
	}
}

function network_type_change(networkType_id) {

	networkType_id = parseInt('0' + networkType_id, 10);

	if (networkType_id) {
		var connector = new AjaxConnector();
		var service = new Service("X1-002", oEnviroment.getServicePath() + oEnviroment.getServletName(), oEnviroment.getUser().getSID());
		service.addParameter("language", oEnviroment.getLanguage().getID());
		service.addParameter("network_type", networkType_id);
		service.setOnServiceComplete(null, 'network_type_handler');
		connector.asyncRun(service);
	}
}

function network_type_handler(service) {

	if (service !==null) {
		if (!service.getResult().hasErrors()) {
			if (service.getResult().hasNext()) {
				var serviceRow = service.getResult().getCurrentRow().split("|!|");
				if (parseInt(serviceRow[2], 10) ==0) {
					$('sex_container').style.display = 'none';
					$('birthdate_container').style.display = 'none';
				} else {
					$('sex_container').style.display = '';
					$('birthdate_container').style.display = '';
				}
			}
		}
	}
}


function password_request(frm) {
	if (validate_password(frm)) {
		var connector = new AjaxConnector();
		var service = new Service("A1-011", oEnviroment.getServicePath() + oEnviroment.getServletName(), '');
		service.setMethod('POST');
		service.addParameter('language', oEnviroment.getLanguage().getID());
		service.addParameter('email', frm.field_password_email.value);

		service.setOnServiceComplete(null, 'password_request_handler');
		connector.asyncRun(service);
	}

}

function password_request_handler(service) {
	if (service !==null) {
		if (!service.getResult().hasErrors()) {
			//
		}
	}
	showErrorMessage(service.getResult().getErrorCode(), 'Thank you for using SQUA.RE! Please check your email to retrieve your password.', 'password_request_finish');
}

function password_request_finish() {
	gotoURL('index.php', 'main');
}


function login_enter_check(e){

	if (e && e.keyCode == 13) {
		doLogin($('field_login').value, $('field_password').value, $('field_remember'));
		return false;
	}

	return true;

}

function signup_enter_check(e){
	if (e && e.keyCode == 13) {
		signup_send(document.frmSignup);
	}
}

function search_enter_check(e){
	if (e && e.keyCode == 13) {
		search_click(activeSection[PARAM_INDEX_SECTION], $('mainmenu_qwhere').value, $('mainmenu_q').value, $('mainmenu_qwhere').options[$('mainmenu_qwhere').selectedIndex].text);
	}
}

function signup_redirect() {
	if (!oEnviroment.isUserLogged()) {
		gotoURL('signup.php', 'main');
	} else {
		gotoURL('profile.php', 'mysquare');
	}
}

function tour_click() {
	gotoURL('tour.php', 'main');
}

function request_click() {
	if (oStrategy.getCurrentPage() != 'mySquare.php') {
		openPendingRequests();
	} else {
		activeSection[PARAM_INDEX_AREA] = 'members';
		activeSection[PARAM_INDEX_CATEGORY] = 'requests';
		updateMenus();
		showContent(selectedMember);
	}
}