/*
 * <copyright>
 *  Copyright (c) 2009 by IICM, Graz University of Technology, Austria
 * </copyright>
 *
 *  This software is the confidential information of IICM,
 *  Graz University of Technology, Austria. You shall not disclose such
 *  confidential information and shall use it only in accordance with
 *  the IICM.
 *
 *  IICM MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
 *  SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
 *  IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 *  PURPOSE, OR NON-INFRINGEMENT. IICM SHALL NOT BE LIABLE FOR ANY DAMAGES
 *  SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
 *  THIS SOFTWARE OR ITS DERIVATIVES.
 *
 */
 
function closeMenu(){
	if (document.getElementById('idExport')!=null){
		document.getElementById('idExportMenu').removeChild(document.getElementById('idExport'));
	}
}

function menu(mapBaseQueries,sortCriteria1, sortCriteria2, hitsPerPage, numberEntriesCurrentPage, action, listPageIndexPrevious, mapPageIndexNext, languageKey, selectedDbs){
	if (!document.getElementById){ return; }
	if (document.getElementById('idExport')!=null){
		document.getElementById('idExportMenu').removeChild(document.getElementById('idExport'));
	}
	
	var indexesPrevious = serialize(listPageIndexPrevious);
	var indexesNext = serialize(mapPageIndexNext);
	
	var userID=readCookie('userID');
	var anker = document.getElementById('idExportMenu');
	setStyle(anker, "position:absolute; z-index:2; background-color:FFFFFF; border:none; width:250;");
	
	var over, table, tBody, trElement, tdElement, textElement,inputElement;
	
	table = document.createElement("table");
	table.setAttribute("style","width:250;");
	table.setAttribute("id","idExport");
	table.className="resultlist";
	tBody = document.createElement("tbody");
	
	trElement = document.createElement("tr");
	tdElement = document.createElement("td");
	tdElement.className="resultlist_menu";
	textElement=document.createTextNode("Export Bookmarks");
	tdElement.appendChild(textElement);
	trElement.appendChild(tdElement);
	tdElement = document.createElement("td");
	tdElement.className="resultlistContent_middle_right";
	inputElement=document.createElement('input');
	inputElement.setAttribute("type","button");
	inputElement.className="resultlist";
	inputElement.setAttribute("value","CSV");
	inputElement.onclick=new Function("exportBookmarks(0,'"+languageKey+"','"+userID+"');");
	tdElement.appendChild(inputElement);
	trElement.appendChild(tdElement);
	
/*	tdElement = document.createElement("td");
	tdElement.className="resultlistContent_middle_right";
	inputElement=document.createElement('input');
	inputElement.setAttribute("type","button");
	inputElement.className="resultlist";
	inputElement.setAttribute("value","Excel");
	inputElement.onclick=new Function("exportBookmarks(1,'"+languageKey+"','"+userID+"');");
	tdElement.appendChild(inputElement);
	trElement.appendChild(tdElement);*/
	tBody.appendChild(trElement);
	
	tBody.appendChild(trElement);	
	
	trElement = document.createElement("tr");
	tdElement = document.createElement("td");
	textElement=document.createTextNode("Export View");
	tdElement.appendChild(textElement);
	trElement.appendChild(tdElement);
	tdElement.className="resultlist_menu";
	tdElement = document.createElement("td");
	tdElement.className="resultlistContent_middle_right";
	inputElement=document.createElement('input');
	inputElement.setAttribute("type","button");
	inputElement.className="resultlist";
	inputElement.setAttribute("value","CSV");
	inputElement.onclick=new Function("exportView(0,mapBaseQueries,'"+sortCriteria1+"','"+sortCriteria2+"','"+hitsPerPage+"','"+action+"',"+indexesPrevious+","+indexesNext+",'"+languageKey+"','"+selectedDbs+"')");
	tdElement.appendChild(inputElement);
	trElement.appendChild(tdElement);
	
/*	tdElement = document.createElement("td");
	tdElement.className="resultlistContent_middle_right";
	inputElement=document.createElement('input');
	inputElement.setAttribute("type","button");
	inputElement.className="resultlist";
	inputElement.setAttribute("value","Excel");
	inputElement.onclick=new Function("exportView(1,mapBaseQueries,'"+sortCriteria1+"','"+sortCriteria2+"','"+hitsPerPage+"','"+action+"',"+indexesPrevious+","+indexesNext+",'"+languageKey+"','"+selectedDbs+"')");
	tdElement.appendChild(inputElement);
	trElement.appendChild(tdElement);*/
	
	
	tBody.appendChild(trElement);
	
	
	trElement = document.createElement("tr");
	
	textElement=document.createTextNode("Export All");
	tdElement = document.createElement("td");
	tdElement.appendChild(textElement);
	tdElement.className="resultlist_menu";
	trElement.className="resultlist";
	trElement.appendChild(tdElement);
	
	tdElement = document.createElement("td");
	tdElement.className="resultlistContent_middle_right";
	inputElement=document.createElement('input');
	inputElement.setAttribute("type","button");
	inputElement.className="resultlist";
	inputElement.setAttribute("value","CSV");
	inputElement.onclick=new Function("exportAll(0,mapBaseQueries,'"+sortCriteria1+"','"+sortCriteria2+"','"+hitsPerPage+"','"+action+"',"+indexesPrevious+","+indexesNext+",'"+languageKey+"','"+selectedDbs+"')");
	tdElement.appendChild(inputElement);
	trElement.appendChild(tdElement);
	
/*	tdElement = document.createElement("td");
	tdElement.className="resultlistContent_middle_right";
	inputElement=document.createElement('input');
	inputElement.setAttribute("type","button");
	inputElement.className="resultlist";
	inputElement.setAttribute("value","Excel");
	inputElement.onclick=new Function("exportAll(1,mapBaseQueries,'"+sortCriteria1+"','"+sortCriteria2+"','"+hitsPerPage+"','"+action+"',"+indexesPrevious+","+indexesNext+",'"+languageKey+"','"+selectedDbs+"')");
	tdElement.appendChild(inputElement);
	trElement.appendChild(tdElement);*/
	
	tBody.appendChild(trElement);
	
	trElement=document.createElement("tr");
	tdElement=document.createElement("td");
	tdElement.className="resultlist_menu";
	trElement.appendChild(tdElement);
	tdElement=document.createElement("td");
	inputElement=document.createElement("input");
	inputElement.setAttribute("type","button");
	inputElement.setAttribute("value",this.catalogLgKeys["bookmark.close"]);
	inputElement.className="resultList";
	inputElement.onclick=new Function("closeMenu();");
	tdElement.appendChild(inputElement);
	trElement.appendChild(tdElement);
	
	
	tBody.appendChild(trElement);	
	
	table.appendChild(tBody);
	anker.appendChild(table);	
	return;
}

