﻿

/* ************************ */
/* 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=="Turvallisuus") document.getElementById('focusinfo').innerHTML='<div class="ibm-container"><h2>Turvallisuus</h2><div class="ibm-container-body"><p> IT-turvallisuus silmukkaverkkoja yritysten tarpeet on avain kestävään kasvuun. IBM ja liikekumppaneihin auttavat sinua pysymään uhat tietoturvariskiä ja samanaikainen tukeminen teidän tilintarkastus-ja liike-elämän vaatimuksia. Painopiste vuoden 2008 on identiteetin ja pääsyn hallinta sekä Internetin ja Internet-turvallisuutta.</p></div></div>';
		if(focus=="Collaboration") document.getElementById('focusinfo').innerHTML='<div class="ibm-container"><h2>Collaboration</h2><div class="ibm-container-body"><p>Yhä voimakas maailmanlaajuinen kilpailu pakotti yrityksiä löytämään uusia tapoja tehdä yhteistyötä - käytävillä, aikavyöhykkeet ja eri mantereilla. Helpottamalla ihmiset toimimaan yhdessä, yritykset voivat innovoida milloin nopeammin kuin koskaan ennen.</p></div></div>';
		if(focus=="Green IT") document.getElementById('focusinfo').innerHTML='<div class="ibm-container"><h2>Green IT</h2><div class="ibm-container-body"><p>Nykyään keskusteluissa IT kehittynyt myös energiatehokkuutta. Koska yritysten haasteena energiatehokkaiden tietokeskukset HAKU maanantaina tapoja optimoida IT-ympäristö - joista on hyötyä yritykselle ja planeetallemme. IBM uskoo, että nämä kaksi työtä läheisesti toisiinsa. <p> IBM tarjoaa kattavaa lähestymistapaa, joka auttaa yrityksiä kehittämään energiatehokkaita ja ympäristön täyden datakeskuksen - laitteistoja, ohjelmistoja ja palveluja. Emme voi vastata kysymyksiin siitä, miten pääset alkuun, ja olemme erittäin kiinnostuneita kuulemaan omia suunnitelmia vihreä tietojenkäsittelyjärjestelmä. IBM: n kautta tähän osoitteeseen <a href="mailto:GOGREEN@us.ibm.com"> GOGREEN@us.ibm.com </ a>, niin me annamme teille räätälöityjä tietoja omia tarpeitasi.</p></div></div>';
		if(focus=="Tiedotus") document.getElementById('focusinfo').innerHTML='<div class="ibm-container"><h2>Tiedotus</h2><div class="ibm-container-body"><p>Tiedot et todella luottaa on suuri kustannus mutta vähäarvoinen. Hyvä tiedottaminen on avain ääni päätösten tehokas asiakaspalvelu, syvä yritysten näkemyksiä ja totta vaatimukset. Tehokas varastointi, käsittely, integraatioon sekä erilaisia tietojen avulla yrityksesi ei itse. Mikä on se kannattaa työyhteisöäsi tuottamaan tarvittavat tiedot täyttävät tai prosesseja? IBM auttaa yrityksen palveluja, ohjelmistoja ja laitteita Information Lifecycle hallinnoimiseen. Toisin sanoen - on kustannus-tehokas ja hyvin toimiva tietojen hallinta kasvaa.</p></div></div>';
		if(focus=="Joustavuus") document.getElementById('focusinfo').innerHTML='<div class="ibm-container"><h2>Joustavuus</h2><div class="ibm-container-body"><p>Oletko valmis salaisen noin älykkään hallinnan ja nopean vastauksen? Organisaatiosi on pystyttävä nopeasti muutoksiin ja siten vaikuttaa liiketoimintaan. Voit saavuttaa tämän joustavuuden kautta menetelmien kuten palvelukeskeisen arkkitehtuurin (SOA), joustavan infrastruktuurin ja joustavaa rahoitusta. Smart SOA, saat arvo kunkin vaiheen SOA prosessista, departementissa hankkeita kattava yritysten aloitteesta.</p></div></div>';
		if(focus=="Tehokkaampi IT") document.getElementById('focusinfo').innerHTML='<div class="ibm-container"><h2>Tehokkaampi IT</h2><div class="ibm-container-body"><p>Yksinkertaistaa ja parantaa IT-ratkaisuja, jotka voidaan helposti muuttaa tarpeen ja helpottaa yhteydenpitoa IT ja muuhun yritykseen.</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>Haku ei valitettavasti tuottanut tuloksia.</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("#startdate").val('all');
	jQuery("#city").val('all');
	jQuery("#focus").val('all');
	// jQuery("#industry").val('all');
	filter();
	//alert("Function running");

}