OSCON/Main.js
author John Kern <johnk@symbian.org>
Fri, 17 Jul 2009 15:52:45 -0700
changeset 7 97dcd250e5be
child 11 aaba47256eea
permissions -rwxr-xr-x
checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     1
// ////////////////////////////////////////////////////////////////////////////
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     2
// Symbian Foundation Example Code
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     3
//
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     4
// This software is in the public domain. No copyright is claimed, and you 
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     5
// may use it for any purpose without license from the Symbian Foundation.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     6
// No warranty for any purpose is expressed or implied by the authors or
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     7
// the Symbian Foundation. 
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     8
// ////////////////////////////////////////////////////////////////////////////
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
     9
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    10
var currentFontSize = 14;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    11
var uiManager;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    12
var home;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    13
var mainView;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    14
var osconIcalUrl = new Array();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    15
var icalData = new Array();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    16
var icalReader = new Array();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    17
var osconDays = new Array();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    18
var http;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    19
var downloadDayIndex = -1;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    20
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    21
// Called from the onload event handler to initialize the widget.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    22
function init() {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    23
	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    24
	for (var i = 0; i < 5; i++) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    25
		var osconDay = new Date()
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    26
		osconDay.setFullYear(2009, 6, 20 + i);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    27
		osconDays.push(osconDay);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    28
		osconIcalUrl.push("OSCON200907" + (20+i) + ".ics");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    29
		icalData.push(null);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    30
		icalReader.push(null);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    31
	}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    32
	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    33
    // set tab-navigation mode and show softkeys
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    34
    // (only if we are in the WRT environment)
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    35
    if (window.widget) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    36
		//create about menu
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    37
	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    38
        widget.setNavigationEnabled(false);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    39
        menu.showSoftkeys();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    40
    }
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    41
	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    42
	// create UI manager
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    43
	uiManager = new UIManager();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    44
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    45
	home = new ListView(null,null);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    46
	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    47
	var homeViewImage = new ImageLabel(null, null, "oscon-home.png");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    48
	// hack to center image
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    49
	homeViewImage.contentElement.style.textAlign = "center";
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    50
	home.addControl(homeViewImage);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    51
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    52
	var homeViewImage2 = new ImageLabel(null, null, "logo.png");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    53
	// hack to center image
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    54
	homeViewImage2.contentElement.style.textAlign = "center";
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    55
	home.addControl(homeViewImage2);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    56
	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    57
	mainView = new ListView(null, "<img src=oscon-home.png>");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    58
	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    59
	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    60
	for (var i = 0; i < osconDays.length; i++) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    61
		var button = new NavigationButton(i, "day"+(i+1)+".png", dateToString(osconDays[i]));
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    62
		mainView.addControl(button);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    63
		button.addEventListener("ActionPerformed", function(event){
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    64
			var clickedButton = event.source;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    65
			var clickedId = clickedButton.id;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    66
			showDay(clickedId, osconDays[clickedId], null);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    67
			});
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    68
	}	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    69
	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    70
	home.previousView=mainView;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    71
	home.show();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    72
	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    73
	uiManager.showNotification(-1, "wait", "Please wait...", -1);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    74
	setTimeout(function(){	uiManager.hideNotification();mainView.show();}, 1000);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    75
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    76
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    77
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    78
function showDay(dayIndex, date) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    79
	downloadDayIndex = dayIndex;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    80
	if ( icalReader[dayIndex] == null ) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    81
		downloadIcalData(dayIndex);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    82
	} else {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    83
		showList(date, null);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    84
	}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    85
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    86
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    87
function downloadIcalData(dayIndex) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    88
	downloadDayIndex = dayIndex;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    89
	uiManager.showNotification(-1, "wait", "Please wait...", -1);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    90
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    91
	http = new Ajax();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    92
    http.onreadystatechange = function() { downloadStateChanged(); };
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    93
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    94
    // initiate the request
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    95
    http.open("GET", osconIcalUrl[downloadDayIndex], true);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    96
    http.send(null);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    97
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    98
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
    99
