var dk_already_posted = false;
var dk_other_db_selected = '';

String.prototype.trim = function() {return this.replace(/(^\s*)|(\s*$)/g, "");}

function addEventEval(obj, evType, fn){ 
 if (obj.addEventListener){ 
   obj.addEventListener(evType, eval(fn), false); 
 } else if (obj.attachEvent){ 
   obj.attachEvent("on"+evType, eval(fn)); 
 } 
}


function dk_opac15_default_menu() {
	var oMenu = document.getElementById("edit-dk-opac15-dbtype"); // Get the menu item for the value
	
	oMenu.onchange=dk_opac15_default_menu; // Set an onchange function

	// Get the fieldset parent node
	var oDirect = document.getElementById("edit-dk-opac15-direct-dbhost");
	do {oDirect = oDirect.parentNode} while (oDirect.nodeName!='FIELDSET')
	
	// Get the fieldset parent node
	var oOPAC = document.getElementById("edit-dk-opac15-opac-dbhost");
	do {oOPAC = oOPAC.parentNode} while (oOPAC.nodeName!='FIELDSET')
		
	// Get the fieldset parent node
    try {		
    	var oSafran = document.getElementById("edit-dk-opac15-safran-dbhost");
    	do {oSafran = oSafran.parentNode} while (oSafran.nodeName!='FIELDSET')
   		oSafran.className = "hide";			
    } catch (e) {
    }	
			
	oDirect.className = "hide";			
	oOPAC.className   = "hide";			
	// Set fieldset class accordingly
    switch (oMenu.value) {
    case 'Direct':
    	oDirect.className = "show";
    	break;
    case 'OPAC':
    	oOPAC.className = "show";
    	break;
    case 'Safran':
    	oSafran.className = "show";
    	break;
    }

}

/** ***********************************************************
  * * Check for multiple button presses
	* ***********************************************************
 **/
function dk_invalid_post() {
	if (dk_already_posted) {
		alert('Demande en cours... Patientez s\'il vous plait')
		setTimeout('dk_already_posted=false', "4000")
		return true;
	}
}
/** ***********************************************************
  * * Toggle and swap functions
	* ***********************************************************
 **/
function dk_divtoggle(pIdParent, pId) {
	var pid =document.getElementById(pIdParent)
	var id =document.getElementById(pId)
	
	bShow = (id.className.indexOf("hide")==-1)
	if (bShow) {
		id.className = id.className.replace('show','hide')
		pid.className = pid.className.replace('minus','plus')
	} else {
		id.className = id.className.replace('hide','show')
		pid.className = pid.className.replace('plus','minus')
	}
}
function dk_swap(pId1, pId2) {
	var o1 = document.getElementById(pId1)
	var o2 = document.getElementById(pId2)
	
	if (o1.className.indexOf("show")==-1) {
		o1.className = o1.className.replace("hide","show")
		o2.className = o2.className.replace("show","hide")
	} else {
		o1.className = o1.className.replace("show","hide")
		o2.className = o2.className.replace("hide","show")
	}
	
}


/** ***********************************************************
  * * Start of AJAX calls
	* ***********************************************************
 **/
/** ***********************************************************
  * * AJAX Calls
	* ***********************************************************
 **/
