

/* ************************ */
/* Miscelaneous Functions** */
/* ************************ */


function initialCap(str) {
  return str.substr(0, 1).toUpperCase() + str.substr(1);
}

/** sort event objects byName */
function byname(a,b){
	if(a.name == b.name){return(0); }
	else if(a.name > b.name) { return(1); }
	else if(a.name < b.name) { return(-1); }
}

/** sort event objects byCity */
function bycity(a,b){
	if(a.city == b.city){return(0); }
	else if(a.city > b.city) { return(1); }
	else if(a.city < b.city) { return(-1); }
}

/** sort event objects bystate */
function bystate(a,b){
	if(a.state == b.state){return(0); }
	else if(a.state > b.state) { return(1); }
	else if(a.state < b.state) { return(-1); }
}

/** sort event objects byfocus */
function byfocus(a,b){
	if(a.focus == b.focus){return(0); }
	else if(a.focus > b.focus) { return(1); }
	else if(a.focus < b.focus) { return(-1); }
}

/** sort event objects byindustry */
function byindustry(a,b){
	if(a.industry == b.industry){return(0); }
	else if(a.industry > b.industry) { return(1); }
	else if(a.industry < b.industry) { return(-1); }
}



/* ******************************** */
/* Create Select Field Function *** */
/* ******************************** */

/** given events list of objects returns select field */
function createSelect(events, fieldName){
    var label = initialCap(fieldName);
	var str = '<p><label for="'+fieldName+'">'+label+':</label>';
	str += '<span><select name="'+fieldName+'" id="'+fieldName+'"  onchange="filter()" class="selectbox" >';
	str += '<option value="all">All</option>';
	var seen = [];
	var hasSeen = 0;
	/** sort events by provided field name */
	events = events.sort(eval('by'+fieldName));
	
	/** build select option for each event */
	for(i=0;i<events.length;i++){
		/** make sure only unique events */
		hasSeen = 0;
		for(s=0;s<seen.length;s++){
			if(seen[s] == eval("events[i]."+fieldName)){
				hasSeen = 1;
				break;
			}
		}  
		if(!hasSeen){
		    /** build html and record this event as seen */
			str += '<option value="'+eval("events[i]."+fieldName)+'">'+eval("events[i]."+fieldName)+'</option>';
		    seen[seen.length] = eval("events[i]."+fieldName)
		}
	}
	str += '</select></p>';
	return str;
}






/* *********************************** */
/* Filter Function that filters and ** */
/* Prints the Table onto the Page **** */
/* *********************************** */

