function render_empty(divr) {
	if (!divr) divr = $('results');
	divr.innerHTML = 'No matches.<br/>Please try removing some filters.';
}

function render_card(rs) {
	var divr = $('results_card');
	if (!divr) {
		divr = $('results');
		divr.innerHTML = '<div style=" float:left; border:0px solid black; width:950px"><div class="find_match"><b class="find_match_top"><b class="find_match_b1"></b><b class="find_match_b2"></b><b class="find_match_b3"></b><b class="find_match_b4"></b></b><div class="find_match_box">' +
			'<div style=" padding:5px 0px 0px 15px"><div id="results_card"></div></div>' +
			'<div class="clear"></div></div><b class="find_match_bottom"><b class="find_match_b4"></b><b class="find_match_b3"></b><b class="find_match_b2"></b><b class="find_match_b1"></b></b></div><div class="clear"></div></div><div class="clear"></div>';
		divr = $('results_card');
	}
	divr.innerHTML = '';
	var l = rs.length;
	if (l < 1) {
		render_empty();
		return;
	}
	for (var i = 0; i < l; i++) {
		var r = rs[i];
		if (!r._promo) {
			var hili = r.highlight, hilic = hili.length, hiliml = '';
			if (hilic > 0) hiliml = '&#8226; ' + hili.join('<br/>&#8226; ') + '<br/>';
			for (var j = 1; j <= 3 - hilic; j++) hiliml += ' <br/>';
		}
		var div = document.createElement('div');
		div.className = 'find_result_card';		
		if (r._promo) div.innerHTML = '<iframe class="promo_card" frameborder="0" scrolling="no" src="' + constant.V2_BASE_URL + '/dart?' + r.query + '&view=card"></iframe>';
		else div.innerHTML = '<div class="find_card">' +
			'<div class="num">' + (i + 1) + '</div><div class="spec_title">' + (specialist_is_long ? '<div style="float: right;">...</div><div style="width: 155px; float: left; overflow: hidden;">' : '') + specialist_searched + (specialist_is_long ? '</div>' : '') + '</div><br />' +
			(!isNaN(r.score) && r.score !== null ? 
			'<div class="match_score"><font class="num_m">' + r.score + '%</font><br /><font class="txt">match<br />score</font></div>' :
			'<div class="match_pic"><img style="width: 66px; height: 61px;" src="' + constant.V2_BASE_URL + '/v/' +
			(r.photo ? 
			r.photo :
			'/theme/images/find_card_' + (r.gender == 'F' ? 'fe' : '') + 'male.gif'
			) +
			'" /></div>'
			) +
			'<br />' +
			'<div class="fname"><a class="fname" onclick="' + r.profile_onclick + '" href="' + constant.V2_BASE_URL + '/' + r.profile_uri + '">' + r.first_name + (r.middle_name ? ' ' + r.middle_name.substr(0, 1) + '.' : '') + '</a></div>' +
			'<div class="lname"><a class="lname" onclick="' + r.profile_onclick + '" href="' + constant.V2_BASE_URL + '/' + r.profile_uri + '">' + r.last_name + '</a></div>' +
			'<div class="txt">' + (r.city ? r.city + ', ' : '') + r.state + '<br />' + dist_friendly(r.distance) + ' away</div>' +
			'<div class="hilites">' +
				hiliml +
			'</div>' +
			'<center><a onclick="' + r.profile_onclick + '" href="' + constant.V2_BASE_URL + '/' + r.profile_uri + '">' + '<img src="' + constant.V2_IMG_URL + constant.THEME_FIND_BUTTON_GOTOPROFILE + '" border="0" /></a>' + 
			'<a href="#" onclick="VTLS.Find.compare(' + r.i + ', \'compare_' + r.i + '\'); return false;"><img id="compare_' + r.i + '" src="' + constant.V2_IMG_URL + (VTLS.Compare.inlist(r) !== false ? constant.THEME_FIND_COMPARE_ADDED : constant.THEME_FIND_COMPARE_ADD) + '" border="0" /></a></center>' +
			'</div>';
		divr.appendChild(div);
	}
}