/* Global call for Notice DETAIL (Wiki/Reserve/Amazon) */
function dk_ajax_detail_lookups() {
	// We use DK_http_ajax when the URL is defined in DK_OPAC15 module
	var elems = document.getElementsByTagName("input")

	for (i=0;i<elems.length;i++) {
		if (elems[i].id) {


			if (elems[i].id.substr(0,10)=='AJAXLOOKUP') {
				switch (elems[i].id.substr(10)) {
				case 'WIKI':
					dk_xmlHttpCallAsync(DK_opac,'ajax_wiki.php?author='+elems[i].value,dk_ajax_detail_updates, dk_ajax_error, "WIKI")
					break;
				case 'ASIN':
					dk_xmlHttpCallAsync(DK_opac,'ajax_amazon_images.php?ASINS='+elems[i].value+'&editorial=T',dk_ajax_detail_updates, dk_ajax_error, "ASIN")
					break;
				case 'RES':
					uri = 'ajax_res_display.php?nn='+elems[i].value;
					dk_xmlHttpCallAsync(DK_http_ajax,uri,dk_ajax_detail_updates, dk_ajax_error, "RES")
					break;
				
				}
			}
		}
	}	
}
/* CALL update Reservation */
function dk_ajax_reserve(pNN) {
	var frm = document.getElementById("frmdk_opac15_reservation")

	var frmSite = frm.Site
	if (frmSite.value) {
		zSite = frmSite.value
	} else {
		for (var i=0;i<frmSite.length;i++) {
			if (frmSite[i].checked) zSite = frmSite[i].value
		}
	}

	var uri = 'ajax_res_update.php?nn='+frm.nn.value+'&site='+zSite;

	try {document.getElementById('AJAXRESLOAD').className = "loading"} catch (e) {};	// We'll have this for the accordion only
	document.getElementById('AJAXRESDETAIL').innerHTML = "&#160;";
	document.getElementById('AJAXRESDETAIL').className = document.getElementById('AJAXRESDETAIL').className.replace('loaded','loading');
// Ther is NO NN !!!
	dk_xmlHttpCallAsync(DK_http_ajax,uri,dk_ajax_detail_updates, dk_ajax_error, "RESUPD")
	
}
/* CALL get Wiki */
function dk_ajax_wiki(pAuthor) {
	dk_xmlHttpCallAsync(DK_opac,'ajax_wiki.php'+'?author='+pAuthor,dk_ajax_wiki_update, dk_ajax_error)
}
/* CALL get Amazon */
function dk_ajax_amazon_images() {
	var zBase = DK_opac+'ajax_amazon_images.php'+'?moresearch=T'
	var root = document.getElementById("opacpage")

	var elems = root.getElementsByTagName("img")

  var uri = '';
	for (i=0;i<elems.length;i++) {
		if (elems[i].id.substr(0,4)=='ASIN') {
			uri += ','+elems[i].id.substr(4);		
		}
	}	
	if (uri!='') {
		uri = '&ASINS='+uri.substr(1);
		dk_xmlHttpCallAsync(zBase,uri,dk_ajax_amazon_images_update, dk_ajax_error)
	}
}
/* CALL get count from other database searches */
function dk_ajax_other_db(pDatabase) {
// KV without block
	//document.getElementById("moresearcharea").className="moresearch show"

	var table = document.getElementById('moresearch')
	var zBase = DK_opac+'ajax_db_count.php'+'?moresearch=T'
	
	for (var i=0;i<dk_url.length;i++) {
		var p = dk_url[i].indexOf("&database=")
		if (p!=-1) {
			var q = dk_url[i].indexOf("&",p+10)
			var zDatabase = (q==-1) ? dk_url[i].substr(p+10) : dk_url[i].substr(p+10, q-(p+10)) 
		}
		
		zSuffix = ''
		zFields = dk_url[i].split("&")
		zSites = false
		for (var j=0;j<zFields.length;j++) {
			zNameValue = zFields[j].split('=');
			switch (zNameValue[0]) {
			case 'database':
				zDatabase = zNameValue[1]
				break;
			case 'dbno':
				zSuffix = '#'+zNameValue[1]
			case 'Keys3':
				zSites= true
			default:
				break;
			}
		}
		if ((zDatabase!=pDatabase) || (zSuffix!='')) {
			var tr = document.createElement("tr");
			var td1 = document.createElement("td");
			var td2 = document.createElement("td");
			td1.id='dk_database_a'+zDatabase+zSuffix
			td1.className="database"
			td2.className="count loading"
			td2.id='dk_database'+zDatabase+zSuffix
			var img = document.createElement('img');

			img.src = DK_style+'/images/blank.gif'
			img.className = "count"
			td2.appendChild(img);

			var text = document.createTextNode(dk_db_desc[zDatabase]);
			td1.appendChild(text);
			if (zSuffix!='') {
				var textdiv = document.createElement('DIV');
				var text2 = document.createTextNode('L\'ensemble des sites');
				textdiv.appendChild(text2);
				textdiv.className='enlarged';
				td1.appendChild(textdiv);
			}
			/*
			if ((zSites) && dk_db_def[zDatabase]=='T') {
				var textdiv = document.createElement('DIV');
				var text2 = document.createTextNode('Site spec');
				textdiv.appendChild(text2);
				textdiv.className='enlarged';
				td1.appendChild(textdiv);
			}
			*/
			tr.appendChild(td1);
			tr.appendChild(td2);
			table.appendChild(tr);

			// Post it
			DK.ajax({url: zBase, async: true, post: true, xmldom: dk_url[i].substr(1), id: 'myread2', readyfunction: dk_ajax_other_db_update, errorfunction: dk_ajax_other_db_error})	

			// GET it
	 		//dk_xmlHttpCallAsync(zBase,dk_url[i],dk_ajax_other_db_update, dk_ajax_other_db_error)
		}
	}
	if (document.all) document.getElementById('moresearch').outerHTML = document.getElementById('moresearch').outerHTML; //document.getElementById('dk_more_databases').innerHTML

}

/** ***********************************************************
  * * AJAX Updates
	* ***********************************************************
 **/
