function check_email_address(email) {
  var emailExpr = new RegExp('.+@.+\..+');
  return emailExpr.test(email);
}

function show_element(element) {
  document.getElementById(element).style.display = 'block';
}

function hide_element(element) {
  document.getElementById(element).style.display = 'none';
}

function show_err(element){
  show_element(element+'_error');
}
 
function hide_err(element){
  hide_element(element+'_error');
}

function hide_errors() {
  var divs = document.getElementsByTagName('div');

  for (var x = 0, div; div = divs[x]; x++) {
    if (div.className.search('error') > -1) {
      hide_element(divs[x].id);
    }
  }
}
 
function doGsupSubmit() {
  var returnVal = true;
  hide_errors();
    var country = document._form.country_code.options[document._form.country_code.selectedIndex].value;

    elem = document._form.os;
    if(!document._form.os.selectedIndex) {
      show_err('os');
      returnVal = false;
    } 
    if(elem[elem.selectedIndex].value == "Windows_9x") {
      document.location = "/?title=Windows+98+Download+Page";
      returnVal = false;
    }
    if(!document._form.first_name.value.length) {
      show_err('first_name');
      returnVal = false;
    }
    if(!document._form.last_name.value.length) {
      show_err('last_name');
      returnVal = false;
    }
    if(!document._form.country_code.selectedIndex) {
      show_err('country_code');
      returnVal = false;
    }
    if(!document._form.state.selectedIndex) {	    
      show_err('state');
      returnVal = false;
    }
    if(!document._form.company.value.length) {
      show_err('company');
      returnVal = false;
    }
    if(!document._form.contact_type.selectedIndex) {
      show_err('contact_type');
      returnVal = false;
    }
    if(!document._form.industry.selectedIndex) {
      show_err('industry');
      returnVal = false;
    }
    if(!document._form.udesigner.selectedIndex) {
      show_err('udesigner');
      returnVal = false;
    }
    if(!document._form.email.value.length || !check_email_address(document._form.email.value)) {
      show_err('email');
      returnVal = false;
    } 
  return returnVal;
}


function doEduAppSubmit(form) {
  var returnVal = true;
  hide_errors();
  var country = form.country_code.options[form.country_code.selectedIndex].value;

    if(!form.first_name.value.length) {
      show_err('first_name');
      returnVal = false;
    }
    if(!form.last_name.value.length) {
      show_err('last_name');
      returnVal = false;
    }
    if(!form.country_code.selectedIndex) {
      show_err('country_code');
      returnVal = false;
    }
    if(!form.state.selectedIndex) {	    
      show_err('state');
      returnVal = false;
    }
    if(!form.company.value.length) {
      show_err('company');
      returnVal = false;
    }
    if(!form.phone1.value.length) {
      show_err('phone1');
      returnVal = false;
    }
    if(!form.email.value.length || !check_email_address(form.email.value)) {
      show_err('email');
      returnVal = false;
    } 
    if(!form.school_level.selectedIndex) {
      show_err('school_level');
      returnVal = false;
    }
    if(!form.school_department.value.length) {
      show_err('school_department');
      returnVal = false;
    }
    if(!form.address1.value.length) {
      show_err('address1');
      returnVal = false;
    }
    if(!form.city.value.length) {
      show_err('city');
      returnVal = false;
    }
    if(!form.zip.value.length) {
      show_err('zip');
      returnVal = false;
    }
  return returnVal;
}


function doSketchUpdateSubmit() {
  var returnVal = true;
  hide_errors();
  var country = document._form.country_code.options[document._form.country_code.selectedIndex].value;

    if(!document._form.first_name.value.length) {
      show_err('first_name');
      returnVal = false;
    }
    if(!document._form.last_name.value.length) {
      show_err('last_name');
      returnVal = false;
    }
    if(!document._form.contact_type.selectedIndex) {
      show_err('contact_type');
      returnVal = false;
    }
    if(!document._form.industry.selectedIndex) {
      show_err('industry');
      returnVal = false;
    }
    if(!document._form.udesigner.selectedIndex) {
      show_err('udesigner');
      returnVal = false;
    }
    if(!document._form.email.value.length || !check_email_address(document._form.email.value)) {
      show_err('email');
      returnVal = false;
    } 
  return returnVal;

}