function render_list(rs) {
	var divr = $('results');
	var l = rs.length;
	if (l < 1) {
		render_empty();
		return;
	}
	divr.innerHTML = '<div style="width: 100%;">' +
		'<div class="pm_chk_crn_container">' +
			'<d class="pm_chk_top"><b class="pm_chk_b1"></b><b class="pm_chk_b2"></b><b class="pm_chk_b3"></b><b class="pm_chk_b4"></b></b>' +
			'<div class="pm_chk_crn_box" id="results_list">' +
			'</div>' +
			'<b class="pm_chk_bottom"><b class="pm_chk_b4"></b><b class="pm_chk_b3"></b><b class="pm_chk_b2"></b><b class="pm_chk_b1"></b></b>' +
		'</div>' +
	'</div>';
	divr = $('results_list');
	var tbl = document.createElement('table');
	tbl.style.width = '100%';
	tbl.cellSpacing = '0';
	tbl.cellPadding = '0';
	tbl.border = '0';
	var tr, td;
	tr = tbl.insertRow(-1);
	td = tr.insertCell(-1);
	td.verticalAlign = 'top';
	td.innerHTML = '<div class="resultHeader1">Name</div>' +
		'<div class="resultHeader2">Address</div>' +
		'<div class="resultHeader3">Specialty</div>' +
		'<div class="resultHeader4">Highlights</div>';
	for (var i = 0; i < l; i++) {
		var r = rs[i];
		
		if (!r._promo) {
			var hili = r.highlight, hilic = hili.length, hiliml = '';
			if (hilic > 0) {
				hiliml  = '<ul style="padding: 0px 0px 0px 12px; margin-top: 0px;">';
				for (var j = 0; j < hilic; j++) {
					hiliml += '<li>' + hili[j] + '</li>';
				}
				hiliml += '</ul>';
			}
			else {
				hiliml = '';
			}
		}
		tr = tbl.insertRow(-1);
		td = tr.insertCell(-1);
		td.verticalAlign = 'top';
		td.className = (i % 2 == 0 ? 'on' : 'off');
		
		if (r._promo) td.innerHTML = '<iframe class="promo_list" frameborder="0" scrolling="no" src="' + constant.V2_BASE_URL + '/dart?' + r.query + '&view=list"></iframe>';
		else td.innerHTML = '<div class="result1">' +
				'<a onclick="' + r.profile_onclick + '" href="' + constant.V2_BASE_URL +'/' + r.profile_uri + '" style="font-weight: normal;" class="txtBlue16">' + r.display_name + '</a><br/><br/>' +
				'<a onclick="' + r.profile_onclick + '" href="' + constant.V2_BASE_URL + '/' + r.profile_uri + '">' + '<img src="' + constant.V2_IMG_URL + constant.THEME_FIND_BUTTON_GOTOPROFILE + '" border="0" /></a><a href="#" onclick="VTLS.Find.compare(' + r.i + ', \'compare_' + r.i + '\'); return false;"><img id="compare_' + r.i + '" src="' + constant.V2_IMG_URL + (VTLS.Compare.inlist(r) !== false ? constant.THEME_FIND_COMPARE_ADDED : constant.THEME_FIND_COMPARE_ADD) + '" border="0" /></a></div>' +
			'</div>' +
			'<div class="result2">' +
				(r.city ? r.city + ', ' : '') + r.state + '<br />' + dist_friendly(r.distance) + ' away' +
			'</div>' +
			'<div class="result3">' +
				r.display_title + '<br/>' +
			'</div>' +
			'<div class="result4">' +
				hiliml +
			'</div>';
	}
	divr.appendChild(tbl);
}

