/*
	author: Daan de Schepper
					http://www.elfdecaemer.nl
*/

SV = (function(){
	return {
		login: function(formEl) {
			$.ajax({
				url: "php/ajax/Users.class.php",
				data: {
					xaction: "login",
					data: JSON.stringify({
						userName: $("input[name='username']", formEl)[0].value,
						passwordHash: ec.MD5($("input[name='password']", formEl)[0].value)
					})
				},
				success: function(data, textStatus) {
					if(data.success === true) {
						$('#login-container').slideUp(500, function() {
							if(data.user.userType !== 'administrator') {
								data.user.person.tussenvoegsels = data.user.person.tussenvoegsels === null ? '' : data.user.person.tussenvoegsels;
								var html = 	'<img src="images/user-trans.png" />' +
														'<div>Welkom <a href="index.php?page=user&id=' + data.user.id + '" id="current-username">' + data.user.person.firstName + ' ' + data.user.person.tussenvoegsels + ' ' + data.user.person.lastName + ' &raquo;</a></div>' +
														'<div id="logout"><img src="images/door_out-trans.png" /> <a href="index.php?logout=true">Uitloggen</a></div>';
							} else {
								var html = 	'<img src="images/user-trans.png" />' +
														'<div>Welkom Administrator</div>' +
														'<div id="logout"><img src="images/door_out-trans.png" /> <a href="index.php?logout=true">Uitloggen</a></div>';
							}
							$('#current-user').html(html).slideDown(500, function() {
								if(data.user.userType === 'employer') {
									$('#employer-actions').slideDown(500, function() {
										if($.inArray(SV.page, ["vacature", "user"]) >= 0) {
											window.location = window.location;
										}
									});
								} else if(data.user.userType === 'applicant') {
									$('#applicant-actions').slideDown(500, function() {
										if($.inArray(SV.page, ["vacature", "user"]) >= 0) {
											window.location = window.location;
										}
									});
								} else if(data.user.userType === 'administrator' && SV.page !== 'home') {
									window.location = window.location;
								}
							});
						});
						SV.hideError();
					} else {
						SV.error('De door u opgegeven gebruikersnaam of wachtwoord is onjuist. Probeer het nogmaals.<br />Bent u uw wachtwoord vergeten, klik dan <a href="index.php?page=password">hier</a>');
					}
				}
			});
		},
		
		highlight: function(jqElements) {
			jqElements.animate({
				color: '#00ee00'
			}, {
				duration: 200,
				queue: true,
				complete: function() {
					jqElements.animate({
						color: '#000000'
					}, {
						duration: 200,
						queue: true,
						complete: function() {
							jqElements.animate({
								color: '#00ee00'
							}, {
								duration: 200,
								queue: true,
								complete: function() {
									jqElements.animate({
										color: '#000000'
									}, {
										duration: 200,
										queue: true
									});
								}
							});
						}
					});
				}
			});
		},
		
		focusLoginElement: function(el) {
			var val = el.type == 'text' ? 'e-mailadres' : 'wachtwoord';
			if(el.value == val) {
				el.value = '';
				$(el).css('color', '#000000').css('font-style', 'normal');
			}
		},
		
		blurLoginElement: function(el) {
			var val = el.type == 'text' ? 'e-mailadres' : 'wachtwoord';
			if(el.value == '') {
				el.value = val;
				$(el).css('color', '#c0c0c0').css('font-style', 'italic');
			}
		},
		
		error: function(message) {
			$('#error').html(message).slideDown();
		},
		
		hideError: function() {
			$('#error').slideUp()
		},
		
		editPage: function(pageId) {
			var pageWin = new Ext.Window({
				title: 'Pagina aanpassen',
				width: 600,
				height: 500,
				layout: 'fit',
				items: [
					new gui.PageForm({
						ref: 'pageForm'
					})
				]
			});
			pageWin.show();
			pageWin.pageForm.on('aftersuccessfulsave', function() {
				Ext.Msg.alert('Pagina opgeslagen', 'De wijzigingen zijn opgeslagen.', function() {
					pageWin.destroy();
					window.location = window.location;
				});
			});
			pageWin.pageForm.setSelectedPage(pageId);
		}
	}
})()

$(document).ready(function() {
	$.ajaxSetup({
		dataType: "json",
		type: "POST"
	});
	
	$('#error').bind('ajaxError', function(xhr, textStatus, errorThrown) {
		SV.hideError();
		$(this).html('Er is een fout opgetreden in de communicatie met de server. Neem <a href="#">contact</a> op met schoolvacature.nl.').slideDown();
	});
});