// default color changing
var okColor='#675C52';
var erColor='#f00';

Array.prototype.in_array = function(p_val) {
	for (var i = 0, l = this.length; i < l; i++) {
		if (this[i] == p_val) {
			return true;
		}
	}
	return false;
};

function validate_form() {
	// stub function
	return true;
}

function expand_info(info_id, link_id) {
	document.getElementById(info_id).style.display = 'block';
	document.getElementById(link_id).innerHTML = '';
}

function validate_field(field_type, field_id, error_msg, label_id) {
	var field_valid = false;
	if (label_id == null) label_id = 'lbl_' + field_id;
	switch (field_type) {
		case 'text':
			field_valid = validate_text_field(field_id);
			break;
		case 'basic_email':
			field_valid = validate_basic_email(field_id);
			break;
		case 'email':
			field_valid = validate_email(field_id);
			break;
		case 'checkbox':
			field_valid = validate_checkbox(field_id);
			break;
		case 'num_only':
			field_valid = validate_text_field(field_id);
			if (field_valid) field_valid = validate_digits(field_id);
		break;
			case 'radio_group':
			field_valid = validate_radio_group(field_id);
			break;
		case 'cc_exp_set':
			field_valid = validate_cc_exp_set(field_id);
			break;
		case 'select':
			field_valid = validate_select_field(field_id);
			break;
	}
	if (field_valid) {
		if (!document.getElementById(label_id)) {
			alert('Could not find label id: ' + label_id);
		} else {
			document.getElementById(label_id).style.color = okColor;
		}
		return "";
	} else {
		if (!document.getElementById(label_id)) {
			alert('Could not find label id: ' + label_id);
		} else {
			document.getElementById(label_id).style.color = erColor;
		}
		return error_msg;
	}
}

function validate_radio_group(group_name) {
	if (!document.getElementsByName(group_name)) {
		alert('Could not find field group: ' + group_name);
		return false;
	}
	radios = document.getElementsByName(group_name);
	for (i = 0; i < radios.length; i++) {
		if (radios[i].checked) return true;
	}
	return false;
}

function validate_internal_label_text_field(field_id, error_msg, default_text) {
	var field_valid = false;
	if (default_text == null) default_text = '';
	field_valid = validate_default_text_field(field_id, default_text);
	if (field_valid) {
		document.getElementById(field_id).style.color = okColor;
		return "";
	} else {
		document.getElementById(field_id).style.color = erColor;
		return error_msg;
	}
}

function validate_internal_label_email_field(field_id, error_msg, default_text) {
	var field_valid = false;
	if (default_text == null) default_text = '';
	field_valid = validate_default_email_field(field_id, default_text);
	if (field_valid) {
		document.getElementById(field_id).style.color = okColor;
		return "";
	} else {
		document.getElementById(field_id).style.color = erColor;
		return error_msg;
	}
}

function validate_text_field(field_id) {
	if (!document.getElementById(field_id)) {
		alert('Could not find field id: ' + field_id);
		return false;
	}
	if (document.getElementById(field_id).value == "") {
		return false;
	} else {
		return true;
	}
}

function validate_default_text_field(field_id, default_text) {
	if (!document.getElementById(field_id)) {
		alert('Could not find field id: ' + field_id);
		return false;
	}
	if (document.getElementById(field_id).value == default_text) return false;
	if (document.getElementById(field_id).value == "") {
		document.getElementById(field_id).value = default_text;
		return false;
	} else {
		return validate_email(field_id);
	}
}
	
function validate_checkbox(field_id) {
	if (!document.getElementById(field_id)) {
		alert('Could not find field id: ' + field_id);
		return false;
	}
	if (document.getElementById(field_id).checked == false) {
		return false;
	} else {
		return true;
	}
}

function validate_select_field(field_id) {
	if (!document.getElementById(field_id)) {
		alert('Could not find field id: ' + field_id);
		return false;
	}
	if (document.getElementById(field_id).selectedIndex == 0) {
		return false;
	} else {
		return true;
	}
}

function validate_digits(field_id) {
	if (!document.getElementById(field_id)) {
		alert('Could not find field id: ' + field_id);
		return false;
	}
	if (document.getElementById(field_id).value == "") {
		return false;
	} else {
		return true;
	}
	return false;
}

