// CATEGORIES PAGE FUNCTIONS

// Categories list initialization 
// Setting up onclick events and hiding descriptions of categories




/*---------------------------- START criteria -------------------------*/
var criteriaOpened = false;

// Setting up onclick events and hiding descriptions of Criteria

function initCriteria()
{
  var i;
  var Criteria;
  var criteria;
  var criteriaName;
  
  Criteria = document.getElementById('CriteriaList').getElementsByTagName('li');
  for (i = 0; i < Criteria.length; i++) {
  
    criteria = Criteria[i].getElementsByTagName('a');
    if (criteria.length) {
    
      criteriaName = criteria[0].href.substr(criteria[0].href.lastIndexOf('#') + 1);
      if (document.getElementById(criteriaName)) {
      
        document.getElementById(criteriaName).style.display = 'none';
        
        if(window.addEventListener){ // Browsers
          Criteria[i].addEventListener('click', showHidecriteria, false);
          Criteria[i].addEventListener('mouseover', criteriaMouseOverEffect, false);   /*Rich add*/
          Criteria[i].addEventListener('mouseout', criteriaMouseOutEffect, false);   /*Rich add*/
        } else { // IE
          Criteria[i].attachEvent('onclick', showHidecriteria);
          Criteria[i].attachEvent('onmouseover', criteriaMouseOverEffect);  /*Rich add*/
          Criteria[i].attachEvent('onmouseout', criteriaMouseOutEffect);  /*Rich add*/
        }
        criteria[0].onclick = function() {
			return false;
		};
        
        Criteria[i].id = 'list_' + criteriaName;
        
      }
      
    }
    
  }
  
  criteriaOpened = false;
}

function criteriaMouseOverEffect(e) {
  /*Rich add*/
  var criteria;
  criteria = e.target ? e.target : e.srcElement;
  
  if (criteria.nodeName != 'LI') {
    criteria = criteria.parentNode;
  }
  
  criteria.className = 'active';
   

  
}

function criteriaMouseOutEffect(e) {
  /*Rich add*/
	
  var criteria;
  criteria = e.target ? e.target : e.srcElement;
  criteria.className = '';
  
  if (criteria.nodeName != 'LI') {
    criteria = criteria.parentNode;
  }

  
}


// Criteria - show/hide descriptions 
// If the criteria's description is visible then className == active; if not visible className == '' 
function showHidecriteria(e)
{

  var initial_text_div = document.getElementById('starter_criteria_text');	//Rich add - initial text
  var criteria;
  var criteriaName;
  
  criteria = e.target ? e.target : e.srcElement;
  
  if (criteria.nodeName != 'LI') {
    criteria = criteria.parentNode;
  }
  
  criteria.className = (criteria.className == 'active') ? 'active' : '';	/*Rich change swap-->active*/
  
  criteria = criteria.getElementsByTagName('a');
  if (criteria.length) {
    
	criteriaName = criteria[0].href.substr(criteria[0].href.lastIndexOf('#') + 1);
    if (document.getElementById(criteriaName)) {
		
		  if (document.getElementById(criteriaName).style.display == 'block') {
			document.getElementById(criteriaName).style.display = 'none';
			criteriaOpened = false;
		  }else {
			if (criteriaOpened) {
			  document.getElementById('list_' + criteriaOpened).className = '';
			  document.getElementById(criteriaOpened).style.display = 'none';
			}
			
			initial_text_div.style.display = 'none';	//Rich add - take out initial text
			document.getElementById(criteriaName).style.display = 'block';
			criteriaOpened = criteriaName;
		  }
	  
    
	}
  }
  
  return false;
}
/*---------------------------- END criteria -------------------------*/




/*---------------------------- START News -------------------------*/
var newsOpened = false;

// Setting up onclick events and hiding descriptions of News

