/*
	ajaxforum.js
*/

var activeElement=new Object();
activeElement.obj = null;
activeElement.form = null;
activeElement.url = null;
activeElement.top = null;
activeElement.left = null;
activeElement.type = null;

var commentsList = new Object();
commentsList.page = 0;
commentsList.url = null;
commentsList.type = 'replace';
commentsList.inpage = 20;

var alertView = false;

function resetActivElement(){
	activeElement.obj = null;
	activeElement.form = null;
	activeElement.url = null;
	activeElement.top = null;
	activeElement.left = null;
	activeElement.type = null;
}

function getValue(obj, tag){
	return ((obj.getElementsByTagName(tag).length == 1)? obj.getElementsByTagName(tag)[0].childNodes[0].nodeValue :'');
}

function blockForm(e){
	if(e.stopPropagation){
		e.stopPropagation();
	}
	else{
		e.cancelBubble = true;
	}

	if(e.preventDefault){
		e.preventDefault();
	}
	else{
		e.returnValue = false;
	}
}

function errorAlert(txt){
	if(!alertView){
	var div = document.createElement('div');
	div.id = 'errorAlert';
	div.className = 'alertError';
	if(arguments[3]){
		div.className = 'alertInfo';
	}
	var cd = document.createElement('div');
	cd.className = 'closeAlert';
	div.appendChild(cd);
	var img = new Image();
	img.src = closeimg;
	img.onclick = function(){
		closeAlert();
	};
	cd.appendChild(img);
	var p = document.createElement('div');
	p.className = 'p';
	p.innerHTML = nlr(txt);//.replace(/_br_/, '\n').replace(/\\n/,'\n').replace(/\n/, '<br/>');
	div.appendChild(p);
	
	document.documentElement.appendChild(div);
	
	var top = ((((screen.availHeight-200) - div.offsetHeight) / 2) + document.documentElement.scrollTop) + 'px';
	var left = (((screen.availWidth - div.offsetWidth) / 2) + document.documentElement.scrollLeft) + 'px';
	if(arguments[1]){
		left = arguments[1] + 'px';
	}
	if(arguments[2]){
		top = arguments[2] + 'px';
	}
	div.style.top = top;
	div.style.left = left;
	alertView = true;
	setTimeout(function(){addEvent(document.documentElement, 'click', closeAlert);}, 200);
	if(arguments[3]){
		setTimeout("closeAlert()", 6000);
	}
	}
}

function nlr(txt){
	var re1 = new RegExp("_br_|\\\n", "ig");
	var re2 = new RegExp("\\n", "ig");
	txt = txt.replace(re1, '\n');
	txt = txt.replace(re2, '<br/>');
	return txt;
}

function closeAlert(){
	alertView = false;
	var obj = document.getElementById('errorAlert');
	if(obj){
		removeEvent(document.documentElement, 'click', closeAlert);
		obj.parentNode.removeChild(obj);
	}
}

function submitRaport(e){
	blockForm(e);
	if(activeElement.url){
		var rez;
		if(!userlogged){
			if(activeElement.form){
				var post = new Array();
				for(var i=0; i<activeElement.form.elements.length; i++){
					if(typeof(activeElement.form.elements[i].value) != 'undefined' && typeof(activeElement.form.elements[i].name) != 'undefined' && activeElement.form.elements[i].name!=''){
					post.push(activeElement.form.elements[i].name + '=' + activeElement.form.elements[i].value);
					}
				}
				rez = execPost(activeElement.url, post);
			}
		}
		else{
			rez = execRequest(activeElement.url);
		}
		if(rez.responseXML && typeof(rez.responseXML.documentElement)!='undefined'){
			var result = getValue(rez.responseXML.documentElement, 'result');
			if(result != 1){
				if(getValue(rez.responseXML.documentElement, 'msg') != ''){
					errorAlert(getValue(rez.responseXML.documentElement, 'msg'), activeElement.left, activeElement.top);
				}
			}
			else{
				if(activeElement.obj){
					setMarkedObject(activeElement.obj, activeElement.type);
				}
			}
		}
	}
	removeConfirmCode();
}