function validate_basic_email(field_id) {
	if (validate_text_field(field_id)) {
		var str = document.getElementById(field_id).value;
		return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
	} else {
		return false;
	}
}

function validate_email(field_id) {
	var email = document.getElementById(field_id).value;
	var filter = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i;
	if (filter.test(email)) {
		return true;
	} else {
		return false;
	}
}

function is_numeric(evt) {
	var charCode = (evt.which) ? evt.which: evt.keyCode;
	if (charCode > 31 && (charCode < 48 || charCode > 57)) return false;
	return true;
}

function is_phone_char(evt) {
	var charCode = (evt.which) ? evt.which: evt.keyCode;
	if (charCode ==  32) return true;
	if (charCode ==  43) return true;
	if (charCode ==  45) return true;
	if (charCode ==  46) return true;
	if (charCode == 120) return true;
	if (charCode ==  88) return true;
	if (charCode == 101) return true;
	if (charCode ==  69) return true;
	if (charCode == 116) return true;
	if (charCode ==  84) return true;
	if (charCode > 31 && (charCode < 48 || charCode > 57)) {
		return false;
	}
		return true;
}

function alert_char_code(evt) {
	var charCode = (evt.which) ? evt.which: event.keyCode;
	alert(charCode);
	return true;
}

function data_change(field) {
	var check = true;
	var value = field.value;
	for (var i = 0; i < field.value.length; ++i) {
		var new_key = value.charAt(i);
		if (((new_key < "0") || (new_key > "9")) && !(new_key == "")) {
			check = false;
			break;
		}
	}
	if (!check) {
		field.style.backgroundColor = "red";
	} else {
		field.style.backgroundColor = "white";
	}
}

function valueFocus(e, d) {
	if (e.value == d) e.value = '';
}

function valueBlur(e, d) {
	if (e.value == '') e.value = d;
}

function toggle_info(div_i){
	if (document.getElementById('info_'+div_i).style.display == 'none') {
		document.getElementById('info_'+div_i).style.display = 'block';
		document.getElementById('toggle_link_'+div_i).innerHTML = '<a href="javascript:toggle_info('+div_i+');">less...</a>';
	} else {
		document.getElementById('info_'+div_i).style.display = 'none';
		document.getElementById('toggle_link_'+div_i).innerHTML = '<a href="javascript:toggle_info('+div_i+');">more...</a>';
	}
}

function toggle_info_plus_minus(div_i){
	if (document.getElementById('info_'+div_i).style.display == 'none') {
		document.getElementById('info_'+div_i).style.display = 'block';
		document.getElementById('toggle_link_'+div_i).innerHTML = '<a href="javascript:toggle_info_plus_minus('+div_i+');" style="text-decoration: none;">[-]</a>';
	} else {
		document.getElementById('info_'+div_i).style.display = 'none';
		document.getElementById('toggle_link_'+div_i).innerHTML = '<a href="javascript:toggle_info_plus_minus('+div_i+');" style="text-decoration: none;">[+]</a>';
	}
}

function toggle_info_plus_minus_AB(div_i){
	if (document.getElementById('info_'+div_i+'_A').style.display == 'none') {
		document.getElementById('info_'+div_i+'_A').style.display = 'block';
		document.getElementById('info_'+div_i+'_B').style.display = 'block';
		document.getElementById('toggle_link_'+div_i+'_A').innerHTML = '<a href="javascript:toggle_info_plus_minus_AB('+div_i+');" style="text-decoration: none;">[-]</a>';
		document.getElementById('toggle_link_'+div_i+'_B').innerHTML = '<a href="javascript:toggle_info_plus_minus_AB('+div_i+');"  style="text-decoration: none;">[-]</a>';
	} else {
		document.getElementById('info_'+div_i+'_A').style.display = 'none';
		document.getElementById('info_'+div_i+'_B').style.display = 'none';
		document.getElementById('toggle_link_'+div_i+'_A').innerHTML = '<a href="javascript:toggle_info_plus_minus_AB('+div_i+');" style="text-decoration: none;">[+]</a>';
		document.getElementById('toggle_link_'+div_i+'_B').innerHTML = '<a href="javascript:toggle_info_plus_minus_AB('+div_i+');" style="text-decoration: none;">[+]</a>';
	}
}

