person_info = new Array( );

person_info["atlarge5@gmaa.net"] = new Array( );
person_info["atlarge5@gmaa.net"]["name"] = "Matt Dall";
person_info["atlarge5@gmaa.net"]["phone"] = "(802) 872-9799";

person_info["atlarge1@gmaa.net"] = new Array( );
person_info["atlarge1@gmaa.net"]["name"] = "Courtney Kutler";

person_info["treasurer@gmaa.net"] = new Array( );
person_info["treasurer@gmaa.net"]["name"] = "Norm Larson";
person_info["treasurer@gmaa.net"]["phone"] = "(802) 658-1263";

person_info["president@gmaa.net"] = new Array( );
person_info["president@gmaa.net"]["name"] = "Jessica Cover";
person_info["president@gmaa.net"]["phone"] = "(802) 373-4762";

jobs = new Array( );


jobs['clothing_coord'] = 'atlarge1@gmaa.net';

jobs['workout_indoor_coord']='atlarge5@gmaa.net';
jobs['workout_bhs_coord']='president@gmaa.net';

jobs['treasurer'] ='treasurer@gmaa.net';
jobs['president'] ='president@gmaa.net';

jobs['gmaa_racekit_interface'] = new Array( );
jobs['gmaa_racekit_interface']['email']='joelribout@gmail.com';
jobs['gmaa_racekit_interface']['name']='Joel Ribout';
jobs['gmaa_racekit_interface']['phone']='(802) 233-3829';


jobs['publicity'] = new Array( );
jobs['publicity']['email']='publicity@gmaa.net';
jobs['publicity']['name']='Leigh Chandler';

jobs['membership'] = new Array( );
jobs['membership']['email']='membership@gmaa.net';
jobs['membership']['name']='Bob Sayers';
jobs['membership']['phone']='(802) 355-9702';


jobs['workout_intervals'] = new Array( );
jobs['workout_intervals']['email']='debbietirrito@yahoo.com';
jobs['workout_intervals']['name']='Deb and Vic Tirrito';
jobs['workout_intervals']['phone']='(802) 655-5226';

jobs['workout_sunday_longrun'] = new Array( );
jobs['workout_sunday_longrun']['email']='hkalfus@comcast.net';
jobs['workout_sunday_longrun']['name']='Howard Kalfus';
jobs['workout_sunday_longrun']['phone']='(802) 864-5869';




results_years = new Array( );
races = new Array( );
race_distances = new Array( );
gp = new Array( );
perf = new Array( );
var news_items = new Array;
var cur_news = -1;
var first = true;
var newsTimer;
function showNews( item ) {
    cur_news = item;
    document.getElementById( 'current_news_item' ).innerHTML = news_items[ item ];
    for ( var i = 0; i < news_items.length; i++ ) {
        document.getElementById( 'newsitem_' + i  ).style.backgroundColor="#FFF";
    }
    document.getElementById( 'newsitem_' + item ).style.backgroundColor="#FFFFCC";
}

function nextNews( ) {
    newsTimer = null;
        cur_news = cur_news + 1;
        if ( cur_news >= news_items.length ) {
            cur_news = 0;
        }
        
        showNews( cur_news );
        restartNews( );
}

function restartNews( ) {

    
    if ( !newsTimer ) {
        newsTimer = setTimeout( nextNews, 5000 );
    }
    
}



function getXmlHttp() {
    var req = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
    	try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
    return req;
}
function stopNews( ) {
    if(newsTimer)
	{
		window.clearTimeout(newsTimer);
		newsTimer = null;
	}
}


