See09/utils.js
author ivanl
Thu, 22 Oct 2009 15:52:58 +0100
changeset 19 f3521a11d878
permissions -rw-r--r--
See 09 widget, version 1.0rc3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     1
// ////////////////////////////////////////////////////////////////////////////
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     2
// Symbian Foundation Example Code
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     3
//
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     4
// This software is in the public domain. No copyright is claimed, and you 
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     5
// may use it for any purpose without license from the Symbian Foundation.
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     6
// No warranty for any purpose is expressed or implied by the authors or
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     7
// the Symbian Foundation. 
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     8
// ////////////////////////////////////////////////////////////////////////////
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
     9
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    10
// Loads widget preferences.
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    11
function loadPreferences() {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    12
    if (window.widget) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    13
        // load settings from widget preferences store
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    14
        data = widget.preferenceForKey("data");
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    15
    }
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    16
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    17
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    18
// Loads widget preferences.
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    19
function savePreferences() {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    20
    if (window.widget) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    21
        // save settings in widget preferences store
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    22
        widget.setPreferenceForKey(data, "data");
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    23
    }
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    24
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    25
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    26
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    27
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    28
function nocache(url) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    29
    if (url.indexOf("?") == -1) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    30
        url += "?";
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    31
    } else {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    32
        url += "&";
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    33
    }
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    34
    url += "nocache=" + (new Date().getTime());
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    35
	return url;
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    36
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    37
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    38
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    39
function sessionMatches(session, startDate) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    40
	var m_date = session.getDate()==startDate.getDate();
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    41
	var m_year = session.getFullYear()==startDate.getFullYear();
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    42
	var m_month = session.getMonth()==startDate.getMonth();
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    43
	var m_hour = session.getHours()==startDate.getHours();
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    44
	var m_minute = session.getMinutes()==startDate.getMinutes();
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    45
	return m_date && m_month && m_year && m_hour && m_minute; 
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    46
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    47
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    48
function dayToString(day) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    49
	return day.toDateString(); 	
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    50
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    51
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    52
function dayMatches(day, startDate){
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    53
	var m_date = day.getDate()==startDate.getDate();
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    54
	var m_year = day.getFullYear()==startDate.getFullYear();
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    55
	var m_month = day.getMonth()==startDate.getMonth();
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    56
	return m_date && m_month && m_year; 
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    57
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    58
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    59
function sessionTimeToString(session) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    60
	return ""+session.getHours()+":"+pad(session.getMinutes(),2); 	
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    61
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    62
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    63
function dateToString(day) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    64
	var full = day.toDateString();
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    65
	// remove year as it doesn't fit on small screens
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    66
	return full.substring(0, full.length-4); 	
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    67
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    68
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    69
function pad(num, digits) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    70
	var str = "" + num;
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    71
	while ( str.length < digits ) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    72
		str = "0" + str;
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    73
	}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    74
	return str;
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    75
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    76
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    77
// Opens a URL in a separate browser window
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    78
function openURL(url) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    79
    if (window.widget) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    80
        // in WRT
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    81
        widget.openURL(url);
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    82
    } else {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    83
        // outside WRT
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    84
        window.open(url, "NewWindow");
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    85
    }
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    86
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    87
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    88
function setDefaultFontSizeForScreenSize(){
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    89
	// no preference available, check screen size
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    90
	if (window.innerWidth > 400 || window.innerHeight > 400) {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    91
		// hi res screen, use large font
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    92
		setLargeView();
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    93
	}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    94
	else {
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    95
		// lo res screen, use small font
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    96
		setSmallView();
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    97
	}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    98
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
    99
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
   100
function setLargeView(){
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
   101
	document.getElementById('stylesheet').href = 'WRTKit/Resources/UI-large.css';
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
   102
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
   103
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
   104
function setSmallView(){
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
   105
	document.getElementById('stylesheet').href = 'WRTKit/Resources/UI.css';
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
   106
}
f3521a11d878 See 09 widget, version 1.0rc3
ivanl
parents:
diff changeset
   107