
var speed=5;
var timerId = 0;
var timerId1 = 0;
var step = 15
var listIx = "0";
var prev = 'apListPrev'+listIx;
var next = 'apListNext'+listIx;
var list = 'apList'+listIx;

<!--====================================================================================================================================--> 
function showDescr(lst, pNr) {
	if (lst == -1) {
		if (noDescription != '') {
			document.getElementById("apText").innerHTML = noDescription;
			//document.getElementById('apLinedivider1').style.top = 373+'px';
		}
	} else {
		if (Lists[lst].projects[pNr].descr != '') {
			document.getElementById("apText").innerHTML = Lists[lst].projects[pNr].descr;
			//document.getElementById('apLinedivider1').style.top = 350+'px';
		}
	}
}
<!----------------------------------->
function start() {
	
	if (noDescription != '') {
		document.getElementById("apText").innerHTML = noDescription;
	}
	
	for (var l=0; l<Lists.length; l++) {
		/*document.getElementById("debug").innerHTML +='List='+l+'<br>';*/
		
		Lists[l].scrollIx = 0;
	  	Lists[l].xPos = 0; 
	 	Lists[l].thumbCount = 0;

	  	prev = 'apListPrev'+l;
	  	next = 'apListNext'+l;
	  	list = 'apList'+l;
		document.getElementById(list).style.visibility= 'hidden';
		document.getElementById(prev).style.visibility= 'hidden';
		document.getElementById(next).style.visibility= 'hidden';
		var str = "";
			
		for (var i=0; i<Lists[l].projects.length; i++) {			
			var ix = i + 1;
			/*document.getElementById("debug").innerHTML += Lists[l].projects[i].img;*/		
			if (Lists[l].projects[i].goto == '') {
				str += '<div id="apListItem'+l+ix+'" class = "apListItem_style" ><img src='+Lists[l].projects[i].img+' alt="" id="img'+l+ix+'" border="0" onLoad="loadThumbImages('+l+')" onerror="errorLoadThumbImages('+l+')" onmouseover="showDescr('+l+','+i+')" onmouseout="showDescr('+-1+','+i+')" /></div>';
			} else {
	  			str += '<div id="apListItem'+l+ix+'" class = "apListItem_style" ><a href="'+Lists[l].projects[i].goto+'"><img src='+Lists[l].projects[i].img+' alt="" id="img'+l+ix+'" border="0" onLoad="loadThumbImages('+l+')" onerror="errorLoadThumbImages('+l+')" onmouseover="showDescr('+l+','+i+')" onmouseout="showDescr('+-1+','+i+')" /></a></div>';
			}
		}		
		document.getElementById(prev).innerHTML = '<img src="../img/misc/arrow_left.jpg" alt="" width="27" height="22" onmouseup="scrollP1('+l+')"/>';		
		document.getElementById(next).innerHTML = '<img src="../img/misc/arrow_right.jpg" alt="" width="25" height="22" onmouseup="scrollP('+l+')"/>';		
		document.getElementById(list).innerHTML = str;		
	}
}
<!----------------------------------->
function loadThumbImages(lst) {	
	Lists[lst].thumbCount++;
	if (Lists[lst].thumbCount==Lists[lst].projects.length) {
		setupScrolList(lst);
	}
	/*document.getElementById("debug").innerHTML += Lists[lst].thumbCount+'--'+Lists[lst].projects.length+'--'+thumbImages.length+'<br>';*/
}
<!----------------------------------->
function errorLoadThumbImages(lst) {
	Lists[lst].thumbCount++;
	/*document.getElementById("debug").innerHTML += 'err='+Lists[lst].thumbCount+'--'+Lists[lst].projects.length+'--'+thumbImages.length+'<br>';*/
}
<!----------------------------------->
function getImgSize(imgSrc)
{
  var newImg = new Image();
  newImg.src = imgSrc;  
  return newImg.width;
}
<!----------------------------------->
function setupScrolList(lst){
	/*document.getElementById("debug").innerHTML +='setupScrolList, '+lst+'<br>';*/
	clearTimeout ( timerId );
	var pos = 0;
	var nextPos = 0;
	var s = 0;
	
	for (var i=0; i<Lists[lst].projects.length; i++) {
		var ix = i + 1;			
		document.getElementById('apListItem'+lst+ix).style.left = pos+'px';	
		
		/*document.getElementById("debug").innerHTML +='id= '+'img'+lst+ix+',   size='+getImgSize(document.getElementById('img'+lst+ix).src)+',    pos= '+pos+'<br>';*/
		
		nextPos += getImgSize(document.getElementById('img'+lst+ix).src)+10;
		
		if (nextPos-s > 750) {
			s = pos;
			Lists[lst].stopPos.push(-1*pos);
		}
		pos = nextPos;
	}
	document.getElementById("apListNext"+lst).style.visibility= 'visible';
	if (Lists[lst].stopPos.length<2) {
		document.getElementById("apListNext"+lst).style.visibility= 'hidden';
	}
	if (Lists[lst].stopPos[Lists[lst].stopPos.length-1]) {
		//document.getElementById('apListNext'+lst).style.visibility= 'hidden';
	}
	document.getElementById("apList"+lst).style.visibility= 'visible';
}
<!----------------------------------->
function scrollP(lst) {
	/*document.getElementById("debug").innerHTML +='scrollP, '+lst+'<br>';*/
	listIx = lst;
	Lists[lst].scrollIx++;
	stopScrollPics();
	stopScrollPics1();
	prev = 'apListPrev'+lst;
	next = 'apListNext'+lst;
	list = 'apList'+lst;			
	document.getElementById(next).style.visibility= 'hidden';
	m = Lists[lst].xPos;
	scrollPics();
}
<!----------------------------------->
function scrollP1(lst) {
	/*document.getElementById("debug").innerHTML +='scrollP1, '+lst+'<br>';*/
	listIx = lst;
	Lists[lst].scrollIx--;
	stopScrollPics();
	stopScrollPics1();
	prev = 'apListPrev'+lst;
	next = 'apListNext'+lst;
	list = 'apList'+lst;
	document.getElementById(prev).style.visibility= 'hidden';
	m = Lists[lst].xPos;
	scrollPics1();
}
<!----------------------------------->
function scrollPics() { 
	
	m = m - step;	
   	document.getElementById(prev).style.visibility= 'visible';
	if(m<=Lists[listIx].stopPos[Lists[listIx].scrollIx]) {
		m = Lists[listIx].stopPos[Lists[listIx].scrollIx];
		if (Lists[listIx].scrollIx==Lists[listIx].stopPos.length-1) {
			document.getElementById(next).style.visibility= 'hidden';
		} else {
			document.getElementById(next).style.visibility= 'visible';
		}
		stopScrollPics();   		
 	} else {	
		timerId = setTimeout("scrollPics()", speed);
	}
	document.getElementById(list).style.left = m+'px';
	Lists[listIx].xPos = m;
 } 
<!----------------------------------->
function scrollPics1() { 
	
	m = m + step;	
   	document.getElementById(next).style.visibility= 'visible';
	if(m>=Lists[listIx].stopPos[Lists[listIx].scrollIx]) {
		m = Lists[listIx].stopPos[Lists[listIx].scrollIx];
		document.getElementById(list).style.left = m+'px';
		if (Lists[listIx].scrollIx==0) {
			document.getElementById(prev).style.visibility= 'hidden';
		} else {
			document.getElementById(prev).style.visibility= 'visible';
		}
		stopScrollPics1();	
 	} else {
		document.getElementById(list).style.left = m+'px';
		timerId1 = setTimeout("scrollPics1()", speed);
	}
	Lists[listIx].xPos = m;
} 
<!----------------------------------->
function stopScrollPics() { 
	clearTimeout ( timerId );
 } 
 <!----------------------------------->
function stopScrollPics1() { 
	clearTimeout ( timerId1 );
 } 
 

