var debug = true;
var textareaMax = new Array();
var bbCodeForms = new Array();

function slideShow(id, slideUrl) {    
    var slideW = window.open(slideUrl+'?id='+id+'&type=album','dia','width=640,height=480,toolbar=0,menu=0,status=0');
    slideW.focus(); 
}

function checkAll() {
	var i,j, count, elems = document.getElementsByTagName('input');
  	count = elems.length;
	for (i = 0; i < count; i++) {
		if (elems[i].name=='checkall' && elems[i].checked)  {
			for (j=0; j < count; j++) {
				if (elems[j].name=='topicid') {
					elems[j].checked = true;						
				}
			}
		} else if (elems[i].name=='checkall' && !elems[i].checked) {	
			for (j=0; j < count; j++) {
				if (elems[j].name=='topicid') {
					elems[j].checked = false;						
				}
			}			
		}
	}
	return false;
}

function defaultOnload(){
	decryptEmails();
	
	if(textareaMax.length >= 0){
		for(var i in textareaMax){
			textareaMaxInit(i,textareaMax[i]);
		}
	}

	if(self.disableMouseWheels){ //-> ie.js
		disableMouseWheels();
	}
	
	if(self.setImgMaxWidth){ //-> ie.js
		setImgMaxWidth();
	}

	resizebanner('banner_top');
}

function resizebanner(id) {
	var banner = document.getElementById(id);
	if(banner){
		var bannerdoc = banner.object ? banner.object : banner.contentDocument;
		if(bannerdoc){
			var docbody = bannerdoc.body ? bannerdoc.body : bannerdoc.documentElement;
			if(docbody){
				var height = docbody.offsetHeight;
				var width = docbody.offsetWidth;
				if(height && height > banner.height) {
					banner.height = height;
				}
				if(width && width > banner.width){
					banner.width = width;
				}
			}
		}
	}
}

function toggleIgnoredComment(id){
	var comment = document.getElementById(id);
	if(! comment){
		if(debug) alert('comment not found! '+id);
		return false;	
	}
		
	replaceClasses(comment,'ignored','ignoredOn');
}

/*
function removeClass(o,className){
	if(o.className.indexOf(className) != -1){
		var re = new RegExp('\\s*'+className)
		o.className = o.className.replace(re,''); 
		return true;
	}else{
		return false;
	}
}

function addClass(o,className){
	if(o.className.indexOf(className) == -1){
		o.className += ' ' + className;
		return true;
	}else{
		return false;
	}
}
*/

function replaceClasses(o,class1,class2){
	var classes = o.className.split(' ');
	for(var i=0; i<classes.length; i++){
		if(classes[i] == class1){
			classes[i] = class2;
			break;
		}else if(classes[i] == class2){
			classes[i] = class1;
			break;
		}
	}
	o.className = classes.join(' ');
}

function textareaMaxInit(id,max){
	var ta = document.getElementById(id);
	var label = document.getElementById(id+'_maxlength');
	if(!(ta && label)){ 
		throw new Error('textareaMaxInit: textarea or label not found');
		return;
	}
	
	if(ta.value.length > 0){
		//label.childNodes[0].nodeValue = (max - ta.value.length).toString();		
		label.value = (max - ta.value.length).toString();
	}
}

function textareaMaxCheck(textarea){
	if(!textarea){
		throw new Error('textareaMaxCheck: textarea not found');
		return;
	}
	var id = textarea.getAttribute('id');
	var max = textareaMax[id];
	var label = document.getElementById(id+'_maxlength');
	if(!label) {
		throw new Error('textareaMaxCheck: label not found');
		return;
	}
	
	if( textarea.value.length > max){
		textarea.value = textarea.value.substring(0, max);
	}else{
		//label.childNodes[0].nodeValue = (max - this.value.length).toString();	
		//document.getElementById('counter').value = max - this.value.length;
		label.value = (max - textarea.value.length).toString();
	}
}

