// || Pdfs_LISTER | bof
// :::::::::::::: 'Pdfs_LISTER' is (c) 2002-2003 by Battini Digital Solutions :::::::::::::::::::::
// :::::: All these Scripts are (c) by pdt 21xw22d0200102 and pt. assur. d021202 on fr44desMAY ::::::
// :::::::: The Script work with the 1st. vers. of Basic_Dhtml_Library of the same Author :::::::::::
// :::::::::::::::::::::::::::: Author: D. Battini. Last Upd:050103 :::::::::::::::::::::::::::::::::

var dbUpdDate = "20.12.02";			// last db upd. d.info
var certifiResultArray 	= [];

var nutrapdfslist 	= ["ACETIL_CARNITINA_5.pdf",
					   "ACIDO_ALFA_LIPOICO_5.pdf",
					   "ACINI_D'UVA_3.pdf",
					   "AGNOCASTO_3.pdf",
					   "ANDROGRAPHIS_5.pdf",
					   "ANGELICA_SINENSIS_3.pdf",
					   "ASHWAGANDA_5.pdf",
					   "ASTRAGALUS_3.pdf",
					   "BACOPA_2.pdf",
					   "BOSWELLIA_2.pdf",
					   "CATUABA_2.pdf",
					   "chitosano_polv_fine_2.pdf",
					   "ChitosanoOligosaccaridico_8.pdf",
					   "CIMICIFUGA_RACEMOSA_3.pdf",
					   "CLA_3.pdf",
					   		/* "Coenzima Q10 doc.pdf",		// Wrong name, no decoded spaces*/
					   "Coenzima_Q10_doc_7.pdf",
					   "COLEUS_4.pdf",
					   "COLOSTRO_9.pdf",
					   "creatina_impurezze_2.pdf",
					   "D-Ribosio2_6.pdf",
					   "DAMIANA_2.pdf",
					   "FOS_2.pdf",
					   "GLUCOMMANNANO_2.pdf",
					   "Glutammina_1.pdf",
					   "GOS_3.pdf",
					   "gse_5.pdf",
					   "GUGGUL_6.pdf",
					   "isoflavoni_soia_5.pdf",
					  		/* "KAWA_KAWA_3.pdf", */    	// out for biotech problems ctrls
					   "MACA_3.pdf",
					   "MELOGRANO_6.pdf",
					   "MSM_3.pdf",
					   "MUIRA_PUAMA_2.pdf",
					   "NADH_4.pdf",
					   "NARINGINA_5.pdf",
					   "NONI_11.pdf",
					   "PINO_CORTECCIA_3.pdf",
					   "resveratrolo_2.pdf",
					   "RHAPONTICUM_6.pdf",
					   "RHODIOLA_completa_14.pdf",
					   "RISO_ROSSO_LIEVITO_4.pdf",
					   "rododen_caucasico_10.pdf",
					   "SUMA_3.pdf",
					   "trifoglio_rosso_2.pdf"];

var ardapdfslist 	= ["arda1monobotaniche1_62.pdf",
					   "arda2monobotaniche2_41.pdf",
					   "arda3monobotaniche3_45.pdf"];

	// Enter the Batt wildSearcher utility routines
var theLyrMastId = "resServices";
var xdbValTargetObj = null;		
var maxrecResDispl = 100;
var foudRec = 0;
var origValQry = "";   

// atab += '<A HREF="http://www.acef.it/acefdocs/ardanat/" TARGET="_new">
// atab += '<A HREF="http://www.acef.it/acefdocs/nutracet/" TARGET="_new">
// displayList(aObjMasterToWritelnDOMsWAybetter:'downlLyrList', adatadbArray:'nutracet', aObjToCopyIn Coords:'downlLyr', aObjDivToWritelnNS4needed:'pdfsTabDiv');"

