<!--
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
//                   ===================================
//                               T - P A Y
//                   ===================================
//                  
//                        - T-Pay button code -
//
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
// Workfile: T-Pay-button.js
//
// Version: 1.0
//
// Languages: JS 1.5 / DOM 2.0
//
// Author: Hardy Krueger <hardy.krueger {at} bergerbaaderhermes.de>
// Modifiziert wegen Fehler: Jörg Traser <joerg.traser {at} t-com.net>
//
////////////////////////////////////////////////////////////////////////////////
//
// This script handles the T-Pay payment menu.
//
////////////////////////////////////////////////////////////////////////////////
//
// History:
//
// - 15.09.2005, created by HK
// - 16.09.2005, fixed menue row with IE by HK
// - 19.09.2005, fixed some position issues and IE mouse events by HK
// - 10.10.2005, added new Layout and hand cursor by HK
// - 20.12.2005, added integration of T-Pay payment identifier
// - 06.04.2006, JavaScript error reloding site after showing the button solved
//
////////////////////////////////////////////////////////////////////////////////
//
// (C) 2005 BBH /digital, 80538 Muenchen, Thierschstr. 5, contact@bbh-digital.de
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
 

////////////////////
/// KONFIGURATION
////////////////////

// Reihenfolge der T-Pay-Menueeintraege bitte hier (arrTPayMethods) sowie analog bei arrTPayIDs apassen
// Nur die Reihenfolge ändern, keine Einträge entfernen!
var arrTPayMethods	= new Array('TComRechnung','CallAndPay','MicroMoney','Lastschrift','Kreditkarte','PayByCall');
var arrTPayIDs		= new Array(2, 8192, 1, 16, 'credit', 4);

// 0 wenn keine Animation gewuenscht, sonst Anzahl ms pro Step		
var intTPayMenuDropDownSpeed	= 1;				

// Anzahl Pixel pro Step
var intTPayMenuDropDownSteps	= 3;				

// Anzahl ms nach der das Menue schliesst
var intTPayMenuCloseInterval	= 300;			

///////////
/// CODE    !!!!!!!!!!!!!!! DO NOT MODIFY AFTER THIS POINT !!!!!!!!!!!!!!!!!!!!!!!!
///////////

var arrTPayCreditCardsIDs = new Array(32, 64, 128, 512);
var intTPayZIndex	= 903;	
var strTPayBorderColor = '#9EA09F';
var boolTPayDirUp = strTPayMenuRichtung == 'hoch' ? true : false;		
var arrTPayActiveMethods = new Array();
var intervalTPayCloseMenu, intervalTPayAnimation;
var boolTPayIsAnimation = intTPayMenuDropDownSpeed != 0 ? true : false;
var boolTPayMenuOpen = false;
var boolTPayMSIE = /MSIE/.test(navigator.userAgent);

for (var i = 0; i < arrTPayIDs.length; i++)
{
	if (arrTPayIDs[i] == 'credit')
	{
		var intTPayCreditCardIDs = 0;
		
		for (var j = 0; j < arrTPayCreditCardsIDs.length; j++)
			if (arrTPayCreditCardsIDs[j] & intTPayPaymentIdentifier)
				intTPayCreditCardIDs += arrTPayCreditCardsIDs[j];
				
		if (intTPayCreditCardIDs != 0)
			arrTPayActiveMethods.push(new Array(arrTPayMethods[i], intTPayCreditCardIDs));
	}
	else if (arrTPayIDs[i] & intTPayPaymentIdentifier)
		arrTPayActiveMethods.push(new Array(arrTPayMethods[i], arrTPayIDs[i]));
}
		
var intTPayStopPosOpen, intTPayStopPosClose, intTPayTop, intTPayLeft, arrElmTPayMenuRows = new Array();
strTPayImagePfad = strTPayImagePfad + (strTPayImagePfad.length > 0 && strTPayImagePfad.substr(strTPayImagePfad.length - 1, 1) != '/' ? '/' : '');

var arrTPayImgToCache = new Array('btnTPay_down.gif');

for (var i = 0; i < arrTPayMethods.length; i++)
{
	arrTPayImgToCache.push('btn' + arrTPayMethods[i] + '_over.gif');
	arrTPayImgToCache.push('btn' + arrTPayMethods[i] + '_down.gif');
}

