//Namespace object
hemsidaOnline = {};

hemsidaOnline.startUp = function () {
	hemsidaOnline.addCssClassesOnTables();
	hemsidaOnline.initEventsToButtons();
}

//Add CSS-classes "Head" and "Even" on tables
hemsidaOnline.addCssClassesOnTables = function () {
	$('table[class=]').each(function(i) {
        $(this).find('tr:first').addClass('Head');
		$(this).find('tr:even').addClass('Even');
    });
}

//Makes register form submit button clickable
hemsidaOnline.initEventsToButtons = function () {
	$('.RegisterForm .Submit input').click(function(index) {	
		hemsidaOnline.save();
		return false;
	});
}

//Register an account and create a website for that account
hemsidaOnline.save = function (e) {
	var loaderObj = $('.RegisterForm .Content');
	var responseObj = $('.RegisterForm .Content .AjaxResponseText');
	responseObj.innerHTML = '';
	loaderObj.addClass('Loader');
	var url = '/cms/admin/handlers/websitehandler.aspx';
	var data = 'actionType=createWebsite&websiteName='+$('#websiteName').attr('value')+'&email='+$('#email').attr('value');
	$.ajax({
		type: 'POST',
		url: url,
		data: data,
		error: function(XMLHttpRequest, textStatus, errorThrown) {
			alert(textStatus + " - " + errorThrown);
			loaderObj.removeClass('Loader');
		},
		success: function(msg) {
			responseObj.html('<h3>Meddelande</h3>'+msg);
			loaderObj.removeClass('Loader');
		}
	});
}

//Hemsida online validation
hemsidaOnline.IsSubmitted = false;
hemsidaOnline.Validation = function(id) {
	if(hemsidaOnline.IsSubmitted) return false;
	var isFormValid = true;
	hemsidaOnline.Validation.clearValidationErrorMessages(id);
	$('#'+id+' .Validate').each(function(index) {
		var field = $(this);
		var className = field.attr('class');
		if(className.indexOf('StringEmpty') != -1) {
			if(!hemsidaOnline.Validation.validateStringEmpty(field)) {
				isFormValid = false;
			}
		}
		if(className.indexOf('Email') != -1) {
			if(!hemsidaOnline.Validation.validateEmail(field)) {
				isFormValid = false;
			}
		}
	});
	if(isFormValid) {
		hemsidaOnline.IsSubmitted = true;
		$('#'+id).addClass('Submit');
		var form = $('#'+id+' form');
		var thankYouMessage = $('#'+id+' .ThankYouMessage');
		var data = $('#'+id+' form').serialize();
		$.ajax({
			type: 'POST',
			url: '#',
			data: data,
			success: function(response) {
				$('#'+id).removeClass('Submit');
				//form.css('visibility', 'hidden');
				//form.slideUp('slow', function() {
					//thankYouMessage.slideUp('slow', function() {
						//thankYouMessage.slideDown('slow', function() {
						//});
					//});
				//});
				//thankYouMessage.slideUp('slow', function() {
					//thankYouMessage.slideDown('slow', function() {
					//});
				//});
				thankYouMessage.css('display', 'block');
				thankYouMessage.find('h2').css('opacity', '0');
				thankYouMessage.find('h2').animate({'opacity': 1}, 500, function () {});
				//thankYouMessage.css('display', 'block');
				//thankYouMessage.css('opacity', '0');
				//thankYouMessage.animate({'opacity': 1}, 500, function () {});
				//hemsidaOnline.IsSubmitted = false;
			},
			error: function(response) {
				$('#'+id).removeClass('Submit');
				form.find('.ErrorMessage').css('display', 'block');
			}
		});
	}
	return false;
}
//Reset validationErrorMessages
hemsidaOnline.Validation.clearValidationErrorMessages = function(id) {
	$('#'+id+' .Field').each(function(index) {
		var field = $(this);
		if(field.attr('class').indexOf('ErrorFilled') != -1) {
		   field.removeClass('ErrorFilled');
		}
	});
}
//Show validationErrorMessage
hemsidaOnline.Validation.showValidationErrorMessage = function(field) {
	field.addClass('ErrorFilled');
	var validationErrorMessage = field.find('.ValidationErrorMessage');
	validationErrorMessage.css('opacity', '0');
	validationErrorMessage.animate({'opacity': .87}, 500, function () {
		//alert('d');
	});
}
//Validate empty string
hemsidaOnline.Validation.validateStringEmpty = function(field) {
	var isValid = true;
	var input = field.find('.TextField input');
	if(input.attr('value').length == 0) {
	    isValid = false;
	}
    if(!isValid) hemsidaOnline.Validation.showValidationErrorMessage(field);
    return isValid;
}
//Validate email
hemsidaOnline.Validation.validateEmail = function(field) {
	var isValid = true;
	var input = field.find('.TextField input');
	var stringEmail = input.attr('value');
    var emailReg = "^[\\w-_\.+]*[\\w-_\.]\@([\\w-]+\\.)+[\\w]+[\\w]$";
    var regex = new RegExp(emailReg);
    if(!regex.test(stringEmail)) {
	    isValid = false;
	}
    if(!isValid) hemsidaOnline.Validation.showValidationErrorMessage(field);
    return isValid;
}
//Execute when DOM is ready
$(document).ready(function() {
	hemsidaOnline.startUp();
});