/* UPDATE Global for Notice DETAIL */
function dk_ajax_detail_updates(pText, pURL, pId, pOtherInfo) {
	switch (pId) {
	case 'ASIN':
		document.getElementById('AJAX'+pId+'LOAD').className = "loaded"
		document.getElementById('AJAX'+pId+'DETAIL').innerHTML = ''	// res
			var oDIV = document.getElementById('AJAX'+pId+'DETAIL')
		
		if (pText.substr(0,1)=="¤") {
			var rows = pText.split('¤')
			var smallImage
			var mediumImage
			var largeImage
			var rest = '';
			for (var i=1; i<rows.length;i++) {
				fields = rows[i].split('~')
				var ASIN = fields[0]
				smallImage = fields[1]
				mediumImage = fields[2]
				largeImage = fields[3]
				rest = fields[4]
			}
			
			zHTML = ''
			
			/*
			if (largeImage) {
				var zOnclick;
				var zTitle
				zHTML += '<img title="'+zTitle+'" id="dk_amazonmedium" class="show" align="left" src="'+largeImage+'" '+zOnclick+'/>';
			}
			*/
			if (rest) zHTML += rest;
			zHTML += '<div class="clear"></div>';
			
			//if (!rest && !mediumImage) zHTML = 'Aucun détail n\'a été trouvé.'
			
			if (!rest) zHTML = 'Aucun détail n\'a été trouvé.'
			
			oDIV.innerHTML = zHTML
		} else {
			oDIV.innerHTML = 'Aucun détail n\'a été trouvé..<div class="amazonerror">'+pText+'</div>';
		}
		break;
	case 'RESUPD':
		try {document.getElementById('AJAXRESLOAD').className = "loaded"} catch (e) {};	
		zText = pText.split("~");
		
		if ((zText[0]=='T') && (document.getElementById("dk_resno"))) {
			var zNo = Math.floor(document.getElementById("dk_resno").innerHTML)
			document.getElementById("dk_resno").innerHTML = zNo + 1
		}
				
		document.getElementById('AJAXRESDETAIL').className = document.getElementById('AJAXRESDETAIL').className.replace('loading','loaded');
		document.getElementById('AJAXRESDETAIL').innerHTML = zText[1];
		break;	
	case 'RES':
		document.getElementById('AJAX'+pId+'LOAD').className = "loaded";	
		zText = pText.split("~")
		document.getElementById('AJAX'+pId+'DETAIL').innerHTML = zText[1];
		break;	
	case 'WIKI':
		// Wiki
		document.getElementById('AJAX'+pId+'LOAD').className = "loaded";	// res
		document.getElementById('AJAX'+pId+'DETAIL').innerHTML = (pText=='<br /><br />') ? 'Aucun détail n\'a été trouvé.' : pText;	// res
		break;
	}
}
/* UPDATE Wiki detail */
function dk_ajax_wiki_update(pText, pURL) {
	document.getElementById("wikidetail").innerHTML = pText
}
/* UPDATE Amazon detail for LIST */
function dk_ajax_amazon_images_update(pText, pURL) {
	if (pText.substr(0,1)!="¤") return;
	var rows = pText.split('¤')
	for (var i=1; i<rows.length;i++) {
		fields = rows[i].split('~')
		var ASIN = fields[0]
		var smallImage = fields[1]
		var mediumImage = fields[2]
		var largeImage = fields[3]
		if (smallImage!='') {
			var obj = document.getElementById('ASIN'+ASIN)
			obj.src = smallImage;
			obj.className = "docimage";

			/*
			if (mediumImage!='') {
				var div = document.createElement("div");
				div.id = 'ASIN'+ASIN+'M'
				div.className="hide amazonmedium"
				div.onclick = function() {this.className="hide amazonmedium"}
				div.onmouseout = function() {this.className="hide amazonmedium"}
				var img = document.createElement("img");
				img.src = mediumImage
				div.appendChild(img)
				//obj.parentNode.appendChild(div);
				obj.parentNode.appendChild(div);

				obj.onclick = function () {document.getElementById(this.id+'M').className="show amazonmedium"}

				obj.alt="Medium image available"
				
				if (largeImage!='') {
					var divl = document.createElement("div");
					divl.id = 'ASIN'+ASIN+'ML'
					divl.className="hide amazonlarge"
					div.onclick = function() {document.getElementById(this.id+'L').className="show amazonlarge"}
					divl.onclick = function() {this.className="hide amazonlarge"}
					divl.onmouseout = function() {this.className="hide amazonlarge"}
					var imgl = document.createElement("img");
					imgl.src = largeImage
					divl.appendChild(imgl)
					obj.parentNode.appendChild(divl);
					
					obj.alt="Large image available"
				}
				
			}
			*/
		}
			
	}

}
/* UPDATE database count for LIST */
function dk_ajax_other_db_update(pText, pURL, pId) {
	var BASEURL = '?moresearch=T'
	var BLOCKID = "dk_more_databases"

	// KV without block
	//document.getElementById("moresearcharea").className="moresearch show"

	//dk_debug(pText+'<br/>'+pURL);

	if (pText.substr(0,1)=="~") {
		var zVars = pText.split("~");
		var zCount = zVars[1];
		var zSuffix = (zVars[3]=='') ? '' : '#'+zVars[3];
		var zDescription = zVars[4];



		var newURL = BASEURL+pURL

		dk_other_db_selected += "¤"+zCount+"~"+zVars[2]+"~"+zVars[3]; // This then gets posted with the next request and saved with the SESSION variables

		var td1 = document.getElementById('dk_database_a'+zVars[2]+zSuffix)
		var td2 = document.getElementById('dk_database'+zVars[2]+zSuffix)
		td2.innerHTML = zCount

		switch (zCount) {
		case 'error':
			td2.className = 'count dbcounterror'
			td2.title=pText;
			break;
		//case '0':
		//	var counttext = document.createTextNode(zDescription+' ('+zCount+')');			
		//	td2.className = 'count dbcountzero'
		//	break;
		default:
			td2.className = 'count dbcount'
			var anchor = document.createElement("a");
			anchor.href = "javascript:dk_otherdb_post(\'"+zVars[2]+"\',\'database\',\'"+zVars[3]+"\')";
			var anchortext = document.createTextNode(zDescription);
			var counttext = document.createTextNode(' ('+zCount+')');
			anchor.appendChild(anchortext);
			td1.innerHTML = '';
			td1.appendChild(anchor)

			if (zSuffix!='') {
				var textdiv = document.createElement('DIV');
				var textvalue = 'L\'ensemble des sites';
				var text2 = document.createTextNode(textvalue);
				textdiv.appendChild(text2);
				textdiv.className='enlarged';
				textdiv.title=textvalue;
				td1.appendChild(textdiv);
			}
			break;
		}
	} else {

		zFields = pURL.split("&")
		zSuffix = ''
		for (var j=0;j<zFields.length;j++) {
			zNameValue = zFields[j].split('=');
			switch (zNameValue[0]) {
			case 'database':
				zDatabase = zNameValue[1]
				break;
			case 'dbno':
				zSuffix = '#'+zNameValue[1]
			default:
				break;
			}
		}

		var td1 = document.getElementById('dk_database_a'+zDatabase+zSuffix)
		var td2 = document.getElementById('dk_database'+zDatabase+zSuffix)
		td2.className = 'count dbcounterror'
		td2.title=pText;
		//td1.innerHTML += '<br/><span class="error">'+pText+'</span>'
	}

}
/** ***********************************************************
  * * AJAX Errors & Debug
	* ***********************************************************
 **/
