	var directory = new Array();
	var picfiles = new Array();
	var picsdir="";
	
	var genafile = new Array();
	var genadir = new Array();
	var gendir="";
	
	var mini_width=160;
	var mini_height=120;
	
	var normal_width=800;
	var normal_height=600;
	
	var bImageError=false;
	var isAXObj=false;	
	// =======[ Debug ]=======
	// =======[ IO ]=======
	var showIO=false;
	var showIn=true;
	var showOut=true;
	// =======[ Jump ]=======
	var enReload=true;
	// ==============
	
	var timerobjs=null;
	
	var gmode=false;

	var resizeT=null;
	var resizeAT = new Array();
	
	var elwind=null;
	var lastidir=-1;
	
	var xmlHttp = null;
	var netc= new NetClass();
	
	var timer=null;
	var lasttimer=null;
	
	var makeid=0;
	
	var resizeprocs = new Array();
	
	function getParam( name )
	{
	  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	  var regexS = "[\\?&]"+name+"=([^&#]*)";
	  var regex = new RegExp( regexS );
	  var results = regex.exec( window.location.href );
	  if( results == null )
		return "";
	  else
		return results[1];
	}
	
	
	function ResProc(_fo,_mfn,_nfn,_mpw,_mph,_npw,_nph) { 
		this.oldfn = _fo;
		this.newmfn = _mfn;
		this.newnfn = _nfn;
		this.picmw = _mpw;
		this.picmh = _mph;
		this.picnw = _npw;
		this.picnh = _nph;
		this.done = 0;
		this.resized = 0;
	}
	
	function bind(toObject, methodName){
    	return function(){toObject[methodName]()}
	}
	
	function bind2(cobject, cmethod){
    	return function(){ cmethod.call(cobject);}
	}
	
	function binda(cobject, cmethod){
    	return function(){ cmethod.apply(cobject,arguments);}
	}
	
	function ResProcClass(aproc,onchg,oncomp) {
		this.done=false;
		this.aproc=aproc;
		this.oncomp=oncomp;
		this.onchg=onchg;
		this.db=0;
		this.id=makeid++;
		this.netc = new NetClass();
		
		this.resizePic= function (rsObj) {
			rsObj.done=1;
			rurl="picresize.php";
			pd="fn="+escape(rsObj.oldfn);
			pd+="&mp="+escape(rsObj.newmfn);
			pd+="&np="+escape(rsObj.newnfn);
			pd+="&mnw="+rsObj.picmw;
			pd+="&mnh="+rsObj.picmh;
			pd+="&nnw="+rsObj.picnw;
			pd+="&nnh="+rsObj.picnh;
			//addElse("error_div","obj rurl:"+rurl+" pd:"+pd);
			this.netc.getXMLAsync(rurl,bind(this,"cbrs"),"POST",pd);
		}
		
		//addElse("error_div","ResProcClass:id:"+this.id+" aproc.len:"+this.aproc.length);
		
//		this.setme = function(isme)
		
		this.cbrs = function(xml) 
		{
			try {
				//addElse("error_div","cbrs:id:"+this.id);
				isall=1;
				pi=0;
				for(pi=0;pi<this.aproc.length;pi++) {
					if(this.aproc[pi].done) continue;
					this.db=pi;
					isall=0;
					this.resizePic(this.aproc[pi]);
					//addElse("error_div","cbrs:id:"+this.id+" filem:"+this.aproc[pi].newmfn+" filen:"+this.aproc[pi].newnfn);
					if(this.onchg!=null)
						this.onchg(this);
					break;
				}
				//setBgPer(parseInt((pi*100/this.aproc.length) ,10));
				if(isall) {
					//setBgPer(100);
					//loadElse("message_div","Kész!");
					this.done=true;
					//alert("oncomp");
					if(this.oncomp!=null)
						this.oncomp(this);
				}
			} catch(e)
			{
				addElse("error_div","cbrs:fail:"+e.message);
			}
		}
		//this.cbrs(null);
		
	}
	
	
	
	function $(element) {
	  	if (arguments.length > 1) {
    		for (var i = 0, elements = [], length = arguments.length; i < length; i++)
      			elements.push($(arguments[i]));
    		return elements;
  		}
		return document.getElementById(element);
  //if (Object.isString(element))
  //  element = document.getElementById(element);
  //return Element.extend(element);
	}
	
	function getStyle(gsobj,styleProp)
	{
		val = null;
		// gsobj = document.getElementById(el);
		if (gsobj.currentStyle)
			val = gsobj.currentStyle[styleProp];
		else if (window.getComputedStyle)
			val = document.defaultView.getComputedStyle(gsobj,null).getPropertyValue(styleProp);
		return val;
	}
	
	function startBGAnims(astr)
	{
		//addElse("error_div","Start startBGAnims:astr:"+printArray(astr));
		aobjs = new Array();
		for(si in astr) {
			obj = $(astr[si]);
			dw = getStyle(obj,"width");
			bp = getStyle(obj,"background-position");
			if(obj.style.backgroundPosition=="" && bp) {
				obj.style.backgroundPosition=bp;
				//addElse("error_div","Start startBGAnims:obj.bp:"+obj.style.backgroundPosition);	
			}			
			ow = parseInt(obj.offsetWidth);
			oh = parseInt(obj.offsetHeight);
			dx=0; dy=0;
			while(dx==0) dx=rand(7)-4;
			while(dy==0) dy=rand(7)-4;
			//addElse("error_div","Start startBGAnims:obj:"+obj+" dx:"+dx+" dy:"+dy+" ow:"+ow+" oh:"+oh);
			aobjs.push(new BGAnimClass(obj,dx,dy,900,900));
		}
		timerobjs = new TimerObjsClass(50,aobjs);
		timerobjs.start();
		//addElse("error_div","End startBGAnims:aobjs:"+printArray(aobjs));
	}
	
	//================================[ Animation ]=================================
	
	function BGAnimClass(aobj,dx,dy,ow,oh) {
		this.aobj=aobj;
		this.dx=dx;
		this.dy=dy;
		this.ow=ow;
		this.oh=oh;
		this.bx=0;
		this.by=0;
		
		asdim = this.aobj.style.backgroundPosition.split(" ");
		if(asdim[0]) this.bx = parseInt(asdim[0]);
		if(asdim[1]) this.by = parseInt(asdim[1]);
		
		this.doit = function() {			
/*		
			asdim = this.aobj.style.backgroundPosition.split(" ");
			if(asdim[0])
				cx = parseInt(asdim[0])+this.dx;
			else
				cx = this.dx;
			if(asdim[1])
				cy = parseInt(asdim[1])+this.dy;
			else
				cy = this.dy;
*/				
			this.bx += this.dx;
			this.by += this.dy;
			if(Math.abs(this.bx)>this.ow)
				this.bx %= this.ow;
			if(Math.abs(this.by)>this.oh)
				this.by %= this.oh;
			//cx %= this.ow;
			//cy %= this.oh;
			
			try 
			{ this.aobj.style.backgroundPosition = this.bx + "px " + this.by + "px";
			  //loadElse("msg_div","this.aobj.style.backgroundPosition:"+this.aobj.style.backgroundPosition);
			}
			catch(e)
			{ this.aobj.style.backgroundPosition = this.bx + " " + this.by; }
		}
		
	}
	
	function TimerObjsClass(ival,aobjs)
	{
		this.intervall=ival;
		this.timerid=0;
		this.aobjs=aobjs;
		
		this.callback = function()
		{
			try {
				for(oi in this.aobjs)
					this.aobjs[oi].doit();
			} catch(e) {
				//$("msg_div").innerHTML="hiba:ctimer:"+ctimer+" e:msg:"+e.message;
				this.stop();
			}
		};
		
		this.start= function() 
		{
			try
			{
				this.timerid=setInterval(bind2(this,this.callback),this.intervall);
				//this.timerid=setInterval(bind(this,"callback"),this.intervall);
			} catch(e)
			{
				$("msg_div").innerHTML+="start:hiba:"+e.message;
			}
		};
		
		this.stop = function() { clearInterval(this.timerid) };
	}
	
	
	function TimerClass(ival,callback)
	{
		this.intervall=ival;
		this.timerid=0;
		this.asw=0;
		this.ash=0;
		this.ast=0;
		this.asl=0;
		this.acw=0;
		this.ach=0;
		this.act=0;
		this.acl=0;
		this.tickdelta=0;
		this.tickmax=0;
		this.aobj=null;
		//var me=this;
		
		this.callback = function(ctimer)
		{
			try {
			if(ctimer==null || ctimer=="undefined") {
				ctimer=lasttimer;
//				tstr="";
//				for(var oi in this)
//					tstr+="oi:"+oi+" val:"+this[oi]+"<br>";
					//+" val:"+this[oi]
//				$("msg_div").innerHTML="this:"+this+" tstr:"+tstr;
			}
				
			if(ctimer.tickdelta<ctimer.tickmax)
			{
				
				ctimer.tickdelta++;
				if(ctimer.ash!="")
				{
					ctimer.ach+=ctimer.ash;
					ctimer.aobj.style.height=parseInt(ctimer.ach);
				}
				if(ctimer.asw!="") {
					ctimer.acw+=ctimer.asw;
					ctimer.aobj.style.width=parseInt(ctimer.acw);
				}
				if(ctimer.ast!="") {
					ctimer.act+=ctimer.ast;
					ctimer.aobj.style.top=parseInt(ctimer.act);
				}
				if(ctimer.asl!="") {
					ctimer.acl+=ctimer.asl;
					ctimer.aobj.style.left=parseInt(ctimer.acl);
				}
			} else
				ctimer.stop();
			} catch(e) {
				//$("msg_div").innerHTML="hiba:ctimer:"+ctimer+" e:msg:"+e.message;
			}
		};
		
		this.start= function(hobj,ftime,tow,toh,tot,tol) 
		{
			$("msg_div").innerHTML+="start<br>";
			this.aobj=hobj;
			this.acw = parseInt(hobj.style.width);
			this.ach = parseInt(hobj.style.height);
			this.act = parseInt(hobj.style.top);
			this.acl = parseInt(hobj.style.left);
			
			this.tickdelta=0;
			this.tickmax=parseInt(ftime / this.intervall)+1;
			
			try {
			if(tow!="")
				this.asw = (tow-this.acw)*this.intervall / ftime;
			else
				this.asw="";
			if(toh!="")
				this.ash = (toh-this.ach)*this.intervall / ftime;
			else
				this.ash="";
			if(tot!="")
				this.ast = (tot-this.act)*this.intervall / ftime;
			else
				this.ast="";
			if(tol!="")
				this.asl = (tol-this.acl)*this.intervall / ftime;
			else
				this.asl="";
		
			$("msg_div").innerHTML+="start end<br>";
			
			lasttimer=this;
			
			this.timerid=setInterval(bind(this,"callback"),this.intervall);
			} catch(e)
			{
					$("msg_div").innerHTML+="start:hiba:"+e.message;
			}
		};
		
		this.stop= function() { clearInterval(this.timerid) };
	}
	
	function startAnime() {
		adiv = $("animated_div");
		adiv.style.height=25;
		adiv.style.top=120;
		adiv.style.width=100;
		//adiv.style.left="auto";

		timer = new TimerClass(25);
		timer.start(adiv,1000,880,600,0,"");
		//$("msg_div").innerHTML="timer:asw:"+timer.asw+" timer:ash:"+timer.ash+" timer:ast:"+timer.ast;
		//$("msg_div").innerHTML+="<br>animate_main:adiv:"+adiv+" w:"+adiv.style.width+" :h:"+adiv.style.height+" :t:"+adiv.style.top+" :l:"+adiv.style.left;
	}
	
	function animate_main()
	{
		//alert("alert kint");
		adiv = $("animated_div");
		if(parseInt(adiv.style.width)<878)
		{
			//alert("alert bent");
			adiv.style.height=parseInt(adiv.style.height)+timer.ash;
			adiv.style.top=parseInt(adiv.style.top)+timer.ast;
			adiv.style.width=parseInt(adiv.style.width)+timer.asw;
			//$("msg_div").innerHTML="animate_main:adiv:"+adiv+" w:"+adiv.style.width+" :h:"+adiv.style.height+" :t:"+adiv.style.top+" :l:"+adiv.style.left;
		} else
			timer.stop();
	}
	
	//================================[ XMLHttpRequest ]=================================
	
	function parseXML(sxml)
	{
		try //Internet Explorer
		{
  			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async="false";
  			xmlDoc.loadXML(sxml);
			return xmlDoc;
  		}
		catch(e)
  		{
  			try //Firefox, Mozilla, Opera, etc.
  			{
  				parser=new DOMParser();
  				xmlDoc=parser.parseFromString(sxml,"text/xml");
				return xmlDoc;
  			}
  			catch(e)
  			{
  				alert(e.message);
  				return;
  			}
		}
		return null;
	}

	
	function getXML(surl,ptype)
	{
		if (typeof ptype == "undefined") {
    		ptype = "GET";
		}
	  	//xmlHttpReq=xmlHttp;
		var xmlReq=null;
		//addElse("error_div","Before getXML:xmlReq:"+xmlReq);
		xmlReq=GetXmlHttpObject();
		if (xmlReq==null)
  		{
			alert ("Your browser does not support XMLHttpRequest!");
	  		return;
 		}
		addElse("error_div","After getXML:xmlReq:"+xmlReq);
		try {
			xmlReq.open("GET",surl,false);
			if(isAXObj) xmlReq.send();
			else xmlReq.send(null);
		}
		catch(e)
		{
			addElse("error_div","getXML:xmlReq:fail");
		}
		var xmldoc=xmlReq.responseXML;
		if (xmldoc==null) {
			xmldoc=parseXML(xmlReq.responseText);
			if (xmldoc==null)
			{
				addElse("error_div","getXML:xmldoc:Parser fail");
			}
		}
		//addElse("error_div","after getXML:xmldoc:"+xmldoc);
		return xmldoc;
	}
	
	function NetClass() {
		this.xmlreq=null;
	
		this.getXMLAsync = function getXMLAsync(surl,cbfunc,ptype,pdata)
		{
			if (typeof ptype == "undefined") {
				ptype = "GET";
			}
			this.xmlreq=GetXmlHttpObject();
			if (this.xmlreq==null)
			{
				alert ("Your browser does not support XMLHttpRequest!");
				return;
			}
				
			try {
				this.xmlreq.callback=cbfunc;
				//xmlHttp=xmlHttpReq;
				this.xmlreq.onreadystatechange=bind(this,"stateChanged");
				
				//surl=escape(surl);
				this.xmlreq.open(ptype,surl,true);
				
				if(ptype=="POST")
				{
					//xmlHttpReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
					this.xmlreq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-2");
					//xmlHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
					// charset=iso-8859-2");
					//; charset=iso-8859-2					
					//xmlHttpReq.setRequestHeader("Content-Type", "text/xml; charset=iso-8859-2");
					//pdata=escape(pdata);
					this.xmlreq.send(pdata);
					if(showIO && showOut)
						addElse("error_div","POST:"+surl+" d:"+pdata);
				} else
				{
					
					this.xmlreq.setRequestHeader("Content-Type", "text/xml; charset=iso-8859-2");
					this.xmlreq.send(null);
					if(showIO && showOut)
						addElse("error_div","GET:"+surl);
				}
			//if(isAXObj) xmlHttpReq.send();
			//else xmlHttpReq.send(null);
			
			}
			catch(e)
			{
				addElse("error_div","getXMLasync:this.xmlreq:fail");
			}
			//return this.xmlreq;
		}
	
		this.stateChanged = function() 
		{ 
			if ((this.xmlreq.readyState==4) &&(this.xmlreq.status == 200))
			{
				//addElse("error_div","stateChanged:text:'"+xmlHttp.responseText+"'");
				xmldoc=this.xmlreq.responseXML;
				//addElse("error_div","before stateChanged:xmldoc:"+xmldoc); //Content-Type Content-Type
				//addElse("error_div","before stateChanged:content-type:"+xmlHttp.getResponseHeader(“Content-Type”));
				if (xmldoc && typeof xmldoc.childNodes != "undefined" && xmldoc.childNodes.length == 0) {
					xmldoc = null;
					//alert(xmlHttp.responseText);
				}
				//alert(this.xmlreq.responseText);
				if(showIO && showIn)
					addElse("error_div","<p>xmlHttp.responseText:<br>"+this.xmlreq.responseText+"<p>");
				if (xmldoc==null){
					//addElse("error_div","!stateChanged:xmldoc:Nemjó!");
					xmldoc=parseXML(this.xmlreq.responseText);
					if (xmldoc==null)
					{
						addElse("error_div","getXML:xmldoc:Parser fail");
					}				
				}
				//addElse("error_div","after stateChanged:xmldoc:"+xmldoc);
				this.xmlreq.callback(xmldoc);
				//xmlHttp=null;
			}
		}
		
			
	}


	function GetXmlHttpObject()
	{
		
	  	var req=null;
		if (window.XMLHttpRequest) {
			req = new XMLHttpRequest();
			isAXObj=false;
			//addElse("error_div","GetXmlHttpObject:XMLHttpRequest");
		} else if (window.ActiveXObject) {
			req = new ActiveXObject("Microsoft.XMLHTTP");
			isAXObj=true;
			//addElse("error_div","GetXmlHttpObject:ActiveXObject");
		}
		return req;
		
/*
		var xmlHttpReq=null;
		// Firefox, Opera 8.0+, Safari
		try
	  	{ xmlHttpReq=new XMLHttpRequest(); }
		catch (e)
		{
  		// Internet Explorer
			try
			{ xmlHttpReq=new ActiveXObject("Msxml2.XMLHTTP"); }
			catch (e)
			{ xmlHttpReq=new ActiveXObject("Microsoft.XMLHTTP"); }
  		}
		return xmlHttpReq;
*/		
	}
	
	
	function generateDir() {
		gmode=true;
	  	netc.getXMLAsync("dirlist.php",cbGenDir);
		loadElse("main_div",makeDivC("pbar_bar","message_div","Generate Pictures"));
		//addElse("error_div","generateDir");
	}
	
	function generateFiles(dirname) {
		gendir=dirname;
		netc.getXMLAsync("filelist.php?dir="+escape(dirname),cbGenFile); 
		//addElse("error_div","generateFiles:gendir:"+gendir);
	}
	
	function generateNewDir() {
		if(genadir.length>0) {
			//addElse("error_div","generateNewDir");
			loadElse("message_div",genadir[0]);
			generateFiles(genadir.shift());
		} else {
			//addElse("error_div","generateNewDir:makeRSAT");
			makeRSAT(resizeprocs,4);
			//cbGenReSize(null);
  		}
	}
	
	function cbGenDir(xml) {
		//addElse("error_div","cbGenDir");
		genadir=makeArrayFromXML(xml);
		generateNewDir();
	}
	
	function cbGenFile(xml) {
		//addElse("error_div","cbGenFile");
	  	genafile=makeArrayFromXML(xml);
		makeResizeArray(genafile,gendir,resizeprocs,false);
		generateNewDir();
	}
	
	function cbGenReSize(xml) {
	  	var isall=1;
	  	var pi=0;
	  	for(pi=0;pi<resizeprocs.length;pi++)
		{
		 	if(resizeprocs[pi].done) continue;
		 	isall=0;
		 	genResizePic(resizeprocs[pi]);
			showElem("message_div",true);
		 	break;
		}
		setBgPer(parseInt((pi*100/resizeprocs.length) ,10));
		if(isall)
		{
			//bImageError=false;
  			resizeprocs = new Array();
  			setGaleryPos(0);
			setBgPer(0);
			loadElse("message_div","Kész!");
  		}
	}

	
	function loaddir() {
		//addElse("error_div","loaddir");
		//alma=unescape(getParam("alma"));		
		//alert("alma='"+alma+"'");
	  	netc.getXMLAsync("dirlist.php",cbGetDir);
	}
	
	function loadfiles(dirname) {
		
		try { 
			//addElse("error_div","loadfiles:dirname:"+dirname);
		  	picsdir=dirname;
			//addElse("msg_div","msg:dirname:"+dirname);
			netc.getXMLAsync("filelist.php?dir="+escape(dirname),cbGetFiles); 
		}
		catch (e)
			{ addElse("error_div","loadfiles:getXML error:dirname:"+dirname); }
	}
	
	function resizePicAll(opicpath,npicpath,pw,ph) {
 	  	rurl="picresize.php";
		
 	  	pd="fn="+escape(opicpath);
 	  	pd+="&sp="+escape(npicpath);
 	  	pd+="&nw="+pw;
 	  	pd+="&nh="+ph;
 	  	//addElse("error_div","all rurl:"+rurl);
 	  	netc.getXMLAsync(rurl,cbReSize,"POST",pd);
 	}
 		
 	function genResizePic(rsObj) {
		rsObj.done=1;
 	  	rurl="picresize.php";
 	  	pd="fn="+escape(rsObj.oldfn);
 	  	pd+="&sp="+escape(rsObj.newfn);
 	  	pd+="&nw="+rsObj.picw;
 	  	pd+="&nh="+rsObj.pich;
 	  	netc.getXMLAsync(rurl,cbGenReSize,"POST",pd);
 	}
	
 	function resizePic(rsObj,cbfv) {
		rsObj.done=1;
		if (typeof cbfv == "undefined") {
    		cbfv = cbReSize;
		}
 	  	rurl="picresize.php";
 	  	pd="fn="+escape(rsObj.oldfn);
 	  	pd+="&mp="+escape(rsObj.newmfn);
		pd+="&np="+escape(rsObj.newnfn);
 	  	pd+="&mnw="+rsObj.picmw;
 	  	pd+="&mnh="+rsObj.picmh;
		pd+="&nnw="+rsObj.picnw;
 	  	pd+="&nnh="+rsObj.picnh;
		//addElse("error_div","obj rurl:"+rurl+" pd:"+pd);
		netc.getXMLAsync(rurl,cbfv,"POST",pd);
 	}
 	
	//=================================================================
	
	function imageError() {
		//addElse("error_div","imageError");
		if(!bImageError)
		{
			bImageError=true;
			makeResizeArray(picfiles,picsdir);
		}
	}
	
	function makeResizeArray(afiles,sdir,inresarr,ncall) {
		if (typeof inresarr == "undefined") {
    		inresarr = new Array();
		}
		if (typeof ncall == "undefined") {
    		ncall = true;
		}
		//addElse("error_div","cbGenFile:afiles:"+afiles+" sdir:"+sdir);
		
		var sf="";
		var sd="./"+sdir+"/";
		var iip=0;
		for(var pi=0;pi<afiles.length;pi++)
		{
		  	//iip=pi+pi;
		  	sf=afiles[pi];
			
			inresarr.push(new ResProc(sd+sf,"../mini/"+sdir+"_"+sf,"../normal/"+sdir+"_"+sf,mini_width,mini_height,normal_width,normal_height));
			//inresarr.push(new ResProc(sd+sf,"../normal/"+sdir+"_"+sf,normal_width,normal_height));
			//inresarr.push(new ResProc(sd+sf,"../mini/"+sdir+"_"+sf,mini_width,mini_height));
			
			//[iip+1] = 
			//[iip] = new ResProc(sd+sf,"../normal/"+sdir+"_"+sf,normal_width,normal_height);
			//addElse("error_div",printArray(resizeprocs[iip]));
			//addElse("error_div",printArray(resizeprocs[iip+1]));
		}
		resizeprocs = inresarr;
		if(ncall) {
			makeRSAT(inresarr,4);
			//resizeT = new ResProcClass(inresarr,cb);
			//cbReSize(null);
		}
	}
	
	function cbRSTChange(rstobj) {
		db=0;
		iall=0;
		//addElse("error_div","cbRSTChange");
		for(var i in resizeAT) {
			db+=resizeAT[i].db;
			iall+=resizeAT[i].aproc.length;
		}
		setBgPer(Math.round((db*100/iall)),gmode);
	}
	
	function cbRSTComplete(rstobj) {
		iall=0;
		//addElse("error_div","cbRSTComplete");
		for(var i in resizeAT) {			
			if(!resizeAT[i].done)
			{
				return;
			}
		}
		//addElse("error_div","cbRSTComplete");
		
		
		if(gmode) window.location.href="../index.html";
		else if(enReload) 
			window.location.reload();
		
		showElem("message_div",false);
		//alert("kesz");
		setBgPer(100,gmode);
		if(gmode) {
			loadElse("message_div","Kesz!");
			loadElse("error_div","Kesz!");
		}
	}
	
	function makeRSAT(aproc,idiv) {
		if (idiv==0 || typeof idiv == "undefined") {
    		idiv = 1;
		}
		
		showElem("message_div",true);
		setBgPer(0);
		
		//addElse("error_div","makeRSAT:aproc:"+aproc.length+" idiv:"+idiv);
		
		if(aproc!=null && aproc.length>0 ) {
			resizeAT = new Array();
			db = Math.ceil(aproc.length / idiv);  //Math.round
			//addElse("error_div","makeRSAT:db:"+db);
			if(db>0) {
				//addElse("error_div","all:'"+printArray(aproc)+"'");
				while(aproc.length>0)
				{
					//addElse("error_div","makeRSAT:aproc:"+aproc.length);					
					suba=aproc.slice(0,db);
					//addElse("error_div","sub:'"+printArray(suba)+"'");
					newrst=new ResProcClass(suba,cbRSTChange,cbRSTComplete);
					resizeAT.push(newrst);
					aproc=aproc.slice(db);
				}
				for(var i in resizeAT)
					
					resizeAT[i].cbrs(null,resizeAT[i]);
			}
		}
	}
	
	
	function addElse(divid,estr) {
		telem=document.getElementById(divid);
		if(telem!=null)
			telem.innerHTML += estr+"<br/>";
	}
	
	function loadElse(divid,estr) {
		//addElse("error_div","loadElse:"+divid);  
		telem=$(divid);
		if(telem!=null)
			telem.innerHTML = estr;
	}
	function loadInit(divid,estr) {
		document.getElementById(divid).innerHTML = "<script type='text/javascript'>"+"function Init() {loadElse('main_div','Loaded Init end');}"+"</script>";
	}
	
	function loadxml(fstr) {
 		try //Internet Explorer
 		{ xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); }
		catch(e)
  		{
			try //Firefox, Mozilla, Opera, etc.
    			{ xmlDoc=document.implementation.createDocument("","",null); }
  			catch(e)
    			{ alert(e.message); return; }
  		}
		xmlDoc.async="false";
		xmlDoc.loadXML(fstr);
		return xmlDoc;
	}
	
	function enlarge(largeix) {
		//addElse("error_div","enlarge: w,h:"+document.normal_p.width+","+document.normal_p.height);
		if(elwind == null || elwind.closed)
			elwind=window.open();
		elwind.location = escape("./"+picsdir+"/"+picfiles[largeix]);
		//onload
		
	  	//largeix
	}
	
	function makeArrayFromXML(xml) {
	  	//loadElse("main_div",xml);
		//addElse("error_div","makeArrayFromXML:xml:"+xml);
		newarray = new Array();
		flnodes = xml.getElementsByTagName("filelist");
		if(flnodes.length>0)
		{
 			nodes = flnodes[0].childNodes;
			for(var dki=0;dki<nodes.length; dki++) // in nodes)
				// decodeURI() unescape
				newarray[dki]=unescape(nodes[dki].firstChild.nodeValue);
		} else
		{
			addElse("error_div","makeArrayFromXML: filelist hiba xml:"+xml);
		}
		//addElse("error_div","makeArrayFromXML:newarray:"+printArray(newarray));
		return newarray;
	}

	//==============================[ CallBacks ]===================================
	
	function cbGetDir(xml) {
		//addElse("error_div","cbGetDir:xml:"+xml);
	  	directory=makeArrayFromXML(xml);
		//tstr=makeGaleryButton(directory);
//		//addElse("msg_div","<pre>"+tstr+"</pre>");
//		loadElse("button_div",tstr);
		if(directory.length > 0)
		{
			rval=rand(directory.length-1);
			//addElse("error_div","cbGetDir:random:"+rval);
			dirButton(rval);
			//loadfiles(directory[rval]);
		}
		//loadElse("main_div",printArray(directory));
	}
	
	function rand(imax)
	{
		return Math.round(Math.random() * imax)
	}
		
	function cbGetFiles(xml) {
		//addElse("error_div","cbGetFiles:xml:"+xml);
		bImageError=false;
		setBgPer(0);
		showElem("message_div",false);
	  	picfiles=makeArrayFromXML(xml);
		//loadElse("dir_div",picsdir);
		if(picfiles.length > 0)
		{
			rval=rand(picfiles.length-1);
			//addElse("error_div","cbGetFiles:random:"+rval);
			setGaleryPos(rval);
		}
		//loadElse("galery_div",makeGalery(0,picfiles,picsdir));
		//;printArray(directory)
	}	
	
	function cbReSize(xml) {
	  	//loadElse("message_div"," / ");
		//addElse("msg_div","cbReSize:");
	  	//if(xml!=null) {
	  	//  	addElse("msg_div","xml.msg:"+xml.getElementsByTagName("msg")[0].firstChild.nodeValue);
		//}
		/*
		if(resizeprocs.length>0)
		{
			resizePic(resizeprocs.shift());
		} else {
			//bImageError=false;
  			//resizeprocs = new Array();
  			setGaleryPos(0);
			setBgPer(0);
			/////////////////////
			// window.location.reload();
			/////////////////////
  		}
		*/
		
		
	  	var isall=1;
	  	var pi=0;
	  	for(pi=0;pi<resizeprocs.length;pi++)
		{
		 	if(resizeprocs[pi].done) continue;
		 	isall=0;
		 	resizePic(resizeprocs[pi]);
			showElem("message_div",true);
		 	break;
		}
		setBgPer(parseInt((pi*100/resizeprocs.length) ,10));
		//loadElse("message_div",pi+" / "+resizeprocs.length);
		if(isall)
		{
			//bImageError=false;
  			resizeprocs = new Array();
  			setGaleryPos(0);
			setBgPer(0);
			showElem("message_div",false);
			// window.location.href="jstest.html";
			/////////////////////
			// window.location.reload();
			/////////////////////
  		}
		
		//loadElse("main_div",printArray(directory));
	}
	
	//================================[ Components ]=================================
	
	function setGaleryPos(gpos) {
 		//loadElse("galery_div",makeGalery(gpos,picfiles,picsdir));
		makeGalery(gpos,picfiles,picsdir);
 	}
	

	function makeButton(divid,todo,name) {
	  	return "<button type=\"button\" onclick=\"loadElse(\""+divid+"\",\""+todo+"\")>"+name+"</button>";
	}
	
	function makeGButton(todo,name) {
		//return "<input type=\"button\" value=\""+name+"\" onclick=\""+todo+"\"/>"
		//return "<a href=\"#\" onclick=\""+todo+"\">"+name+"</a>"
	  	return "<button type=\"button\" onclick=\""+todo+"\">"+name+"</button>";
	}
	
	function makeGIDButton(id,todo,name) {
		//return "<input type=\"button\" value=\""+name+"\" onclick=\""+todo+"\"/>"
		//return "<a href=\"#\" onclick=\""+todo+"\">"+name+"</a>"
	  	return "<button id=\""+id+"\" type=\"button\" onclick=\""+todo+"\">"+name+"</button>";
	}
	
	function makeGaleryButton(adir,sdir) {
	  	var outstr="V&aacute;lassza ki a megfelel&#x0151; gal&eacute;ri&aacute;t :<select name='Galeries' size='1' onchange=\"dirButton(this.options[this.selectedIndex].value)\">";  //dirButton
		for(var di=0;di<adir.length; di++)
			outstr+="<option value='"+di+"'"+ (di==sdir ? " selected": "")+">" +adir[di]+ "</option>";
			//makeGIDButton("gbtn_"+di,"dirButton('"+di+"')",adir[di]);
  			//outstr+=makeGButton("loadfiles('"+adir[di]+"')",adir[di]);
			//outstr+=makeGIDButton("gbtn_"+di,"dirButton('"+di+"')",adir[di]);
		//outstr=makeTableBig(outstr,makeDivC("pbar_bar","message_div","Galeria"),makeDiv("normal_pic",""),makeDiv("picmini_div",""));
  		return outstr+"</select>";
 	}
	
