// Validator
$(function() {
});

function validate(t,action) {

 	var errors = [];
 	
 	
 	// verify registration form
	if ( t == 'join' ) { // START: what type? join form	
 	
		// verify firstName
		if ( document.getElementById('firstName').value.length == 0 ) {
			errors.push('firstName');
			document.getElementById('error_firstName').style.display = "block";
			$("#firstName").focus();
		} else { 
			document.getElementById('error_firstName').style.display = "none";
		}
	 	
		// verify lastName
		if ( document.getElementById('lastName').value.length == 0 ) {
			errors.push('lastName');
			document.getElementById('error_lastName').style.display = "block";
			$("#lastName").focus();
		} else { 
			document.getElementById('error_lastName').style.display = "none";
		}
	 
		// check password match passwordConfirm
		if ( document.getElementById('password').value != document.getElementById('passwordConfirm').value ) {
			errors.push('passwordConfirm');
			document.getElementById('error_passwordConfirm').style.display = "block";
			$("#passwordConfirm").focus();
		} else { 
			document.getElementById('error_passwordConfirm').style.display = "none";
		}	 
		
		// check password validity
		//if ( document.getElementById('password').value.length < 4 ) {
		//	errors.push('password');
		//	document.getElementById('error_password').style.display = "block";
		//} else { 
		//	document.getElementById('error_password').style.display = "none";
		//}	

		// verify username
		if ( document.getElementById('username').value.length < 4 || document.getElementById('username').value.length > 20 ) {
			errors.push('username');
			document.getElementById('error_username').style.display = "block";
			$("#username").focus();
		} else { 
			document.getElementById('error_username').style.display = "none";
		}	
		
		// verify email
		if ( document.getElementById('email').value.length == 0 ) {
			errors.push('email');
			document.getElementById('error_email').style.display = "block";
			$("#email").focus();
		} else { 
			document.getElementById('error_email').style.display = "none";
		}	
		
		// verify provided emails match
		if ( document.getElementById('email').value != document.getElementById('emailConfirm').value ) {
			errors.push('emailConfirm');
			document.getElementById('error_emailConfirm').style.display = "block";
			$("#emailConfirm").focus();
		} else { 
			document.getElementById('error_emailConfirm').style.display = "none";
		}	
		
		// verify blogTitle
		if ( document.getElementById('blogTitle').value.length == 0 ) {
			errors.push('blogTitle');
			document.getElementById('error_blogTitle').style.display = "block";
			$("#blogTitle").focus();
		} else { 
			document.getElementById('error_blogTitle').style.display = "none";
		}
		
		// verify blogDescription
		if ( document.getElementById('blogDescription').value.length == 0 ) {
			errors.push('blogDescription');
			document.getElementById('error_blogDescription').style.display = "block";
			$("#blogDescription").focus();
		} else { 
			document.getElementById('error_blogDescription').style.display = "none";
		}
		
		// verify blogURL
		if ( document.getElementById('blogURL').value.length == 0 ) {
			errors.push('blogURL');
			document.getElementById('error_blogURL').style.display = "block";
			$("#blogURL").focus();
		} else { 
			document.getElementById('error_blogURL').style.display = "none";
		}		
	  
		// check CAPTCHA
		if ( document.getElementById('captchaText').value.length == 0 ) {
	  		errors.push('captcha');
	  		$("#error_captcha").slideDown(100);
	  		$("#captcha").focus();
		} else { 
			$("#error_captcha").slideUp(100); 
		}	
		
		// verify agreeTerms is checked
		if ( document.getElementById('agreeTerms').checked == false ) {
			errors.push('agreeTerms');
			$("#error_agreeTerms").slideDown(100);
			$("#agreeTerms").focus();
		} else { 
			$("#error_agreeTerms").slideUp(100); 
		}
	 
		// verify agreeDisplay is checked
		if ( document.getElementById('agreeDisplay').checked == false ) {
			errors.push('agreeDisplay');
			$("#error_agreeDisplay").slideDown(100);
			$("#agreeDisplay").focus();
		} else {
			$("#error_agreeDisplay").slideUp(100); 
		}	
		
		// verify agreePosts is checked
		if ( document.getElementById('agreePosts').checked == false ) {
			errors.push('agreePosts');
			$("#error_agreePosts").slideDown(100);
			$("#agreePosts").focus();
		} else { 
			$("#error_agreePosts").slideUp(100);
		}		
		
		// verify agreeMonth is checked
		if ( document.getElementById('agreeMonth').checked == false ) {
			errors.push('agreeMonth');
			$("#error_agreeMonth").slideDown(100);
			$("#agreeMonth").focus();
		} else { 
			$("#error_agreeMonth").slideUp(100);
		}

	} else if ( t == 'changePassword' ) {
 
  		// check userPassword 
		if ( document.getElementById('userPassword').value.length == 0 ) {
			errors.push('userPassword');
			$("#error_userPassword").slideDown(100);
			$("#userPassword").focus();
		} else { 
			$("#error_userPassword").slideUp(100);
		}	
 
 
 		// check userPasswordNew 
		if ( document.getElementById('userPasswordNew').value.length == 0 ) {
			errors.push('userPasswordNew');
			$("#error_userPasswordNew").slideDown(100);
			$("#userPasswordNew").focus();
		} else { 
			$("#error_userPasswordNew").slideUp(100);
		}	

 		// check password match passwordConfirm
		if ( document.getElementById('userPasswordNew').value != document.getElementById('userPasswordConfirm').value ) {
			errors.push('userPasswordConfirm');
			$("#error_userPasswordConfirm").slideDown(100);
			$("#userPasswordConfirm").focus();
		} else { 
			$("#error_userPasswordConfirm").slideUp(100);
		}	
 
	} else if ( t == 'blogTitleUrl' ) {

		// verify blogTitle
		if ( document.getElementById('blogTitle').value.length == 0 ) {
			errors.push('blogTitle');
			$("#error_blogTitle").slideDown(100);
			$("#blogTitle").focus();
		} else { 
			$("#error_blogTitle").slideUp(100);
		}
		
		// verify blogURL
		if ( document.getElementById('blogURL').value.length == 0 ) {
			errors.push('blogURL');
			$("#error_blogURL").slideDown(100);
			$("#blogURL").focus();
		} else { 
			$("#error_blogURL").slideUp(100);
		}		

	} else if ( t == 'profileDetails' ) {
		
		// verify email
		if ( document.getElementById('UserEmail').value.length == 0 ) {

			errors.push('UserEmail');
			$("#error_UserEmail").slideDown(100);
			$("#error_UserEmail").focus();
 			$("#UserEmail").focus();
		
		} else { 
		
 			var emailReg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
			  
			if ( emailReg.test(document.getElementById('UserEmail').value) ) {
			
				$("#error_UserEmail").slideUp(100);
			
			} else { 
						
				errors.push('UserEmail');
				$("#error_UserEmail").slideDown(100);
				$("#error_UserEmail").focus();
				
			}		
		}	
  
		// verify firstName
		if ( document.getElementById('userFirstName').value.length == 0 ) {
			errors.push('userFirstName');
			$("#error_userFirstName").slideDown(100);
			$("#error_userFirstName").focus();
		} else { 
			$("#error_userFirstName").slideUp(100);
		}
	 	
		// verify lastName
		if ( document.getElementById('userLastName').value.length == 0 ) {
			errors.push('userLastName');
			$("#error_userLastName").slideDown(100);
			$("#error_userLastName").focus();
		} else { 
			$("#error_userLastName").slideUp(100);
		}

	} else if ( t == 'addBlog' ) {

		// verify blogTitle
		if ( document.getElementById('blogTitle').value.length == 0 ) {
			errors.push('blogTitle');
			$("#error_blogTitle").slideDown(100);
			$("#blogTitle").focus();
		} else { 
			$("#error_blogTitle").slideUp(100);
		}
		
		// verify blogURL
		if ( document.getElementById('blogURL').value.length == 0 ) {
			errors.push('blogURL');
			$("#error_blogURL").slideDown(100);
			$("#blogURL").focus();
		} else { 
			$("#error_blogURL").slideUp(100);
		}	

		// verify blogDescription
		if ( document.getElementById('blogDescription').value.length == 0 ) {
			errors.push('blogDescription');
			$("#error_blogDescription").slideDown(100);
			$("#blogDescription").focus();
		} else { 
			$("#error_blogDescription").slideUp(100);
		}

	} else if ( t == 'blogDetails' ) {

		// verify blogDescription
		if ( document.getElementById('blogDescription').value.length == 0 ) {
			errors.push('blogDescription');
			$("#error_blogDescription").slideDown(100);
			$("#blogDescription").focus();
		} else { 
			$("#error_blogDescription").slideUp(100);
		}

	} else if ( t == 'comment' ) {
	
		// verify authorName
		if ( $("#authorName").val().length == 0 ) {
		//if ( document.getElementById('authorName').value.length == 0 ) {
			errors.push('authorName');
			$("#error_authorName").slideDown(100);
			$("#authorName").focus();
		} else { 
			$("#error_authorName").slideUp(100);
		}
 	
 		// verify authorEmail
		if ( document.getElementById('authorEmail').value.length == 0 ) {
			errors.push('authorEmail');
			$("#error_authorEmail").slideDown(100);
			$("#authorEmail").focus();
		} else { 
			$("#error_authorEmail").slideUp(100);
		}	
 	
 		// verify authortext
		if ( document.getElementById('authortext').value.length == 0 ) {
			errors.push('authortext');
			$("#error_authortext").slideDown(100);
			$("#authortext").focus();
		} else { 
			$("#error_authortext").slideUp(100);
		} 	
 	
	} else if ( t == 'contactUs' ) {
	
		// verify name
		if ( document.getElementById('name').value.length == 0 ) {
			errors.push('name');
			$("#error_name").slideDown(100);
			$("#name").focus();
		} else { 
			$("#error_name").slideUp(100);
		}
 	
 		// verify email
		if ( document.getElementById('email').value.length == 0 ) {
			errors.push('email');
			$("#error_email").slideDown(100);
			$("#email").focus();
		} else { 
			$("#error_email").slideUp(100);
		}	
 	
 		// verify question
		if ( document.getElementById('question').value.length == 0 ) {
			errors.push('question');
			$("#error_question").slideDown(100);
			$("#question").focus();
		} else { 
			$("#error_question").slideUp(100);
		} 


	} else if ( t == 'login' ) {
	
		// verify email
		if ( document.getElementById('email').value.length == 0 ) {
			errors.push('email');
			$("#error_email").slideDown(100);
			$("#email").focus();
		} else { 
			$("#error_email").slideUp(100);
		}
 	
 		// verify password
		if ( document.getElementById('password').value.length == 0 ) {
			errors.push('password');
			$("#error_password").slideDown(100);
			$("#password").focus();
		} else { 
			$("#error_password").slideUp(100);
		}	
  	
 	} else if ( t == 'passwordhelp' ) {
	
		$("#message").hide();
	
		// verify email
		if ( document.getElementById('email').value.length == 0 ) {
			errors.push('email');
			$("#error_email").slideDown(100);
			$("#email").focus();
		} else { 
			$("#error_email").slideUp(100);
		}	 	
  	
 	} // END: what type?
	
 	var errorMessage = "";
	
	if ( errors.length > 0 ) {
		
		//for (var i=0; i < errors.length; i++) {
				// alert(errors[i]);
		//		errorMessage = errorMessage + ' ' + errors[i];
 		//}
 		// alert("Invalid input. Please correct the errors in the form and try again.");
		
	} else {
		$("#ActionID").val(action);
		return true;
	}
  	return false;
}