/* Specific for Database search */
function dk_ajax_other_db_error(pText,pURL) {
	var p = pURL.indexOf("&database=")
	if (p!=-1) {
		var q = pURL.indexOf("&",p+10)
		var zDatabase = (q==-1) ? pURL.substr(p+10) : pURL.substr(p+10, q-(p+10)) 
	}

	var td1 = document.getElementById('dk_database_a'+zDatabase)
	var td2 = document.getElementById('dk_database'+zDatabase)
	
	td2.className = 'dbcounterror'
			td2.title=pText;
alert("c"+td2.title);
	
	td1.innerHTML += '<br/><span class="error">'+pText+'</span>'
}
/* General AJAX error */
function dk_ajax_error(pText,pURL) {
	window.status = pText
}
/* Area for writing DEBUG instructions */
function dk_debug(pText) {
	if (document.getElementById("debugarea")) {
		document.getElementById("debugarea").innerHTML += '<hr/>'+pText;
	}
}

/** ***********************************************************
  * * AJAX Call procedure
	* ***********************************************************
 **/
/* In one case (db_count) we've used :
		DK.ajax({url: zBase, async: true, post: true, xmldom: dk_url[i].substr(1), id: 'myread2', readyfunction: dk_ajax_other_db_update, errorfunction: dk_ajax_other_db_error})	
		We could use this always...
*/

function dk_xmlHttpCallAsync(pBaseURL, pURL, pReceiveFunction, pErrorFunction, pId) {
  var xmlhttpAsync;
  try {
		try {xmlhttpAsync = new ActiveXObject("Msxml2.XMLHTTP") } catch (e) {
			try {xmlhttpAsync = new ActiveXObject("Microsoft.XMLHTTP") } catch (e) {
				try {xmlhttpAsync = new XMLHttpRequest() } catch (e) {}
			}
		}
		xmlhttpAsync.onreadystatechange = function() {
			if (xmlhttpAsync.readyState == 4) {
				xmlhttpAsync.onreadystatechange = function() {}
				pReceiveFunction(xmlhttpAsync.responseText, pURL, pId)
			}
		}
		xmlhttpAsync.open("GET",pBaseURL+pURL,true)	// Asynchronous request
		xmlhttpAsync.send(null)
	} catch (e) {
		pErrorFunction(e,pURL, pId)
	}
}

/** ***********************************************************
  * * Dynamic Form POSTs
	* ***********************************************************
 **/
/* We do this as we need to update the SESSION variable that contains the result of other searches */
function dk_nav_post(pResultset,pStartIndex,pForceOtherSearch) {
// URL need to be passed through here 
	// e.g. /test/dk_opac15/list
	if (dk_invalid_post()) return;
	var dk_nav_form = new DK.form({url:DK_list, name:'dk_nav_form', encodeUtf8: false, submit: false})
	dk_nav_form.addinput('other_dbs',dk_other_db_selected);
	dk_nav_form.addinput('resultset_id',pResultset);
	dk_nav_form.addinput('startIndex',pStartIndex);
	if (pForceOtherSearch) dk_nav_form.addinput('forceOtherSearch','T');
	dk_already_posted = true;
	dk_nav_form.submit();
}
function dk_otherdb_post(pRequest, pType, pSuffix) {
	if (dk_invalid_post()) return;
	// The URL will be in the form
	// 1) ?moresearch=T&recordset_id=4
	// 2) DATABASENAME
	var dk_otherdb_form = new DK.form({url:DK_list, name:'dk_otherdb_form', encodeUtf8: false, submit: false})

  var zAmp = (pRequest.substr(0,5)=='&amp;') ? '&amp;' : '&';

	switch (pType) {
	case 'database':
		for (var i=0;i<dk_url.length;i++) {
			if (dk_url[i].indexOf("&database="+pRequest)!=-1) {
				if (pSuffix=='') zURL = dk_url[i]
				else if (dk_url[i].indexOf("&dbno="+pSuffix)!=-1) zURL = dk_url[i]
			}
		}
		break;
	default:
		zURL = pRequest
		break;
	}
	var z = String(zURL).substr(1).split(zAmp);
	for (var i=0;i<z.length;i++) {
		var p = z[i].split("=");
		var name = p.shift();
		//dk_otherdb_form.addinput(p[0], p[1]);	
		dk_otherdb_form.addinput(name,p.join('='));	
	}
	dk_otherdb_form.addinput('other_dbs',dk_other_db_selected);
	dk_already_posted = true;
	dk_otherdb_form.submit();
}

function dk_redo_search(pDatabase, pUse, pKey, pData) {
	var zURL = DK_list + '?database=' +pDatabase+'&Use1='+pUse+'&Keys1='+pKey+'&Data1='+pData+'&rebound=T';
	dk_global_post(zURL);
}
function dk_redo_sortsearch(pSort) {
	var zURL = DK_list + '?' + dk_url_origsearch + '&SortKey=' + pSort
	dk_global_post(zURL);
}
function dk_global_post(pURL) {
	if (dk_invalid_post()) return;
	var dk_global_form = new DK.form({url:pURL, name:'dk_global_form', encodeUtf8: false, submit: false})
	dk_global_form.addinput('other_dbs',dk_other_db_selected);
	dk_already_posted = true;
	dk_global_form.submit();
}
function dk_global_post_params(pURL, pParams) {
	if (dk_invalid_post()) return;
	var dk_global_form = new DK.form({url:pURL, name:'dk_global_form', encodeUtf8: false, submit: false})
	
	var aParams = pParams.split('=');
	var aParams = aParams[1];
	
	if (aParams=='') dk_global_form.submit();

	var zParams = pParams.split('&');
	for (var i=0; i<zParams.length; i++) {
		if (zParams[i]!='') {
			var zPair = zParams[i].split('=')
			dk_global_form.addinput(zPair[0],zPair[1]);
		}
	}
	dk_global_form.addinput('other_dbs',dk_other_db_selected);
	dk_already_posted = true;
	dk_global_form.submit();
}