var gmap, gaddr, gcoder, gcoderc, gbound;
function render_map(rs) {
	var divr = $('results_map');
	if (!divr) {
		divr = $('results');
		divr.innerHTML = '<div id="gmap_canvas" style="float: right; width: 48%; height: 500px; border:0px solid black;">' +
			'</div><div id="results_map" style="float: left; width: 48%; border:0px solid black; margin:0px 5px 0px 10px"></div>';
		divr = $('results_map');
		gmap = new GMap2($('gmap_canvas'));
		gmap.addControl(new GLargeMapControl());
		gmap.setCenter(new GLatLng(40, -96), 3);
		if (!gcoder) gcoder = new GClientGeocoder();
	}
	divr.innerHTML = '';
	gmap.clearOverlays();
	gbound = new GLatLngBounds();
	gcoderc = rs.length;
	var l = rs.length;
	if (l < 1) {
		render_empty(divr);
		return;
	}
	for (var i = 0; i < l; i++) {
		var r = rs[i];
		// add to list
		var div = document.createElement('div');
		div.className = 'find_result_card';
		if (r._promo) div.innerHTML = '<iframe class="promo_map" frameborder="0" scrolling="no" src="' + constant.V2_BASE_URL + '/dart?' + r.query + '&view=map"></iframe>';
		else div.innerHTML = '<div class="find_card_map">' +
			'<div class="num">' + (i + 1) + '</div><div class="spec_title">' + specialist_searched + '</div><br/><br/><div style="float: right;"><img src="' + constant.V2_IMG_URL + '/markers/Google_Drop_Gray.png" id="gmap_marker_' + i +'" border="0" /></div>' +
			'<div class="fname"><a class="fname" onclick="' + r.profile_onclick + '" href="' + constant.V2_BASE_URL + '/' + r.profile_uri + '">' + r.first_name + (r.middle_name ? ' ' + r.middle_name.substr(0, 1) + '.' : '') + '</a></div>' +
			'<div class="lname"><a class="lname" onclick="' + r.profile_onclick + '" href="' + constant.V2_BASE_URL + '/' + r.profile_uri + '">' + r.last_name + '</a></div>' +
			'<div class="txt" style="height:60px; margin-top:6px; margin-bottom:12px;">' + (r.line1 ? r.line1 + (r.line2 ? ', ' : '<br/>') : '') + (r.line2 ? r.line2 + '<br/>' : '') + (r.city ? r.city + ', ' : '') + r.state + '<br />' + dist_friendly(r.distance) + ' away</div>' +
			'<a onclick="' + r.profile_onclick + '" href="' + constant.V2_BASE_URL + '/' + r.profile_uri + '">' + '<img src="' + constant.V2_IMG_URL + constant.THEME_FIND_BUTTON_GOTOPROFILE + '" border="0" /></a><a href="#" onclick="VTLS.Find.compare(' + r.i + ', \'compare_' + r.i + '\'); return false;"><img id="compare_' + r.i + '" src="' + constant.V2_IMG_URL + (VTLS.Compare.inlist(r) !== false ? constant.THEME_FIND_COMPARE_ADDED : constant.THEME_FIND_COMPARE_ADD) + '" border="0" /></a>' +
			'</div>';			
			
		divr.appendChild(div);
		
		// add to map
		if (r._promo) {
			gmap_center();
		}
		else {
			if (!r.lat) {
				gmap_geocode.add(r, i);
			}
			else {
				gmap_marker(r, i);
				gmap_center();
			}
		}
		
	}
	if (!gmap_geocode.empty()) gmap_geocode.go();
	
}

function gmap_geocode(r, i) {
	gcoder.getLatLng((r.line1 ? r.line1 + ', ' : '') + (r.city ? r.city + ', ' : '') + r.state, function(point) {
		if (point) {
			r.lat = point.lat();
			r.lng = point.lng();
			gmap_marker(r, i);
		}
		gmap_center();
		if (!gmap_geocode.empty()) gmap_geocode.go();
	});
}
gmap_geocode.queue = [];
gmap_geocode.add = function(r, i) { gmap_geocode.queue.push([r, i]); }
gmap_geocode.go = function() { if (!gmap_geocode.empty()) gmap_geocode.apply(this, gmap_geocode.queue.shift()); }
gmap_geocode.empty = function() { return (gmap_geocode.queue.length < 1); }

