/* ===========================================================================
//	lib_layer.js 
// ======================================================================== */


/* init vars */
var currentLayer = "";
var browseByDayLayer = "";

function switchLayer(newLayer) {
	if(newLayer == "") { return false; }
	
	if(document.getElementById) {
		/* hide current */
		if(currentLayer != "" && "object" == typeof(document.getElementById(currentLayer))) {
			eval("document.getElementById('"+currentLayer+"')").style.display = "none";
		}
		
		/* show new, set current */
		if(newLayer != "" && "object" == typeof(document.getElementById(newLayer))) {
			eval("document.getElementById('"+newLayer+"')").style.display = "block";
			currentLayer = newLayer;
		}
	}
}

function switchLayer2(newLayerID,currentLayerID) {
        document.getElementById(currentLayerID).style.display = 'none';
        document.getElementById(newLayerID).style.display = 'block';
        return newLayerID;
}

function switchLayerDay(newLayer) {
	if(newLayer == "") { return false; }
	
	if(document.getElementById) {
		/* hide current */
		if("object" == typeof(document.getElementById(browseByDayLayer))) {
			eval("document.getElementById('"+browseByDayLayer+"')").style.display = "none";
		}
		
		/* show new, set current */
		if("object" == typeof(document.getElementById(newLayer))) {
			eval("document.getElementById('"+newLayer+"')").style.display = "block";
			browseByDayLayer = newLayer;
		}
	}
}


/* open or close thread layer (i.e. in dialogue) */ 
function clopThread(threadId) {
	if(threadId=='') { return false; }
	
	if(pageIsLoaded==false) {
		alert('Page still loading');
		return false;
	}
	
	if(document.getElementById) {
		var eH = document.getElementById(threadId);
		var eT = document.getElementById(threadId+"#THREAD");
		
		if(eT.style.display=='block' || eH.className=='headerIsOpened') {
      dkWebService4.postClosed(parseInt(threadId));
			eH.className		= 'header headerIsClosed';
			eT.style.display	= 'none';
		} else {
      dkWebService4.postOpened(parseInt(threadId));
			eH.className		= 'header headerIsOpened';
			eT.style.display	= 'block';
		}
	}
	return true;
}

function openThread(threadId) {
	if(threadId=='') { return false; }	
	if(document.getElementById) {
    dkWebService4.postOpened(parseInt(threadId));
		var eH = document.getElementById(threadId);
		var eT = document.getElementById(threadId+"#THREAD");				
        eH.className		= 'header headerIsOpened';
        eT.style.display	= 'block';
	}
}

function closeThread(threadId) {
	if(threadId=='') { return false; }	
	if(document.getElementById) {
    dkWebService4.postClosed(parseInt(threadId));
		var eH = document.getElementById(threadId);
		var eT = document.getElementById(threadId+"#THREAD");				
        eH.className		= 'header headerIsClosed';
		eT.style.display	= 'none';
	}
}

/* open some thread layers (i.e. in dialogue) */ 
function openThreads(threadIdArray) {
    if(pageIsLoaded==false) {
            alert('Page still loading');
            return;
    }
    for (var i=0;i<threadIdArray.length;i++) {
           openThread(threadIdArray[i]);
    }
    document.getElementById('closeAllResponses').style.display = 'inline';
    document.getElementById('openAllResponses').style.display = 'none';
}

/* open some thread layers (i.e. in dialogue) */ 
function closeThreads(threadIdArray) {
    for (var i=0;i<threadIdArray.length;i++) {
           closeThread(threadIdArray[i]);
    }
    document.getElementById('closeAllResponses').style.display = 'none';
    document.getElementById('openAllResponses').style.display = 'inline';
}

/* active use methods */
function retrieveLink() {
	var citeLink = dkWebService5.retrieveLink();
	document.replyForm.content.value += ' ' + citeLink;
	
	return;
}

function retrieveAskLink() {
	var citeLink = dkWebService5.retrieveLink();
	document.askForm.content.value += ' ' + citeLink;
	
	return;
}