/** ***********************************************************
  * * Auto Image
	* ***********************************************************
 **/
function dk_genImage(pSrc, pId, pMaxWidth, pMaxHeight, pAltSrc) {
	// Warning! This is also found in dk_rssgadget/plugins/global/YUI/scripts/dkglobal.js
	var img = new Image();
	img.onload = function() {
				var o = document.getElementById(pId);
				 o.onload = null;
				 if (pMaxWidth) {
					 if (Math.floor(img.width) > Math.floor(pMaxWidth)) o.style.width = pMaxWidth+"px";
				 }
				 if (pMaxHeight) {
					 if (img.height > pMaxHeight) o.style.height = pMaxHeight+"px";
				 }
				 if ((img.width <= 1) && (pAltSrc) ) {
					 dk_genImage(pAltSrc, pId, pMaxWidth, pMaxHeight);
				 } else {
				 	 o.src = pSrc;
				 }
			}
	img.src=pSrc
}
function dk_genImageBG(pSrc, pId, pWidth, pHeight) {
	var img = new Image()
	img.onload = function() {
		var o = document.getElementById(pId)
		o.style.backgroundImage = "url("+pSrc+")"
		o.height = img.height
		o.width = img.width
	}
	img.src=pSrc
}
function dk_genImageWithBig (pSrc, pSrcBig, pId, pIdLabel, pMaxWidth, pMaxHeight) {
	var img = new Image();
	img.onload = function() {var o = document.getElementById(pId);
				 o.onload = null;
				 if (pMaxWidth) {
					 if (img.width > pMaxWidth) o.style.width = pMaxWidth+'px'
				 }
				 if (pMaxHeight) {
					 if (img.height > pMaxHeight) o.style.height = pMaxHeight+'px'
				 }
				 o.src = pSrc;
				}
	img.src=pSrc
	
	var imgBig = new Image();
	imgBig.onload = function() {
						var o = document.getElementById(pIdLabel);
						if (imgBig.width > 1) {
							var zFunction = "dk_amazoncreatedview('amazonbigimage', '"+pSrcBig+"', 'Image agrandie', "+(imgBig.width+4)+","+(imgBig.height+0)+"); return false";
							//o.innerHTML = '<a href="#" id="amazonbigimage" onClick="'+zFunction+'" xonMouseOver="'+zFunction+'" xonMouseOut="dk_hideView(\'amazonbigimage\');">Agrandir l\'image</a>';
							var p = document.getElementById(pId)
							p.onclick=function () {
									dk_amazoncreatedview(pId, pSrcBig, 'Image agrandie', (imgBig.width+4),(imgBig.height+0));
									};
							p.alt='Agrandir l\'image';
							p.title='Agrandir l\'image';
						}
					}
	imgBig.src=pSrcBig
}

/** ***********************************************************
  * * Other functions
	* ***********************************************************
 **/
/* Hint start */
  function toggleHint(pType, pId, pHintObj) {
		var o = document.getElementById("hintarea");
		if (pType=='show') {
			var c = dk_getPosition(pId, true);
			var zWidth = o.style.width
			if (zWidth.indexOf('px')!=-1) zWidth = zWidth.substr(0,zWidth.length-2)
			zEndPosition = Math.floor(zWidth) + c.left

			o.innerHTML = '<div class="hintcontainer"><div class="hint">'+pHintObj.innerHTML+'<div class="hint-pointer">&#160;</div></div></div>';
			if (zEndPosition > c.availWidth) {
				zTop = c.top + 16
				zLeft = c.availWidth - zWidth - 12; // The 12 is the width of the scroll bar (in IE
				o.innerHTML = '<div class="hintcontainer"><div class="hint">'+pHintObj.innerHTML+'</div></div>';
			} else {
				zTop = c.top - 8
				zLeft = c.left + 22
				o.innerHTML = '<div class="hintcontainer"><div class="hint">'+pHintObj.innerHTML+'<div class="hint-pointer">&#160;</div></div></div>';
			}

			o.style.display = 'inline';
			o.style.top = zTop+'px';
			o.style.left = zLeft+'px';
		} else {
			o.style.display = 'none';
		}
	}
/* DHTML Windows START */

	function dk_amazoncreatedview (pId, pSrc, pTitle, pWidth, pHeight, pTimer) {
		dk_win_inline[pId+'hide']=false
		zHTML = '<img src="'+pSrc+'" border="0"/>';
		
    var c = dk_getPosition(pId)
		//c.top = c.top - 120;
		c.left = c.left - 300;
		if (c.top < 0) c.top = 0;
		
		if (pTimer) {
    	setTimeout("dk_displayView('"+pId+"','"+pText+"','"+pTitle+"','"+pWidth+"','"+pHeight+"','"+c.left+"','"+c.top+"')",pTimer)
		} else {
    	dk_displayView(pId, zHTML, pTitle, pWidth, pHeight, c.left, c.top); // This is for onClick
		}
	}

	/* Used for Reservations in DK_hotlist */
	function dk_url_content_window(pId, pTitle, pURL, pHeight, pWidth, pOffsetLeft, pOffsetTop) {
		zHeight=(pHeight) ? pHeight : 200
		zWidth =(pWidth)  ? pWidth  : 300
		zOffsetLeft=(pOffsetLeft) ? pOffsetLeft : 0
		zOffsetTop=(pOffsetTop) ? pOffsetTop : 0
		
    var c = dk_getPosition(pId)
		c.top = c.top + zOffsetTop;
		c.left = c.left + zOffsetLeft;
		if (c.top < 0) c.top = 0;
    
		DK.ajax({url: pURL, async: false, post: false})	

		/* This could prevent us from using this routine for other stuff */
		zText = DK.text.split('~')
		if (zText.length==1) zText = DK.text
		else zText = zText[1]
		zText = '<div id="AJAXRESDETAIL">'+zText+'</div>';
		/* End of specific */
		dk_displayView(pId, zText, pTitle, zWidth, zHeight, c.left, c.top);

	}

  
