PhotoPrototype = Class.create();

PhotoPrototype.prototype = {
	uploadFlag: 0,
	
	initialize: function() {
	},
	
	voteForPhoto: function(itemId, type, link)
	{
		var argsObj = new Object();
		argsObj["operation"] = "voteForPhoto";
		argsObj["itemId"]	= itemId;
		argsObj["type"]	  = type;
		argsObj["link"]	  = link;
		ajaxCall('Photo/showPhoto', argsObj);
	},
	sendComment: function(photoId, type, link)
	{
		var bottomsArr = new Array ('commentButton');
		Xms.lockUnLockBottons(bottomsArr,'lock');
		
		var err = false;
		var textObj = $('commentText');
		var commentText = textObj.getValue();
		var commentTextErr = new Array ('commentEmpty', 'commentLong');
		var elemsArr = new Array ('commentText');
		
		Xms.clearErrors(elemsArr, null); 

		Xms.clearErrors(null, commentTextErr);
		
		if(commentText == '') {
			err = Xms.showErrors(textObj,'commentEmpty');
		} else if(commentText.length > 255) {
			err = Xms.showErrors(textObj,'commentLong');
			textObj.setValue(commentText.substr(0, 255));
		}
		if (err == false) {
			var argsObj = new Object();
			argsObj["operation"]   = "sendComment";
			argsObj["photoId"]	 = photoId;
			argsObj["type"]		= type;
			argsObj["link"]		= link;
			argsObj["commentText"] = Filter.nl2BBbr(commentText);
			ajaxCall('Photo/showPhoto', argsObj);
		} else {
			Xms.lockUnLockBottons(bottomsArr,'unlock');
		}
	},
	addPhoto: function()
	{
		error = false;
		var errs = new Array (
			'categoryEmpty', 
			'wrongSymbols', 
			'photoEmpty', 
			'adressError', 
			'extError', 
			'bigSize', 
			'notUploaded', 
			'wrongMime', 
			'subscribeSymbols', 
			'partial'
		);
		var bottomsArray = new Array('submitButton');
		Xms.lockUnLockBottons(bottomsArray,'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 != '' && !Validate.freeform(name)) {
			error = Xms.showErrors(nameObj,'wrongSymbols');
		} else if(category == '') {
			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(bottomsArray,'unlock');
		} else {
		$('bigFileSizeErr').style.display = "block";
		Xms.lockUnLockBottons(bottomsArray,'unlock');
			document.forms.addPhoto.submit();
			this.uploadFlag = 1;
			this.isUpload = 'on';
			this.categoryId = category;
			this.name = name;
		}
	},
	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;
				}
				$('bigFileSizeErr').style.display = "none";
				Xms.deleteCookie('err','/','');
				this.isUpload = 'off';
			} else {
				var argsObj = new Object();
				argsObj["operation"] = "photoAddFinish";
				argsObj["categoryId"] = this.categoryId;
				argsObj["name"] = this.name;
				argsObj["photo"] = Xms.getCookie('photoFile');
				ajaxCall('Photo/showPhoto', argsObj);
				Xms.deleteCookie('photoFile','/','');
				Xms.deleteCookie('err','/','');
			}
		}
	},
	initAddPhoto: function(link)
	{
		this.uploadFlag = 0;
		this.isUpload = 'off';
		this.categoryId = 0;
		this.name = 0;
		this.link = link;
	},
	redirect: function(id)
	{
		window.location = this.link + 'photo/item/' + id + '/3/';
	},
	initPhotoSlideShow: function(pic, j)
	{
		this.images = new Array();
		this.startLock = false;
		this.stopLock = true;
		Form.Element.disable('stopButton');
		this.startStopFader = new Fader("photosSlideShow", this.images, { autoStart: false });
	},
	initSlideShow: function(pic, j)
	{
		this.images[j] = 'picSite.php?image=' + pic + '&path=photo&maxX=500&maxY=500';
	},
	startSlideShow: function()
	{
		if(!this.startLock) {
			this.startStopFader.start(this.startStopFader);
			this.startLock = true;
			this.stopLock = false;
			$('startButton').addClassName('textGray');
			$('stopButton').removeClassName('textGray');
		}
	},
	stopSlideShow: function()
	{
		if(!this.stopLock) {
			this.startStopFader.stop(this.startStopFader);
			this.startLock = false;
			this.stopLock = true;
			$('stopButton').addClassName('textGray');
			$('startButton').removeClassName('textGray');
		}
	},
	initPhotos: function(link)
	{
		this.link = link;
	},
	deletePhoto: function(id, confirmDelete, itemId, order, page, type)
	{
		if(confirm(confirmDelete)) {
			var argsObj = new Object();
			if(type == 'category') {
				argsObj["operation"] = "deletePhotoCategory";
			} else {
				argsObj["operation"] = "deletePhotoAuthor";
			}
			argsObj["photoId"]   = id;
			argsObj["itemId"]	= itemId;
			argsObj["link"]	  = this.link;
			argsObj["order"]	 = order;
			argsObj["page"]	  = page;
			ajaxCall('Photo/showPhoto', argsObj);
		}
	},
	showUserInfo: function()
	{
		usr = $("userInfo");
		usr.style.display = "block";
		usr.scrollTo();
	},
	hideBigFileErr: function()
	{
		$('bigFileSizeErr').style.display = "none";
	}
}

Photo = new PhotoPrototype();