function loadForum( ) {

    var forum_request =  getXmlHttp( );

    var url = 'rssproxy.php?url=' + escape( 'http://www.activeboard.com/rss.spark?forumID=82168' );//forum.xml';
    forum_request.open("GET", url, true);
    forum_request.onreadystatechange = function( ) {

        if ( forum_request.readyState == 4) {

var xml = null;
if ( forum_request.responseXML != null ) {
xml = forum_request.responseXML;
} else {
    parser=new DOMParser();
    xml=parser.parseFromString(forum_request.responseText,"text/xml");
}

            var channel = xml.getElementsByTagName('channel')[0];

                var channel_title = channel.getElementsByTagName('title')[0].firstChild.nodeValue;

                var out ='';
                
				// add the RSS title to the page
                out ='';

                out += '<table>';                

				var items = channel.getElementsByTagName('item');
				
				for (var i = 0; i < items.length; i++) {
                    out += '<tr>';
                    out += '<td onclick="javascript:animatedcollapse.toggle(\'div_' + i + '\')">';
                    out += items[i].getElementsByTagName('title')[0].firstChild.nodeValue;
                    out += '<div id="div_' + i + '" style="left: 20px; width: 270px; background: #FFFFCC; display:none">';
                    out += items[i].getElementsByTagName('description')[0].firstChild.nodeValue;
                    out += '<a href="' + items[i].getElementsByTagName('link')[0].firstChild.nodeValue + '">(more)</a>'
                    out += '</div>'
                    out += '</td>'
                    out += '</tr>'
				}
                out += '</table>';
                
                document.getElementById('forum_items').innerHTML= out;
                for (var i = 0; i < items.length; i++) {
                    animatedcollapse.addDiv('div_' + i, 'fade=1,height=80px');
                }
                animatedcollapse.init();
        }

    };
    forum_request.send("");

}


function loadNews( ) {
    var myrequest = getXmlHttp( );
    var url = 'rssproxy.php?url=' + escape( 'news.php' );//forum.xml';

    myrequest.open("GET", url, true);
    myrequest.onreadystatechange = function( ) {
        if ( myrequest.readyState == 4) {

            var newsid = document.getElementById( "news_table" );
var xml = null;
if ( myrequest.responseXML != null ) {
xml = myrequest.responseXML;
} else {
    parser=new DOMParser();
    xml=parser.parseFromString(myrequest.responseText,"text/xml");
}

            var items = xml.getElementsByTagName('item');				
var out='';
			for (var i = 0; i < items.length && i < 10; i++) {
out += '<div id="newsitem_' + i + '" onmouseover="showNews('+i+');stopNews();" onmouseout="restartNews();">';
out += items[i].getElementsByTagName('title')[0].firstChild.nodeValue  + '</div>\n';
                news_items[i] = items[i].getElementsByTagName('description')[0].firstChild.nodeValue;

			}

                 newsid.innerHTML = out;

            if ( first ) {
                nextNews( );
            }
            loadForum();
        }

    };
    myrequest.send("");

}


var firstId;
var currId;
var cancelPendingChangeFlag;
var hidesubTimer;
function hidesubmenu( event ) {
    if ( hidesubTimer == null ) {
        mytop = document.getElementById( "submenu" );
        node = event.relatedTarget;
        if ( node == null ) {
            node = event.toElement;
        }

        while( node != null && node.id != currId && node != mytop ) {
            //go up the tree
            node = node.parentNode;
        }

        if ( node == null ) {
            hidesubTimer = setTimeout( clearsubmenu, 100 );
        }
    }    
}

function clearsubmenu( ) {
    if ( !cancelPendingChangeFlag ) {
        showsubmenu( firstId );
    }
    
    hidesubTimer = null;
    cancelPendingChangeFlag = false;
}

function cancelPendingChange( ) {    
    if(hidesubTimer)
	{
        
		window.clearTimeout(hidesubTimer);
        
		hidesubTimer = null;
        
	}
    
}


