var busy = 0, gallery = false;

var moveCaretToEnd = function(obj){
	var len = obj.value.length
	obj.selectionStart = len
	obj.selectionEnd = len
	obj.focus()
}

var commentary_send = function(Id, Element){
	var Commentary = document.getElementById('commentary_'+Element).value
	if(Commentary) $.post('/req/commentary_send.php',{id:Id, element:Element, commentary:Commentary},AjaxResult)
	document.getElementById('commentary_'+Element).value = ''
}

var commentary_remove = function(Id, Element){
	if(confirm('Удалить комментарий?')) $.post('/req/commentary_remove.php',{id:Id,element:Element},AjaxResult)
}

var commentary_load = function(Element, Id, Page){
	if(!Page) Page = 0
	$.post('/req/commentary_load.php', {page:Page, element:Element, id:Id}, AjaxResult)
}

var AjaxResult = function(response){
// 	alert(response)
	eval(response)
}

var shortcuts = function(){
	$('textarea').keydown(function(e){
		if(e.ctrlKey && e.keyCode == 13){
			var f = $(this).closest('form');
			if(parseInt($('input[type="submit"]', f).size())){
				$('input[type="submit"]', f)[0].click();
			}
			else f.submit()
			return false;
		}
	})
}

var hash_init = function(){
	if(location.href.indexOf('#') > 0){
		var path = location.href.substr(location.href.indexOf('#')+1);
		var path_arr = path.split('/');
		if(typeof(path_arr[0]) !== 'undefined'){
			eval('if(typeof '+path_arr[0]+'_init == "function") '+path_arr[0]+'_init("'+path+'")')
		}
		return true;
	}
	else return false;
}

var gallery_init = function(){
	if(!photos.length) return false;
	var body_width = $('#body').width();
	photos_on_page = Math.floor(body_width/136);
	var section = gallery ? 'gallery' : 'photos';
	document.getElementById('comments_'+section).style.width = (body_width-810)+'px'
	pages = Math.ceil(photos.length/photos_on_page);
	var pager = '';
	for(var i = 1; i <= pages; ++i){
		pager += '<a href="javascript:void(0)" onclick="show_thumbs('+i+')" id="page'+i+'"> </a>';
	}
	document.getElementById('navi').innerHTML = pager;
	show_thumbs(page);
}

var show_thumbs = function(pg){
	page = pg;
	$('.active', 'div.navi').removeClass('active');
	$('#page'+page).addClass('active');
	var content = ''
	for(var i = photos_on_page*(page-1); i < photos_on_page*page; ++i){
		if(i > photos.length-1) break;
		content += '<img src="'+photos[i][2]+'" onclick="photo_load('+i+');" alt="" id="th'+i+'" />'
	}
	document.getElementById('gallery_thumbs').innerHTML = content
}

var load_next_photo = function(){
	var next_i = parseInt(photo)+1;
	var next_photo = typeof photos[next_i] == 'undefined' ? 0 : next_i;
	photo_load(next_photo);
	$('div.items:animated').stop();
}

var photo_init = function(path){
	path = path.split('/');
	if(typeof path[1] == 'undefined') return;
	for(var i in photos){
		if(photos[i][0] == path[1]){
			photo_load(i);
			$('div:eq('+i+')', '.items').click();
			return;
		}
	}
}

