// lateapex.org
function filter(phrase, _id, cbState){
	var table = document.getElementById(_id);
    var ele1;
    var trackname;
	var filtercol;
	
	if(document.getElementById('filter_track').style.display == '')
	{
		// filter based on track
		filtercol = 1;
	}
	else if(document.getElementById('filter_org').style.display == '')
	{
		// filter based on organization
		filtercol = 2;
	}
	else
	{
		alert('error in filter');
		return;
	}	
	
	for (var r = 1; r < table.rows.length; r++){
        ele1 = table.rows[r].cells[0].innerHTML.replace(/<[^>]+>/g,"");

		// skip line if cell contains month or is blank
        if((ele1 == "january") ||
        (ele1 == "february") ||
        (ele1 == "march") ||
        (ele1 == "april") ||
        (ele1 == "may") ||
        (ele1 == "june") ||
        (ele1 == "july") ||
        (ele1 == "august") ||
        (ele1 == "september") ||
        (ele1 == "october") ||
        (ele1 == "november") ||
        (ele1 == "december") ||
        (ele1 == ""))
        {
            continue;
        }

        // now attempt to save trackname since we skipped past the month
        trackname = table.rows[r].cells[filtercol].innerHTML.replace(/<[^>]+>/g,"");

        var displayStyle = '';

        if(trackname.indexOf(phrase) >= 0)
        {
            if(cbState == true)
                displayStyle = '';
            else
                displayStyle = 'none';
        }
        else
            continue;

        table.rows[r].style.display = displayStyle;
    }
}

function fillLink(org){
	var strLink;
	
	strLink = "";
	if(org.match('100 speed'))
		strLink = "http://www.100-speed.com";
	else if(org.match('10/10ths'))
		strLink = "http://www.1010thsmotorsports.com";
	else if(org.match('predator'))
		strLink = "http://www.predatormotorsport.com";
	else if(org.match('nasa great lakes'))
		strLink = "http://www.nasagreatlakes.com";
	else if(org.match('nasa midwest'))
		strLink = "http://www.nasamidwest.com";
	else if(org.match('mvp tracktime'))
		strLink = "http://www.mvptracktime.com";
	else if(org.match('hoosier bmwcca'))
		strLink = "http://www.hoosierbmw.com";
	else if(org.match('chin'))
		strLink = "http://www.chinmotorsports.com";
	else if(org.match('indiana pca'))
		strLink = "http://www.cirpca.org";
	else if(org.match('kentucky bmwcca'))
		strLink = "http://www.bluegrassbimmers.org";
	else if(org.match('kentucky pca'))
		strLink = "http://www.kypca.org";
	else if(org.match('mid ohio pca'))
		strLink = "http://www.morpca.org";
	else if(org.match('ohio valley pca'))
		strLink = "http://www.ovrpca.org";
	else if(org.match('windy city bmwcca'))
		strLink = "http://www.windycitybmw.com";
	else if(org.match('michigan acna'))
		strLink = "http://www.audiclubmi.org";
	else if(org.match('3 balls racing'))
		strLink = "http://www.3ballsracing.com";
	else if(org.match('rally sport'))
		strLink = "http://rsp.pca.org";
	else if(org.match('detroit bmwcca'))
		strLink = "http://www.motorcitybmwcca.org";
	else if(org.match('west michigan pca'))
		strLink = "http://wmi.pca.org";
	else if(org.match('great lakes lotus'))
		strLink = "http://www.greatlakeslotus.com";
	else if(org.match('buckeye bmwcca'))
		strLink = "http://www.buckeyebmwcca.org";
	else if(org.match('alabama pca'))
		strLink = "http://ala.pca.org";
	else if(org.match('alabama bmwcca'))
		strLink = "http://www.albmwcca.org";
	else if(org.match('southeastern michigan pca'))
		strLink = "http://www.sempca.org";
	else if(org.match('chicago pca'))
		strLink = "http://www.pca-chicago.org";
	else if(org.match('central states ferrari'))
		strLink = "http://www.fcacentralstates.org";
	else if(org.match('northern ohio bmwcca'))
		strLink = "http://www.nohiobmwcca.org";
	else if(org.match('potomac pca'))
		strLink = "http://www.pcapotomac.org";
	else if(org.match('ohio valley scca'))
		strLink = "http://www.ovr-scca.org";
	else if(org.match('northern new jersey pca'))
		strLink = "http://www.nnjr-pca.com";
	else if(org.match('cincinnati scca'))
		strLink = "http://www.cincyscca.com";
	else if(org.match('alleghany pca'))
		strLink = "http://www.arpca.com";
	else if(org.match('northern ohio pca'))
		strLink = "http://www.norpca.org";
	else if(org.match('western ohio scca'))
		strLink = "http://www.worscca.org";
	else if(org.match('maumee pca'))
		strLink = "http://mm.pca.org";
	else
	{
		strOrgModified = org.replace(/\s/g, "+");
		strLink = "http://www.google.com/search?hl=en&q=" + strOrgModified;
	}
	
	document.write('<a class="extlink" target="_blank" href=' + strLink + '>link</a>');
}