function gmap_marker(r, i) {
	var info = '<p><b>' + r.display_name + '</b><br/>' + (r.line1 ? r.line1 + '<br/>' : '') + (r.line2 ? r.line2 + '<br/>' : '') + (r.city ? r.city + ', ' : '') + r.state + '</p>';
	info    += '<form onsubmit="window.open(\'' + constant.V2_BASE_URL + '/doctor/profile/directions/print/?ppid=' + r.provider_practice_id + '&target=' + '\' + encodeURIComponent($(\'dir_from_' + i + '\').value)); return false;">Get directions from<br/><input size="25" id="dir_from_' + i + '" type="text" /><input type="submit" value="Go"/></form>';
	
	var icon = new GIcon();
	icon.shadow = constant.V2_IMG_URL + '/markers/Google_Shadow.png';
	icon.iconSize = new GSize(34, 44);
	icon.shadowSize = new GSize(65, 44);
	icon.iconAnchor = new GPoint(9, 34);
	icon.infoWindowAnchor = new GPoint(9, 2);
	icon.infoShadowAnchor = new GPoint(18, 25);
	icon.image = constant.V2_IMG_URL + '/markers/'+ constant.THEME_GOOGLE_ICON + (i + 1) + '.gif';
	
	var point = new GLatLng(r.lat, r.lng);
	var marker = new GMarker(point, icon);
	marker.bindInfoWindowHtml(info);
	
	var marker_ref = $('gmap_marker_' + i);
	if (marker_ref) {
		marker_ref.src = icon.image;
		marker_ref.info = info;
		marker_ref.marker = marker;
		marker_ref.style.cursor = 'pointer';
		marker_ref.onclick = function() { if (this.marker) this.marker.openInfoWindowHtml(this.info); } 
	}
	
	gbound.extend(point);
	gmap.addOverlay(marker);

}
function gmap_center() {
	gcoderc--;
	if (gcoderc > 0) return;
	gmap.setCenter(gbound.getCenter());
	gmap.setZoom(Math.min(14, gmap.getBoundsZoomLevel(gbound)));
}

function pager(page_count, lo, hi, total) {
	var d = $('find_paginate');
	if (total == 0) {
		d.innerHTML = 'No results';
		return;
	}
	

	var curpage = VTLS.Find.page.current;
	var pagepad = 2;
	var pagepadx2 = pagepad * 2;
	var sn = Math.max(curpage + 1 - pagepad, 1);
	var en = Math.min(curpage + 1 + pagepad, page_count);
	if (page_count > pagepad * 2 && en - sn < pagepad * 2) {
		var dn = (pagepad * 2) - (en - sn);
		if (sn == 1) en += dn;
		else sn -= dn;
	}

	var ml = '';
	
	ml += '<a href="#" onclick="VTLS.Find.page.prev(); return false;" class="numprev">' + (curpage > 0 ? 'prev' : '&nbsp;') + '</a><div class="numcont">';
	for (var i = sn; i <= en; i++) {
		var istr = i;
		if (i == sn && sn != 1) istr = '&hellip; ' + istr;
		else if (i == en && en != page_count) istr = istr + ' &hellip;';
		ml += '<a class="num' + (curpage + 1 == i ? ' numcur' : '') + '" href="#" onclick="VTLS.Find.page.goto(' + (i - 1) + '); return false;">' + istr + '</a> ';
	}
	
	ml += '</div><a href="#" onclick="VTLS.Find.page.next(); return false;" class="numnext">' + (curpage + 1 < page_count ? 'next' : '&nbsp;')  + '</a>';
	ml += '<div style="clear:both;"></div>Result' + (hi - lo > 0 ? 's' : '') + ' ' + lo + ' to ' + hi + ' of ' + total;
	d.innerHTML = ml;

	$('find_paginate_2').innerHTML = ml;

}

