

/* ************************ */
/* 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); }
}



/** Functions for hidding and showing describtions for the events */
function showInfo(eventObject){
	var obj=eventObject.offsetParent;
	obj.getElementsByTagName('div')[0].style.visibility='visible';
}

function hideInfo(eventObject){
	var obj=eventObject.offsetParent;
	obj.getElementsByTagName('div')[0].style.visibility='hidden';
}





/* ******************************** */
/* 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;
}


function showFocusInfo(focus) {
	if(focus!="all") {
		if(focus=="Säkerhet") document.getElementById('focusinfo').innerHTML='<div class="ibm-container"><h2>Säkerhet</h2><div class="ibm-container-body"><p>IT-säkerhet sammanflätat med affärsbehov är nyckeln till varaktig tillväxt. IBM och våra business partners hjälper dig att ligga steget före hoten mot er säkerhet och ger samtidigt stöd till dina revisions- och affärskrav. Fokus under första halvåret 2008 ligger på identitets- och accesshantering samt internet- och webb-säkerhet.</p></div></div>';
		if(focus=="Collaboration") document.getElementById('focusinfo').innerHTML='<div class="ibm-container"><h2>Collaboration</h2><div class="ibm-container-body"><p>I en allt mer intensiv global konkurrens tvingas företag hitta nya vägar för att samarbeta - i korridorer, tidszoner och över kontinenter. Genom att underlätta för människor att samverka kan företag förnya sig i en snabbare takt än någonsin tidigare.</p></div></div>';
		if(focus=="Grön IT") document.getElementById('focusinfo').innerHTML='<div class="ibm-container"><h2>Grön IT</h2><div class="ibm-container-body"><p>Idag har diskussionerna kring IT utvecklats till att omfatta även energieffektivitet. När verksamheten ställs inför utmaningen med energieffektiva datacenter letar man efter sätt att optimera sin IT-miljö – till gagn för företaget och för vår planet. IBM anser att dessa båda ansträngningar intimt hänger samman.<p>IBM erbjuder ett omfattande tillvägagångssätt för att hjälpa företag utveckla energieffektiva och miljöansvarsfulla datacenter – med hårdvara, mjukvara och tjänster. Vi kan besvara era frågor om hur ni kommer igång och vi är mycket intresserade av att höra om era egna planer för ett grönt datacenter. Kontakta IBM via denna adress <a href="mailto:GOGREEN@us.ibm.com">GOGREEN@us.ibm.com</a> så ger vi er skräddarsydd information som passar era behov.</p></div></div>';
		if(focus=="Informationshantering") document.getElementById('focusinfo').innerHTML='<div class="ibm-container"><h2>Informationshantering</h2><div class="ibm-container-body"><p>Information som du inte riktigt litar på har en hög kostnad, men lågt värde. God information är nyckeln till sunda beslut, effektiv kundservice, djup affärsinsikt och sann kravefterlevnad. Effektiv lagring, hantering, integrering och tillgång av diversifierad data genom ditt företag sker inte av sig själv. Vad är det värt för din organisation att producera information som krävs för att uppfylla krav eller processer? IBM kan hjälpa ditt företag med tjänster, mjuk- och hårdvara för Information Lifecycle Mangement. Med andra ord - vikten av kostnadseffektiv och väl fungerande informationshantering blir allt större.</p></div></div>';
		if(focus=="Flexibilitet") document.getElementById('focusinfo').innerHTML='<div class="ibm-container"><h2>Flexibilitet</h2><div class="ibm-container-body"><p>Är du redo för hemligheten kring intelligent hantering och snabb respons? Din organisation behöver ha förmågan att snabbt kunna förändras och på så sätt påverka ditt företags verksamhet. Du kan uppnå denna flexibilitet genom metoder som serviceorienterad arkitektur (SOA), flexibel infrastruktur samt flexibel finansiering. Med Smart SOA kan du få värde vid varje steg inom SOA processen, från avdelningsprojekt till allomfattande koncerninitiativ.</p></div></div>';
		if(focus=="Effektivare IT") document.getElementById('focusinfo').innerHTML='<div class="ibm-container"><h2>Effektivare IT</h2><div class="ibm-container-body"><p>Förenkla och förbättra IT-lösningar som enkelt kan förändras efter behov samt underlätta kommunikationen mellan IT och resten av företaget.</p></div></div>';
		document.getElementById('focusinfo').style.display='block';
	} else
		document.getElementById('focusinfo').style.display='none';
}




/* *********************************** */
/* 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_city = jQuery("select#city").val();
	// var selected_state = jQuery("select#state").val();
	var selected_focus = jQuery("select#focus").val(); 
	var selected_industry = jQuery("select#industry").val();
	var selected_startdate = jQuery("select#startdate").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_city != "all")
	for(i=0;i<filteredEvents.length;i++){
		if (filteredEvents[i] != null) {
			if (filteredEvents[i].city != selected_city) {
				filteredEvents[i] = null;
			}
		}
	}

	if (selected_startdate != "all")
	for(i=0;i<filteredEvents.length;i++){
		if (filteredEvents[i] != null) {
			if (eval("!filteredEvents[i].startdate.match(/"+selected_startdate+"/)")) {
				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 (eval("!filteredEvents[i].industry.match(/"+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+"' onmouseover='showInfo(this);' onmouseout='hideInfo(this);'>"+filteredEvents[i].name+"</a><br />";
			rows += '<div class="eventinfo">'+filteredEvents[i].info+"</div></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'>&nbsp;</th>";
		rows += "<td colspan='5'><span class='error'><b>Tyvärr finns det inga träffar på din valda sökning.</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+"'>"+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("#city").val('all');
	jQuery("#startdate").val('all');
	jQuery("#state").val('all');
	jQuery("#focus").val('all');
	jQuery("#industry").val('all');
	filter();
	//alert("Function running");

}