/** Filter Function that filters and prints the Table onto the Page**/
function filter() {

	var selected_string_text = jQuery("#search_string").val();

	// Ger select field values for each field.
	var selected_state = jQuery("select#state").val();
	var selected_focus = jQuery("select#focus").val(); 
	var selected_industry = jQuery("select#industry").val(); 
	//alert (selected_city + " AND " + selected_state + " AND " + selected_focus + " AND " + selected_industry);

	//var origRecs = jQuery('#event-rows').html(); 
	//jQuery('#event-rows').html();


   	var filteredEvents = [];
	//filteredEvents = events;
	
	for(i=0;i<events.length;i++){
		filteredEvents[i] = events[i];
	}
	
	

	if (selected_state != "all")
	for(i=0;i<filteredEvents.length;i++){
		if (filteredEvents[i] != null) {
			if (filteredEvents[i].state != selected_state) {
				filteredEvents[i] = null;
			}
		}
	}

	if (selected_focus != "all")
	for(i=0;i<filteredEvents.length;i++){
		if (filteredEvents[i] != null) {
			if (filteredEvents[i].focus != selected_focus) {
				filteredEvents[i] = null;
			}
		}
	}

	if (selected_industry != "all")
	for(i=0;i<filteredEvents.length;i++){
		if (filteredEvents[i] != null) {
			if (filteredEvents[i].industry != selected_industry) {
				filteredEvents[i] = null;
			}
		}
	}


	for(i=0;i<filteredEvents.length;i++){
		if (filteredEvents[i] != null) {

			var nameTemp = filteredEvents[i].name;
			nameTemp = nameTemp.toLowerCase();
			selected_string_text = selected_string_text.toLowerCase();
			
			if (nameTemp.indexOf(selected_string_text) == -1) {
				filteredEvents[i] = null;
			}
		}
	}

	
	var rows = "";
	var entry_added = "0";

	for(i=0;i<filteredEvents.length;i++){
		if (filteredEvents[i] != null) {
			rows += "<tr>";
			//rows += "<th scope='row' class='ibm-table-row'><a href='#'>"+filteredEvents[i].name+"</a></th>";
			rows += "<th scope='row' class='ibm-table-row'><a href='"+filteredEvents[i].url+"' target='_blank'>"+filteredEvents[i].name+"</a></th>";
			rows += "<td>"+filteredEvents[i].startdate+"</td>";
			rows += "<td>"+filteredEvents[i].city+"</td>";
			rows += "<td>"+filteredEvents[i].state+"</td>";
			rows += "<td>"+filteredEvents[i].focus+"</td>";
			rows += "<td>"+filteredEvents[i].industry+"</td>";
			rows += "</tr>";
			entry_added++;
			}
	}
	
	if (entry_added == "0") {
		rows += "<tr><th scope='row' class='ibm-table-row'></th>";
		rows += "<td colspan='5'><span class='error'><b>Sorry! No Matches for your Search Criteria</b></span></td></tr>";
	}

	//alert (entry_added + "rows = " + rows);	

	//var s = "<tr><th scope='row' class='ibm-table-row'>Hello</th><td colspan='5'>test</td></tr>";
	jQuery('#event-rows').html(rows);

} 
/** END Filter Function **/




/* ********************************************* */
/* Filter Function that filters based on text ** */
/* and Prints the Table onto the Page ********** */
/* ********************************************* */

function text_filter() {

	var selected_string_text = jQuery("#search_string").val();
	//alert ("String = " + selected_string_text);	

   	var filteredEvents = [];
	//filteredEvents = events;
	
	for(i=0;i<events.length;i++){
		filteredEvents[i] = events[i];
	}
	
	

	for(i=0;i<filteredEvents.length;i++){
		if (filteredEvents[i] != null) {

			var nameTemp = filteredEvents[i].name;
			nameTemp = nameTemp.toLowerCase();
			selected_string_text = selected_string_text.toLowerCase();
			
			if (nameTemp.indexOf(selected_string_text) == -1) {
				filteredEvents[i] = null;
			}
		}
	}

	
	
	var rows = "";
	var entry_added = "0";

	for(i=0;i<filteredEvents.length;i++){
		if (filteredEvents[i] != null) {
			rows += "<tr>";
			//rows += "<th scope='row' class='ibm-table-row'><a href='#'>"+filteredEvents[i].name+"</a></th>";
			rows += "<th scope='row' class='ibm-table-row'><a href='"+filteredEvents[i].url+"' target='_blank'>"+filteredEvents[i].name+"</a></th>";
			rows += "<td>"+filteredEvents[i].startdate+"</td>";
			rows += "<td>"+filteredEvents[i].city+"</td>";
			rows += "<td>"+filteredEvents[i].state+"</td>";
			rows += "<td>"+filteredEvents[i].focus+"</td>";
			rows += "<td>"+filteredEvents[i].industry+"</td>";
			rows += "</tr>";
			entry_added++;
			}
	}
	
	if (entry_added == "0") {
		rows += "<tr><th scope='row' class='ibm-table-row'></th>";
		rows += "<td colspan='5'><span class='error'><b>Sorry! No Matches for your Search Criteria</b></span></td></tr>";
	}
	
	jQuery('#event-rows').html(rows);
	

}


/* ********************************************* */
/* reset Function that Blanks out all fields  ** */
/* ********************************************* */

function reset_fields() {

	jQuery("#search_string").val('');
	jQuery("#state").val('all');
	jQuery("#focus").val('all');
	jQuery("#industry").val('all');
	filter();
	//alert("Function running");

}