function initNews()
{
  var i;
  var News;
  var news;
  var newsName;
  
  News = document.getElementById('NewsList').getElementsByTagName('li');
  for (i = 0; i < News.length; i++) {
  
    news = News[i].getElementsByTagName('a');
    if (news.length) {
    
      newsName = news[0].href.substr(news[0].href.lastIndexOf('#') + 1);
      if (document.getElementById(newsName)) {
      
        document.getElementById(newsName).style.display = 'none';
        
        if(window.addEventListener){ // Browsers
          News[i].addEventListener('click', showHidenews, false);
          News[i].addEventListener('mouseover', newsMouseOverEffect, false);   /*Rich add*/
          News[i].addEventListener('mouseout', newsMouseOutEffect, false);   /*Rich add*/
        } else { // IE
          News[i].attachEvent('onclick', showHidenews);
          News[i].attachEvent('onmouseover', newsMouseOverEffect);  /*Rich add*/
          News[i].attachEvent('onmouseout', newsMouseOutEffect);  /*Rich add*/
        }
        news[0].onclick = function() {
			return false;
		};
        
        News[i].id = 'list_' + newsName;
        
      }
      
    }
    
  }
  
  newsOpened = false;
}

function newsMouseOverEffect(e) {
  /*Rich add*/
  var news;
  news = e.target ? e.target : e.srcElement;
  
  if (news.nodeName != 'LI') {
    news = news.parentNode;
  }
  
  news.className = 'active';
   

  
}

function newsMouseOutEffect(e) {
  /*Rich add*/
	
  var news;
  news = e.target ? e.target : e.srcElement;
  news.className = '';
  
  if (news.nodeName != 'LI') {
    news = news.parentNode;
  }

  
}


// News - show/hide descriptions 
// If the news's description is visible then className == active; if not visible className == '' 
function showHidenews(e)
{

  var initial_text_div = document.getElementById('starter_news_text');	//Rich add - initial text
  var news;
  var newsName;
  
  news = e.target ? e.target : e.srcElement;
  
  if (news.nodeName != 'LI') {
    news = news.parentNode;
  }
  
  news.className = (news.className == 'active') ? 'active' : '';	/*Rich change swap-->active*/
  
  news = news.getElementsByTagName('a');
  if (news.length) {
    
	newsName = news[0].href.substr(news[0].href.lastIndexOf('#') + 1);
    if (document.getElementById(newsName)) {
		
		  if (document.getElementById(newsName).style.display == 'block') {
			document.getElementById(newsName).style.display = 'none';
			newsOpened = false;
		  }else {
			if (newsOpened) {
			  document.getElementById('list_' + newsOpened).className = '';
			  document.getElementById(newsOpened).style.display = 'none';
			}
			
			initial_text_div.style.display = 'none';	//Rich add - take out initial text
			document.getElementById(newsName).style.display = 'block';
			newsOpened = newsName;
		  }
	  
    
	}
  }
  
  return false;
}
/*---------------------------- END News -------------------------*/


/*---------------------------- START Categories -------------------------*/
function initCategories()
{
  var columns;
  var i;
  var j;
  var categories;
  
  columns = document.getElementById('content').getElementsByTagName('dl');
  for (i = 0; i < columns.length; i++) {
  
    categories = columns[i].getElementsByTagName('dt');
    for (j = 0; j < categories.length; j++) {
      if(window.addEventListener){ // Browsers
        categories[j].addEventListener('click', showHideCategory, false);
      } else { // IE
        categories[j].attachEvent('onclick', showHideCategory);
      }
    }
    
    defs = columns[i].getElementsByTagName('dd');
    for (j = 0; j < defs.length; j++) {
      defs[j].style.display = 'none';
    }
    
  }
}



function hideAllOthers(cat, def) {
	
  var columns;
  var i;
  var j;
  var c;
  var categories;
  
  //dl --> dt --> dd
  
  columns = document.getElementById('content').getElementsByTagName('dl');
  for (i = 0; i < columns.length; i++) {
	  
	   //Turn off all other categories hightlights
	   categories = columns[i].getElementsByTagName('dt');
       for (c = 0; c < categories.length; c++) {
			 if (categories[c].id != cat.id) {
					 categories[c].className = '';
					 //alert(categories[c].id)   
			 }

	    }

	   //Turn off all other definition opened boxes
		defs = columns[i].getElementsByTagName('dd');
		for (j = 0; j < defs.length; j++) {
			 if (defs[j].id != def.id) {
					 defs[j].style.display = 'none';
					  
			 }
		}

    
  }
	
}