function postForm(FormToPost, Action) {
	FormToPost.action = Action;
	FormToPost.submit();
}

/**
 * Use this to disable buttons as well.
 */
function postForm(FormToPost, Action, ButtonToDisable) {
	disableButton(ButtonToDisable);
	alert('action: '+Action);
	FormToPost.action = Action;
	FormToPost.submit();
}

/**
 * Disable all elements whose names contain the parameter string.
 */
function disableButton(btn) {
	for (i=0; i<document.mainForm.elements.length; i++) {
		if (document.mainForm.elements[i].name.indexOf(btn)!=-1) {
			document.mainForm.elements[i].disabled=true;
		}
	}
}

var loaded_user = new Array(); //userId -> adatlap toredekek
var loaded_msg_user = new Array(); //msgId -> true/false
var visible_msg_user;

function showUserData(userId,msgId,topicId,folder,orderType,order,page){
	try{
		var dst = document.getElementById("userinfo_"+msgId);

		if(visible_msg_user && visible_msg_user != dst){
			visible_msg_user.style.display = 'none';
		}

		if(dst.style.display == 'none'){
			if(! loaded_msg_user[msgId]){ //msgId uzenetbe meg nem toltottunk usert
				if(! loaded_user[userId]){ //userId user meg nem volt betoltve
					loadUserData(userId,msgId,topicId,folder,orderType,order,page);
				}
				//betoltve, bemasolas:
				if(document.importNode) { //firefox, stb..
					for(var i=0; i<loaded_user[userId].childNodes.length; i++){
						var imported = document.importNode(loaded_user[userId].childNodes.item(i),true); //importalando node, rekurzivitas
						dst.appendChild(imported);
					}
				} else { //IE
					//var xml = loaded_user[userId].xml;
					var xml = "";
					for(var i=0; i<loaded_user[userId].childNodes.length; i++){
						if(loaded_user[userId].childNodes.item(i).xml){
							xml += loaded_user[userId].childNodes.item(i).xml;
						}
					}
					dst.innerHTML = xml;
				}
				loaded_msg_user[msgId] = true;
				//show = true;
			}

			dst.style.display = 'block';
			visible_msg_user = dst;
		}else{
			dst.style.display = 'none';
		}

	}catch(e){
		//alert('hiba'+e.message);
		return true; //hiba volt: link feldolgozasa
	}
	return false; //link kihagyasa
}

function loadUserData(userId,msgId,topicId,folder,orderType,order,page){
	var xmlHttp = XmlHttp.create();
	xmlHttp.open("GET", "felhasznalo/informaciok.jsp?id="+userId+"&messageId="+msgId+"&topicId="+topicId+"&folder="+folder+"&orderType="+orderType+"&order="+order+"&page="+page, false);
	xmlHttp.send(null);
	var src = xmlHttp.responseXML.getElementsByTagName("body").item(0);
	loaded_user[userId] = src;
}


// kedvenc lehullo admin

var loaded_fav = new Array();
var is_loaded_fav = new Array();
var visible_fav_admin;

function showFavouriteAdmin(favType, favId) {
	try {
		var dst = document.getElementById("kedvencadmin_" + favType + "_" + favId);
		if (visible_fav_admin && visible_fav_admin != dst) {
			visid = visible_fav_admin.id;
			document.images["arrow" + visid.substr(12, visid.length - 12)].src = 'common/images/arrow_left.gif';
			visible_fav_admin.style.display = 'none';
		}
		if (dst.style.display == 'none') {
			document.images["arrow_" + favType + "_" + favId].src = 'common/images/arrow_down.gif';
			if (! is_loaded_fav[favType + "_" + favId]) {
				if (! loaded_fav[favType + "_" + favId]) {
					loadFavouriteAdmin(favType, favId);
				}
				if (document.importNode) { //firefox, stb..
					for (var i = 0; i < loaded_fav[favType + "_" + favId].childNodes.length; i++) {
						var imported = document.importNode(loaded_fav[favType + "_" + favId].childNodes.item(i), true);
						dst.appendChild(imported);
					}
				} else { //IE
					var xml = "";
					for (var i = 0; i < loaded_fav[favType + "_" + favId].childNodes.length; i++) {
						if (loaded_fav[favType + "_" + favId].childNodes.item(i).xml) {
							xml += loaded_fav[favType + "_" + favId].childNodes.item(i).xml;
						}
					}
					dst.innerHTML = xml;
				}
				is_loaded_fav[favType + "_" + favId] = true;
			}
			dst.style.display = 'block';
			visible_fav_admin = dst;
		} else {
			document.images["arrow_" + favType + "_" + favId].src = 'common/images/arrow_left.gif';
			dst.style.display = 'none';
		}
	} catch (e) {
		//alert('hiba'+e.message);
		return true;
	}
	return false;
}

