bug-827 ... completely rewritten 15.php, now necessary: wot.inc.php ... (however...
authorroot <root@cacert1.it-sls.de>
Mon, 23 May 2011 05:37:36 +0000 (07:37 +0200)
committerroot <root@cacert1.it-sls.de>
Mon, 23 May 2011 05:37:36 +0000 (07:37 +0200)
includes/wot.inc.php [new file with mode: 0644]
pages/wot/15.php

diff --git a/includes/wot.inc.php b/includes/wot.inc.php
new file mode 100644 (file)
index 0000000..1d8283b
--- /dev/null
@@ -0,0 +1,513 @@
+<? /*
+    LibreSSL - CAcert web application
+    Copyright (C) 2004-2011  CAcert Inc.
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; version 2 of the License.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/ 
+
+       function query_init ($query)
+       {
+               return mysql_query($query);
+       }
+
+       function query_getnextrow ($res)
+       {
+               $row1 = mysql_fetch_assoc($res);
+               return $row1;
+       }
+
+       function query_get_number_of_rows ($resultset)
+       {
+               return intval(mysql_num_rows($resultset));
+       }
+
+       function get_number_of_assurances ($userid)
+       {
+               $res = query_init ("SELECT `users`. *, count(*) AS `list` FROM `users`, `notary`
+                       WHERE `users`.`id` = `notary`.`from` AND `notary`.`from` != `notary`.`to` AND `from`='".intval($userid)."' 
+                       GROUP BY `notary`.`from`");
+               $row = query_getnextrow($res);
+
+               return intval($row['list']);
+       }
+
+       function get_number_of_assurees ($userid)
+       {
+               $res = query_init ("SELECT `users`. *, count(*) AS `list` FROM `users`, `notary`
+                       WHERE `users`.`id` = `notary`.`to` AND `notary`.`from` != `notary`.`to` AND `to`='".intval($userid)."'
+                       GROUP BY `notary`.`to`");
+               $row = query_getnextrow($res);
+
+               return intval($row['list']);
+       }
+
+       function get_top_assurer_position ($no_of_assurances)
+       {
+               $res = query_init ("SELECT count(*) AS `list` FROM `users`
+                                   inner join `notary` on `users`.`id` = `notary`.`from`
+                       GROUP BY `notary`.`from` HAVING count(*) > '".intval($no_of_assurances)."'");
+               return intval(query_get_number_of_rows($res)+1);
+       }
+
+       function get_top_assuree_position ($no_of_assurees)
+       {
+               $res = query_init ("SELECT count(*) AS `list` FROM `users`
+                                   inner join `notary` on `users`.`id` = `notary`.`to`
+                       GROUP BY `notary`.`to` HAVING count(*) > '".intval($no_of_assurees)."'");
+               return intval(query_get_number_of_rows($res)+1);
+       }
+
+       function get_given_assurances ($userid)
+       {
+               $res = query_init ("select * from `notary` where `from`='".intval($userid)."' and `from` != `to` order by `id` asc");
+               return $res;
+       }
+
+       function get_received_assurances ($userid)
+       {
+               $res = query_init ("select * from `notary` where `to`='".intval($userid)."' and `from` != `to` order by `id` asc ");
+               return $res;
+       }
+
+       function get_given_assurances_summary ($userid)
+       {
+               $res = query_init ("select count(*) as number,points,awarded,method from notary where `from`='".intval($userid)."' group by points,awarded,method");
+               return $res;
+       }
+       
+       function get_received_assurances_summary ($userid)
+       {
+               $res = query_init ("select count(*) as number,points,awarded,method from notary where `to`='".intval($userid)."' group by points,awarded,method");
+               return $res;
+       }
+
+       function get_user ($userid)
+       {
+               $res = query_init ("select * from `users` where `id`='".intval($userid)."'");
+               return mysql_fetch_assoc($res);
+       }
+
+       function get_cats_state ($userid)
+       {
+
+               $res = query_init ("select * from `cats_passed` inner join `cats_variant` on `cats_passed`.`variant_id` = `cats_variant`.`id` and `cats_variant`.`type_id` = 11
+                       WHERE `cats_passed`.`user_id` = '".intval($userid)."'");
+               return mysql_num_rows($res);
+       }
+
+       function calc_experience ($row,&$points,&$experience,&$sum_experience)
+       {
+               $points += $row['awarded'];
+               $experience = "&nbsp;";
+               if ($row['method'] == "Face to Face Meeting")
+               {
+                       $sum_experience = $sum_experience +2;
+                       $experience = "2";
+               }
+               return $row['awarded'];
+       }
+
+       function calc_assurances ($row,&$points,&$experience,&$sumexperience,&$awarded)
+       {
+               $awarded = calc_points($row);
+
+               if ($awarded > 100)
+               {
+                       $experience = $awarded - 100;           // needs to be fixed in the future (limit 50 pts and/or no experience if pts > 100)
+                       $awarded = 100;
+               }
+               else
+                       $experience = 0;        
+
+               switch ($row['method'])
+               {
+                       case 'Thawte Points Transfer':
+                       case 'CT Magazine - Germany':
+                       case 'Temporary Increase':            // Current usage of 'Temporary Increase' may break audit aspects, needs to be reimplemented
+                               $awarded=sprintf("<strong style='color: red'>%s</strong>",_("Revoked"));
+                               $experience=0;
+                               break;
+                       default:
+                               $points += $awarded;
+               }
+               $sumexperience = $sumexperience + $experience;
+       }
+
+
+       function show_user_link ($name,$userid)
+       {
+               $name = trim($name);
+               if($name == "")
+                       $name = _("Deleted before Verification");
+               else
+                       $name = "<a href='wot.php?id=9&amp;userid=".intval($userid)."'>$name</a>";
+               return $name;
+       }
+
+       function get_assurer_ranking($userid,&$num_of_assurances,&$rank_of_assurer)
+       {
+               $num_of_assurances = get_number_of_assurances (intval($userid));
+               $rank_of_assurer = get_top_assurer_position($num_of_assurances);
+       }
+
+       function get_assuree_ranking($userid,&$num_of_assurees,&$rank_of_assuree)
+       {
+               $num_of_assurees = get_number_of_assurees (intval($userid));
+               $rank_of_assuree = get_top_assuree_position($num_of_assurees);
+       }
+
+
+// ************* html table definitions ******************
+
+       function output_ranking($userid)
+       {
+               get_assurer_ranking($userid,$num_of_assurances,$rank_of_assurer);
+               get_assuree_ranking($userid,$num_of_assurees,$rank_of_assuree);
+
+?>
+<table align="center" valign="middle" border="0" cellspacing="0" cellpadding="0" class="wrapper">
+    <tr>
+       <td class="title"><?=_("Assurer Ranking")?></td>
+    </tr>
+    <tr>
+       <td class="DataTD"><?=sprintf(_("You have made %s assurances which ranks you as the #%s top assurer."), intval($num_of_assurances), intval($rank_of_assurer) )?></td>
+    </tr>
+    <tr>
+       <td class="DataTD"><?=sprintf(_("You have received %s assurances which ranks you as the #%s top assuree."), intval($num_of_assurees), intval($rank_of_assuree) )?></td>
+    </tr>
+</table>
+<br/>
+<?
+       }
+
+       function output_assurances_header($title)
+       {
+?>
+<table align="center" valign="middle" border="0" cellspacing="0" cellpadding="0" class="wrapper">
+    <tr>
+       <td colspan="7" class="title"><?=$title?></td>
+    </tr>
+    <tr>
+       <td class="DataTD"><strong><?=_("ID")?></strong></td>
+       <td class="DataTD"><strong><?=_("Date")?></strong></td>
+       <td class="DataTD"><strong><?=_("Who")?></strong></td>
+       <td class="DataTD"><strong><?=_("Points")?></strong></td>
+       <td class="DataTD"><strong><?=_("Location")?></strong></td>
+       <td class="DataTD"><strong><?=_("Method")?></strong></td>
+       <td class="DataTD"><strong><?=_("Experience Points")?></strong></td>
+    </tr>
+<?
+       }
+
+       function output_assurances_footer($points_txt,$points,$experience_txt,$sumexperience)
+       {
+?>
+    <tr>
+       <td class="DataTD" colspan="3"><strong><?=$points_txt?>:</strong></td>
+       <td class="DataTD"><?=$points?></td>
+       <td class="DataTD">&nbsp;</td>
+       <td class="DataTD"><strong><?=$experience_txt?>:</strong></td>
+       <td class="DataTD"><?=$sumexperience?></td>
+    </tr>
+</table>
+<br/>
+<?
+       }
+
+       function output_assurances_row($assuranceid,$date,$name,$points,$location,$method,$experience)
+       {
+?>
+    <tr>
+       <td class="DataTD"><?=$assuranceid?></td>
+       <td class="DataTD"><?=$date?></td>
+       <td class="DataTD"><?=$name?></td>
+       <td class="DataTD"><?=$points?></td>
+       <td class="DataTD"><?=$location?></td>
+       <td class="DataTD"><?=$method?></td>
+       <td class="DataTD"><?=$experience?></td>
+    </tr>
+<?
+       }
+
+       function output_summary_header()
+       {
+?>
+<table align="center" valign="middle" border="0" cellspacing="0" cellpadding="0" class="wrapper">
+    <tr>
+       <td colspan="4" class="title"><?=_("Summary of your Points")?></td>
+    </tr>
+    <tr>
+       <td class="DataTD"><strong><?=_("Description")?></strong></td>
+       <td class="DataTD"><strong><?=_("Points")?></strong></td>
+       <td class="DataTD"><strong><?=_("Countable Points")?></strong></td>
+       <td class="DataTD"><strong><?=_("Remark")?></strong></td>
+    </tr>
+<?
+       }
+
+       function output_summary_footer()
+       {
+?>
+</table>
+<br/>
+<?
+       }
+
+       function output_summary_row($title,$points,$points_countable,$remark)
+       {
+?>
+    <tr>
+       <td class="DataTD"><strong><?=$title?></strong></td>
+       <td class="DataTD"><?=$points?></td>
+       <td class="DataTD"><?=$points_countable?></td>
+       <td class="DataTD"><?=$remark?></td>
+    </tr>
+<?
+       }
+
+       function output_cats_needed()
+       {
+?>
+    <tr>
+       <td class="DataTD" colspan=4><strong style='color: red'><?=_("You have to pass the CAcert Assurer Challenge (CATS-Test) to be an Assurer")?></strong></td>
+    </tr>
+<?
+       }
+
+
+// ************* output given assurances ******************
+
+       function output_given_assurances_content($userid,&$points,&$sum_experience)
+       {
+               $points = 0;
+               $sumexperience = 0;
+               $res = get_given_assurances(intval($userid));
+               while($row = mysql_fetch_assoc($res))
+               {
+                       $fromuser = get_user (intval($row['to'])); 
+                       calc_experience ($row,$points,$experience,$sum_experience);
+                       $name = show_user_link ($fromuser['fname']." ".$fromuser['lname'],intval($row['to']));
+                       output_assurances_row (intval($row['id']),$row['date'],$name,intval($row['awarded']),$row['location'],$row['method']==""?"":_(sprintf("%s", $row['method'])),$experience);
+               }
+       }
+
+// ************* output received assurances ******************
+
+       function output_received_assurances_content($userid,&$points,&$sum_experience)
+       {
+               $points = 0;
+               $sumexperience = 0;
+               $res = get_received_assurances(intval($userid));
+               while($row = mysql_fetch_assoc($res))
+               {
+                       $fromuser = get_user (intval($row['from']));
+                       calc_assurances ($row,$points,$experience,$sum_experience,$awarded);
+                       $name = show_user_link ($fromuser['fname']." ".$fromuser['lname'],intval($row['to']));
+                       output_assurances_row (intval($row['id']),$row['date'],$name,$awarded,$row['location'],$row['method']==""?"":_(sprintf("%s", $row['method'])),$experience);
+               }
+       }
+
+// ************* output summary table ******************
+
+       function check_date_limit ($userid,$age)
+       {
+               $dob = date("Y-m-d", mktime(0,0,0,date("m"),date("d"),date("Y")-$age));
+               $res = query_init ("select id from `users` where `id`='".$userid."' and `dob` < '$dob'");
+               return intval(query_get_number_of_rows($res));
+       }
+
+       function calc_points($row)
+       {
+               if (intval($row['points']) < intval($row['awarded']))
+                       $points = intval($row['awarded']);      // if 'sum of added points' > 100, awarded shows correct value
+               else
+                       $points = intval($row['points']);       // on very old assurances, awarded is '0' instead of correct value
+               switch ($row['method'])
+               {
+                       case 'Thawte Points Transfer':    // revoke all Thawte-points     (as per arbitration)
+                       case 'CT Magazine - Germany':      // revoke c't                   (only one test-entry)
+                       case 'Temporary Increase':            // revoke 'temporary increase'  (Current usage breaks audit aspects, needs to be reimplemented)
+                               $points = 0;
+                               break;
+                       case 'Administrative Increase':  // ignore AI with 2 points or less (historical for experiance points, now other calculation)
+                               if ($points <= 2)              // maybe limit to 35/50 pts in the future?
+                                       $points = 0;
+                               break;
+                       case 'unknown':                  // to be revoked in the future? limit to max 50 pts?
+                       case 'Trusted 3rd Parties':          // to be revoked in the future? limit to max 35 pts?
+                       case '':                                // to be revoked in the future? limit to max 50 pts?
+                       case 'Face to Face Meeting':        // normal assurances, limit to 35/50 pts in the future?
+                               break;
+                       default:                                // should never happen ... ;-)
+                               $points = 0;
+               }
+               if ($points < 0)                                // ignore negative points (bug needs to be fixed)
+                       $points = 0;
+               return $points;
+       }
+
+       function max_points($userid)
+       {
+               return output_summary_content ($userid,0);
+       }
+
+       function output_summary_content($userid,$display_output)
+       {
+               $sum_points = 0;
+               $sum_experience = 0;
+               $sum_experience_other = 0;
+               $max_points = 100;
+               $max_experience = 50;
+
+               $experience_limit_reached_txt = _("Limit reached");
+
+               if (check_date_limit($userid,18) != 1)
+               {
+                       $max_experience = 10;
+                       $experience_limit_reached_txt = _("Limit given by PoJAM reached");
+               }
+               if (check_date_limit($userid,14) != 1)
+               {
+                       $max_experience = 0;
+                       $experience_limit_reached_txt = _("Limit given by PoJAM reached");
+               }
+
+               $res = get_received_assurances_summary($userid);
+               while($row = mysql_fetch_assoc($res))
+               {
+                       $points = calc_points ($row);
+
+                       if ($points > $max_points)                      // limit to 100 points, above is experience (needs to be fixed)
+                       {
+                               $sum_experience_other = $sum_experience_other+($points-$max_points)*intval($row['number']);
+                               $points = $max_points;
+                       }
+                       $sum_points += $points*intval($row['number']);
+               }
+
+               $res = get_given_assurances_summary($userid);
+               while($row = mysql_fetch_assoc($res))
+               {
+                       switch ($row['method'])
+                       {
+                               case 'Face to Face Meeting':                    // count Face to Face only
+                                       $sum_experience += 2;
+                                       break;
+                       }
+
+               }
+
+               if ($sum_points > $max_points)
+                       {
+                       $sum_points_countable = $max_points;
+                       $remark_points = _("Limit reached");
+                       }
+               else
+                       {
+                       $sum_points_countable = $sum_points;
+                       $remark_points = "&nbsp";
+                       }
+               if ($sum_experience > $max_experience)
+                       {
+                       $sum_experience_countable = $max_experience;
+                       $remark_experience = $experience_limit_reached_txt;
+                       }
+               else
+                       {
+                       $sum_experience_countable = $sum_experience;
+                       $remark_experience = "&nbsp;";
+                       }
+
+               if ($sum_experience_countable + $sum_experience_other > $max_experience)
+                       {
+                       $sum_experience_other_countable = $max_experience-$sum_experience_countable;
+                       $remark_experience_other = $experience_limit_reached_txt;
+                       }
+               else
+                       {
+                       $sum_experience_other_countable = $sum_experience_other;
+                       $remark_experience_other = "&nbsp;";
+                       }
+
+               if ($sum_points_countable < $max_points)
+                       {
+                       if ($sum_experience_countable != 0)
+                               $remark_experience = $points_on_hold_txt;_("Points on hold due to less assurance points");
+                       $sum_experience_countable = 0;
+                       if ($sum_experience_other_countable != 0)
+                               $remark_experience_other = _("Points on hold due to less assurance points");
+                       $sum_experience_other_countable = 0;
+                       }
+
+               $issue_points = 0;
+               $cats_test_passed = get_cats_state ($userid);
+               if ($cats_test_passed == 0)
+                       $issue_points_txt = "<strong style='color: red'>"._("You have to pass the CAcert Assurer Challenge (CATS-Test) to be an Assurer")."</strong>";
+               else
+               {
+                       $experience_total = $sum_experience_countable+$sum_experience_other_countable;
+                       $issue_points_txt = "";
+                       if ($sum_points_countable = $max_points)
+                               $issue_points = 10;
+                       if ($experience_total >= 10)
+                               $issue_points = 15;
+                       if ($experience_total >= 20)
+                               $issue_points = 20;
+                       if ($experience_total >= 30)
+                               $issue_points = 25;
+                       if ($experience_total >= 40)
+                               $issue_points = 30;
+                       if ($experience_total >= 50)
+                               $issue_points = 35;
+                       if ($issue_points != 0)
+                               $issue_points_txt = sprintf(_("You may issue up to %s points"),$issue_points);
+               }
+               if ($display_output)
+               {
+                       output_summary_row (_("Assurance Points you received"),$sum_points,$sum_points_countable,$remark_points);
+                       output_summary_row (_("Total Experience Points by Assurance"),$sum_experience,$sum_experience_countable,$remark_experience);
+                       output_summary_row (_("Total Experience Points (other ways)"),$sum_experience_other,$sum_experience_other_countable,$remark_experience_other);
+                       output_summary_row (_("Total Points"),"&nbsp;",$sum_points_countable + $sum_experience_countable + $sum_experience_other_countable,$issue_points_txt);
+               }
+               return $issue_points;
+       }
+
+       function output_given_assurances($userid)
+       {
+               output_assurances_header(_("Assurance Points You Issued"));
+               output_given_assurances_content($userid,$points,$sum_experience);
+               output_assurances_footer(_("Total Points Issued"),$points,_("Total Experience Points"),$sum_experience);
+       }
+
+       function output_received_assurances($userid)
+       {
+               output_assurances_header(_("Your Assurance Points"));
+               output_received_assurances_content($userid,$points,$sum_experience);
+               output_assurances_footer(_("Total Assurance Points"),$points,_("Total Experience Points"),$sum_experience);
+       }
+
+       function output_summary($userid)
+       {
+               output_summary_header();
+               output_summary_content($userid,1);
+               output_summary_footer();
+       }
+
+       function output_end_of_page()
+       {
+?>
+       <p>[ <a href='javascript:history.go(-1)'><?=_("Go Back")?></a> ]</p>
+<?
+       }
+?>
index 50ac5b3..8579588 100644 (file)
@@ -1,6 +1,6 @@
 <? /*
     LibreSSL - CAcert web application
-    Copyright (C) 2004-2008  CAcert Inc.
+    Copyright (C) 2004-2011  CAcert Inc.
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     You should have received a copy of the GNU General Public License
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/ 
 
-*/ ?>
-<?
-?>
-<table align="center" valign="middle" border="0" cellspacing="0" cellpadding="0" class="wrapper">
-  <tr>
-    <td colspan="5" class="title"><?=_("Assurer Ranking")?></td>
-  </tr>
-  <tr>
-<?
-       $query = "SELECT `users`. *, count(*) AS `list` FROM `users`, `notary`
-                       WHERE `users`.`id` = `notary`.`from` AND `notary`.`from` != `notary`.`to`
-                       AND `from`='".intval($_SESSION['profile']['id'])."' GROUP BY `notary`.`from`";
-       $res = mysql_query($query);
-       $row = mysql_fetch_assoc($res);
-       $rc = intval($row['list']);
-/*
-       $query = "SELECT `users`. *, count(*) AS `list` FROM `users`, `notary`
-                       WHERE `users`.`id` = `notary`.`from` AND `notary`.`from` != `notary`.`to`
-                       GROUP BY `notary`.`from` HAVING count(*) > '$rc' ORDER BY `notary`.`when` DESC";
-*/
-       $query = "SELECT count(*) AS `list` FROM `users` 
-                       inner join `notary` on `users`.`id` = `notary`.`from` 
-                       GROUP BY `notary`.`from` HAVING count(*) > '$rc'";
-
-       $rank = mysql_num_rows(mysql_query($query)) + 1;
-?>
-    <td class="DataTD"><?=sprintf(_("You have made %s assurances which ranks you as the #%s top assurer."), intval($rc), intval($rank))?></td>
-  </tr>
-</table>
-<br>
-<table align="center" valign="middle" border="0" cellspacing="0" cellpadding="0" class="wrapper">
-  <tr>
-    <td colspan="7" class="title"><?=_("Assurance Points You Issued")?></td>
-  </tr>
-  <tr>
-    <td class="DataTD"><b><?=_("ID")?></b></td>
-    <td class="DataTD"><b><?=_("Date")?></b></td>
-    <td class="DataTD"><b><?=_("Who")?></b></td>
-    <td class="DataTD"><b><?=_("Points")?></b></td>
-    <td class="DataTD"><b><?=_("Location")?></b></td>
-    <td class="DataTD"><b><?=_("Method")?></b></td>
-    <td class="DataTD"><b><?=_("Experience Points")?></b></td>
-  </tr>
-<?
-
-       $points = 0;
-       $sumexperienceA = 0;
-       $query = "select * from `notary` where `from`='".intval($_SESSION['profile']['id'])."' and `to`!='".intval($_SESSION['profile']['id'])."' order by `id` desc";
-       $res = mysql_query($query);
-       while($row = mysql_fetch_assoc($res))
-       {
-               $fromuser = mysql_fetch_assoc(mysql_query("select * from `users` where `id`='".intval($row['to'])."'"));
-               $points += $row['awarded'];
-               $name = trim($fromuser['fname']." ".$fromuser['lname']);
-               if($name == "")
-                       $name = _("Deleted before Verification");
-               else
-                       $name = "<a href='wot.php?id=9&amp;userid=".intval($row['to'])."'>$name</a>";
-               $experience="";
-               if ($row['method'] == "Face to Face Meeting")
-               {
-                       if ($sumexperienceA < 50)
-                               $sumexperienceA=$sumexperienceA+2;
-                       $experience="2";
-               }
-               
-?>
-  <tr>
-    <td class="DataTD"><?=intval($row['id'])?></td>
-    <td class="DataTD"><?=$row['date']?></td>
-    <td class="DataTD"><?=$name?></td>
-    <td class="DataTD"><?=intval($row['awarded'])?></td>
-    <td class="DataTD"><?=$row['location']?></td>
-    <td class="DataTD"><?=$row['method']==""?"":_(sprintf("%s", $row['method']))?></td>
-    <td class="DataTD"><?=$experience?>&nbsp;</td>
-</tr>
-<? } ?>
-  <tr>
-    <td class="DataTD" colspan="3"><b><?=_("Total Points Issued")?>:</b></td>
-    <td class="DataTD"><?=$points?></td>
-    <td class="DataTD">&nbsp;</td>
-    <td class="DataTD"><strong><?=_("Total Experience Points")?>:</strong></td>
-    <td class="DataTD"><?=$sumexperienceA?></td>
-  </tr>
-</table>
-<br>
+       include_once($_SESSION['_config']['filepath']."/includes/wot.inc.php");
 
-<table align="center" valign="middle" border="0" cellspacing="0" cellpadding="0" class="wrapper">
-  <tr>
-    <td colspan="7" class="title"><?=_("Your Assurance Points")?></td>
-  </tr>
-  <tr>
-    <td class="DataTD"><b><?=_("ID")?></b></td>
-    <td class="DataTD"><b><?=_("Date")?></b></td>
-    <td class="DataTD"><b><?=_("Who")?></b></td>
-    <td class="DataTD"><b><?=_("Points")?></b></td>
-    <td class="DataTD"><b><?=_("Location")?></b></td>
-    <td class="DataTD"><b><?=_("Method")?></b></td>
-    <td class="DataTD"><b><?=_("Experience Points")?></b></td>
-  </tr>
-<?
-        $points = 0;
-       $maxpoints = 100;
-       $sumexperience = 0;
-//        $query = "select sum(points) as apoints from `notary` where `from`='".intval($_SESSION['profile']['id'])."' and `from`=`to` ";
-//        $res = mysql_query($query);
-//     $row = mysql_fetch_assoc($res);
-//     $maxpoints=intval($_SESSION['profile']['points'])-$row['apoints'];
+       $userid = intval($_SESSION['profile']['id']);
 
-       $points = 0;
-       $query = "select * from `notary` where `to`='".intval($_SESSION['profile']['id'])."' and `from` != `to` order by `id` desc ";
-       $res = mysql_query($query);
-       while($row = mysql_fetch_assoc($res))
-       {
-               $experience = 0;
-               $awarded = $row['awarded'];
-                if ($awarded < 0)
-                       $awarded = 0;
-               if ($row['points'] > $row['awarded'])
-                       $awarded = $row['points'];
-               if ($awarded > 150)
-                       $awarded = 150;
-               $awardedcount = $awarded;
-               if ($awarded > 100)
-                       {
-                       $experience = $awarded - $maxpoints;
-                       $awarded = 100;
-                       }
-               if ($points+$awarded > $maxpoints)
-                       $awarded = $maxpoints-$points;
-               
-               switch ($row['method'])
-               {
-                       case 'Thawte Points Transfer':
-                       //      $points=0;
-                               $awarded=sprintf("<strong style='color: red'>%s</strong>",_("Revoked"));
-                               $experience=0;
-                               break;
-                       case 'CT Magazine - Germany':
-                       //      $points=0;
-                               $awarded=sprintf("<strong style='color: red'>%s</strong>",_("Revoked"));
-                               $experience=0;
-                               break;
-                       case 'Temporary Increase':
-// Current usage of 'Temporary Increase' may break audit aspects, needs to be reimplemented
-                       //      $points=0;
-                               $awarded=sprintf("<strong style='color: red'>%s</strong>",_("Revoked"));
-                               $experience=0;
-                               break;
-                       case 'Administrative Increase':
-                               if ($row['points'] > 2)
-                                       $points = $points + $awarded;
-                               break;
-                       default:
-                               $points = $points + $awarded;
-               }
-               if ($sumexperience+$experience < 150)
-                       $sumexperience = $sumexperience + $experience;
-               else
-                       $sumexperience = 150;
+       output_ranking($userid);
+       output_summary($userid);
+       output_given_assurances($userid);
+       output_received_assurances($userid);
 
-$fromuser = mysql_fetch_assoc(mysql_query("select * from `users` where `id`='".intval($row['from'])."'"));
-?>
-  <tr>
-    <td class="DataTD"><?=$row['id']?></td>
-    <td class="DataTD"><?=$row['date']?></td>
-    <td class="DataTD"><a href="wot.php?id=9&amp;userid=<?=intval($row['from'])?>"><?=$fromuser['fname']." ".$fromuser['lname']?></td>
-    <td class="DataTD"><?=$awarded?></td>
-    <td class="DataTD"><?=$row['location']?></td>
-    <td class="DataTD"><?=_(sprintf("%s", $row['method']))?></td>
-    <td class="DataTD"><?=$experience?></b></td>
-  </tr>
-<? } 
-       if ($sumexperienceA + $sumexperience > 50)
-               $sumexperienceOut = 50-$sumexperienceA;
-       else
-               $sumexperienceOut = $sumexperience;
-       if ($points < 100)
-               {
-               $sumexperienceAHold = $sumexperienceA;
-               $sumexperienceA = 0;
-               $sumexperienceOutHold = $sumexperienceOut;
-               $sumexperienceOut = 0;
-               }
+       output_end_of_page();
 ?>
-  <tr>
-    <td class="DataTD" colspan="3"><b><?=_("Total Assurance Points")?>:</b></td>
-    <td class="DataTD"><?=$points?></td>
-    <td class="DataTD" colspan="3">&nbsp;</td>
-  </tr>
-  <tr>
-      <td class="DataTD" colspan="3"><b><?=_("Total Experience Points by Assurance")?>:</b></td>
-      <td class="DataTD"><?=$sumexperienceA?></td>
-      <td class="DataTD" colspan="3">
-<? if ($points < 100)
-   {
-       printf(_("%s Points on hold due to less Assurance points"), $sumexperienceAHold);
-   }?>
-      </td>
-  </tr>
-  <tr>
-        <td class="DataTD" colspan="3"><b><?=_("Total Experience Points (other ways)")?>:</b></td>
-        <td class="DataTD"><?=$sumexperienceOut?></td>
-        <td class="DataTD" colspan="3">&nbsp;
-       <? if ($sumexperience != $sumexperienceOut)
-       {
-               if (points <100)
-               {
-                       printf(_("%s Points on hold due to less Assurance points"), $sumexperienceOutHold);
-               } else {
-                       echo _("Limit reached");
-               }
-       }?>
-       </td>
-  </tr>
-  <tr>
-      <td class="DataTD" colspan="3"><b><?=_("Total Points")?>:</b></td>
-      <td class="DataTD"><?=$points + $sumexperienceA + $sumexperienceOut?></td>
-      <td class="DataTD" colspan="3">&nbsp;</td>
-  </tr>
-
-</table>
-<p>[ <a href='javascript:history.go(-1)'><?=_("Go Back")?></a> ]</p>
-