/* DHTML Windows END */

function dk_indexation_vedette(pType, pSubjectNo, pCurrentNo) {
	zClass = (pType=='over') ? 'vedetteover' : 'vedetteout';
	
	zId = "dk_indexation_s"+pSubjectNo+"_n";
	
	for (var i=0;i<pCurrentNo+1;i++) {
		var zObj
		/*
		zObj = document.getElementById(zId + i)
		if (zObj) {
				zObj.className = zClass
				alert(zObj.id)
		}
		*/
		if (zObj = document.getElementById(zId + i)) zObj.className = zClass
	}
	
}

function dk_opac15_rescancel(pCode, pMessage) {
	var confirmmessage = pMessage + ' : "'+document.getElementById('ResToCancel'+pCode).value+'" ?';
	if (confirm(confirmmessage)) {
		document.getElementById('resloading'+pCode).className = 'prolongloading';
		document.getElementById('ResToCancelLink2'+pCode).style.display = 'none';
		var zBase = DK_opac15+'/ajax_res_cancel.php';
		dk_xmlHttpCallAsync(zBase,'?code='+pCode,dk_ajax_res_delete, dk_ajax_rescancel_error, pCode)
	}
}
function dk_ajax_res_delete(pText,pURL, pCode){
	document.getElementById('resloading'+pCode).className = 'prolongloaded';
	switch (pText) {
	case 'T':
		resno = 0;
		try {
			var resno = Math.floor(document.getElementById("dk_resnob").innerHTML)-1;
		} catch (e) {}
		try {document.getElementById('dk_resno').innerHTML = resno;} catch (e) {}
		document.getElementById('dk_resnob').innerHTML = resno;
		document.getElementById('resall'+pCode).innerHTML = '';
		break;
	default:
		alert("Suppression impossible")
		break;
	}
}
function dk_ajax_rescancel_error(pText, pURL, pCode){
	document.getElementById('resloading'+pCode).className = 'prolongloaded';
	alert('Error '+pText);
}

function dk_opac15_prolong(pInventoryNo) {
		document.getElementById('hrefprolong'+pInventoryNo).style.display = 'none';
		document.getElementById('loading'+pInventoryNo).className = 'prolongloading';
		var zBase = DK_opac15+'/ajax_loan_prolong.php';
		//DK.ajax({url: zBase, async: true, post: true, xmldom: 'niv='+pInventoryNo, id: 'dk_opac15_prolong', readyfunction: dk_ajax_prolong_update, errorfunction: dk_ajax_prolong_error})	
		dk_xmlHttpCallAsync(zBase,'?niv='+pInventoryNo,dk_ajax_prolong_update, dk_ajax_prolong_error, pInventoryNo)
}

function dk_ajax_prolong_update(pText,pURL, pInventoryNo){
	// Not easy to reconstruct all the labels following a prelongation.
	// To be sure, refresh the page
	var location = document.location.href;
	document.location.href = location;
	return;
	
	document.getElementById('loading'+pInventoryNo).className = 'prolongloaded';
	
	if (pText=='') return;
	var arr = pText.split('!');

	if (arr[4]=='T') {
		try {
			document.getElementById('hrefprolong'+arr[1]).innerHTML = "";
			document.getElementById('DateReturn'+arr[1]).innerHTML = arr[2];
			document.getElementById('LendStatus'+arr[1]).innerHTML = arr[3];
		} catch (e) {
			alert(e.description);			
		}
	} else {
		alert(arr[6])
	}

}

function dk_ajax_prolong_error(pText, pURL, pInventoryNo){
	document.getElementById('loading'+pInventoryNo).className = 'prolongloaded';
	alert('Error '+pText);
}

DKACCOUNT = {version:"1.0"}	

DKACCOUNT.popupPrint = function(pTitleId, pHeadId, pStyleId, pBodyId, pWidth, pHeight, pCenter) {

	if (!pWidth) pWidth = 1000;
	if (!pHeight) pHeight = 600;

	var c=new Object();						
	if (document.all) {
		c.availHeight= document.body.clientHeight
		c.availWidth= document.body.clientWidth
	} else {
		c.availHeight = window.innerHeight
		c.availWidth = window.innerWidth
	}
	c.left = (c.availWidth - pWidth) / 2;
	c.top = (c.availHeight - pHeight) / 2;

	DKACCOUNT.win  = window.open("","dk_printarea","resizable, height="+pHeight+", width="+pWidth+", left="+c.left+", xtop="+c.top);
	
	var zTitle = document.getElementById(pTitleId).innerHTML
	var zHead  = document.getElementById(pHeadId).innerHTML
	zHead = '<style type="text/css" media="all">@import "'+zHead+'";</style>';
	var zInlineStyle = document.getElementById(pStyleId).innerHTML
	var zBody  = document.getElementById(pBodyId).innerHTML
	
	
    DKACCOUNT.win.document.write('<html><head><title>'+zTitle+'</title>'+zHead+'<style>'+zInlineStyle+'</style></head><body><div class="printbody account">'+zBody+'</div></body></html>');
    DKACCOUNT.win.document.close()
	DKACCOUNT.win.focus();
	//DKACCOUNT.win.print();	

}