var arrTPayCachedImg = new Array();

for (i = 0; i < arrTPayImgToCache.length; i++)
{
	arrTPayCachedImg.push(new Image());
	arrTPayCachedImg[i].src = strTPayImagePfad + arrTPayImgToCache[i];
}

/** Kreation des T-Pay Buttons **/
function createTPay()
{
	var intCur, elmMenuRow, elmMenuTxt, elmMenuLink, intRowElmTop;
	var intActiveLength = arrTPayActiveMethods.length - 1;
	
	// T-Pay-Button 
	var elmLyrTPay = document.getElementById('lyrTPay');
	var elmAnk = createTag('a', {href: 'JavaScript:proceedTPayForm(' + intTPayPaymentIdentifier + ')'});
	var elmBtn = createTag('img', {id: 'imgTPay', src: strTPayImagePfad + 'btnTPay.gif', width: 124, height: 25, border:0});
	var elmPayMenu = createTag('div', {id: 'lyrTPayMenu'});
	var elmPayHandDiv = createTag('div', {id: 'lyrTPayHand'});
	var elmPayHandImg = createTag('img', {id: 'lyrTPayHandImg', src: strTPayImagePfad + 'imgHand.gif'});
	elmBtn.onmousedown = function() {this.src = strTPayImagePfad + 'btnTPay_down.gif'};
	elmBtn.onmouseup = function() {this.src = strTPayImagePfad + 'btnTPay.gif'};
	elmBtn.onmouseout = function() {intervalTPayCloseMenu = window.setInterval('closeTPay()', intTPayMenuCloseInterval);};
	elmBtn.onmouseover = function() {window.clearInterval(intervalTPayCloseMenu); openTPay();};
	elmLyrTPay.style.width = '124px';
	elmLyrTPay.style.position = 'relative';
	elmLyrTPay.style.zIndex = intTPayZIndex;
	elmAnk.appendChild(elmBtn);		
	elmLyrTPay.appendChild(elmAnk);
	elmPayHandDiv.appendChild(elmPayHandImg);
	//document.getElementsByTagName('body')[0].appendChild(elmPayMenu);
	document.getElementById('lyrTPayButton').appendChild(elmPayMenu);
	elmPayMenu = document.getElementById('lyrTPayMenu');
	elmPayMenu.style.position = 'absolute';
	elmPayMenu.style.visibility = 'hidden';
	elmPayMenu.style.zIndex = intTPayZIndex - 1;
	//document.getElementsByTagName('body')[0].appendChild(elmPayHandDiv);
	document.getElementById('lyrTPayButton').appendChild(elmPayHandDiv);
	

	// Menueeintraege
	for (i = 0; i <= intActiveLength; i++)
	{
		intCur = boolTPayDirUp ? intActiveLength - i : i;
		intRowElmTop = boolTPayDirUp ? 0 - (i * 24) - 49 : i * 24 + 2;
		elmMenuLink = createTag('a', {href: 'JavaScript:proceedTPayForm(' + arrTPayActiveMethods[intCur][1] + ')'});
		elmMenuBtn = createTag('img', {id: 'img' + arrTPayActiveMethods[intCur][0], src: strTPayImagePfad + 'btn' + arrTPayActiveMethods[intCur][0] + '.gif', border: 0});
		elmMenuRow = createTag('div', {id: 'lyrTPayMenu' + arrTPayActiveMethods[intCur][0]});
		elmMenuBtn.onmouseup = new Function('setTPayMouseAction(3, arrTPayActiveMethods[' + intCur + '][0], this);');
		elmMenuBtn.onmousedown = new Function('setTPayMouseAction(2, arrTPayActiveMethods[' + intCur + '][0], this);');
		elmMenuBtn.onmouseover = new Function('setTPayMouseAction(1, arrTPayActiveMethods[' + intCur + '][0], this);');
		elmMenuBtn.onmouseout = new Function('setTPayMouseAction(0, arrTPayActiveMethods[' + intCur + '][0], this);');
		elmMenuRow.appendChild(elmMenuLink);
		elmMenuLink.appendChild(elmMenuBtn);
		elmPayMenu.appendChild(elmMenuRow);
		//elmMenuRow = document.getElementById('lyrTPayMenu' + arrTPayActiveMethods[intCur][0]);
		elmMenuRow.style.position = 'absolute';
		elmMenuRow.style.top = intRowElmTop + 'px';
		elmMenuRow.style.left = '0px';
		elmMenuRow.style.zIndex = intTPayZIndex - 2;
		
		if (boolTPayIsAnimation)
			elmMenuRow.style.visibility = 'hidden';
		
		arrElmTPayMenuRows.push(elmMenuRow);
	}

	// Menueabschlussleiste
	var elmEndRow = createTag('div', {id: 'lyrTPayEndRow'});
	elmPayMenu.appendChild(elmEndRow);
	elmEndRow = document.getElementById('lyrTPayEndRow');
	elmEndRow.style.zIndex = intTPayZIndex - 2;
	elmEndRow.style.position = 'absolute';
	elmEndRow.style.top = (boolTPayDirUp ? intRowElmTop - 5 : intRowElmTop + 25) + 'px';
	elmEndRow.style.left = '0px';
	var elmEndRowImg = createTag('img', {id: 'imgEndRow', src: strTPayImagePfad + 'imgEndRow.gif', border: 0});
	elmEndRow.appendChild(elmEndRowImg);

	// Positionierung des Menues
	intTPayTop = document.getElementsByTagName('body')[0].offsetTop + elmLyrTPay.offsetTop;
	intTPayLeft = document.getElementsByTagName('body')[0].offsetLeft + elmLyrTPay.offsetLeft;
	var intMenuHeight = arrTPayActiveMethods.length * 20 + 3;
	var intMoveUp = boolTPayIsAnimation ? intTPayTop + intMenuHeight + 23 : intTPayTop + 24;
	var intMoveDown = boolTPayIsAnimation ? intTPayTop - intMenuHeight + 23 : intTPayTop + 23;
	elmPayMenu.style.top = (boolTPayDirUp ? intMoveUp : intMoveDown) + 'px';
	elmPayMenu.style.left = (document.getElementsByTagName('body')[0].offsetLeft + elmLyrTPay.offsetLeft) + 'px';
	intTPayStopPosOpen = boolTPayDirUp ? intTPayTop + 24 : intTPayTop + 23;
	intTPayStopPosClose = boolTPayDirUp ? intTPayTop + intMenuHeight + 23 : intTPayTop - intMenuHeight + 23;

	// Positionierung der Hand
	elmPayHandDiv = document.getElementById('lyrTPayHand');
	elmPayHandDiv.style.zIndex = intTPayZIndex + 1;
	elmPayHandDiv.style.position = 'absolute';
	elmPayHandDiv.style.top = document.getElementsByTagName('body')[0].offsetTop + elmLyrTPay.offsetTop + 10 + 'px';
	elmPayHandDiv.style.left = document.getElementsByTagName('body')[0].offsetLeft + elmLyrTPay.offsetLeft + 100 + 'px';
	
}