function loadMenus( ) {
    var menu_request =  getXmlHttp( );
    var re = /.*admin.*/i;
    if ( re.test(document.location.href) ) {
        return;
    }

    var url = 'results_xml.php';
    menu_request.open("GET", url, true);
    menu_request.onreadystatechange = function( ) {

        if ( menu_request.readyState == 4) {
           var xml = null;
           if ( menu_request.responseXML != null ) {
               xml = menu_request.responseXML;
           } else {
               parser=new DOMParser();
               xml=parser.parseFromString(menu_request.responseText,"text/xml");
           }

           
		var races_ = xml.getElementsByTagName('race');
                


		for (var i = 0; i < races_.length; i++) {
                   if ( races_[i].getElementsByTagName( 'race-name' ).length > 0 && races_[i].getElementsByTagName( 'race-name' )[0].firstChild != null ) {
                    var year = races_[i].getElementsByTagName( 'race-year' )[0].firstChild.nodeValue ;
                    var name = races_[i].getElementsByTagName( 'race-name' )[0].firstChild.nodeValue ;
                    var dist = null;
                    if ( races_[i].getElementsByTagName( 'race-distance' ) != null && races_[i].getElementsByTagName( 'race-distance' )[0] && races_[i].getElementsByTagName( 'race-distance' )[0].firstChild ) {
                        dist = races_[i].getElementsByTagName( 'race-distance' )[0].firstChild.nodeValue ;
                    }

                    var id = races_[i].getElementsByTagName( 'race-id' )[0].firstChild.nodeValue ;
                    var doit = true;
                    if ( dist != undefined && dist != '' && dist != null) {
                       if ( race_distances[ id ] == undefined ) {                              
                            race_distances[ id ] = new Array( );
                       } else {
                            doit = false;
                       }
                       race_distances[ id ].push( dist ); 
                    }
                    if ( races[year] == undefined ) {
                       results_years.push( year );
                       races[year ] = new Array( );
                    }

                    if ( doit ) {
                       races[year ].push( id +',' + name );
                    }
                   }
		}
                var gp_ = xml.getElementsByTagName('grand-prix' );
		for (var i = 0; i < gp_.length; i++) {
                    var year = gp_[i].firstChild.nodeValue ;
                    if ( races[year] == undefined && gp[year] == undefined) {
                       results_years.push( year );
                    }
                    gp[year ] = 1;
		}               
                var perf_ = xml.getElementsByTagName('performance' );
		for (var i = 0; i < perf_.length; i++) {
                    var year = perf_[i].firstChild.nodeValue ;
                    if ( races[year] == undefined && gp[year] == undefined && perf[year]==undefined) {
                       results_years.push( year );
                    }
                    perf[year ] = 1;
		}               

                if ( firstId == 'Results' ) {
                    showsubmenu( firstId );


                }
                
        }

    };
    menu_request.send("");

}

function showfirstsubmenu( id ) {
    firstId = id;
    showsubmenu( id );
}

