var lang = 'de';

/************************************************************************************
 **		Init
 **/
$(function() {
	if (document.location.href.indexOf('en_') >= 0 || document.location.href.indexOf('_en') >= 0) lang = 'en';
});

/************************************************************************************
 **		Load News into iFrame
 **/
function iFrameLoadURL(strURL) {
	var $oNewsContainer = $('#oNewsContainer');
	var currentDate = new Date();
	
	if ($oNewsContainer.length) {
		var strURLNoCache = strURL + '?noCashFix=' + currentDate.getTime();
		$oNewsContainer.attr('src', strURLNoCache);
	}
}


/************************************************************************************
 **		Scroll window to
 **/
function scrollWindowTo(nPosX, nPosY) {
	var $oHTMLBody = $('html,body');
	
	if ($oHTMLBody.length) {
		$oHTMLBody.stop(true);
		$oHTMLBody.animate({
			scrollLeft: nPosX,
			scrollTop: nPosY
		}, 750, 'swing');
	}
}


/************************************************************************************
 **		Scroll window to
 **/
function showPrintDialog() {
	if (window.hasOwnProperty('print')) {
		window.print();
	}
	else {
		alert(lang == 'de' ? 'Bitte w' + String.fromCharCode(0xe4) + 'hlen Sie die Drucken-Funktion aus Ihren Browser-Men' + String.fromCharCode(0xfc) + '.' : 'Please use your Browser\'s printing functionality from the Browser menu, directly.');
	}
}


/************************************************************************************
 **		toggleTypeSize
 **/
function toggleTypeSize() {
	$.ajax({ 
		url: 'inc/commit.change.type.inc.php', 
		type: 'post',
		context: document.body, 
		success: function(sResponseData) {
			var aParameters = sResponseData.split('%=%');
			
			switch(aParameters[0]) {
				case 'success':
					window.document.location.reload();
					break;
					
				default:
					alert(sResponseData);
			}
		}, 
		error: function(XMLHttpRequest, textStatus, errorThrown) {
			var errStr = lang == 'de' ?
				'Interner Fehler [AJAX]: Die Schnittstelle meldet ' + errorThrown + ".\nBitte schreiben Sie den Administrator unter info@klickadeeler.de." :
				'Internal Error [AJAX]: Interface reports ' + errorThrown + ".\nPlease contact the administrator (mailto:info@klickadeeler.de).";
			alert(errStr);
		}
	});
}

	
/************************************************************************************
 **		Change header state
 **/	
function switchHeader() {
	$.ajax({ 
		url: 'inc/commit.save.header.inc.php', 
		type: 'post',
		context: document.body, 
		success: function(sResponseData) {
			var aParameters = sResponseData.split('%=%');
				
				switch(aParameters[0]) {
					case 'success':
						var $oMoodWrapper = $('.moodWrapper');
						var $oMoodLarge = $('#oMoodLarge');
						var $oMoodSmall = $('#oMoodSmall');
						
						if ($oMoodLarge.length && $oMoodSmall.length) {
							if (aParameters[1] != 'show') {
								$oMoodLarge.slideUp();
								$oMoodSmall.slideDown();
								$oMoodWrapper.animate({
									height: 34
								}, 500, 'swing');
							}
							else {
								$oMoodLarge.slideDown();
								$oMoodSmall.slideUp();
								$oMoodWrapper.animate({
									height: 300
								}, 500, 'swing');
							}
						}
						break;
						
					default:
						alert(sResponseData);
				}
		}, 
		error: function(XMLHttpRequest, textStatus, errorThrown) {
			var errStr = lang == 'de' ?
				'Interner Fehler [AJAX]: Die Schnittstelle meldet ' + errorThrown + ".\nBitte schreiben Sie den Administrator unter info@klickadeeler.de." :
				'Internal Error [AJAX]: Interface reports ' + errorThrown + ".\nPlease contact the administrator (mailto:info@klickadeeler.de).";
			alert(errStr);
		}
	});
}


/************************************************************************************
 **		Start AJAX request to commit contact
 **/	
