jQuery(document).ready(function($){
  $("#currency").click(function(ev){
    $("#currencies").show();
    if (!ev) var ev = window.event;
    ev.cancelBubble = true;
    if (ev.stopPropagation) ev.stopPropagation();
    if (ev.preventDefault) ev.preventDefault();
    $(document).one('click', function(){
      $("#currencies").hide();
    });
    return false;
  });
  $("#currencies li a").bind('click', function(){
    $("#currency").text(this.text);
    $("#field_rate_currency").val(this.title);
  });
  $("#jobtitle_autocomplete").each(function(){
    if('' == this.value && '' == $("#field_jobtitle").val()) {
      this.value = this.title;
      $(this).css({'width':'350px', 'color':'#949494'});
    }
    if($("#fieldbox_jobtitle").hasClass("form_error")) {
      $(this).css({'color':'#fff'});
    }
  }).bind({
    focus:function(){ 
      if(this.value == this.title) {
        this.value = '';
        $(this).css({'width':'220px', 'color':'#282828'});
      }  
    },
    blur:function(){ 
      if('' == this.value && '' == $("#field_jobtitle").val()) {
        this.value = this.title;
        $(this).css({'width':'350px', 'color':'#949494'});
      }  
    }
  });
  $("#field_email.form_error, #field_password.form_error").one('focus', function(ev){
    $(this).removeClass("inactive").siblings('.formtext_hint').hide();
  });
  $("#suggest_trigger").bind({
    mouseenter:function(ev){
      $("#show-on-hover").stop();
      $("#show-on-hover").animate({opacity: 1}, (1-$("#show-on-hover").css('opacity')) * 400);
    },
    mouseleave:function(ev){
      $("#show-on-hover").stop();
      $("#show-on-hover").animate({opacity: 0}, ($("#show-on-hover").css('opacity')) * 400);
    }
  });
  $("#suggest_trigger").bind('click', function(ev){
    $("#suggest_trigger").hide();
    $("#suggest_form").slideDown("slow");
    if (!ev) var ev = window.event;
    ev.cancelBubble = true;
    if (ev.stopPropagation) ev.stopPropagation();
    if (ev.preventDefault) ev.preventDefault();
    return false;
  });
  $("#close-suggestion-form").bind('click', function(ev){
    $("#suggest_form").slideUp("slow", function(){$("#suggest_trigger").show();});
  });
  $("#field_jobtitles").live('keyup', function(){
    if(document.xhr) {
      document.xhr.abort();
    }
    document.xhr = $.ajax({
      type: "POST",
      url: document.base_url+"ajax/jobtitle",
      data: {'j':$("#field_jobtitles").val()},
      success: function(data) {
        $("#our_suggestion").html(data);
        document.xhr = null;
      }
    });
  });
  $("#field_username").live('keyup', function(){
    if (3 > $("#field_username").val().length) {
      $("#field_username").siblings('.formtext_hint').html('<span class="error_msg">Username must be 3 characters or more.</span>');
    } else {
      $("#field_username").siblings('.formtext_hint').html('<span>Checking...</span>');
      if(document.xhr) {
        document.xhr.abort();
      }
      document.xhr = $.ajax({
        type: "POST",
        url: document.base_url+"ajax/u",
        data: {'u':$("#field_username").val()},
        success: function(data) {
          var message = '';
      	  if (-7 == data) {
      	    message = '<span class="error_msg">Please use another username.</span>';
      	  } else if (-6 == data) {
            message = '<span class="error_msg">Username already in use.</span>';
          } else if (-5 == data) {
            message = '<span class="error_msg">Username must be 3 characters or more.</span>';
          } else if (-4 == data) {
            message = '<span class="error_msg">Username must be 16 characters or less.</span>';
          } else if (-3 == data) {
            message = '<span class="error_msg">Username required.</span>';
          } else if (-2 == data) {
            message = '<span class="error_msg">Letters and numerals only.</span>';
          } else if ( 1 == data){
            message = '<span class="ok_msg">Username available.</span>';
          } 
          $("#field_username").siblings('.formtext_hint').html(message);
          document.xhr = null;
        }
      });
    }
  });
  $(".form_error").live('click, focus', function(){
    if($(this).is('input')) {
      $(this).removeClass('form_error').focus().select();
    } else {
      $(this).removeClass('form_error').find('input').focus().select();
    }
  });
  $("#content.pg_myaccountsettings input.form").each(function(){
    if('' == this.value || this.value == this.title) {
      this.value = this.title;
      $(this).addClass('inactive');
    }
  }).live("focus", function(){
    if('' == this.value || this.value == this.title) {
      this.value = '';
      if($(this).hasClass('password') && 'text' == $(this).attr('type')) {
        $(this).replaceWith('<input type="password" id="field_password" name="field_password" title="Password" class="password form large" value="" />');
        $("#field_password").focus();
      }
    }
    $(this).removeClass('form_error');
  }).live("blur", function(){
    if('' == this.value || this.value == this.title) {
      if($(this).hasClass('password') && 'password' == $(this).attr('type')) {
        $(this).replaceWith('<input type="text" id="field_password" name="field_password" title="Password" class="password form large" value="" />');
        $("#field_password").addClass('inactive').val($("#field_password").attr('title'));
      } else {
        this.value = this.title;
        $(this).addClass('inactive');
      }
    }
  });
  /*
  $("#field_fname, #field_lname").bind("blur", checkPersonalSettingsForm);
  $("#field_rate, #field_jobtitle").bind("change", checkPersonalSettingsForm);
  */
  $("#jobtitle_autocomplete").bind("focus", function(){
    $("#fieldbox_jobtitle").removeClass('form_error');
  });
  $("#fieldbox_jobtitle").css({'cursor':'text'}).bind('click', function(){
    $(this).removeClass("form_error");
    $("#jobtitle_autocomplete")[0].focus();
  });
  $(".cancel").bind('click', function(){
    var name = $(this).parents(".listitem").attr('id').substr(9);
    removeListItem(name);
  });
});
/* Autocompleter */