function showsubmenu( id ) {
    
    if ( document.getElementById( id ) == null ) {
        document.getElementById( 'submenu' ).innerHTML = '';
        return;
    }

    if ( firstId == null ) {
        firstId = id;
        loadMenus();
    }
    if ( currId != null ) {
          document.getElementById( currId ).className = '';
    }
    currId = id;


    document.getElementById( currId ).className = 'active';
    var submenu = document.getElementById( 'submenu' );
    if ( id == "Home" ) {        
        submenu.innerHTML='<div onmouseout="hidesubmenu(event);"><a href="#">News</a></div><div onmouseout="hidesubmenu(event);"><a href="http://www.activeboard.com/forum.spark?forumID=82168">Forum</a></div><div onmouseout="hidesubmenu(event);"><a href="calendar.shtml" alt="GMAA Calendar">Calendar</a></div>';        
    } else if ( id == "Schedule" ) {        
        submenu.innerHTML='<div onmouseout="hidesubmenu(event);"><a href="schedule.php">GMAA Races</a></div><div onmouseout="hidesubmenu(event);"><a href="schedule.php?type=team">Team Races</a></div><div onmouseout="hidesubmenu(event);"><a href="schedule.php?type=perf">Performance Races</a></div><div onmouseout="hidesubmenu(event);"><a href="training.php">Training</a></div></div>';        
    } else if (id == "Results") {

        var out = '';
        for ( var i = 0; i < results_years.length && i < 10; i++ ) {
            out += '<div  onmouseover="showMenu(\'' + results_years[i] + '\')" onmouseout="closetime(event)" style="z-index:2;"><a href="results.php?YEAR=' + results_years[i] +'">' + results_years[i] + '</a>';
            out += '<div id="' + results_years[i] +'" onmouseover="cancelclosetime()" onmouseout="closetime(event);" style="position: absolute; visibility: hidden; margin: 0; padding: 0; background: #EAEBD8; border: 1px solid #5970B2; color: #fff;">';            
            for ( var j = 0; j < races[results_years[i] ].length; j++ ) {
                var z = races[results_years[i] ][j];
                var raceid = races[results_years[i] ][j].split(',')[0];
                var racename = races[results_years[i] ][j].split(',')[1];
                if ( race_distances[ raceid ] != undefined && race_distances[ raceid ].length > 1 ) {
                   for( var y = 0; y < race_distances[raceid].length; y++ ) {
                      out += '<a href="results.php?raceid=' + raceid + '&dist=' + race_distances[raceid][y] + '"  onmouseover="cancelclosetime()" onmouseout="closetime(event);" style="position: relative; display: block; margin: 0; padding: 5px 10px; width: auto; white-space: nowrap; text-align: left; text-decoration: none; background: #EAEBD8; color: #2875DE; font: 11px arial">' + racename + ' - ' + race_distances[raceid][y]+'</a>';
                   }
                } else {
                   out += '<a href="results.php?raceid=' + raceid + '"  onmouseover="cancelclosetime()" onmouseout="closetime(event);" style="position: relative; display: block; margin: 0; padding: 5px 10px; width: auto; white-space: nowrap; text-align: left; text-decoration: none; background: #EAEBD8; color: #2875DE; font: 11px arial">' + racename + '</a>';
                }
            }
            if ( gp[ results_years[i] ] == 1 ) {
                out += '<a href="results.php?YEAR=' + results_years[i]+ '&type=GP"  onmouseover="cancelclosetime()" onmouseout="closetime(event);" style="position: relative; display: block; margin: 0; padding: 5px 10px; width: auto; white-space: nowrap; text-align: left; text-decoration: none; background: #EAEBD8; color: #2875DE; font: 11px arial">Grand Prix Series</a>';
            }
            if ( perf[ results_years[i] ] == 1 ) {
                out += '<a href="results.php?YEAR=' + results_years[i]+ '&type=PERF"  onmouseover="cancelclosetime()" onmouseout="closetime(event);" style="position: relative; display: block; margin: 0; padding: 5px 10px; width: auto; white-space: nowrap; text-align: left; text-decoration: none; background: #EAEBD8; color: #2875DE; font: 11px arial">Performance Series</a>';
            }
            out += '</div>';
            out += '</div>';
        }
        if ( results_years.length > 10 ) {
            out += '<div><a href="results.php?archives=true">Archives</a></div>'
        }
        submenu.innerHTML = out;
    } else if ( id == "Team" ) {
        submenu.innerHTML='<div onmouseout="hidesubmenu(event);"><a href="teamschedule.php">Team Schedule</a></div><div onmouseout="hidesubmenu(event);"><a href="team_results.php">Team Results</a></div></div>';        
    } else if ( id == "Members" ) {
        submenu.innerHTML='<div onmouseout="hidesubmenu(event);"><a href="newsletters.php">Newsletters</a></div><div onmouseout="hidesubmenu(event);"><a href="discounts.shtml">Discounts</a></div><div onmouseout="hidesubmenu(event);"><a href="training.php">Training</a></div><div onmouseout="hidesubmenu(event);"><a href="clothing.shtml">Clothing</a></div><div onmouseout="hidesubmenu(event);"><a href="links.php">Useful Links</a></div></div>';        
    } else if ( id == "About" ) {
        submenu.innerHTML='<div onmouseout="hidesubmenu(event);"><a href="governance.shtml">Governance</a></div><div onmouseout="hidesubmenu(event);"><a href="officers.shtml">Officers</a></div><div onmouseout="hidesubmenu(event);"><a href="history.php">History</a></div><div onmouseout="hidesubmenu(event);"><a href="policies.shtml">Policies</a></div><div onmouseout="hidesubmenu(event);"><a href="racedirs.shtml">Race Directors</a></div><div onmouseout="hidesubmenu(event);"><a href="volunteer.php">Volunteer</a></div></div>';        
    } else {
         submenu.innerHTML='&nbsp;';
    }

}



var timeout	= 250;
var closetimer	= 0;
var ddmenuitem	= 0;

// open hidden layer
function showMenu(id)
{	
    cancelclosetime()

    if ( ddmenuitem ) {
        if ( ddmenuitem.id == id ) {
            return;
        }
    }
    

	// close old layer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';
//alert( 'showing menu ' + id );
}
// close showed layer
function hideMenu()
{
        

        
    //alert( 'hiding menu' );
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
    ddmenuitem = 0;
}



// go close timer
function closetime(event)
{
    node = event.relatedTarget;
        while( node != null && node != ddmenuitem ) {
            //go up the tree
            node = node.parentNode;
        }
    //alert( 'in close timer' );
        if ( node == null ) {
            closetimer = window.setTimeout(hideMenu, timeout);
        }
	
}

function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}

// cancel close timer
function cancelclosetime()
{
	if(closetimer)
	{
        
		window.clearTimeout(closetimer);
        
		closetimer = null;
        
	}
}