function dist_friendly(d) {
	if (d < 1) return '&lt; 1 mile';
	else if (d == 1) return '1 mile';
	else return d + ' miles';
}

var renderfn = qookie.read('find_render');
switch (renderfn) {
	default:
	case 'card': renderfn = render_card; break;
	case 'map':  renderfn = render_map; break;
	case 'list': renderfn = render_list; break;
}
VTLS.Find.render = renderfn;
VTLS.Find.pager = pager;

function indexOf2(arr, el) {
	for (var i = 0, l = arr.length; i < l; i++) if (arr[i] == el) return i;
	return -1;
}

var onResults_first = true, slider = [];
VTLS.Find.subscribe('onResults', function(rs, note) {
	$('find_go_wait').style.display = 'none';
	$('find_go_btn').style.display = 'block';
	if (typeof rs != 'object' || rs.length < 1) {
		$('error').innerHTML = 'No results found. Please try broadening your search criteria.';
		$('results_block').style.display = 'none';
		return;
	}
	else if (typeof note == 'string' && note.length > 0) {
		$('note').style.display = 'none';
	}
	else {
		$('note').style.display = 'none';
	}
	
	var elfmn = $('find_match_num');
	elfmn.c = 0;
	elfmn.innerHTML = '--';

	// Augment rs
	for (var i = 0, l = rs.length; i < l; i++) {
		var r = rs[i];
		if (r._promo) continue;
		//r.profile_onclick = 'return prof_gate(\'' + r.master_id + '\', \'' + r.last_name + '\');';
	}

	$('results_block').style.display = 'block';
	
	// Add languages for this result set
	var ulangs = [], langs = [], lt, i, l = rs.length, j, k, langel = $('filter_lang_sel'), langelv = langel.value;
	for (i = 0; i < l; i++) {
		if (rs[i]._promo) continue;
		lt = rs[i].languages.split(',');
		for (j = 0, k = lt.length; j < k; j++) langs.push(lt[j].replace(/^\s+|\s+$/g, ''));
	}
	for (i = 0, l = langs.length; i < l; i++) {
		if (langs[i].length > 0 && langs[i] != 'English' && indexOf2(ulangs, langs[i]) < 0) {
			ulangs.push(langs[i]);
		}
	}
	ulangs.sort();
	VTLS.Dom.selectClear(langel);
	VTLS.Dom.selectAdd(langel, '', 'No preference');
	for (i = 0, l = ulangs.length; i < l; i++) VTLS.Dom.selectAdd(langel, ulangs[i], ulangs[i]);
	langel.value = langelv;
	langel.onchange();
	
	// Init sliders
	for (var s in VTLS.Find.slider) if (VTLS.Find.slider.hasOwnProperty(s)) {
		if (onResults_first) slider[s] = YAHOO.widget.Slider.getHorizSlider($('slider_' + s + '_bg'), $('slider_' + s), 0, 140, 35);
		slider[s].setValue(+((VTLS.Find.slider[s] * 35) + 70), true, true, true);
		if (onResults_first) (function(s) {
			slider[s].subscribe('slideEnd', function() {
				VTLS.Find.slider[s] = +((slider[s].getValue() - 70) / 35);
				if (VTLS.Find.rank_played()) $('sort_sel').value = 'score';
				else $('sort_sel').value = 'distance';
				$('sort_sel').onchange();
			});
		})(s);
	}
	onResults_first = false;
});