function doPrivateTrainingSubmit() {
  var returnVal = true;
  hide_errors();
  var country = document._form.country_code.options[document._form.country_code.selectedIndex].value;

    if(!document._form.first_name.value.length) {
      show_err('first_name');
      returnVal = false;
    }
    if(!document._form.last_name.value.length) {
      show_err('last_name');
      returnVal = false;
    }
    if(!document._form.company.value.length) {
      show_err('company');
      returnVal = false;
    }
    if(!document._form.state.selectedIndex) {
      show_err('state');
      returnVal = false;
    }
    if(!document._form.country_code.selectedIndex) {
      show_err('country_code');
      returnVal = false;
    }
    if(!document._form.phone1.value.length) {
      show_err('phone1');
      returnVal = false;
    }
    if(!document._form.email.value.length || !check_email_address(document._form.email.value)) {
      show_err('email');
      returnVal = false;
    } 
  return returnVal;

}

function getDownloadUrl() {
  var url = location.protocol + '//' + location.host;
  var pathname = location.pathname;
  var product = 'sketchup';
  var intl = 'intl';
  var hl = '';
  var pathArr = pathname.split('/');

  switch (pathArr[1]) {
    case intl:
      url += '/intl/' + pathArr[2];
      url += (pathArr[3] && pathArr[3] == product) ? '/' + product: '';
      break;

    case product:
      url += '/' + product;
      break;

    default :
      break;
  }

  return url + '/download/';
}

function download(form) {
  var url = getDownloadUrl();
  var win = document.getElementById('os.windows');
  var mac = document.getElementById('os.mac');
  var lang = document.getElementById('download_lang').options[document.getElementById('download_lang').selectedIndex].value;

  if (document.getElementById('email').value.length > 0) {
    if (mac.checked) {
      form.redirection.value = url + 'gsum'+lang+'thankyou.html';
    } else {
      form.redirection.value = url + 'gsuw'+lang+'thankyou.html';
    }           
    if (check_email_address(document.getElementById('email').value)) {
      return true;
    } else {
      document.getElementById('email_error').style.display = 'block';
      return false;
    }
  } else {
    if (mac.checked) {
      window.location = 'gsum'+lang+'thankyou.html';
    } else {
      window.location = 'gsuw'+lang+'thankyou.html';
    }
    return false;
  }
}

function downloadGsup(form) {
  var url = getDownloadUrl();
  var win = document.getElementById('gsup.os.windows');
  var mac = document.getElementById('gsup.os.mac');
  var lang = document.getElementById('gsup.download_lang').options[document.getElementById('gsup.download_lang').selectedIndex].value;

  if (document.getElementById('gsup.email').value.length > 0) {
    if (mac.checked) {
      form.redirection.value = url + 'gsum'+lang+'thankyou.html';
    } else {
      form.redirection.value = url + 'gsuw'+lang+'thankyou.html';
    }           
    if (check_email_address(document.getElementById('gsup.email').value)) {
      return true;
    } else {
      document.getElementById('gsup.email_error').style.display = 'block';
      return false;
    }
  } else {
    if (mac.checked) {
      window.location = 'gsupm'+lang+'thankyou.html';
    } else {
      window.location = 'gsupw'+lang+'thankyou.html';
    }
    return false;
  }
}

function downloadViewer(form) {
  var win = document.getElementById('os.windows');
  var mac = document.getElementById('os.mac');
  var lang = document.getElementById('download_lang').options[document.getElementById('download_lang').selectedIndex].value;
  if (mac.checked) {
    var os = mac.value;
  } else {
    var os = win.value;
  }
  window.location = 'gsuv' + os + lang + 'thankyou.html';
  return false;
}

function preselectOS() {
  var detect = navigator.userAgent.toLowerCase();

  if (detect.indexOf('mac') >= 0) {
    document.getElementById('os.mac').checked = true;
    document.getElementById('os.windows').checked = false;
  } else {
    document.getElementById('os.mac').checked = false;
    document.getElementById('os.windows').checked = true;
  }
}
