home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Freelog 117
/
FreelogNo117-OctobreNovembre2013.iso
/
Theme
/
8GadgetPack
/
8GadgetPackSetup.msi
/
timeZones.js_2
< prev
next >
Wrap
Text (UTF-16)
|
2012-05-19
|
10KB
|
192 lines
////////////////////////////////////////////////////////////////////////////////
//
// THIS CODE IS NOT APPROVED FOR USE IN/ON ANY OTHER UI ELEMENT OR PRODUCT COMPONENT.
// Copyright (c) 2009 Microsoft Corporation. All rights reserved.
//
////////////////////////////////////////////////////////////////////////////////
var e = new Array();
var eItem = 0;
var eZone = 1;
var eOffset = 2;
var zones = null;
var zonesCount = 0;
////////////////////////////////////////////////////////////////////////////////
//
// update time zones
//
////////////////////////////////////////////////////////////////////////////////
function updateTimeZones(sortName)
{
zones = System.Time.timeZones;
zonesCount = zones.count;
if (sortName)
{
var zoneArray = new Array();
for (var i = 0; i < zonesCount; i++)
{
zoneArray[i] = [i, zones.item(i).displayName, zones.item(i).bias];
}
var zoneArrayTemp1 = [];
zoneArrayTemp1.push(zoneArray[0]);
for (var i = 1; i < zoneArray.length; i++)
{
for (var j = 0; j < zoneArrayTemp1.length; j++)
{
if (zoneArray[i][eOffset] >= zoneArrayTemp1[j][eOffset])
{
for (var k = zoneArrayTemp1.length - 1; k >= j; k--)
{
zoneArrayTemp1[k + 1] = zoneArrayTemp1[k];
}
zoneArrayTemp1[j] = zoneArray[i];
if (zoneArrayTemp1[j + 1][eOffset] == zoneArrayTemp1[j][eOffset])
{
var tempArray1 = [];
var tempArray2 = [];
for (var l = j; l < zoneArrayTemp1.length; l++)
{
if (zoneArrayTemp1[j][eOffset] != zoneArrayTemp1[l][eOffset])
{
break;
}
tempArray1[zoneArrayTemp1[l][eZone]] = zoneArrayTemp1[l][eItem];
tempArray2[tempArray2.length] = zoneArrayTemp1[l][eZone];
}
if (tempArray2.length > 1)
{
tempArray2.sort();
for (var l = 0; l < tempArray2.length; l++)
{
zoneArrayTemp1[j + l][0] = tempArray1[tempArray2[l]];
zoneArrayTemp1[j + l][1] = tempArray2[l];
}
}
}
break;
}
}
}
zoneArrayTemp1.length--;
var zoneArrayTemp2 = [];
zoneArrayTemp2.push(zoneArray[0]);
for (var i = 1; i < zoneArray.length; i++)
{
for (var j = 0; j < zoneArrayTemp2.length; j++)
{
if (zoneArray[i][eOffset] <= zoneArrayTemp2[j][eOffset])
{
for (var k = zoneArrayTemp2.length - 1; k >= j; k--)
{
zoneArrayTemp2[k + 1] = zoneArrayTemp2[k];
}
zoneArrayTemp2[j] = zoneArray[i];
if (zoneArrayTemp2[j + 1][eOffset] == zoneArrayTemp2[j][eOffset])
{
var tempArray1 = [];
var tempArray2 = [];
for (var l = j; l < zoneArrayTemp2.length; l++)
{
if (zoneArrayTemp2[j][eOffset] != zoneArrayTemp2[l][eOffset])
{
break;
}
tempArray1[zoneArrayTemp2[l][eZone]] = zoneArrayTemp2[l][eItem];
tempArray2[tempArray2.length] = zoneArrayTemp2[l][eZone];
}
if (tempArray2.length > 1)
{
tempArray2.sort(compareDisplayName);
for (var l = 0; l < tempArray2.length; l++)
{
zoneArrayTemp2[j + l][0] = tempArray1[tempArray2[l]];
zoneArrayTemp2[j + l][1] = tempArray2[l];
}
}
}
break;
}
}
}
zoneArrayTemp2.reverse();
e = zoneArrayTemp1.concat(zoneArrayTemp2);
}
}
////////////////////////////////////////////////////////////////////////////////
//
//
////////////////////////////////////////////////////////////////////////////////
function compareDisplayName(string1, string2)
{
for (var i = 0; i < Math.min(string1.length, string2.length); i++)
{
if (string1.charAt(i) != string2.charAt(i))
{
return (string1.charAt(i) < string2.charAt(i) ? 1 : -1);
}
}
return 0;
}
////////////////////////////////////////////////////////////////////////////////
//
// get current local time
//
////////////////////////////////////////////////////////////////////////////////
function getCurrentTimeZone()
{
if (zonesCount > 0)
{
var curZone = System.Time.currentTimeZone;
for (var i = 0; i < zonesCount; i++)
{
if (zones.item(i).standardDisplayName == curZone.standardDisplayName)
{
return i;
}
}
}
return -1;
}
////////////////////////////////////////////////////////////////////////////////
//
// check to see if time zone within array
//
////////////////////////////////////////////////////////////////////////////////
function getValidTimeZone(index)
{
if (parseInt(index) > -1 && parseInt(index) < zonesCount)
{
return parseInt(index);
}
else
{
return -1;
}
}