var specialist_searched = '';
var specialist_is_long = false;
var specialist_longs = {'101':1,'131':1,'117':1,'119':1,'142':1,'161':1};
VTLS.Find.subscribe('beforeRequest', function(frm) {
	var xptise = $('expertise').value;
	find_view(VTLS.Find.render);	
	$('find_go_btn').style.display = 'none';
	$('find_go_wait').style.display = 'block';
	$('error').innerHTML = '';
	$('results_block').style.display = 'none';
	var sid = $('specialist_id');
	if(xptise != constant.EXPERTISE_TIP) {
		expertise_str = 'Expert in "' + xptise.toLowerCase() + '"';
		if(expertise_str.length >= 28) specialist_is_long = true;
			specialist_searched = expertise_str;
	}
	else if(sid.value != '') {
		specialist_searched = sid.options[sid.selectedIndex].text.replace(/\([^)]+\)/g, '');
		specialist_is_long = specialist_longs.hasOwnProperty(sid.value);
	}
});

VTLS.Find.subscribe('onError', function(error) {
	$('find_go_wait').style.display = 'none';
	$('find_go_btn').style.display = 'block';
	$('results_block').style.display = 'none';
	$('error').innerHTML = error;
});


VTLS.Find.subscribe('afterFilter', function(rs, n) {
	var el = $('find_match_num');
	if (!el.c) el.c = 0;
	el.target = n;
	if (el.timer) clearInterval(el.timer);
	el.timer = setInterval(function() {
		if (el.c == n) {
			clearInterval(el.timer);
			return;
		}
		if (n > el.c) el.c++;
		else el.c--;
		el.innerHTML = el.c;
	}, 1);
});


VTLS.Find.subscribe('afterRank', function(sn) {
	$('find_match_exact_num').innerHTML = sn;
});

VTLS.Find.subscribe('onRefresh', function () {
	var played = this.rank_played();
	if (!played) {
		if ($('sort_sel').value == 'score') {
			$('sort_sel').value = 'distance';
			VTLS.Find.sort_type = 'distance';
		}
		$('sort_sel_score').disabled = true;
		$('find_match_exact').style.visibility = 'hidden';
	}
	else {
		if (VTLS.Find.sort_type == 'score') $('find_match_exact').style.visibility = 'visible';
		$('sort_sel_score').disabled = false;
	}
});

VTLS.Find.subscribe('onPrefLoad', function() {
	$('sort_sel').value = this.sort_type;
	for (var s in this.filter) if (this.filter.hasOwnProperty(s)) $('filter_' + s).checked = this.filter[s];
	else $('filter_lang_sel').value = this.filter.lang;
});

function specialist_id_change(sel) {
	var fsid = $('field_specialty_id');
	var expr = $('expertise');
	if (sel.value == '') {
		//fsid.style.display = 'none';
		if (expr.onblur) expr.onblur();
		expr.style.display = 'block';
	}
	else {
		//expr.style.display = 'none';
		//expr.value = '';
		fsid.style.display = 'block';
	}
}

function lang_change(sel, chk) {
	var b, filter_lang = $('filter_lang');
	var haslang = (sel.value != '');
	b = ((!chk || filter_lang.checked) && haslang);
	VTLS.Find.filter.lang = (b ? sel.value : false);
	filter_lang.checked = b;
	filter_lang.disabled = !haslang;
	VTLS.Find.refresh();
}

function find_recall(post, do_search) {
	if (!post) return;
	var p = 0;
	if (post.specialist_id) {
		p++;
		VTLS.Dom.selectByValue($('specialist_id'), post.specialist_id, true);
		if (post.field_specialty_id) {
			VTLS.Dom.selectByValue($('field_specialty_id'), post.field_specialty_id, true);
		}
	}
	if (post.expertise) {
		p++;
		$('expertise').onfocus();
		$('expertise').value = post.expertise;
	}
	else {
		$('expertise').value = '';
		$('expertise').onblur();
	}
	if (post.location) {
		p++;
		$('location').onfocus();
		$('location').value = post.location;
	}
	if (post.distance) {
		VTLS.Dom.selectByValue($('distance'), post.distance, true);
	}
	if (post.review) {
		$('review').value = post.review;
	}
	if (post.ins_company_id) $('ins_company_id').default_company_id = post.ins_company_id;
	//if (post.ins_network_id) $('ins_network_id').default_network_id = $('ins_network_id').value = post.ins_network_id;
	if (post.ins_plan_id) $('ins_plan_id').default_plan_id = $('ins_plan_id').value = post.ins_plan_id;
	if (post.ins_company_id) {
		ins_company_ac.textboxFocusEvent.fire(ins_company_ac);
		$('ins_company_input').value = VTLS.Res.ins_company[post.ins_company_id];
		ins_company_ac._bItemSelected = true
		VTLS.Dom.selectByValue($('ins_company_id'), post.ins_company_id, true);
	}
	VTLS.Find.pref_load();
	if (p > 1 && (!post.hasOwnProperty('do_search') || post.do_search == '1')) {
		$('find_form').onsubmit();
	}
}

