// pass dom ids to protect
// set protected ids style to 'display:none'
// requirement_protected(["new_user", "tooltips"])
function requirement_protected(protected_ids){
  cookies_ok = navigator.cookieEnabled;

  if(cookies_ok){
    protected_ids.each(function(id){ if($(id)){ $(id).show();}});
  } else {
    protected_ids.each(function(id){ if($(id)){ $(id).hide();}});
    $('cookies_req_failure').show();
    $('cookies_req_results').innerHTML = "Cookies" + " " +  (cookies_ok ? 'Enabled' : 'Disabled');
    $('cookies_req').className = results_pass(cookies_ok);
  }    
}

function warning_protected(){
	
  browser_validated()

  if(browser_ok && flash_ok && cookies_ok){    
      $('browser_failure_warning').hide();
  }
  else{    
    $('browser_failure_warning').show();
    
    $('browser_results').innerHTML = human_browser_name(browser_name) + " " + browser_version;
    $('flash_results').innerHTML = 'Adobe Flash' + " " + flash_version;
    $('cookie_results').innerHTML = "Cookies" + " " +  (cookies_ok ? 'Enabled' : 'Disabled');
    // $('popup_results').innerHTML = "Pop Up Windows" + " " + (popups_ok ? 'Enabled' : 'Disabled');

	 $('browser').writeAttribute('className', results_pass(browser_ok))
	 $('flash').writeAttribute('className', results_pass(flash_ok))
	 $('cookies').writeAttribute('className', results_pass(cookies_ok))
	 // $('popups').writeAttribute('className', results_pass(popups_ok))

  }    
}

function browser_validated() {
  browser_name = getBrowser()[0];
  browser_version = getBrowser()[1];
  flash_version = hasFlashPlugin()[1];
  min_flash_version = 8;

  browser_ok = browser_allowed(browser_name, browser_version);
  flash_ok   = flash_version >= min_flash_version ? true : false;
  cookies_ok = navigator.cookieEnabled;

  if (browser_ok && flash_ok && cookies_ok) {
    browser_ok && flash_ok && cookies_ok
  }
  else {
    return false
	}
}


function results_pass(results){
  return (results ? 'pass' : 'fail');
}

function human_browser_name(name){
  switch (name){
    case 'firefox':
      return 'Mozilla Firefox';
		break;
    case 'msie':
      return 'Microsoft Internet Explorer';
		break;
    case 'safari':
      return 'Apple Safari';
		break;
    default: 
      return name.capitalize();
  }
}

function browser_allowed(name, version){
  switch (name){
	 case 'firefox': 
		return version >= '2';
		break;
	 case 'msie':
	   return version == 7.0;
		break;
	 case 'safari':
	    // safari browser integer:
      // http://developer.apple.com/internet/safari/faq.html
      // 
      // Safari 2 and greater
      //return version >= '412';   
      // Safari 3 and greater
      return version >= '523';
		break;
	 default:
	   return false;
	}
}

