function init() {
	gebi('blogMenu').style.display = 'none';
	gebi('blogTopicsContainer').style.display = 'block';
	cfv.config({fail:cfv.failHandler,failMessageHandler : showError});
	if (gebi("profileMyBlog_profile_edit") != null) {
		setProfileValidation();
	}
}

function setBlogValidation(){
	cfv.resetObservers();	
//	cfv.add('authors', ['blur'], ['not_empty'], {messages:"Please enter blogs authors"});
//	cfv.add('blogImg', ['blur'], ['not_empty'], {messages:"Please enter your last name"});
}

function setProfileValidation() {
	cfv.resetObservers();
	cfv.add('fname', ['blur'], ['not_empty'], {messages:"Please provide your first name"});
	cfv.add('password', ['blur'], ['is_length', 6, 12], {messages:"Password should be 6 to 12 characters" , optional:true});
	cfv.add('retype_password', ['blur'], ['is_compare','password'], {messages:"Passwords do not match"});
//	cfv.add('title', ['blur'], ['not_empty'], {messages:"Please enter blog title"});
//	cfv.add('email', ['blur'], ['is_email'], {messages:"Please enter a vaild email"});
//	cfv.add('interests_holder', ['mouseout'], ['is_custom',isInterestChosen], {messages:"Please choose at leat one interest"});
}

function isInterestChosen() {
	var container = gebi("interests_holder");
	var inputs = container.getElementsByTagName("input");
	var res = false;
	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].checked) {
			res = true;
			break;
		}
	}
	return res;
}

function postUserComment(uid, commenterId) {
    if (validate()) {
        var text = document.getElementById("text").value;
        var captcha = gebi("captcha").value;
        document.getElementById("text").value = "";
        if (text.trim() != "") {
            new Ajax.Updater("chatBox", "/execute/comp", {
                parameters: "method=userComments&params[]=add&params[]=" + uid + "&params[]=" + commenterId + "&params[]=" + escape(text) + "&params[]="+captcha ,
                method:"post",
                evalScripts:true
            });
        }
        window.setTimeout('reloadImage("captchaImg")', 1000);
        gebi("captcha").value = "";
    }
}

function removeChatLine(uid , oid){
    new Ajax.Updater("chatBox", "/execute/comp", {
        parameters: "method=userComments&params[]=remove&params[]=" + uid + "&params[]="+ oid +"&params[]=&params[]=",
        method:"get"
    });
}

function getUserComments(uid) {
	new Ajax.Updater("chatBox", "/execute/comp", {
		parameters: "method=userComments&params[]=get_all&params[]=" + uid,
		method:"get"
	});
}

function showUserCommentsPanel() {
    var lable = gebi("dropLable");
    var panel = gebi("commentsPanel");
	panel.style.display = "";
    lable.style.display = "none";
}

function updatePersonalInfo() {
	hideErrors();
	if (validate()) {
		//Gather params
		var userid = gebi("user_id").value;
		var firstname = gebi("fname").value;
		var lastname = gebi("lname").value;
//		var email = gebi("email").value;
//		var birthday = gebi("birthday").value;
		var country = gebi("country").value;
		var gender = gebi("gender").value;
		var creationdate = gebi("creation_date").value;
		var password = gebi("password").value;
		//todo - make sure password r equal
		var retype_password = gebi("retype_password").value;
		var interests = new Array();

//		var interestElements = gebi("interests_holder").getElementsByTagName("input");
//		if (interestElements.length > 0) {
//			for (var i = 0; i < interestElements.length; i++) {
//				if (interestElements[i].checked) {
//					interests.push(interestElements[i].value);
//				}
//			}
//		}

		//Send AJAX request
		var params = [
				"userid=",userid,
				"&firstname=",firstname,
				"&lastname=",lastname,
//				"&birthday=",birthday,
				"&country=",country,
				"&gender=",gender,
				"&creationdate=",creationdate,
				"&password=",retype_password,
				"&interests=",interests.join(",")
				];

		new Ajax.Request('/user/index/updatePersonalInfo/', {
			method:'post',
			parameters: params.join(''),
			onException:generalAJAXFailure,
			onFailure:generalAJAXFailure,
			onSuccess: function(response) {
				//Eval JSON
				var responseData = response.responseText;
				var json = response.responseText.evalJSON();
				var msg = "";
				var msgElem = gebi('updatePersonalErrors')

				//Display appropriate message according to server's response
				switch (json.statusCode) {
					case ERRORS.SUCCESS:
						new Ajax.Updater("userPersonalDetails", "/user/index/personalInfo", {
							parameters: "uid=" + json.uid,
							method:"post"
						});
						hideElement('profileMyBlog_profile_edit');
						displayElement('profileMyBlog_profile');
						msg = 'Your info was successfully updated';
						break;
					case ERRORS.ERROR_DATA_VALIDATION:
						msg = 'There was a problem with your data.';
						break;
					case ERRORS.ERROR_NO_RECORD_UPDATED:
						hideElement('profileMyBlog_profile_edit');
						displayElement('profileMyBlog_profile');
						break;
					case ERRORS.ERROR_INVALID_DATA:
						alert('invalid data');
						break;
					default:
						alert('No suitable status code');
				}

				msgElem.style.display = 'block';
				msgElem.innerHTML = msg;
			}
		});
	}
}

