window.onerror = function err() {return false;}
var current_shown = "";
var requestVotePhoto = new Array();
var requestUserOnPhoto = new Array();
var requestPhotoComment = new Array();
var requestSetAlbumCover = new Array();
var requestCheckLogin = new Array();
var requestEventComment = new Array();
var requestForumMessage = new Array();
var requestCommentDelete = new Array();

// выбрать все чекбоксы формы
function selectAll(formName, elementName, mark) { 
	if (mark) {
		state = 'checked';
	} else {
		state = '';
	}

	for (i = 0; i < document.forms[formName].elements.length; i++) {
		var item = document.forms[formName].elements[i];
		if (item.name.indexOf(elementName) >= 0 && item.type == 'checkbox') {
			item.checked = state;
		}
	}
}


// устанавливает значение поля по таблице-справочнику
function setFieldValue(f, x) {
	xname = f + '_' + x;
	document.getElementById(f).value = document.getElementById(xname).value;
	
}

// открывает фотографию во всплывающем окне
function photoPopup(photoId) {
	wUrl = '/image.php?id=/' + photoId + '&s=1';
	openWindow(wUrl, 'photo', + 'Popup', 600, 400);
}

// открывает информацию о месте по его имени во всплывающем окне
function placePopup(placeName) {
	wUrl = '/places/' + placeName + '/?small';
	openWindow(wUrl, placeName + 'Popup', 600, 400);
}

// открывает окно с треком по его алиасу и диджею
function trackPopup(djAlias, trackAlias) {
	wUrl = '/music/' + djAlias + '/' + trackAlias + '/?small';
	window.open(wUrl, trackAlias + '_popup', 'status=no, scrollbars=Auto, resizable=Yes, Width=505, Height=140');
}

// открывает всплывающее окно
function openWindow(wUrl, wName, wWidth, wHeight) {
	window.open(wUrl, wName, 'status=no, scrollbars=Yes, resizable=Yes, Width=' + wWidth + ', Height=' + wHeight);
}


// умная скрыть или показать объект
function show_hide(id) {
	if((current_shown!="")&&(current_shown!=id)) if(document.getElementById(current_shown)) document.getElementById(current_shown).style.display="none";
	var popup=document.getElementById(id);
	if(popup.style.display=='block') {
		popup.style.display='none';
		current_shown="";
	} else {
		popup.style.display='block';
		current_shown=id;
	}
}

// скрыть или показать объект
function show_hide_obj(id) {
	var obj=document.getElementById(id);
	if(obj.style.display=='none') {
		obj.style.display='block';
	} else {
		obj.style.display='none';
	}
}

// учитывает голос за фотографию
function vote(id, mark) {;
	if (window.XMLHttpRequest) {
		requestVotePhoto[id] = new XMLHttpRequest();
		requestVotePhoto[id].onreadystatechange = (function() { processVotePhoto(id) });
		requestVotePhoto[id].open("GET", "vote.php?object=photo&id=" + id + "&vote=" + mark, true);
		requestVotePhoto[id].setRequestHeader("Content-Type", "multipart/form-data");
		requestVotePhoto[id].setRequestHeader("Accept-Charset", "windows-1251");
		requestVotePhoto[id].send(null);
	} else if (window.ActiveXObject) {
		requestVotePhoto[id] = new ActiveXObject("Microsoft.XMLHTTP");
		if (requestVotePhoto[id]) {
			requestVotePhoto[id].onreadystatechange = (function() { processVotePhoto(id) });
			requestVotePhoto[id].open("GET", "vote.php?object=photo&id=" + id + "&vote=" + mark, true);
			requestVotePhoto[id].setRequestHeader("Content-Type", "multipart/form-data");
			requestVotePhoto[id].setRequestHeader("Accept-Charset", "windows-1251");
			requestVotePhoto[id].send();
		}
		
	} else return true;
	
	return false;
}

