// - - - - - lightbox

function initLightboxes() {
	
	// get all elements that have "tolb"-class
	var lbTriggers = $$('.tolb');
	// add event to each trigger
	for (var i=0; i < lbTriggers.length; i++) {
		var lbTrigger = lbTriggers[i];
		lbTrigger.onclick = function() {
			// get lightbox options from markup
			lbDest = this.getAttribute('href');
			try {
				lbRel = this.getAttribute('rel').split(",");
				lbTitle = lbRel[0];
				lbRefresh = lbRel[1];
			} catch(e) {
				// fail silently
			}
			// create lightbox
			createLightbox(lbDest);
			// kill default link action
			return false;
			}
		}
	}
	
	function createLightbox() {
		if($('lbBox')) {
			$('lb').setAttribute('src', lbDest);
		} else {
			// create layer to cover rest of the page
			lbLayer = document.createElement('div');
			lbLayer.setAttribute('id','lbLayer');
			lbLayer.style.height = window.getScrollHeight() + 'px';
			new Fx.Style(lbLayer, 'opacity').set(0.7);
			// create positioning box to hold iframe
			lbBox = document.createElement('div');
			lbBox.setAttribute('id','lbBox');
			// create lightbox header
			lbHeader = document.createElement('div');
			lbHeader.setAttribute('id','lb-header');
			lbHeadline = document.createElement('h1');
			lbHeadlineContent = document.createTextNode(lbTitle);
			// create close button ...
			lbCloseBtn = top.document.createElement('a');
			lbCloseBtn.setAttribute('id','lb-close');
			lbCloseBtn.className = 'lb-load';
			// ... and refresh current page onclick
			if(lbRefresh == 'refresh') {
				lbCloseBtn.onclick = function() {
					top.location.href = document.location.href;
				}
			} else {
			// ... or simply close lightbox onclick
				lbCloseBtn.onclick = function() {
					window.document.body.removeChild(lbLayer);
					window.document.body.removeChild(lbBox);
				}
			}
			// define iframe name
			if (window.webkit) { var iFrameName= 'projectFrame'+$random(0,999); } // workaround for some weird JS bug in safari
			else { var iFrameName= 'projectFrame'; }
			// create iframe
			lbFrame = document.createElement('iframe');
			lbFrame.setAttribute('id','lbFrame');
			lbFrame.setAttribute('name',iFrameName);
			lbFrame.setAttribute('src',lbDest);
			lbFrame.setAttribute('frameBorder','0');
			// append elements to document
			window.document.body.appendChild(lbLayer);
			window.document.body.appendChild(lbBox);
			lbBox.appendChild(lbHeader);
			lbHeader.appendChild(lbHeadline);
			lbHeadline.appendChild(lbHeadlineContent);
			lbBox.appendChild(lbFrame);
			lbHeader.appendChild(lbCloseBtn);
		}
		// lightbox position
		var yPos = (window.getHeight() / 10);
		var xPos = ((window.getWidth() / 2) - 250);
		$('lbBox').setStyle('top',yPos);
		$('lbBox').setStyle('left',xPos);
		// make lightbox dragable
		new Drag.Move(lbBox,{'container': lbLayer});
	}

	// set lightbox height dynamically - called from lightbox-body
	function setHeight() {
		try {
			// get objects
			var boxHeight = $('lb-content').getStyle('height');
			var lbFrame = top.$('lbFrame');
			// set lightbox height
			lbFrame.setStyle('height',boxHeight);
			top.$('lb-close').removeClass('lb-load');
			top.$('lbBox').setStyle('background-image','none');
		} catch(e) {
			// fail silently
	}
	
	// - - - - special cases - - - - 
	
	// modify form in lb-pay
	try {
		// get elements
		var currencyForm = $('setcurrency');
		var currencySelect = $('currency');
		var currencySubmit = $('convertcurrency');
		// hide submit button
		currencySubmit.setStyle('visibility','hidden');
		// send form onChange
		$('currency').addEvent('change', function() { currencyForm.submit(); })
	} catch(e) {
		// fail silently
	}
	
	// modify link to paypal in lb-pay
	try {
		// get elements
		var payPalLink = $('payment-paypal');
		// attach event
		payPalLink.addEvent('click', function(){
			window.location.href = '/lb-pay-paypal_close.html';
		});
	} catch(e) {
		// fail silently
	}
}