function filtersearch (phrase, _id){
	var words = phrase.value.toLowerCase().split(" ");
	var table = document.getElementById(_id);
	var ele;
	var ele1;
	
	for (var r = 1; r < table.rows.length; r++){
		ele1 = table.rows[r].cells[0].innerHTML.replace(/<[^>]+>/g,"");

		// skip line if cell contains month or is blank
        if((ele1 == "january") ||
        (ele1 == "february") ||
        (ele1 == "march") ||
        (ele1 == "april") ||
        (ele1 == "may") ||
        (ele1 == "june") ||
        (ele1 == "july") ||
        (ele1 == "august") ||
        (ele1 == "september") ||
        (ele1 == "october") ||
        (ele1 == "november") ||
        (ele1 == "december") ||
        (ele1 == ""))
        {
            continue;
        }
		
		ele = table.rows[r].innerHTML.replace(/<[^>]+>/g,"");
        var displayStyle = 'none';

		for (var i = 0; i < words.length; i++) 
		{
		    if (ele.toLowerCase().indexOf(words[i])>=0)
				displayStyle = '';
		    else {
				displayStyle = 'none';
			
				break;
			}
	    }
		
		table.rows[r].style.display = displayStyle;
	}
}

function clearAll()
{
	var formIdent; 

	if(document.getElementById('filter_track').style.display == '')
	{
		// filtering based on track
		formIdent = document.getElementById('filter_track');
	}
	else
	{
		// filtering based on organization
		formIdent = document.getElementById('filter_org');
	}
	
    for(i = 0; i < formIdent.elements.length; i++)
    {
        if(formIdent.elements[i].type == "checkbox")
        {
            formIdent.elements[i].checked = false;
        }
    }
    
    updateList(formIdent);
}

function enableAll()
{
	var formIdent; 

	if(document.getElementById('filter_track').style.display == '')
	{
		// filtering based on track
		formIdent = document.getElementById('filter_track');
	}
	else
	{
		// filtering based on organization
		formIdent = document.getElementById('filter_org');
	}
	
    for(i = 0; i < formIdent.elements.length; i++)
    {
        if(formIdent.elements[i].type == "checkbox")
        {
            formIdent.elements[i].checked = true;
        }
    }
    
    updateList();
}

function updateList()
{
	var formName;
	
	if(document.getElementById('filter_track').style.display == '')
	{
		// filtering based on track
		formName = document.getElementById('filter_track');
		
		filter('bluegrass motorsports park', 'sf', formName.filt_bluegrass.checked, 1);
		filter('putnam park', 'sf', formName.filt_putnam.checked, 1);
		filter('grattan', 'sf', formName.filt_grattan.checked, 1);
		filter('mid ohio', 'sf', formName.filt_midohio.checked, 1);
		filter('gingerman', 'sf', formName.filt_gingerman.checked, 1);
		filter('virginia international raceway', 'sf', formName.filt_vir.checked, 1);
		filter('autobahn country club', 'sf', formName.filt_autobahn.checked, 1);
		filter('waterford hills', 'sf', formName.filt_waterford.checked, 1);
		filter('road atlanta', 'sf', formName.filt_roadatlanta.checked, 1);
		filter('blackhawk farms', 'sf', formName.filt_blackhawk.checked, 1);
		filter('summit point', 'sf', formName.filt_summitpoint.checked, 1);
		filter('watkins glen', 'sf', formName.filt_watkins.checked, 1);
		filter('carolina motorsports park', 'sf', formName.filt_cmp.checked, 1);		
	}
	else if(document.getElementById('filter_org').style.display == '')
	{
		// filtering based on organization
		formName = document.getElementById('filter_org');
		
		filter('pca', 'sf', formName.filt_pca.checked, 1);
		filter('bmw', 'sf', formName.filt_bmwcca.checked, 1);
		filter('acna', 'sf', formName.filt_acnavw.checked, 1);
		filter('audi', 'sf', formName.filt_acnavw.checked, 1);
		filter('vw', 'sf', formName.filt_acnavw.checked, 1);
		filter('ferrari', 'sf', formName.filt_otherclub.checked, 1);
		filter('lotus', 'sf', formName.filt_otherclub.checked, 1);

		filter('nasa', 'sf', formName.filt_nasascca.checked, 1);
		filter('scca', 'sf', formName.filt_nasascca.checked, 1);
		
		filter('10/10ths motorsports', 'sf', formName.filt_1010ths.checked, 1);
		filter('100 speed', 'sf', formName.filt_100speed.checked, 1);
		filter('winning formula', 'sf', formName.filt_winningformula.checked, 1);
		filter('mvp', 'sf', formName.filt_mvp.checked, 1);
		filter('trackdaze', 'sf', formName.filt_trackdaze.checked, 1);
		filter('chin', 'sf', formName.filt_trackdaze.checked, 1);
		filter('asphalt', 'sf', formName.filt_trackdaze.checked, 1);
		filter('turn one', 'sf', formName.filt_trackdaze.checked, 1);
		filter('cgi', 'sf', formName.filt_cgi.checked, 1);
		
		filter('predator', 'sf', formName.filt_otherevents.checked, 1);
		filter('faasst', 'sf', formName.filt_otherevents.checked, 1);
		filter('3 balls', 'sf', formName.filt_otherevents.checked, 1);
		filter('gingerman open track', 'sf', formName.filt_otherevents.checked, 1);
		filter('s2k cincinnati', 'sf', formName.filt_otherevents.checked, 1);
	}
	else if(document.getElementById('filter_search').style.display == '')
	{
		var table = document.getElementById('sf');
		
		// enable all rows when searching
		for (var r = 1; r < table.rows.length; r++)
		{
	        table.rows[r].style.display = '';
		}
	}
}

