function clearForm(form) {
  $(':input', form).each(function() {
	var type = this.type;
	var tag = this.tagName.toLowerCase(); // normalize case
	if (type == 'text' || type == 'password' || tag == 'textarea')
	  this.value = "";
	else if (type == 'checkbox' || type == 'radio')
	  this.checked = false;
	else if (tag == 'select')
	  this.selectedIndex = -1;
  });
};

function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}

function activate_cadd(){
    $('#haiku_cadd textarea').focus(function() {
        if (this.value == this.defaultValue){  
            this.value = '';
        }  
        if(this.value != this.defaultValue){  
            this.select();  
        }  
    });  

    $('#haiku_cadd textarea').blur(function() {  
        if ($.trim(this.value) == ''){  
            this.value = (this.defaultValue ? this.defaultValue : '');  
        }  
    });  	

	$('#form_haiku_cadd').submit(function(){
		var my_form = document.form_haiku_cadd;
		$('#ahc_submit').children('#ach_err').remove();
		var error = 0;
		$('#haiku_comment').removeClass('sel');
		if ($.trim($('#haiku_comment').val()) == '' || $.trim($('#haiku_comment').val()) == 'Your reply here'){
			$('#haiku_comment').addClass('sel');
			error = 1;
		}
		if (error == 1){
			//$('#ahc_submit').append('<div id="ach_err">All fields are mandatory!</div>');
			alert('All fields are mandatory!');
		}
		else{
			var inputs = [];
			$(':input', my_form).each(function() {
				inputs.push(this.name + '=' + encodeURIComponent(this.value));
			})  
			jQuery.ajax({
				data: inputs.join('&'),
				url: this.action,
				timeout: 10000,
				error: function() {
					//$('#ahc_submit').append('<div id="ach_err">Your request could not be processed.</div>');
					alert('Your request could not be processed.');
				},
				success: function(r) { 
					switch(r){
						case "1":
							window.location.reload();
							break;
						case "2":
							//$('#ahc_submit').append('<div id="ach_err">Please login or register.</div>');
							alert('Please login or register.');
							break;
						default:
							//$('#ahc_submit').append('<div id="ach_err">Your request could not be processed.</div>');
							alert('Your request could not be processed.');
							break;
					}
				}
			});
		}	
		return false;
	});
}