/** Menue oeffnen **/
function openTPay()
{
	document.getElementById('lyrTPayHand').style.visibility = 'hidden';
	
	if (arrElmTPayMenuRows.length == 0 || boolTPayMenuOpen)
		return;
	
	var elmLyrTPayMenu = document.getElementById('lyrTPayMenu');
	
	if (elmLyrTPayMenu.style.visibility == 'visible')
	{
		closeTPay();
		return;	
	}
	
	if (!boolTPayIsAnimation)
	{
		elmLyrTPayMenu.style.visibility = 'visible';
		boolTPayMenuOpen = true;
	}
	else
		intervalTPayAnimation = window.setInterval('moveTPayMenu(true)', intTPayMenuDropDownSpeed);
}


/** Menue schliessen **/
function closeTPay()
{
	if (!boolTPayMenuOpen)
		return;
	
	window.clearInterval(intervalTPayCloseMenu);
	var elmLyrTPayMenu = document.getElementById('lyrTPayMenu');
	
	if (!boolTPayIsAnimation)
	{
		elmLyrTPayMenu.style.visibility = 'hidden';
		boolTPayMenuOpen = false;
		document.getElementById('lyrTPayHand').style.visibility = 'visible';
	}
	else
		intervalTPayAnimation = window.setInterval('moveTPayMenu(false)', intTPayMenuDropDownSpeed);
}		


