
 //  this function trim  the spaces from left and right 
 
var objMsg = {
		
		'MSG_NON_LOGIN_FOLLOW' : "To follow, you need to login with your email address and password.",
		'MSG_ENTER_VALID_EMAIL' : "Please enter a valid email",
		'MSG_ENTER_PASSWORD' : "Please enter your password",
		'MSG_CONFIRM_PASSWORD' : "Please confirm your password",
		'MSG_CONFIRM_PASSWORD_NOT_MATCH' : "The passwords do not match",
		'MSG_ENTER_COMMENT': "Please enter a comment",
		'MSG_COMMENT_LENGTH' : "Comment should be upto 3000 characters.",
		'MSG_CONFRMATION_DELETE' :"Do you really want to go to delete??",
		'MSG_ENTER_TAG' : "Please enter a tag",
		'MSG_CONFIRMATION_POST_PRIVATE' : "Are you sure you want to make this post private?",
		'MSG_CONFIRMATION_POST_PUBLIC' : "Are you sure you want to make this post post?",
		'MSG_CONFIRMATION_DELETE_POST' : "Are you sure you want to delete this Jot?",
		'MSG_ENTER_REPEAT_PASSWORD' :"Please enter repeat password.",
		'MSG_REPEAT_PASSWORD_NOT_MATCHED' : "Password and repeat password are not matched",
		'MSG_VALID_DATE' : "Please enter valid date",
		'MSG_VALID_YEAR' : "Please enter valid year",
		'MSG_ABOUT_ME_TEXT_LENGTH' : "About me text should be upto 1000 characters.",
		'MSG_PASSWORD_MIN_MAX_LENGTH' : "Password should be between 6 to 20 characters",
		'MSG_CONFIRMATION_STOP_FOLLOWING' : "Stop following?",
		'MSG_CONFIRMATION_DELETE_COMMENT' : "Are you sure you want to delete this comment?"
			
}

function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}
// This function validate the string as per the type given
function validateString(str, type)
{
	if(type == "email")					//Valid Email ID a@b.c
		reg = "^(([a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9])|([a-zA-Z0-9]))@(([a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9])|([a-zA-Z]))\\.(([a-zA-Z][a-zA-Z\\.]*[a-zA-Z])|([a-zA-Z]))$";
	if(type == "num")					//Only Numbers are allowed
		reg = "^[0-9]*$";
	//alert(reg);
	str = trim(str);
	var myReg = new RegExp(reg);
	return str.match(myReg);
}
/** function validate the login */
function validateLogin(elmLoginId, elmPassword)
{
	var loginId = trim($("#"+elmLoginId).val());
	var password = $("#"+elmPassword).val();
	
	if(!validateString(loginId,"email"))
	{
		$("#loginMsg").text(objMsg.MSG_ENTER_VALID_EMAIL);
		$("#"+elmLoginId).focus();
		return false;
	}
	else if(!password)
	{
		$("#loginMsg").text(objMsg.MSG_ENTER_PASSWORD);
		$("#"+elmPassword).focus();
		return false;
	}
	else
	{ 
		return true;		
	}
}
function validateSignup(elmLoginId, elmPassword, elmConfirmPassword)
{
	var loginId = trim($("#"+elmLoginId).val());
	var password = trim( $("#"+elmPassword).val());
	var confirmPassword = trim($("#"+elmConfirmPassword).val());
	if(!validateString(loginId,"email"))
	{   
		$("#showMsg").text(objMsg.MSG_ENTER_VALID_EMAIL);
		$("#"+elmLoginId).focus();
		return false;
	}
	else if(!password)
	{
		$("#showMsg").text(objMsg.MSG_ENTER_PASSWORD);
		$("#"+elmPassword).focus();
		return false;
	}
	else if(!isPasswordLengthOK(password))
	{
		$("#showMsg").text(objMsg.MSG_PASSWORD_MIN_MAX_LENGTH);
		$("#"+elmPassword).focus();
		return false;
	}
	else if(!confirmPassword)
	{
		$("#showMsg").text(objMsg.MSG_CONFIRM_PASSWORD);
		$("#"+elmConfirmPassword).focus();
		return false;
	}
	else if (!isPasswordLengthOK(confirmPassword))
	{
		$("#"+elmConfirmPassword).focus();
		return false;
	}
	else if(password != confirmPassword)
	{
		$("#showMsg").text(objMsg.MSG_CONFIRM_PASSWORD_NOT_MATCH);
		$("#txtSignupLoginPassword").val("");
		$("#txtSignupConfirmPassword").val("");
		$("#"+elmPassword).focus();
		return false;
	}
	else
	{ 
		return true;		
	}
}
/** this function set the provided value into the control
 * @param obj, val (control, string) 
 */
