home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Programy / mcombo152.exe / Plugin / Weather / script / convert.js < prev    next >
Text File  |  2005-11-13  |  9KB  |  249 lines

  1. /*************************************************************************************
  2.  
  3. === Weather 4.41 ===
  4.  
  5. By Neo101
  6. Previous versions by crino, Arkim, mdlist, seidenj and Tara
  7. Created for Maxthon Tabbed Browser (www.maxthon.com)
  8.  
  9. === License ===
  10.  
  11. Please contact Neo10 on forum.maxthon.com or www.neo101.nl if you would like to make any changes!
  12. This plugin is for Maxthon only. You are not allowed to use it for any other program without permission.
  13. Do not remove these comments/credits.
  14. You are allowed to use/copy the icons. I did not create them.
  15.  
  16. Copyright 2005
  17.  
  18. Last modified 14-11-2005
  19.  
  20. === Description of convert.js ===
  21.  
  22. Here are the function that convert units and that translate words
  23.  
  24.  
  25. ***************************************************************************************/
  26.  
  27. /* Data from the 10-day forecast
  28.     new Date('2005','5','8','0','0','0'),'Tonight','N/A','9','7','27','Mostly Cloudy','14','West Northwest','WNW','0', '74'
  29.     data, day , high temp, low temp, ?UV? , icon,  weather type, wind speed , wind direction, wind directen short, Precipitation, ?humidity?
  30. */
  31.  
  32. /*this function is for the emulation of the data from weather.com (for 10-day forecast), it's stored in an array now*/
  33.  
  34. function mpdFDObj(a,b,c,d,e,f,g,h,i,j,k,l) {
  35.     m = trans('WT_'+monthname[a.getMonth()])+' '+a.getDate()
  36.     a = a.getDay()
  37.     return [a,b,c,d,e,f,g,h,i,j,k,l,m]
  38. }
  39.  
  40. /* Data from today's forecast
  41.     new Date('2005','7','6','15','0','0'),'11','Light Rain','16','16','80','13','81','From WNW 29 km/h'
  42.     
  43.     data, icon ,weather type, temp, feel like temp, percip  , dew point (whatever that is...),  humid, wind direction ,  speed
  44. */
  45.  
  46. /*this function is for the emulation of the data from weather.com (for today's weather), it's stored in an array now*/
  47.  
  48. function mpdHMHrObj(a,b,c,d,e,f,g,h,i) {
  49.     a = a.getHours()
  50.     if(use24Hours!=1 && a>12) {
  51.         a = a-12
  52.         k = ' '+trans('WT_PM')
  53.     }
  54.     else if(use24Hours!=1) k = ' '+trans('WT_AM')
  55.     else k = ':00'
  56.     var t  = i.replace(/From /i,'').split(' ')
  57.     i = t[0]
  58.     j = t[1]
  59.     return [a,b,c,d,e,f,g,h,i,j,k]
  60. }
  61.  
  62. /* for today/tonight weather 
  63.  
  64.     new Date('2005','7','6','0','0','0'),'Today','18','11','5 Moderate','11','Showers','29','West Northwest','WNW','90', '84', '11', 'Showers', '24', 'Northwest', 'NW', '80', '90');  //19 items
  65.     
  66.     new Date('2005','7','6','0','0','0'),'Tonight','21','12','6 High','30','Partly Cloudy','11','West Northwest','WNW','10', '74', '26', 'Cloudy', '11', 'West Northwest', 'WNW', '20', '82');
  67.     
  68.     data, day, temp day, temp night, UV, icon, weather type, wind speed, wind direction, wind dir short, precip, humid,     icon, weather type, wind speed, wind direction, wind dir short, percip, humid
  69.     
  70.     todayData= temp day0, UV1, icon2, weather type3, wind speed4, wind direction5, wind dir short6, precip7, humid8, 
  71.     tonightData= temp night0, ico1n, weather type2, wind speed3, wind direction4, wind dir shor5t, percip6, humid7
  72. */
  73. function mpdFDPObj(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) {
  74.     if(e&&e.search(/ /)!=-1) e = e.split(' ')[0]
  75.     todayData   = [c,e,f,g,h,i,j,k,l]
  76.     tonightData = [d,m,n,o,p,q,r,s]
  77. }
  78.  
  79. /*Convert Units*/
  80.  
  81. function transUnit(value,name) {
  82.     if(value=='' || value=='N/A' || value==undefined) return 'N/A '
  83.     if(dataUnits==units && name!='temp') return Math.round(value)
  84.     else if(dataUnits == units) return Math.round(value)+"°"+unitsSym[0]
  85.     var returnvalue=''
  86.     if(dataUnits=="Fahrenheit" && units=="Celcius") {
  87.         switch (name) {
  88.             case "temp":    returnvalue = ((5/9)*(value-32));    break;
  89.             case "wind":    returnvalue = (value*1.609334);         break;
  90.             case "pres":     returnvalue = value*33.86389;        break;
  91.             case "visb":    if(value == 999) return "INF ";    
  92.                             else returnvalue = value*1.609334;    break;
  93.         }
  94.     }
  95.     else {
  96.         switch (name) {
  97.             case "temp":    returnvalue = (value*1.8)+32;    break;
  98.             case "wind":    returnvalue = (value/1.609334);    break;
  99.             case "pres":     returnvalue = value/33.86389;    break;
  100.             case "visb":    if(value == 999) return "INF ";    
  101.                             else returnvalue = value/1.609334;    break;
  102.         }
  103.         
  104.     }
  105.     returnvalue = Math.round(returnvalue);    
  106.     if(name=="temp") return returnvalue+"°"+unitsSym[0]    
  107.     else return returnvalue
  108. }
  109.  
  110. /* Sets the update time, with AM/PM / 24h conversion*/
  111.  
  112.  
  113. function setClock(x){
  114.     if(type=='Future' || type=='Today') {
  115.         x             = x.replace(/'/g,'')
  116.         var timeZone= x.replace(/.*?M /g,'')
  117.         var time    = x.replace(timeZone,'')
  118.         if(time.search(/PM/)!=-1 && use24Hours==1){
  119.             var y = time.split(':')
  120.             if(y[0] == 12) y[0] = 0
  121.             time  = (eval(y[0])+12)+':'+y[1].replace(/PM/,'')
  122.         } else if(time.search(/AM/)!=-1 && use24Hours==1) {
  123.             time = time.replace(/AM/,'')
  124.         }
  125.     } else{
  126.         var zone = eval(readIni("TimeZone"))
  127.         var dst  = eval(readIni("DSTtime"))
  128.         var time = x.substring(0,5)
  129.         var hour = eval(time.split(':')[0])
  130.         var yhour= ((hour) + (zone) + (dst) + 6);
  131.         if(yhour < 0)     yhour = yhour+24;
  132.         if(yhour >= 24) yhour = yhour-24;
  133.         if(use24Hours==0) {
  134.             if(yhour<=12) q = 'AM'
  135.             else {
  136.                 yhour -= 12
  137.                 q        = 'PM'
  138.             }
  139.         } else q = ''
  140.         if(yhour <= 9) yhour    = "0"+yhour;
  141.         if(zone>0) zone            = '+'+zone
  142.         else if(zone==0) zone    = ''
  143.         var timeZone             = "GMT"+zone+""
  144.         time                    = ' '+yhour+':'+time.split(':')[1]+' '+q
  145.         
  146.     }
  147.     //Remove the next line if you don't like the short TimeZone
  148.     if(timeZone.search(/Local|GMT/)==-1) timeZone = timeZone.replace(/[^A-Z]*/g,'')
  149.     
  150.     
  151.     updateTime = time.replace(/PM/g,trans('WT_PM')).replace(/AM/g,trans('WT_AM'))+' '+
  152.         timeZone.replace(/local time/gi,trans('WT_LocalTime'))
  153. }
  154.  
  155. /* Convert Sun UP/Down to 12h/24h */
  156.  
  157. function setClockSun(time){
  158.     if(use24Hours==0) {
  159.         return time
  160.     } else{
  161.         if(time.search(/PM/)!=-1){
  162.             var y=time.split(':')
  163.             time=(eval(y[0])+12)+':'+y[1].replace(/ PM/,'')
  164.         } else if(time.search(/AM/)!=-1) time=time.replace(/ AM/,'')
  165.         return time
  166.     }
  167.  
  168. }
  169.  
  170. /* Translation */
  171.  
  172. function trans(WTwords, addChar) {
  173.     var text = external.m2_readIni(SECURITY_ID, PLUGIN_NAME,"/language/Language"+languageFile+".ini","Language", WTwords, '')
  174.     if(text=='') text = external.m2_readIni(SECURITY_ID, PLUGIN_NAME,"/language/Language.ini","Language", WTwords, 'error')
  175.     if(addChar && compact==1) {
  176.         if(text.length > QuantLength) text = '<span title="'+text+'">'+text.substring(0,QuantLength)+'</span>'
  177.     }
  178.     if(addChar) text += ': '
  179.     return text
  180. }
  181.  
  182. function translate(WTwords) {
  183.     var tr = external.m2_readIni(SECURITY_ID, PLUGIN_NAME,"/language/Language"+languageFile+".ini","Language", WTwords, '')
  184.     if(tr=='')         tr = external.m2_readIni(SECURITY_ID, PLUGIN_NAME,"/language/Language.ini","Language", WTwords, 'error')
  185.     if(tr=='error') tr = WTwords.replace(/WT_/gi,'')
  186.     document.write(tr)
  187. }
  188.  
  189. /* Translate weather types */
  190.  
  191. function transW(x) {
  192.     var w = external.m2_readIni(SECURITY_ID, PLUGIN_NAME,"/language/Language"+languageFile+".ini","WeatherTypes",'WF_'+x, '')
  193.     if(w.search(/\S{20}/)>=0) w = w.substring(0,10)+'<br>'+w.substring(11)
  194.     if(w=='') return x
  195.     else return w
  196. }
  197.  
  198. /* Translate wind directions */
  199.  
  200. function transWind(x,y){
  201.     var d=x.replace(/N/g,trans('WT_North_Short')).replace(/S/g,trans('WT_South_Short')).
  202.         replace(/W/g,trans('WT_west_short')).replace(/E/g,trans('WT_East_Short')).replace(/CALM/g,trans('WT_Calm'))
  203.     if(y&&d.length==1)         d = '   '+d
  204.     else if(y&&d.length==2) d = '  '+d
  205.     return d
  206. }
  207.  
  208. function transWind2(x){
  209.     return x.replace(/North/gi,trans('WT_North')).replace(/South/gi,trans('WT_South')).
  210.         replace(/West/gi,trans('WT_west')).replace(/East/gi,trans('WT_East')).replace(/CALM/gi,trans('WT_Calm'))
  211. }
  212.  
  213. function transWind3(x){
  214.     return x.replace(/N/g,trans('WT_North')).replace(/S/g,trans('WT_South')).
  215.         replace(/W/g,trans('WT_west')).replace(/E/g,trans('WT_East')).replace(/CALM/,trans('WT_Calm'))
  216. }
  217.  
  218. /* Translate the cities+countries */
  219.  
  220. function transLoc(x){
  221.     try{
  222.         var country            = x.split(',')[1]
  223.         var countryTransl    = trans('WT_'+country.replace(/^ /,''))
  224.         var city            = x.split(',')[0]
  225.         var cityTransl        = trans('WT_'+city.replace(/^ /,''))
  226.         if(countryTransl && countryTransl!='' && countryTransl!='error') x = x.replace(country,' '+countryTransl)
  227.         if(cityTransl && cityTransl!='' && cityTransl!='error') x = x.replace(city,' '+cityTransl)
  228.     }
  229.     catch(err){}
  230.     return x
  231. }
  232.  
  233. /* Translate the cities reverse (for the search, in config) */
  234.  
  235. function transCity(x,y){
  236.     try{
  237.         for(i=0; i<cityTra.length; i++){
  238.             if(cityTra[i].search(x)!=-1){
  239.                 var q=cityTra[i].replace(/WT_/i,'').split('=')
  240.                 if(y&&q[0].search(x)==0)   return q[1]
  241.                 else if(q[1].search(x)==0) return q[0]
  242.             }
  243.         }
  244.         return x
  245.     }
  246.     catch(err) { 
  247.         return x 
  248.     }
  249. }