Blogs = {
	showAddBlogForm: function()
	{
		$('addBlogForm').style.display = "block";
		$('noBlog').style.display = "none";
	},
	
	addBlog: function(userId, blogId, type)
	{
		var err = false;
		var bottomsArray = new Array('addBlog');
		Xms.lockUnLockBottons(bottomsArray,'lock');
		
		var blogNameErr = new Array('nameEmpty', 'nameWrongSymbols');
		var blogDescriptionErr = new Array('tooLong');
		
		var blogNameObj = $('blogName');
		var blogDescriptionObj = $('blogDescription');

		var blogName = blogNameObj.getValue();
		var blogDescription = blogDescriptionObj.getValue();
		
		var elemsArr = new Array('blogName', 'blogDescription');
		
		Xms.clearErrors(null, blogNameErr);
		Xms.clearErrors(null, blogDescriptionErr);

		Xms.clearErrors(elemsArr, null);
		
		if(blogName.strip() == '') {
			err = Xms.showErrors(blogNameObj,'nameEmpty');
		} else if(!Validate.freeform(blogName)) {
			err = Xms.showErrors(blogNameObj,'nameWrongSymbols');
		} else if(blogDescription != '' && blogDescription.strip().length > 500) {
			err = Xms.showErrors(blogDescriptionObj,'tooLong');
			blogDescriptionObj.setValue(blogDescription.strip().substr(0, 500));
		}
		if(!err) {
			Xms.lockUnLockBottons(bottomsArray,'unlock');
			var argsObj = new Object();
			argsObj['operation']		= 'addBlog';
			argsObj['userId']		   = userId;
			argsObj['blogId']		   = blogId;
			argsObj['blogName']		 = blogName.strip();
			argsObj['blogDescription']  = Filter.nl2br(blogDescription).strip();
			argsObj['onlyRegisterRead'] = $F('onlyRegisterRead');
			argsObj['userId'] = userId;
//			if(type == 'community') {
//				argsObj['categoryId'] = $F('categoryId');
//			}
			ajaxCall('Blogs/showBlog', argsObj);
		} else {
			Xms.lockUnLockBottons(bottomsArray,'unlock');
		}
	},
	
	reload: function()
	{
		window.location.reload(true);
	},
	
	voteForArticle: function(articleId)
	{
		var argsObj = new Object();
		argsObj['operation'] = 'voteForArticle';
		argsObj['articleId'] = articleId;
		ajaxCall('Blogs/showBlog', argsObj);
	},
	
	editTitleForm: function()
	{
		$('divTitle').style.display = "block";
		$('aTitle').style.display = "none";
		$('spanTitle').style.display = "none";
	},
	
	saveTitle: function(blogId)
	{
		var err = false;
		
		var blogNameErr = new Array('nameEmpty', 'nameWrongSymbols');
		var blogNameObj = $('blogNameTitle');
		var blogName = blogNameObj.getValue();
		
		var elemsArr = new Array('blogNameTitle');
		
		Xms.clearErrors(null, blogNameErr);
		Xms.clearErrors(elemsArr, null);
		
		if(blogName.strip() == '') {
			err = Xms.showErrors(blogNameObj,'nameEmpty');
		} else if(!Validate.freeform(blogName)) {
			err = Xms.showErrors(blogNameObj,'nameWrongSymbols');
		}
		
		if(!err) {
			var argsObj = new Object();
			argsObj['operation'] = 'updateBlogTitle';
			argsObj['blogId']	= blogId;
			argsObj['blogName']  = blogName.strip();
			ajaxCall('Blogs/showBlog', argsObj);
		}
	},
	
	adminPanelShow: function(blogId)
	{
		var argsObj = new Object();
		argsObj['operation'] = 'adminPanelShow';
		argsObj['blogId']	= blogId;
		ajaxCall('Blogs/showBlog', argsObj);
	},
	
	communityAdminPanelShow: function(blogId)
	{
		var argsObj = new Object();
		argsObj['operation'] = 'communityAdminPanelShow';
		argsObj['blogId']	= blogId;
		ajaxCall('Blogs/showBlog', argsObj);
	},
	
	scrollToAdmin: function()
	{
		$('adminPanelDiv').scrollTo();
	},
	
	initAddComment: function()
	{
		this.commentId = '';
	},
	
	answerToComment: function(commentId)
	{
		this.commentId = commentId;
		$('blogCommentText').activate();
	},
	
	sendComment: function(articleId)
	{
		var bottomsArr = new Array ('blogCommentButton');
		Xms.lockUnLockBottons(bottomsArr,'lock');
		
		var err = false;
		var textObj = $('blogCommentText');
		var commentText = textObj.getValue();
		var commentTextErr = new Array ('addBlogCommentTextEmpty', 'addBlogCommentTooLong');
		var elemsArr = new Array ('blogCommentButton');
		
		Xms.clearErrors(elemsArr, null); 

		Xms.clearErrors(null, commentTextErr);
		
		if(commentText.strip() == '') {
			err = Xms.showErrors(textObj,'addBlogCommentTextEmpty');
		} else if(commentText.strip().length > 500) {
			err = Xms.showErrors(textObj,'addBlogCommentTooLong');
			textObj.setValue(commentText.strip().substr(0, 500));
		}
		if (err == false) {
			var argsObj = new Object();
			argsObj["operation"]   = "sendComment";
			argsObj["articleId"]   = articleId;
			argsObj["parentId"]   = this.commentId;
			argsObj["commentText"] = Filter.nl2BBbr(commentText).strip();
			argsObj["publicText"]  = 1;
			ajaxCall('Blogs/showBlog', argsObj);
		} else {
			Xms.lockUnLockBottons(bottomsArr,'unlock');
		}
	},
	
	initAddArticle: function(adress, link)
	{
		this.adress = adress;
		this.link = link;
		this.linkRedirect = link + 'userblog/' + adress + '/0/0/1/0/';
	},
	
	initAddCommunityArticle: function(communityId, articleCategoryId, link)
	{
		this.linkRedirect = link + 'community/' + articleCategoryId + '/' + communityId + '/0/0/1/0/';
	},
	
	initUpdateCommunityArticle: function(communityId, articleCategoryId, link)
	{
		this.linkUpdateRedirect = link + 'community/' + articleCategoryId + '/' + communityId + '/';
	},
	
	initAddArticleToCommunity: function(categoryId, blogId, link)
	{
		this.blogCategoryId = categoryId;
		this.blogId = blogId;
		this.link   = link;
	},
	
	addArticlePanelShow: function(blogId,link,adress,categoryId)
	{
		var argsObj = new Object();
		argsObj['operation'] = 'addArticleForm';
		argsObj['blogId']	= blogId;
		argsObj['link']	  = link;
		argsObj['adress']	= adress;
		argsObj['categoryId'] = categoryId;

		ajaxCall('Blogs/showBlog', argsObj);
	},
	
	saveArticle: function(blogId, articleId, blogType, vote, view)
	{
		var err;
		var bottomsArray = new Array('blogSaveBotton');
		Xms.lockUnLockBottons(bottomsArray,'lock');
		
		var articleNameErr = new Array('blogNameEmpty', 'blogNameWrongSymbols');
		var infoErr = new Array('infoEmpty', 'infoTooLong');
		
		var articleCategoryObj = $('articleCategory');
		var articleNameObj = $('articleName');
		var infoObj = $('wysiwygTextarea');
		
		var articleCategory = articleCategoryObj.getValue();
		var articleName = articleNameObj.getValue();
		var info = infoObj.getValue();
		
		var elemsArr = new Array('articleCategory', 'articleName');
		
		Xms.clearErrors(null, articleNameErr);
		Xms.clearErrors(null, infoErr);
		Xms.clearErrors(elemsArr, null);
		
		if(articleName.strip() == '') {
			err = Xms.showErrors(articleNameObj,'blogNameEmpty');
		} else if(!Validate.freeform(articleName)) {
			err = Xms.showErrors(articleNameObj,'blogNameWrongSymbols');
		} else if(info == '') {
			err = Xms.showErrors(infoObj,'infoEmpty');
		} else if(info.strip().length > 5000) {
			err = Xms.showErrors(infoObj,'infoTooLong');
			infoObj.setValue(info.substr(0, 5000));
		}
		
		if(!err) {
			Xms.lockUnLockBottons(bottomsArray,'unlock');
			var argsObj = new Object();
			argsObj['operation']	   = 'saveAricle';
			argsObj['blogId']		  = blogId;
			argsObj['type']			= blogType;
			argsObj['articleCategory'] = articleCategory;
			argsObj['articleName']	 = articleName.strip();
			argsObj['info']			= Filter.nl2br(info).strip();
			argsObj['articlePublic']   = 1;
			argsObj['articletVote']	= vote;
			argsObj['articletView']	= view;
			argsObj['articlePrivate']  = $F('articlePrivate');
			if(articleId != '') {
				argsObj['articleId']   = articleId;
				argsObj['operation']   = 'updateAricle';
			} else { 
				argsObj['operation']   = 'saveAricle';
			}
			ajaxCall('Blogs/showBlog', argsObj);
		} else {
			Xms.lockUnLockBottons(bottomsArray,'unlock');
		}
	},
	
	blogRedirect: function(articleId, articleCategoryId)
	{
		window.location = this.link + 'userblog/' + this.adress + '/' + articleCategoryId + '/' + articleId + '/1/0/';
	},

	blogUpdateRedirect: function(articleId, articleCategoryId)
	{
		window.location = this.linkUpdateRedirect + articleCategoryId + '/' + articleId + '/1/0/' ;
	},
	
	communityArticleRedirect: function(articleId, articleCategoryId)
	{
		window.location = this.link + 'community/' + this.blogCategoryId + '/' + this.blogId + '/' + articleCategoryId + '/' + articleId + '/1/0/';
	},
	
	deleteArticle: function(articleId, type, confirmDelete)
	{
		if(confirm(confirmDelete)) {
			var argsObj = new Object();
			argsObj['operation'] = 'deleteArticle';
			argsObj['articleId'] = articleId;
			argsObj['type']	  = type;
			ajaxCall('Blogs/showBlog', argsObj);
		}
	},
	
	articleDeleteRedirect: function()
	{
		window.location = this.linkRedirect;
	},
	
	communityDeleteRedirect: function()
	{
		window.location = this.link;
	},
	
	editArticle: function(articleId, adress, type)
	{
		$('adminPanelDiv').innerHTML = '';
		var argsObj = new Object();
		argsObj['operation'] = 'editArticle';
		argsObj['articleId'] = articleId;
		argsObj['adress']	= adress;
		argsObj['type']	  = type;
		ajaxCall('Blogs/showBlog', argsObj);
	},
	
	deleteAllComments: function(articleId, type ,confirmDelete)
	{
		if(confirm(confirmDelete)) {
			var argsObj = new Object();
			argsObj['operation'] = 'deleteAllComments';
			argsObj['articleId'] = articleId;
			argsObj['type']	  = type;
			ajaxCall('Blogs/showBlog', argsObj);
		}
	},
	
	deleteSelectedComments: function(type, confirmDelete)
	{
		var comments = this.checkboxGetValue('singleBlogComment');
		if(comments != '') { 
			if(confirm(confirmDelete)) {
				var argsObj = new Object();
				argsObj['operation'] = 'deleteSelectedComments';
				argsObj['comments']  = comments;
				argsObj['type']	  = type;
				ajaxCall('Blogs/showBlog', argsObj);
				
			}
		} else {
			alert('Выберете хотя бы один комментарий для удаления');
		}
	},
	
	checkboxGetValue: function(id) {
		var result = "";
		var coll = document.getElementsByName(id); 
		if(coll != undefined && coll != null){
			for(var i=0; i<coll.length; i++){
				if(coll[i].checked){
					result = result + coll[i].value + ",";
				}
			}
			result = result.substring(0, result.length-1);
		}
		return result;
	},
	
	categoriesAdminPanel: function(blogId,adress)
	{
		var argsObj = new Object();
		argsObj['operation'] = 'categoriesAdminPanel';
		argsObj['blogId']	= blogId;
		argsObj['link']	  = this.link;
		argsObj['adress']	= adress;
		ajaxCall('Blogs/showBlog', argsObj);
	},
	
	saveCategory: function(blogId, adress)
	{
		var err = false;
		var bottomsArray = new Array('saveCategoryBotton');
		Xms.lockUnLockBottons(bottomsArray,'lock');
		
		var categoryNameErr = new Array('categoryNameEmpty', 'categoryNameWrongSymbols');
		var categoryDescriptionErr = new Array('descrTooLong');
		
		var categoryNameObj = $('categoryName');
		var categoryDescriptionObj = $('categoryDescription');

		var categoryName = categoryNameObj.getValue();
		var categoryDescription = categoryDescriptionObj.getValue();
		
		var elemsArr = new Array('categoryName', 'categoryDescription');
		
		Xms.clearErrors(null, categoryNameErr);
		Xms.clearErrors(null, categoryDescriptionErr);

		Xms.clearErrors(elemsArr, null);
		
		if(categoryName.strip() == '') {
			err = Xms.showErrors(categoryNameObj,'categoryNameEmpty');
		} else if(!Validate.freeform(categoryName)) {
			err = Xms.showErrors(categoryNameObj,'categoryNameWrongSymbols');
		} else if(categoryDescription != '' && categoryDescription.strip().length > 500) {
			err = Xms.showErrors(categoryDescriptionObj,'descrTooLong');
			categoryDescriptionObj.setValue(categoryDescription.strip().substr(0, 500));
		}
		
		if(!err) {
			 var argsObj = new Object();
			argsObj['blogId']			  = blogId;
			argsObj['categoryName']		= categoryName;
			argsObj['categoryDescription'] = Filter.nl2br(categoryDescription);
			argsObj['link']				= this.link;
			argsObj['adress']			  = adress;

			if(this.blogCategoryId != '') {
				argsObj['blogCategoryId'] = this.blogCategoryId;
				argsObj['operation']	  = 'updateCategory';
			} else {
				argsObj['operation']	  = 'saveCategory';
			}
			ajaxCall('Blogs/showBlog', argsObj);
		} else {
			Xms.lockUnLockBottons(bottomsArray,'unlock');
		}
	},
	
	showAddCategoryPanel: function(type)
	{
		$('addBlogCategoryHref').style.display = "none";
		$('addCategoryDl').style.display = "block";
		$(type).style.display = "block";
		$('editCategoryTitle').style.display = "none";
		$('addCategoryDl').scrollTo();
		this.blogCategoryId = '';
		$('categoryName').setValue('');
		$('categoryDescription').setValue('');
	},

	deleteBlogCategory: function(articleCategoryId, blogId, adress, confirmDelete)
	{
		if(confirm(confirmDelete)) {
			var argsObj = new Object();
			argsObj['categoryId'] = articleCategoryId;
			argsObj['blogId']	 = blogId;
			argsObj['adress']	 = adress;
			argsObj['operation']  = 'deleteBlogCategory';
			ajaxCall('Blogs/showBlog', argsObj);
		}
	},
	
	editBlogCategory: function(articleCategoryId, title, info)
	{
		$('addBlogCategoryHref').style.display = "block";
		$('addCategoryDl').style.display = "block";
		$('editCategoryTitle').style.display = "block";
		$('addCategoryTitle').style.display = "none";
		$('addCategoryDl').scrollTo();
		$('categoryName').setValue(title);
		$('categoryDescription').setValue(info);
		this.blogCategoryId = articleCategoryId;
	},
	
	addCommunityForm: function(categoryId,link)
	{
		this.link = link;
		var argsObj = new Object();
		argsObj['operation'] = 'addCommunityForm';
		argsObj['categoryId'] = categoryId;
		ajaxCall('Blogs/showBlog', argsObj);
	},

	uploadInit: function()
	{
		if (this.uploadFlag == 1) {
			this.uploadFlag = 0;
 
			var errors = new Array ('bigSize', 'notUploaded', 'wrongMime', 'partial');	  
			var errorUploading = Xms.getCookie('err');
			this.photoObj.removeClassName('x-form-invalid');
			Xms.clearErrors(null, errors);
			if (errorUploading != 'false' && this.isUpload == 'on') {
				this.photoObj.addClassName('x-form-invalid');
				Xms.lockUnLockBottons(this.bottomsArr,'unlock');
				switch (errorUploading) {
					case 'BigSize' :
						Xms.showErrors(this.photoObj, 'bigSize');
					break;
					case 'Partial' :
						Xms.showErrors(this.photoObj, 'partial');
					break;
					case 'NoFile' :
						Xms.showErrors(this.photoObj, 'notUploaded');
					break;
					case 'WrongMime' :
						Xms.showErrors(this.photoObj, 'wrongMime');
					break;
				}
				Xms.deleteCookie('err','/','');
				this.isUpload = 'off';
			} else {
				 this.sendCommunity();
			}
		}
	},

	initAddCommunity: function(userId,blogId)
	{
		this.userId = userId;
		this.blogId = blogId;
		this.isUpload = 'off';
		this.uploadFlag = 0;
		this.photoObj = $('photo');
		this.bottomsArr = new Array('addBlog');
		this.onlyRegisterRead = '';
		this.onlyRegisterWrite = '';
		this.joinConfirm = '';
		this.blogName = '';
		this.blogDescription = '';
		this.photo = '';
		
	},

	saveCommunity: function()
	{
		var err = false;
		Xms.lockUnLockBottons(this.bottomsArr,'lock');
		
		$('postCategoryId').setValue($F('categoryId'));
		
		var blogNameErr = new Array('nameEmpty', 'nameWrongSymbols');
		var blogDescriptionErr = new Array('tooLong');
		var photoErr = new Array('adressError', 'extError', 'bigSize', 'notUploaded', 'wrongMime', 'partial');
		
		var blogNameObj = $('blogName');
		var blogDescriptionObj = $('blogDescription');


		this.blogName = blogNameObj.getValue();
		this.blogDescription = blogDescriptionObj.getValue();
		this.photo = this.photoObj.getValue(); 

		var elemsArr = new Array('blogName', 'blogDescription', 'photo');
		
		Xms.clearErrors(null, blogNameErr);
		Xms.clearErrors(null, blogDescriptionErr);
		Xms.clearErrors(null, photoErr);

		Xms.clearErrors(elemsArr, null);
		
		if(this.blogName == '') {
			err = Xms.showErrors(blogNameObj,'nameEmpty');
		} else if(!Validate.freeform(this.blogName)) {
			err = Xms.showErrors(blogNameObj,'nameWrongSymbols');
		} else if(this.blogDescription != '' && this.blogDescription.length > 500) {
			err = Xms.showErrors(blogDescriptionObj,'tooLong');
			blogDescriptionObj.setValue(this.blogDescription.substr(0, 500));
		} else if(this.photo != '' && !Validate.imageExt(this.photo)) {
			err = Xms.showErrors(this.photoObj,'extError');
		} else if(this.photo != '' && !Validate.pathToFile(this.photo)) {
			err = Xms.showErrors(this.photoObj,'adressError');
		}
		if(!err) {
			Xms.lockUnLockBottons(this.bottomsArr,'unlock');
			this.onlyRegisterRead = $F('onlyRegisterRead');
			this.onlyRegisterWrite = $F('onlyRegisterWrite');
			this.joinConfirm = $F('joinConfirm');
			if(this.photo != '') {
			   document.forms.addPhoto.submit();
			   this.isUpload = 'on';
			   this.uploadFlag = 1;
			} else {			
				this.sendCommunity();
			}
		} else {
			Xms.lockUnLockBottons(this.bottomsArr,'unlock');
		}
	},

	sendCommunity: function()
	{
		Xms.lockUnLockBottons(this.bottomsArr,'unlock');
		var argsObj = new Object();
		argsObj['categoryId']		= $F('categoryId');
		argsObj['blogName']			= this.blogName;
		argsObj['onlyRegisterRead']	= this.onlyRegisterRead;
		argsObj['onlyRegisterWrite'] = this.onlyRegisterWrite;
		argsObj['joinConfirm']		= this.joinConfirm;
		argsObj['photo']			= Xms.getCookie('photo');
		argsObj['userId']			= this.userId;
		Xms.deleteCookie('photo','/','');
		argsObj['blogDescription']   = Filter.nl2br(this.blogDescription);
		if(this.blogId == '') {
			argsObj['operation']  = 'addCommunity';
		} else {
			argsObj['blogId'] = this.blogId;
			argsObj['operation']  = 'updateCommunity';
		}
		ajaxCall('Blogs/showBlog', argsObj);   
	},

	communityRedirect: function(categoryId, blogId)
	{
		window.location = this.link + '/community/' + categoryId + '/' + blogId + '/0/0/1/0/';
	},

	initLink: function(link)
	{
		this.link = link;
	},

	joinCommunity: function(blogId,userId)
	{
		var argsObj = new Object();
		argsObj['blogId']	 = blogId;
		argsObj['userId']	 = userId;
		argsObj['operation']  = 'joinCommunity';
		ajaxCall('Blogs/showBlog', argsObj);   
	},

	usersAdminPanel: function(blogId)
	{
		var argsObj = new Object();
		argsObj['operation'] = 'usersAdminPanel';
		argsObj['blogId']	= blogId;
		ajaxCall('Blogs/showBlog', argsObj);
	},

	saveCommunityUsers: function(blogId, userCnt)
	{
		var argsObj = new Object();
		argsObj['operation'] = 'saveCommunityUsers';
		argsObj['blogId']	= blogId;
		var usrIdObj = new Object();
		var usrStatusObj = new Object();
		for(i = 1; i <= userCnt; i++) {
			usrIdObj[i] = $F('userId_' + i);
			usrStatusObj[i] = $F('userStatus_' + i);
		}
		argsObj['usrIds']	  = usrIdObj;
		argsObj['usrStatuses'] = usrStatusObj;
		ajaxCall('Blogs/showBlog', argsObj);
	},

	deleteCommunity: function(confirmDelete)
	{
		if(confirm(confirmDelete)) {
			var argsObj = new Object();
			argsObj['operation'] = 'deleteCommunity';
			argsObj['blogId'] = this.blogId;
			argsObj['link'] = this.link;
			ajaxCall('Blogs/showBlog', argsObj);
		}
	}
}