function setValue(obj,val)
{
	if(!trim(obj.value))
	{
		obj.value = val;
	}
}
/**
 * This function remove the value from the control 
 * @param obj (control)
 */
function removeValue(obj)
{
	obj.value = "";
}
/**
 * This method send request to controller to update the pin date
 * @param postId, pinned(tinyInt)
 * @return
 */
function updatePinDate( postId , pinnedStatus )
{
	var frm = document.forms["actionForm"];
	frm.action = "/controller/postcontroller.php";
	frm.postId.value = postId;
	frm.id.value = pinnedStatus;
	frm.operation.value = 'updatepin';
	frm.submit();

}
/**
 * This function send request to user controller to follow 
 * the user
 * @return
 */
function followUser(opt,userId)
{
	var frm = document.forms["frm-follow-user"];
	if(!isLoggedIn){
		openPopupForFollow();
		return false;
	}
	if(opt == "stopfollowuser")
	{
		is_ok =  confirm(objMsg.MSG_CONFIRMATION_STOP_FOLLOWING);
	}
	else
	{
		is_ok = true;
	}
	if(is_ok)
	{
		frm.action = "/controller/usercontroller.php";
		frm.operation.value = opt;
		frm.followUserId.value = userId;
		frm.submit();
	}
	else
	{
		return false;
	}
}
/**
 * This function send request to post controller
 * to follow the post
 * @return
 */
function followPost(opt,postId)
{
	
	var frm = document.forms["frm-follow-post"];
	if(!isLoggedIn){
		openPopupForFollow();
		return false;
	}
	if(opt == "stopfollowpost")
	{
		is_ok =  confirm(objMsg.MSG_CONFIRMATION_STOP_FOLLOWING);
	}
	else
	{
		is_ok = true;
	}
	if(is_ok)
	{
		frm.action = "/controller/postcontroller.php";
		frm.operation.value = opt;
		frm.followPostId.value = postId;	
		frm.submit();
	}
	else
	{
		return false;
	}
	
}
function openPopupForFollow(operation, id)
{
	/*
	$("#userProfile").show();
	$("#divFollowLogin").show();
	$("#divFollowSendPassword").hide();
	$("#followAction").val(operation);
	$("#followId").val(id);
	$("#followPopupLoginId").focus();
	*/
	alert(objMsg.MSG_NON_LOGIN_FOLLOW);
}
function openUserProfilePopup()
{
	$("#userProfile").show();
}
/**
 *  this function check whether user has entered comment or not
 * @return
 */
function validateComment()
{
	
	var frm = document.forms["add-comment-form"];
	var usercommentVal = trim(frm.userComment.value);
	if(!usercommentVal.length)
	{	
		alert(objMsg.MSG_ENTER_COMMENT);
		frm.userComment.focus();
		return false;
	}
	else if(usercommentVal.length >3000)
	{
		alert(objMsg.MSG_COMMENT_LENGTH);
		frm.userComment.focus();
		return false;
	}
	
	
}
/**
 * This function validate the email address and send request to add this email id
 * @return
 */


function deleteFollowing(id)
{
	
	var strVar = 'following_'+id;
	var where_to= confirm(objMsg.MSG_CONFRMATION_DELETE);
	if (where_to== true)
	{
		
		$.ajax({
			   type: "POST",
			   url: "/controller/usercontroller.php",
			   data: "operation=stopfollowuser&followUserId="+id+"&ajaxRequest=1",
			   success: function(retData){
					var obj = eval('('+retData+')');
					switch(obj.out)
					{
					case 'success':
						alert(""+obj.msg);
					}
					
				 }
				});
		
	}
	else
	{
		return false;
	}
}

function validateAddTag()
{
	var frm = document.forms["tag-add-form"];
	var strTag = trim(frm.tagName.value);
	if(!strTag || strTag == "Add Tag")
	{
		alert(objMsg.MSG_ENTER_TAG);
		frm.tagName.focus();
		return false;
	}
	else
	{
		frm.submit();
	}
	
}

function calenderPost(monthYear)
{
	
	var arr = monthYear.split("/");
	var frm = document.forms["frm-calendar"];
	frm.month.value = arr[0]; 
	frm.year.value = arr[1];
	frm.action = window.location.href;
	frm.submit();
}

function paginationPost(page)
{
	var frm = document.forms["frm-pagination"];
	frm.page.value = page; 
	frm.action = window.location.href;
	frm.submit();
}

function makePrivate(elm)
{
	var where_to = 0;
	var isMakePrivare = 0;
	if(elm.checked)
	{
		where_to =  confirm(objMsg.MSG_CONFIRMATION_POST_PRIVATE);
		isMakePrivare = 1;
	}
	else
	{
		where_to =  confirm(objMsg.MSG_CONFIRMATION_POST_PUBLIC);
		isMakePrivare = 0;
	}
	if (where_to== true)
	{
		var frm = document.forms["actionForm"];
		frm.action = "/controller/postcontroller.php";
		frm.makePostPrivate.value = isMakePrivare;
		frm.operation.value = 'makepostprivate';
		frm.submit();
	}
	else
	{
		elm.checked = ! elm.checked;
	}
	return false;;
}