$(document).ready(function(){

	activate_cadd();

	$('#form_profile').submit(function(){
		var my_form = document.orm_profile;
		$('#profile').parent().children('#register_err').remove();
		var error = 0;
		if ($('#user_fname').parent().hasClass('sel')) $('#user_fname').parent().removeClass('sel');
		if ($('#user_lname').parent().hasClass('sel')) $('#user_lname').parent().removeClass('sel');
		if ($('#user_aka').parent().hasClass('sel')) $('#user_aka').parent().removeClass('seliw9');
	
		if ($.trim($('#user_fname').val()) == '' || $.trim($('#user_fname').val())=='FIRST NAME'){
			$('#user_fname').parent().addClass('sel');
			error = 1;
		}
		if ($.trim($('#user_lname').val()) == '' || $.trim($('#user_lname').val())=='LAST NAME'){
			$('#user_lname').parent().addClass('sel');
			error = 1;
		}
		if ($.trim($('#user_aka').val()) == ''){
			$('#user_aka').parent().addClass('seliw9');
			error = 1;
		}
		if (error == 1){
			$('#profile').parent().append('<div id="register_err">Fill in the highlighted fields!</div>');
			return false;
		}
		else{
			return true;
		}	
	});

	$('#form_register').submit(function(){
		var my_form = document.form_register;
		$('#register').parent().children('#register_err').remove();
		var error = 0;
		if ($('#user_fname').parent().hasClass('sel')) $('#user_fname').parent().removeClass('sel');
		if ($('#user_lname').parent().hasClass('sel')) $('#user_lname').parent().removeClass('sel');
		if ($('#user_aka').parent().hasClass('seliw1')) $('#user_aka').parent().removeClass('seliw1');
		if ($('#user_email').parent().hasClass('seliw2')) $('#user_email').parent().removeClass('seliw2');
		if ($('#user_email1').parent().hasClass('seliw3')) $('#user_email1').parent().removeClass('seliw3');
		if ($('#user_password').parent().hasClass('seliw4')) $('#user_password').parent().removeClass('seliw4');
		if ($('#user_password1').parent().hasClass('seliw5')) $('#user_password1').parent().removeClass('seliw5');
		if ($('#user_code').parent().hasClass('seliw6')) $('#user_code').parent().removeClass('seliw6');
		if ($('#register_terms').hasClass('selt')) $('#register_terms').removeClass('selt');
	
		if ($.trim($('#user_fname').val()) == '' || $.trim($('#user_fname').val())=='FIRST NAME'){
			$('#user_fname').parent().addClass('sel');
			error = 1;
		}
		if ($.trim($('#user_lname').val()) == '' || $.trim($('#user_lname').val())=='LAST NAME'){
			$('#user_lname').parent().addClass('sel');
			error = 1;
		}
		if ($.trim($('#user_aka').val()) == ''){
			$('#user_aka').parent().addClass('seliw1');
			error = 1;
		}
		if (!isValidEmailAddress($('#user_email').val())){
			$('#user_email').parent().addClass('seliw2');
			error = 1;
		}
		if (!isValidEmailAddress($('#user_email1').val())){
			$('#user_email1').parent().addClass('seliw3');
			error = 1;
		}
		if ($.trim($('#user_password').val()) == ''){
			$('#user_password').parent().addClass('seliw4');
			error = 1;
		}
		if ($.trim($('#user_password1').val()) == ''){
			$('#user_password1').parent().addClass('seliw5');
			error = 1;
		}
		if ($.trim($('#user_code').val()) == ''){
			$('#user_code').parent().addClass('seliw6');
			error = 1;
		}
		if (error == 1){
			$('#register').parent().append('<div id="register_err">All fields are required!</div>');
		}
		else{
			if ($('input#user_email').val()!=$('input#user_email1').val()){
				$('#register').parent().append('<div id="register_err">Your email address don\'t match !</div>');
				$('#user_email').parent().addClass('seliw2');
				$('#user_email1').parent().addClass('seliw3');
				return false;
			}
			else{
				if ($('input#user_password').val()!=$('input#user_password1').val()){
					$('#register').parent().append('<div id="register_err">Your passwords don\'t match !</div>');
					$('#user_password').parent().addClass('seliw4');
					$('#user_password1').parent().addClass('seliw5');
					$('#user_password').val('');
					$('#user_password1').val('');
					return false;
				}
				else{
					if ($('#user_terms').val()==0){
						$('#register').parent().append('<div id="register_err">Your must agree with our terms of use</div>');
						$('#register_terms').addClass('selt');
						return false;
					}
					else{
						var inputs = [];
						$(':input', my_form).each(function() {
							inputs.push(this.name + '=' + encodeURIComponent(this.value));
						})  
						jQuery.ajax({
							data: inputs.join('&'),
							url: this.action,
							timeout: 5000,
							error: function() {
								$('#register').parent().append('<div id="register_err">Your request could not be processed.</div>');
							},
							success: function(r) { 
								switch(r){
									case "1":
										clearForm(my_form);
										$('#user_fname').val('FIRST NAME');
										$('#user_lname').val('LAST NAME');
										$('#register_terms ul li a').removeClass('sel');
										$('#semail').removeClass('sel');
										$('#user_terms').val(0);
										document.location.href='my-haiku/';
										break;
									case "2":
										$('#register').parent().append('<div id="register_err">Your email addres is already registered.</div>');
										$('#user_email').parent().addClass('seliw2');
										$('#user_email1').parent().addClass('seliw3');
										break;
									case "3":
										$('#register').parent().append('<div id="register_err">The code entered is invalid.</div>');
										$('div.code').html('<img src="scripts/get_code.php?k='+Math.floor(Math.random()*101)+'" alt="" />');
										$('#user_code').parent().addClass('seliw6');
										$('#user_code').val('');
										break;
									default:
										$('#register').parent().append('<div id="register_err">Your request could not be processed.</div>');
										clearForm(my_form);
										$('#user_fname').val('FIRST NAME');
										$('#user_lname').val('LAST NAME');
										$('#register_terms ul li a').removeClass('sel');
										$('#semail').removeClass('sel');
										$('#user_terms').val(0);
										break;
								}
							}
						});
					}
				}
			}
		}	
		return false;
	});

	$('#form_login').submit(function(){
		var my_form = document.form_login;
		$('#login').children('#login_err').remove();
		var error = 0;
		if ($('#account').parent().hasClass('sel')) $('#account').parent().removeClass('sel');
		if ($('#password').parent().hasClass('sel')) $('#password').parent().removeClass('sel');
		if ($.trim($('#account').val()) == '' || $.trim($('#account').val())==''){
			$('#account').parent().addClass('sel');
			error = 1;
		}
		if ($.trim($('#password').val()) == '' || $.trim($('#password').val())=='PASSWORD'){
			$('#password').parent().addClass('sel');
			error = 1;
		}

		if (error == 1){
			$('#login').append('<div id="login_err">Fill in your email and password</div>');
		}
		else{
			var inputs = [];
			$(':input', my_form).each(function() {
				inputs.push(this.name + '=' + encodeURIComponent(this.value));
			})  
			jQuery.ajax({
				data: inputs.join('&'),
				url: this.action,
				timeout: 5000,
				error: function() {
					$('#login').append('<div id="login_err">Your request could not be processed.</div>');
				},
				success: function(r) { 
					switch(r){
						case "0":
							$('#login').append('<div id="login_err">Email and/or password invalid</div>');
							$('#account').val('');
							$('#password').val('');
							break;
						case "1":
							document.location.href='my-haiku/';
							break;
						case "2":
							$('#login').append('<div id="login_err">Your account is currently inactive.</div>');
							break;
						default:
							$('#login').append('<div id="login_err">Your request could not be processed.</div>');
							$('#account').val('');
							$('#password').val('');
							break;
					}
				}
			});
		}	
		return false;
	});

	$('#form_password').submit(function(){
		var my_form = document.form_password;
		$('#change_password').parent().children('#register_err').remove();
		var error = 0;
		if ($('#old_password').parent().hasClass('seliw7')) $('#old_password').parent().removeClass('seliw7');
		if ($('#new_password').parent().hasClass('seliw8')) $('#new_password').parent().removeClass('seliw8');
		if ($('#new_password1').parent().hasClass('seliw5')) $('#new_password1').parent().removeClass('seliw5');	
		if ($.trim($('#old_password').val()) == ''){
			$('#old_password').parent().addClass('seliw7');
			error = 1;
		}
		if ($.trim($('#new_password').val()) == ''){
			$('#new_password').parent().addClass('seliw8');
			error = 1;
		}
		if ($.trim($('#new_password1').val()) == ''){
			$('#new_password1').parent().addClass('seliw5');
			error = 1;
		}
		if (error == 1){
			$('#change_password').parent().append('<div id="register_err">All fields are required!</div>');
		}
		else{
			if ($('input#new_password').val()!=$('input#new_password1').val()){
				$('#change_password').parent().append('<div id="register_err">Your passwords don\'t match !</div>');
				$('#new_password').parent().addClass('seliw8');
				$('#new_password1').parent().addClass('seliw5');
				$('#new_password').val('');
				$('#new_password1').val('');
				return false;
			}
			else{
				var inputs = [];
				$(':input', my_form).each(function() {
					inputs.push(this.name + '=' + encodeURIComponent(this.value));
				})  
				jQuery.ajax({
					data: inputs.join('&'),
					url: this.action,
					timeout: 5000,
					error: function() {
						$('#change_password').parent().append('<div id="register_err">Your request could not be processed.</div>');
					},
					success: function(r) { 
						switch(r){
							case "2":
								$('#change_password').parent().append('<div id="register_err">Incorrect password!</div>');
								$('#old_password').parent().addClass('seliw7');
								$('#old_password').val('');
								break;
							case "1":
								$('#change_password').parent().append('<div id="register_err">Your password has been changed!</div>');
								$('#old_password').val('');
								$('#new_password').val('');
								$('#new_password1').val('');
								break;
							default:
								$('#change_password').parent().append('<div id="register_err">Your request could not be processed.</div>');
								$('#old_password').val('');
								$('#new_password').val('');
								$('#new_password1').val('');
								break;
						}
					}
				});
			}
		}	
		return false;
	});
	
	$('#form_gpassword').submit(function(){
		var my_form = document.form_gpassword;
		$('#gpassword .fi_submit_left p').html('');
		var error = 0;
		if ($('#gpassword_account').parent().hasClass('sel')) $('#gpassword_account').parent().removeClass('sel');
		if ($.trim($('#gpassword_account').val()) == '' || $.trim($('#gpassword_account').val())=='EMAIL / USERNAME'){
			$('#gpassword_account').parent().addClass('sel');
			error = 1;
		}
		if (error == 1){
			$('#gpassword .fi_submit_left p').html('Fill in your email address.');
		}
		else{
			var inputs = [];
			$(':input', my_form).each(function() {
				inputs.push(this.name + '=' + encodeURIComponent(this.value));
			})  
			jQuery.ajax({
				data: inputs.join('&'),
				url: this.action,
				timeout: 5000,
				error: function() {
					$('#gpassword .fi_submit_left p').html('Your request could not be processed.');
				},
				success: function(r) { 
					switch(r){
						case "2":
							$('#gpassword_account').parent().addClass('sel');
							$('#gpassword .fi_submit_left p').html('Email address not found in the database.');
							break;
						case "1":
							$('#gpassword .fi_submit_left p').html('Check your e-mail for your new password.');
							$('#gpassword_account').val('');
							$('#btn_gpassword').val('Close');
							$('#btn_gpassword').addClass('gpassword_close_btn');
							break;
						default:
							$('#gpassword .fi_submit_left p').html('Your request could not be processed.');
							$('#gpassword_account').val('');
							break;
					}
				}
			});
		}	
		return false;
	});

	$('#form_haiku_add').submit(function(){
		var my_form = document.form_haiku_add;
		$('#ah_bottomh').children('#ah_err').remove();
		var error = 0;
		$('#haiku_haiku').removeClass('sel');
		$('#ah_sel_categ').removeClass('sel');
		if ($.trim($('#haiku_category').val()) == ''){
			$('#ah_sel_categ').addClass('sel');
			error = 1;
		}
		if ($.trim($('#haiku_haiku').val()) == '' || $.trim($('#haiku_haiku').val()) == 'Write your Haiku here.\nFor Haiku virgins, it\'s 3 lines, 17 syllables\ndivided 5-7-5'){
			$('#haiku_haiku').addClass('sel');
			error = 1;
		}
		var haiku_ok = 0;
		var haiku = $.trim($('#haiku_haiku').val());
		var haiku_lines = haiku.split('\n');
		var haiku_lines_count = haiku_lines.length;
		if (haiku_lines_count==3){
				haiku_ok = 1;
/*
			var haiku_lines_1 = haiku_lines[0].split(' ').length;
			var haiku_lines_2 = haiku_lines[1].split(' ').length;
			var haiku_lines_3 = haiku_lines[2].split(' ').length;
			if (haiku_lines_1==5 && haiku_lines_2==7 && haiku_lines_3==5){
				haiku_ok = 1;
			}
*/
		}
		if (error == 1){
			$('#ah_bottomh').append('<div id="ah_err">All fields are mandatory!</div>');
		}
		else{
			if (haiku_ok == 0){
				$('#ah_bottomh').append('<div id="ah_err">Please enter a correct haiku!</div>');		
				$('#haiku_haiku').addClass('sel');
			}
			else{
				var inputs = [];
				$(':input', my_form).each(function() {
					inputs.push(this.name + '=' + encodeURIComponent(this.value));
				})  
				jQuery.ajax({
					data: inputs.join('&'),
					url: this.action,
					timeout: 5000,
					error: function() {
						$('#ah_bottomh').append('<div id="ah_err">Your request could not be processed.</div>');
					},
					success: function(r) { 
						switch(r){
							case "1":
								document.location.href='my-haiku/';
//								window.location.reload();
								break;
							default:
								$('#ah_bottomh').append('<div id="ah_err">Your request could not be processed.</div>');
								break;
						}
					}
				});
			}
		}	
		return false;
	});
});