document.observe("dom:loaded", function() {
  sevenUp.test();
  if ($("signup_form")) {
/*
    Form.focusFirstElement($$(".edit_user").first());
    new Form.Observer('signup_form', 0.8, function(element, value) {check_signup_form()});
*/
    valid_user_form = new Validation("signup_form", {immediate : true, useTitles : true});
		Validation.addAllThese([
    	['validate-alpha-and-space', 'Please use letters only (a-z) and spaces in this field.', function(v) {
  			return Validation.get('IsEmpty').test(v) ||  /^[a-zA-Z\ \à\è\ì\ò\ù\á\ú\ó\í\é]+$/.test(v);
			}],
    	['validate-password', 'Your password must be more than 4 characters', {
    	  minLength : 4
			}],
    	['validate-password-confirm', 'Please verify your password again', {
    	  equalToField: "password_form"
			}]
		]);
    /*
    var result1 = valid_user_form.validate();
    if (result1) {
      $("complete-join-1-submit").disable();
    }
    */
  }

  if ($("user_form")) {
    user_form = $("user_form").down("form");
    valid_user_form = new Validation(user_form, {immediate : true, useTitles : true});
		Validation.addAllThese([
    	['validate-alpha-and-space', 'Please use letters only (a-z) and spaces in this field.', function(v) {
  			return Validation.get('IsEmpty').test(v) ||  /^[a-zA-Z\ \à\è\ì\ò\ù\á\ú\ó\í\é]+$/.test(v);
			}],
    	['validate-password', 'Your password must be more than 4 characters', {
    	  minLength : 4
			}],
    	['validate-password-confirm', 'Please verify your password again', {
    	  equalToField: "user_password"
			}]
		]);
  }
 
  if ($("complete_join2")) {
    complete_join2_form = $("complete_join2");
    valid_complete_join2_form = new Validation(complete_join2_form, {immediate : true, useTitles : true});
    var result2 = valid_complete_join2_form.validate();
    if (result2) {
      $("complete-join-2-submit").disable();
    }
  }
  
  if ($("form_user_specialties")) {
    valid_form_user_specialties = new Validation("form_user_specialties", {immediate : true, useTitles : true});
  }
  
});

function set_help(ele)
{
  if (ele.next(".help")) {
    Event.observe(ele, 'focus', function(e,v){ele.next(".help").appear();});
    Event.observe(ele, 'blur', function(e,v){ele.next(".help").fade();});
  }
}

function user_form_next(step)
{
  if (step == null) {
    step = 2;
  }
  i = 1;

  $$("#user_form fieldset").each(
    function(ele){
      if (ele.visible() && i != step) {
        ele.fade({duration: 0.2});
      }
      i++;
    }
  );
  $$("#user_form fieldset")[step].appear();
}
  
/*
  if ($("complete_join2")) {
    check_complete_join2();
    new Form.Observer('complete_join2', 0.8, function(element, value) {check_complete_join2()});
  }
});
*/

function flash_mex(flash_hash) {
  ele_container = $("flash_mex");
  
  if (ele_container == null) {
    var ele_container = new Element('div', { 'id': 'flash_mex'});
    $("header").insert({ after: ele_container });
  } else {
    ele_container.update();
  }
  flash_hash.each(
    function(f){
      ele_message = new Element('div', {'class': f.key});
      ele_message.update(f.value);
      ele_container.insert({ bottom: ele_message });
    }
  );
}

function toggleUserOptions(id) {
    dom = $('options-for-user-' + id);

    $$('.user-options').each(function(e) {
//       if(e != dom)   Effect.BlindUp(e);
    });

    dom.toggle();
}


Event.observe(window, 'load', function() {
  m31_scroll_to_post();
});


//http://www.netlobo.com/url_query_string_javascript.html
function uri_var( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return null;
  else
    return results[1];
}

function m31_scroll_to_post()
{
  post_id = uri_var('post_id');
  if (post_id && $("post_" + post_id)) {
    new Effect.ScrollTo('post_' + post_id);
  }
}

//function editBadEmailAddress(id) {
//    dom = $('email_' + id);
//    dom.enable();
//}
//
//function validateEmailAddress(id) {
//    dom = $('email_' + id);
//    value = dom.value;
//}

function inlineEdit(id) {
    dom = $('email_' + id);
    value = dom.value;

    new Ajax.InPlaceEditor(dom, '/administration/update_email_address/' + id);
}

function validate_confirm_fields(field_id, validate_class)
{
  if (validate_class == null) {
    validate_class = "validate";
  }
  ele_main = $(field_id);
  ele_confirm = $(field_id + "_confirmation");
  
  ele_validate = ele_confirm.next("div");
  ele_validate.show();
  
  if (
    ($F(ele_main) == $F(ele_confirm)) && 
    ($F(ele_main) != "")
  ) {
    ele_validate.addClassName("valid");
    ele_confirm.removeClassName("notvalid");
    rtn = true;
  } else {
    ele_validate.removeClassName("valid");
    ele_confirm.addClassName("notvalid");
    rtn = false;
  }
  if ($F(ele_main) == "") {
    ele_confirm.removeClassName("notvalid");
    ele_validate.hide();
  }
  return rtn;
}

function check_signup_form()
{
/*
  console.log("password ", $("signup_form").elements["password"] == $("signup_form").elements["retype_password"]);
  console.log("firstname", $("signup_form").elements["firstname"] != "");
  console.log("firstname", $("signup_form").elements["lastname"] != "");
  console.log("email", validEmail($("signup_form").elements["email"]));
  console.log("cats", category_checked > 0);
  console.log("terms", $("signup_form").elements["terms"].checked);
  console.log("-----------------------------------------------");
  */
  category_checked = 0;
  
  $$("#signup_form #categories input").each(function(i){if (i.checked){category_checked++}});
  if (
    validate_confirm_fields('password_form') &&
    $("user_firstname").value != "" &&
    $("user_lastname").value != "" &&
    validEmail($("email_form").value) &&
    category_checked > 0 &&
    $("terms").checked
  ) {
    $$("#signup_form .submit").first().enable();
  } else {
    console.log("disable submit");
    $$("#signup_form .submit").first().disable();
  }
}

function check_complete_join2()
{
  input_checked = 0;
  
  $$("#complete_join2 .tag").each(function(i){if (i.checked){input_checked++}});
  if (
    input_checked > 0
  ) {
    $$("#complete_join2 .submit").first().enable();
  } else {
    console.log("disable submit");
    $$("#complete_join2 .submit").first().disable();
  }
}

function add_area_of_interest()
{
  selected_tag = $$('#tag_text_auto_complete .selected').first();
  tag_id = selected_tag.id.split('_').last();
  var hidden = new Element('input', {'value': tag_id, name: 'user_main_area_of_interest_ids[]', type: 'hidden'});
  var li = new Element('li', {'style': 'display: none'}).update(selected_tag.innerHTML);

  li.appendChild(hidden);
  li.appendChild(remove_tag_link());
  $("main_area_of_interests").insert({bottom: li});
  li.blindDown();
  $('add_area_of_interest_button').fade();
  $('tag_text').clear();
}

function remove_tag_link()
{
  delete_span = new Element('span').update("&nbsp;[remove]");
  delete_link = new Element('a', {
    'href': '#', 
    'class': 'delete_tag',
//    'onClick': 'this.ancestors().first().blindUp({onComplete: \'this.ancestors().first().remove();return false;\'})'
    'onClick': 'this.ancestors().first().remove();return false;'
    });
  delete_link.appendChild(delete_span);
  return delete_link;
}