function loadFavouriteAdmin(favType, favId) {
	var xmlHttp = XmlHttp.create();
	xmlHttp.open("GET", "felhasznalo/kedvencadmin.jsp?m=" + favType + "&id=" + favId, false);
	xmlHttp.send(null);
	var src = xmlHttp.responseXML.getElementsByTagName("body").item(0);
	loaded_fav[favType + "_" + favId] = src;
}


// topiknyitas form
function changeForum(select){
	var warn = document.getElementById("hierarchywarning");
	if(select.selectedIndex > 0){
		if(select.options[select.selectedIndex].value == -1){
			if(warn){
				warn.style.visibility = "visible";
			}
		} else {
			if(warn){
				warn.style.visibility = "hidden";
			}
			if(select.form.publicWriteable){
				select.form.publicWriteable.disabled = false;
			}
			if(select.form.detached){
				select.form.detached.disabled = false;
			}
		}
	} else {
		if(warn){
			warn.style.visibility = "hidden";
		}
		if(select.form.publicWriteable){
			select.form.publicWriteable.checked = false;
			select.form.publicWriteable.disabled = true;
		}
		if(select.form.detached){
			select.form.detached.checked = false;
			select.form.detached.disabled = true;
		}
	}
}

function changeDetach(cb) {
	if(cb.checked){
		cb.form.publicWriteable.checked = true;
	}
}

function changePublicWritable(cb){
	if(! cb.checked){
		cb.form.detached.checked = false;
	}
}

function openBrowserWindow(targetURL) {
	openWindow(targetURL, "", 0, 0, 800, 600, 0, 0, 0, 1, 1, 0, 1, 0, 0);
}

function openWindow(
	targetURL,
	windowName,
	top,
	left,
	width,
	height,
	withMenubar,
	withToolbar,
	withScrollbars,
	withStatusbar,
	withTitlebar,
	withHotkeys,
	isResizable,
	isAlwaysRaised,
	isDependent) {

  var retValue, strStyle;

  if ((withMenubar!='0') && (withMenubar!='1')) {
		withMenubar='0';
	};
	if ((withToolbar!='0') && (withToolbar!='1')) {
			withToolbar='0';
	};
	if ((withScrollbars!='0') && (withScrollbars!='1')&& (withScrollbars!='yes')&& (withScrollbars!='auto')) {
			withScrollbars='0';
	};
	if ((withStatusbar!='0') && (withStatusbar!='1')) {
			withStatusbar='0';
	};
	if ((withTitlebar!='0') && (withTitlebar!='1')) {
			withTitlebar='0';
	};
	if ((withHotkeys!='0') && (withHotkeys!='1')) {
			withHotkeys='0';
	};
	if ((isResizable!='0') && (isResizable!='1')) {
			isResizable='0';
	};
	if ((isAlwaysRaised!='0') && (isAlwaysRaised!='1')) {
			isAlwaysRaised='0';
	};
	if (((isDependent!='') && (isDependent=='dependent')) || (isDependent=='undefined')) {
			isDependent='dependent';
	};
  strStyle =
    'menubar=' + withMenubar +
    ',toolbar=' + withToolbar +
    ',scrollbars=' + withScrollbars +
    ',status=' + withStatusbar +
    ',width=' + width +
    ',height=' + height +
    ',top=' + top +
    ',left=' + left +
    ',titlebar=' + withTitlebar +
    ',resizable=' + isResizable +
    ',alwaysRaised=' + isAlwaysRaised +
    ',hotkeys=' + withHotkeys +
    ',\'' + isDependent + '\'';
  retValue = window.open(targetURL,windowName,strStyle);
  //alert (withScrollbars);
  return retValue;
}
function showHideBlock(id) {
	var target;
	if((target = document.getElementById(id))){
		if(target.style.display != 'none'){
			target.style.display = 'none';
		}else{
			target.style.display = 'block';
		}
	} else {
		throw new Error("Element not found! id="+id);
	}
}