function changeOption(dest, value, submitForm) {
	
	d = document.getElementById(dest);
	t = document.getElementById(dest).options.length;
	r = d.selectedIndex + value + 1;
	
	if ( r <= t && r >= 1 ) { // !
		d.selectedIndex = d.selectedIndex + value;
	}
	
	if ( submitForm == 1 ) { 
		document.form.submit(); 
	}
	
	return false;
}

function setAction(action, id, conf, send) {
	
	if ( id != 0 ) {	 
		$("#id").val(id);
	}	 
 	if ( conf!= 0 ) {
		var r=confirm(confirmMessages[conf]);
		if (r==true) {
			$("#ActionID").val(action);
		} else {
			return false;
		}
	} else {
		
		$("#ActionID").val(action);
		if ($.browser.safari || $.browser.chrome) {
			//alert('chrome or safari');
		} else {	
		document.form.submit(); 
		}
	}
}

var confirmMessages = [
	[ '' ], 																		// 0
	[ 'Are you sure you want to remove this blog?' ], 								// 1
	[ 'Are you sure you want to cancel your changes?' ], 							// 2	
	[ 'Are you sure you want to delete this friend?' ] 								// 3
];
$(function() {
    $("#SearchTextInput").keydown(function(e)
    {
		if (e.keyCode == 13) {	
			$("#SearchButton").trigger('click');
		}
    });
	$('#doComment').click(function() 
	{ 
		$("#form").attr("action", "#comments");
		$("#pageNum").val("1");
		return validate('comment','doComment');
		return false;
	});
});