var photo_load = function(i){
	if(!photos.length){
		document.getElementById('photo').style.textAlign = 'center';
		document.getElementById('photo').innerHTML = 'Фоток всё ещё нет...';
		return;
	}
	photo = i;

	var _page = Math.floor(i/photos_on_page)+1;
	if(page !== _page) $('#page'+_page).click();

	$('img.active', '#gallery_thumbs').removeClass('active');
	$('#th'+i).addClass('active');

	var section = gallery ? 'gallery' : 'photos';

	location.href = '#photo/'+photos[i][0];
	document.getElementById('comments_'+section).innerHTML = '<p style="text-align:center; padding:20px"><img src="/img/progressbar.gif" alt="" /></p>'
	//commentary_load(photos_commentaries_id, photos[i][0]);
	$('input[name="element"]', '#comments_form_'+section).val(photos[i][0])
	comments({mode:'get', section:section, element:photos[i][0]})
	if(!parseInt(photos[i][1])){
		$('#photo_container').html('<img src="'+photos[i][3]+'" alt="" width="'+photos[i][4]+'" height="'+photos[i][5]+'" />');
	}
	else{
		var params = {
			src:'/flash/uppod/uppod.swf',
			version:[7],
			width:500,
			height:400
		}
		var flashvars = {
			st:'/flash/uppod/style.txt',
			file:photos[i][3]
		}
		$('#photo_container').flashembed(params, flashvars)
	}
	show_photo_descr(i)
	document.getElementById('comments_'+section).style.height = photos[i][5]+'px'
}

var upload_complete = function(){
	$.post('/req/gallery/upload_complete.php',{'iesux':'true))'},AjaxResult)
}

var rotate = function(degree){
	document.getElementById('photo_container').innerHTML = '<br/><br/><img src="/img/progressbar.gif" alt="..." />';
	$.post('/req/gallery/rotate.php', {id:photos[photo][0],degree:degree}, AjaxResult)
}

var delete_photo = function(){
	$.post('/req/gallery/delete_photo.php', {id:photos[photo][0]}, AjaxResult)
}

var cover = function(){
	$.post('/req/gallery/cover.php', {id:photos[photo][0]}, AjaxResult)
}

var del = function(Id, El){
	if(confirm("Удалить?"))
	$.post(
		'/req/delete.php',
		{id:Id,el:El},
		AjaxResult
	)
}

var move = function(Id, Dir, El){
	if(busy) return
	busy = 1
	$.post(
		'/req/move.php',
		{id:Id,dir:Dir,el:El},
		function(response){
			busy = 0
			eval(response)
		}
	)
}

var sms_length = function(){
	setTimeout(function(){
		var len = document.getElementById('message').value.length;
		document.getElementById('message_length').innerHTML = len;
		if(parseInt(len) > 70) document.getElementById('message').value = document.getElementById('message').value.substr(0, 70);
	}, 10)
}

var meeting_participate = function(el, mode, id){
	$.post('/req/meeting_participate.php', {mode:mode, id:id}, function(response){
		$(el).replaceWith(response);
	})
}


var meeting_participants = function(mode, id, uid){
	var a = {mode:mode, id:id}
	if(uid) a['uid'] = uid;
	if(mode == 'join_leader') a['nick'] = $('#leader').val()
	if(mode == 'join') a['nick'] = $('#participant').val()
	$.post('/req/meeting_participants.php', a, AjaxResult)
}

var deletebanlist = function(uid){
	if(confirm('Вы уверены?')) $.post('/req/deletebanlist.php', {uid:uid}, AjaxResult)
}

var photos_add = function(){
	var params = {
		src:'/flash/uploader.swf?2',
		version:[10,0,2],
		bgcolor:'#1f2632',
		width:200,
		height:30,
		wmode:'transparent'
	}
	var flashvars = {
		imgw:'800',
		imgh:'800',
		deftext:'Выберите файлы',
		btnw:'200',
		btnh:'30',
		loadtext:'Загрузка...',
		uploadurl:'/req/photos_upload.php',
		jsfunc:'photos_upload_complete'
	}

	$('#photos_uploader').flashembed(params, flashvars)
}

var photos_upload_complete = function(){
	location.href='/profile/'+myid+'/#photos';
	//$.post('/req/photos_upload_complete.php',{'iesux':'true'},AjaxResult)
}

var warn = function(id){
	var reason = $('input[name="warn_reason"]:checked').val();
	var reason2 = $('#warn_reason2').val();
	if(!reason && !warn_reason2){
		alert('Укажите причину!');
		return;
	}
	$.post('/req/profile/warn.php',{id:id, reason:reason, reason2:reason2},function(response){
		$('#warn_result').html(response).fadeIn(300, function(){
			setTimeout(function(){
				$('#warn_result').fadeOut(300)
			}, 3000)
		})
	})
}

