function checkusername() {
  if (3 > jQuery("#field_username").val().length) {
    jQuery("#field_username").siblings('.formtext_hint').html('<span class="error_msg">Username must be 3 characters or more.</span>');
  } else {
    jQuery("#field_username").siblings('.formtext_hint').html('<span>Checking...</span>');
    if(document.xhr) {
      document.xhr.abort();
    }
    document.xhr = jQuery.ajax({
      type: "POST",
      url: document.base_url+"ajax/u",
      data: {'u':jQuery("#field_username").val()},
      success: function(data) {
        var message = '';
    	  if (-10 == data) {
    	    message = '<span class="error_msg">Please use underscore sparingly.</span>';
    	  } else if (-9 == data) {
    	    message = '<span class="error_msg">Should end with a letter or number.</span>';
    	  } else if (-8 == data) {
    	    message = '<span class="error_msg">Should start with a letter.</span>';
    	  } else 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">Only use letters, numbers and &#39;_&#39;</span>';
        } else if ( 1 == data){
          message = '<span class="ok_msg">Username available.</span>';
        }
        //alert(jQuery("#field_username").val());
        jQuery("#field_username").siblings('.formtext_hint').html(message);
        document.xhr = null;
      }
    });
  }
}
jQuery(document).ready(function($){
  function extractLast( term ) {
  	return term.split(/,\s*/).pop();
  }
  $( "#jobtitle-loading" ).hide();
  $( "#field_jobtitle" ).autocomplete({
  	source: function( request, response ) {
  	  $.ajax({
  	    type: 'POST',
        url: document.base_url + 'ajax/jobtitles_json',
        dataType: 'json',
        data: {
    			term: extractLast( request.term )
    		},
        success: function(data) {
          $( "#jobtitle-loading" ).hide();
          response(data);
        }
      });
  	},
  	search: function() {
  	  var terms = this.value.split(/,\s*/);
  	  if (terms.length > 3) {
    		terms.splice(3);
    		this.value = terms.join( ", " );
    		jAlert('You cannot select more than 3 job titles.','Oops!');
  	    return false;
  	  }
  		var term = extractLast( this.value );
  		if ( term.length < 2 ) {
  		  $(this).autocomplete( "close" );
  			return false;
  		}
		  $( "#jobtitle-loading" ).show();
  	},
  	focus: function() {
  		// prevent value inserted on focus
  		return false;
  	},
  	select: function( event, ui ) {
  		var terms = this.value.split(/,\s*/);
  		// remove the current input
  		terms.pop();
  		// add the selected item
  		terms.push( ui.item.value );
  		// add placeholder to get the comma-and-space at the end
  		terms.push( "" );
  		this.value = terms.join( ", " );
  		return false;
  	}
  });
  $("#btn_connect").live('click', function() {
    FB.login(function(response){
      if("connected" == response.status) {
        $.ajax({
          url: document.base_url+'fb/check',
          type: "POST",
          dataType:"json",
          success: function(data) {
            if('login' == data.state) {
              if ('0' == data.user_type) {
                location.href = document.base_url + 'signup';
              } else {
                location.href = document.base_url + 'account';
              }
            } else if('exist' == data.state) {
              fb.loadAnchor(document.base_url+'fb/merge', 'theme:custom width:470 height:360 scrolling:no outerBorder=0 innerBorder=1 showClose:false modal:true padding:15 innerBorder:0 disableScroll:false shadowType=halo overlayOpacity:0.001');
            } else if('added' == data.state) {
              location.href = document.base_url + 'signup/free';
            }
          }
        });  
      }
    },
    {perms:'email'});
  });
  $("#jobtitle_autocomplete_choices").live("mousedown", function(ev){
    if (!ev) var ev = window.event;
    ev.cancelBubble = true;
    if (ev.stopPropagation) ev.stopPropagation();
    if (ev.preventDefault) ev.preventDefault();
    return false;
  });
  $("#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").one('focus', function(){
    $("#field_username").siblings('.formtext_hint').html('<span>This will be used for your page URL</span>');
  }).live('keyup', function(){
    if(document.checktimer) {
      clearTimeout(document.checktimer);
      document.checktimer = null;
    }
    document.checktimer = setTimeout("checkusername()", 700);
  });
  $(".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 () {
  if(document.getElementById('jobtitle_autocomplete')) {
  	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";
	}	
	
}