function setMarkedObject(obj){
	obj.onclick = null;
	obj.className += ' raportMarked';
}

function submitComment(f, list){
	var post = new Array();
	for(var i=0; i<list.length; i++){
		if(typeof(f.elements[list[i]])){
			post.push(f.elements[list[i]].name + '=' + f.elements[list[i]].value);
		}
	}
	var rez = execPost(f.getAttribute('action'), post, 'apdorojimas', f);
}

function apdorojimas(rez, f){
	if(rez.responseXML && typeof(rez.responseXML.documentElement)!='undefined'){
		var result = getValue(rez.responseXML.documentElement, 'result');
		var msg = getValue(rez.responseXML.documentElement, 'msg');
		
		if(result != 1){
			if(msg!=''){
				var pos = findPos(f);
				errorAlert(getValue(rez.responseXML.documentElement, 'msg'), pos[0], pos[1]);
			}
			resetCommentForm(f, false);
		}
		else{
			if(msg!=''){
				var pos = findPos(f);
				errorAlert(getValue(rez.responseXML.documentElement, 'msg'), null, pos[1], true);
			}
			resetCommentForm(f, true);
			if(commentsList.url){
				commentsListReload();
			}
		}
	}
}

function resetCommentForm(f, full){
	if(full){
		f.elements['comment'].value = '';
		if(!userlogged){
			f.elements['author'].value = '';
		}
		if(document.getElementById('files_list')){
			document.getElementById('files_list').innerHTML = '';
		}
	}
	if(!userlogged){
		f.elements['securecode'].value = '';
		refreshSecImage();
	}
	
}

function refreshSecImage(){
	if(document.getElementById('forum_secimg')){
		var now = new Date();
		document.getElementById('forum_secimg').src = secimgcomment + now.getTime() + '.png';
	}
}

function commentsListReload(){
	if(document.getElementById('commentsList')){
		if(commentsList.type == 'replace'){
			var rez = execRequest(getPageInUrl(commentsList.url, commentsList.page));
			document.getElementById('commentsList').innerHTML = rez.responseText;
			rez = null;
		}
		else if(commentsList.type == 'add'){
			var tmp_content = '';
			var times = ((commentsList.inpage > commentsList.page) ? 0 : Math.round(commentsList.page / commentsList.inpage)) + 1;
			for(var i=0; i<times; i++){
				var url = getPageInUrl(commentsList.url, (commentsList.inpage*i));
				if(i<(times-1)){
					url+=';nopager=ok';
				}
				var rez = execRequest(url);
				tmp_content += rez.responseText;
				rez = null;
			}
			document.getElementById('commentsList').innerHTML = tmp_content;
		}
	}
}

function getPageInUrl(url, page){
	return url.replace(/_p_/, page);
}

function setCommentsListPage(page){
	commentsList.page = page;
	return getPageInUrl(commentsList.url, commentsList.page);
}

function addCommPage(page){
	if(!viewForm){
	commentsList.type = 'add';
	if(document.getElementById('commentsList')){
		if(document.getElementById('addPager')){
			document.getElementById('addPager').innerHTML = '<img src="'+loading_src+'" alt="" border="0" vspace="2"/>';
		}
		var rez = execRequest(setCommentsListPage(page));
		if(document.getElementById('addPager')){
			document.getElementById('addPager').parentNode.removeChild(document.getElementById('addPager'));
		}
		document.getElementById('commentsList').innerHTML += rez.responseText;
		rez = null;
	}
	}
}

function loadCommPage(page){
	if(!viewForm){
	commentsList.type = 'replace';
	if(document.getElementById('commentsList')){
		var rez = execRequest(setCommentsListPage(page));
		document.getElementById('commentsList').innerHTML = rez.responseText;
		rez = null;
	}
	}
}