// Categories - show/hide descriptions 
// If the category's description is visible then className == active; if not visible className == '' 

function showHideCategory(e) {
	  var category;
	  var definition;
	  
	  category = e.target ? e.target : e.srcElement;
	  
	  if (category.className == 'listing_numbers' || category.className == 'listing_heading' || category.className == 'sponsor_text') {
		  //This IF is added by Rich to stop the onclick event from turning these 2 classe names
		  //into 'active' when clicked
		  definition = category.parentNode.nextSibling;
	  }else{
		  category.className = (category.className == 'active') ? '' : 'active';
		  definition = category.nextSibling;
	  }
	  
	  if (definition.nodeType == 3) {		//Node type is TEXT_NODE
		definition = definition.nextSibling;
	  }
	  
	  if (definition.nodeName == 'DD') {
		  //IF added by Rich around these 2 lines
		  definition.style.display = (definition.style.display == 'block') ? 'none' : 'block';
		  hideAllOthers(category, definition);
	  }
	  
	  return false;
}
/*---------------------------- END Categories -------------------------*/

/*---------------------------- START Judges -------------------------*/

var judgeOpened = false;

// Setting up onclick events and hiding descriptions of judges

function initJudges()
{
  var i;
  var judges;
  var judge;
  var judgeName;
  
  judges = document.getElementById('judgesList').getElementsByTagName('li');
  for (i = 0; i < judges.length; i++) {
  
    judge = judges[i].getElementsByTagName('a');
    if (judge.length) {
    
      judgeName = judge[0].href.substr(judge[0].href.lastIndexOf('#') + 1);
      if (document.getElementById(judgeName)) {
      
        document.getElementById(judgeName).style.display = 'none';
        
        if(window.addEventListener){ // Browsers
          judges[i].addEventListener('click', showHideJudge, false);
          judges[i].addEventListener('mouseover', JudgeMouseOverEffect, false);   /*Rich add*/
          judges[i].addEventListener('mouseout', JudgeMouseOutEffect, false);   /*Rich add*/
        } else { // IE
          judges[i].attachEvent('onclick', showHideJudge);
          judges[i].attachEvent('onmouseover', JudgeMouseOverEffect);  /*Rich add*/
          judges[i].attachEvent('onmouseout', JudgeMouseOutEffect);  /*Rich add*/
        }
        judge[0].onclick = function() {
			return false;
		};
        
        judges[i].id = 'list_' + judgeName;
        
      }
      
    }
    
  }
  
  judgeOpened = false;
}

function JudgeMouseOverEffect(e) {
  /*Rich add*/
  var judge;
  judge = e.target ? e.target : e.srcElement;
  
  if (judge.nodeName != 'LI') {
    judge = judge.parentNode;
  }
  
  judge.className = 'active';
   

  
}

function JudgeMouseOutEffect(e) {
  /*Rich add*/
	
  var judge;
  judge = e.target ? e.target : e.srcElement;
  judge.className = '';
  
  if (judge.nodeName != 'LI') {
    judge = judge.parentNode;
  }

  
}


// Judges - show/hide descriptions 
// If the judge's description is visible then className == active; if not visible className == '' 
function showHideJudge(e)
{

  var initial_text_div = document.getElementById('starter_judge_text');	//Rich add - initial text
  var judge;
  var judgeName;
  
  judge = e.target ? e.target : e.srcElement;
  
  if (judge.nodeName != 'LI') {
    judge = judge.parentNode;
  }
  
  judge.className = (judge.className == 'active') ? 'active' : '';	/*Rich change swap-->active*/
  
  judge = judge.getElementsByTagName('a');
  if (judge.length) {
    
	judgeName = judge[0].href.substr(judge[0].href.lastIndexOf('#') + 1);
    if (document.getElementById(judgeName)) {
		
		  if (document.getElementById(judgeName).style.display == 'block') {
			document.getElementById(judgeName).style.display = 'none';
			judgeOpened = false;
		  }else {
			if (judgeOpened) {
			  document.getElementById('list_' + judgeOpened).className = '';
			  document.getElementById(judgeOpened).style.display = 'none';
			}
			
			initial_text_div.style.display = 'none';	//Rich add - take out initial text
			document.getElementById(judgeName).style.display = 'block';
			judgeOpened = judgeName;
		  }
	  
    
	}
  }
  
  return false;
}

