var doc = null;
var wantDebug = false;
var countername = '';

/**
 * Display debug message
 **/
function DEBUG(message, color) {
    if(wantDebug)
        GLog.write(message, color);
}


function initialise(thecountername) {
	countername = thecountername;
	
	//window.resizeTo(700,600);
	try {
		DEBUG("Initialise");
	    
	    fillAreas();
	} catch (x) {
		DEBUG(x, "red");
	}
}

function fillAreas() {
	try { 
		DEBUG("fillAreas");
		var selArea = document.getElementById("areas");
		DEBUG(menudata.nodes.length);
		
		var sel = createSelBox();
		sel.injectInside(selArea);
		
		sb_create(sel, menudata.nodes);
		
		sel.addClass('firstbox');
		
		DEBUG('add handler');
		sel.addEvent("change", function(item) {onSelectChanged(sel, item);});
		showResultArea(false);
	} catch (x) { DEBUG(x, "red"); }
}

function showResultArea(show) {
	$('zdlresults').setOpacity(show?1:0);
}


function createSelBox() {
	var sb = new Element('div');
	return sb;
}

function onSelectChanged(elSelect, item) {
	try {
		DEBUG("Selection changed");
		var result = $("result");
		result.set('html', "");
		
		// delete following selects
		removeFollowingElements(elSelect);
		
		if(!item) return;
		DEBUG("found sub:" + item.name);
		
		var subs = item.nodes;
		if(subs && subs.length > 0) {
			DEBUG("has subs: " + subs.length);
			
			// create new select box
			var subSelect = createSelBox();
			sb_create(subSelect, subs);
			subSelect.injectAfter(elSelect);
			subSelect.addEvent("change", function(item) {onSelectChanged(subSelect, item);});
			showResultArea(false);
		} else {
			// show docs
			showResultArea(true);
			var docs = item.docs;
			showDocs(result, docs);
		}
	} catch (x) {
		DEBUG(x, "red");
	}
}


var flags = [
	"de", "en_gb", "fr", "nl", "es", "it", "be", "da", "hu", "ru", "pl", "cz", "tr", "ro", "sr_cs", "en_us", "pt_br", "cn", "tw", "he", "pt"
];
var flagMap = new Array();
flagMap["de"] = "deutschland_22.png";
flagMap["en_gb"] = "grossbritannien_22.png";
flagMap["fr"] = "frankreich_22.png";
flagMap["es"] = "spanien_22.png";
flagMap["it"] = "italien_22.png";
flagMap["be"] = "belgien_22.png";
flagMap["hu"] = "ungarn_22.png";
flagMap["ru"] = "russland_22.png";
flagMap["pl"] = "polen_22.png";
flagMap["cz"] = "tschechien_22.png";
flagMap["tr"] = "tuerkei_22.png";
flagMap["ro"] = "rumaenien_22.png";
flagMap["sr_cs"] = "serbienmontenegro_22.png";
flagMap["en_us"] = "usa_22.png";
flagMap["pt_br"] = "brasilien_22.png";
flagMap["cn"] = "china_22.png";
flagMap["tw"] = "taiwan_22.png";
flagMap["he"] = "israel_22.png";
flagMap["nl"] = "holland_22.png";
flagMap["da"] = "denmark_22.png";
flagMap["pt"] = "portugal_22.png";

