See09/session.js
changeset 19 f3521a11d878
equal deleted inserted replaced
18:b73e6caf0031 19:f3521a11d878
       
     1 // ////////////////////////////////////////////////////////////////////////////
       
     2 // Symbian Foundation Example Code
       
     3 //
       
     4 // This software is in the public domain. No copyright is claimed, and you 
       
     5 // may use it for any purpose without license from the Symbian Foundation.
       
     6 // No warranty for any purpose is expressed or implied by the authors or
       
     7 // the Symbian Foundation. 
       
     8 // ////////////////////////////////////////////////////////////////////////////
       
     9 
       
    10 // Session class is used to encapsulate all session data
       
    11 function Session(){
       
    12 	this.date = null;
       
    13 	this.location = null;
       
    14 	this.startTime = null;
       
    15 	this.endTime = null;
       
    16 	this.topic = null;
       
    17 	this.chair = null;
       
    18 	this.speakers = null;
       
    19 	this.title = null;
       
    20 	this.description = null;
       
    21 }
       
    22 
       
    23 Session.prototype.GetContentHTML = function () {
       
    24 	var buf = "<small><i>" + this.startTime + " - " + this.endTime;
       
    25 	if ( this.location ) {
       
    26 		buf += ", " + this.location;
       
    27 	}
       
    28 	buf += "</i>";
       
    29 	var haschair = false;
       
    30 	if ( this.chair && this.chair != null && this.chair.length > 0 ) {
       
    31 		var ch = this.chair.replace(/<br>/g, ", ");
       
    32 		buf += "<br><b>Chair: " + ch + "</b>";
       
    33 		haschair = true;
       
    34 	}
       
    35 	if (this.speakers && this.speakers != null && this.speakers.length > 0) {
       
    36 		buf += "<b>, "
       
    37 		if ( haschair ) {
       
    38 			buf += "Speakers: ";
       
    39 		}
       
    40 		// remove nasty newlines
       
    41 		var spk = this.speakers.replace(/<br>/g, ", ");
       
    42 		buf += spk + "</b>";
       
    43 	}
       
    44 	buf += "<br>" + this.description + "</small>";
       
    45 	return buf;
       
    46 }
       
    47 
       
    48 
       
    49 // Used when parsing to assign a value by ordinal
       
    50 Session.prototype.SetFieldByOrdinal = function(ordinal, val) {
       
    51 	switch(ordinal) {
       
    52 		case 0: this.date = val; break;
       
    53 		case 1: this.location = val; break;
       
    54 		case 2: this.startTime = val; break;
       
    55 		case 3: this.endTime = val; break;
       
    56 		case 4: this.topic = val; break;
       
    57 		case 5: this.chair = val; break;
       
    58 		case 6: this.speakers = val; break;
       
    59 		case 7: this.title = val; break;
       
    60 		case 8: this.description = val; break;
       
    61 	}
       
    62 }
       
    63 
       
    64 Session.prototype.GetNumberOfFields = function () {
       
    65 	return 9;
       
    66 }
       
    67 
       
    68 Session.prototype.GetStartUtc = function(){
       
    69 	return this.GetUtcTime(this.date, this.startTime);
       
    70 }
       
    71 
       
    72 Session.prototype.GetEndUtc = function(){
       
    73 	return this.GetUtcTime(this.date, this.endTime);
       
    74 }
       
    75 
       
    76 Session.prototype.GetUtcTime = function(dateString, timeString){
       
    77 	// make a date, then we'll mod it
       
    78 	var d = new Date();
       
    79 	// dateString is in the format DD-mmm-YY
       
    80 	var parts = dateString.split("-");
       
    81 	d.setFullYear(parseInt(parts[2]) + 2000);
       
    82 	d.setDate(parseInt(parts[0]));
       
    83 	d.setMonth(indexOfMonth(parts[1]));
       
    84 	// time is in the format HH:MM
       
    85 	parts = timeString.split(":");
       
    86 	d.setHours(parseInt(parts[0]));
       
    87 	d.setMinutes(parseInt(parts[1]));
       
    88 	// convert to msec since Jan 1 1970
       
    89 	var localTime = d.getTime();
       
    90 	// obtain local UTC offset and convert to msec
       
    91 	var localOffset = d.getTimezoneOffset() * 60000;
       
    92 	// obtain UTC time in msec
       
    93 	return localTime + localOffset;
       
    94 }
       
    95 
       
    96 function indexOfMonth(m){
       
    97 	switch(m.toLowerCase()) {
       
    98 		case "jan": return 1;
       
    99 		case "feb": return 2;
       
   100 		case "mar": return 3;
       
   101 		case "apr": return 4;
       
   102 		case "may": return 5;
       
   103 		case "jun": return 6;
       
   104 		case "jul": return 7;
       
   105 		case "aug": return 8;
       
   106 		case "sep": return 9;
       
   107 		case "oct": return 10;
       
   108 		case "nov": return 11;
       
   109 		case "dec": return 12;
       
   110 	}
       
   111 }