var graffiti = function(){
	var params = {
		src:'/flash/fpaint/index.swf?15',
		version:[10,0,2],
		bgcolor:'#1f2632',
		width:800,
		height:500,
		play:'true',
		loop:'true',
		allowscriptaccess:'sameDomain',
		wmode:'transparent'
	}
	var flashvars = {
		jscriptname:'graffiti_upload_complete',
		profile:uid
	}
	$('#graffiti_container').flashembed(params, flashvars)
}

var graffiti_upload_complete = function(){
	$('ul.submenu', '.navpane:eq(0)').data('tabs').click(0)
	wall_load_page(1)
}

var wall_load_page = function(num){
	$.post('/req/profile/wall_load_page.php', {id:uid, page:num}, function(response){eval(response)})
	$('.page_active', '#wall_pager').removeClass('page_active')
	$('a.page'+num, '#wall_pager').addClass('page_active')
}

var wall_send = function(){
	var wall_message = document.getElementById('wall_message').value
	if(!wall_message){
		alert('Слишком короткое сообщение')
		return false
	}
	$.post('/req/profile/wall_send.php',{profile:uid,message:wall_message},function(response){eval(response)})
	document.getElementById('wall_message').value = ''
	$('#wall_send_button').slideUp(200);
}

var wall_remove = function(id){
	$.post('/req/profile/wall_remove.php',{id:id},function(response){eval(response)})
}

var photos_sort = function(){
	var content = '<div class="ac" id="photos_sortable">'
	for(var i in photos){
		content += '<div class="inline_block imagelist" id="phs'+photos[i][0]+'"><img src="'+photos[i][2]+'" /></div>'
	}
	content += '</div><div class="cb"></div><input type="button" class="button" onclick="photos_sort_save()" value="Сохранить" />'
	if(i){
		document.getElementById('photos_sort_container').innerHTML = content
		$('#photos_sortable').sortable()
		$('#photos_sortable').disableSelection()
	}
	else document.getElementById('photos_sort_container').innerHTML = 'Фоток всё ещё нет...'
}

var photos_sort_save = function(){
	var ps = $('#photos_sortable').sortable('toArray').join('-').replace(/[^0-9\-]+/gi,'')
	$.post('/req/profile/photos_sort.php',{ps:ps},function(response){eval(response)})
}

var graffiti_overlay = function(){
	$('a.graffiti').overlay({
		mask:{
			color: '#678',
			loadSpeed:200,
			opacity:0.9
		},
		target:'#graffiti_overlay',
		onBeforeLoad:function(){
			$('.overlay_content', '#graffiti_overlay').html('<img src="'+this.getTrigger().attr('href')+'" width="800" height="420" alt="" />');
		},
		top:'center',
		left:'center'
	})
}

var kill = function(uid){
	var Period = document.getElementById('period').value
	var Method = $('input[name="method"]:checked').val()
	var EmailBlock = document.getElementById('emailblock').checked ? 1 : 0
	var IpBlock = document.getElementById('ipblock').checked ? 1 : 0
	var CompBlock = document.getElementById('compblock').checked ? 1 : 0
	var NetBlock = document.getElementById('netblock').checked ? 1 : 0
	var Killer = document.getElementById('killer').value
	var Reason = document.getElementById('other_reason').value ? document.getElementById('other_reason').value : document.getElementById('reason').value
	if(!Period || !Method || !Killer || !Reason){
		alert('Все поля обязательны для заполнения')
		return false;
	}
	$.post('/req/kill.php', {id:uid, period:Period, killmethod:Method, emailblock:EmailBlock, ipblock:IpBlock, compblock:CompBlock, netblock:NetBlock, killer:Killer, reason:Reason}, AjaxResult)
}