function find_view(render_func, dorefresh) {
	for (var i = 1; i <= 3; i++) $('tab_' + i).className = 'tab_off';
	var h;
	if (render_func == render_card) {
		$('tab_1').className = 'tab_on';
		h = 1000;
	}
	else if (render_func == render_list) {
		$('tab_2').className = 'tab_on';
		h = 1350;
	}
	else {
		$('tab_3').className = 'tab_on';
		h = 1300;
	}
	VTLS.Find.render = render_func;
	$('find_table').style.height = h + 'px';
	if (dorefresh) VTLS.Find.refresh();
}

VTLS.Compare.subscribe('onAdd', function(who) {
	var cel = $('compare_' + who.i);
	if (cel) cel.src = constant.V2_IMG_URL + constant.THEME_FIND_COMPARE_ADDED;
	compare_refresh();
});
VTLS.Compare.subscribe('onRemove', function(who) {
	var cel = $('compare_' + who.i);
	if (cel) cel.src = constant.V2_IMG_URL + constant.THEME_FIND_COMPARE_ADD;
	compare_refresh();
});
VTLS.Compare.subscribe('onMaxReached', function() {
	alert('The compare feature is limited to 3 doctors per comparison.');
});

function compare_refresh() {
	var r, i, l, cel, cex, cl = VTLS.Compare.list.length;
	for (i = 0; i < 3; i++) {
		cel = $('compare_slot_' + (i + 1));
		cex = $('compare_x_' + (i + 1));
		if (cl > i) {
			r = VTLS.Compare.list[i];
			cel.parentNode.style.backgroundImage = 'url(' + constant.V2_IMG_URL + '/find_compare_on.jpg)';
			cel.innerHTML = 'Dr. ' + r.last_name;
			cex.style.visibility = 'visible';
		}
		else {
			cel.parentNode.style.backgroundImage = 'url(' + constant.V2_IMG_URL + '/find_compare_off.jpg)';
			cel.innerHTML = 'Click "compare"';
			cex.style.visibility = 'hidden';
		}
	}
}

function find_form_submit(frm) {
	try {
		VTLS.Find.request(frm);
		VTLS.Compare.remove(2);
		VTLS.Compare.remove(1);
		VTLS.Compare.remove(0);		
	} 
	catch (e) {
		void(0);
	}
	return false;
}

function soundex(str) {
	var i, j, l, r, p = 3;
	var m = {'BFPV': 1, 'CGJKQSXZ': 2, 'DT': 3, 'L': 4, 'MN': 5, 'R': 6};
	var s = (str+'').toUpperCase().replace(/[^A-Z]/g, '').split('');
	var r = []
	var sl = s.length;
	for (i = -1, l = sl; ++i < l;) {
		for (j in m) {
			if (j.indexOf(s[i]) >= 0 && r[r.length-1] != m[j] && r.push(m[j])) {
				break; 
			}
		}
	}
	return r.length > p && (r.length = p), +(r.join('') + (new Array(p - r.length + 1)).join('0'));
}

function soundexy(str1, str2) {
	return (Math.abs(soundex(str1) - soundex(str2)) < soundexy.k);
}
soundexy.k = 5;