//	function makeGaleryButton(adir) {
//	  	var outstr="";  	
//		for(var di=0;di<adir.length; di++)
//  			//outstr+=makeGButton("loadfiles('"+adir[di]+"')",adir[di]);
//			outstr+=makeGIDButton("gbtn_"+di,"dirButton('"+di+"')",adir[di]);
//		//outstr=makeTableBig(outstr,makeDivC("pbar_bar","message_div","Galeria"),makeDiv("normal_pic",""),makeDiv("picmini_div",""));
//  		return outstr;
// 	}
	
	function dirButton(idir) {
//		if(lastidir>=0)
//			$("gbtn_"+lastidir).disabled=false;
//		$("gbtn_"+idir).disabled=true;
		tstr=makeGaleryButton(directory,idir);
		//addElse("msg_div","<pre>"+tstr+"</pre>");
		loadElse("button_div",tstr);
		lastidir=idir;
		loadfiles(directory[idir]);
	}
	
	
	function makeTableBig(sbtn,smsg,spbig,smini)
	{
		var strout="<table border=\"0\"><tr><td align=\"center\">"+sbtn+
			"</td></tr><tr><td align=\"center\">"+smsg+
			"</td></tr><tr><td valign=\"middle\" align=\"center\" class=\"normal_pic\">"+spbig+
			"</td></tr><tr><td>"+smini+
			"</td></tr></table>";		
		return strout;
	}
	
	function makeTableMini(amini)
	{
		var strout= "<table border=\"1\"><tr>";
		for(var mi=0;mi<amini.length;mi++)
			strout+="<td valign=\"middle\" align=\"center\" class=\"mini_pic\">"+amini[mi]+"</td>";
		strout+= "</tr></table>";
		return strout;
	}

 	function makeGalery(normalix,afiles,sdir) {
	  	var outstr="";
	  	//alert("nix:"+normalix+" max:"+afiles.length+" dec:"+calcDec(afiles.length,normalix)+" inc:"+calcInc(afiles.length,normalix));
	  	
	  	//loadElse("message_div",afiles[normalix]);
		//afiles[normalix]
		loadElse("normal_div",makeImgLinkNN("normal_p","../normal/"+sdir+"_"+afiles[normalix],sdir+"_N_"+normalix,"enlarge("+normalix+")",sdir+"_N_"+normalix));
//outstr+=makeDivC("normal_pic","picnormal_div",makeImgLink("../normal/"+sdir+"_"+afiles[normalix],afiles[normalix],"enlarge("+normalix+")"));
	  	//"normal_pic",
	  	var ixarray = new Array(5);
	  	ixarray[2]=normalix;
	  	ixarray[1]=calcDec(afiles.length,ixarray[2]);
	  	ixarray[3]=calcInc(afiles.length,ixarray[2]);
	  	ixarray[0]=calcDec(afiles.length,ixarray[1]);
	  	ixarray[4]=calcInc(afiles.length,ixarray[3]);
	  	
		//loadElse("picmini_div",makeMiniLinx(ixarray,afiles,sdir));
		makeMiniLinx(ixarray,afiles,sdir);
  		return outstr;
 	}
 	
 	function makeMiniLinx(afindex,afiles,sdir) {
 		//var fostr="";		
		var amini=new Array(5);
 		for(var fix=0;fix<afindex.length;fix++)
			loadElse("picmini_div"+fix,makeImgLinkNN("mini_p"+fix,"../mini/"+sdir+"_"+afiles[afindex[fix]],sdir+"_M_"+afindex[fix],"setGaleryPos("+afindex[fix]+")",sdir+"_M_"+afindex[fix]));
			// afiles[afindex[fix]]
			//loadElse("picmini_div"+fix,makeImgLinkN("mini_p"+fix,"../mini/"+sdir+"_"+afiles[afindex[fix]],"Octosys_"+fix,"setGaleryPos("+afindex[fix]+")"));
			//amini[fix]=makeImgLinkN("mini_p"+fix,"../mini/"+sdir+"_"+afiles[afindex[fix]],afiles[afindex[fix]],"setGaleryPos("+afindex[fix]+")");
 			//fostr+=makeDivC("mini_pic","picmini_"+fix, makeImgLink("../mini/"+sdir+"_"+afiles[afindex[fix]],afiles[afindex[fix]],"setGaleryPos("+afindex[fix]+")"));
 			//fostr+=makeImgLink("../mini/"+sdir+"_"+afiles[afindex[fix]],afiles[afindex[fix]],"setGaleryPos("+afindex[fix]+")");
		//return makeTableMini(amini);
  	}
 	
 	function makeImgLink(simg,alt,todo) {
 		return "<a href=\"javascript:"+todo+"\"><img src=\""+simg+"\" alt=\""+alt+"\"/></a>";
 	}
	
	function makeImgLinkN(sname,simg,alt,todo) {
 		return "<a href=\"javascript:"+todo+"\"><img name=\""+sname+"\" src=\""+simg+"\" alt=\""+alt+"\"  onError=\"imageError()\"/></a>";
 	}
	
	function makeImgLinkNN(sname,simg,alt,todo,refid) {
 		return "<a href=\"#"+refid+"\" onclick=\""+todo+";return false;\"><img name=\""+sname+"\" src=\""+escape(simg)+"\" alt=\""+alt+"\"  onError=\"imageError()\"/></a>";
 	}
 	
 	function makeDiv(divid,cont) {
 		return "<div id=\""+divid+"\">"+cont+"</div>";
 	}
 	
 	function makeDivC(dclass,divid,cont) {
 		return "<div class=\""+dclass+"\" id=\""+divid+"\">"+cont+"</div>";
 	}
	
	//=================================[ Progress Bar ]================================
	function setBgPer(percentage,etitle) {
		if (typeof etitle == "undefined") {
    		etitle = false;
		}
		bardiv=$("message_div");
		percentage = parseInt(percentage);
		//document.getElementById("message_div");
		//addElse("error_div","bardiv.style.backgroundPosition:"+bardiv.style.backgroundPosition+" bardiv.innerHTML:"+bardiv.innerHTML);
		pval = parseInt((percentage * 400 / 100)-400);
		
		try {
			bardiv.style.backgroundPosition = pval+"px";
		} catch(e)
		{ bardiv.style.backgroundPosition = pval; }
		//addElse("error_div","bardiv.style.backgroundPosition:"+bardiv.style.backgroundPosition+" bardiv.innerHTML:"+bardiv.innerHTML);
		bardiv.innerHTML=percentage+"%";
		if(etitle)
			document.title = percentage+"%";
	}
	
	function showElem(selem,bshow) {
		elem=$(selem);
		if(elem!=null)
		{
			elem.style.display= bshow ? "block" : "none";
		}
	}
	
 	
 	//=================================[ Utils ]================================
 	
 	function calcDec(len,cur)
 	{
		return cur==0 ? len-1 : cur-1;
  	}
  	
  	function calcInc(len,cur)
 	{
		return cur<len-1 ? cur+1 : 0;
  	}
	
	function printArray(ar) {
	  	var tstr="";
 		for(var ai in ar)
 			tstr+=" | "+ar[ai];
	  	return tstr;
 	} 	