// добавление комментария к фотографии
function sendcomment(id, text) {
	if (window.XMLHttpRequest) {
		requestPhotoComment[id] = new XMLHttpRequest();
		requestPhotoComment[id].onreadystatechange = (function() { processPhotoComment(id) });
		requestPhotoComment[id].open("GET", "ajax_services.php?object=photo&service=photo_comment&id=" + id + "&text=" + text, true);
		requestPhotoComment[id].setRequestHeader("Content-Type", "text/plain");
		requestPhotoComment[id].setRequestHeader("Accept-Charset", "windows-1251");
		requestPhotoComment[id].send(null);
	} else if (window.ActiveXObject) {
		requestPhotoComment[id] = new ActiveXObject("Microsoft.XMLHTTP");
		if (requestPhotoComment[id]) {
			requestPhotoComment[id].onreadystatechange = (function() { processPhotoComment(id) });
			requestPhotoComment[id].open("GET", "ajax_services.php?object=photo&service=photo_comment&id=" + id + "&text=" + text, true);
			requestPhotoComment[id].setRequestHeader("Content-Type", "text/plain");
			requestPhotoComment[id].setRequestHeader("Accept-Charset", "windows-1251");
			requestPhotoComment[id].send();
		}
		
	} else return true;
	
	return false;
}

// комментирование события
function send_eventcomment(id, text) {
	if (window.XMLHttpRequest) {
		requestEventComment[id] = new XMLHttpRequest();
		requestEventComment[id].onreadystatechange = (function() { processEventComment(id) });
		requestEventComment[id].open("GET", "ajax_services.php?object=event&service=event_comment&id=" + id + "&text=" + text, true);
		requestEventComment[id].setRequestHeader("Content-Type", "text/plain");
		requestEventComment[id].setRequestHeader("Accept-Charset", "windows-1251");
		requestEventComment[id].send(null);
	} else if (window.ActiveXObject) {
		requestEventComment[a] = new ActiveXObject("Microsoft.XMLHTTP");
		if (requestEventComment[id]) {
			requestEventComment[id].onreadystatechange = (function() { processEventComment(id) });
			requestEventComment[id].open("GET", "ajax_services.php?object=event&service=event_comment&id=" + id + "&text=" + text, true);
			requestEventComment[id].setRequestHeader("Content-Type", "text/plain");
			requestEventComment[id].setRequestHeader("Accept-Charset", "windows-1251");
			requestEventComment[id].send();
		}
		
	} else return true;
	
	return false;
}

// отправка сообщения на форум
function send_fmess(id, text) {
	if (window.XMLHttpRequest) {
		requestForumMessage[id] = new XMLHttpRequest();
		requestForumMessage[id].onreadystatechange = (function() { processForumMessage(id) });
		requestForumMessage[id].open("GET", "ajax_services.php?service=forum_message&id=" + id + "&text=" + text, true);
		requestForumMessage[id].setRequestHeader("Content-Type", "text/plain");
		requestForumMessage[id].setRequestHeader("Accept-Charset", "windows-1251");
		requestForumMessage[id].send(null);
	} else if (window.ActiveXObject) {
		requestForumMessage[id] = new ActiveXObject("Microsoft.XMLHTTP");
		if (requestForumMessage[id]) {
			requestForumMessage[id].onreadystatechange = (function() { processForumMessage(id) });
			requestForumMessage[id].open("GET", "ajax_services.php?service=forum_message&id=" + id + "&text=" + text, true);
			requestForumMessage[id].setRequestHeader("Content-Type", "text/plain");
			requestForumMessage[id].setRequestHeader("Accept-Charset", "windows-1251");
			requestForumMessage[id].send();
		}
		
	} else return true;
	
	return false;
}

// текущий пользователь на фото
function userOnPhoto(id) {
	if (window.XMLHttpRequest) {
		requestUserOnPhoto[id] = new XMLHttpRequest();
		requestUserOnPhoto[id].onreadystatechange = (function() { processUserOnPhoto(id) });
		requestUserOnPhoto[id].open("GET", "ajax_services.php?service=useronphoto&object=photo&id=" + id, true);
		requestUserOnPhoto[id].setRequestHeader("Content-Type", "multipart/form-data");
		requestUserOnPhoto[id].setRequestHeader("Accept-Charset", "windows-1251");
		requestUserOnPhoto[id].send(null);
	} else if (window.ActiveXObject) {
		requestUserOnPhoto[id] = new ActiveXObject("Microsoft.XMLHTTP");
		if (requestUserOnPhoto[id]) {
			requestUserOnPhoto[id].onreadystatechange = (function() { processUserOnPhoto(id) });
			requestUserOnPhoto[id].open("GET", "ajax_services.php?service=useronphoto&object=photo&id=" + id, true);
			requestUserOnPhoto[id].setRequestHeader("Content-Type", "multipart/form-data");
			requestUserOnPhoto[id].setRequestHeader("Accept-Charset", "windows-1251");
			requestUserOnPhoto[id].send();
		}
		
	} else return true;
	
	return false;
}