function toggle_info_expand_only(div_i){
	if (document.getElementById('info_'+div_i).style.display == 'none') {
		document.getElementById('info_'+div_i).style.display = 'block';
		document.getElementById('toggle_link_'+div_i).innerHTML = '';
	} else {
		document.getElementById('info_'+div_i).style.display = 'none';
		document.getElementById('toggle_link_'+div_i).innerHTML = '';
	}
}

function toggle_quiz(div_i){
	if (document.getElementById('info_'+div_i).style.display == 'none') {
		document.getElementById('info_'+div_i).style.display = 'block';
		document.getElementById('toggle_link_'+div_i).innerHTML = '<a href="javascript:toggle_quiz('+div_i+');">Hide Quiz</a>';
	} else {
		document.getElementById('info_'+div_i).style.display = 'none';
		document.getElementById('toggle_link_'+div_i).innerHTML = '<a href="javascript:toggle_quiz('+div_i+');">Take a Quiz</a>';
	}
}

// simulate PHPs in_array function
function in_array( needle, haystack ) {
	var length = haystack.length;
	for( var i = 0; i < length; i++ ) {
		if( haystack[i] == needle ) return true;
	}
	return false;
}

function update_field( field_id, err_msg ) {
	var field_val = $('#'+field_id).val();
	// if field has changed, send data via ajax
	if( window['t_'+field_id] != field_val ){
		$.post(  
			"/ajax/update_field_v5.php",  
			{ field_name:  field_id, field_value: field_val	},  
			function(responseText){  
				// alert(responseText);  
			},
			"text"
		);
	}
	window['t_'+field_id] = field_val;
}

function update_nsn_field( field_id, err_msg ) {
	var wkey      = $('#wkey').val();
	
	if( wkey == '' ) return false;    
	
	var field_val = $('#'+field_id).val();
	// if field has changed, send data via ajax
	if( window['t_'+field_id] != field_val ){
		$.post(  
			"/ajax/update_nsn_field.php",  
			{ wkey: wkey, field_name: field_id, field_value: field_val },  
			function(responseText){  
				// alert(responseText);  
			},
			"text"
		);
	}
	window['t_'+field_id] = field_val;
}

var autofill_specialties = [
	'Addiction Medicine',
	'Allergy & Immunology',
	'Alternative Medicine',
	'Ambulatory',
	'Anesthesiology',
	'Anti-Aging Medicine',
	'Audiology',
	'Back and Neck',
	'Behavioral Medicine',
	'Billing',
	'Billing Office',
	'Cardiology/Thoracic',
	'Cardiovascular Disease',
	'Chiropractor',
	'Collections',
	'Community Health',
	'Consultant',
	'Counseling',
	'Critical Care Medicine',
	'Dermatology',
	'Developmental Disabilites',
	'Diabetes',
	'Digestive Disease',
	'DME',
	'Ear Nose Throat',
	'Eating Disorders',
	'Emergency Medicine',
	'EMR',
	'EMR - Partner',
	'Endocrinology',
	'Endoscopy',
	'Family Practice',
	'Fertility',
	'Gastroenterology',
	'General Medicine',
	'General Practice',
	'Geriatric Medicine',
	'Gynecology',
	'Hand Surgery',
	'Heart Surgery',
	'Hematology',
	'Hematology-Oncology',
	'HIV Specialist',
	'Home Health',
	'Hospice',
	'Hospitalist',
	'Industrial/Workers Comp',
	'Infectious Disease',
	'Integrated Medicine',
	'Internal Medicine',
	'Massage Therapist',
	'Medical Genetics',
	'Mental Health',
	'Mental Health-Other',
	'Mental Health-Psychiatry',
	'Mental Health-Psychology',
	'Mobile Physicians',
	/* 'Multi Specialty', */
	'Nephrology',
	'Neurology',
	'Neuropsychology',
	'Neurosurgical',
	'Nuclear Medicine',
	'Nurse Practitioners',
	'Nursing Homes',
	'Nutrition/Dietary',
	'Ob/Gyn',
	'Obstetrics',
	'Occupational Medicine',
	'Occupational Therapy',
	'Oncology',
	'Ophthalmology',
	'Optometry',
	'Orthopedics',
	'Orthotics & Prosthetics',
	'Osteopathy',
	'Other',
	'Otolaryngology',
	'Outpatient Therapy',
	'Pain Management',
	'Pathology/Laboratory',
	'Pediatric Cardiology',
	'Pediatrics',
	'Phlebology',
	'PhyBillers',
	'Physical Medicine',
	'Physical Therapy',
	'Planned Parenthood',
	'Plastic Surgery',
	'Podiatry',
	'Possible',
	'Preventive Medicine',
	'Primary Care',
	'Proctology',
	'Public Health',
	'Pulmonary Medicine',
	'Radiology/Imaging',
	'Rehabilitation Medicine',
	'Reproductive Endocrinology',
	'Reseller',
	'Rheumatology',
	'School or College',
	'Sleep Medicine/Sleep Lab',
	'Speech/Language Patholgy',
	'Spinal Diagnostics',
	'Sports Medicine',
	'Student',
	'Surgery',
	'Surgery-Colon & Rectal',
	'Surgery-General',
	'Surgery-Neurological',
	'Surgery-Oral/Maxillofacial',
	'Surgery-Orthopaedic',
	'Surgery-Reconstructive/Cosmetic',
	'Surgery-Thoracic',
	'Surgery-Vascular',
	'Transcription',
	'Transportation',
	'Unknown',
	'Urgent Care',
	'Urology',
	'Weight Management',
	'Wound Care'
];

