$(document).ready(function() {
	$("a.signup").fancybox({
		modal: true,
		centerOnScroll: true,
		showNavArrows: false,
		useNavKeys: false,
		autoDimensions: true,
		width: 640,
		height: 440,
	}).trigger('click');
});
 
$(function() {
	$('#from, #to').selectToUISlider();
});


function submit(page) {   
	var forename = $('#forename').attr('value'); 
	var surname = $('#surname').attr('value');
	var email = $('#email').attr('value'); 
	
	var tour = $('#tour').attr('value'); 
	var from = $('#from').attr('value'); 
	var to = $('#to').attr('value'); 
	to = to - 1;
	
	var age = $('#age').attr('value'); 
	var street = $('#street').attr('value'); 
	var zip = $('#zip').attr('value');
	var city = $('#city').attr('value'); 
	
	var data;
	data += "&forename=" + forename;
	data += "&surname=" + surname;
	data += "&email=" + email;
	
	data += "&tour=" + tour;
	data += "&from=" + from;
	data += "&to=" + to;

	data += "&age=" + age;
	data += "&street=" + street;
	data += "&zip=" + zip;
	data += "&city=" + city;
	
	$.ajax({  
           type: "POST",  
           url: "api/users/register/",  
           data: data,
           success: function(json){
			
				var errors = json.errors;
				if ( typeof( errors ) != "undefined") {
					handleErrors(errors);
				} else {
					$.fancybox.pos(3);
				}

				var valids = json.valids;
				if ( typeof( valids ) != "undefined") {
					handleValids(valids);
				} 
           }, async: false  
       }, 'json');  

}
		
function handleErrors(errors) {
	$.each(errors, function(key, value) {
		var error = value; 
		if (error.type == "validation") {
			$('#' + error.field).removeClass('correct').addClass('error');	
		}
	});
}

function handleValids(valids) {
	$.each(valids, function(key, value) {
		var valid = value; 
		if (valid.type == "validation") {
			$('#' + valid.field).removeClass('error').addClass('correct');	
		}
	});
}

function checkForename() {	
	return checkField('forename');
}

function checkSurname() {
	return checkField('surname');
}

function checkField(field) {
	var fieldValue = $('#' + field).attr('value');
	if (fieldValue == '') {
		var error= new Array()
		error["type"]="validation";
		error["field"]= field;
		error["message"]="Leerer String nicht erlaubt.";
			
		handleErrors (new Array(error));
		return false;
	}
	
	var valid= new Array();
	valid["type"] = "validation";
	valid["field"] = field;
	handleValids(new Array(valid));
	return true;
}


function checkEmail() {
	var email = $('#email').attr('value'); 
 
	var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(email)) {
		var error= new Array()
		error["type"]="validation";
		error["field"]="email";
		error["message"]="Keine gültige Email-Adresse";
			
		handleErrors (new Array(error));
		return false;
	}
	
	$.ajax({  
           type: "POST",  
           url: "api/users/check/",  
           data: "email="+ email,  
           success: function(json){
				var errors = json.errors;
				if ( typeof( errors ) != "undefined" && errors.length > 0) {
					handleErrors(errors);
					return false;
				} 

				var valids = json.valids;
				if ( typeof( valids ) != "undefined" && valids.length > 0) {
					handleValids(valids);
					return true;
				}
			},
			async: false  
       }, 'json');

 	return true;
}

function checkForm() {
	return checkForename() && checkSurname() && checkEmail() && $('#forename').hasClass('correct') && $('#surname').hasClass('correct') &&	$('#email').hasClass('correct');
}

function next(page) {
	if (checkForm()) {		
		$.fancybox.next();
		return;
	}
}