var foundRecs 	= "";
var celpadAdjuster = 3;	   
function makepdflinks(thisLyr, adir, ellyrtoClone) {
			// get the array data args by obj in nested var in function are the more CPU_friendly way
			// by string is ok works but some browsers (ns4) can display 'out Memory' alerts and freeze
			// only onloadind docs with more than 1000 recs
		var theArray 	= null;
		var uriDir		= "";
		var headTit		= "";
		var aHeadbgk	= "";
			foundRecs 	= "";
		var titQuery	= origValQry;
			// spec
	if (adir == "nutracet") {
			theArray 	= nutrapdfslist;
			uriDir	= "http://www.acef.it/acefdocs/"+adir+"/";
			headTit	= "LE MONOGRAFIE ACEF NUTRACEUTICALS";
			aHeadbgk	= 'darkred';
			foundRecs	= theArray.length;
			}
		else if (adir == "ardanat"){ 
			theArray 	= ardapdfslist;
			uriDir		= "http://www.acef.it/acefdocs/"+adir+"/";
			headTit		= "LE MONOGRAFIE ARDA NATURA";
			aHeadbgk	= 'darkgreen';
			foundRecs	= theArray.length;
			}
		else if (adir == "certifiResArray"){ 
			theArray 	= certifiResultArray;
			uriDir		= "certdocs/";
			headTit		= (document.layers)? "CERTIFICATI DI ANALISI" : '<font color="darkred">CERTIFICATI DI ANALISI</font>';
			aHeadbgk	= 'darkorange';
			foundRecs	= theArray.length;
			}
	if (foudRec != 0 || adir != "certifiResArray") {
			var pdftemp = theArray[0].toString().toLowerCase();
			var imgIs 	= (pdftemp.indexOf(".pdf") != -1)? 'pdfs.gif' : 'zips.gif';
			}
		var ns4widhtTable 	= getStyleObject(ellyrtoClone, 'sty', 'valWd', 0);	// ok
				// make index anchor code
		var cindex = "";
  			cindex += '<a href="javascript:void(0);" onclick="backList(\''+thisLyr+'\', \''+ellyrtoClone+'\');" class="closeLink">';
  		if (document.layers) cindex += '<font color="gold" face="geneva, arial, verdana, helvetica" size="1"><b>';
  			cindex += '<BR>Nuova Ricerca. | <I>New Search.</I>';
  		var cindexResults = "";
  	if (adir == "certifiResArray") {
  	if (foundRecs > 0) { 
  			cindexResults += '<BR><BR><font color="white"><I>The Query</I>:</font> \''+origValQry+'\' <font color="white"><I>. Have found</I>:</font> '+foundRecs+'<font color="white"> records.</font>';}
  		  else { 
  			cindexResults += '<BR><BR><font color="#FFFF66"><I>There are NO results for</I>: </font><font color="white">\''+origValQry+'\'</font><font color="orange">.</font>';}
  			}
  	if (document.layers) { 
  			cindex += '</b></font>';
  			cindex += '</a><font color="#FFFF66">'+cindexResults+'</font><br><br>';
  				} else {
  			cindex += cindexResults+'</a><br><br>';
  			}
			var sep1	= '<br>'; 
			var sep2	= "";
  				// make Exit anchor code
  			var tabEx = "";		// off in searchs certs
  				/*
  				tabEx += '<a href="javascript:void(0);" onclick="msgOnOffDisplay(\'downlLyrList\',\'hidden\');" CLASS="closeLink">';
			if (document.layers) tabEx += '<font color="gold" face="geneva, arial, verdana, helvetica" size="1"><b>';
				tabEx += 'Esci. | <I>Exit.</I><BR>';
			if (document.layers) atab += '</b></font>';	
				tabEx += '</a>';
				*/
				// make menu Index/Exit
		var menuIndexExit = sep1+cindex+sep2+tabEx;
				// a sty refs
		var tsty = "color:white; font-family: geneva, arial, verdana, helvetica; font-size:10px; font-weight:bold;";	
	 			// Start TABLE printout code reset. Batt Upd: 030103
		var atab = '';
				// start TABLE DATA routine
		if (document.layers){
			var ns4adjwidtTable = '<DIV id="pdfsTabDiv" style="position:absolute; left:0px; top:0px; width:'+ns4widhtTable+'px; border:1px outset #09256E;">';
				atab += ns4adjwidtTable;
				}
				// add better positions on ns4 batt upd: 311202/h23,35
				atab += '<TABLE id="pdfsTab" align="left" class="tabs_Searcher"'; 
				atab += ' width="100%" cellPadding="'+celpadAdjuster+'" cellSpacing="0" border="0">\n';
		if (!document.layers) atab += '<TBODY id="tbodyref">\n';  	// ns6/7 moz needful else fails printout tabs
				// atab += (document.layers)? '<TR>' : '<TR bgcolor="'+aHeadbgk+'">\n';
				// no: ns4 tabs bug don't cover all width in nested elms
		if (!document.layers) atab += '<TR><TD colspan="3" bgcolor="'+aHeadbgk+'" class="label_head" nowrap><BR>\n';
		if (document.layers){ 
				atab += '<TR><TD colspan="3" align="center" nowrap>\n';
				atab += '<TABLE width="100%" cellPadding="'+celpadAdjuster+'" border="0">';
					// atab += '<TR><TD bgcolor="'+aHeadbgk+'" align="center" nowrap><BR>';	// wrong bgk cover on ns4, avoid
				atab += '<TR><TD align="center" nowrap><BR><BR>';
					// fix for ns4 badd font class in tables bug 
				atab += '<font color="orange" face="geneva, arial, verdana, helvetica" size="3"><b>';
				}
				// head Title
			atab += headTit;																	// insert the head db Title
				// useful links bit_menu
			atab += menuIndexExit;																// insert menuhelp in the head
		if (document.layers) atab += '</b></font></td></tr></table></td></tr>';					// ns4 head in nested table
		if (!document.layers) atab += '</td></tr>';
				// print all Records, links, imgs + file name and InkedPdfs unified in uppercase
  if (foudRec != 0 || adir != "certifiResArray") {
	  for (var c=0; c < theArray.length; c++) {
  			var uriDirFile = (adir == "certifiResArray")? uriDir+theArray[c][2] : uriDir+theArray[c];	// make href links phat loop
  				// print records counter indexing
			var imgPadVar = 0;
			var imgPadVarAd = (!document.layer && adir != "certifiResArray")? 14 : 7;
			var imgadjust = ((!document.layer)? ((document.all)?imgPadVar : (imgPadVar/3)) : 0);
  	  if (c==0) {
			imgadjust += 20;
			imgPadVar += 10;	
			atab += '<TR><TD style="'+tsty+'" align="right" nowrap>';
 				// counter elm.: 1st numb, block elm float left
		if (!document.layers) atab += '<p style="display:block; width:5%; margin-top:'+(imgPadVar+4)+'px; margin-left:0px; padding-top:0px;">';
 		if (document.layers){ 
 			atab += '<font color="white" face="geneva, arial, verdana, helvetica" size="2"><b>';
 			atab += '<nobr>&nbsp; &nbsp; &nbsp; &nbsp;::&nbsp;'+(c+1)+') </nobr>';				// the starting indexing counter
 			}
 		if (!document.layers) atab += ''+(c+1)+')';
 		if (document.layers) atab += '</b></font>';
 			} else {
			imgadjust += 10;	
 		atab += '<TR><TD style="'+tsty+'" align="right" nowrap>';
 			// counter elm.: others numb, block elm float left
	if (!document.layers) atab += '<p style="display:block; width:5%; margin-top:'+(imgPadVar+4)+'px; margin-left:0px; padding-top:0px;">';
 		if (document.layers) {
 			atab += '<font color="white" face="geneva, arial, verdana, helvetica" size="2"><b>';
 			atab += '<nobr>&nbsp; &nbsp; &nbsp; &nbsp;::&nbsp;'+(c+1)+') </nobr>';		// the sequel counters
 			}
 	if (!document.layers) atab += ''+(c+1)+')';
 		if (document.layers) atab += '</b></font>';
 			}
 	if (!document.layers) atab += '</p>';
 			// print the Image Record linked or not
 			// image elm.: inline elm float left
		var domtdWDadjs = (!document.layers)? ((document.all)? '12%' : '13%'): '12%';
			atab += '</td><td width= "'+domtdWDadjs+'" align="center">';
  				// atab += '<img src="spacer.gif" width="5%" height="32" border="1"><a href="'+uriDirFile+'" target="_new">';	// start url href opts into images icon too
			atab += '<a href="'+uriDirFile+'" target="_new">';		
			atab += '<img src="'+imgIs+'"';								// insert icon imgs
  		if (!document.layers){
  			atab += ' width="32" height="32"';		// ns4 mac dont display images correctly with coords
			atab += ' border="0" style="width:32px; padding-left:0px; margin-left:0px; margin-top:'+parseInt(imgadjust-4)+'px;"></a>';
			} 	// ns4 mac non vuole vedere style = in nessun elemento nested non div: come h1 p span e co se no js err e bomb
  		else { 
  			atab += ' border="0" align="bottom"></a>';
  			}
  	 		// print the document name, link and target : span block elm auto			
			//////// THE ONLY WAY IN TABLE ARE TABLE MOZ AND IE HAVE a BASIC DIFFERET APPROACH WITH PADD MARGS AND DISPLAY STYLE WAY IN TABLES
			//////// THE TD WAY IS THE BETTER BUT IE NEED TO SET TD PRECISE WIDTH %s AND GO
	atab += '</td><td width="78%" align="left">'; 
		// nb 0103: well ie 6 and ns7 win use differ margins apply approach ie see margin and pads ns see paddings grr
		// for fix all is needful to ad a display options like block
	if (!document.layers) atab += '<span style="display:block; width:78%; margin-left:0px; padding-left:0px; margin-top:'+(imgPadVar+imgPadVarAd)+'px;">';
	if (document.layers) atab += '<span style="width:78%; margin-left:0px;">';
  			atab += '<a href="'+uriDirFile+'" target="_new">';
  		if (document.layers) atab += '<font color="white" face="geneva, arial, verdana, helvetica" size="2"><b>';	 
  		if (adir == "certifiResArray") { 
  			var namePrd 	= theArray[c][1].toUpperCase();
  			var codPrdFile	= theArray[c][2].toUpperCase();
  				atab += namePrd+'<br><font color="#FFFF66">'+codPrdFile+'</font>';
  			}else{
  				atab += theArray[c].toUpperCase();		// spostato <br>&nbsp; dopo href tag
  				}										// uppercase the ref_name, for multi 'case'data db
 		if (document.layers) { 
 				atab += '</b></font>';
 				atab += '</a></span><br></td></tr><tr><td colspan="3"><hr width="90%" align="center"></td></tr>\n';
 			} else {
  		 		// hr elm.: hrline block elm center
  	if (adir == "certifiResArray") {	// dom 2 lines name	
 		atab += '</a></span></td></tr><tr><td colspan="3"><hr width="90%" align="center" style="display:block; width:90%;"></td></tr>\n';
  		 		}else{							// dom 1 line add br
 		atab += '</a></span><br></td></tr><tr><td colspan="3"><hr width="90%" align="center" style="display:block; padding-bottom:0px; margin-top:0px; width:90%;"></td></tr>\n';
  		 			}
  		 		  }
  		 	  	}	
  			  }
  	else if (foudRec == 0 && adir == "certifiResArray") {								// No results			
  				// no results
 			atab += '<TR><TD align="center" style="'+tsty+'" nowrap>';
  		if (document.layers) atab += '<font color="#FFFF66" face="geneva, arial, verdana, helvetica"><b>';		
  			atab += "<br>::::<br>";
 		if (document.layers) atab += '</b></font><BR>';
  		  	atab += '<BR><hr width="90%" align="center"></TD></TR>\n';					// inset HR separators
  		 	}
  		atab += '<TR><TD colspan="3" align="center" nowrap>';							// out close tab;
			// enter anchor to back index
		atab += cindex;
  		atab += '</TD></TR>';
 			/*
 			atab += '<TR><TD colspan="1" align="center" nowrap>';
			// enter anchor to Exit lyr
			atab += tabEx;
			atab += '<br><br></TD></TR>';
			*/
	if (!document.layers) atab += '</TBODY>';  // ns6/7 moz needful else fails printout tabs
		atab += '</TABLE>';
			// end print out code close tab and obj
	if (document.layers) atab += '</DIV>';
			/*
			ders = window.open();
			ders.document.write(atab);
			ders.document.close();
			*/	
 		return atab;
		};