function updateAvatar(fileInput){
    var path = fileInput.value;
    var ext = path.substr(path.lastIndexOf(".") + 1);
    if (ext.toLowerCase() != "gif" && ext.toLowerCase() != "jpeg" && ext.toLowerCase() != "jpg" && ext.toLowerCase() != "png") {
        showError("avatar", "Please select jpg/gif/png formats only");
        setTimeout("hideErrors('avatar')", 2500);
    } else {
        setLoadingStatus($("avatar"));
        gebi("avatarFrm").submit();
    }
}

function updateAvatarCallback(src){
    $("avatar").src = src;
    $('loaderGif').style.display = "none";
}

function updateAboutMe() {
	hideErrors();
	if (validate()) {
		//Gather params
		var userid = gebi("user_id").value;
		var text = gebi("about_me").value;

		//Send AJAX request
		var params = [
				"userid=",userid,
				"&about_me=",text,
				];

		new Ajax.Request('/user/index/updateAboutMe/', {
			method:'post',
			parameters: params.join(''),
			onException:generalAJAXFailure,
			onFailure:generalAJAXFailure,
			onSuccess: function(response) {
				//Eval JSON
				var responseData = response.responseText;
				var json = response.responseText.evalJSON();
				var msg = "";
				var msgElem = gebi('updateAboutErrors')

				//Display appropriate message according to server's response
				switch (json.statusCode) {
					case ERRORS.SUCCESS:
						hideElement('aboutMe_profile_edit');
                        gebi('aboutMe_profile').innerHTML = gebi("about_me").value;
                        closeAboutMeEdit();
						msg = 'Your info was successfully updated';
						break;
					case ERRORS.ERROR_DATA_VALIDATION:
						msg = 'There was a problem with your data.';
						break;
					case ERRORS.ERROR_NO_RECORD_UPDATED:
						hideElement('aboutMe_profile_edit');
						displayElement('aboutMe_profile');
						break;
					case ERRORS.ERROR_INVALID_DATA:
						alert('invalid data');
						break;
					default:
						alert('No suitable status code');
				}

				msgElem.style.display = 'block';
				msgElem.innerHTML = msg;

            }
		});
	}
}

function handleBlogUpdate(json){
    var msg = null;
    var o = json.evalJSON();
    switch (o.statusCode) {
        case ERRORS.ERROR_NO_RECORD_UPDATED:
        case ERRORS.SUCCESS:
            hideElement('profileMyBlog_myBlog_edit');
            displayElement('profileMyBlog_myBlog');
            msg = 'Blog info was successfully updated';

            if (o.imageUrl){
                gebi("blogImage").src = o.imageUrl;
                gebi("blogImageEdit").src = o.imageUrl;
            }

            if (o.authors){
                gebi("authors").value = o.authors;
//                gebi("authorsView").innerHTML = o.authors;
            }

            break;
        case ERRORS.ERROR_DATA_VALIDATION:
            msg = 'There was a problem with your data.';
            break;
    }

    if (msg){
        var msgElem = gebi('updateBloggerErrors')
        msgElem.style.display = 'block';
        msgElem.innerHTML = msg;
    }

}