// удаление комментария на главной странице и на странице событий
function comment_delete(table, id, row_n) {
	row_n = row_n - 1;
	document.getElementById('comment_delete_link_' + id).outerHTML = 'Удаляю...';
	if (window.XMLHttpRequest) {
		requestCommentDelete[id] = new XMLHttpRequest();
		requestCommentDelete[id].onreadystatechange = (function() { processCommentDelete(id) });
		requestCommentDelete[id].open("GET", "ajax_services.php?service=comment_delete&id=" + id + '&pid=' + row_n + '&object=' + table, true);
		requestCommentDelete[id].setRequestHeader("Content-Type", "multipart/form-data");
		requestCommentDelete[id].setRequestHeader("Accept-Charset", "windows-1251");
		requestCommentDelete[id].send(null);
	} else if (window.ActiveXObject) {
		requestCommentDelete[id] = new ActiveXObject("Microsoft.XMLHTTP");
		if (requestCommentDelete[id]) {
			requestCommentDelete[id].onreadystatechange = (function() { processCommentDelete(id) });
			requestCommentDelete[id].open("GET", "ajax_services.php?service=comment_delete&id=" + id + '&pid=' + row_n + '&object=' + table, true);
			requestCommentDelete[id].setRequestHeader("Content-Type", "multipart/form-data");
			requestCommentDelete[id].setRequestHeader("Accept-Charset", "windows-1251");
			requestCommentDelete[id].send();
		}
		
	} else return true;
	
	return false;
}

// сделать фотографию обложкой альбома
function makeThisCover(id, pid) {
	if (window.XMLHttpRequest) {
		requestSetAlbumCover[id] = new XMLHttpRequest();
		requestSetAlbumCover[id].onreadystatechange = (function() { processSetAlbumCover(id) });
		requestSetAlbumCover[id].open("GET", "ajax_services.php?service=photoablum_set_cover&id=" + id + '&pid=' + pid, true);
		requestSetAlbumCover[id].setRequestHeader("Content-Type", "multipart/form-data");
		requestSetAlbumCover[id].setRequestHeader("Accept-Charset", "windows-1251");
		requestSetAlbumCover[id].send(null);
	} else if (window.ActiveXObject) {
		requestSetAlbumCover[id] = new ActiveXObject("Microsoft.XMLHTTP");
		if (requestSetAlbumCover[id]) {
			requestSetAlbumCover[id].onreadystatechange = (function() { processSetAlbumCover(id) });
			requestSetAlbumCover[id].open("GET", "ajax_services.php?service=photoablum_set_cover&id=" + id + '&pid=' + pid, true);
			requestSetAlbumCover[id].setRequestHeader("Content-Type", "multipart/form-data");
			requestSetAlbumCover[id].setRequestHeader("Accept-Charset", "windows-1251");
			requestSetAlbumCover[id].send();
		}
		
	} else return true;
	
	return false;
}

// проверить, существует ли такой логин
function checkLogin(email) {
	id = 1;
	if (window.XMLHttpRequest) {
		requestCheckLogin[id] = new XMLHttpRequest();
		requestCheckLogin[id].onreadystatechange = (function() { processCheckLogin(id) });
		requestCheckLogin[id].open("GET", "ajax_services.php?service=check_login&object=" + email, true);
		requestCheckLogin[id].setRequestHeader("Content-Type", "multipart/form-data");
		requestCheckLogin[id].setRequestHeader("Accept-Charset", "windows-1251");
		requestCheckLogin[id].send(null);
	} else if (window.ActiveXObject) {
		requestCheckLogin[id] = new ActiveXObject("Microsoft.XMLHTTP");
		if (requestCheckLogin[id]) {
			requestCheckLogin[id].onreadystatechange = (function() { processCheckLogin(id) });
			requestCheckLogin[id].open("GET", "ajax_services.php?service=check_login&object=" + email, true);
			requestCheckLogin[id].setRequestHeader("Content-Type", "multipart/form-data");
			requestCheckLogin[id].setRequestHeader("Accept-Charset", "windows-1251");
			requestCheckLogin[id].send();
		}
		
	} else return true;
	
	return false;
}

