// JavaScript Document

function switchLanguage(base, e) {
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	
 location.href = base + "/" + targ.value;
}

function safeSubmit(strFormId){
	var temp= "[nobotplease]";
	document.getElementById(strFormId).botblocker.value=temp;

// For later add on
//	if (checkFields(strFormId)) {
		document.getElementById(strFormId).submit();
		document.getElementById(strFormId).action = "";
//	}
}

function initRatelistEvents()
{
    var ratelist = document.getElementById('ratelist');
    var alphabet = document.getElementById('alphabet');

    if (ratelist && alphabet) {

        var letters = alphabet.getElementsByTagName('a');
        if (letters && (letters.length > 0)) {
            for (var i = 0; i < letters.length; i++) {
                applyEvent(letters.item(i), 'click', scrollToAnchor);
            }
        }
    }
}

function scrollToAnchor(e)
{
    if (!e) e = window.event;

    var target = getTarget(e);
    var element = document.getElementById(target.getAttribute('href').replace(/(.*)\#/, ''));
    if (element) {

        var rates = document.getElementById('rates');

        // calculate the offset to top
        var topOffset = element.offsetTop || 0;
        var direction = (rates.scrollTop > topOffset) ? 'up' : 'down';
        var speed = .05;

        i = 0;
        while (true) {

            i++;

            var dy = (topOffset - rates.scrollTop) * speed;

            // make sure movement is larger than 1px, to prevent target from freezing
            if (Math.abs(dy) <= 1) {
                dy = (dy < 0 ? -1 : 1);
            }

            rates.scrollTop += dy;

            if (direction === 'up') {
                if ((rates.scrollTop <= topOffset) || (rates.scrollTop <= 0)) {
                    break;
                }
            } else if (direction == 'down') {
                if ((rates.scrollTop >= topOffset) || (rates.scrollTop >= (rates.scrollHeight - rates.clientHeight))) {
                    break;
                }
            }

            // last resort to prevent infinite loop
            if (i > 500) {
                break;
            }
        }

        cancelEvent(e);

    }
}

/**
* Add events that have te be executed at onload.
**/
addLoadEvent(initRatelistEvents);
/**/