function updateBloggerInfo() {
	if (validate()) {
        gebi("blogFrm").submit();
//		//Gather params
//		var userid = gebi("blog_user_id").value;
//		var blogid = gebi("blog_id").value;
////		var title = gebi("title").value;
//		var authors = gebi("authors").value;
//		var description = gebi("description").value.trim();
//		var tags = gebi("tags").value;
//		var url = gebi("url").value;
//
//		var allChkTopics = document.getElementsByName("chkTopics");
//		var countTopics = allChkTopics.length;
//		var topicsAdded = Array();
//		//gets all selected topics
//		for (var i = 0; i < countTopics; i++) {
//			if (allChkTopics[i].checked) {
//				topicsAdded.push(allChkTopics[i].id);
//			}
//
//		}
//
//		//Send AJAX request
//		var params = [
//				"userid=",userid,
//				"&blogid=",blogid,
//				"&title=",title,
//				"&authors=",authors,
//				"&description=",description,
//				"&topics=",topicsAdded,
//				"&tags=",tags,
//				"&url=",url
//				];
//
//		new Ajax.Request('/user/index/updateBloggerInfo/', {
//			method:'post',
//			parameters: params.join(''),
//			onException:generalAJAXFailure,
//			onFailure:generalAJAXFailure,
//			onSuccess: function(response) {
//				//Eval JSON
//				var responseData = response.responseText;
//				var json = response.responseText.evalJSON();
//				var msg;
//				var msgElem = gebi('updateBloggerErrors')
//
//				//Display appropriate message according to server's response
//				switch (json.statusCode) {
//					case ERRORS.SUCCESS:
//						new Ajax.Updater("userBloggerDetails", "/user/index/bloggerInfo", {
//							parameters: "uid=" + json.uid,
//							method:"post"
//						});
//						hideElement('profileMyBlog_myBlog_edit');
//						displayElement('profileMyBlog_myBlog');
//						msg = 'Your info was successfully updated';
//						break;
//					case ERRORS.ERROR_DATA_VALIDATION:
//						msg = 'There was a problem with your data.';
//						break;
//					default:
//						alert('No suitable status code');
//				}
//
//				msgElem.style.display = 'block';
//				msgElem.innerHTML = msg;
//			}
//		});
	}
}


function profile_myBlog(tabChosen) {
	hideErrors();
	if (tabChosen == 'profile') {
		$('profile_myBlog_Header').getElementsByTagName('li')[0].className = 'profile_myBlog_chosen';
		$('profile_myBlog_Header').getElementsByTagName('li')[1].className = '';
		$('profile_myBlog_Header').getElementsByTagName('a')[0].blur();
		$('profile_myBlog_Header').getElementsByTagName('a')[1].blur();
		displayElement('profileMyBlog_profile');
		hideElement('profileMyBlog_myBlog', 'profileMyBlog_myBlog_edit', 'profileMyBlog_profile_edit');
	} else {
		$('profile_myBlog_Header').getElementsByTagName('li')[0].className = '';
		$('profile_myBlog_Header').getElementsByTagName('li')[1].className = 'profile_myBlog_chosen';
		$('profile_myBlog_Header').getElementsByTagName('a')[0].blur();
		$('profile_myBlog_Header').getElementsByTagName('a')[1].blur();
		displayElement('profileMyBlog_myBlog');
		hideElement('profileMyBlog_profile', 'profileMyBlog_myBlog_edit', 'profileMyBlog_profile_edit');
	}
}
function editAboutMe() {
	hideErrors();
	setProfileValidation();
	displayElement('aboutMe_profile_edit');
	hideElement('aboutMe_profile');
    hideElement('editAboutBtn');
}
function editMyProfile() {
	hideErrors();
	setProfileValidation();
	displayElement('profileMyBlog_profile_edit');
	hideElement('profileMyBlog_profile');
}
function editMyBlog() {
//    try {
        hideErrors();
        setBlogValidation();
//    } catch(e) {}
    displayElement('profileMyBlog_myBlog_edit');
	hideElement('profileMyBlog_myBlog');
}

function closeAboutMeEdit() {
	hideErrors();
	hideElement('aboutMe_profile_edit');
    displayElement('editAboutBtn');
    displayElement('aboutMe_profile');
}
function closeProfileEdit() {
	hideErrors();
	hideElement('profileMyBlog_profile_edit');
	displayElement('profileMyBlog_profile');
}

function closeBlogEdit() {
	hideErrors();
	hideElement('profileMyBlog_myBlog_edit');
	displayElement('profileMyBlog_myBlog');
}