
function init()
{
	if (isIE6) {
		fixie6();
	}
	correctbottom();
	slidebottom();
	window.setTimeout('blinkdvd();', 1000);
	if (!isIE6) {
		mq = document.getElementsByTagName('MARQUEE')[0];
		if (mq) {
			var mq2 = document.createElement('DIV');
			mq2.id = 'marquee';
			mq2.innerHTML = mq.innerHTML;
			mq.parentNode.appendChild(mq2);
			mq.parentNode.removeChild(mq);
			mq = mq2;

			mq.className = 'pimped';
			marquee();
		}
	}
}

// this function fixes incorrect support for the bottom bar in (mainly) Opera and Safari
// note: could be that firefox and IE are off on this one - had it only been the latter, i wouldn't have been surprised -
// but i can't really find a reason for O&S to move the bottom bar as they do
function correctbottom()
{
	var b = null;
	if (b = document.getElementById('bottom')) {
		var c = document.getElementById('right').getElementsByTagName('DIV')[0];
		if (findPosX(b) != findPosX(c)) {
			b.style.display = 'none';
			b.style.posLeft = findPosX(c);
			b.style.display = 'block';
		}
	}
}

function findPosX(el)
{
    if (!el) {
		return 0;
	}
    var curleft = 0;
    if (el.offsetParent) {
        curleft += el.offsetLeft;
        while (el = el.offsetParent)
        {
            curleft += el.offsetLeft;
        }
    } else if (el.x) {
        curleft += el.x;
	}
    return curleft;
}

function findPosY(el)
{
    if (!el) {
		return 0;
	}
    var curtop = 0;
    if (el.offsetParent) {
        curtop += el.offsetTop;
        while (el = el.offsetParent) {
            curtop += el.offsetTop;
        }
    } else if (el.y) {
        curtop += el.y;
	}
    return curtop;
}

var current = 0;
var dir = 1;

function fadeinout()
{
    var s2 = document.getElementById('welcome');
    var s1 = document.getElementById('hotelcalifornia');
	if (isIE) s1.style.display = 'block';
	var timeout;
    if (current <= 100) {
        if (dir == 1) {
            newlevel = current;
        } else {
            newlevel = 100 - current;
        }
        if (!isIE) {
            s1.style.opacity = newlevel / 100;
            s2.style.opacity = (100 - newlevel) / 100;
        } else {
            s1.getElementsByTagName('STRONG')[0].style['filter'] = 'alpha(opacity=' + newlevel + ')';
            s1.getElementsByTagName('EM')[0].style['filter'] = 'alpha(opacity=' + newlevel + ')';
            s2.getElementsByTagName('STRONG')[0].style['filter'] = 'alpha(opacity=' + (100 - newlevel) + ')';
            s2.getElementsByTagName('EM')[0].style['filter'] = 'alpha(opacity=' + (100 - newlevel) + ')';
        }
        current+=4;
		timeout = 10;
    } else {
        current = 0;
        dir = -dir;
		timeout = 1000;
    }
    window.setTimeout('fadeinout()', timeout);
}

function slidebottom()
{
	var b = document.getElementById('bottom');
	if (!b) {
		return;
	}
	var id = b.parentNode.id;
	var advance = true;
	var newimg = false;
	b = b.getElementsByTagName('DIV')[0];
	switch (id) {
		case 'guestbook':
		case 'contact':
			current+=29;
			newimg = '/style/bottom/hearts-diamonds' + (current % 58 ? '-inverted' : '') + (isIE6 ? '-ie' : '') + '.png';
			advance = false;
			break;
		case 'welcomeback':
		case 'lineup':
		case 'media':
		case 'press':
		case 'news':
		case 'tourdates':
		case 'photos':
			current+=24;
			break;
		case 'repertoire':
		case 'home':
			current+=30;
			newimg = '/style/bottom/clubs-spades' + (current % 60 ? '-inverted' : '') + (isIE6 ? '-ie' : '') + '.png';
			advance = false;
			break;
	}
	if (current >= b.offsetWidth - 1) {
		current = 0;
	}
	if (advance) {
		b.style.backgroundPosition = current + 'px 0';
	}
	if (newimg) {
		b.style.backgroundImage = 'url(' + newimg + ')';
	}
	window.setTimeout('slidebottom()', 1000);
}
function blinkdvd()
{
	var d = null;
	if (d = document.getElementById('dvd')) {
		d.className = d.className == 'blink' ? '' : 'blink';
		window.setTimeout('blinkdvd()', 1000);
	}
}

function uom(el, str)
{
    var newstr = '';
    if (!str.length) return false;
    for (var i = str.length - 1; i >= 0; i--) {
        newstr += str[i];
    }
    el.href = 'mailto:' + newstr;
    return true;
}
function check_valid(form, en)
{
    if (!form.elements['mnm_guestbook_entry'].value.length) {
        alert(en ? 'You didn\'t enter a message!' : 'U heeft geen bericht ingevoerd!');
        return false;
    }
    if (!form.elements['mnm_guestbook_name'].value.length) {
        alert(en ? 'You didn\'t enter your name!' : 'U heeft geen naam ingevoerd!');
        return false;
    }
	if (
		form.elements['mnm_guestbook_email'].value.length &&
		!form.elements['mnm_guestbook_email'].value.match(/^[-_a-zA-Z0-9.]+@[a-zA-Z0-9][-a-zA-Z0-9.]+\.[a-zA-Z]{2,4}$/)
	) {
		alert(en ? 'You didn\'t enter a valid emailaddress!' : 'U heeft een ongeldig e-mailadres ingevoerd!');
		return false;
	}
    return true;
}

function submit_guestbook(form, en)
{
	if (!check_valid(form, en)) {
		return false;
	}
	// post via ajax, if at all possible
	var ajax = null;
	if (!(ajax = new Ajax('post', (en ? '/en' : '/nl') + '/ajax/guestbook/'))) {
		return true;
	} else {
		ajax.add_form(form);
		disable_form(form);
		ajax.set_readystatehandler(function() {
			eval(this.http.responseText);
			if (!errors.length) {
				var gb = document.getElementById('leftcol').getElementsByTagName('UL')[0];
				var li = document.createElement('LI');
				li.innerHTML = msg;
				if (gb.getElementsByTagName('LI').length) {
					gb.insertBefore(li, gb.getElementsByTagName('LI')[0]);
				} else {
					gb.appendChild(li);
				}
			} else {
				alert(errors.join('\n\n'));
			}
			this.form.elements['mnm_guestbook_entry'].value = '';
			enable_form(this.form);
		});
		ajax.execute();
		return false; // don't also submit via HTTP post
	}
}

function disable_form(form)
{
	enable_form(form, true);
}

function enable_form(form, disable)
{
	for (var i = 0; i < form.elements.length; i++) {
		form.elements[i].disabled = disable;
	}
}