function showDiv(divname)
{
	// get main filter containers
	var trackdiv = document.getElementById('filter_track');
	var orgdiv = document.getElementById('filter_org');
	var searchdiv = document.getElementById('filter_search');
	
	// get link text
	var tracktext = document.getElementById('text_track');
	var orgtext = document.getElementById('text_org');
	var searchtext = document.getElementById('text_search');
	
	if(divname == "track")
	{
		// set display property
		trackdiv.style.display = '';
		orgdiv.style.display = 'none';
		searchdiv.style.display = 'none';
		
		// update color
		tracktext.style.color = "#fff";
		orgtext.style.color = "";
		searchtext.style.color = "";
		
		// update bottom border
		tracktext.style.borderBottom = '1px dashed #333';
		orgtext.style.borderBottom = 'none';
		searchtext.style.borderBottom = 'none';
	}
	else if(divname == "organization")
	{
		// set display property
		trackdiv.style.display = 'none';
		orgdiv.style.display = '';
		searchdiv.style.display = 'none';
		
		// update color
		tracktext.style.color = "";
		orgtext.style.color = "#fff";
		searchtext.style.color = "";
		
		// update bottom border
		tracktext.style.borderBottom = 'none';
		orgtext.style.borderBottom = '1px dashed #333';
		searchtext.style.borderBottom = 'none';
	}
	else if(divname == "search")
	{
		// set display property
		trackdiv.style.display = 'none';
		orgdiv.style.display = 'none';		
		searchdiv.style.display = '';
		
		// update color
		tracktext.style.color = "";
		orgtext.style.color = "";
		searchtext.style.color = "#fff";
		
		// update bottom border
		tracktext.style.borderBottom = 'none';
		orgtext.style.borderBottom = 'none';
		searchtext.style.borderBottom = '1px dashed #333';
	}
	
	// now update based on checked items within each shown div
	updateList();
}

function myfunc(elem, _id)
{
	var words;
	var table = document.getElementById(_id);
	var ele,current,next;
	var mar,apr,may,jun,jul,aug,sep,oct,nov;
	var r;
	
	// save current row index
	current = elem.rowIndex;
	
	// save row locations for each month
	for (r = 1; r < table.rows.length; r++)
	{
		ele = table.rows[r].cells[0].innerHTML.replace(/<[^>]+>/g,"");
		
		if (ele.toLowerCase().indexOf('march')>=0)
			mar = r;
		else if (ele.toLowerCase().indexOf('april')>=0)
			apr = r;
		else if (ele.toLowerCase().indexOf('may')>=0)
			may = r;
		else if (ele.toLowerCase().indexOf('june')>=0)
			jun = r;
		else if (ele.toLowerCase().indexOf('july')>=0)
			jul = r;
		else if (ele.toLowerCase().indexOf('august')>=0)
			aug = r;
		else if (ele.toLowerCase().indexOf('september')>=0)
			sep = r;
		else if (ele.toLowerCase().indexOf('october')>=0)
			oct = r;
		else if (ele.toLowerCase().indexOf('november')>=0)
			nov = r;
	}
	
	// determine next element
	if(current == mar) 
		next = apr;
	else if(current == apr) 
		next = may;
	else if(current == may) 
		next = jun;
	else if(current == jun) 
		next = jul;
	else if(current == jul)
		next = aug;
	else if(current == aug) 
		next = sep;
	else if(current == sep)
		next = oct;
	else if(current == oct) 
		next = nov;
	else if(current == nov) 
		next = table.rows.length+1;

	// toggle display
	for (r = current+1; r < next-1; r++)
	{
		if(table.rows[r].style.display == '')
			table.rows[r].style.display = 'none';
		else if(table.rows[r].style.display == 'none')
			table.rows[r].style.display = '';
	}
}