function ajaxExecuteContactSend(oForm) {
	var $oForm = $(oForm);
	
	if ($oForm.length) {
		$.ajax({ 
			url: 'inc/commit.contact.inc.php', 
			type: 'post',
			data: $oForm.serialize(),
			context: document.body, 
			success: function(sResponseData) {
				var aParameters = sResponseData.split('%=%');
			
				switch(aParameters[0]) {
					case 'success':
						/* reset */
						$oForm.reset();
					
						/* hide errors */
						var $oErrorContainer = $('#oErrorContainer');
						if (oErrorContainer.length) oErrorContainer.hide();

						/* show message */
						showMessageLayer(aParameters[1]);
						break;
						
					case 'error':
						var $oErrorContainer = $('#oErrorContainer');
						
						showMessageLayer(aParameters[1]);
						
						if ($oErrorContainer.length) {
							var offset = $oErrorContainer.offset();
							$oErrorContainer.html(aParameters[1]);
							$oErrorContainer.show();
						}
						break;
						
					default:
						alert(sResponseData);
				}
			}, 
			error: function(XMLHttpRequest, textStatus, errorThrown) {
				var errStr = lang == 'de' ?
					'Interner Fehler [AJAX]: Die Schnittstelle meldet ' + errorThrown + ".\nBitte schreiben Sie den Administrator unter info@klickadeeler.de." :
					'Internal Error [AJAX]: Interface reports ' + errorThrown + ".\nPlease contact the administrator (mailto:info@klickadeeler.de).";
				alert(errStr);
			}
		});
	}
}

/************************************************************************************
 **		Create Tooltip
 **/
function createToolTip(strName, strHTML, strCSSClass) {
	var $oTip = $('#' + strName);
	
	/* make new tip */
	if (!$oTip.length) {
		var $oBody = $('body');
		
		if ($oBody.length) {
			$oTip = $('<div>' + strHTML + '</div>');
			$oBody.prepend($oTip);
			$oTip.attr('id', strName);
		}
	}
	
	/* setup tip */
	try {
		if (!$oTip.hasClass(strCSSClass)) $oTip.addClass(strCSSClass);
		$oTip.css({
			position: 'absolute',
			left: 0,
			top: 0
		});
		$oTip.hide();
	}
	catch(e) {
	}
	
	return $oTip;
}

/************************************************************************************
 **		Show Tooltip
 **/
function showToolTip($oElement) {
	var $oBody = $('body');
	
	if ($oElement.length && $oBody.length) {
		/* remove */
		$oBody.unbind('mousemove', false);
		hideToolTip();
		
		/* make nre */
		$oBody.data('curToolTip', $oElement);
		$oBody.bind('mousemove', function($e) {
			$oElement.offset({
				left: $e.pageX + 14,
				top: $e.pageY + 18
			});
		});
		
		$oElement.show();
	}
} 

/************************************************************************************
 **		Hide Tooltip
 **/
function hideToolTip(bRemove) {
	var $oBody = $('body');
	var $curToolTip = $oBody.data('curToolTip');
	
	try {
		$curToolTip.hide();
		if (bRemove) {
			$curToolTip.remove();
			$oBody.data('curToolTip', null);
		}
	}
	catch(e) {
	}
}

/************************************************************************************
 **		Show Message Layer
 **/
function showMessageLayer(strMessage) {
	var $powerLayerContent = $('#powerLayerContent');
		
	if ($powerLayerContent.length) {
		var $powerLayer = $powerLayerContent.parent();
		
		if ($powerLayer.length) {
			var $oWin = $(window);
			var $oContent = $('.content');
			var $oPos = $oContent.position();
			
			/* scroll to top */
			$oWin.scrollTop(0);
			
			/* set content */
			$powerLayerContent.html(strMessage);
			
			/* show layer */
			if ($.browser.msie && $.browser.version < 7) $powerLayer.css('width', '512px');
			$powerLayer.css({
				left: String(Math.round((($oContent.width() - $powerLayer.width()) / 2) + $oPos.left)) + 'px',
				top: String(Math.round(($oWin.height() - $powerLayer.height()) / 2)) + 'px'
			});
			$powerLayer.fadeIn();
		}
	}
}