function exportBookmarks(format, languageKey, userID){
    Export.exportBookmarks(format, languageKey,userID,
	{
		callback: function(res){ dwr.engine.openInDownload(res); },
		errorHandler: function(message){ errorHandler('export',message); },
		timeout:0	
	}
	);
	return;
}


function exportView(format, mapBaseQueries,sortCriteria1,sortCriteria2,hitsPerPage,action,listPageIndexPrevious,mapPageIndexNext, languageKey,selectedDbs){
	try{
	Export.exportView(format, mapBaseQueries,sortCriteria1,sortCriteria2,hitsPerPage,action,listPageIndexPrevious,mapPageIndexNext,languageKey,selectedDbs,
	{
		callback: function(res){dwr.engine.openInDownload(res); },
		errorHandler: function(message){errorHandler('export',message);},
		timeout:0
	});
	}catch (e){alert(e.message+" at " +e.lineNumber);}
}

function exportAll(format, mapBaseQueries,sortCriteria1,sortCriteria2,hits,action,listPageIndexPrevious,mapPageIndexNext, languageKey,selectedDbs){
	dwr.engine.setOrdered(true);
	var hits = Number(document.getElementById("idTotalHits").value);
	Export.getLimit({
		callback: function(test){
		    if (test>=hits){
			Export.exportAll(format, mapBaseQueries, sortCriteria1,sortCriteria2,hits,action,listPageIndexPrevious,mapPageIndexNext,languageKey,selectedDbs,
			{
				callback: function(res){dwr.engine.openInDownload(res); },
				errorHandler: function(message){errorHandler('export',message);},
				timeout:0
			});
			}else { alert("Number of hits must be lower then: "+test);}
		},
		errorHandler: function(message){errorHandler('export',message);},
		timeout:0
	});	
}

function getListForQuery(anchor, element, languageKey){
	
	Export.getListForQuery(element,languageKey,
	{
		callback: function(list){ showDetail(anchor, list)},
		errorHandler: function(message){ errorHandler('export',message);},
		timeout:0
	}
	);
	return;
}