document.onclick = hideMenu; 

function isArray(obj) {
   if ( !obj ) return false;
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}

function getCoordinator( mydiv, title, output ) {
if ( !output ) {

output = '<!--name--> <!--has_emailemail. <a href="mailto:<!--email-->"><!--email--></a>has_email--> <!--has_phoneph. <!--phone-->has_phone-->';
}
var out = output;

var email=undefined;
if ( isArray( jobs[title] ) ) {
   if ( jobs[title]['email'] ) {
       email = jobs[title]['email'];
   }
} else {
   email = jobs[title];
}



var name=undefined;
if ( isArray( jobs[title] ) && jobs[title]['name'] != undefined ) {
   name = jobs[title]['name'];
} else if ( email && person_info[email] && person_info[email]['name'] ) {
   name = person_info[email]['name'];
}


var phone = undefined;
if ( isArray( jobs[title] ) && jobs[title]['phone'] != undefined) {
 if ( jobs[title]['phone'] != 'N' ) {
    phone = jobs[title]['phone'];
 }
} else if ( email && person_info[email] && person_info[email]['phone'] ) {
   phone = person_info[email]['phone'];
}


if ( name ) {
  out = out.replace( /[<][!][-][-]name[-][-][>]/g, name );
  out = out.replace( /[<][!][-][-]has_name/g, '' );
  out = out.replace( /has_name[-][-][>]/g, '' );
}


if ( email ) {
  out = out.replace( /[<][!][-][-]email[-][-][>]/g, email );
  out = out.replace( /[<][!][-][-]has_email/g, '' );
  out = out.replace( /has_email[-][-][>]/g, '' );
}
if ( phone ) {
//   out += ' ph. ' + phone;
  out = out.replace( /[<][!][-][-]phone[-][-][>]/g, phone );
  out = out.replace( /[<][!][-][-]has_phone/g, '' );
  out = out.replace( /has_phone[-][-][>]/g, '' );
}
mydiv.innerHTML=out;


}

function getClothingCoordinator( mydiv, title ) {
getCoordinator( mydiv, title );
}

function fillRaceInfo( form, prefix, year ) {
    var menu_request =  getXmlHttp( );

    var url = 'race_info.php?raceid=' + prefix + year;
    menu_request.open("GET", url, true);
    menu_request.onreadystatechange = function( ) {

        if ( menu_request.readyState == 4) {
           var xml = null;
           if ( menu_request.responseXML != null ) {
               xml = menu_request.responseXML;
           } else {
               parser=new DOMParser();
               xml=parser.parseFromString(menu_request.responseText,"text/xml");
           }
           var races_ = xml.getElementsByTagName('race-info');
           var i = 0;
           if ( !races_[i] || !races_[i].getElementsByTagName( 'race-name' ) ) {
                return;
           }

           var name = races_[i].getElementsByTagName( 'race-name' )[0].firstChild.nodeValue ;
           form.name.value = name;
           var date = races_[i].getElementsByTagName( 'race-date' )[0].firstChild.nodeValue ;
           form.date.value = date;
           var racefulldesc = races_[i].getElementsByTagName( 'race-fulldesc' )[0].firstChild.nodeValue ;
           form.fulldesc.value = racefulldesc;
           var racedesc = races_[i].getElementsByTagName( 'race-desc' )[0].firstChild.nodeValue ;
           form.desc.value = racedesc;
           var gmaa = races_[i].getElementsByTagName( 'gmaa')[0].firstChild.nodeValue ;
           form.gmaa.checked = ("Y" == gmaa);
           var team = races_[i].getElementsByTagName( 'team' )[0].firstChild.nodeValue ;
           form.team.checked = ("Y" == team );
           var performance = races_[i].getElementsByTagName( 'performance' )[0].firstChild.nodeValue ;
           form.performance.checked = ("Y" == performance);
           var distances = races_[i].getElementsByTagName( 'distance' );
           for (var j = 0; j < distances.length; j++) {
                 for( var z = 0; z < document.getElementById( 'distances' ).options.length; z++ ) {
                     if ( document.getElementById( 'distances' ).options[z].value == distances[ j ].firstChild.nodeValue ) {
                          document.getElementById( 'distances' ).options[z].selected = true;
                     }
                 }
           }

                
        }

    };
    menu_request.send("");


}