var blockShowed = new Array();

function showHideBlockWithArrow(element,blockId,imgId,hiddenText,visibleText){
	var block = document.getElementById(blockId);
	var img = document.getElementById(imgId);
	if(element && block && img){
		if(block.style.display != 'none'){
			block.style.display = 'none';		
			img.src = 'common/images/arrow_left.gif';
			while(element.firstChild){
				element.removeChild(element.firstChild);
			}
			element.appendChild(document.createTextNode(hiddenText));
		}else{
			block.style.display = 'block';
			img.src = 'common/images/arrow_down.gif';
			while(element.firstChild){
				element.removeChild(element.firstChild);
			}
			element.appendChild(document.createTextNode(visibleText));
			
			// init max-width-hack on images when first displaying block
			if(self.setImgMaxWidth){ //-> ie.js
				if(! blockShowed[blockId]){
					setImgMaxWidth();
					blockShowed[blockId] = true;
				}
			}
		}
	}else{
		throw new Error("One of required elements not found");
	}
	return false;
}

function decryptEmails() {
	var links = document.getElementsByTagName('a');

	for(var i=0; i<links.length; i++){
		var link = links.item(i);
		var href = link.getAttribute('href');
		if(link.className == 'crypt' && href && href.indexOf('mailto:') != -1){
			var fakeEmail = href.substring(7);
			var realEmail;
			var hostAndUser = fakeEmail.split('@');
			realEmail = reverseString(hostAndUser[1]) + '@';
			var hostParts = hostAndUser[0].split('.');
			for(var j=0; j<hostParts.length; j++){
				if(j>0){
					realEmail += '.';
				}
				realEmail += reverseString(hostParts[j]);
			}
			link.setAttribute('href','mailto:'+realEmail);
			link.firstChild.nodeValue = realEmail;
		}
	}
}

function reverseString(input){
	var output = "";
	for (var k = 0; k <= input.length; k++) {
		output = input.charAt (k) + output;
	}
	return output;
}

function disableSubmit(form) {
	form.onsubmit = function() {
		return false;
	}
}

function checkInPMessages(state) {
    var myForm = document.getElementById('privateMessage');
    if (myForm) {        
        for (var i = 0; i < myForm.elements.length; i++) {            
            var e = myForm.elements[i];
            if (e.name == 'del') {
                e.checked = state;
            }
        }    
    }
}

var fototarWindow;
function writePicCallback(code, imageURL) {
	if (fototarWindow) {
		fototarWindow.close();
	}

	if (code == 0) {
		//OK gomb
		if ( imageURL.length < 1 ) return;
		var message	= document.getElementById('message');
		message.value = message.value + '[img]' + imageURL + '[/img]';
	} else if (code == 1) {
		//megsem gomb
		return;
		//alert('user megsem gombot nyomott');
  	} else {
		//barmi mas uzenet
		alert(imageURL);
	}

	return false;
}

function openFototarWindow() {
	fototarWindow = window.open('kepfeltoltes.jsp', 'mediastoreUpload', 'width=311,height=508')
}

