/*
 * Scripts for managing forms
 */

function xdoVerifyOptions() {
  var submit = true;
  if ( document.user_options.home_page[0].checked ) {
    document.user_options.default_analyst_id.value = 0;
    document.user_options.default_analyst_id_performance.value = 0;
  } else if ( document.user_options.home_page[1].checked ) {
    if ( document.user_options.default_analyst_id_performance.value == 0 ) {
      submit = false;
      scrollTo(0,0);
      alert('Please choose an analyst.');
    } else {
      document.user_options.default_analyst_id.value = 0;
    }
  } else if ( document.user_options.home_page[2].checked ) {
    document.user_options.default_analyst_id.value = 0;
    document.user_options.default_analyst_id_performance.value = 0;
  } else if ( document.user_options.home_page[3].checked ) {
    if ( document.user_options.default_analyst_id.value == 0 ) {
      submit = false;
      scrollTo(0,0);
      alert('Please choose an analyst.');
    } else {
      document.user_options.default_analyst_id_performance.value = 0;
    }
  }
  if ( submit ) {
    document.user_options.submit();
  }
}

function doLink(link){
  doLink(link, 'N');
}

function doLink(link, internal_view) {
  var submit = true;
  switch(link) {
    case "analyst_performance":
      if (document.navigation.analyst_id.options[document.navigation.analyst_id.selectedIndex].value == 0) {
        scrollTo(0,0);
        alert("Please choose an analyst.");
        submit = false;
      } else {
        document.navigation.page_set.disabled = false;
        document.navigation.page_set.value = "an_allstocks";
	//alert(document.navigation.page_set.value);
        document.navigation.action = "/analysts/analysts.phtml";
        document.navigation.analyst_id.disabled = false;
        link = "analyst_data";
      }
      break;
    case "analyst_call_analysis":
    case "analyst_current_data":
    case "highlights":
    case "requests":
    case "research":
      document.navigation.action = "/analysts/analysts.phtml";
      document.navigation.page_set.disabled = false;
      document.navigation.page_set.value = link; /*"analyst_current_data";*/
      if (document.navigation.analyst_id.options[document.navigation.analyst_id.selectedIndex].value == 0) {
	  	scrollTo(0,0);
        alert("Please choose an analyst.");
        submit = false;
      }
      break;
    case "an_allstocks":
      document.navigation.action = "/analysts/analysts.phtml";
      document.navigation.page_set.disabled = false;
      document.navigation.page_set.value = "an_allstocks";
      document.navigation.internal_view.disabled = false;
      document.navigation.internal_view.value = internal_view;
      if (document.navigation.analyst_id.options[document.navigation.analyst_id.selectedIndex].value == 0) {
	  	scrollTo(0,0);
        alert("Please choose an analyst.");
        submit = false;
      }
      break;
    case "ticker_lookup":
      document.navigation.page_set.disabled = false;
      document.navigation.page_set.value = "an_lookup";
      document.navigation.action = "/lookup/lookup.phtml";
      break;
    case "firm_performance":
      document.navigation.page_set.disabled = false;
      document.navigation.page_set.value = "an_rankings";
      document.navigation.action = "/analysts/analysts.phtml";
      break;
    case "log_out":
      document.navigation.analyst_id.disabled = true;
      document.navigation.analyst_name.disabled = true;
      document.navigation.estimator_id.disabled = true;
      break;
  }
  if ( submit ) {
    document.navigation.submit();
  }
}

function doUpdateAnalystName() {
  document.navigation.analyst_name.value = document.navigation.analyst_id.options[document.navigation.analyst_id.selectedIndex].text;

}

function validEmail(email) {
  invalidChars = " /:,;";

  if (email == "") {
    return false;
  }
  for (invalid_index=0; invalid_index<invalidChars.length; invalid_index++) {
    badChar = invalidChars.charAt(invalid_index);
    if (email.indexOf(badChar,0) > -1) {
      return false;
    }
  }
  atPos = email.indexOf("@",1);
  if (atPos == -1) {
    return false;
  }
  if (email.indexOf("@",atPos+1) > -1) {
    return false;
  }
  periodPos = email.indexOf(".",atPos);
  if (periodPos == -1) {
    return false;
  }
  if (periodPos+3 > email.length) {
    return false;
  }
  return true;
}