/*---------------------------- END Judges -------------------------*/


/*---------------------------- START Teams -------------------------*/

var teamOpened = false;

// Setting up onclick events and hiding descriptions of teams

function initTeams()
{
  var i;
  var teams;
  var team;
  var teamName;
  
  teams = document.getElementById('teamsList').getElementsByTagName('li');
  for (i = 0; i < teams.length; i++) {
  
    team = teams[i].getElementsByTagName('a');
    if (team.length) {
    
      teamName = team[0].href.substr(team[0].href.lastIndexOf('#') + 1);
      if (document.getElementById(teamName)) {
      
        document.getElementById(teamName).style.display = 'none';
        
        if(window.addEventListener){ // Browsers
          teams[i].addEventListener('click', showHideTeam, false);
          teams[i].addEventListener('mouseover', TeamMouseOverEffect, false);   /*Rich add*/
          teams[i].addEventListener('mouseout', TeamMouseOutEffect, false);   /*Rich add*/
        } else { // IE
          teams[i].attachEvent('onclick', showHideTeam);
          teams[i].attachEvent('onmouseover', TeamMouseOverEffect);  /*Rich add*/
          teams[i].attachEvent('onmouseout', TeamMouseOutEffect);  /*Rich add*/
        }
        team[0].onclick = function() {
			return false;
		};
        
        teams[i].id = 'list_' + teamName;
        
      }
      
    }
    
  }
  
  teamOpened = false;
}

function TeamMouseOverEffect(e) {
  /*Rich add*/
  var team;
  team = e.target ? e.target : e.srcElement;
  
  if (team.nodeName != 'LI') {
    team = team.parentNode;
  }
  
  team.className = 'active';
   

  
}

function TeamMouseOutEffect(e) {
  /*Rich add*/
	
  var team;
  team = e.target ? e.target : e.srcElement;
  team.className = '';
  
  if (team.nodeName != 'LI') {
    team = team.parentNode;
  }

  
}


// Teams - show/hide descriptions 
// If the team's description is visible then className == active; if not visible className == '' 
function showHideTeam(e)
{

  var initial_text_div = document.getElementById('starter_team_text');	//Rich add - initial text
  var team;
  var teamName;
  
  team = e.target ? e.target : e.srcElement;
  
  if (team.nodeName != 'LI') {
    team = team.parentNode;
  }
  
  team.className = (team.className == 'active') ? 'active' : '';	/*Rich change swap-->active*/
  
  team = team.getElementsByTagName('a');
  if (team.length) {
    
	teamName = team[0].href.substr(team[0].href.lastIndexOf('#') + 1);
    if (document.getElementById(teamName)) {
		
		  if (document.getElementById(teamName).style.display == 'block') {
			document.getElementById(teamName).style.display = 'none';
			teamOpened = false;
		  }else {
			if (teamOpened) {
			  document.getElementById('list_' + teamOpened).className = '';
			  document.getElementById(teamOpened).style.display = 'none';
			}
			
			initial_text_div.style.display = 'none';	//Rich add - take out initial text
			document.getElementById(teamName).style.display = 'block';
			teamOpened = teamName;
		  }
	  
    
	}
  }
  
  return false;
}

/*---------------------------- END Teams -------------------------*/

/*---------------------------- START Sponsors -------------------------*/

var sponsorOpened = false;

// Setting up onclick events and hiding descriptions of sponsors