function showDocs(result, docs) {
	if(docs && docs.length > 0) {
		var table = new Element("table");
		// hide table during construction
		table.setOpacity(0);
		table.injectInside(result);
		table.setProperty("class", "result");
		table.setProperty("border", "0");
		table.setProperty("cellSpacing", "0");
		table.setProperty("cellPadding", "0");
		var tbody = new Element("tbody");
		tbody.injectInside(table);
		
		var currentFlags = getLanguages(docs, flags);
		
		// add first line
		var tr = new Element("tr");
		tr.injectInside(tbody);
		var td = new Element("td");
		td.setProperty("class", "download-first-head-cell");
		td.injectInside(tr);
		td.set("text", " ");
		
		// add flags
		currentFlags.each(function(flag) {
			td = new Element("td");
			td.injectInside(tr);
			td.setProperty("class", "download-head-cell");
			var img = new Element("img");
			img.injectInside(td);
			img.setProperty("border", "0");
			img.setProperty("src", "../images/" + flagMap[flag]);
			DEBUG( flag + "=" + flagMap[flag]);
		});
		
		// list docs
		docs.each(function(doc) {
			tr = new Element("tr");
			tr.injectInside(tbody);
			td = new Element("td");
			td.injectInside(tr);
			td.setProperty("class", "download-first-cell");
			var text = doc.name.replace(/#/g, String.fromCharCode(160));
			td.set("text", text);
			text = td.innerHTML;
			text = text.replace(/\~/g, '<br/>');
			td.set('html', text);
			
			var links = doc.links;
			currentFlags.each(function(flag) {
				td = new Element("td");
				td.injectInside(tr);
				td.setProperty("class", "download-cell");
				var found = null;
				if(links) {
					links.each(function(link) {
						if(link.docLang == flag) {
							found = link;
						}
					});
				}
				if(found) {
					var a = new Element("a");
					a.injectInside(td);
					var href = basepath + "/" + found.href;
					a.setProperty("href", href);
					a.setProperty("target", "_blank");
					a.addEvent("click", function(e) {
						e = new Event(e);
						if(ns_onclick(a, '', href, 'pdf') == false) {
							e.stop();
						}
					});

					var img = new Element("img");
					img.injectInside(a);
					img.setProperty("src", "../images/arrow_green.gif");
					img.setProperty("border", "0");
				} else {
					td.set("text", " ");
				}
			});
		});
		
		// show table
		table.setOpacity(1);
	} else {
		// no docs
		result.set('html', "No documents found");
	}
}

//
// return array of unique languages found in doc list
// sorted by order defined in flags
function getLanguages(docs, flags) {
	var found = new Array();
	docs.each(function(doc) {
		if(doc.links) {
			doc.links.each(function(link) {
				found.include(link.docLang);
			});
		}
	});
	var list = new Array(); 
	flags.each(function(flag) {
		if(found.contains(flag)) {
			list.include(flag);
		}
	});
	
	return list;
}

function removeFollowingElements(elem) {
	try {
		var next = elem.getNext();
		if(next) {
			removeFollowingElements(next);
			DEBUG("Remove " + next.innerHTML);
			next.parentNode.removeChild(next);
		}
	} catch (x) {
		DEBUG(x, "red");
	}
}


var internalIP = false;

/** Begin Sitestat OnClick v1.0 
Copyright (c) 2001-2007 Nedstat B.V. 
All rights reserved.**/
function ns_onclick (a, url, name, type, winopt){
if(!internalIP){
name = name + " (ZDL)";
var i = name.lastIndexOf("/");
if(i > -1){ name = name.substring(i+1); }
name = countername + '.' + name;
var ns_l="http://de.sitestat.com/arburg/com/s?";
ns_l+=name;ns_l+='&ns_type='+type+'&ns_action=view';
ns_l+='&ns__t='+(new Date()).getTime();if(!url)url=a.href;
var ns_0=document.referrer;if(ns_0.lastIndexOf('/')==ns_0.length-1)
ns_0=ns_0.substring(ns_0.lastIndexOf('/'),0);
if (ns_0.length>0)ns_l+='&amp;ns_referrer='+escape(ns_0);
winopt=winopt||"";var
target=(a&&a.target&&a.target!="")?(a.target.substring(0,1)=="_")?a.target.substring(1):a.target:"self";
var ns_i=new Image();if(target&&url){if(window[target]){window.ns_softclick_timer=function(target,url)
{return function(){ns_i.onload=ns_i.onerror=function(){return;};
window[((window[target])?target:"self")].location.href=url;}}(target,url);
window.setTimeout('ns_softclick_timer()',5000);ns_i.onload=ns_i.onerror=window.ns_softclick_timer;}else{
window.open(url,target,winopt);}}ns_i.src=ns_l;return false;}return true;} //-->
/** End Sitestat code **/

