/* site specific scripts */

function siteInit(){
  // Called with the body onload event.
  // Customise according to site requirements.
  if(document.body.className.indexOf("HomePage") >= 0) {
    alignHeights('content_c',['thumbimage','teaser'],3);
  }
  if(document.body.className.indexOf("GenericPage") >= 0) {
    alternateTeaserColours('main-right');
  }
}

function memberDatafieldUpdated() {
  var lgc_relationship = $('lgc_relationship').value;
  var user_type = $('user_type').value;
  if ($('linked_to_club').type=='hidden') {
    var linked_to_club = $('linked_to_club').value;
  }
  else {
    var linked_to_club = $('linked_to_club').checked;
  }

  if (linked_to_club) {
    if ($('linked_club_div')) {
      $('linked_club_div').removeClassName('accessHidden');
    }
    $('user_type_div').removeClassName('accessHidden');
    $('lgc_relationship_div').addClassName('accessHidden');

    if (user_type=='Corporate sponsor') {
      $('corp_name_div').removeClassName('accessHidden');
      $('job_title_div').removeClassName('accessHidden');
    }
    else {
      $('corp_name_div').addClassName('accessHidden');
      $('job_title_div').addClassName('accessHidden');
    }
    if (user_type=='other') {
      $('user_type_other_div').removeClassName('accessHidden');
    }
    else
    {
      $('user_type_other_div').addClassName('accessHidden');
    }
  }
  else {
    $('linked_club_div').addClassName('accessHidden');
    $('user_type_div').addClassName('accessHidden');
    $('user_type_other_div').addClassName('accessHidden');
    $('lgc_relationship_div').removeClassName('accessHidden');
    $('user_type_other_div').addClassName('accessHidden');
    if (lgc_relationship=='other') {
      $('corp_name_div').removeClassName('accessHidden');
      $('job_title_div').removeClassName('accessHidden');
    }
    else {      
      $('corp_name_div').addClassName('accessHidden');
      $('job_title_div').addClassName('accessHidden');
    }
  }
  redrawLayout();
}

function clubSelected(club_id, url) {
  var pars = 'club_id=' + club_id;
  addComponent('club_details', url, pars);
}

function regionSelected(region, url) {
  var pars = 'region=' + region;
  addComponent('LocalAuthority', url, pars);
}

function ratingMouseOver(rating, url) {
  var pars = 'rating=' + rating;
  addComponent('rating_input', url, pars);
}

function alternateTeaserColours(contentAreaName) {
  var contentArea = document.getElementById(contentAreaName);
  if(contentArea) {
    var elements = getSubElementsByClasses(contentArea, ['teaser']);

    for(var i=0;i < elements.length;i++) {
      if(isElement(elements[i]) && i % 2 == 0) {
        elements[i].className = elements[i].className + " teaserOdd";
      }
    }
  }

}

function isElement(el) {
  return (typeof(el == "object") && el != null);
}

function alignHeights(contentAreaName, elementClasses, columns) {
  var contentArea = document.getElementById(contentAreaName);
  if(contentArea) {
    var elements = getSubElementsByClasses(contentArea, elementClasses);
    var temp = null;

    var count = 0; // because i does not equal the required value
    for(var i in elements) {
      if(temp) {
        if((elements[i].offsetHeight < temp.offsetHeight) && (count % columns != 0)) {
          elements[i].style.height = temp.offsetHeight + "px";
        }
      }
      temp = elements[i];
      count++;
    }
  }
}

function getSubElementsByClasses(element, classnames) {
  var children = element.childNodes;
  var elementsByClasses = new Array();
  var index = 0;

  for(var i in children) {
    if((children[i].nodeType == 1) && (children[i] != 'undefined') && (children[i] != null)) {
      for(var a in classnames) {
        if(children[i].className.indexOf(classnames[a]) >= 0) {
          elementsByClasses[index] = children[i];
        }
      }
      index++;
    }
  }
  return elementsByClasses;
}

function getSections() {
  sections = new Array();

  sections[0] = document.getElementById('main-banner');
  sections[1] = document.getElementById('main-left');
  sections[2] = document.getElementById('main-right');
  sections[3] = null;
  sections[4] = document.getElementById('main-content');
  sections[5] = document.getElementById('main-footer');

  return sections;
}

function setLayout() {
 ; // Not required.
}

function redrawLayout() {
  if(document.body.className.indexOf("HomePage") >= 0) {
    alignHeights('content_c','thumbimage',3);
  }
}

function printPageComponent() {
  html  = '<button class="button" \n';
  html += '        id="print-page-button" \n';
  html += '        onclick="window.print();" \n';
  html += '        onmouseover="this.className = \'button over\';" \n';
  html += '        onmouseout="this.className = \'button\';" \n';
  html += '        onmouseup="this.blur();" \n';
  html += '        title="Print the current page." \n';
  html += '        type="button">';
  html += '  <span>Print page</span>\n';
  html += '</button>';
  return html;
}


function hoverHelp(el,action) {
  switch(action) {
    case 0: el.className = "hoverHelp hhClose";
            break;
    case 1: el.className = "hoverHelp hhOpen";
            break;
    default : ;
  }
}

SIZE_DOWN_MSG = "Text size";
SIZE_UP_MSG = "Text size";
function displayFontSwitch() {
  document.write("<a href=\"#top\" \n");
  document.write("   id=\"font-switch\" \n");
  document.write("   onclick=\"switchFontSize(this)\" \n");
  document.write("   onmouseup=\"this.blur();\"> \n");
  if(getCookie("baseFontSize") > 0) {
    document.write(SIZE_DOWN_MSG);
  }
  else {
    document.write(SIZE_UP_MSG);
  }
  document.write("</a>");
}


function printPageComponent() {
  html  = '<a href="#top"';
  html += '   id="print-page"';
  html += '   onclick="window.print();" \n';
  html += '   onmouseup="this.blur();" \n';
  html += '   title="Print the current page."> \n';
  html += '  Print<span class="accessHidden"> this page</span> \n';
  html += '</a> \n';
  return html;
}

function addToClass(el,str) {
  currentClass = el.className;
  if(currentClass.length <= 0) {
    // Class is empty so stick str in
    el.className = str;
  }
  else {
    // Class not empty so make sure to put in preceding space
    el.className = currentClass + " " + str;
  }
}

function removeFromClass(el,str) {
  currentClass = el.className;
  // Do twice to catch any whitespace variants first.
  var withSpace = " " + str;
  el.className = currentClass.replace(withSpace,"");
  el.className = currentClass.replace(str,"");
}


function highlightLink(element, componentClass, location) {
  var currentClass = element.className;
  var activeClass = " " + componentClass + "Active";
  if(element && currentClass) {
    element.className = currentClass + activeClass;
    self.status = location;
  }
}

function unhighlightLink(element, componentClass) {
  var currentClass = element.className;
  var activeClass = " " + componentClass + "Active";
  if(element && currentClass) {
    element.className = currentClass.replace(activeClass, "");
    self.status = "";
  }
  }