DKACCOUNT.navigate = function(pUrl,pId) {
	var start = DKACCOUNT.get_start(pUrl);
	pSaveId = pId+"_"+start
	var oSave = document.getElementById(pSaveId);
	var oMain = document.getElementById(pId)
	if (oSave) {
		oMain.innerHTML = oSave.innerHTML
		return
	}
	
	oMain.innerHTML = '<div class="loading">&#160;</div>';
	DK.ajax({url: DK_http_ajax+pUrl, async: true, post: false, id: pId, readyfunction: DKACCOUNT.navigate_load, errorfunction: DKACCOUNT.navigate_error})	
}
DKACCOUNT.get_start = function(pUrl) {
	var start = 1;
	var i = pUrl.indexOf("start=")
	if (i!=-1) {
		start = pUrl.substr(i+6);
		i = start.indexOf("&")
		if (i!=-1) start = start.substr(0,i);
	}
	return start;
}

DKACCOUNT.navigate_load = function(pText, pXmldom, pId, pObj) {
	var div = document.createElement("div");
	div.setAttribute("id", pId+"_"+DKACCOUNT.get_start(pObj.url));
	div.style.display = "none";
	div.innerHTML = pText;
	var oMain = document.getElementById(pId);
 	var parentDiv = oMain.parentNode;
 	parentDiv.insertBefore(div, oMain);
	oMain.innerHTML = pText
}
DKACCOUNT.navigate_error = function(e,url,id) {
}


DKACCOUNTMAIL = {version:"1.0"}	

String.prototype.trim = function() {return this.replace(/(^\s*)|(\s*$)/g, "");}

DKACCOUNTMAIL.text = new Array();
DKACCOUNTMAIL.text['OK'] = 'OK';


DKACCOUNTMAIL.toggle = function(id,pType) {
	var oImg    = DKACCOUNTMAIL.getclass(id,'mailtoggle');
	var oHeader = DKACCOUNTMAIL.getclass(id,'mailheader');
	var oBody   = DKACCOUNTMAIL.getclass(id,'mailbody');
	
	if (oImg.className.indexOf("plus")!=-1) {
		oImg.className = oImg.className.replace("plus","minus");
		oHeader.className = oHeader.className.replace("lined","nolined");
		oBody.style.display = '';
	} else {
		oImg.className = oImg.className.replace("minus","plus");
		oHeader.className = oHeader.className.replace("nolined","lined");
		oBody.style.display = 'none';
	}	
		
	if ((pType=='R') && (oHeader.className.indexOf("mailUnread")!=-1)) {
		var a = new Object();
		a.url = DK_http_ajax+'ajax_msgabo_update.php?Action=Read&IDs='+id;
		a.async = true
		a.readyfunction = function(text,xmldom,id) {
			oHeader.className = oHeader.className.replace("mailUnread","mailRead");		
		}
		a.errorfunction = function(e,url,id) {}
		
		DK.ajax(a);
	}
}
DKACCOUNTMAIL.getanyclass = function(id,oClass,oType) {
	if (!oType) oType="*";
	var wrapper = document.getElementById(id);
	var tags = wrapper.getElementsByTagName(oType);
	for (var i=0;i<tags.length;i++) {
		var tag = tags[i];
		var checkClass = ' '+tag.className+' ';
		if (checkClass.indexOf(' '+oClass+' ')!=-1) return tag;
	}
}
DKACCOUNTMAIL.getclass = function(id,oClass) {
	var id = 'account_mail_'+id;
	var tbody = document.getElementById(id);
	var trs = tbody.getElementsByTagName("tr");
	for (var i=0;i<trs.length;i++) {
		var tr = trs[i];
		if (' '+tr.className+' '.indexOf(' row ')!=-1) {	
			var checkClass = ' '+tr.className+' ';
			if (checkClass.indexOf(' '+oClass+' ')!=-1) {
				//alert("DBG:"+tr.className+' '+oClass);
				return tr;
			}
			var tags=tr.getElementsByTagName("*");
			for (var j=0;j<tags.length;j++) {
				var tag = tags[j];
				checkClass = ' '+tag.className+' ';
				if (checkClass.indexOf(' '+oClass+' ')!=-1) {
					return tag;
				}
			}
		}
	}		
}
DKACCOUNTMAIL.panelid = 'dkglobal';
DKACCOUNTMAIL.ns = "pp.container";