/** Menue-Animation **/
function moveTPayMenu(boolOpenMenu)
{
	var elmLyrTPay = document.getElementById('lyrTPay');
	var elmLyrTPayMenu = document.getElementById('lyrTPayMenu');
	var intCurTop = Number(elmLyrTPayMenu.style.top.substr(0, elmLyrTPayMenu.style.top.length - 2));
	
	if (boolOpenMenu)
	{
		elmLyrTPayMenu.style.visibility = 'visible';
		
		if ((!boolTPayDirUp && intCurTop < intTPayStopPosOpen) || (boolTPayDirUp && intCurTop > intTPayStopPosOpen))
		{
			intNewPos = !boolTPayDirUp ? intCurTop + intTPayMenuDropDownSteps : intCurTop - intTPayMenuDropDownSteps;
						
			if ((!boolTPayDirUp && intNewPos > intTPayStopPosOpen) || (boolTPayDirUp && intNewPos < intTPayStopPosOpen))
				intNewPos = intTPayStopPosOpen;
			
			elmLyrTPayMenu.style.top = intNewPos + 'px';	
			
			for (var i = arrElmTPayMenuRows.length - 1; i >= 0; i--)
			{
				if ((!boolTPayDirUp && intCurTop >= (intTPayStopPosClose + 5 + ((arrElmTPayMenuRows.length - i) * 25)) - 50) || (boolTPayDirUp && intCurTop <= (intTPayStopPosClose - 5 - ((arrElmTPayMenuRows.length - i) * 25)) + 50))
					arrElmTPayMenuRows[i].style.visibility = 'visible';
				else
					break;	
			}
		}
		else
		{
			boolTPayMenuOpen = true;
			window.clearInterval(intervalTPayAnimation);
		}
	}
	else
	{
		boolTPayMenuOpen = false;
		
		if ((!boolTPayDirUp && intCurTop > intTPayStopPosClose) || (boolTPayDirUp && intCurTop < intTPayStopPosClose))
		{
			for (var i = 0; i < arrElmTPayMenuRows.length; i++)
			{
				if ((!boolTPayDirUp && intCurTop <= (intTPayStopPosClose + 5 + ((arrElmTPayMenuRows.length - i) * 24)) - 25) || (boolTPayDirUp && intCurTop >= (intTPayStopPosClose - 5 - ((arrElmTPayMenuRows.length - i) * 24)) + 25))
					arrElmTPayMenuRows[i].style.visibility = 'hidden';
				else
					break;	
			}	
			
			elmLyrTPayMenu.style.top = (!boolTPayDirUp ? intCurTop - intTPayMenuDropDownSteps : intCurTop + intTPayMenuDropDownSteps) + 'px';
		}
		else
		{
			window.clearInterval(intervalTPayCloseMenu);
			window.clearInterval(intervalTPayAnimation);	
			elmLyrTPayMenu.style.visibility = 'hidden';
			document.getElementById('lyrTPayHand').style.visibility = 'visible';
		}
	}
}

/** HTML-Tag-Kreation **/
function createTag(strTagName, objAttr)
{
	var attr;
	var elm = document.createElement(strTagName);
	
	for (var obj in objAttr)
		elm.setAttribute(obj, objAttr[obj])
	
	return elm;
}

/** Mausaktionen **/
function setTPayMouseAction(intEvent, strMethName, elmImg)
{
	if (intEvent == 2)
		elmImg.src = strTPayImagePfad + 'btn' + strMethName + '_down.gif';
	else if ((intEvent == 1 || intEvent == 3))
	{
		if (boolTPayMenuOpen)
			elmImg.src = strTPayImagePfad + 'btn' + strMethName + '_over.gif';
	
		window.clearInterval(intervalTPayCloseMenu);	
	}
	else
	{
		elmImg.src = strTPayImagePfad + 'btn' + strMethName + '.gif';
		intervalTPayCloseMenu = window.setInterval('closeTPay()', intTPayMenuCloseInterval);
	}
}

/** TPay ausfuehren **/
function proceedTPayForm(intPaymentID)
{
	document.formTPay.intPaymentIdentifier.value = intPaymentID;
	document.formTPay.submit();
}


// Aufruf der Button- und Menuekreation

createTPay();

-->