// обработка - проставление оценки фотографии
function processVotePhoto(a) {
	if (requestVotePhoto[a].readyState == 4) {
		if (requestVotePhoto[a].status == 200) {
			// alert('>' + req[a].responseText + '<');
			answer = requestVotePhoto[a].responseText.split("&");
			result = answer[0].split("=");
			if (result[1] == 'ok') {
				mark = answer[1].split("=");
				voter = 'voter' + a;
				document.getElementById(voter).innerHTML = "";
				document.getElementById(mark[0]).innerHTML = '<img src="img/icons/votes.gif" alt="кто оценил это фото?" border=0 hspace=3 vspace=0 align="bottom">' + mark[1];
				document.getElementById(mark[0]).style.visibility = "";
			}
			if (result[1] == 'already') {
				alert('Вы уже голосовали за это фото');				
			}
			if (result[1] == 'authorize') {
				alert('Пожалуйста, авторизуйтесь!');
			}
			if (result[1] == 'forbidden') {
				//alert('Голосование запрещено');
			}
			if (result[1] == 'error') {
				alert('Ошибка сервера');				
			}

		}
	}
}

// обработка - пользователь на фото
function processUserOnPhoto(id) {
	if (requestUserOnPhoto[id].readyState == 4) {
		if (requestUserOnPhoto[id].status == 200) {
			answer = requestUserOnPhoto[id].responseText.split("&");
			result = answer[0].split("=");
			spaner = 'imhere' + id;
			if (result[1] == '1') {
				document.getElementById(spaner).innerHTML = "Меня нет на фото";
			} else if (result[1] == '0') {
				document.getElementById(spaner).innerHTML = "Я есть на фото";
			}

			if (result[1] == 'authorize') {
				alert('Пожалуйста, авторизуйтесь!');
			}
			if (result[1] == 'error') {
				alert('Ошибка сервера');				
			}
			if (result[1] == 'empty') {
				alert('Нет данных');				
			}

		}
	}
}

// обработка - удаление комментария на главной странице
function processCommentDelete(id) {
	if (requestCommentDelete[id].readyState == 4) {
		if (requestCommentDelete[id].status == 200) {
			// 0- result=ok|error
			// 1- delete_tr=ok|no
			// 2- row=(int)
			// 3- table=(str)
			answer = requestCommentDelete[id].responseText.split("&");
			result = answer[0].split("=");
			delete_tr = answer[1].split("=");
			row = answer[2].split("=");
			table = answer[3].split("=");
			
			com_block_id = 'block_comm_' + id;
			table_id = table[1];

			if (result[1] == 'ok') {
				document.getElementById(com_block_id).innerHTML = "";	
				if (delete_tr[1] == 'ok') {
					document.getElementById(table_id).deleteRow(row[1]);
				}
			}

			if (result[1] == 'authorize') {
				alert('Пожалуйста, авторизуйтесь!');
			}
			if (result[1] == 'error') {
				alert('Ошибка сервера');				
			}
			if (result[1] == 'empty') {
				alert('Нет данных');				
			}
		}
	}
}

// обработка - добавление комментария 
function processPhotoComment(id) {
	if (requestPhotoComment[id].readyState == 4) {
		// alert(requestPhotoComment[pid].readyState);
		if (requestPhotoComment[id].status == 200) {
			answer = requestPhotoComment[id].responseText.split("&");
			result = answer[0].split("=");
			result2 = answer[1].split("=");
			spaner = 'new_comment_full';
			// alert(spaner);
			if (result[1] == 'ok') {
				// document.getElementById(spaner).innerHTML = "<BR>Сообщение отправлено. Спасибо!";
				document.getElementById(spaner).innerHTML = "Комментарий добавлен: <b>" + result2[1] + "</b><BR><BR>";
			}

			if (result[1] == 'authorize') {
				alert('Пожалуйста, авторизуйтесь!');
			}
			if (result[1] == 'error') {
				alert('Ошибка сервера');				
			}
			if (result[1] == 'empty') {
				alert('Нет данных');				
			}

		}
	}
}

// обработка - назначение фотографии обложкой альбома
function processSetAlbumCover(id) {
	if (requestSetAlbumCover[id].readyState == 4) {
		// alert(requestPhotoComment[pid].readyState);
		if (requestSetAlbumCover[id].status == 200) {
			answer = requestSetAlbumCover[id].responseText.split("&");
			result = answer[0].split("=");
			spaner = 'setalbumcover' + id;
			if (result[1] == 'ok') {
				document.getElementById(spaner).innerHTML = "Назначено обложкой!";
			}

			if (result[1] == 'authorize') {
				alert('Пожалуйста, авторизуйтесь!');
			}
			if (result[1] == 'error') {
				alert('Ошибка сервера');				
			}
			if (result[1] == 'empty') {
				alert('Нет данных');				
			}

		}
	}
}