DKACCOUNTMAIL.load_panel = function () {
	YAHOO.namespace(DKACCOUNTMAIL.ns);
	YAHOO.pp.container[DKACCOUNTMAIL.panelid] = new YAHOO.widget.Panel(DKACCOUNTMAIL.panelid, { 
		visible:false, 
		fixedcenter:true,  
		close:true,  
		draggable:true,  
		  //iframe:true,
		zindex:9999, 
		modal:true, 
		//effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:0.2},	
		constraintoviewport:true 
		} 
	);
}
DKACCOUNTMAIL.show_panel = function (id) {
	YAHOO.namespace(DKACCOUNTMAIL.ns);
    var o = document.getElementById(id)
	var divs = o.getElementsByTagName("div");
	var elems = new Array()
	elems['header'] = 'no header';
	elems['body'] = 'no body';
	elems['footer'] = 'no footer';
	for (var i=0; i<divs.length;i++) {
		var cl = ' '+divs[i].className+' ';
		if (cl.indexOf(' header ')!=-1) elems['header'] = divs[i].innerHTML;
		else if (cl.indexOf(' footer ')!=-1) elems['footer'] = divs[i].innerHTML;
		else if (cl.indexOf(' body ')!=-1) elems['body'] = divs[i].innerHTML;
	}

	yid = DKACCOUNTMAIL.panelid;
	if (!YAHOO.pp.container[yid]) DKACCOUNTMAIL.load_panel();
	
	YAHOO.pp.container[yid].setHeader(elems['header']);
	YAHOO.pp.container[yid].setBody(elems['body']);
	YAHOO.pp.container[yid].setFooter(elems['footer']);
	
	YAHOO.pp.container[yid].render("panel_container_viewer");	
	
	var o;
	if (o = DKACCOUNTMAIL.getanyclass("dkglobal","textarea","textarea")) {
		if (o.innerHTML.substr(0,6)=="&nbsp;") o.innerHTML=o.innerHTML.substr(6);
	}	
	YAHOO.pp.container[yid].show();	
	// visibility here is changed to hidden for some strange reason! Just after the first time though
	
}

DKACCOUNTMAIL.hide_panel = function (id) {
	YAHOO.namespace(DKACCOUNTMAIL.ns);
	yid = DKACCOUNTMAIL.panelid;
	YAHOO.pp.container[yid].hide();	
}

DKACCOUNTMAIL.submitform = function(frm) {
	var error_obj = DKACCOUNTMAIL.getanyclass("dkglobal","warning","div")

	var frmtype = frm.name.substr(7);
	var msg = document.getElementById("MAILFORMERRMSG");
	var msgs = msg.getElementsByTagName("div");
	var errMsg = new Array();
	for (var i=0;i<msgs.length;i++) {
		errMsg[msgs[i].className] = msgs[i].innerHTML;
	}	
	var erro = new Array();
	var erroi = 0;
	switch (frmtype) {
	case 'NM':		
		if (frm.Text.value.trim()=='') {
			erro[erroi++] = frm.Text;
			error_message = errMsg['ErrorText'];
		} else {
			frm.Text.className = frm.Text.className.replace(' mailerror','');
		}
		if (frm.Object.value.trim()=='') {
			erro[erroi++] = frm.Object;
			error_message = errMsg['ErrorObject'];
		} else {
			frm.Object.className = frm.Object.className.replace(' mailerror','');
		}
		break;
	case 'NS':
		if (frm.SuggTitle.value.trim()=='') {
			error_message = errMsg['ErrorTitle'];
			erro[erroi++] = frm.SuggTitle;
		} else {
			frm.SuggTitle.className = frm.SuggTitle.className.replace(' mailerror','');
		}	
		if (frm.Object.value.trim()=='') {
			error_message = errMsg['ErrorObject'];
			erro[erroi++] = frm.Object;
		} else {
			frm.Object.className = frm.Object.className.replace(' mailerror','');
		}
		break;
	default:
		if (frm.Text.value.trim()=='') {
			error_message = errMsg['ErrorText'];
			erro[erroi++] = frm.Text;
		} else {
			frm.Text.className = frm.Text.className.replace(' mailerror','');
		}	
		break;
	}
	if (erro.length) {
		for (var j=0; j<erro.length;j++) {
			if (erro[j].className.indexOf("mailerror")==-1) erro[j].className += ' mailerror';
			erro[j].focus();
			erro[j].select();
		}
		
		if (error_obj) {
			error_obj.innerHTML = error_message;
		} else {
			alert(error_message);
		}	
		return false;
	} else {
		return true;
	}
}

DKACCOUNTMAIL.switchAll = function(oThis) {
	var stype = oThis.name.substr(7)
	var checked = oThis.checked;
	
	var o = document.getElementById("accountmail");
	var ips = o.getElementsByTagName("input");
	for (var i=0; i<ips.length;i++) {
		var inp = ips[i];
		if (inp.name=='Mail'+stype) {
			inp.checked = checked;
		}
	}	

}
DKACCOUNTMAIL.mailDelete = function() {
	
	var o = document.getElementById("accountmail");
	var ips = o.getElementsByTagName("input");
	var all_ids = '';
	for (var i=0; i<ips.length;i++) {
		var inp = ips[i];
		var ptype = inp.name.substr(4)
		if ((inp.name.substr(0,4)=='Mail') && (ptype=='Sent' || ptype=='Received') && (inp.checked)) {
			all_ids += ' '+inp.value;
		}
	}	
	all_ids = all_ids.substr(1);
	
	document.frmMailDelete.IDs.value = all_ids;
	
	if (all_ids!='') document.frmMailDelete.submit();
	
}

DKACCOUNTMAIL.init = function () { 
	var id = "daterange_panel_container";
}

function get_youtube(search){
	dk_xmlHttpCallAsync(DK_opac,'ajax_youtube.php?search='+search,get_youtube_success, get_youtube_error, "YOUTUBE");
}

function get_youtube_success(text){
    

	dk_displayView("myid", text, "Vidéo Youtube : ", 500, 400, 400, 30);
}

function get_youtube_error(erreur){
	dk_displayView("myid", erreur, "", 200, 300, 400, 30);
}

function get_photo(url){
	dk_xmlHttpCallAsync(DK_opac,'ajax_photo_amazon.php?url='+url,get_photo_success, get_photo_error, "AMAZON");
}

function get_photo_success(text){
    

	dk_displayView("myid", text, "Photo d'amazon : ", 252, 500, 400, 30);
}

function get_photo_error(erreur){
	dk_displayView("myid", erreur, "", 200, 300, 400, 30);
}




