function changeLanguage(lang) {
	var currentUrl = document.location.href;
	re1 = new RegExp("^(http://[^/]+/)([a-z]{2})(/.*)$","i");
	re2 = new RegExp("^(http://[^/]+/)([a-z]{2})$","i");
	if (re1.test(currentUrl)) {
		newUrl=currentUrl.replace(re1,"$1"+lang+"$3");
	} else if (re2.test(currentUrl)) {
		newUrl=currentUrl.replace(re2,"$1"+lang+"/");
	}
	document.location.href=newUrl;
}

function submitForm( theFormId ) {
	document.getElementById( theFormId ).submit();
}


// Copyright � 2000 by Apple Computer, Inc., All Rights Reserved.
//
// You may incorporate this Apple sample code into your own code
// without restriction. This Apple sample code has been provided "AS IS"
// and the responsibility for its operation is yours. You may redistribute
// this code, but you are not permitted to redistribute it as
// "Apple sample code" after having made changes.
//
// ************************
// layer utility routines *
// ************************

function getStyleObject(objectId) {
    // cross-browser function to get an object's style object given its id
    if(document.getElementById && document.getElementById(objectId)) {
	// W3C DOM
	return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
	// MSIE 4 DOM
	return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
	// NN 4 DOM.. note: this won't find nested layers
	return document.layers[objectId];
    } else {
	return false;
    }
} // getStyleObject

function changeObjectVisibility(objectId, newVisibility) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.visibility = newVisibility;
	return true;
    } else {
	// we couldn't find the object, so we can't change its visibility
	return false;
    }
} // changeObjectVisibility


function setVisibility(id,mode) {
	if (document.getElementById) {
		document.getElementById(id).style.display=mode;
	}
}

function toggleDisplay(objectId) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
		if (styleObject.display=='block') {
			styleObject.display='none';
		} else {
			styleObject.display='block';
		}
		return true;
    } else {
		// we couldn't find the object, so we can't change its visibility
		return false;
    }
} 


function changeObjectDisplay ( objectId, newDisplay ) {
    var styleObject = getStyleObject( objectId );
    if( styleObject ) {
		styleObject.display = newDisplay;
		return true;
    } else {
		return false;
    }
} // changeObjectDisplay

function moveObject(objectId, newXCoordinate, newYCoordinate) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.left = newXCoordinate;
	styleObject.top = newYCoordinate;
	return true;
    } else {
	// we couldn't find the object, so we can't very well move it
	return false;
    }
} // moveObject


// Copyright � 2000 by Apple Computer, Inc., All Rights Reserved.
//
// You may incorporate this Apple sample code into your own code
// without restriction. This Apple sample code has been provided "AS IS"
// and the responsibility for its operation is yours. You may redistribute
// this code, but you are not permitted to redistribute it as
// "Apple sample code" after having made changes.
// ********************************
// application-specific functions *
// ********************************

// store variables to control where the popup will appear relative to the cursor position
// positive numbers are below and to the right of the cursor, negative numbers are above and to the left
var xOffset = 5;
var yOffset = -5;

function showPopup (targetObjectId, eventObj) {
    if(eventObj) {
	// hide any currently-visible popups
	hideCurrentPopup();
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
	var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
	moveObject(targetObjectId, newXCoordinate, newYCoordinate);
	// and make it visible
	if( changeObjectVisibility(targetObjectId, 'visible') ) {
	    // if we successfully showed the popup
	    // store its Id on a globally-accessible object
	    window.currentlyVisiblePopup = targetObjectId;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup

function showPopupNoMove (targetObjectId, eventObj) {
    if(eventObj) {
		hideCurrentPopup();
		eventObj.cancelBubble = true;
		if( changeObjectVisibility(targetObjectId, 'visible') ) {
			window.currentlyVisiblePopup = targetObjectId;
			return true;
		} else {
			return false;
		}
    } else {
		return false;
    }
} // showPopupNoMove

function displayPopup ( targetObjectId, eventObj ) {
	alert( targetObjectId );
    if(eventObj) {
		hideCurrentPopup();
		eventObj.cancelBubble = true;
		if ( changeObjectDisplay( targetObjectId, 'block' ) ) {
			window.currentlyDisplayedPopup = targetObjectId;
			return true;
		} else {
			return false;
		}
    } else {
		return false;
    }
}

function hideCurrentPopup() {
    // note: we've stored the currently-visible popup on the global object window.currentlyVisiblePopup
    if(window.currentlyVisiblePopup) {
	changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
	window.currentlyVisiblePopup = false;
    }
    
    // added
    if ( window.currentlyDisplayedPopup ) {
    	changeObjectDisplay( window.currentlyDisplayedPopup, 'none' );
    	window.currentlyDisplayedPopup = false;
    }
} // hideCurrentPopup


