function setImageSrc( elementId, imageSrc ) {
    var element = document.getElementById( elementId );
    element.setAttribute( 'src', imageSrc );
}

function toggleElementVisibility( elementId ) {
    var element = new getObj( elementId );
    if( element.style.display == 'none' ) {	
        element.style.display = 'block';
    }
    else {
        element.style.display = 'none';
    }
}

function toggleElementVisibilityInline( elementId ) {
    var element = new getObj( elementId );
    if( element.style.display == 'none' ) {	
        element.style.display = 'inline';
    }
    else {
        element.style.display = 'none';
    }
}

function toggleDisplayState( visibleElementId, headerElementId, d ) {
    Effect.toggle(visibleElementId,'appear',{duration: d});
    var visibleElement = new getObj( visibleElementId );     
    var element = new getObj( headerElementId );
    if( visibleElement.style.display == 'none' ) {
        element.style.backgroundImage = 'url(css/gfx/arrow_down.gif)';
    } else {       
        element.style.backgroundImage = 'url(css/gfx/arrow_up.gif)';                
    }
    
}

function setElementVisible( elementId ) {
    var element = new getObj( elementId );
    element.style.display = 'block';
}

function getElementVisible( elementId ) {
    var element = new getObj( elementId );
    if( element.style.display == 'none' )
        return( false );
    return( true );
}

function setElementHidden( elementId ) {
    var element = new getObj( elementId );
    element.style.display = 'none';
}

function enableFormElement( formNumber, elementName ) {
    var element = getFormElementByName( formNumber, elementName );
    element.disabled = false;
}

function disableFormElement( formNumber, elementName ) {
    var element = getFormElementByName( formNumber, elementName );
    element.disabled = true;
}

function getFormElementByName( formNumber, elementName ) {
    for( var i = 0; i < document.forms[formNumber].length; ++i ) {
        if( document.forms[formNumber].elements[i].name == elementName ) {
            return( document.forms[formNumber].elements[i] );
        }
    }
    return( null );
}

/**
 *	This function will return a DOM element by id 
 *	and should work in many browsers including very very
 *	old ones.
 *
 *	@param elementId The id of the element we wish to fetch.
 */
function getElementById( elementId ) {
    if( document.getElementById ) {
        return( document.getElementById( elementId ) );
    }
    else if( document.all ) {
        return( document.all[elementId] );
    }
    else if( document.layers ) {
        return( document.layers[elementId] )
    }
    return( null );
}

function getObj(name) {
    if (document.getElementById) {
        this.obj = document.getElementById(name);
        if( this.obj.style ) {
            this.style = this.obj.style
            document.getElementById(name).style;
        }
    }
    else if (document.all) {
        this.obj = document.all[name];
        this.style = document.all[name].style;
    }
    else if (document.layers) {
        this.obj = getObjNN4(document,name);
        this.style = this.obj;
    }
}

function getObjNN4(obj,name) {
    var x = obj.layers;
    var foundLayer;
    for (var i=0;i < x.length;i++) {
        if (x[i].id == name)
            foundLayer = x[i];
        else if (x[i].layers.length)
            var tmp = getObjNN4(x[i],name);
        if (tmp) foundLayer = tmp;
    }
    return foundLayer;
}

function rotateImage( id, images ) {
    var mainImage = document.getElementById( id );
    var newImageIndex = rand( images.length );
    mainImage.setAttribute( 'src', images[ newImageIndex ] );
}

/**
 *	A simple method to pick a random integer.  It generates
 *	a number between 0-(n-1)
 *
 * 	@param n The maximum value of the number exclusive.
 *	@return a randomly generated integer from 0 - (n - 1)
 */
function rand( n ) {
    return( Math.floor( Math.abs( Math.random() - 0.00001 ) * n ) );
}

/**
 *  Appends an email to the mailto: link if the checkbox ist clicked
 *
 */ 
function toggleEmail( id, email ) {
    checkBox = getElementById( id );    
    mailLink = getElementById( "mailLink" );
    var emails = new Array();
    var index = null;
    var temp = mailLink.href.substring( mailLink.href.indexOf( ":" ) + 1 );   
    emails = temp.split( "," );
    var out = "";       
    for( var i=0; i<emails.length; i++ ) {
        if( emails[i] != email && emails[i].length > 0 ) {
            out += emails[i] +",";
        }
        else if( emails[i] == email )
            index = i; {
                if( checkBox.checked && email.lenth > 0 ) {
                    out += emails[i] +",";
                }                
            }
    }
    if( index == null ) out += email +",";
    if( out.substring( out.length - 1 ) == "," ) 
        out = out.substring( 0, out.length -1 );
    mailLink.href = "mailto:" + out;
}

/**
 * This function is used by the sendMail() function and is necessary
 * to make it work in the IE
 */
function getElements(name) {
    var col = new Array();
    var inputs = document.getElementsByTagName('input');
    for (i=0;i<inputs.length;i++) {
 	var elem = inputs[i];
 	if (elem.name == name) {
 	 col.push(elem);
 	}
    }
    return col;
}

/**
 * Get email addresses from all checked checkboxes
 */
function sendMail( element ) {
    var checkBoxes = new Array(); 
    //mailLink = getElementById( "mailLink" );    
    //checkBoxes = document.getElementsByName( "address" );    
    checkBoxes = getElements('address');
    var counter = 0;
    var addresses = "";
    for( var i=0; i<checkBoxes.length; i++ ) {
        if( checkBoxes[i].checked ) {
            addresses += checkBoxes[i].value + ",";
            counter++;
        }
    }
    if( counter == 0 ) {
        alert( "No email address selected!" );
        //mailLink.href = "#";
        element.href = "#";
    }
    else {
        if( addresses.substring( addresses.length - 1 ) == "," ) {
            addresses = addresses.substring( 0, addresses.length -1 );
        }
        //mailLink.href = "mailto:" + addresses;    
        element.href = "mailto:" + addresses;    
     }
}


function checkAllCheckboxes() {
    var checkBoxes = new Array();    
    checkBoxes = document.getElementsByName( "address" );
    for( var i=0; i<checkBoxes.length; i++ )
    {
        checkBoxes[i].checked = true;
    }
}

function uncheckAllCheckboxes() {
    var checkBoxes = new Array();    
    checkBoxes = document.getElementsByName( "address" );
    for( var i=0; i<checkBoxes.length; i++ )
    {
        checkBoxes[i].checked = false;
    }
}
















