WysiwygPrototype = Class.create();

WysiwygPrototype.prototype = {

	uploadFlag: 0,
	isUpload: 'off',
	
	initialize: function() {
		this.basePath = '/cms/js/wysiwyg/' ;
	},
	insertCode: function(code) 
	{
		$('wysiwygTextarea').value += code;
	},
	showSmiles: function()
	{
		window.open(this.basePath + 'editor/smiles.html', 'info', 'width=450,height=413,history=no,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no');
	},
	bottonOver: function(botton) 
	{
		$(botton).style.cursor = 'pointer'; 
		$(botton).style.backgroundColor = '#E8F4FF';
	},
	bottonOut: function(botton) 
	{
		$(botton).style.backgroundColor = '#fff';
	},
	imgOpen: function(method) 
	{
		Xms.windowOverlay('on');
		$('buffer').style.display = 'block';
		if(Prototype.Browser.IE) {
			this.hideSelects();
		}
		var argsObj = new Object();
		argsObj["operation"] = 'getUserPhotos';
		ajaxCall(method, argsObj);
	},
	hideSelects: function()
	{
		this.selects = document.getElementsByTagName("select");
		for(var k = 0; k < this.selects.length; k++){
			this.selects[k].style.display="none";
		}
	},
	showSelects: function()
	{
		for(var k = 0; k < this.selects.length; k++){
			this.selects[k].style.display="block";
		}
	},
	imgClose: function()
	{
		Xms.windowOverlay('off');
		$('buffer').style.display = 'none';
		if(Prototype.Browser.IE) {
			this.showSelects();
		}
	},
	
	pager: function(page, currentPage, totalPages, type)
	{
		var argsObj = new Object();
		argsObj["page"] = page;
		if(type == 'wysiwygUserPhotos') {
			argsObj["operation"] = 'getUserPhotos';
			argsObj["itemId"]	= $F('userId');
			ajaxCall('Forum/showForum', argsObj);
		}
		
	},
	imgInsert: function(code)
	{
		this.insertCode(code);
		alert('Фото добавлено в Текст темы');
	},
	imgInit: function()
	{
		if (this.uploadFlag == 1) {
			this.uploadFlag = 0;
 
			var phoneErrors = new Array (
				'bigSize', 
				'notUploaded', 
				'wrongMime', 
				'partial'
			);	  
			var photoObj = $('photoName');
			var errorUploading = Xms.getCookie('err');
			Xms.clearErrors(null, phoneErrors);
			if (errorUploading != null && this.isUpload == 'on') {
				var bottomsArray = new Array(
					'submitButton'
				);
				Xms.lockUnLockBottons(bottomsArray,'unlock');
				switch (errorUploading) {
					case 'BigSize' :
						Xms.showErrors(photoObj, 'bigSize');
					break;
					case 'Partial' :
						Xms.showErrors(photoObj, 'partial');
					break;
					case 'NoFile' :
						Xms.showErrors(photoObj, 'notUploaded');
					break;
					case 'WrongMime' :
						Xms.showErrors(photoObj, 'wrongMime');
					break;
				}
				Xms.deleteCookie('err','/','');
				this.isUpload = 'off';
			} else {
				var argsObj = new Object();
				argsObj["operation"]  = "photoSave";
				argsObj["categoryId"] = this.categoryId;
				argsObj["name"]	   = this.name;
				argsObj["photo"]	  = Xms.getCookie('photoFile');
				ajaxCall('Forum/showForum', argsObj);
				Xms.deleteCookie('photoFile','/','');
				Xms.deleteCookie('err','/','');
			}
		}
	},
	addPhoto: function()
	{
		error = false;
		var errs = new Array (
			'categoryEmpty', 
			'wrongSymbols', 
			'photoEmpty', 
			'adressError', 
			'extError', 
			'bigSize', 
			'notUploaded', 
			'wrongMime', 
			'subscribeSymbols', 
			'partial'
		);
		var bottomsArr = new Array('submitButton');
		Xms.lockUnLockBottons(bottomsArr,'lock');
		Xms.clearErrors(null, errs);
		var nameObj	 = $('photoName');
		var categoryObj = $('categoryId');
		var photoObj	= $('photoFile');
		var name	 = nameObj.getValue();
		var category = categoryObj.getValue();
		var photo	= photoObj.getValue();
 
		if(name != null && !Validate.freeform(name)) {
			error = Xms.showErrors(nameObj,'wrongSymbols');
		} else if(category == null) {
			error = Xms.showErrors(categoryObj,'categoryEmpty');
		} else if(photo == '') {
			error = Xms.showErrors(photoObj,'photoEmpty');
		} else if(!Validate.imageExt(photo)) {
			error = Xms.showErrors(photoObj,'extError');
		} else if(!Validate.pathToFile(photo)) {
			error = Xms.showErrors(photoObj,'adressError');
		}
		if(error) {
			Xms.lockUnLockBottons(bottomsArr,'unlock');
		} else {
			document.forms.addPhoto.submit();
			this.uploadFlag = 1;
			this.isUpload = 'on';
			this.categoryId = category;
			this.name = name;
		}
	},
	showAddPhotoForm: function()
	{
		$('photoAddForm').style.display="block";
		$('photoAddHref').style.display="none";
	}
};

