/*
var labels = function() {
	$each($(document.body).getElements('label.inside'), function(label) {
		var input = $(label.get('for'));
		if ($chk(input)) {
			if(input.get('value')=='') input.set('value', label.get('html'));
			input.addEvent('focus', function() {
				if (input.get('value')==label.get('html')) input.set('value', null);
				input.removeClass('disabled')
			});
			input.addEvent('blur', function() { if (!$chk(input.get('value')) || input.get('value')==label.get('html')) input.set('value', label.get('html')); });
		}
	});
};
*/

var labels = function() {
	$each($(document.body).getElements('label.inside'), function(label) {
		var input = $(label.get('for'));
		if ($chk(input)) {
			// Hide label if input exists already
			if (input.get('value')!="") label.setStyle('display', 'none');
			// Set event if user clicks on label
			label.addEvent('click', function() { label.setStyle('display', 'none'); input.focus(); });
			// Events on inputs (hide/show label)
			input.addEvent('focus', function() { label.setStyle('display', 'none'); });
			input.addEvent('blur', function() { if (input.get('value')=="") label.setStyle('display', 'block'); });
			// Changes label margin-top in Safari
			if (Browser.Engine.webkit && $chk(label.getPrevious()) && label.getPrevious().get('tag')=='div') label.setStyle('padding-top', 5);
			if (Browser.Engine.trident&&Browser.Engine.version==5) new Element('div', {'class': 'clear', 'style': 'float: none;'}).inject(label, 'before');
		}
	});
};

var SubmitButtons = function() {
	$each($(document.body).getElements('input.button-submit'), function(item) {
		var anchor = new Element('a', {'html': '<span>'+item.get('value')+'</span>'}).inject(item, 'after');
		anchor.set({'style': item.get('style'), 'class': item.get('class')}).setStyle('margin-top', item.getStyle('margin-top').toInt());
		anchor.addEvent('click', function() { item.click(); });
		var div = new Element('div', {'styles': {'position': 'relative', 'width': 0, 'height': 0, 'overflow': 'hidden'}}).wraps(item);
		item.setStyles({'position': 'absolute', 'left': -9001});
	});
};

var BrowserFixes = function() {
	// Internet Explorer
	if (Browser.Engine.trident) {
		// Fix clears
		$each($(document.body).getElements('br'), function(item) {
			if ($chk(item.get("style"))) {
				new Element('div', {'html': '<!-- Internet Explorer Fix -->', 'styles': {'clear': 'both'}}).inject(item, 'after');
				item.destroy();
			}
		});
		// Fix white space under images
		$each($(document.body).getElements('img'), function(item){ item.addEvent('load', function(item) { this.set('alt', ''); }).set('GALLERYIMG', 'no'); });
		// Fix HR
		$each($(document.body).getElements('hr'), function(item){
			new Element('div', {'html': '<!-- Internet Explorer Fix -->', 'class': 'hr'}).inject(item, 'after');
			item.destroy();
		});
		// Fix Legends
		if (Browser.Engine.version<6) {
			$each($(document.body).getElements('legend'), function(item){
				if (item.getStyle('display')!='none') item.setStyles({'top': (item.getStyle('top').toInt()+1)+'px', 'left': (item.getStyle('left').toInt()-7)+'px'});
			});
		}
		// Fix last and first childs in tables for styling and lists for IE6 only (implemented in IE7 and IE8)
		if (Browser.Engine.version==4) {
			var rowgroups = $(document.body).getElements('thead, tbody, tfoot, ul, ol');
			// Do rows
			rowgroups.each(function(group){
				var rows = group.getElements('td, th, li');
				// Add style to columns for first row
				rows[0].addClass('first-child');
				// Add style to columns for last row
				rows[(rows.length-1)].addClass('last-child');
			});
		}
		// Fix Buttons Spaces
		$(document.body).getElements('a.button').each(function(item){ item.set('html', item.get('html').replace(/ /g, '&nbsp;')); });
	}
	// Firefox
	else if (Browser.Engine.gecko) {
		// Fix Legends
		$each($(document.body).getElements('legend'), function(item){
			new Element('div', {'class': 'legend', 'html': item.get('html'), 'styles': {'top': (item.getStyle('top').toInt()-14)+'px', 'left': (item.getStyle('left').toInt()-14)+'px'}}).inject(item, 'after');
			item.destroy();
		});
	}
}

var initDocument = function () {
	// Form Buttons
	SubmitButtons.run();
	// Inside input labes
	labels.run();
	// Express Tips
	var myTips = new Tips('a.tooltip', {className: 'tips', fixed: true, text: '', offset: {'x': -60, 'y': 16}});
	myTips.addEvent('show', function(tip){ new Fx.Tween(tip).set('opacity', 0).start('opacity', 0, 1); });
	// Accounts tips
	// Tips
	var myTips2 = new Tips('img.tooltip', {className: 'tips', fixed: true, text: '', offset: {'x': -60, 'y': 16}});
	myTips2.addEvent('show', function(tip){ new Fx.Tween(tip).set('opacity', 0).start('opacity', 0, 1); });
	// Lightbox
	if (typeof lightbox != 'undefined') lightbox = new Lightbox;
};

var language;
//var effects;

window.addEvent('domready', function() {
	// Initialize Document
	initDocument.run();
	// Fix Browser spesific bugs
	BrowserFixes.run();
	// Find language of the page
	language = $(document.html).get('lang');
});
