/* ---------------------------------------------------------------------------
	
	Hospital Physician Partners Master Javascript file
	http://hppartners.com
	
	Author: nGen Works
	http://ngenworks.com
	
--------------------------------------------------------------------------- */

function init()
{
	$('#nav-global-partner a:first').click(function(){
    $('#partner-links').toggle();
		$('#nav-global-partner').toggleClass('here');
		return false;
	});
	
	$('#submit').click(function(){
		$('#upload-icon').toggle();
	});
	
	// Set sort by select to trigger onChange
	$("#sort-options").change(function() {
		window.location=$(this).val();
	});
	
	// Set sort by select to trigger onChange
	$("#sort-event-options").change(function() {
		window.location=$(this).val();
	});
	
	//
	job_search('#global-search, #refine-search-form');
	
}

// Hide and show the text in a form field on focus on blur, respectivley.
function clear_it(object){
  object.each(function(){
    $(this).bind("focus", function(){
      var orig_text = $(this).val();
      $(this).val('');
      $(this).bind("blur", function(){
        orig_text = ($(this).val() !== "") ? $(this).val() : orig_text ;
        $(this).val(orig_text);
      });
    });
  });
}

// do some fancy URI stuff for job search forms
function job_search(objects) {
  //
  forms = $(objects);
  
  // add to action URI on change
  $('.search-specialty, .search-state', forms).change(function() {
    //
    value = slugify($(this).val());
    form = $(this).parents('form');
    
    // if specialty
    if( $(this).hasClass('search-specialty') ) {
      form_action(form, 'specialty', value);
    }
    
    // if state
    if( $(this).hasClass('search-state') ) {
      form_action(form, 'state', value);
    }
    
  }).change();
  
}
//

// simple function to add/remove from URI
function form_action(form, trigger, value) {
  //
  form_a = form.attr('action');

  //
  re = new RegExp(trigger + "\/([a-z\-]*)", 'i');

  //
  if( form_a.indexOf('/' + trigger + '/') == -1 && value != '' ) {
    form.attr('action', form_a + '/' + trigger + '/' + value);
  } else if(value != '') {
    form.attr('action', form_a.replace(re, trigger + "/" + value));
  } else {
    form.attr('action', form_a.replace(re, ""));
  }
  
  // clean up action and remove any double slashes
  form.attr('action', form.attr('action').replace(/\/{2,}/, "/"));
  
}
//

// show/hide area
function show_hide(selector) {
  //
  $(selector).click(function(e) {
    //
    e.preventDefault();
    
    // content object being hidden/shown
    c_obj = $(this).parent().prev();
    
    // toggle visibility
    c_obj.slideToggle();
    $(this).toggleClass('closed');
    
    // change wording of link
    if( $(this).hasClass('closed') ) {
      $(this).html("Read more &raquo;");
    } else {
      $(this).html("&laquo; View less");
    }
  
  }).click();
}
//

//
function slugify(text) {
  var slug = text.replace(/\s+/g,'-').replace(/[^a-zA-Z0-9\-]/g,'').toLowerCase();
  
  return slug;
}

//
function extractParamFromUri(uri, paramName) {
  if (!uri) {
    return;
  }
  var uri = uri.split('#')[0];  // Remove anchor.
  var parts = uri.split('?');  // Check for query params.
  if (parts.length == 1) {
    return;
  }
  var query = decodeURI(parts[1]);

  // Find url param.
  paramName += '=';
  var params = query.split('&');
  for (var i = 0, param; param = params[i]; ++i) {
    if (param.indexOf(paramName) === 0) {
      return unescape(param.split('=')[1]);
    }
  }
}


//Wait till the page has loaded
$(document).ready(function(){
	//////////////////////////////////////////////////////
	//INITIALIZE
	//////////////////////////////////////////////////////
	init();
	clear_it($(".callout-subscribe input"));
	
	// Shadowbox
	if(window.Shadowbox) {
  	Shadowbox.init({
    	players: ["html", "flv", "img", "swf"],
    	handleOversize: "none"
    });
  }
  
  //
  show_hide('p.show-hide a');
});
