Wikipedia/utils.js
author ivanl
Tue, 09 Mar 2010 10:34:58 +0000
changeset 20 918767a9c8d3
permissions -rw-r--r--
Adding Wikipedia Widget 1.0rc5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
     1
// ////////////////////////////////////////////////////////////////////////////
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
     2
// Symbian Foundation Example Code
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
     3
//
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
     4
// This software is in the public domain. No copyright is claimed, and you 
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
     5
// may use it for any purpose without license from the Symbian Foundation.
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
     6
// No warranty for any purpose is expressed or implied by the authors or
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
     7
// the Symbian Foundation. 
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
     8
// ////////////////////////////////////////////////////////////////////////////
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
     9
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    10
var logEnabled = true;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    11
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    12
// Opens a URL in a separate browser window
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    13
function openURL(url) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    14
    if (window.widget) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    15
        // in WRT
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    16
        widget.openURL(url);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    17
    } else {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    18
        // outside WRT
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    19
        window.open(url, "NewWindow");
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    20
    }
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    21
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    22
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    23
function increaseFontSize(){
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    24
    if (window.widget) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    25
		setCssBodyFontSize(currentFontSize + 2);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    26
	}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    27
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    28
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    29
function decreaseFontSize(){
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    30
    if (window.widget) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    31
		if (currentFontSize > 4) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    32
			setCssBodyFontSize(currentFontSize - 2);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    33
		}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    34
	}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    35
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    36
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    37
function setCssBodyFontSize(size){
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    38
    if (window.widget) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    39
		currentFontSize = size;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    40
		var sizestring = "" + size;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    41
		document.body.style.fontSize = sizestring + "px";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    42
		widget.setPreferenceForKey(sizestring, "fontsize");
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    43
	}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    44
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    45
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    46
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    47
function log(txt) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    48
	if (logEnabled) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    49