/* ------------------------------------------------------
// 	auto scrolldown 
// --------------------------------------------------- */
var scroller = {
	scrollToElementId	: '',
	offset_y			: 3,
	autoscroll	: function() {
                                        if (this.scrollToElementId == '') {return; }
					var eID = this.scrollToElementId;
					if(!document.getElementById(eID)) { return; }
					
					p = getPosition(document.getElementById(eID));
					d = getWindowSize();
					
					var y = d.y/2;
					
					if(p.y > y) {
						window.scrollTo(0,p.y); 
					}
				}
};


function getPosition(element) {
	var e = element;
	var tagname = "";
	var x=0;
	var y=0;
	
	/* loop from element (e) till the body tag */
	while ((typeof(e)=="object") && (typeof(e.tagName)!="undefined")) {
		y += e.offsetTop;
		x += e.offsetLeft;
		tagname = e.tagName.toUpperCase();
		
		if (tagname=="BODY" || tagname=="HTML") { break; }
		
		if (typeof(e)=="object") {
			if (typeof(e.offsetParent)=="object") {
				/* get offset parent element */
				e = e.offsetParent;
			}
		}
	}
	
	position = new Object();
	position.x = x;
	position.y = y;
	return position;
}

function getWindowSize() {
	var x=0;
	var y=0;
	
	if (self.innerHeight) {
		// all except Explorer
		x = self.innerWidth;
		y = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		// Explorer 6 Strict Mode
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	} else if (document.body) {
		// other Explorers
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}
	
	dim = new Object();
	dim.x = x;
	dim.y = y;
	return dim;
}


/* ------------------------------------------------------
// 	relatedThemes-Menus
// --------------------------------------------------- */
function createRelatedThemesMenu(id,normName,ontClsName){    
    var menuExists = false;
    try {
        menuExists = eval(id+" != null");
    }
    catch (ex){
        menuExists = false;
    }
    if (!menuExists) {
        var myMenudefTI = {
	        "position":{"anchor":"e", "anchor_side":"nw", "menuoffset":{"x":-10,"y":-10}},
	        "timer":1000,
	        "autoclose":true,
	        "type":"popup", 
	        "style":{"css":"themeInfoLayerItem", "box":true, "direction":"v", "size":[240,19], "border":{"color":"#e4e8e4", "width":1}},
	        "defaction":{},
	        "itemover":{"css":"themeInfoLayerItemOver"},
	        "position":{"relative":true},
	        "items":[
	            { "text":"<div class='themeInfoLayerTitle'>"+normName+"</div>", "action":{}},
	            { "text":"<div class='themeInfoLayerLink'>Learn more about this theme</div>", "action":{"url": contextPath + "/themes/info/" + ontClsName + urlSuffix}},
	            { "text" : "<div class='themeInfoLayerLink'>Search this theme</div>", "action":{"url": contextPath + "/search/directThemeSearch/" + ontClsName + urlSuffix}},
	            { "text":"<div class='themeInfoLayerLink'>Ask a question related to this theme</div>", "action":{"url": contextPath + "/posts/ask/" + ontClsName + urlSuffix}},
	            { "text":"<div class='themeInfoLayerLink'>Wikipedia</div>", "action":{"target":"_blank", "url": "http://en.wikipedia.org/wiki/Spezial:Search?search=" + normName}},
	            { "text":"<div class='themeInfoLayerLink'>NGOs related to this theme</div>", "action":{"url": contextPath + "/themes/ngos/" + ontClsName + urlSuffix}}
			] 
        };
        var myMenu = eval("new CMenu(myMenudefTI, '"+id+"')"); 
        eval(id+" = myMenu");
        oldDw = dw;
        dw = function (s) {
	        var containerNode = document.getElementById("container_"+id);
	        containerNode.innerHTML += s;
        };
        myMenu.create();
        myMenu.run();
        dw = oldDw;        
    } 
}

function showRelatedThemesMenu(id,normName,ontClsName,event) {
    createRelatedThemesMenu(id,normName,ontClsName);    
    return eval(id+".popupEv(event)");
}


/* eof ==================================================================== */