function deletePost()
{
	var where_to = 0;
	where_to =  confirm(objMsg.MSG_CONFIRMATION_DELETE_POST);
	if (where_to == true)
	{
		var frm = document.forms["actionForm"];
		frm.action = "/controller/postcontroller.php";
		frm.operation.value = 'deletepost';
		frm.submit();
	}
	else
	{
		return false;
	}
}
/**
 * This function is used to delete the comment
 * @param commentId
 * @return
 */
function deleteComment(commentId)
{
	var is_ok = 0;
	is_ok =  confirm(objMsg.MSG_CONFIRMATION_DELETE_COMMENT);
	if (is_ok == true)
	{
		
		var frm = document.forms["actionForm"];
		frm.action = "/controller/postcontroller.php";
		frm.operation.value = 'deletecomment';
		frm.id.value = commentId;
		frm.submit();
	}
	else
	{
		return false;
	}
	
}
/* Controll the length of textarea tag*/

function imposeMaxLength(Event, Object, MaxLen) 
{ 

        return (Object.value.length <= MaxLen)||(Event.keyCode == 8 ||Event.keyCode==46||(Event.keyCode>=35&&Event.keyCode<=40)) 
} 
function validateAccount()
{
	var validateDOB = false;
	var frm = document.forms["frmUserAcccount"];
	frm.password.value = trim(frm.password.value);
	frm.confirmPassword.value = trim(frm.confirmPassword.value);
	var mob = frm.monthOfBirth.value;
	var dob = frm.dateOfBirth.value;
	var yob = frm.yearOfBirth.value;
	var aboutMeVal = trim(frm.about_me.value);
	if(!frm.password.value)
	{
		alert(objMsg.MSG_ENTER_PASSWORD);
		frm.password.focus();
		return false;
	}
	else if( !isPasswordLengthOK(frm.password.value) )
	{
		$("#showMsg").text(objMsg.MSG_PASSWORD_MIN_MAX_LENGTH);
		frm.password.focus();
		return false;
	}
	else if(!frm.confirmPassword.value)
	{
		alert(objMsg.MSG_ENTER_REPEAT_PASSWORD);
		frm.confirmPassword.focus();
		return false;
	}
	else if( !isPasswordLengthOK(frm.confirmPassword.value))
	{
		frm.confirmPassword.focus();
		return false;
	}
	else if(frm.password.value != frm.confirmPassword.value)
	{
		alert(objMsg.MSG_REPEAT_PASSWORD_NOT_MATCHED);
		frm.confirmPassword.focus();
		return false;
	}
	else if(mob !=0 || dob!="" || yob !="")
	{
		var chkDob = validateString(dob,"num");
		var chkYob = validateString(yob,"num");
		
		/*if(mob == 0)
		{
			alert("Please select month")
			frm.monthOfBirth.focus();
			return false;
		}
		
		else if( chkDob == null || chkDob== "" || chkDob == 0)
		{
			alert("Please enter valid date");
			frm.dateOfBirth.focus();
			return false;
		}
		else if(chkYob == null || chkYob== "" || chkYob == 0)
		{
			alert("Please enter valid year");
			frm.yearOfBirth.focus();
			return false;
		}
		*/
		
		if( dob!="" && (chkDob == null || chkDob== "" || chkDob == 0))
		{
			alert(objMsg.MSG_VALID_DATE);
			frm.dateOfBirth.focus();
			return false;
		}
		else if( yob !="" && (chkYob == null || chkYob== "" || chkYob == 0))
		{
			alert(objMsg.MSG_VALID_YEAR);
			frm.yearOfBirth.focus();
			return false;
		}
	}
	if(aboutMeVal.length > 1000)
	{
		alert(objMsg.MSG_ABOUT_ME_TEXT_LENGTH);
		frm.about_me.focus();
		return false;
	}
	frm.action = "/controller/usercontroller.php";
	frm.operation.value = 'updateprofile';
}

function isPasswordLengthOK(value)
{
	if(value.length < 6 || value.length > 20)
	{
		//alert(objMsg.MSG_PASSWORD_MIN_MAX_LENGTH);
		return false;
	}
	else
	{
		return true;
	}
}
function isjQueryObjectExists(sId, identifier)
{
	 if(identifier == 'id')
	 {
		 return $('#' + sId).is('*');
	 }
	 else if(identifier == 'class')
	 {
	     return $('.' + sId).is('*');
	 }
	 else
	 {
	     return false;
	 }
}