//		txt = txt.replace(/</g, unescape("%26lt%3B")).replace(/>/g, unescape("%26gt%3B")); 
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    50
//		txt = txt.replace(/</g, "&lt");
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    51
//		txt = txt.replace(/\>/g, "&gt");
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    52
		document.getElementById("debugdiv").innerHTML = txt + "<br> " + document.getElementById("debugdiv").innerHTML;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    53
	} 
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    54
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    55
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    56
function setupLog() {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    57
	if (logEnabled) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    58
		if (window.widget) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    59
			var logMenuItem = new MenuItem("Toggle log", 99);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    60
			logMenuItem.onSelect = function() {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    61
				var div = document.getElementById("debugdiv");
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    62
				var main = document.getElementById("uimandiv");
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    63
				if ( div.style.display == "none" ) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    64
					div.style.display = "";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    65
					main.style.display = "none";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    66
				} else {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    67
					div.style.display = "none";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    68
					main.style.display = "";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    69
				}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    70
			}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    71
			menu.append(logMenuItem);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    72
		}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    73
	}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    74
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    75
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    76
function shorten(text, len) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    77
	if ( text.length < len + 3 ) return text;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    78
	return text.substring(0,len) + "...";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    79
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    80
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    81
function uniDecode(text) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    82
	var ptr = 0;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    83
	var buf = "";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    84
	while ( ptr < text.length ){
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    85
		if ( text.charAt(ptr) == '%' ) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    86
			// read next two chars and interpret as hex UTF-8 char code
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    87
			var hex = "";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    88
			ptr ++;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    89
			hex += text.charAt(ptr) ;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    90
			ptr ++;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    91
			hex += text.charAt(ptr) ;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    92
			var ccode = unhex(hex);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    93
			// decode utf-8
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    94
			if (ccode < 128) { // 1 byte char
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    95
				buf += String.fromCharCode(ccode);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    96
				ptr++;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    97
			}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    98
			else if((ccode > 191) && (ccode < 224)) { // 2 byte char 
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
    99
				var hex2 = "";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   100
				ptr ++; // move to % 
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   101
				ptr ++; // move to first hex digit 
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   102
				hex2 += text.charAt(ptr) ;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   103
				ptr ++;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   104
				hex2 += text.charAt(ptr) ;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   105
				var ccode2 = unhex(hex2);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   106
				// need more stuff to get char
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   107
				buf += String.fromCharCode(((ccode & 31) << 6) | (ccode2 & 63));
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   108
				ptr ++;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   109
			}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   110
			else {  // 3 byte char
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   111
				var hex2 = "";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   112
				ptr ++; // move to % 
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   113
				ptr ++; // move to first hex digit 
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   114
				hex2 += text.charAt(ptr) ;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   115
				ptr ++;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   116
				hex2 += text.charAt(ptr) ;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   117
				var ccode2 = unhex(hex2);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   118
				var hex3 = "";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   119
				ptr ++; // move to % 
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   120
				ptr ++; // move to first hex digit 
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   121
				hex3 += text.charAt(ptr) ;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   122
				ptr ++;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   123
				hex3 += text.charAt(ptr) ;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   124
				var ccode3 = unhex(hex2);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   125
				buf += String.fromCharCode(((ccode & 15) << 12) | ((ccode2 & 63) << 6) | (ccode3 & 63));
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   126
				ptr++;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   127
			}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   128
		} else {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   129
			buf += text.charAt(ptr);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   130
			ptr ++;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   131
		}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   132
	}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   133
	return buf;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   134
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   135
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   136
function unhex(hx) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   137
	var val = 0;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   138
	for ( var i = 0 ; i < hx.length ; i ++ ) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   139
		val = val * 16;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   140
		switch(hx.charAt(i)) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   141
			case '0': continue; 
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   142
			case '1':
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   143
			case '2':
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   144
			case '3':
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   145
			case '4':
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   146
			case '5':
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   147
			case '6':
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   148
			case '7':
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   149
			case '8':
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   150
			case '9': {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   151
				val += parseInt(hx.charAt(i));
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   152
				break;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   153
			}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   154
			case 'A':
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   155
			case 'a':{
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   156
				val += 10;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   157
				break;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   158
			}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   159
			case 'B':
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   160
			case 'b':{
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   161
				val += 11;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   162
				break;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   163
			}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   164
			case 'C':
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   165
			case 'c':{
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   166
				val += 12;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   167
				break;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   168
			}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   169
			case 'D':
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   170
			case 'd':{
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   171
				val += 13;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   172
				break;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   173
			}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   174
			case 'E':
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   175
			case 'e':{
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   176
				val += 14;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   177
				break;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   178
			}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   179
			case 'F':
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   180
			case 'f':{
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   181
				val += 15;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   182
				break;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   183
			}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   184
		}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   185
	}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   186
	return val;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   187
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   188
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   189
function shortFormatTime(ts) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   190
	var date = new Date(ts);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   191
	var ret = "";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   192
	ret += pad(2,"0", date.getDate());
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   193
	ret += "/";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   194
	ret += pad(2,"0",(1+date.getMonth()));
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   195
	ret += " ";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   196
	ret += pad(2,"0", date.getHours());
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   197
	ret += ":";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   198
	ret += pad(2,"0",date.getMinutes());
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   199
	return ret;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   200
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   201
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   202
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   203
function nocache(url) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   204
    if (url.indexOf("?") == -1) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   205
        url += "?";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   206
    } else {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   207
        url += "&";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   208
    }
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   209
    url += "xnocache=" + (new Date().getTime());
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   210
	return url;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   211
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   212
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   213
function pad(_num, _char, _val) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   214
	var buf = ""+ _val;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   215
	while(buf.length < _num){
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   216
		buf = _char + "" + buf;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   217
	}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   218
//	alert("pad: num=" +num + ", char=" + char + ", val=" + val +", result=" +buf );
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   219
	return buf;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   220
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   221
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   222
function getViewRep(view) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   223
	if ( view == null ) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   224
		return "null";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   225
	} else if (view) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   226
		return view.caption;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   227
	} else {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   228
		return "undefined";
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   229
	}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   230
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   231
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   232
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   233
function ViewCache(size) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   234
	this.size = size;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   235
	this.names = new Array();
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   236
	this.views = new Array();
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   237
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   238
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   239
ViewCache.prototype.addView = function(name,view) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   240
	this.names.splice(0,0,name);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   241
	this.views.splice(0,0,view);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   242
	
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   243
	if (this.names.length > this.size) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   244
		this.names.splice(this.size, 1);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   245
		this.views.splice(this.size, 1);
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   246
	}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   247
}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   248
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   249
ViewCache.prototype.getView = function(name){
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   250
	for ( var i = 0 ; i < this.names.length ; i++ ) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   251
		if ( name == this.names[i] ) {
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   252
			return this.views[i];
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   253
		}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   254
	}
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   255
	return null;
918767a9c8d3 Adding Wikipedia Widget 1.0rc5
ivanl
parents:
diff changeset
   256
}