Wysiwyg = new WysiwygPrototype();

ForumPrototype = Class.create();

ForumPrototype.prototype = {
	initialize: function() {
	},
	
	initAddTopic: function(link)
	{
		this.link = link;
	},
	
	initMce: function(userId, siteId, langId)
	{
		this.userId = userId;
		this.siteId = siteId;
		this.langId = langId;
	},
	
	redirect: function(categoryId, topicId)
	{
		window.location = this.link + 'fcategory/' + categoryId + '/0/'+ topicId + '/1/0/';
	},
	
	saveTopic: function(categoryId, topicId)
	{
		var err;
		var bottomsArray = new Array('saveTopic');
		Xms.lockUnLockBottons(bottomsArray,'lock');
		
		var titleErr = new Array('titleEmpty', 'titleWrongSymbols');
		var infoErr = new Array('infoEmpty', 'infoTooLong');
		var titleObj = $('topicName');
		var infoObj = $('wysiwygTextarea');
		var title = titleObj.getValue();
		var info = Xms.getContentMCE('postMceText');
		
		var elemsArr = new Array('topicName', 'topicInfo');
		
		Xms.clearErrors(null, titleErr);
		Xms.clearErrors(null, infoErr);
		Xms.clearErrors(elemsArr, null);
		
		if(title == '') {
			err = Xms.showErrors(titleObj,'titleEmpty');
		} else if(!Validate.freeform(title)) {
			err = Xms.showErrors(titleObj,'titleWrongSymbols');
		} else if(info == '') {
			err = Xms.showErrors(infoObj,'infoEmpty');
		}
		
		if(!err) {
			var argsObj = new Object();
			argsObj['operation']		= 'saveTopic';
			argsObj['title']			= title;
			argsObj['info']			 = info;
			argsObj['onlyRegisterView'] = $F('onlyRegisterView');
			if(categoryId != '') {
				argsObj['categoryId']   = categoryId;
			} else {
				argsObj['topicId']	  = topicId;
				argsObj['locked'] = $F('locked');
			}

			ajaxCall('Forum/showForum', argsObj);
		} else {
			Xms.lockUnLockBottons(bottomsArray,'unlock');
		}
	},
	
	showAddPostForm: function(link)
	{
		var addObj = $('addPostArea');
		addObj.style.display = "block";
		addObj.scrollTo();
		this.link = link;
	},
	
	savePost: function(topicId, categoryId, postId)
	{
		var err = false;
		var bottomsArray = new Array('savePost');
		Xms.lockUnLockBottons(bottomsArray,'lock');
		
		var infoErr = new Array('infoEmpty', 'infoTooLong');
		var infoObj = $('postMceText');
		var info = Xms.getContentMCE('postMceText');
		var elemsArr = new Array('wysiwygTextarea');
		
		Xms.clearErrors(null, infoErr);
		Xms.clearErrors(elemsArr, null);
		
		if(info == '') {
			err = Xms.showErrors(infoObj,'infoEmpty');
		}
		
		if(!err) {
			try {
				tinyMCE.triggerSave();
				tinyMCE.execCommand('mceFocus', false,'postMceText');
				tinyMCE.execCommand('mceRemoveControl', false,'postMceText');
			} catch(e1) {}
			infoObj.style.display = "none";
			Xms.lockUnLockBottons(bottomsArray,'unlock');
			var argsObj = new Object();
			if(postId == '') {
				argsObj['operation']  = 'savePost';
			} else {
				argsObj['operation']  = 'updatePost';
				argsObj['postId']  = postId;
			}
			argsObj['info']	   = info;
			argsObj['topicId']	= topicId;
			argsObj['categoryId'] = categoryId;
			ajaxCall('Forum/showForum', argsObj);
		} else {
			Xms.lockUnLockBottons(bottomsArray,'unlock');
		}
	},
	
	showAddPostToPostForm: function(categoryId, topicId, postId, link, type)
	{
		this.link = link;
		try {
			tinyMCE.triggerSave();
			tinyMCE.execCommand('mceFocus', false,'postMceText');
			tinyMCE.execCommand('mceRemoveControl', false,'postMceText');
		} catch(e1) {}
		var argsObj = new Object();
		argsObj['operation']  = 'showAddPostForm';
		argsObj['categoryId'] = categoryId;
		argsObj['topicId']	= topicId;
		argsObj['postId']	 = postId;
		argsObj['type']	 = type;
		ajaxCall('Forum/showForum', argsObj);
	},
	
	scrollTo: function(id)
	{
		var addObj = $(id);
		addObj.scrollTo();

	},
	
	sendToModerator: function(postId, confirmPost)
	{
		if(confirm(confirmPost)) {
			var argsObj = new Object();
			argsObj['operation'] = 'sendToModerator';
			argsObj['postId']	= postId;
			ajaxCall('Forum/showForum', argsObj);
		}
	},
	
	voteToPost: function(confirmPost, postId)
	{
		if(confirm(confirmPost)) {
			var argsObj = new Object();
			argsObj['operation'] = 'voteToPost';
			argsObj['postId']	= postId;
			ajaxCall('Forum/showForum', argsObj);
		}
	},
	
	redirectCurrent: function()
	{
		window.location = window.location;
	},
	
	deletePost: function(confirmPost, postId)
	{
		if(confirm(confirmPost)) {
			var argsObj = new Object();
			argsObj['operation'] = 'deletePost';
			argsObj['postId']	= postId;
			ajaxCall('Forum/showForum', argsObj);
		}
	},
	
	deleteTopic: function(confirmTopic, topicId, link)
	{
		this.link = link;
		if(confirm(confirmTopic)) {
			var argsObj = new Object();
			argsObj['operation'] = 'deleteTopic';
			argsObj['topicId']   = topicId;
			argsObj['link']	  = link;
			ajaxCall('Forum/showForum', argsObj);
		}
	},
	
	redirectToLink: function(toLink)
	{
		window.location = this.link + toLink;
	},
	
	showAddTopicForm: function(topicId)
	{
		try {
			tinyMCE.triggerSave();
			tinyMCE.execCommand('mceFocus', false,'postMceText');
			tinyMCE.execCommand('mceRemoveControl', false,'postMceText');
		} catch(e1) {}
		var argsObj = new Object();
		argsObj['operation']  = 'showAddTopicForm';
		argsObj['topicId']	= topicId;
		ajaxCall('Forum/showForum', argsObj);
	}

};

Forum = new ForumPrototype();