function prof_gate(mid, lname) {
	if (constant.ACCEPTED_TERMS || !VTLS.Gate) return true;
	VTLS.Gate.show('terms', {'mid' : mid, 'lname' : lname});
	return false;
}

var ins_company_ac = null;
function ins_init() {
	var ins_company_arr = [];
	for (var k in VTLS.Res.ins_company) if (VTLS.Res.ins_company.hasOwnProperty(k)) {
		ins_company_arr.push([VTLS.Res.ins_company[k], soundex(VTLS.Res.ins_company[k]), k]);
	}
	var ins_company_ds = new YAHOO.util.LocalDataSource(ins_company_arr);
	ins_company_ds.responseSchema = {fields : ['company', 'soundex', 'icid']};
	ins_company_ac = new YAHOO.widget.AutoComplete('ins_company_input', 'ins_company_rs', ins_company_ds);
	ins_company_ac.applyLocalFilter = true;
	ins_company_ac.allowBrowserAutocomplete = false;
	ins_company_ac.queryDelay = 0.1
	ins_company_ac.forceSelection = true;
	ins_company_ac.setHeader('Please select an insurance company below.');
	ins_company_ac.filterResults = function(sQuery, oFullResponse, oParsedResponse, oCallback) {
		sQuery = decodeURIComponent(sQuery);
		var matches = [];
		var matches_max = ins_company_ac.maxResultsDisplayed;
		var matches_i = {};
		
		var sQueryl = sQuery.length;
		if (sQueryl < 3) {
			for (var i = 0; i < oFullResponse.length; i++) {
				if (oFullResponse[i][0].toLowerCase().substr(0, sQueryl) == sQuery.toLowerCase()) {
					matches[matches.length] = oParsedResponse.results[i];
					matches_i[i] = 1;
				}
				if (matches.length >= matches_max) break;
			}
		}
		else {
			for (var i = 0; i < oFullResponse.length; i++) {
				if (oFullResponse[i][0].toLowerCase().indexOf(sQuery.toLowerCase()) >= 0) {
					matches[matches.length] = oParsedResponse.results[i];
					matches_i[i] = 1;
				}
				if (matches.length >= matches_max) break;
			}
			if (matches.length < matches_max) for (var i = 0; i < oFullResponse.length; i++) {
				if (!matches_i[i] && Math.abs(soundex(sQuery) - oFullResponse[i][1]) <= soundexy.k) {
					matches[matches.length] = oParsedResponse.results[i];
				}
				if (matches.length >= matches_max) break;
			}
		}
		oParsedResponse.results = matches;
		return oParsedResponse;
	}
	ins_company_ac.itemSelectEvent.subscribe(function(sType, aArgs) { 
		VTLS.Dom.selectByValue($('ins_company_id'), aArgs[2][2], true);
		var obj = $('ins_company_input');
		var pos = 0;
		if (obj.createTextRange) {
			var range = obj.createTextRange();
			range.move("character", pos);
			range.select();
		}
		else if (obj.selectionStart) {
			obj.focus();
			obj.setSelectionRange(pos, pos);
		}
	});
	ins_company_ac.selectionEnforceEvent.subscribe(function(sType, aArgs) { 
		VTLS.Dom.selectByValue($('ins_company_id'), '', true);
	});
	ins_company_ac.textboxBlurEvent.subscribe(function(sType, aArgs) {
		var inpt = aArgs[0].getInputEl();
		if (inpt.value == '') {
			inpt.style.color = '#888';
			inpt.value = 'Type in insurance company';
			inpt._qd = false;
		}
	});
	ins_company_ac.textboxBlurEvent.fire(ins_company_ac);
	ins_company_ac.textboxFocusEvent.subscribe(function(sType, aArgs) {
		var inpt = aArgs[0].getInputEl();
		if (!inpt._qd) {
			inpt.value = '';
			inpt.style.color = '#000';
			inpt._qd = true;
		}
	});
}
