<?
// this is a good place to take care of all of the stupid stuff that we want to
// have done  :-)

// for debuging set this to 7
error_reporting(7);


// we don't want any of the pages to be cached
header("Pragma: no-cache");
header("Cache-Control: no-cache, must-revalidate");

include(
"db_config.php");


function 
other_color()
{
    static 
$current_color;
    
    if(
$current_color =="\"#eeeeee\"")
        
$current_color "\"#dddddd\"";
       else 
        
$current_color "\"#eeeeee\"";
    
    return 
$current_color;
}        


function 
db_connect()
{
global 
$mysql_username$mysql_password$mysql_host$mysql_db_name;

$db mysql_pconnect("$mysql_host""$mysql_username""$mysql_password");
    
mysql_select_db("$mysql_db_name"$db);
    
    return 
$db;
}


function 
station($station_id)
{
    return 
sprintf("<A HREF = \"station_info.php?station_id=%s\">%s</A>",urlencode($station_id),$station_id);
}


/* unit conversions 
 * bitmask flag for $units
 * 1  metric
 * 2  english
 * 4  engineering
 */
function temperature($units,$temp)
{
$m_temp $temp;
$f_temp $temp 32;
$e_temp $temp 273.15;    /* kelvin */

switch($units)
{
case 
1:
    return 
sprintf("%2.2f C",$m_temp);
    break;
case 
2:
    return 
sprintf("%2.2f F",$f_temp);
    break;
case 
3:
    return 
sprintf("%2.2fC (%2.2fF)",$m_temp,$f_temp);
    break;
case 
4:
    return 
$e_temp;
}

}


/* Speed conversion
 *  1 - mph
 *    2 - kph
 *    assumes $speed is in kph
*/

function speed_convert($units,$speed)
{
    
$k_speed $speed;
    
$m_speed intval(.622 $k_speed);

    switch(
$units)
    {
    case 
1:
        return 
sprintf("%s mph"$m_speed);
        break;
    case 
2:
        return 
sprintf("%s km/h"$k_speed);
        break;
    }    
}


/* Units
 * 1 - english
 * 2 - metric
*/

function rain_in_24($units,$current_amount,$days_to_show=1)
{
    
$db db_connect();

    
$q1 mysql_query("SELECT rain FROM weather WHERE time_recieved >= DATE_SUB(now(),INTERVAL 1 DAY) LIMIT 1"$db);
    
$amount mysql_fetch_array($q1);

    
$diff $current_amount $amount[rain];

    switch(
$units)
    {
    case 
1:
        return 
sprintf("%2.1f in"$diff*(.2358/53));
        break;
    case 
2:
        return 
sprintf("%2.1f cm"$diff*(0.6/53)); /* this is the calibration
        value ... it should not be hard coded! .6cm registered 53 clicks */
        
break;
    }
}


//converts mysql time stamp to a better date format
function stamp_to_string($stamp)
{
$year substr($stamp,0,4);
$month substr($stamp,4,2);
$date substr($stamp,6,2);
$hour substr($stamp,8,2);
$min substr($stamp,10,2);
$sec substr($stamp,12,2);

$unix_stamp mktime($hour,$min,$sec,$month,$date,$year);
$new_str date("h:i A, M j Y",$unix_stamp);

return 
$new_str;
}

//converts mysql datetime to a better date format
function datetime_to_string($stamp)
{
/* 2000-08-04 13:47:40
 * 0123456789012345678
 */
$year substr($stamp,0,4);
$month substr($stamp,5,2);
$date substr($stamp,8,2);
$hour substr($stamp,11,2);
$min substr($stamp,14,2);
$sec substr($stamp,17,2);

$unix_stamp mktime($hour,$min,$sec,$month,$date,$year);
$new_str date("h:i A, M j Y",$unix_stamp);

return 
$new_str;
}


function 
space($string,$length,$right_pad)
{
$o_len strlen($string);

$right_str "";
for ( 
$right_cnt=$right_cnt<$right_pad $right_cnt++)
    
$right_str .= "&nbsp;";

$left_str "";
for ( 
$left_cnt=$left_cnt < ($length-(strlen($string)+$right_cnt)) ; $left_cnt++ )
    {
    
$left_str .="&nbsp;";
    }

return 
$left_str $string $right_str;
}


function 
pad($string,$left_pad=1,$right_pad=1)
{
while ( 
$left_pad )
    {
    
$string "&nbsp;" $string;
    
$left_pad--;
    }

while ( 
$right_pad )
    {
    
$string .= "&nbsp;";
    
$right_pad--;
    }


return 
$string;
}

function 
degrees_cardinal($degrees)
{
$direction round($degrees 45);
if ( 
$direction <= )
    {
    
$dirs = array(1=>"N","NE","E","SE","S","SW","W","NW","N");
    return 
$dirs[$direction+1];
    } else {
    return 
"BAD DIRECTION";
    }
}

/* Percentage of charge on 12 volt battery */
function batt_percent($voltage)
{
if ( 
$voltage >= 12.7 )
    return 
"<FONT COLOR=\"GREEN\">100%</FONT>";
else if ( 
$voltage >= 12.5 )
    return 
"<FONT COLOR=\"GREEN\">90%</FONT>";
else if ( 
$voltage >= 12.42 )
    return 
"<FONT COLOR=\"GREEN\">80%</FONT>";
else if ( 
$voltage >= 12.32 )
    return 
"<FONT COLOR=\"GREEN\">70%</FONT>";
else if ( 
$voltage >= 12.2 )
    return 
"<FONT COLOR=\"GREEN\">60%</FONT>";
else if ( 
$voltage >= 12.06 )
    return 
"<FONT COLOR=\"GREEN\">50%</FONT>";
else if ( 
$voltage >= 11.9 )
    return 
"<FONT COLOR=\"GREEN\">40%</FONT>";
else if ( 
$voltage >= 11.75 )
    return 
"<FONT COLOR=\"#FF9900\">30%</FONT>";
else if ( 
$voltage >= 11.58 )
    return 
"<FONT COLOR=\"#FF9900\">20%</FONT>";
else if ( 
$voltage >= 11.31 )
    return 
"<FONT COLOR=\"RED\">10%</FONT>";
else if ( 
$voltage >= 10.5 )
    return 
"<FONT COLOR=\"RED\">0%</FONT>";
else return 
"<FONT COLOR=\"RED\"><BLINK>EMPTY</BLINK>!</FONT>";

}

?>