/* Scripts for Draw-Window - Windows in HTML-Page integrated */
/* Jan 2008 by k.schaefer */

/* ------------------------ */
/* HANDLE INLINE-WINDOWS    */
/* ------------------------ */

/* Script makes a div-overlay visible and toggles images. Can used global; used e.g. in Wallpapers-Screensavers Download */
function drawWindowOverlay(thisnode, mode) {
	var selectNodeImage = thisnode.getElementsByTagName("img");
	var hoverImage1 = new Image();
	hoverImage1.src = selectNodeImage[0].src;
	var hoverImage2 = new Image();
	hoverImage2.src = selectNodeImage[1].src;

	if (mode == "show") {
		var setMode = "visible";
		selectNodeImage[0].src = hoverImage2.src;
		selectNodeImage[1].src = hoverImage1.src;
	} else {
		var setMode = "hidden";
		selectNodeImage[0].src = hoverImage2.src;
		selectNodeImage[1].src = hoverImage1.src;
	}
	var selectNodeOverlay = thisnode.getElementsByTagName("div");
	eval("selectNodeOverlay[0].style.visibility='" + setMode + "'");
}

/* Global Inline-Functions */
function activateInlineWindow(windowId) {
	var xPos =document.body.offsetWidth - $(document.getElementById(windowId)).width();
	var xOffset = xPos/2;
	if(xOffset <= 0) xOffset = 0;
	var docHeight = 0;
	if(document.documentElement.clientHeight) docHeight = document.documentElement.clientHeight;
	else if(document.body.offsetHeight) docHeight = document.body.offsetHeight;
	var yPos = docHeight - $(document.getElementById(windowId)).height();
	var yOffset = yPos/2;
	if(yOffset <= 0) yOffset = 0;
	if (window.pageYOffset) {
		yOffset += window.pageYOffset;
		
	} else if (document.body.scrollTop) {
		yOffset += document.body.scrollTop;
	} else if (document.documentElement.scrollTop) {
		yOffset += document.documentElement.scrollTop;
	}
	xOffset += "px";
	yOffset += "px";
	if (!document.getElementById('inlinewindowOverlay')) {
		$(document.body).append("<div id='inlinewindowOverlay'></div>");
	}


	
	windowInsideHeight=window.innerHeight;
	if(window.scrollMaxY) windowInsideHeight += window.scrollMaxY;
	if(!windowInsideHeight)
	{windowInsideHeight=document.body.clientHeight;} // IE mode
	
	$(document.getElementById('inlinewindowOverlay')).show();
	if(document.getElementsByTagName('body')[0].scrollHeight<windowInsideHeight)
	{
		overlayHeight=windowInsideHeight;
	}
	else
	{
		overlayHeight=document.getElementsByTagName('body')[0].scrollHeight;
	}	
	
	document.getElementById('inlinewindowOverlay').style.height = overlayHeight+"px";


	$('#' + windowId).show().css( {
		"top" :yOffset,
		"left" :xOffset,
		"z-index" : "1000"
	});
	/*
	* if(!document.getElementById('inlinewindowOverlay')) {
	 * $(document.body).append('<div id="inlinewindowOverlay"
	 * style="height:100%;"></div>');
	 *  }
	 */

}

function deactivateInlineWindow(windowId) {
	/*
	 * $(document.getElementById(windowId)).fadeOut("fast", function () {
	 * $(document.getElementById('inlinewindowOverlay')).slideUp("fast");
	 * document.getElementById('inlinewindowOverlay').style.display='none'; } );
	 */
	$('#inlinewindowOverlay').remove();
	$(document.getElementById(windowId)).hide();
	$(document.getElementById(windowId)).attr( {
		style :"top:128px;left:119px;"
	});
}

/*$(document).ready( function() {
	$(".draggable").draggable()
});*/

$(document).ready(function() {

	$(".activateInlineWindow").click(function() {
			var iwID = 'inlineWindow_' + $(this).attr("id");
			var iwTitle = false;
			activateInlineWindow(iwID);
			if ($(this).hasClass('iwTitle')) {
				var iwTitle = $(this).attr("title");
			}
			if ($(this).hasClass('iwLoader')) {
				ref = $(this).attr('href');
				iwLoadElementsFromFile(ref,iwID,{
						"titleHeadline" :"#iwPageHeadline",
						"contentText" :"#iwPageCopy"
						},
						{
							"preloader" : "assets/images/progressIndicator.gif",
							"preloaderElement" : ".contentText",
							"iwTitle" : iwTitle
						});
			}
		return false;	
	});
	$(".deactivateInlineWindow").click(function() {
			deactivateInlineWindow('inlineWindow_' + ($(this).attr("id").replace(/(\w.+)_/, '')));
					});

	$(".activateInlineWindow,.generateMousePointer").attr({style :"cursor:pointer"});
	
});

/*
 * loads an external file into the inline window via Ajax if the link has the
 * additional class "iwLoader" reads from the "href" attribute
 */
function iwLoadElementsFromFile(ref,motherElement,elements,options) {
	var request = $.ajax( {
		url :ref,
		beforeSend : function() {
			if(options) {
				if(options.preloader && options.preloaderElement) {
					var img = "<img src='"+options.preloader+"' />";
					$("#"+motherElement + " " +options.preloaderElement).html(img);
				}
			}
	},
		success : function(p) {
		
		for(var i in elements) {
			$("#"+motherElement + " ."+i).html($(request.responseText).find(elements[i]).html());
			activateInlineWindow(motherElement);
		}
		if(options) {
			if(options.iwTitle) {
				$("#"+motherElement + " .titleHeadline").text(options.iwTitle);
			}
		}
		},
		error : function(p) {
			if(options) {
				if(options.preloaderElement) {
					$(options.preloaderElement).text(request.status);
				}
			}
		}
	});

}

function browseContinents(element) {
	var country = $(element).attr("id").replace("activate","");
	$(element).parent().siblings().children().removeClass("continentActive");
	$(element).addClass("continentActive");
	$(document.getElementById("iwWorldWide"+country)).siblings().hide();
	$(document.getElementById("iwWorldWide"+country)).show();
}