// обработка - проверка быстрого создания пользоавтелей - есть ли такой логин?
function processCheckLogin(id) {
	spaner = 'qcreate_login_warning';
	if (requestCheckLogin[id].readyState == 4) {
		//alert(requestCheckLogin[id].responseText);
		if (requestCheckLogin[id].status == 200) {
			answer = requestCheckLogin[id].responseText.split("&");
			result = answer[0].split("=");

			if (result[1] == 'ok') {
				document.getElementById(spaner).innerHTML = "Адрес доступен";
				document.getElementById('qcreate_submit').disabled = false;
			}
			if (result[1] == 'error') {
				document.getElementById(spaner).innerHTML = "Адрес набран неправильно";
				document.getElementById('qcreate_submit').disabled = true;
			}
			if (result[1] == 'exists') {
				id = answer[1].split("=");
				document.getElementById(spaner).innerHTML = "Такой <a href='/user/" + id[1] + "/'>пользователь</a> уже зарегистрирован!";
				document.getElementById('qcreate_submit').disabled = true;
			}
		} else {
			document.getElementById(spaner).innerHTML = "проверка";
		}
	} else {
		document.getElementById(spaner).innerHTML = "проверка...";
	}
}

// обработка - комментирование события
function processEventComment(id) {
	if (requestEventComment[id].readyState == 4) {
		if (requestEventComment[id].status == 200) {
			answer = requestEventComment[id].responseText.split("&");
			result1 = answer[0].split("=");
			result2 = answer[1].split("=");
			spaner = 'event_' + id + '_comment_form';
			// alert(spaner);
			if (result1[1] == 'ok') {
				//document.getElementById(spaner).innerHTML = result2[1];
				document.getElementById(spaner).innerHTML = 'Сообщение отправлено. Спасибо!';
			}

			if (result1[1] == 'authorize') {
				alert('Пожалуйста, авторизуйтесь!');
			}
			if (result1[1] == 'error') {
				alert('Ошибка сервера');				
			}
			if (result1[1] == 'empty') {
				alert('Нет данных');				
			}

		}
	}
}

// обработка - отправка сообщения на форум
function processForumMessage(id) {
	if (requestForumMessage[id].readyState == 4) {
		if (requestForumMessage[id].status == 200) {
			answer = requestForumMessage[id].responseText.split("&");
			result1 = answer[0].split("=");
			result2 = answer[1].split("=");
			spaner = 'fmess_' + id + '_form';
			// alert(spaner);
			if (result1[1] == 'ok') {
				// document.getElementById(spaner).innerHTML = result2[1];
				document.getElementById(spaner).innerHTML = 'Сообщение отправлено. Спасибо!';
			}

			if (result1[1] == 'authorize') {
				alert('Пожалуйста, авторизуйтесь!');
			}
			if (result1[1] == 'error') {
				alert('Ошибка сервера');				
			}
			if (result1[1] == 'empty') {
				alert('Нет данных');				
			}

		}
	}
}

// показывает форму ввода нового комментария
function newcomment() {
	show_hide_obj('new_comment');
}

// умная показыалка спанов
function showSpan(id) {
	if((current_shown!="")&&(current_shown!=id)) if(document.getElementById(current_shown)) document.getElementById(current_shown).style.visibility="vidden";
	var popup=document.getElementById(id);
	popup.style.visibility='';
	current_shown=id;
}

// умная скрывалка спанов
function hideSpan(id) {
	var popup=document.getElementById(id);
	popup.style.visibility='hidden';
	current_shown='';
}

// показывалка голосования
function showVote(id) {
	if((current_shown!="")&&(current_shown!=id)) if(document.getElementById(current_shown)) document.getElementById(current_shown).style.visibility="vidden";
	var voter=document.getElementById('voter' + id);
	var mark=document.getElementById('photo' + id);
	voter.style.visibility='';
	//mark.style.visibility='hidden';
	current_shown=id;
}

// скрывалка голосования
function hideVote(id) {
	var voter=document.getElementById('voter' + id);
	var mark=document.getElementById('photo' + id);
	voter.style.visibility='hidden';
	current_shown='';
}


