function toggleDiv(id) {
	var d = document.getElementById(id);
	if (d.style.display == 'block') {
		d.style.display = 'none';
		d.style.visibility = 'hidden';
	} else {
		d.style.display = 'block';
		d.style.visibility = 'visible';
	}
}
function showAllErrors(allErrors) {
	var e = document.getElementById("errorMsg");
	e.style.display = "block";
	e.style.visibility = "visible";
	e.innerHTML = allErrors;
}
function cleanAllErrors() {
	var e = document.getElementById("errorMsg");
	e.innerHTML = "";
	e.style.display = "none";
	e.style.visibility = "hidden";
}	
function hideUploadProgress() {
	document.getElementById("upload_progress").style.display = 'none';
}
function setContentOk(ed) {			
	tinymce.dom.Event.add(tinyMCE.activeEditor.getDoc(), 'keyup', function(e) {
        rememberCursorPos();
    });			
}
function insertUploadedPhoto(sharedDataId, imgFull, photoName, w, h, contextPath) {
	var imgSrc = contextPath + 'image/newphoto/' + sharedDataId + '.jpg';
	var imgTag = '<img src="' + imgSrc + '" alt="' + photoName + '" style="margin: 5px;" width="' + w + '" height="' + h + '" />';
	//var result = '<a href="' + contextPath + imgFull + '" onclick="window.open(\'"' + contextPath + imgFull + '"\', \'_blank\', \'\', true); return false;">' + imgTag + '</a>';
	var result = '<a href="' + contextPath + imgFull + '" target="_blank">' + imgTag + '</a><br />';
	insertAtCursorPos(result);
}
function insertUploadedVideo(sharedDataId, videoName, type, contextPath) {
	var imgSrc = contextPath + 'image/newvideo/' + sharedDataId + '.jpg';
	var sizes = '';
	if (type == 1) {
		sizes = 'width="425" height="350"';
	} else if (type == 2) {
		sizes = 'width="400" height="353"';
	}
	var imgTag = '<img src="' + imgSrc + '" alt="' + videoName + '" ' + sizes + ' style="margin: 5px;" /><br />';
	insertAtCursorPos(imgTag);
}
function insertSelectedVideo(sharedDataId, videoName, contextPath) {
	var url = contextPath + "my/blogs/videoupload/blogthumb";
	AjaxRequest.get({
		'url':url,
		'parameters':{
						'videoId':sharedDataId
					 },
		"onSuccess":			
			function (req) {
				var response = req.responseText;
				if (response == "success") {
					var imgSrc = contextPath + 'image/newvideo/' + sharedDataId + '.jpg';
					var imgTag = '<img src="' + imgSrc + '" alt="' + videoName + '" style="margin: 5px;" />';
					insertAtCursorPos(imgTag);
				} else {
					alert("Ошибка...");
				}
			},
		"onLoading":function() { showLoadingProgress(document.getElementById("defaultDisplayElement")); },
		"onComplete": function() { hideLoadingProgress(); },
		"onError": function (req) { 
			hideLoadingProgress(); 
			alert("Ошибка...");	
		}			
	});
	return false;
}

function insertAtCursorPos(text) {
	if (cursorPosition != null) {
		tinyMCE.activeEditor.selection.moveToBookmark(cursorPosition);
	}
	tinyMCE.activeEditor.execCommand('mceInsertContent', false, text);
}

var cursorPosition;
function rememberCursorPos() {
	var cp = tinyMCE.activeEditor.selection.getBookmark(false);
	if (cp.start != 0) {
		cursorPosition = cp;
	}
}

function showPhotoUpload(contextPath) {
	cleanAllErrors();
	cleanDisplayItems(); 
	Gallery.loadSimpleContent('my/ajax/showupload?uploadType=articleUpload&formType=photo', 'showUpload', contextPath);
}

function showVideoUpload(contextPath) {
	cleanAllErrors();
	cleanDisplayItems(); 	
	Gallery.loadSimpleContent('my/ajax/showupload?uploadType=articleUpload&formType=video', 'showUpload', contextPath);
}

function showItemsSelect(itype, login, itemsInLine, contextPath, uri) {
	cleanAllErrors();
	document.getElementById("showUpload").innerHTML = "";
	
	if (uri == 'gallery') {
		hideme('videoGalleryTitle');
		showme('photoGalleryTitle');
	} else {
		hideme('photoGalleryTitle');
		showme('videoGalleryTitle');	
	}	
	var url = 'ajax/' + uri + '/' + itype + '?urlLogin=' + login + '&uploadToArticle=true';
	Gallery.loadItems(itype, url, 'displayItems', itemsInLine, contextPath);
}

function cleanDisplayItems() {
	hideme('photoGalleryTitle'); 
	hideme('videoGalleryTitle'); 
	document.getElementById("displayItems").innerHTML = "";
}

function hidePhotoUploadForm() {
	cleanAllErrors();
	//cleanDisplayItems();
	
	hideme('uploadPhotoTableId');
	hideme('photoUploadFormTitle');
}

function hideVideoUploadForm() {
	cleanAllErrors();
	//cleanDisplayItems();
	
	hideme('uploadVideoTableId');
	hideme('videoUploadFormTitle');
}

function hideArticleAddForm() {
	cleanAllErrors();
	
	hideme('articleAddFormId');
}

function showPhotoUploadForm() {
	showme('uploadPhotoTableId');
	showme('photoUploadFormTitle'); 
}

