function $(id) {
    return document.getElementById(id);
}

function fade(node_id, speed) {
    clearTimeout(fadeImageTimer);
    clearTimeout(nextImageTimer);
    holder = $('large_image');
    divs = new Array();
    temp_divs = holder.getElementsByTagName('div');
    for(i=0; i<temp_divs.length; i++) {
        if(temp_divs[i].className == 'image') {
            divs[divs.length] = temp_divs[i];
        }
    }
    processed_changes = false;
    direction = -1;
    for(i=0; i<divs.length; i++) {
        if(i == node_id) {
            direction = 1
        } else {
            divs[i].style.zIndex = 1;
            direction = -1;
        }
        if(Browser == 'Dynamic') {
            pOpacity = 1*divs[i].style.opacity;
            if((i == node_id && pOpacity < 1) || (i != node_id && pOpacity > 0)) {
                num = new Number(1*(pOpacity + direction*speed));
                divs[i].style.opacity = num.toFixed(2);
                processed_changes = true;
            } else {
                divs[i].style.opacity = 1*(direction / 2 + 0.5);
            }
        } else {
            
            pOpacity = divs[i].style.filter.match(/[0-9]+/gi);
            pOpacity = 1*pOpacity;
            if((i == node_id && pOpacity < 100) || (i != node_id && pOpacity > 0)) {
                divs[i].style.filter = 'alpha(opacity: ' + parseFloat(pOpacity + direction*speed*500) + ')';
                processed_changes = true;
            } else {
                divs[i].style.filter = 'alpha(opacity: ' + parseFloat(direction / 2 + 0.5)*100 + ')';
            }
        }
    }
    divs[node_id].style.zIndex = 10;
    if(processed_changes) {
        clearTimeout(fadeImageTimer);
        fadeImageTimer = setTimeout('fade('+node_id+','+speed+');', fadeDelay);
    } else if(slideshow) {
        clearTimeout(nextImageTimer);
        nextImageTimer = setTimeout('next()', nextDelay);
        current_node = node_id;
    } else {
        current_node = node_id;
    }
}
function fade_testimonial(node_id, speed) {
    clearTimeout(fadeTestimonialTimer);
    clearTimeout(nextTestimonialTimer);
    holder = $('testimonial_quotes');
    divs = new Array();
    temp_divs = holder.getElementsByTagName('div');
    for(i=0; i<temp_divs.length; i++) {
        if(temp_divs[i].className == 'quote') {
            divs[divs.length] = temp_divs[i];
        }
    }
    processed_changes = false;
    direction = -1;
    for(i=0; i<divs.length; i++) {
        if(i == node_id) {
            direction = 1
        } else {
            divs[i].style.zIndex = 1;
            divs[i].style.display = 'none';
            direction = -1;
        }
        if(Browser == 'Dynamic') {
            pOpacity = 1*divs[i].style.opacity;
            if((i == node_id && pOpacity < 1) || (i != node_id && pOpacity > 0)) {
                num = new Number(1*(pOpacity + direction*speed));
                divs[i].style.opacity = num.toFixed(2);
                processed_changes = true;
            } else {
                divs[i].style.opacity = 1*(direction / 2 + 0.5);
            }
        } else {
            
            pOpacity = divs[i].style.filter.match(/[0-9]+/gi);
            pOpacity = 1*pOpacity;
            if((i == node_id && pOpacity < 100) || (i != node_id && pOpacity > 0)) {
                divs[i].style.filter = 'alpha(opacity: ' + parseFloat(pOpacity + direction*speed*500) + ')';
                processed_changes = true;
            } else {
                divs[i].style.filter = 'alpha(opacity: ' + parseFloat(direction / 2 + 0.5)*100 + ')';
            }
        }
    }
    divs[node_id].style.zIndex = 10;
    divs[node_id].style.display = 'block';
    if(processed_changes) {
        clearTimeout(fadeTestimonialTimer);
        fadeTestimonialTimer = setTimeout('fade_testimonial('+node_id+','+speed+');', fadeTestimonialDelay);
    } else {
        clearTimeout(nextTestimonialTimer);
        if(divs.length == 1)
            return;
        nextTestimonialTimer = setTimeout('next_testimonial()', nextTestimonialDelay);
        divs[current_testimonial_node].style.display = 'none';
        current_testimonial_node = node_id;
    } 
}

function next() {
    holder = $('large_image');
    divs = new Array();
    temp_divs = holder.getElementsByTagName('div');
    for(i=0; i<temp_divs.length; i++) {
        if(temp_divs[i].className == 'image') {
            divs[divs.length] = temp_divs[i];
        }
    }
    if(current_node + 1 >= divs.length)
        fade(0, default_speed);
    else
        fade(current_node + 1, default_speed);
}
function next_testimonial() {
    holder = $('testimonial_quotes');
    divs = new Array();
    temp_divs = holder.getElementsByTagName('div');
    for(i=0; i<temp_divs.length; i++) {
        if(temp_divs[i].className == 'quote') {
            divs[divs.length] = temp_divs[i];
        }
    }
    if(current_testimonial_node + 1 >= divs.length)
        fade_testimonial(0, default_speed);
    else
        fade_testimonial(current_testimonial_node + 1, default_speed);
}


function __scroll(scroll_dir) {
    clearTimeout(Timer);
    old_scroll = document.getElementById('thumb_holder_holder').scrollLeft;
    document.getElementById('thumb_holder_holder').scrollLeft += (scroll_speed*scroll_dir);
    if(document.getElementById('thumb_holder_holder').scrollLeft % 114 >= 57 && Math.abs(scroll_speed - scroll_dir) <= 12) {
        //scroll_speed -= scroll_dir;
    } else if(Math.abs(scroll_speed + scroll_dir) <= 12) {
        //scroll_speed += scroll_dir;
    }
    if(old_scroll != document.getElementById('thumb_holder_holder').scrollLeft) {
        
        if(document.getElementById('thumb_holder_holder').scrollLeft % 114 != 0) {
            Timer = setTimeout('__scroll('+scroll_dir+')', 1);
        }
        return;
    }
}