var photos_remove = function(){
	var content = '<form action="#" onsubmit="photos_remove_action(); return false" method="post"><div class="ac">'
	for(var i in photos){
		content += '<div class="inline_block imagelist"><img src="'+photos[i][2]+'" /><br /><input type="checkbox" id="photo_remove'+photos[i][0]+'" value="1" /><label for="photo_remove'+photos[i][0]+'">&nbsp;Удалить</label></div>'
	}
	content += '</div><div class="cb"></div><br/><input type="submit" class="button" value="Удалить" /></form>'
	document.getElementById('photos_remove_container').innerHTML = i ? content : 'Фоток всё ещё нет...'
}

var photos_remove_action = function(){
	var photos_arr = []
	for(var i in photos){
		if(document.getElementById('photo_remove'+photos[i][0]).checked) photos_arr[photos_arr.length] = photos[i][0]
	}
	if(!photos_arr.length){
		alert('Не выбрано ни одной фотографии')
		return
	}
	$.post('/req/photos_remove.php',{photos:photos_arr.join('-')},function(response){eval(response)})
}

var load_photo_by_id = function(pid){
	for(var i in photos){
		if(photos[i][0] == pid){
			photo_load(i);
			break;
		}
 	}
}

var show_photo_descr = function(num){
	var descr_edit_link = !gallery && (uid == myid || mylevel > 3) ? '&nbsp;<a href="javascript:photo_descr_edit('+num+')" class="action">редактировать описание</a>' : ''
	document.getElementById('photo_description').innerHTML = makesmileys(photos[num][6])+descr_edit_link
}

var photo_descr_edit = function(num){
	var descr = photos[num][6]
	document.getElementById('photo_description').innerHTML = '<form action="#" method="post" onsubmit="photo_descr_save('+num+'); return false"><input type="text" class="text" id="photo_descr" value="'+descr+'" /></form>'
	moveCaretToEnd(document.getElementById('photo_descr'))
}

var photo_descr_save = function(num){
	var descr = document.getElementById('photo_descr').value
	$.post('/req/profile/photo_descr_save.php',{pid:photos[num][0],content:descr})
	photos[num][6] = descr
	show_photo_descr(num)
}

var priv_save = function(){
	var anticaps = $('#anticaps').is(':checked') ? 1 : 0;
	var antitroll = $('#antitroll').is(':checked') ? 1 : 0;
	var ban_disabled = $('input[name="ban_disabled"]').is(':checked') ? 1 : 0;
	var unban_disabled = $('input[name="unban_disabled"]').is(':checked') ? 1 : 0;
	var priv_phrase = $('#priv_phrase').is(':checked') ? 1 : 0;
	$.post('/req/profile/priv_save.php',{uid:uid, anticaps:anticaps, antitroll:antitroll, priv_phrase:priv_phrase, ban_disabled:ban_disabled, unban_disabled:unban_disabled},function(response){
		$('#priv_result').html(response).show(300);
		setTimeout(function(){
			$('#priv_result').hide(300)
		}, 3000)
	});
}

var profile_remove = function(){
	if(confirm('Удалить анкету?')) $.post('/req/profile/profile_remove.php',{uid:uid},AjaxResult);
}

var level_save = function(){
	var userlevel = $('input[name="level"]:checked').val();
	$.post('/req/profile/level_save.php',{uid:uid,level:userlevel},AjaxResult);
}

var ban_poll = function(uid){
	$.post('/req/ban.php',{uid:uid, act:'start'}, function(a){
		$('.overlay_content', '#ban_overlay').html('<h3>Опрос на бан</h3>'+a)
	});
}