function showVideoUploadForm() {
	showme('uploadVideoTableId'); 
	showme('videoUploadFormTitle');
}

function showArticleAddForm() {
	showme('articleAddFormId');
}

function checkAndDownloadExternalImages(formId, hideHandler, contextPath) {	
	var result = true;
	if (!document.forms[formId].processExternalImages.checked) {
		if (hideHandler != null) {
			hideHandler();
		}
		return true;
	} else {
		if (tinyMCE.get('memo') == null) {
			var savedSetContentOk = setContentOk; 
			setContentOk = function(ed) {
				savedSetContentOk(ed);
				downloadExternalImages(formId, contextPath, hideHandler, true);
			};
			tinyMCE.execCommand('mceAddControl', false, 'memo'); 
			hideIt('showEditor'); 
			showIt('hideEditor');
		} else {
			result = downloadExternalImages(formId, contextPath, hideHandler, false);
		}
	}
	return result;
}

function downloadExternalImages(formId, contextPath, hideHandler, usedAsCallback) {
	var result = true;
	var imgs = tinyMCE.activeEditor.dom.select('img');
	var savedContent = tinyMCE.activeEditor.getContent();
	
	// cut non-convertable images from array
	var imgsToProcess = new Array();
	for (var i=0; i<imgs.length; i++) {
		var imgUrl = imgs[i].getAttribute('src');
		if (imgUrl.indexOf('/newphoto/') == -1 && imgUrl.indexOf('/newvideo/') == -1 
				&& imgUrl.indexOf('/blogphoto/') == -1 && imgUrl.indexOf('/blogvideo/') == -1) {
			imgsToProcess.push(imgs[i]);
		}
	}
	imgs = imgsToProcess;
	var savedCount = imgs.length;
	if (savedCount > 0) {
		result = false;
		tinyMCE.activeEditor.setProgressState(true);
	}
	for (var i=0; i<imgs.length; i++) { 
		var imgUrl = imgs[i].getAttribute('src');
		
		tinyMCE.activeEditor.selection.select(imgs[i]);
		var imgContent = tinyMCE.activeEditor.selection.getContent();
				
		if (typeof contextPath != "undefined") {
			Gallery.contextPath = contextPath;
		}
		var url = 'my/ajax/downloadimg';
		if (typeof Gallery.contextPath != "undefined"){
			url = Gallery.contextPath + url;
		}			
		AjaxRequest.post({
			'url':url,
			'parameters':{
							'imgContent':encodeURIComponent(imgContent),
							'imgUrl':encodeURIComponent(imgUrl)
						 },
			"onSuccess":			
				function (req) {
					if (req.responseText != 'error') {
						var data = eval("(" + req.responseText + ")");
						data.imgContent = decodeURIComponent(data.imgContent);
						data.imgUrl = decodeURIComponent(data.imgUrl);
												
						var repTo = '<a href="' + contextPath + decodeURIComponent(data.imgFull) 
								+ '" target="_blank">' + data.imgContent + '</a><br />';
						savedContent = savedContent.replace(data.imgContent, repTo);
						
						var imgSrc = contextPath + 'image/newphoto/' + data.id + '.jpg';
						savedContent = savedContent.replace(data.imgUrl, imgSrc);
						
						var el = getImgElement(imgs, data.imgUrl);
						el.setAttribute('src', imgSrc);
					}
					savedCount--;
					if (savedCount == 0) {
						onFinishImagesProcessing(formId, savedContent);
					} 						
				},
			"onError": function (req) {  
				//alert("Ошибка...");
				savedCount--;
				if (savedCount == 0) {
					onFinishImagesProcessing(formId, savedContent);
				}
			}			
		});
	} // for
	if (hideHandler != null) {
		hideHandler();
	}
	document.getElementById('dProgressText').innerHTML = 'Закачка внешних фотографий...';
	showLoadingProgress(document.getElementById("defaultDisplayElement"));
	if (result) {
		tinyMCE.activeEditor.setProgressState(false);
		if (usedAsCallback) {
			onFinishImagesProcessing(formId, savedContent);
		} else {
			hideLoadingProgress();
			document.getElementById('dProgressText').innerHTML = 'Загрузка данных...';
		}
	} 
	return result;
}

function getImgElement(imgs, src) {
	for (var i=0; i<imgs.length; i++) { 
		if (imgs[i].getAttribute('src') == src) {
			return imgs[i];
		}
	}
}

function onFinishImagesProcessing(formId, savedContent) {
	tinyMCE.activeEditor.setProgressState(false);
	document.getElementById('dProgressText').innerHTML = 'Загрузка данных...';
	hideLoadingProgress();
	tinyMCE.activeEditor.setContent(savedContent);
	var f = document.forms[formId];
	f.onsubmit = null;
	f.submit();
}

function toggleUploadFormControlls() {
	for (var i=0; i<arguments.length; i++) {
		toggleDiv(arguments[i]); 
	}
}

function setEditorProgress(isSet) {
	if (typeof(tinyMCE) !== undefined) {
		if (tinyMCE.activeEditor) {
    		tinyMCE.activeEditor.setProgressState(isSet);
    	}
	}
}

function showPhotoLoadingProgress() {
	document.getElementById('dProgressText').innerHTML = 'Идет закачка фотографий...';
	showLoadingProgress(document.getElementById("defaultDisplayElement"));
}