// Javascript functions defined by the Matchbook application

// find
function mbk_create_hourly_rate_slider(hMin, hMax)
{
  $("#hourly_rate_slider").slider( {
	min: hMin,
	max: hMax,
	step: 10,
	value: $("#hourly_rate_max").val(),
    slide: function(event, ui) { 
	  $('#hourly_rate_print').get(0).innerHTML = '... and I can pay up to <b>$' + ui.value + ' per hour</b>';
	  $('#hourly_rate_max').attr('value', ui.value).change();
	}
  } );
}

function mbk_update_skills_list(role_id, formUrl)
{
  $.ajax( {
	 type: 'POST', 
	 url: formUrl, 
	 data: 'role=' + encodeURIComponent(role_id),
	 success: function(data) {
         $('#skills_list').html(data).show();
		 // attach onChange to new skill checkboxes
		 $('#skills_list .mbk-observable').bind(($.browser.msie ? "click" : "change"), function() {
		   mbk_find_match();
		 } );
     }
  } );
}

function mbk_find_match()
{
  var f = $('form');
  $.ajax( {
	   type: 'POST', 
	   url: f.attr('action'),
	   data: f.serialize(),
	   success: function(data) {
		 $('#match_results').html(data).show();
	   }
  } );
}


// profile_edit
function mbk_user_roles_sort() {
   $('#user_roles').sortable({ axis: 'y',
							 stop: function(event, ui) { 
                                        $('#user_roles li input').each(function(i) { this.name = 'role['+(i)+']'; }) }
    });
}

function mbk_user_role_add() {
    var rc = $('#user_roles li').length; 
	var roleId = $('#roles').val();
	if (rc < 8 && roleId != '') { 
	    $('#user_roles').append('<li class="user_role">' + 
								'<span class="mbk-user-role-name" style="cursor: move;">' + $('#roles :selected').text() + '</span>' +
								'<input type="hidden" class="mbk-user-role-sel" name="role[' + (++rc) + ']" ' + 
								' value="' + roleId + '"></input> ' + 
								'[<a href="javascript:void()" onclick="mbk_user_role_del(this);"> X </a>]</li>'); 
		$('#roles :selected').remove(); 

	    $('.mbk-role-' + roleId).addClass('mbk-hl2').show();
        $('.mbk-role-' + roleId + ' input').attr('disabled', false);
	} 

	if (rc >= 8) { 
	  $('#roles').get(0).disabled = true; 
	  $('#add_new_role').get(0).disabled = true; 
	} 

	mbk_user_roles_sort();
}

function mbk_user_role_del(aEl) {
	var liEl = $(aEl).parents('li:eq(0)').get(0);
	var roleId = $(liEl).find('input:first').val();
	var roleName = $(liEl).find('.mbk-user-role-name:first').text();

    $(liEl).remove(); 
    $('#roles').get(0).disabled = false; 
    $('#add_new_role').get(0).disabled = false;

	$('.mbk-role-' + roleId).hide().removeClass('mbk-hl2');
    $('.mbk-role-' + roleId + ' input').attr('disabled', true);

    // re-enable any skills tied to still-selected roles
    $('.mbk-user-role-sel').each(function(i, el) {
        var rid = $(el).val();
        $('.mbk-role-' + rid).show();
        $('.mbk-role-' + rid + ' input').attr('disabled', false);
    });

	$('#roles').append('<option value="' + roleId + '">' + roleName + '</option>');
}

function mbk_refresh_skills() {
    $('.mbk-skill').hide(); 
	$('.mbk-skill input').each(function(i) { this.disabled = true; });
    $('.mbk-user-role-sel').each(function(i) { 
	    $('.mbk-role-' + this.value).show();
	    $('.mbk-role-' + this.value + ' input').each(function(i) { this.disabled = false; });
	}); 
}