var comments = function(o){
	switch(o.mode){
		case 'send':
			o.parent = $('input[name="parent"]', o.f).val();
			o.element = $('input[name="element"]', o.f).val();
			o.message = $('textarea[name="message"]', o.f).val();
			if(!o.message.length){
				alert('Слишком короткое сообщение');
				return false;
			}
			$('input[type="submit"]', o.f).attr({disabled:'disabled', value:'Отправка...'})
			delete o.f
		break;

		case 'comment':
			$('form.comments_form').remove()
			var f = $('form', '#comments_form_'+o.section).clone();
			$(f).addClass('comments_form');
			$('textarea', f).keydown(function(e){
				if(e.ctrlKey && e.keyCode == 13){
					$('input[type="submit"]', f).click()
					return;
				}
			})
			$('input[name="element"]', f).val(o.element);
			$('input[name="parent"]', f).val(o.id);
			$(f).appendTo('#comment_'+o.section+'_'+o.element+'_'+o.id);
			return;
		break;

		case 'delete':
			$('<div class="overlay"><div class="overlay_content ac"><p class="header">Удалить '+(o.tree ? 'ветку комментариев' : 'комментарий')+'?</p><br/><input type="button" class="button close" onclick="comments({mode:\'remove\', section:\''+o.section+'\', element:'+o.element+', id:'+o.id+'})" value="Удалить" />&nbsp;<input type="button" class="button close" value="Отмена" /></div></div>').appendTo('body').overlay({
				closeOnClick:false,
				mask:'#678',
				load:true
			})
			return
		break;

		case 'edit':
			$('<div class="overlay" id="overlay_edit"><div class="overlay_content ac"><p class="header">Редактирование комментария</p><br/><textarea class="textarea_comment" id="comment_edit"></textarea><div id="comment_edit_loading">Загружается...</div><br/><br/><input type="button" class="button close" onclick="comments({mode:\'update\', section:\''+o.section+'\', element:'+o.element+', id:'+o.id+', message:$(\'#comment_edit\').val()})" value="Сохранить" />&nbsp;<input type="button" class="button close" value="Отмена" /></div></div>').appendTo('body').overlay({
				closeOnClick:false,
				mask:'#678',
				load:true,
				onClose:function(){$('#overlay_edit').remove()}
			})
		break;
	}

	$.post('/req/comments.php', o, function(response){
		if(typeof o.debug !== 'undefined') alert(response);
		if(o.mode == 'send'){
			$('form.comments_form').remove()
			$('input[type="submit"]', '#comments_form_'+o.section).attr('value', 'Отправить').removeAttr('disabled')
			$('textarea', '#comments_form_'+o.section).val('')
		}
		if(o.mode == 'update'){
			$('blockquote', '#comment_'+o.section+'_'+o.element+'_'+o.id).html(response)
		}
		if(o.mode == 'edit'){
			response = $.parseJSON(response);
			document.getElementById('comment_edit').value = response.message;
			$('#comment_edit_loading').remove()
		}
		eval(response)
	});
}

var miniforum = function(){
	var miniforum_nick = $('#miniforum_nick').val();
	var miniforum_message = $('#miniforum_message').val();
	var miniforum_captcha = $('#miniforum_captcha').val();
	$.post('/req/miniforum.php', {nick:miniforum_nick, message:miniforum_message, captcha:miniforum_captcha,from_second:1}, function(response){eval(response)});
};

var miniforum_delete = function(id){
	if(confirm('Удалить?')) $.post('/req/delete_miniforum_msg.php', {id:id}, function(response){eval(response)});
}

var friends = function(o){
	$('#friends_trigger').html('&bull; Загружается...')
	$.post('/req/friends.php', o, function(response){
		eval(response)
	})
}

var do_clear_frame = function(id){
	if(confirm('Удалить сообщения пользователя?')) $.post('/req/clear_frame.php', {id:id}, function(response){
		eval(response);
	})
}

var creation = function(el, id, mode){
	$.post('/req/creation.php', {id:id, mode:mode}, function(response){
		$(el).replaceWith(response)
	})
}

var creation_vote = function(el, id){
	$.post('/req/creation_vote.php', {id:id, val:el.value}, function(response){
		eval(response)
	})
}

var multidelete = function(mode){
	var items = [];
	$('input[name="delete_'+mode+'"]:checked').each(function(){
		items[items.length] = this.value;
	})
	if(!items.length){
		alert('Ничего не выбрано');
		return false;
	}
	$.post('/req/multidelete.php',{mode:mode, items:items.join(',')}, function(response){
		eval(response)
	})
}

var multidelete_toggle = function(cat, el){
	if($(el).is(':checked')) $('input[name="delete_'+cat+'"]').attr('checked', 'checked');
	else $('input[name="delete_'+cat+'"]').removeAttr('checked');
}