function initsponsors()
{
  var i;
  var sponsors;
  var sponsor;
  var sponsorName;
  
  sponsors = document.getElementById('SponsorsList').getElementsByTagName('li');
  for (i = 0; i < sponsors.length; i++) {
  
    sponsor = sponsors[i].getElementsByTagName('a');
    if (sponsor.length) {
    
      sponsorName = sponsor[0].href.substr(sponsor[0].href.lastIndexOf('#') + 1);
      if (document.getElementById(sponsorName)) {
      
        document.getElementById(sponsorName).style.display = 'none';
        
        if(window.addEventListener){ // Browsers
          sponsors[i].addEventListener('click', showHidesponsor, false);
          sponsors[i].addEventListener('mouseover', sponsorMouseOverEffect, false);   /*Rich add*/
          sponsors[i].addEventListener('mouseout', sponsorMouseOutEffect, false);   /*Rich add*/
        } else { // IE
          sponsors[i].attachEvent('onclick', showHidesponsor);
          sponsors[i].attachEvent('onmouseover', sponsorMouseOverEffect);  /*Rich add*/
          sponsors[i].attachEvent('onmouseout', sponsorMouseOutEffect);  /*Rich add*/
        }
        sponsor[0].onclick = function() {
			return false;
		};
        
        sponsors[i].id = 'list_' + sponsorName;
        
      }
      
    }
    
  }
  
  sponsorOpened = false;
}

function sponsorMouseOverEffect(e) {
  /*Rich add*/
  var sponsor;
  sponsor = e.target ? e.target : e.srcElement;
  
  if (sponsor.nodeName != 'LI') {
    sponsor = sponsor.parentNode;
  }
  
  sponsor.className = 'active';
   

  
}

function sponsorMouseOutEffect(e) {
  /*Rich add*/
	
  var sponsor;
  sponsor = e.target ? e.target : e.srcElement;
  sponsor.className = '';
  
  if (sponsor.nodeName != 'LI') {
    sponsor = sponsor.parentNode;
  }

  
}


// sponsors - show/hide descriptions 
// If the sponsor's description is visible then className == active; if not visible className == '' 
function showHidesponsor(e)
{
  var initial_text_div = document.getElementById('starter_sponsor_text');	//Rich add - initial text
  var sponsor;
  var sponsorName;
  
  sponsor = e.target ? e.target : e.srcElement;
  
  if (sponsor.nodeName != 'LI') {
    sponsor = sponsor.parentNode;
  }
  
  sponsor.className = (sponsor.className == 'active') ? 'active' : '';	/*Rich change swap-->active*/
  
  sponsor = sponsor.getElementsByTagName('a');
  if (sponsor.length) {
    
	sponsorName = sponsor[0].href.substr(sponsor[0].href.lastIndexOf('#') + 1);
    if (document.getElementById(sponsorName)) {
		
		  if (document.getElementById(sponsorName).style.display == 'block') {
			document.getElementById(sponsorName).style.display = 'none';
			sponsorOpened = false;
		  }else {
			if (sponsorOpened) {
			  document.getElementById('list_' + sponsorOpened).className = '';
			  document.getElementById(sponsorOpened).style.display = 'none';
			}
			initial_text_div.style.display = 'none';	//Rich add - take out initial text
			document.getElementById(sponsorName).style.display = 'block';
			sponsorOpened = sponsorName;
		  }
	  
    
	}
  }
  
  return false;
}

/*---------------------------- END sponsors -------------------------*/



function validatePV() {
		var count;
		var cat32ticked = false;
		var cat34ticked = false;
		
		// Has Cat32 been ticked?
		count=0;
		for (var i=0; i < document.PublicVoting.cat32.length; i++) {
			if (document.PublicVoting.cat32[i].checked) {
				count++;
			}
		}
		if (count == 0) {cat32ticked = true;}
		
		// Has Cat34 been ticked?
		count=0;
		for (var i=0; i < document.PublicVoting.cat34.length; i++) {
			if (document.PublicVoting.cat34[i].checked) {
				count++;
			}
		}
		if (count == 0) {cat34ticked = true;}
		
		if ( (cat32ticked && !cat34ticked) || (!cat32ticked && cat34ticked) ) {
			var cast_vote = confirm("You have only cast a vote in one category. Press OK if you are sure you want to vote in just one category, or Cancel to review your vote.");
			if (cast_vote == true) {return true;}else{return false;}
		}
}