var autofill_suggestions = [
	"ABEL Medical Software, Inc.", 
	"Abraxas Medical", 
	"ACOM Health", 
	"ACSmd", 
	"Accumedic", 
	"Acrendo Medical Software", 
	"A.l. Med", 
	"Advanced Data Systems Corporation", 
	"MedicsPremier PM", 
	"MedicsDocAssistant EHR", 
	"AdvantaChart", 
	"Advantage", 
	"Agastha, Inc", 
	"Agastha Proficient Practice Management", 
	"Agastha Health Records ", 
	"Agility EHR", 
	"Alert Life Sciences Computing, Inc.", 
	"Alert", 
	"AllegianceMD", 
	"AllMed", 
	"Allscripts", 
	"MyWay", 
	"Professional", 
	"Enterprise", 
	"ALMA Information Sytsems ", 
	"TextTALK MD", 
	"Altapoint", 
	"Medical", 
	"EMR", 
	"Alteer", 
	"Alteer Office EMR", 
	"Altos Solutions", 
	"OncoEMR", 
	"Amazing Charts", 
	"American Data", 
	"American Medical Software", 
	"PM Ultra", 
	"Electronic Patient Charts", 
	"AmKai ", 
	"Amakai Enterprise", 
	"AmkaiOffice", 
	"AmakaiCharts ", 
	"Amstor Group", 
	"Antek HealthWare", 
	"DAQ Billing", 
	"Visonary Dream EHR", 
	"Aprima", 
	"AptusSoft", 
	"Aristos Group, Inc", 
	"PECSYS", 
	"ASEC Medical Solutions", 
	"Ascent TIME", 
	"Asmakta", 
	"Therapy Office", 
	"AssistMed, Inc", 
	"Astria Solutions Grp", 
	"docStar", 
	"athenahealth", 
	"athenaCollector", 
	"athenaClinicals", 
	"Avisena", 
	"Axolotl Corp", 
	"Elysium EHR", 
	"Benchmark Systems", 
	"MD Navigator", 
	"BioMedix", 
	"TRAKnet DPM", 
	"Bizmatics", 
	"PrognoCIS EMR", 
	"PrognoCIS Practice Mgt", 
	"Brickell Medical Offices", 
	"Business Computer Applications", 
	"Clinic Management System", 
	"PEARL EHR System", 
	"CAM", 
	"Celerity", 
	"CareLogic Enterprise", 
	"qualifacts", 
	"Catalis, Inc", 
	"Accelerator", 
	"CCA Medical", 
	"CentriHealth, Inc", 
	"Cerner", 
	"Powerworks", 
	"ChartCare", 
	"ChartCare EMR", 
	"ChartLogic", 
	"iAchieve", 
	"ChartWare", 
	"ChiroTouch", 
	"Chorus", 
	"CIMS Group", 
	"ChartEvolve", 
	"Clinix Medical information Services", 
	"Clinix PM", 
	"ClinixMD", 
	"CollaborateMD", 
	"Community Computer Services", 
	"MEDENT", 
	"Compulink", 
	"Advantage EHR", 
	"CompuMED", 
	"Connexin Software, Inc", 
	"Office Practicum", 
	"CosmetiSoft", 
	"Lynx CosmetiSoft", 
	"CPSI ", 
	"Medical Practice EMR", 
	"COU MMS", 
	"Criterions", 
	"The Criterions Medical Suite (TCMS)", 
	"C Tech PM", 
	"CureMD", 
	"DataNet Solutions, Inc", 
	"MedServices", 
	"DAQBilling", 
	"Data Strategies", 
	"DB Coinsultants", 
	"DescripotMED, LLC", 
	"The Chart", 
	"Devington", 
	"digchart", 
	"DigiGuru MD", 
	"DoctorsPartner", 
	"DocuTAP", 
	"DuxWare", 
	"eClinicalWorks", 
	"eclipse Practice Management Software", 
	"Eclipsys ", 
	"Peak Practice", 
	"Sunrise Ambulatory  Care", 
	"Ecognize", 
	"Edge Health Solutions, Inc", 
	"Clinical chartbook", 
	"EdgeMED", 
	"EDImis", 
	"EHS ", 
	"Care Revolution", 
	"Elligence", 
	"e-MDs", 
	"eMDs Solution series", 
	"eMDs chart", 
	"eMDs Bill", 
	"eMedSoft", 
	"EMRgence", 
	"VeinSpec EMR", 
	"Encite, Inc", 
	"EncounterPRO Health Resources", 
	"EncounterPRO EHR", 
	"Epic Systems Corporation", 
	"EpicCare Ambulatory EMR", 
	"ExMedic ", 
	"Experior Healthcare Sytsems", 
	"WebChartEHR", 
	"EZClaim", 
	"EZHealthcare", 
	"EZMed", 
	"First insight Corporation", 
	"MaximumEhes", 
	"FoxMed", 
	"Fox Meadows", 
	"FreeDOM", 
	"FreeDOM Doctors Office Manager", 
	"FreeMED", 
	"GBA Medfx", 
	"GEMMS", 
	"GEMMS One", 
	"GE Healthcare", 
	"Centricity", 
	"MedPlexus", 
	"Glenwood Systems", 
	"GlaceEMR", 
	"gloStream, Inc", 
	"gloEMR", 
	"gloPM", 
	"Global Medical Data, Inc (gmd)", 
	"e-Health Method", 
	"gMed", 
	"gGastro", 
	"Greenway Medical", 
	"PrimeSuite", 
	"PrimeEnterprise", 
	"Harmony MedTec, Intl", 
	"Harmony e/Notes EMR", 
	"HCS International", 
	"Health Care Intranet Technolgoy, Inc", 
	"EyeMD EMR", 
	"Healthcare Resources", 
	"EncounterPRO", 
	"Health Data Services", 
	"FreeDOM", 
	"MedLedger", 
	"HealthFusion", 
	"Meditouch EHR", 
	"Health Highway", 
	"Health Pac", 
	"HPlusPro", 
	"HealthPort", 
	"Companion", 
	"HealthPRO 8000", 
	"Health Probe", 
	"Health Probe Professional", 
	"Health Systems Technology, Inc", 
	"MedPort EMR Lite", 
	"MedPointe EHR", 
	"HealthTec Software, Inc", 
	"HealthTec Fusion", 
	"HealthTec PM", 
	"HealthTec VS", 
	"HeathWare Concepts", 
	"Henry Schein", 
	"HIT Services Group", 
	"Acumen EHR", 
	"HorizonMIS", 
	"Houston Medical", 
	"Imogen Systems", 
	"PerfectMed EHR", 
	"Infinite Software Solutions, inc", 
	"MD-Reports", 
	"Ingenix ", 
	"CareTracker", 
	"Integrated Systems Management, Inc", 
	"OMNIMD EMR", 
	"Integritas", 
	"Agility EHR", 
	"Intivia ", 
	"InSync EMR", 
	"Intuitive Medical Software", 
	"UroChartEHR", 
	"IOS Health Sytsems", 
	"Medios EHR", 
	"iPractice", 
	"iSalus", 
	"OfficeEMR ", 
	"iTech Workshop", 
	"Janoke", 
	"Kareo", 
	"Key Medical Software, Inc", 
	"KeyMed", 
	"KeyChart", 
	"Korvue", 
	"Lajolla", 
	"Lavender & Wyatt", 
	"Essentia Mental Health", 
	"LeonardoMD", 
	"Renaissance", 
	"Life Record EMR", 
	"LinkSource System", 
	"LSS Data Systems", 
	"Medical and Practice Management (MPM) Suite",  
	"MACPractice", 
	"Management Plus", 
	"Marshfield clinic", 
	"CattailsMD", 
	"McKesson ", 
	"Horizon Ambulatory", 
	"Lytec", 
	"Medisoft", 
	"PracticePartner ", 
	"MDConnection", 
	"MDIntelleSys, Inc", 
	"IntelleCHART", 
	"MDLand", 
	"iClinic", 
	"MD Tablet", 
	"MD Navigator", 
	"MDDC", 
	"M.D. Web solutions", 
	"AMCIS Network", 
	"MED3000", 
	"inteGreat", 
	"MedAPPZ", 
	"iSuite", 
	"Medaxis Corp", 
	"ORIGIN", 
	"MedAZ", 
	"MEDAZ Complete", 
	"Practice Plus", 
	"EHR Plus", 
	"MedEZ", 
	"Medcom Soft", 
	"MedcomSoft Record", 
	"MedePresence, LLC", 
	"eSimplify", 
	"MedEvolve", 
	"MedFlow", 
	"Medford MD", 
	"Medical Communications Systems", 
	"Medical Informatics Engineering (MIE)", 
	"MIE EHR", 
	"WebChart EHR", 
	"Medical Office Online", 
	"Medical Software Technology", 
	"Advanced EMR", 
	"Medical Voice Products", 
	"MPS EMR", 
	"Medicat", 
	"Medicmatics.", 
	"Xumix Advantage", 
	"MedicsPremier", 
	"MediSuite", 
	"Medisysinc", 
	"MediSYS EHR", 
	"Meditab ", 
	"Intelligent Medical Software", 
	"MedLink International", 
	"Total Office", 
	"Mednet System", 
	"emr4MD", 
	"MedStar Systems, Inc.", 
	"EMRWorks", 
	"Dr Works", 
	"EZWorks", 
	"TotalWorks", 
	"MedTeam", 
	"MedtuityEMR", 
	"MedWorxs", 
	"MedWorks Billing", 
	"Evolution", 
	"Mellotech", 
	"Meridian EMR", 
	"MicroFour PracticeStudio", 
	"MicroMD", 
	"Midexpro", 
	"Mountainview Software", 
	"MPMsoft", 
	"MPS Remedy", 
	"MTBC", 
	"MTBC EHR", 
	"MyVisionExpress", 
	"nAble Nthtechnology", 
	"nAbleMD", 
	"NCG Medical System", 
	"D-CHART", 
	"NeoDeck Software", 
	"Netsmart Technologies", 
	"Avatar PM", 
	"Avatar CWS", 
	"NextEMR", 
	"NextGen", 
	"NextGen PM", 
	"NextGen EHR", 
	"NexTech Systems, Inc", 
	"Practice 2010", 
	"Nightingale Informatix Corp", 
	"Nightingale RidgeMark", 
	"Nightingale On Demand", 
	"Nortec Software", 
	"Nortec PM", 
	"Nortec EHR", 
	"Noteworthy Medical Systems", 
	"NetPracticePM", 
	"NetPracticeEHR", 
	"NueMD", 
	"NueMD Complete", 
	"NueMD PM", 
	"NueSoft", 
	"NueMD PM", 
	"NueMD EHR", 
	"NueMD Complete", 
	"Office Practicum", 
	"Office Therapy", 
	"OIS - Ophthalmic Imaging Systems", 
	"OIS PM", 
	"OIS EHR", 
	"OmniMD", 
	"OptimumHealth", 
	"MedConnect", 
	"Origin Healthcare Solutions", 
	"EMRge", 
	"P&P Data sytsems", 
	"PAI Rexpert", 
	"PBSI", 
	"PatientNow", 
	"PCC Partner PM", 
	"Pearle computer services", 
	"Penn Medical Informationc Systems, Inc", 
	"EyeDoc EMR", 
	"Phoenix Ortho, LLC", 
	"PMM Healthcare", 
	"Point and Click Solutions", 
	"Portico Systems", 
	"Evolution EMR", 
	"Practice Admin", 
	"Practice Automation", 
	"Practice Fusion", 
	"PRAXIS", 
	"Prime Clinical Systems ", 
	"Patient Chart Manager", 
	"Protologics ProtoMED", 
	"ProVolve Solutions", 
	"Redpine", 
	"PulsePRO", 
	"Pulse Systems", 
	"QHR Technologies Inc.", 
	"ChartCare", 
	"Qualifacts", 
	"CareLogic", 
	"QuickPractice.com", 
	"Raintree System, Inc", 
	"Raintree EMR", 
	"Remsys", 
	"Roach Visionary Systems", 
	"Rosch EMR-Allergy", 
	"Sage", 
	"Sage Intergy PM", 
	"Sage Intergy EHR", 
	"Sajix, Inc", 
	"iHelix", 
	"Scriptnetics, Inc", 
	"MedScribbler", 
	"Secure Infosys", 
	"Sequel Systems", 
	"SequelMed", 
	"Silk Information Systems, Inc.", 
	"Sevocity", 
	"Siemens", 
	"IDX", 
	"Sigmund Software, LLC", 
	"Sigmund", 
	"SmartMD Corporation", 
	"Smartworks", 
	"Soapware", 
	"Soapware Standard", 
	"Soapware Profession", 
	"Solventus ", 
	"Acquifer EMR", 
	"Source Medical", 
	"SpeddySpft USA", 
	"Spring Medical Systems, Inc.", 
	"Spring Charts", 
	"SRSsoft", 
	"SSIMED, Inc", 
	"EMRge", 
	"STI Computer Services, Inc.", 
	"ChartMaker Practice manager", 
	"ChartMaker  Clinical", 
	"StreamlineMD, LLC", 
	"Streamline PM+", 
	"SteamlineEHR", 
	"SuiteMed", 
	"SuiteMed IMS", 
	"SumTime Server", 
	"Sunrize", 
	"Sydasoft", 
	"Synamed, LLC", 
	"TechPro Medical Systems", 
	"Tess Data Systems", 
	"TetriDyne, Inc.", 
	"AeroMD", 
	"TheraManager Software, Inc", 
	"TheraManager", 
	"Therapist Helper", 
	"Total MD", 
	"Total Outsource, Inc.", 
	"ezEMRx Private", 
	"Transmed Network, Inc.", 
	"TransMed Network", 
	"Unifi Technologies, Inc", 
	"Unifi-Med", 
	"Universal EMR Solutions", 
	"The Physicians Solution", 
	"Univeral Software Solutions, Inc", 
	"VersaSuite", 
	"Ulrich Medical Concepts", 
	"Team Chart Concept", 
	"US Oncology", 
	"iKnowMed", 
	"Utech Products, Inc", 
	"EndoSoft", 
	"Vail Information Systems", 
	"Valent Medical Solution, LLC", 
	"Valent EMR", 
	"Varian Medical systems, Inc.", 
	"ARIA Oncology Information System", 
	"VersaSuite", 
	"VersaSuite-EHR", 
	"VersaSuite-EPM", 
	"Vericle, Inc", 
	"Vericle EMR", 
	"VIP Medicine LLC", 
	"SmartClinic", 
	"Vision Infonet", 
	"Vision MDCare+", 
	"Visionary Medical Systems, Inc", 
	"Visionary DREAM EHR", 
	"Waiting Room Solutions", 
	"WebeDoctor", 
	"WinMedStat Pracitce Management Solutions", 
	"Workflow.com", 
	"workflowEMR", 
	"workflowPM", 
	"XLEMR", 
	"ZipChart", 
	"ZipChart EMR", 
	"Zotec", 
	"Zybex"
];