var widthready = 0;
var cellpadMargBoxTab = (!document.layers)?0:0;
var ctt = 0;
var checkedOneTimeok = ["X"];
var eobjtoClone;

function displayList(alyr, adbdataDir, alyrtoClone, nestDivWithTable) {
		if (/*!document.all ||*/ !document.layers) nestDivWithTable = "pdfsTab"; // table id way n7 e 6 mac tbody needs not enought??
			var indxed = 0;
			var addingmargin = 0;	
				ewin_w=getwindowWidth();
				ewin_h=getwindowHeight();
				eobjref = getStyleObject(alyr, 0, 0, 0);
					// get core data
		var thecode = makepdflinks(alyr, adbdataDir, alyrtoClone);
			Writelayer(alyr, thecode);
					// div and table are ready, get coords
				eobjNestTabDivHg = getStyleObject(nestDivWithTable, 'sty', 'valHg', alyr);
					// doms only
					// var tBodyNestTabDivHg = getStyleObject('tbodyref', 'sty', 'valHg', alyr);
			var tBodyNestTabDivHg = null;
		if (!document.layers) {									// Doms: table coords based
				tBodyNestTabDivHg = getStyleObject('tbodyref', 'sty', 'valHg', alyr);
					//eobjref.style.height = parseInt(eobjNestTabDivHg)+"px";
		if (document.getElementById && document.all) {
				pannelWd = eval(getStyleObject(alyrtoClone, 'sty', 'valWd', 0)+addingmargin);
				eobjref.style.width = pannelWd+"px";
				}
		if (document.getElementById && !document.all) {			// n6x
				pannelWd = eval(getStyleObject(alyrtoClone, 'sty', 'valWd', 0)+(cellpadMargBoxTab*2));
				eobjref.style.width = pannelWd+"px";			// n6 needed
				}
				pannelHg = parseInt(eobjNestTabDivHg);
				}
		else if (document.layers) {
				pannelHg = parseInt(eobjNestTabDivHg);
				eobjref.clip.height = pannelHg;
				pannelWd = eval(getStyleObject(alyrtoClone, 'sty', 'valWd', 0)+addingmargin);
				document.height = pannelHg;				// fix the doc height bug in nesc4 dyn lyr oby flush
				}
				aaX = eval((ewin_w/2)-(pannelWd/2));
				aaY = pannelHg < ewin_h ? getStyleObject(alyrtoClone, 'sty', 'valY', 0) : getStyleObject(alyrtoClone, 'sty', 'valY', 0);
				// eTempXeObjP.clip.top = "10";	// ns4 grr debug clip only in home full v
				// home only need a fix on clip top bug
				// aaY += 10;	// ok ns4 grr debug on topY and clips syncr, only Here in home Acef full v
				var pxx = document.layers? "" : "px";
				nestTabObj = getStyleObject(nestDivWithTable, 'sty', 0, alyr);
		if (!document.layers) {
			if (document.getElementById && !document.all) {
				  	eobjref.style.padding = "6px 7px 6px 6px";
						// ?? seens to be a 2px less on every recs and a fix val in head and in foot 
						// like: (2*loop) +head+foot
						// mac only ??? win moz have not bug
						//var aMozHgBugdiff = (2*foundRecs)-20;	//leave abbonds. 2px*loop+7+7 prec: (2*foundRecs)+14;
						// alert("diff="+diff+"::foundRecs="+foundRecs);
						//eobjref.style.height = parseInt(eobjNestTabDivHg)-aMozHgBugdiff+"px";	// OK ns7 tbody bug hgt check in table only
				} else {
				  	eobjref.style.padding = "6px 6px 6px 6px";
				  		// eobjref.style.height = parseInt(tBodyNestTabDivHg)+200+"px";
				  		}
				eobjref.style.border = "1px dashed white";
				}
				eobjNestTabDivWd = getStyleObject(nestDivWithTable, 'sty', 'valWd', alyr);
		if (document.layers){ 	// forcing table bug resizing to 100%Wd in nested div with nested div with nested tabs
					// resizeObjects(nestDivWithTable, parseInt(pannelWd), null, alyr);
					// nestTabObj.clip.width = "150";
					// nestTabObj.left = eval(aaX-(pannelWd/2)+4);
					// nestTabObj.width = 499;
					}
					// don't use closed Clips in obj to write in else Doms can fails 
					// to clips the right way and will be hand refined a lot of code coords
		if (document.layers) SetDynamicClipObj(alyr, 0, pannelWd, pannelHg, 0, 0);
			setObjBgImage(alyr, 'imgmenu/bl2trnsp.gif', 0);
					// setObjBgColor(alyr, 'red');
			moveObject(alyr, aaX+adjstLeft, aaY-adjstTop, 0);
			changeObjectVisibility(alyrtoClone,'hidden');
				getNestCentPos = parseInt(pannelWd - eobjNestTabDivWd);
				moveObject(nestDivWithTable, ((getNestCentPos/2)), null, alyr);
				changeObjectVisibility(alyr, "visible");
				};

function Go_topWin() { self.scroll(0,0); };	// restore top X/Y doc. top coords

function backList(alyr, onlyr) {
			// alert(alyr+"::"+onlyr);
		changeObjectVisibility(alyr, 'hidden');
		changeObjectVisibility(onlyr,'visible');
		Go_topWin();
		};

function cecckdb(adb, adbname){
		// alert(adb);
	var lenc = 	adb.length;
	var nestlen = adb[0].length;
		getdbUpdDate = (adbname == "nutra" || adbname == "arda")? "30.08.02" : dbUpdDate; 
		alert("The db length is: "+lenc+" records.\nThe last stored db update is: "+getdbUpdDate+".\nThe nested length in slots is: "+nestlen+".");
		// return lenc;
		};
				
// ending inc
// || Pdfs_LISTER | eof
