Event.observe(window, 'load', function(){
    // Track outgoing clicks
    var countries=document.getElementById('countries');
    var links=countries.getElementsByTagName('a');
    
    function fireMicroEvent(triggerEvent,countryId)
    {
        //console.debug('%s clicked',countryId);

        var event= new Object({
            page: s.pageName,
            slot: '',
            feature: 'Country',
            part: '',
            action: 'Selected: '+countryId
        });
        
        var evar5= [event.page, event.slot, event.feature, event.part, event.action].join(' | ');
        var linkname= [event.feature, event.part, event.action].join(' | ');

        // save the current settings
        var oriTrackVars = s.linkTrackVars;
        var oriTrackEvents = s.linkTrackEvents;
        var oriEvar5 = s.eVar5;
    
        try {
            // set up variables for custom link tracking
            s.linkTrackVars='eVar5';
            s.linkTrackEvents='None';
            s.eVar5 = evar5;
    
            //console.debug("Omniture reportCustomLink\n"+evar5);
            s.tl(event.node||null,'o', linkname);
        }
        finally {
            // restore the original settings
            s.linkTrackVars = oriTrackVars;
            s.linkTrackEvents = oriTrackEvents;
            s.eVar5 = oriEvar5;
        }

        // Omniture tracking is asynchronous and doesn't offer
        // any support for callbacks, so we add a delay of 500ms to be sure,
        // then update the window manually
		Event.stop(triggerEvent);
    	var target = triggerEvent.target || triggerEvent.srcElement;
    	(function(){
    		window.location = target.href;
    	}).delay(500);

    }
    
    function registerObserver(link)
    {
        var linkId=link.id;
        if (linkId)
        {
            var handler=fireMicroEvent.bindAsEventListener(this,linkId);
            Event.observe(link,'click',handler);
        }
    }
    
    Array.forEach(links,registerObserver);
});