function getJobTitleSelectionId(text, li) {
	if(!document.getElementById('listitem_'+li.innerHTML)){
		addListItem(li.innerHTML);
	}
	document.getElementById('jobtitle_autocomplete').value="";
}

function addListItem(name){
	
	//find number of current list items
	var jt_value = document.getElementById('field_jobtitle').value;
	var jt_array = jt_value.split(",");
	
	if(jt_array.length<=3){
	
		var el_listitem = document.createElement('div');
		el_listitem.className = "listitem";
		el_listitem.id = "listitem_"+name;
		
		var el_span = document.createElement('span');
		el_span.innerHTML = name;
		
		var el_cancel = document.createElement('div');
		el_cancel.className = "cancel";
		el_cancel.onclick = function(){ removeListItem(name);	}
		
		el_listitem.appendChild(el_span);
		el_listitem.appendChild(el_cancel);

		document.getElementById('listitems_jobtitles').appendChild(el_listitem);
		
		document.getElementById('field_jobtitle').value += name + ",";
		
	}else{
		
		alert("You may only have 3 job titles.");
		
	}
	
}

function removeListItem(name){
	var el = document.getElementById("listitem_"+name);
	document.getElementById('listitems_jobtitles').removeChild(el);
	
	var jobtitles = document.getElementById('field_jobtitle').value;
	jobtitles = jobtitles.replace(name+",","");
	document.getElementById('field_jobtitle').value = jobtitles;
	
}

function initJobTitles(jobtitles){

	var jt_array = jobtitles.split(",");
	
	for(i=0;i<(jt_array.length-1);i++){
		addListItem(jt_array[i]);
	}

}

window.onload = function () {
	new Ajax.Autocompleter("jobtitle_autocomplete", "jobtitle_autocomplete_choices", document.base_url+'ajax/jobtitles', {minChars: 0, afterUpdateElement:getJobTitleSelectionId,parameters:"action=autocomplete_jobtitles"});
	initJobTitles("");
};
	

function checkPersonalSettingsForm(){

	var el_fname = document.getElementById("field_fname");
	var el_lname = document.getElementById("field_lname");
	var el_email = document.getElementById("field_email");
	var el_zip = document.getElementById("field_zip");
	var el_checkbox = document.getElementById("checkbox_personalsettings");
	var el_gender_male = document.getElementById('field_gender_male');
	var el_gender_female = document.getElementById('field_gender_female');
	
	var passed = true;
	
	if(el_zip.value=="" || el_zip.value=="Zip Code"){
		passed = false;
	}else if(el_fname.value=="" || el_fname.value=="First Name"){
		passed = false;
	}else if(el_lname.value=="" || el_lname.value=="Last Name"){
		passed = false;
	}else if(el_email.value==""){
		passed = false;
	}else if(!el_gender_male.checked && !el_gender_female.checked){
		passed = false;
	}
	
	if(passed){
		el_checkbox.className = "titlebar_checkbox_on";
	}else{
		el_checkbox.className = "titlebar_checkbox_off";
	}

}

function checkNotificationForm(){

	var el_mobile = document.getElementById("field_mobile");
	var el_checkbox = document.getElementById("checkbox_notifications");
	
	var passed = true;
	
	if(el_mobile.value=="" || el_mobile.value=="First Name"){
		passed = false;
	}
	
	if(passed){
		el_checkbox.className = "titlebar_checkbox_on";
	}else{
		el_checkbox.className = "titlebar_checkbox_off";
	}

}
function checkMyJobProfile(){
	
	var el_jobtitle = document.getElementById("field_jobtitle");
	var el_rate = document.getElementById("field_rate");
	
	var el_checkbox = document.getElementById("checkbox_myjobprofile");
	
	var passed = true;
	
	if(el_jobtitle.value==""){
		passed = false;
	}else if(el_rate.value==""){
		passed = false;
	}
	
	if(passed){
		el_checkbox.className = "titlebar_checkbox_on";
	}else{
		el_checkbox.className = "titlebar_checkbox_off";
	}	
	
}