function downloadStateChanged(){
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   100
	// complete request?
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   101
    if (http.readyState == 4) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   102
        // attempt to get response status
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   103
        var responseStatus = null;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   104
        try {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   105
            responseStatus = http.status;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   106
        } catch (noStatusException) {}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   107
        
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   108
		// are we being prompted for login?
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   109
		icalData[downloadDayIndex] = http.responseText;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   110
		try {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   111
			dataAvailable(downloadDayIndex);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   112
//			savePreferences();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   113
		}catch(x) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   114
			uiManager.showNotification(5000, "warning", "Error processing feed");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   115
		}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   116
		downloadInProgress = false;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   117
    }
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   118
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   119
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   120
function dataAvailable(downloadDayIndex){
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   121
	uiManager.showNotification(-1, "wait", "Parsing info...", -1);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   122
	// parse iCal
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   123
	var reader = new iCalReader(); // Construction of the reader object.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   124
	reader.prepareData(icalData[downloadDayIndex]); // Prepare and set the data for the parser.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   125
	reader.parse(); // Parse the data.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   126
	reader.sort(); // Sort the data.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   127
	icalReader[downloadDayIndex] =  reader;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   128
	showList(osconDays[downloadDayIndex], null);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   129
	uiManager.hideNotification();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   130
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   131
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   132
function showList(day, session) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   133
	var list = new ListView(null, "<img src=oscon-home.png>");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   134
	if (day) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   135
		var button = new ImageLabel(null, dateToString(day), "day"+(downloadDayIndex+1)+".png");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   136
		list.addControl(button);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   137
	}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   138
	if (session) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   139
		var button = new ImageLabel(null, sessionTimeToString(session) + ", " + dateToString(session) , "session.png");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   140
		list.addControl(button);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   141
	}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   142
	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   143
	var myCalReader = icalReader[downloadDayIndex];
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   144
	var events = myCalReader.getCalendar().getEvents(); // Get all events.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   145
	var num = myCalReader.getCalendar().getNrOfEvents();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   146
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   147
	var addedSessions = new Array();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   148
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   149
	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   150
	for(var i=0; i<num; i++) { // Loop through all events.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   151
	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   152
		var event = myCalReader.getCalendar().getEventAtIndex(i); // A single event.        
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   153
		
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   154
		// Get Javascript date for start and end time.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   155
		var startDate = event.getStartDate();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   156
		var altStartDate = null;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   157
		try {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   158
			altStartDate = event.getAltStartDate();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   159
		} catch(z) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   160
			altStartDate = startDate; 
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   161
		}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   162
		var timeZone = event.getTimeZone();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   163
		
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   164
		if ( day ) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   165
			if ( ! dayMatches(day, startDate) ) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   166
				continue;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   167
			} else {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   168
				var haveit = false;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   169
				// if session is not in already, add it
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   170
				for (var j = 0 ; j < addedSessions.length ; j++ ) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   171
					if ( sessionMatches(addedSessions[j], altStartDate ) ) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   172
						haveit = true;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   173
						break;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   174
					}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   175
				}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   176
				if (!haveit) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   177
					// add it
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   178
					addedSessions.push(altStartDate);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   179
					var button = new NavigationButton(altStartDate.getTime(), "session.png", "Session @ "+ sessionTimeToString(altStartDate));
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   180
					button.addEventListener("ActionPerformed", function(event){
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   181
						var clickedButton = event.source;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   182
						var clickedId = clickedButton.id;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   183
						var ed = new Date();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   184
						ed.setTime(clickedId);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   185
						showList(null, ed);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   186
					});
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   187
					list.addControl(button);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   188
				}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   189
				continue;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   190
			}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   191
		}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   192
		else if ( ! sessionMatches(session, startDate) ) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   193
			continue;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   194
		}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   195
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   196
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   197
		// add events
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   198
		var endDate = event.getEndDate();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   199
		var location = event.getProperty("LOCATION");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   200
		var summary = event.getProperty("SUMMARY");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   201
		var description = event.getProperty("DESCRIPTION");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   202
		var url = event.getProperty("URL");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   203
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   204
		var buf = "";
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   205
		buf += "<div class=\"FeedItemDate\">" ;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   206
		if ( location != null ) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   207
			buf += location + ", ";
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   208
		}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   209
		buf += sessionTimeToString(startDate) +"-" + sessionTimeToString(endDate) + " " + timeZone + "</div>";
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   210
		buf += "<div class=\"FeedItemDescription\">" + description + "</div>";
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   211
		if (url != null) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   212
	        buf += "<div class=\"FeedItemLink\">";
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   213
            buf += "<a href=\"JavaScript:void(0)\" onclick=\"openURL('" + url + "'); return false;\">";
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   214
            buf += "Read more...";
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   215
            buf += "</a>";
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   216
	        buf += "</div>";
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   217
		}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   218
		
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   219
		var cp = new ContentPanel(null, null, null, true);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   220
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   221
		// initialize feed item control
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   222
		cp.setCaption(summary);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   223
		cp.setContent(buf);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   224
		cp.setExpanded(false);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   225
		list.addControl(cp); 	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   226
	} // End for each event.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   227
	list.previousView = uiManager.currentView;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   228
	list.show();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   229
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   230
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   231
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   232
// Loads widget preferences.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   233
function loadPreferences() {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   234
    if (window.widget) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   235
        // load settings from widget preferences store
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   236
        icalData = widget.preferenceForKey("icalData");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   237
    }
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   238
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   239
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   240
// Loads widget preferences.
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   241
function savePreferences() {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   242
    if (window.widget) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   243
        // save settings in widget preferences store
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   244
        widget.setPreferenceForKey(icalData, "icalData");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   245
    }
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   246
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   247
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   248
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   249
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   250
function setDefaultFontSizeForScreenSize(){
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   251
	// first check if there is a preference present
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   252
    if (window.widget) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   253
		var saved = widget.preferenceForKey("fontsize");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   254
		if ( widget.preferenceForKey("fontsize") ) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   255
			setCssBodyFontSize(parseInt(saved));
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   256
		}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   257
		else {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   258
			// no preference available, check screen size
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   259
			if (window.screen.width > 400 || window.screen.height > 400) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   260
				// hi res screen, use large font
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   261
				setCssBodyFontSize(18);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   262
			}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   263
			else {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   264
				// lo res screen, use small font
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   265
				setCssBodyFontSize(14);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   266
			}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   267
		}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   268
	}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   269
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   270
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   271
function increaseFontSize(){
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   272
    if (window.widget) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   273
		setCssBodyFontSize(currentFontSize + 2);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   274
	}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   275
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   276
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   277
function decreaseFontSize(){
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   278
    if (window.widget) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   279
		if (currentFontSize > 4) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   280
			setCssBodyFontSize(currentFontSize - 2);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   281
		}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   282
	}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   283
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   284
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   285
function setCssBodyFontSize(size) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   286
    if (window.widget) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   287
		currentFontSize = size;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   288
		var sizestring = "" + size;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   289
		document.body.style.fontSize = sizestring + "px";
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   290
		widget.setPreferenceForKey(sizestring, "fontsize");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   291
	}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   292
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   293
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   294
function nocache(url) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   295
    if (url.indexOf("?") == -1) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   296
        url += "?";
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   297
    } else {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   298
        url += "&";
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   299
    }
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   300
    url += "nocache=" + (new Date().getTime());
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   301
	return url;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   302
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   303
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   304
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   305
function sessionMatches(session, startDate) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   306
	var m_date = session.getDate()==startDate.getDate();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   307
	var m_year = session.getFullYear()==startDate.getFullYear();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   308
	var m_month = session.getMonth()==startDate.getMonth();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   309
	var m_hour = session.getHours()==startDate.getHours();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   310
	var m_minute = session.getMinutes()==startDate.getMinutes();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   311
	return m_date && m_month && m_year && m_hour && m_minute; 
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   312
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   313
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   314
function dayToString(day) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   315
	return day.toDateString(); 	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   316
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   317
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   318
function dayMatches(day, startDate){
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   319
	var m_date = day.getDate()==startDate.getDate();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   320
	var m_year = day.getFullYear()==startDate.getFullYear();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   321
	var m_month = day.getMonth()==startDate.getMonth();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   322
	return m_date && m_month && m_year; 
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   323
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   324
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   325
function sessionTimeToString(session) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   326
	return ""+session.getHours()+":"+pad(session.getMinutes(),2); 	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   327
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   328
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   329
function dateToString(day) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   330
	var full = day.toDateString();
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   331
	// remove year as it doesn't fit on small screens
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   332
	return full.substring(0, full.length-4); 	
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   333
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   334
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   335
function pad(num, digits) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   336
	var str = "" + num;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   337
	while ( str.length < digits ) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   338
		str = "0" + str;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   339
	}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   340
	return str;
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   341
}
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   342
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   343
// Opens a URL in a separate browser window
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   344
function openURL(url) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   345
    if (window.widget) {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   346
        // in WRT
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   347
        widget.openURL(url);
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   348
    } else {
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   349
        // outside WRT
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   350
        window.open(url, "NewWindow");
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   351
    }
97dcd250e5be checking in an application written by Ivan Litovski. If you're going to OSCon, this is a must.
John Kern <johnk@symbian.org>
parents:
diff changeset
   352
}