LoGD Standardrelease steht hier zum Download zur Verfügung!

Zeige Source: /logd/common.php

Hier klicken für den Source, ODER
Weitere Dateien, von denen du den Quelltext sehen kannst:
(Das Lesen des Source, um sich spielerische Vorteile zu verschaffen, ist nicht erlaubt. Solltest du Schwachstellen oder Fehler entdecken, bist du als Spieler verpflichtet, diese zu melden.)

Source von: /logd/common.php

<?php
// 12092004

require_once "dbwrapper.php";
require_once 
"anticheat.php";
$pagestarttime getmicrotime();

$nestedtags=array();
$output="";
function 
lover($wert="*",$player=false) {
    
//Erster Parameter ist ein String mit den abzufragenden Feldern - wie in MySQL
    //Zweiter Parameter bestimmt, ob es sich um den aktuellen User handelt, oder einen andern - ID ANGEBEN!!!
    
global $session;
    if(
$session['user']['marriedto']==|| $session['user']['marriedto']==4294967295) {
        return 
false;
    } else {
        if(
$player==false) {
            
$sql="SELECT {$wert} FROM accounts WHERE acctid = {$session[user][marriedto]} LIMIT 1";
        } else {
            
$sql="SELECT {$wert} FROM accounts WHERE acctid = {$player} LIMIT 1";
        }
        
$lover=db_fetch_assoc(db_query($sql));
        if(
$lover) {
            return 
$lover;
        } else {
            return 
false;
        }
    }
}
if (!
function_exists('array_combine')){
function 
array_combine ($keys$values){
$error 0;
if (!
is_array($keys)) $error 1;
if (!
is_array($values)) $error 2;
if (
$error){
die(
"<b>Fatal Error:</b> Fehler bei Funktion \"array_combine\": Argument $error ist kein Array!");
}
if (
count($keys)!=count($values) || count($keys)==0){
return 
false;
}else{
$array = array();
while (list(
$x,$key)=each($keys)){
list(
$y,$val)=each($values);
$array[$key] = $val;
}
return 
$array;
}
}
}

function 
useronline(){ //Wer ist hier online? V.1.0 by Devilzimti
global $session,$SCRIPT_NAME;

$useronline "<img src='images/uscroll.GIF' width='195' height='11' alt=''><br>
<table border='0' cellpadding='0' cellspacing='0' class='vitalinfo'>
<tr><td><tr><td><b>`6&nbsp;Hier anwesend:`0</b></td></tr>"
;
$sql "SELECT name,login FROM accounts
                WHERE (accounts.restorepage LIKE '"
.$SCRIPT_NAME."%"."' OR accounts.acctid=".$session[user][acctid].")
                AND loggedin = 1
                AND locked = 0
                AND laston>'"
.date("Y-m-d H:i:s",strtotime("-".getsetting("LOGINTIMEOUT",900)." seconds"))."'
                ORDER BY dragonkills,level;
                "
;

$query =db_query($sql);

while(
$row db_fetch_assoc($query)){
    
$useronline.= "<tr><td>&nbsp;<a href='mail.php?op=write&to=".rawurlencode($row['login'])."' target='_blank' onClick=\"".popup("mail.php?op=write&to=".rawurlencode($row['login'])).";return false;\"><img src='images/newscroll.GIF' width='16' height='16' alt='Mail schreiben' border='0'></a>&nbsp;";
    
$useronline.= "`0$row[name]</td></tr>";
}
$useronline.= "</td></tr></table>
<img src='images/lscroll.GIF' width='195' height='11'>"
;

$useronline appoencode($useronline,true);
return 
$useronline;
}
function 
pvpwarning($dokill=false) {
    global 
$session;
    
$days getsetting("pvpimmunity"5);
    
$exp getsetting("pvpminexp"1500);
    if (
$session['user']['age'] <= $days &&
        
$session['user']['dragonkills'] == &&
        
$session['user']['user']['pk'] == &&
        
$session['user']['experience'] <= $exp) {
        if (
$dokill) {
            
output("`\$Warnung!`^ Da du selbst noch vor PvP geschützt warst, aber jetzt einen anderen Spieler angreifst, hast du deine Immunität verloren!!`n`n");
            
$session['user']['pk'] = 1;
        } else {
            
output("`\$Warnung!`^ Innerhalb der ersten $days  Tage in dieser Welt, oder bis sie $exp Erfahrungspunkte gesammelt haben, sind alle Spieler vor PvP-Angriffen geschützt. Wenn du einen anderen Spieler angreifst, verfällt diese Immunität für dich!`n`n");
        }
    }
}

function 
give_new_loot($name,$description,$gold=0,$gems=0)
  {
     
// Gives Users a New Loot
     // by Basilius, Eliwood
     
global $session;
     
$sql "INSERT INTO items (name,description,class,owner,gold,gems) "
           
."VALUES ('$name','$description','Beute','".$session['user']['acctid']."','$gold','$gems')";
     
db_query($sql) or die("Ach, so nen Mist, schon wieder verbockt!");
  }

function 
rawoutput($indata) {
    global 
$output;
    
$output .= $indata "\n";
}

function 
output($indata,$priv=false){
    global 
$nestedtags,$output;
    
$data translate($indata);
// Aprilscherz deaktiviert ;)
//    if (date("m-d")=="04-01"){
//        $out = appoencode($data,$priv);
//        if ($priv==false) $out = borkalize($out);
//        $output.=$out;
//    }else{
      
$output.=appoencode($data,$priv);
//    }
    
$output.="\n";
    return 
0;
}

function 
compress_out ($input) {
    
//Based on old YaBBSE code (c)
    //Open-Source Project by Zef Hemel (zef@zefnet.com <mailto:zef@zefnet.com>)
    //Copyright (c) 2001-2002 The YaBB Development Team
    
if((function_exists("gzcompress")) && (function_exists("crc32"))){
       if(
strpos(" " $_SERVER['HTTP_ACCEPT_ENCODING'], "x-gzip")){
          
$encode "x-gzip";
       }
       elseif(
strpos(" " $_SERVER['HTTP_ACCEPT_ENCODING'], "gzip")){
          
$encode "gzip";
       }
    if (isset(
$encode)){
        
header("Content-Encoding:$encode");
        
$encode_size =strlen($input);
        
$encode_crc =crc32($input);
        
$out "\x1f\x8b\x08\x00\x00\x00\x00\x00";
        
$out .= substr(gzcompress($input1),0,-4);
        
$out .= pack("V",$encode_crc);
        
$out .= pack("V",$encode_size);
    }
    else{
        
$out $input;
    }
}
else{
    
$out $input;
}
return (
$out);
}


function 
safeescape($input){
    return 
preg_replace('/([^\\\\])(["\'])/s',"\\1\\\\\\2",$input);

}

//by Chaosmaker
function petitionmail($subject,$body,$petition,$from,$seen=0,$to=0,$messageid=0) {
    
$subject safeescape($subject);
    
$subject=str_replace("\n","",$subject);
    
$subject=str_replace("`n","",$subject);
    
$body safeescape($body);

    
$sql "INSERT INTO petitionmail (petitionid,messageid,msgfrom,msgto,subject,body,sent,seen) VALUES ('".(int)$petition."','".(int)$messageid."','".(int)$from."','".(int)$to."','$subject','$body',now(),'$seen')";
    
db_query($sql);
    
$sql 'UPDATE petitions SET lastact=NOW() WHERE petitionid="'.(int)$petition.'"';
    
db_query($sql);
}
//end petitionmail

function systemmail($to,$subject,$body,$from=0,$noemail=false){
    
$subject safeescape($subject);
    
$subject=str_replace("\n","",$subject);
    
$subject=str_replace("`n","",$subject);
    
$body safeescape($body);
    
//echo $subject."<br>".$body;
    
$sql "SELECT prefs,emailaddress FROM accounts WHERE acctid='$to'";
    
$result db_query($sql);
    
$row db_fetch_assoc($result);
    
db_free_result($result);
    
$prefs unserialize($row['prefs']);

    if (
$prefs['dirtyemail']){
        
//output("Not cleaning: $prefs[dirtyemail]");
    
}else{
        
//output("Cleaning: $prefs[dirtyemail]");
        
$subject=soap($subject);
        
$body=soap($body);
    }

    
$sql "INSERT INTO mail (msgfrom,msgto,subject,body,sent) VALUES ('".(int)$from."','".(int)$to."','$subject','$body',now())";
    
db_query($sql);
    
$email=false;
    if (
$prefs['emailonmail'] && $from>0){
        
$email=true;
    }elseif(
$prefs[emailonmail] && $from==&& $prefs[systemmail]){
        
$email=true;
    }
    if (!
is_email($row['emailaddress'])) $email=false;
    if (
$email && !$noemail){
        
$sql "SELECT name FROM accounts WHERE acctid='$from'";
        
$result db_query($sql);
        
$row1=db_fetch_assoc($result);
        
db_free_result($result);
        if (
$row1['name']!=""$fromline="From: ".preg_replace("'[`].'","",$row1[name])."\n";
        
// We've inserted it into the database, so.. strip out any formatting
        // codes from the actual email we send out... they make things
        // unreadable
        
$body preg_replace("'[`]n'""\n"$body);
        
$body preg_replace("'[`].'"""$body);
        
mail($row['emailaddress'],"Neue LoGD Mail","Du hast eine neue Nachricht von LoGD @ http://".$_SERVER[HTTP_HOST].dirname($_SERVER[SCRIPT_NAME])." empfangen.\n\n$fromline"
            
."Betreff: ".preg_replace("'[`].'","",stripslashes($subject))."\n"
            
."Body: ".stripslashes($body)."\n"
            
."\nDu kannst diese Meldungen in deinen Einstellungen abschalten.",
            
"From: ".getsetting("gameadminemail","postmaster@localhost")
        );
    }
}

function 
isnewday($level){
    global 
$session;
    if (
$session['user']['superuser']<$level) {
        
clearnav();
        
$session['output']="";
        
page_header("FREVEL!");
        
$session['bufflist']['angrygods']=array(
            
"name"=>"`^Die Götter sind wütend!",
            
"rounds"=>10,
            
"wearoff"=>"`^Es ist den Göttern langweilig geworden, dich zu quälen.",
            
"minioncount"=>$session['user']['level'],
            
"maxgoodguydamage"=> 2,
            
"effectmsg"=>"`7Die Götter verfluchen dich und machen dir `^{damage}`7 Schaden!",
            
"effectnodmgmsg"=>"`7Die Götter haben beschlossen, dich erstmal nicht zu quälen.",
            
"activate"=>"roundstart",
            
"survivenewday"=>1,
            
"newdaymessage"=>"`6Die Götter sind dir immer noch böse!"
        
);
        
output("Für den Versuch, die Götter zu betrügen, wurdest du niedergeschmettert!`n`n");
        
output("`\$Ramius, der Gott der Toten`) erscheint dir in einer Vision. Dafür, dass du versucht hast, deinen Geist mit seinem zu messen, sagt er dir wortlos, dass du keinen Gefallen mehr bei ihm hast.`n`n");
        
addnews("`&Für den Versuch, die Götter zu besudeln, wurde ".$session['user']['name']." zu Tode gequält! (Hackversuch gescheitert).");
        
$session['user']['hitpoints']=0;
        
$session['user']['alive']=0;
        
$session['user']['soulpoints']=0;
        
$session['user']['gravefights']=0;
        
$session['user']['deathpower']=0;
        
$session['user']['experience']*=0.75;
        
addnav("Tägliche News","news.php");
        
page_footer();
        
$sql "SELECT acctid FROM accounts WHERE superuser>=3";
        
$result db_query($sql);
        while (
$row db_fetch_assoc($result)) {
            
systemmail($row['acctid'],"`#{$session['user']['name']}`# hat versucht, Superuser-Seiten zu hacken!","Böse(r), böse(r), böse(r) {$session['user']['name']}, du bist ein Hacker!");
        }
        exit();
    }
}

function 
forest($noshowmessage=false) {
    global 
$session,$playermount;
  
$conf unserialize($session['user']['donationconfig']);
  if (
$conf['healer'] || $session['user']['acctid']==getsetting("hasegg",0)) {
      
addnav("H?Golindas Hütte","healer.php");
  } else {
      
addnav("H?Hütte des Heilers","healer.php");
  }
  
addnav("B?Etwas zum Bekämpfen suchen","forest.php?op=search");
  if (
$session['user']['level']>1)
      
addnav("H?Herumziehen","forest.php?op=search&type=slum");
  
addnav("N?Nervenkitzel suchen","forest.php?op=search&type=thrill");
  
//if ($session[user][hashorse]>=2) addnav("D?Dark Horse Tavern","forest.php?op=darkhorse");
  
if ($playermount['tavern']>0addnav("Nimm {$playermount['mountname']} zur Dark Horse Taverne","forest.php?op=darkhorse");
  if (
$playermount['tavern']>&& $conf['castle']) addnav("B?Nimm {$playermount['mountname']} zur Burg","forest.php?op=castle");
  if (
$conf['goldmine']>0addnav("Goldmine (".$conf[goldmine]."x)","paths.php?ziel=goldmine&pass=conf");
  
addnav("Horst der Adler","schnellbank.php");
  
addnav("Z?Zurück zum Dorf","village.php");
  
addnav("","forest.php");
    if (
$session['user']['level']>=15  && $session['user']['seendragon']==0){
        
addnav("G?`@Den Grünen Drachen suchen","forest.php?op=dragon");
    }
    
addnav("Sonstiges");
    
addnav("P?Plumpsklo","outhouse.php");
    if (
$session['user']['turns']<=addnav("Hexenhaus","hexe.php");
    if (
$noshowmessage!=true){
        
output("`c`7`bDer Wald`b`0`c");
        
output("Der Wald, Heimat von bösartigen Kreaturen und üblen Übeltätern aller Art.`n`n");
        
output("Die dichten Blätter des Waldes erlauben an den meisten Stellen nur wenige Meter Sicht.  ");
        
output("Die Wege würden dir verborgen bleiben, hättest du nicht ein so gut geschultes Auge. Du bewegst dich so leise wie ");
        
output("eine milde Brise über den dicken Humus, der den Boden bedeckt. Dabei versuchst du es zu vermeiden ");
        
output("auf dünne Zweige oder irgendwelche der ausgebleichten Knochenstücke zu treten, welche den Waldboden spicken. ");
        
output("Du verbirgst deine Gegenwart vor den abscheulichen Monstern, die den Wald durchwandern.");
        if (
$session['user']['turns']<=1output(" In der Nähe siehst du wieder den Rauch aus dem Kamin eines windschiefen Hexenhäuschens aufsteigen, von dem du schwören könntest, es war eben noch nicht da. ");
    }
    if (
$session['user']['superuser']>1){
        
output("`n`nSUPERUSER Specials:`n");
        
$d dir("special");
        while (
false !== ($entry $d->read())){
            
// Skip non php files (including directories)
            
if(strpos($entry".php") === false) continue;
            
// Skip any hidden files
            
if (substr($entry,0,1)==".") continue;
              
output("<a href='forest.php?specialinc=$entry'>$entry</a>`n"true);
            
addnav("","forest.php?specialinc=$entry");
        }
    }
}

function 
borkalize($in){
    
$out $in;
    
$out str_replace(". ",". Bork bork. ",$out);
    
$out str_replace(", ",", bork, ",$out);
    
$out str_replace(" h"," hoor",$out);
    
$out str_replace(" v"," veer",$out);
    
$out str_replace("g ","gen ",$out);
    
$out str_replace(" p"," pere",$out);
    
$out str_replace(" qu"," quee",$out);
    
$out str_replace("n ","nen ",$out);
    
$out str_replace("e ","eer ",$out);
    
$out str_replace("s ","ses ",$out);
    return 
$out;
}

function 
getmicrotime(){
    list(
$usec$sec) = explode(" ",microtime());
    return ((float)
$usec + (float)$sec);
    }
function 
make_seed() {
    list(
$usec$sec) = explode(' 'microtime());
    return (float) 
$sec + ((float) $usec 100000);
}
mt_srand(make_seed());

function 
e_rand($min=false,$max=false){
    if (
$min===false) return mt_rand();
    
$min*=1000;
    if (
$max===false) return round(mt_rand($min)/1000,0);
    
$max*=1000;
    if (
$min==$max) return round($min/1000,0);
    
// if ($min==0 && $max==0) return 0; //do NOT as me why this line can be executed, it makes no sense, but it *does* get executed.
    
if ($min<$max){
        return 
round(@mt_rand($min,$max)/1000,0);
    }else if(
$min>$max){
        return 
round(@mt_rand($max,$min)/1000,0);
    }
}

function 
is_email($email){
    return 
preg_match("/[[:alnum:]_.-]+[@][[:alnum:]_.-]{2,}.[[:alnum:]_.-]{2,}/",$email);
}

function 
checkban($login=false){
    global 
$session;
    if (
$session['banoverride']) return false;
    if (
$login===false){
        
$ip=$_SERVER[REMOTE_ADDR];
        
$id=$_COOKIE[lgi];
        
//echo "<br>Orig output: $ip, $id<br>";
    
}else{
        
$sql "SELECT lastip,uniqueid,banoverride FROM accounts WHERE login='$login'";
        
$result db_query($sql) or die(db_error(LINK));
        
$row db_fetch_assoc($result);
        if (
$row['banoverride']){
            
$session['banoverride']=true;
            
//echo "`nYou are absolved of your bans, son.";
            
return false;
        }else{
            
//echo "`nNo absolution here, son.";
        
}
        
db_free_result($result);
        
$ip=$row['lastip'];
        
$id=$row['uniqueid'];
        
//echo "<br>Secondary output: $ip, $id<br>";
    
}
    
$sql "select * from bans where ((substring('$ip',1,length(ipfilter))=ipfilter AND ipfilter<>'') OR (uniqueid='$id' AND uniqueid<>'')) AND (banexpire='0000-00-00' OR banexpire>'".date("Y-m-d")."')";
    
//echo $sql;
    
$result db_query($sql) or die(db_error(LINK));
    if (
db_num_rows($result)>0){
        
// $msg.=$session['message'];
        
$session=array();
        
//$session['message'] = $msg;
        //echo "Session Abandonment";
        
$session[message].="`n`4Du bist einer Verbannung zum Opfer gefallen:`n";
        for (
$i=0;$i<db_num_rows($result);$i++){
            
$row db_fetch_assoc($result);
            
$session[message].=$row[banreason];
            if (
$row[banexpire]=="0000-00-00"$session[message].="  `\$Die Verbannung ist permanent!`0";
            if (
$row[banexpire]!="0000-00-00"$session[message].="  `^Der Bann wird am ".date("M d, Y",strtotime($row[banexpire]))." aufgehoben `0";
            
$session[message].="`n";
        }
        
$session[message].="`4Wenn du willst, kannst du mit einer Anfrage nach dem Grund fragen.";
        
header("Location: index.php");
        exit();
    }
    
db_free_result($result);
}

function 
increment_specialty(){
  global 
$session;
        if (
$session[user][specialty]>0){
            
$skillnames = array(1=>"Dunkle Künste","Mystische Kräfte","Diebeskunst","Blaue Magie","Rote Magie","Schwarze Magie","Dunkle Stabmagie","Heillige Stabmagie","Elementare Stabmagie","Feuerkünste","Eismagie","Naturkräfte","Heilungskräfte","Verderbenszauber","Chaoskünste");
$skills = array(1=>"darkarts","magic","thievery","bmagie","rmagie","smagie","dsmagie","hsmagie","esmagie","fmagie","emagie","nmagie","hmagie","vmagie","cmagie");
$skillpoints = array(1=>"darkartuses","magicuses","thieveryuses","bmagieuses","rmagieuses","smagieuses","dsmagieuses","hsmagieuses","esmagieuses","fmagieuses","emagieuses","nmagieuses","hmagieuses","vmagieuses","cmagieuses");
            
$session[user][$skills[$session[user][specialty]]]++;
            
output("`nDu steigst in `&".$skillnames[$session[user][specialty]]."`# ein Level auf ".$session[user][$skills[$session[user][specialty]]]." auf. ");
            
$x = ($session[user][$skills[$session[user][specialty]]]) % 3;
            if (
$x == 0){
                
output("Du bekommst eine zusätzliche Anwendung!`n");
                
$session[user][$skillpoints[$session[user][specialty]]]++;
            }else{
                
output("Nur noch ".(3-$x)." weitere Stufen, bis du eine zusätzliche Anwendung erhältst!`n");
            }
        }else{
            
output("`7Du wanderst ziel- und planlos durchs Leben. Du solltest eine Rast machen und einige wichtige Entscheidungen für dein weiteres Leben treffen.`n");
        }
}
function 
yeoldemail($login,$return false)
{
  
$ausgabe '<a href="mail.php?op=write&to='.$login.'" target="_blank" onClick="'
    
.popup("mail.php?op=write&to=".$login)
    .
';return false;\">'
    
.'<img src="images/newscroll.GIF" width="16" height="16" alt="Mail schreiben" border="0" />'
    
.'</a> ';
  if(
$return === falserawoutput($ausgabe);
  else return 
$ausgabe;
}
function 
fightnav($allowspecial=true$allowflee=true){
  global 
$PHP_SELF,$session;
    
//$script = str_replace("/","",$PHP_SELF);
    
$script substr($PHP_SELF,strrpos($PHP_SELF,"/")+1);
    
addnav("Kämpfen","$script?op=fight");
    if (
$allowflee) {
        
addnav("Wegrennen","$script?op=run");
    }
    if (
getsetting("autofight",0)){
        
addnav("AutoFight");
        
addnav("5 Runden kämpfen","$script?op=fight&auto=five");
        
addnav("Bis zum bitteren Ende","$script?op=fight&auto=full");
    }
    if (
$allowspecial) {
        
addnav("`bBesondere Fähigkeiten`b");
        if (
$session[user][darkartuses]>0) {
            
addnav("`\$Dunkle Künste`0""");
            
addnav("`\$&#149; Skelette herbeirufen`7 (1/".$session[user][darkartuses].")`0","$script?op=fight&skill=DA&l=1",true);
        }
        if (
$session[user][darkartuses]>1)
            
addnav("`\$&#149; Voodoo`7 (2/".$session[user][darkartuses].")`0","$script?op=fight&skill=DA&l=2",true);
        if (
$session[user][darkartuses]>2)
            
addnav("`\$&#149; Geist verfluchen`7 (3/".$session[user][darkartuses].")`0","$script?op=fight&skill=DA&l=3",true);
        if (
$session[user][darkartuses]>4)
            
addnav("`\$&#149; Seele verdorren`7 (5/".$session[user][darkartuses].")`0","$script?op=fight&skill=DA&l=5",true);

        if (
$session[user][thieveryuses]>0) {
            
addnav("`^Diebeskünste`0","");
            
addnav("`^&#149; Beleidigen`7 (1/".$session[user][thieveryuses].")`0","$script?op=fight&skill=TS&l=1",true);
        }
        if (
$session[user][thieveryuses]>1)
            
addnav("`^&#149; Waffe vergiften`7 (2/".$session[user][thieveryuses].")`0","$script?op=fight&skill=TS&l=2",true);
        if (
$session[user][thieveryuses]>2)
            
addnav("`^&#149; Versteckter Angriff`7 (3/".$session[user][thieveryuses].")`0","$script?op=fight&skill=TS&l=3",true);
        if (
$session[user][thieveryuses]>4)
            
addnav("`^&#149; Angriff von hinten`7 (5/".$session[user][thieveryuses].")`0","$script?op=fight&skill=TS&l=5",true);

        if (
$session[user][magicuses]>0) {
            
addnav("`%Mystische Kräfte`0","");
            
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
            
addnav("g?`%&#149; Regeneration`7 (1/".$session[user][magicuses].")`0","$script?op=fight&skill=MP&l=1",true);
        }
        if (
$session[user][magicuses]>1)
            
addnav("`%&#149; Erdenfaust`7 (2/".$session[user][magicuses].")`0","$script?op=fight&skill=MP&l=2",true);
        if (
$session[user][magicuses]>2)
            
addnav("L?`%&#149; Leben absaugen`7 (3/".$session[user][magicuses].")`0","$script?op=fight&skill=MP&l=3",true);
        if (
$session[user][magicuses]>4)
            
addnav("A?`%&#149; Blitz Aura`7 (5/".$session[user][magicuses].")`0","$script?op=fight&skill=MP&l=5",true);
        if (
$session[user][bmagieuses]>0) {
            
addnav("`!Blaue Magie`0","");
            
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
            
addnav("g?`!&#149; Kugelhagel`7 (1/".$session[user][bmagieuses].")`0","$script?op=fight&skill=BM&l=1",true);
        }
        if (
$session[user][bmagieuses]>1)
            
addnav("`!&#149; Eis Waffe`7 (2/".$session[user][bmagieuses].")`0","$script?op=fight&skill=BM&l=2",true);
        if (
$session[user][bmagieuses]>2)
            
addnav("L?`!&#149; Eis Drache`7 (3/".$session[user][bmagieuses].")`0","$script?op=fight&skill=BM&l=3",true);
        if (
$session[user][bmagieuses]>4)
            
addnav("A?`!&#149; Seele vereisen`7 (5/".$session[user][bmagieuses].")`0","$script?op=fight&skill=BM&l=5",true);

if (
$session[user][rmagieuses]>0) {
            
addnav("`4Rote Magie`0","");
            
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
            
addnav("g?`4&#149; Wunden heilen`7 (1/".$session[user][rmagieuses].")`0","$script?op=fight&skill=RM&l=1",true);
        }
        if (
$session[user][rmagieuses]>1)
            
addnav("`4&#149; Lavasturm`7 (2/".$session[user][rmagieuses].")`0","$script?op=fight&skill=RM&l=2",true);
        if (
$session[user][rmagieuses]>2)
            
addnav("L?`4&#149; Hellfirewaffe`7 (3/".$session[user][rmagieuses].")`0","$script?op=fight&skill=RM&l=3",true);
        if (
$session[user][rmagieuses]>4)
            
addnav("A?`4&#149; Feuerblitzerdseisangriff`7 (5/".$session[user][rmagieuses].")`0","$script?op=fight&skill=RM&l=5",true);

if (
$session[user][smagieuses]>0) {
            
addnav("`TSchwarze Magie`0","");
            
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
            
addnav("g?`T&#149; Skelettdiener`7 (1/".$session[user][smagieuses].")`0","$script?op=fight&skill=SM&l=1",true);
        }
        if (
$session[user][smagieuses]>1)
            
addnav("`T&#149; Gefolgsleute`7 (2/".$session[user][smagieuses].")`0","$script?op=fight&skill=SM&l=2",true);
        if (
$session[user][smagieuses]>2)
            
addnav("L?`T&#149; Göttermacht`7 (3/".$session[user][smagieuses].")`0","$script?op=fight&skill=SM&l=3",true);
        if (
$session[user][smagieuses]>4)
            
addnav("A?`T&#149; Verbündete Bürger`7 (5/".$session[user][smagieuses].")`0","$script?op=fight&skill=SM&l=5",true);

if (
$session[user][dsmagieuses]>0) {
            
addnav("`7Dunkle Stabmagie`0","");
            
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
            
addnav("S?`7&#149; `7Spinnen`7 (1/".$session[user][dsmagieuses].")`0","$script?op=fight&skill=DS&l=1",true);
        }
        if (
$session[user][dsmagieuses]>1)
            
addnav("A?`7&#149; Aurastrahl`7 (2/".$session[user][dsmagieuses].")`0","$script?op=fight&skill=DS&l=2",true);
        if (
$session[user][dsmagieuses]>2)
            
addnav("L?`7&#149; Lava Drache`7 (3/".$session[user][dsmagieuses].")`0","$script?op=fight&skill=DS&l=3",true);
        if (
$session[user][dsmagieuses]>4)
            
addnav("F?`7&#149; Formwandlung`7 (5/".$session[user][dsmagieuses].")`0","$script?op=fight&skill=DS&l=5",true);

if (
$session[user][hsmagieuses]>0) {
            
addnav("`gHeillige Stabmagie`0","");
            
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
            
addnav("W?`g&#149; Wunden heilen`7 (1/".$session[user][hsmagieuses].")`0","$script?op=fight&skill=HS&l=1",true);
        }
        if (
$session[user][hsmagieuses]>1)
            
addnav("H?`g&#149; Himmelsengel`7 (2/".$session[user][hsmagieuses].")`0","$script?op=fight&skill=HS&l=2",true);
        if (
$session[user][hsmagieuses]>2)
            
addnav("S?`g&#149; Heilliges Schwert`7 (3/".$session[user][hsmagieuses].")`0","$script?op=fight&skill=HS&l=3",true);
        if (
$session[user][hsmagieuses]>4)
            
addnav("l?`g&#149; Sonnenlicht`7 (5/".$session[user][hsmagieuses].")`0","$script?op=fight&skill=HS&l=5",true);

if (
$session[user][esmagieuses]>0) {
            
addnav("`@Elementare Stabmagie`0","");
            
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
            
addnav("S?`@&#149; Skelettdiener`7 (1/".$session[user][esmagieuses].")`0","$script?op=fight&skill=ES&l=1",true);
        }
        if (
$session[user][esmagieuses]>1)
            
addnav("B?`@&#149; Baumwächter`7 (2/".$session[user][esmagieuses].")`0","$script?op=fight&skill=ES&l=2",true);
        if (
$session[user][esmagieuses]>2)
            
addnav("P?`@&#149; Pflanzen`7 (3/".$session[user][esmagieuses].")`0","$script?op=fight&skill=ES&l=3",true);
        if (
$session[user][esmagieuses]>4)
            
addnav("H?`@&#149; Hirten`7 (5/".$session[user][esmagieuses].")`0","$script?op=fight&skill=ES&l=5",true);

            if (
$session[user][fmagieuses]>0) {
            
addnav("`NFeuerkünste`0","");
            
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
            
addnav("F?`N&#149; Feuerkugel`7 (1/".$session[user][fmagieuses].")`0","$script?op=fight&skill=FM&l=1",true);
        }
        if (
$session[user][fmagieuses]>1)
            
addnav("w?`N&#149; Flammenwaffe`7 (2/".$session[user][fmagieuses].")`0","$script?op=fight&skill=FM&l=2",true);
        if (
$session[user][fmagieuses]>2)
            
addnav("D?`N&#149; Feuer Drache`7 (3/".$session[user][fmagieuses].")`0","$script?op=fight&skill=FM&l=3",true);
        if (
$session[user][fmagieuses]>4)
            
addnav("S?`N&#149; Seele verbrennen`7 (5/".$session[user][fmagieuses].")`0","$script?op=fight&skill=FM&l=5",true);

if (
$session[user][emagieuses]>0) {
            
addnav("`F#Eismagie`0","");
            
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
            
addnav("E?`F&#149; Eiszapfen`7 (1/".$session[user][emagieuses].")`0","$script?op=fight&skill=EM&l=1",true);
        }
        if (
$session[user][emagieuses]>1)
            
addnav("k?`F&#149; Eiskugel`7 (2/".$session[user][emagieuses].")`0","$script?op=fight&skill=EM&l=2",true);
        if (
$session[user][emagieuses]>2)
            
addnav("b?`F&#149; Eisbogen`7 (3/".$session[user][emagieuses].")`0","$script?op=fight&skill=EM&l=3",true);
        if (
$session[user][emagieuses]>4)
            
addnav("a?`F&#149; Eisangriff`7 (5/".$session[user][emagieuses].")`0","$script?op=fight&skill=EM&l=5",true);

if (
$session[user][nmagieuses]>0) {
            
addnav("`wNaturkräfte`0","");
            
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
            
addnav("N?`w&#149; Naturteilchen`7 (1/".$session[user][nmagieuses].")`0","$script?op=fight&skill=NM&l=1",true);
        }
        if (
$session[user][nmagieuses]>1)
            
addnav("R?`w&#149; Rehe`7 (2/".$session[user][nmagieuses].")`0","$script?op=fight&skill=NM&l=2",true);
        if (
$session[user][nmagieuses]>2)
            
addnav("f?`w&#149; Naturfasern`7 (3/".$session[user][nmagieuses].")`0","$script?op=fight&skill=NM&l=3",true);
        if (
$session[user][nmagieuses]>4)
            
addnav("t?`w&#149; Naturteilchen`7 (5/".$session[user][nmagieuses].")`0","$script?op=fight&skill=NM&l=5",true);

if (
$session[user][hmagieuses]>0) {
            
addnav("`kHeilungskräfte`0","");
            
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
            
addnav("H?`k&#149; Heilungssiegel`7 (1/".$session[user][hmagieuses].")`0","$script?op=fight&skill=HM&l=1",true);
        }
        if (
$session[user][hmagieuses]>1)
            
addnav("k?`k&#149; Heilkraut`7 (2/".$session[user][hmagieuses].")`0","$script?op=fight&skill=HM&l=2",true);
        if (
$session[user][hmagieuses]>2)
            
addnav("D?`k&#149; Heilungs Diener`7 (3/".$session[user][hmagieuses].")`0","$script?op=fight&skill=HM&l=3",true);
        if (
$session[user][hmagieuses]>4)
            
addnav("g?`k&#149; Heilung`7 (5/".$session[user][hmagieuses].")`0","$script?op=fight&skill=HM&l=5",true);

if (
$session[user][vmagieuses]>0) {
            
addnav("`xVerderbenszauber`0","");
            
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
            
addnav("R?`x&#149; Regeneration`7 (1/".$session[user][vmagieuses].")`0","$script?op=fight&skill=VM&l=1",true);
        }
        if (
$session[user][vmagieuses]>1)
            
addnav("D?`x&#149; Dämon`7 (2/".$session[user][vmagieuses].")`0","$script?op=fight&skill=VM&l=2",true);
        if (
$session[user][vmagieuses]>2)
            
addnav("V?`x&#149; Verseuchtes Schwert`7 (3/".$session[user][vmagieuses].")`0","$script?op=fight&skill=VM&l=3",true);
        if (
$session[user][vmagieuses]>4)
            
addnav("Z?`x&#149; Zombies`7 (5/".$session[user][vmagieuses].")`0","$script?op=fight&skill=VM&l=5",true);

if (
$session[user][cmagieuses]>0) {
            
addnav("`qChaoskünste`0","");
            
//disagree with making this 'n', players shouldn't have their behavior dictated by convenience of god mode, hehe
            
addnav("C?`q&#149; Chaos`7 (1/".$session[user][cmagieuses].")`0","$script?op=fight&skill=CM&l=1",true);
        }
        if (
$session[user][cmagieuses]>1)
            
addnav("W?`q&#149; Wirbelsturm`7 (2/".$session[user][cmagieuses].")`0","$script?op=fight&skill=CM&l=2",true);
        if (
$session[user][cmagieuses]>2)
            
addnav("S?`q&#149; Sandsturm`7 (3/".$session[user][cmagieuses].")`0","$script?op=fight&skill=CM&l=3",true);
        if (
$session[user][cmagieuses]>4)
            
addnav("V?`q&#149; Verwirrung`7 (5/".$session[user][cmagieuses].")`0","$script?op=fight&skill=CM&l=5",true);
        if (
$session[user][superuser]>=3) {
            
addnav("`&Superuser`0","");
            
addnav("!?`&&#149; __GOD MODE","$script?op=fight&skill=godmode",true);
        }
// spells by anpera
        
$sql="SELECT * FROM items WHERE class='Zauber' AND owner=".$session[user][acctid]." AND value1>0 ORDER BY name ASC";
        
$result=db_query($sql) or die(db_error(LINK));
        if (
db_num_rows($result)>0addnav("Zauber");
        for (
$i=0;$i<db_num_rows($result);$i++){
              
$row db_fetch_assoc($result);
            
$spellbuff=unserialize($row[buff]);
            
addnav("`v$spellbuff[name] `0(".$row[value1]."x)","$script?op=fight&skill=zauber&itemid=$row[id]");
        }
// end spells
    
}
}

function 
appoencode($data,$priv=false)
{
    global 
$nestedtags,$session,$appoencode;
    
/* Überarbeitet und verkleinert von Eliwood =D */
    
$output "";
    while( !((
$x=strpos($data,"`")) === false) )
    {
          
$tag=substr($data,$x+1,1);
          
$append=substr($data,0,$x);
          
$output.=($priv?$append:HTMLEntities($append));
          
$data=substr($data,$x+2);
          if(
$tag == "0")
      {
        if (
$nestedtags['color']) $output.="</span>";
             unset(
$nestedtags['color']);
      }
      elseif(
$tag == "`")
      {
        
$output.="`";
      }
      elseif(
$tag == "z")
      {
               
// Zufällige Farbe - by Devilzimti
               
$appoencode_s $appoencode;
               
shuffle($appoencode_s);
        
$rand e_rand(0,count($appoencode_s));
        if (
$nestedtags['color']) $output.="</span>"; else $nestedtags['color']=true;
        
$output.="<span style='color: #".$appoencode_s[$rand]['color'].";'>";
      }
      else
          {
            if(isset(
$appoencode[$tag]))
        {
              
$tagrow $appoencode[$tag];
              if(empty(
$tagrow['color']))
          {
            if(
$nestedtags[$tagrow['tag']] && strchr($tagrow['tag']," /")==false)
            {
              
$output.="</".$tagrow['tag'].">";
              unset(
$nestedtags[$tagrow['tag']]);
            }
            elseif(
strchr($tagrow['tag']," /")==true$output.="<".$tagrow['tag'].">\n";
            else
            {
              
$output.="<".$tagrow['tag']." ".$tagrow['style'].">";
              
$nestedtags[$tagrow['tag']] = true;
            }
          }
          else
          {
            if (
$nestedtags['color']) $output.="</span>"; else $nestedtags['color']=true;
            
$output.="<span style='color: #".$tagrow['color'].";'>";
          }
        }
        else 
$output.=$tag;
          }
    }
    if (
$priv)
          
$output.=$data;
      else
          
$output.=HTMLEntities($data);
    return 
$output;
}


function 
Load_Tags()
{
  global 
$db,$link;
  
/* (c) 2005 by Eliwood & Serra */
  
$result DB_Query("SELECT SQL_CACHE * FROM appoencode",LINK);
  
$tags = array();
  while(
$row DB_Fetch_Assoc($result))
  {
    
$tags[$row['code']] = $row;
  }
  return 
$tags;
}

function 
Get_Allowed_Tags()
{
  global 
$appoencode;
  
/* (c) 2005 by Eliwood & Serra */
  
while(list($key,$val) = each($appoencode))
  {
    if(
$val['allowed'] == true$list.=$val['code'];
  }
  return 
preg_quote($list);
}

// Angegebene Tags am Ende des Strings schließen
// (macht keinen Sinn bei Farben, da die nicht geschlossen werden)
function closetags($string$tags) {
    
$tags explode('`',$tags);
    foreach (
$tags as $siht) {
        
$siht trim($siht);
        if (
$siht=='') continue;
        if (
substr_count($string,'`'.$siht)%2$string .= '`'.$siht;
    }
    return 
$string;
}

function 
templatereplace($itemname,$vals=false){
    global 
$template;
    @
reset($vals);
    if (!isset(
$template[$itemname])) output("`bWarnung:`b Das `i$itemname`i Template wurde nicht gefunden!`n");
    
$out $template[$itemname];
    
//output($template[$itemname]."`n");
    
while (list($key,$val)=@each($vals)){
        if (
strpos($out,"{".$key."}")===falseoutput("`bWarnung:`b Das `i$key`i Teil wurde im `i$itemname`i Template nicht gefunden! (".$out.")`n");
        
$out str_replace("{"."$key"."}",$val,$out);
    }
    return 
$out;
}
function 
addcharstat($title,$value=false){
    
// 2005 by Eliwood
    
if ($value===false)
    {
        
$charstat.=appoencode(templatereplace("stathead",array("title"=>$title)),true);
    }
    else
    {
        
$charstat.=appoencode(
        
templatereplace("statrow",array("title"=>"$title","value"=>"$value"))
        ,
true);
    }
    return 
$charstat;
}
function 
charstats(){
    global 
$session,$playermount;

    
$kampfkunst=array(
  
1=> ("Schwertkampf"),
  
2=> ("Axtkampf"),
  
3=> ("Lanzenkampf"),
  
4=> ("Bogenschütze"),
  
5=> ("Anima-Magie"),
  
6=> ("Schwarze Magie"),
  
7=> ("Lichtmagie"),
  
8=> ("Stabmagie"),
  
0=> ("Unbekannt"));

$jobid=array(
1=>"Schmied",
2=>"Pfleger",
3=>"Hebamme",
4=>"Schankknecht",
5=>"Schankmaid",
6=>"Radmacher",
7=>"Florist",
8=>"Floristin",
9=>"Krämer",
10=>"Kerzenzieher",
11=>"Gaukler",
12=>"Barde",
13=>"Redner",
14=>"Wirt",
15=>"Bote",
16=>"Kunstschmied",
17=>"Heiler",
18=>"Gärtner",
19=>"Lehrer",
20=>"Zahnreisser",
21=>"Tänzer",
22=>"Geschichtenerzähler",
23=>"Schreiber",
24=>"Buchbinder",
25=>"Rechtsgelehrter",
26=>"Philosoph",
27=>"Schauspieler",
28=>"Richter",
29=>"Kartograph",
30=>"Ausbilder",
0=>"`)Arbeitslos");

$kla=array(0=>"Keine Klamotten",1=>"Weises Kleid",2=>"Drachenleder Kleid",3=>"Schwarzes Jacket",4=>"Drachenleder Jacket");

        
$arm=array(0=>"Kein Armband",1=>"Goldenes Armband",2=>"Drachen Armband");

        
$shoes=array(0=>"Keine Schuhe",1=>"Wanderschuhe",2=>"Sportschue",3=>"Lederstiefel",4=>"Drachen Stiefel");

        
$hair=array(0=>"Glatze",1=>"Glatze",2=>"Glatze",3=>"Glatze",4=>"Glatze",5=>"Glatze",6=>"Glatze",7=>"Glatze",8=>"Glatze",9=>"Glatze",10=>"Kurze Haare",11=>"Kurze Haare",12=>"Kurze Haare",13=>"Kurze Haare",14=>"Kurze Haare",15=>"Kurze Haare",16=>"Kurze Haare",17=>"Kurze Haare",18=>"Kurze Haare",19=>"Kurze Haare",20=>"Normale Länge",21=>"Normale Länge",22=>"Normale Länge",23=>"Normale Länge",24=>"Normale Länge",25=>"Normale Länge",26=>"Normale Länge",27=>"Normale Länge",28=>"Normale Länge",29=>"Normale Länge",30=>"Normale Länge",31=>"Normale Länge",32=>"Normale Länge",33=>"Normale Länge",34=>"Normale Länge",35=>"Normale Länge",36=>"Normale Länge",37=>"Normale Länge",38=>"Normale Länge",39=>"Normale Länge",40=>"Lange Haare",41=>"Lange Haare",42=>"Lange Haare",43=>"Lange Haare",44=>"Lange Haare",45=>"Lange Haare",46=>"Lange Haare",47=>"Lange Haare",48=>"Lange Haare",49=>"Lange Haare",50=>"Lange Haare",51=>"Lange Haare",52=>"Lange Haare",53=>"Lange Haare",54=>"Lange Haare",55=>"Lange Haare",56=>"Lange Haare",57=>"Lange Haare",58=>"Lange Haare",59=>"Lange Haare",60=>"Lang und Ungepflegt",61=>"Lang und Ungepflegt",62=>"Lang und Ungepflegt",63=>"Lang und Ungeflegt",64=>"Lang und Ungeflegt",65=>"Lang und Ungeflegt",66=>"Lang und Ungepflegt",67=>"Lang und Ungepflegt",68=>"Lang und Ungepflegt",69=>"Lang und Ungepflegt",70=>"Lang und Ungepflegt",71=>"Lang und Ungepflegt",72=>"Lang und Ungepflegt",73=>"Lang und Ungepflegt",74=>"Lang und Ungepflegt",75=>"Lang und Ungepflegt",76=>"Lang und Ungepflegt",77=>"Lang und Ungepflegt",78=>"Lang und Ungepflegt",79=>"Lang und Ungepflegt",80=>"Lang und Ungepflegt",81=>"Lang und Ungepflegt",82=>"Lang und Ungepflegt",83=>"Lang und Ungeflegt",84=>"Lang und Ungeflegt",85=>"Lang und Ungeflegt",86=>"Lang und Ungepflegt",87=>"Lang und Ungepflegt",88=>"Lang und Ungepflegt",89=>"Lang und Ungepflegt",90=>"Lang und Ungepflegt",91=>"Lang und Ungepflegt",92=>"Lang und Ungepflegt",93=>"Lang und Ungepflegt",94=>"Lang und Ungepflegt",95=>"Lang und Ungepflegt",96=>"Lang und Ungepflegt",97=>"Lang und Ungepflegt",98=>"Lang und Ungepflegt",99=>"Lang und Ungepflegt",100=>"Lang und Ungepflegt");

        
$nagel=array(0=>"Kurz",1=>"Kurz",2=>"Kurz",3=>"Kurz",4=>"Kurz",5=>"Kurz",6=>"Kurz",7=>"Kurz",8=>"Kurz",9=>"Kurz",10=>"Normal",11=>"Normal",12=>"Normal",13=>"Normal",14=>"Normal",15=>"Normal",16=>"Normal",17=>"Normal",18=>"Normal",19=>"Normal",20=>"gepflegt",21=>"gepflegt",22=>"gepflegt",23=>"gepflegt",24=>"gepflegt",25=>"gepflegt",26=>"gepflegt",27=>"gepflegt",28=>"gepflegt",29=>"gepflegt",30=>"gepflegt",31=>"gepflegt",32=>"gepflegt",33=>"gepflegt",34=>"gepflegt",35=>"gepflegt",36=>"gepflegt",37=>"gepflegt",38=>"gepflegt",39=>"gepflegt",40=>"Ungepflegt",41=>"Ungepflegt",42=>"Ungepflegt",43=>"Ungepflegt",44=>"Ungepflegt",45=>"Ungepflegt",46=>"Ungepflegt",47=>"Ungepflegt",48=>"Ungepflegt",49=>"Ungepflegt",50=>"Ungepflegt",51=>"Ungepflegt",52=>"Ungepflegt",53=>"Ungepflegt",54=>"Ungepflegt",55=>"Ungepflegt",56=>"Ungepflegt",57=>"Ungepflegt",58=>"Ungepflegt",59=>"Ungepflegt",60=>"Ungepflegt");

        
$nagelco=array(0=>"Kein",1=>"Schwarz",2=>"Gelb",3=>"Lila",4=>"Rot",5=>"Blau",6=>"Pink"7=>"Klarlack");
        
$hairco=array(0=>"Braun",1=>"Schwarz",2=>"Blond",3=>"Grün",4=>"Pink",5=>"Rot",6=>"Blau");

    
$gott=array(
    
1=>"Tempus",
    
2=>"Mielliki",
    
3=>"Shar",
    
4=>"Deneir",
    
5=>"Arjuna",
    
6=>"Railo",
    
7=>"Ivo",
    
8=>"Edorus",
    
0=>"`)Keiner");
    
$u =& $session[user];
    
//RPG-Chars Addon (c) 2006 by Meralou & Alexiel
        
if ($session[loggedin] && $session[user][onlyrpchara]==1){
        
$charstat=appoencode(templatereplace("statstart")
        .
templatereplace("stathead",array("title"=>"Vital Info"))        .templatereplace("statrow",array("title"=>"Name","value"=>appoencode($u[name],false)))
.
templatereplace("statrow",array("title"=>"RPG-Punkte","value"=>$u['donation']-$u['donationspent'])),true);
if(
$session['user']['ssstatus'] == && $session['user']['ssmonat'] <= 128)
        {
            switch(
$session['user']['ssmonat'])
            {
                case 
128:
                
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Noch nichts zu sehen")), true);
                break;
                case 
127:
                case 
126:
                case 
125:
                case 
124:
                case 
123:
                case 
122:
                case 
121:
                case 
120:
                case 
119:
                case 
118:
                case 
117:
                 
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Kleiner Bauch")), true);
                break;
                case 
116:
                case 
115:
                case 
114:
                case 
113:
                case 
112:
                case 
111:
                case 
110:
                case 
109:
                case 
108:
                case 
107:
                case 
106:
                case 
105:
                case 
104:
                case 
103:
                case 
102:
                case 
101:
                case 
100:
                
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Mittlerer Bauch")), true);
                break;
                case 
99:
                case 
98:
                case 
97:
                case 
96:
                case 
95:
                case 
94:
                case 
93:
                case 
92:
                case 
91:
                case 
90:
                case 
89:
                case 
88:
                case 
87:
                case 
86:
                case 
85:
                case 
84:
                case 
83:
                case 
82:
                case 
81:
                case 
80:
                case 
79:
                case 
78:
                case 
77:
                case 
76:
                case 
75:
                
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Dicker Bauch")), true);
                break;
                case 
74:
                case 
73:
                case 
72:
                case 
71:
                case 
70:
                case 
69:
                case 
68:
                case 
67:
                case 
66:
                case 
65:
                case 
64:
                case 
63:
                case 
62:
                case 
61:
                case 
60:
                case 
59:
                case 
58:
                case 
57:
                case 
56:
                case 
55:
                case 
54:
                case 
53:
                case 
52:
                case 
51:
                case 
50:
                case 
49:
                case 
48:
                case 
47:
                case 
46:
                case 
45:
                case 
44:
                case 
43:
                case 
42:
                case 
41:
                case 
40:
                case 
39:
                case 
38:
                case 
37:
                case 
36:
                case 
35:
                
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Sehr dicker Bauch")), true);
                break;
                case 
34:
                case 
33:
                case 
32:
                case 
31:
                case 
30:
                case 
29:
                case 
28:
                case 
27:
                case 
26:
                case 
25:
                case 
24:
                case 
23:
                case 
22:
                case 
21:
                   case 
20:
                case 
19:
                case 
18:
                case 
17:
                case 
16:
                case 
15:
                
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Hochschwanger")), true);
                break;
                case 
14:
                case 
13:
                case 
12:
                case 
11:
                case 
10:
                case 
9:
                case 
8:
                case 
7:
                case 
6:
                case 
5:
                case 
4:
                case 
3:
                case 
2:
                case 
1:

            }
        }
if (
$session['user']['alive']){

            
$charstat.=appoencode(
            
templatereplace("statrow",array("title"=>"Lebenspunkte","value"=>"$u[hitpoints]`0/$u[maxhitpoints]".grafbar($u[maxhitpoints],$u[hitpoints])))
            .
templatereplace("statrow",array("title"=>"Runden","value"=>$u['turns']))
.
templatereplace("statrow",array("title"=>"Verletzungsgrad","value"=>($u['ill']>0?$u['ill']:$u['ill']).grafbars(100,($u['ill']>0?$u['ill']:$u['ill']))))
            ,
true);
        }else{
            
$charstat.=appoencode(
templatereplace("statrow",array("title"=>"Seelenpunkte","value"=>"$u[soulpoints]".grafbar((5*$u[level]+50),$u[soulpoints])))
.
templatereplace("statrow",array("title"=>"Foltern","value"=>$u['gravefights']))
.
templatereplace("statrow",array("title"=>"Gefallen","value"=>$u['deathpower']))
,
true);
}
$charstat.=appoencode(
templatereplace("statrow",array("title"=>"Edelsteine","value"=>$u['gems']))
.
templatereplace("statrow",array("title"=>"Gulden","value"=>$u['gulden']))
.
templatereplace("statrow",array("title"=>"Gold","value"=>$u['gold']))
.
templatereplace("statrow",array("title"=>"Gold in der Bank","value"=>$u['goldinbank']))
.
templatereplace("statrow",array("title"=>"Gottheit","value"=>"`b".$gott[(string)$u['gott']]."`b"))
.
templatereplace("statrow",array("title"=>"Arbeit","value"=>"`b".$jobid[(string)$u['jobid']]."`b"))
.
templatereplace("statrow",array("title"=>"Blutpunkte","value"=>$u['blut']))
.
templatereplace("stathead",array("title"=>"Ausrüstung"))
.
templatereplace("statrow",array("title"=>"Waffe","value"=>$u['weapon']))
        .
templatereplace("statrow",array("title"=>"Rüstung","value"=>$u['armor']))
        .
templatereplace("statrow",array("title"=>"Klamotten","value"=>$kla[$u['klamotten']]))
.
templatereplace("statrow",array("title"=>"Armband","value"=>$arm[$u['armband']]))
.
templatereplace("statrow",array("title"=>"Schuhe","value"=>$shoes[$u['schuhe']]))
.
templatereplace("stathead",array("title"=>"Aussehen"))
        .
templatereplace("statrow",array("title"=>"Haare","value"=>$hair[$u['frisur']]))
        .
templatereplace("statrow",array("title"=>"Haar Farbe","value"=>$hairco[$u['hairco']]))
        .
templatereplace("statrow",array("title"=>"Nägel","value"=>$nagel[$u['nagel']]))
        .
templatereplace("statrow",array("title"=>"Nagelfarbe","value"=>$nagelco[$u['nagelco']]))
        .
templatereplace("statrow",array("title"=>"Charme","value"=>$u['charm']))
        .
templatereplace("statrow",array("title"=>"Gestank","value"=>$u['clean']))
        ,
true);

        if(
$session['user']['memberid']>&& $session['user']['gildenactive']==1)
{
  
$gu =& $session['guild'];
  
$charstat.=addcharstat("Gildeninformationen");
  
$charstat.=addcharstat("Gilde","`^".$gu['gildenname']." `^(".$gu['gildenprefix']."`^)");
  
/* Rang holen */
  
$rank db_fetch_assoc(db_query("SELECT rankname FROM gildenranks WHERE rankid='".$session['user']['rankid']."'"));
  
/* Keinen zugewiesenen Rang? Oder Rangid ungültig? Macht nichts, einfach Ranglos anzeigen. */
  
if($rank['rankname'] == ""$rank['rankname'] = "Ranglos";
  
$charstat.=addcharstat("Rang",$rank['rankname']);
  
$charstat.=addcharstat("Gold",$gu['gold']);
  
$charstat.=addcharstat("Edelsteine",$gu['gems']);
  
$charstat.=addcharstat("Punkte",$gu['gildenpunkte']);
}
        if (
$u['petid']>0) {
        
$sql "SELECT * FROM items WHERE id='".$u[petid]."'";
$result db_query($sql);
$row db_fetch_assoc($result);
            
$pettime strtotime($u['petfeed'])-time();
            
$charstat .= appoencode(
templatereplace("stathead",array("title"=>"Weitere Infos"))                .templatereplace('statrow',array('title'=>'Haustier','value'=>"".$row[name]."".grafbar(24*3600,$pettime))),true);;
        }
        
// Mounterfahrung by teruk
        
if ($playermount['mountname']!="") {
            
$mount unserialize($playermount['mountfeed']);
            
$charstat.=appoencode(
             
templatereplace("statrow",array("title"=>"".$playermount['mountname']."","value"=>$mount['fortschritt']."/".($playermount['mountstufe']*$playermount['mountlevel'])."".grafbar(($playermount['mountstufe']*$playermount['mountlevel']),$mount['fortschritt'],40)))
             ,
true);
        }

        if (
getsetting("dispnextday",0)){
/*
            $time = gametime();
            $tomorrow = strtotime(date("Y-m-d H:i:s",$time)." + 1 day");
            $tomorrow = strtotime(date("Y-m-d 00:00:00",$tomorrow));
            $secstotomorrow = $tomorrow-$time;
            $realsecstotomorrow = round($secstotomorrow / (int)getsetting("daysperday",4));
            $charstat.=appoencode(templatereplace("statrow",array("title"=>"Nächster Tag","value"=>date("G\\h, i\\m, s\\s \\",strtotime("1980-01-01 00:00:00 + $realsecstotomorrow seconds")))),true);
*/
    
$tomorrow timetotomorrow();
    
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Nächster Tag","value"=>"{$tomorrow['hours']}h, {$tomorrow['minutes']}m, {$tomorrow['seconds']}s")),true);

        }
        
$charstat.=appoencode(templatereplace("statend"),true);
        return 
$charstat;
    }elseif (
$session[loggedin] && $session[user][onlyrpchara]!=1){
    
//End RPG-Chars Addon (c) 2006 by Meralou & Alexiel
        
$u['hitpoints']=round($u['hitpoints'],0);

        
$u['experience']=round($u['experience'],0);
        
$u['maxhitpoints']=round($u['maxhitpoints'],0);
        
$spirits=array("-6"=>"Wiedererweckt","-2"=>"Sehr schlecht","-1"=>"Schlecht","0"=>"Normal","1"=>"Gut","2"=>"Sehr gut");
        if (
$u[alive]){ }else{ $spirits[$u[spirits]] = "TOT"; }
        
reset($session[bufflist]);
        
$atk=$u[attack];
        
$def=$u[defence];
        while (list(
$key,$val)=each($session[bufflist])){
            
$buffs.=appoencode("`#$val[name] `7($val[rounds] Runden übrig)`n",true);
            if (isset(
$val[atkmod])) $atk *= $val[atkmod];
            if (isset(
$val[defmod])) $def *= $val[defmod];
        }
        
$atk round($atk2);
        
$def round($def2);
        
$atk = ($atk == $u[attack] ? "`^" : ($atk $u[attack] ? "`@" "`$")) . "`b$atk`b`0";
        
$def = ($def == $u[defence] ? "`^" : ($def $u[defence] ? "`@" "`$")) . "`b$def`b`0";



        if (
count($session[bufflist])==0){
            
$buffs.=appoencode("`^Keine`0",true);
        }
        
$charstat=appoencode(templatereplace("statstart")
        .
templatereplace("stathead",array("title"=>"Vital Info"))
        .
templatereplace("statrow",array("title"=>"Name","value"=>appoencode($u[name],false)))
        .
templatereplace("statrow",array("title"=>"Donationpoints","value"=>$u['donation']-$u['donationspent']))
        ,
true);
            if(
$session['user']['ssstatus'] == && $session['user']['ssmonat'] <= 128)
        {
            switch(
$session['user']['ssmonat'])
            {
                case 
128:
                
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Noch nichts zu sehen")), true);
                break;
                case 
127:
                case 
126:
                case 
125:
                case 
124:
                case 
123:
                case 
122:
                case 
121:
                case 
120:
                case 
119:
                case 
118:
                case 
117:
                 
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Kleiner Bauch")), true);
                break;
                case 
116:
                case 
115:
                case 
114:
                case 
113:
                case 
112:
                case 
111:
                case 
110:
                case 
109:
                case 
108:
                case 
107:
                case 
106:
                case 
105:
                case 
104:
                case 
103:
                case 
102:
                case 
101:
                case 
100:
                
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Mittlerer Bauch")), true);
                break;
                case 
99:
                case 
98:
                case 
97:
                case 
96:
                case 
95:
                case 
94:
                case 
93:
                case 
92:
                case 
91:
                case 
90:
                case 
89:
                case 
88:
                case 
87:
                case 
86:
                case 
85:
                case 
84:
                case 
83:
                case 
82:
                case 
81:
                case 
80:
                case 
79:
                case 
78:
                case 
77:
                case 
76:
                case 
75:
                
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Dicker Bauch")), true);
                break;
                case 
74:
                case 
73:
                case 
72:
                case 
71:
                case 
70:
                case 
69:
                case 
68:
                case 
67:
                case 
66:
                case 
65:
                case 
64:
                case 
63:
                case 
62:
                case 
61:
                case 
60:
                case 
59:
                case 
58:
                case 
57:
                case 
56:
                case 
55:
                case 
54:
                case 
53:
                case 
52:
                case 
51:
                case 
50:
                case 
49:
                case 
48:
                case 
47:
                case 
46:
                case 
45:
                case 
44:
                case 
43:
                case 
42:
                case 
41:
                case 
40:
                case 
39:
                case 
38:
                case 
37:
                case 
36:
                case 
35:
                
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Sehr dicker Bauch")), true);
                break;
                case 
34:
                case 
33:
                case 
32:
                case 
31:
                case 
30:
                case 
29:
                case 
28:
                case 
27:
                case 
26:
                case 
25:
                case 
24:
                case 
23:
                case 
22:
                case 
21:
                   case 
20:
                case 
19:
                case 
18:
                case 
17:
                case 
16:
                case 
15:
                
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Schwangerschaft","value"=>"Hochschwanger")), true);
                break;
                case 
14:
                case 
13:
                case 
12:
                case 
11:
                case 
10:
                case 
9:
                case 
8:
                case 
7:
                case 
6:
                case 
5:
                case 
4:
                case 
3:
                case 
2:
                case 
1:

            }
        }
        if (
$session['user']['alive']){

            
$charstat.=appoencode(
            
templatereplace("statrow",array("title"=>"Lebenspunkte","value"=>"$u[hitpoints]`0/$u[maxhitpoints]".grafbar($u[maxhitpoints],$u[hitpoints])))
            .
templatereplace("statrow",array("title"=>"Runden","value"=>$u['turns']))
            ,
true);
        }else{
            
$charstat.=appoencode(
templatereplace("statrow",array("title"=>"Seelenpunkte","value"=>"$u[soulpoints]".grafbar((5*$u[level]+50),$u[soulpoints])))
.
templatereplace("statrow",array("title"=>"Foltern","value"=>$u['gravefights']))
.
templatereplace("statrow",array("title"=>"Gefallen","value"=>$u['deathpower']))
,
true);
}
$charstat.=appoencode(
        
templatereplace("statrow",array("title"=>"Stimmung","value"=>"`b".$spirits[(string)$u['spirits']]."`b"))
        .
templatereplace("statrow",array("title"=>"Level","value"=>"`b".$u['level']."`b"))
        .(
$session['user']['alive']?
             
templatereplace("statrow",array("title"=>"Angriff","value"=>$atk))
            .
templatereplace("statrow",array("title"=>"Verteidigung","value"=>$def))
            :
             
templatereplace("statrow",array("title"=>"Psyche","value"=>10 round(($u['level']-1)*1.5)))
            .
templatereplace("statrow",array("title"=>"Geist","value"=>10 round(($u['level']-1)*1.5)))

            )

        .
templatereplace("statrow",array("title"=>"Edelsteine","value"=>$u['gems']))
        .
templatereplace("statrow",array("title"=>"Gulden","value"=>$u['gulden']))
        .
templatereplace("statrow",array("title"=>"Gold","value"=>$u['gold']))
        .
templatereplace("statrow",array("title"=>"Gold in der Bank","value"=>$u['goldinbank']))
.
templatereplace("statrow",array("title"=>"Erfahrung","value"=>expbar()))
        .
templatereplace("statrow",array("title"=>"Verletzungsgrad","value"=>($u['ill']>0?$u['ill']:$u['ill']).grafbars(100,($u['ill']>0?$u['ill']:$u['ill']))))
        .
templatereplace("statrow",array("title"=>"Orden","value"=>$u[orden]))
        .
templatereplace("statrow",array("title"=>"Blutpunkte","value"=>$u['blut']))
        .
templatereplace("statrow",array("title"=>"Gottheit","value"=>"`b".$gott[(string)$u['gott']]."`b"))
        .
templatereplace("statrow",array("title"=>"Kampfart","value"=>"`b".$kampfkunst[(string)$u['kunst']]."`b"))
        .
templatereplace("statrow",array("title"=>"Arbeit","value"=>"`b".$jobid[(string)$u['jobid']]."`b"))
        .
templatereplace("stathead",array("title"=>"Ausrüstung"))
        .
templatereplace("statrow",array("title"=>"Klamotten","value"=>$kla[$u['klamotten']]))
        .
templatereplace("statrow",array("title"=>"Armband","value"=>$arm[$u['armband']]))
        .
templatereplace("statrow",array("title"=>"Schuhe","value"=>$shoes[$u['schuhe']]))
        .
templatereplace("statrow",array("title"=>"Waffe","value"=>$u['weapon']))
        .
templatereplace("statrow",array("title"=>"Rüstung","value"=>$u['armor']))
        .
templatereplace("stathead",array("title"=>"Aussehen"))
        .
templatereplace("statrow",array("title"=>"Haare","value"=>$hair[$u['frisur']]))
        .
templatereplace("statrow",array("title"=>"Haar Farbe","value"=>$hairco[$u['hairco']]))
        .
templatereplace("statrow",array("title"=>"Nägel","value"=>$nagel[$u['nagel']]))
        .
templatereplace("statrow",array("title"=>"Nagelfarbe","value"=>$nagelco[$u['nagelco']]))
        .
templatereplace("statrow",array("title"=>"Charme","value"=>$u['charm']))
        .
templatereplace("statrow",array("title"=>"Gestank","value"=>$u['clean']))

        ,
true);
        if(
$session['user']['memberid']>&& $session['user']['gildenactive']==1)
{
  
$gu =& $session['guild'];
  
$charstat.=addcharstat("Gildeninformationen");
  
$charstat.=addcharstat("Gilde","`^".$gu['gildenname']." `^(".$gu['gildenprefix']."`^)");
  
/* Rang holen */
  
$rank db_fetch_assoc(db_query("SELECT rankname FROM gildenranks WHERE rankid='".$session['user']['rankid']."'"));
  
/* Keinen zugewiesenen Rang? Oder Rangid ungültig? Macht nichts, einfach Ranglos anzeigen. */
  
if($rank['rankname'] == ""$rank['rankname'] = "Ranglos";
  
$charstat.=addcharstat("Rang",$rank['rankname']);
  
$charstat.=addcharstat("Gold",$gu['gold']);
  
$charstat.=addcharstat("Edelsteine",$gu['gems']);
  
$charstat.=addcharstat("Punkte",$gu['gildenpunkte']);
}
        if (
$u['petid']>0) {
        
$sql "SELECT * FROM items WHERE id='".$u[petid]."'";
$result db_query($sql);
$row db_fetch_assoc($result);
            
$pettime strtotime($u['petfeed'])-time();
            
$charstat .= appoencode(
templatereplace("stathead",array("title"=>"Weitere Infos"))                .templatereplace('statrow',array('title'=>'Haustier','value'=>"".$row[name]."".grafbar(24*3600,$pettime))),true);;
        }
        
// Mounterfahrung by teruk
        
if ($playermount['mountname']!="") {
            
$mount unserialize($playermount['mountfeed']);
            
$charstat.=appoencode(
             
templatereplace("statrow",array("title"=>"".$playermount['mountname']."","value"=>$mount['fortschritt']."/".($playermount['mountstufe']*$playermount['mountlevel'])."".grafbar(($playermount['mountstufe']*$playermount['mountlevel']),$mount['fortschritt'],40)))
             ,
true);
        }

        if (
getsetting("dispnextday",0)){
/*
            $time = gametime();
            $tomorrow = strtotime(date("Y-m-d H:i:s",$time)." + 1 day");
            $tomorrow = strtotime(date("Y-m-d 00:00:00",$tomorrow));
            $secstotomorrow = $tomorrow-$time;
            $realsecstotomorrow = round($secstotomorrow / (int)getsetting("daysperday",4));
            $charstat.=appoencode(templatereplace("statrow",array("title"=>"Nächster Tag","value"=>date("G\\h, i\\m, s\\s \\",strtotime("1980-01-01 00:00:00 + $realsecstotomorrow seconds")))),true);
*/
    
$tomorrow timetotomorrow();
    
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Nächster Tag","value"=>"{$tomorrow['hours']}h, {$tomorrow['minutes']}m, {$tomorrow['seconds']}s")),true);

        }
        if (!
is_array($session[bufflist])) $session[bufflist]=array();
        
$charstat.=appoencode(templatereplace("statbuff",array("title"=>"Aktionen","value"=>$buffs)),true);
        
$charstat.=appoencode(templatereplace("statend"),true);
        return 
$charstat;
}else{
/* Spieler; Moderatoren; Admin; Onlineanzeige by Eliwood */
$onlinecount 0$users 0$npc 0$trialmods 0$mods 0$admins 0$schöpfer 0;
    
$sql="SELECT name,superuser FROM accounts WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("c")."-".getsetting("LOGINTIMEOUT",3600)." seconds"))."' ORDER BY level DESC";
        
$result db_query($sql) or die(db_error($sql));
    while (
$row db_fetch_assoc($result)){
        switch(
$row['superuser']):
          case 
0:
          case 
1:
            
$text.="`^$row[name]`n";
            
$users++;
            break;
            case 
2:
            
$text2.="`^$row[name]`n";
            
$npc++;
            break;

         
// case 3:
          //case 4:
          //case 5:
          /*case 3:
            $text3.="`^$row[name]`n";
            $tmod++;
            break; */
          
case 4:
            
$text4.="`^$row[name]`n";
            
$mods++;
            break;
            case 
5:
            
$text5.="`^$row[name]`n";
            
$admins++;
            break;
            case 
6:
            
$text6.="`^$row[name]`n";
            
$schöpfer++;
            break;
          endswitch;
        
$onlinecount++;

    }
    
$ret.=appoencode("`@$users Spieler Online:`n");
    
$ret.=appoencode($text."`0");
    if (
$users==0$ret.=appoencode("`iKeine Spieler Online`i`n");

    
$ret.=appoencode("`n`@$npc NPC´s Online:`n");
    
$ret.=appoencode($text2."`0");
    if (
$npc==0$ret.=appoencode("`iKeine NPC´s Online`i`n");

    
/*$ret.=appoencode("`n`@$tmod Trialmoderatoren Online:`n");
    $ret.=appoencode($text3."`0");
    if ($tmod==0) $ret.=appoencode("`iKeine Trialmoderatoren Online`i`n");*/


    
$ret.=appoencode("`n`@$mods Moderatoren Online:`n");
    
$ret.=appoencode($text4."`0");
    if (
$mods==0$ret.=appoencode("`iKeine Moderatoren Online`i`n");

    
$ret.=appoencode("`n`\$$admins Admins Online:`n");
    
$ret.=appoencode($text5."`0");
    if (
$admins==0$ret.=appoencode("`iKeine Admins Online`i`n");

    
$ret.=appoencode("`n`\$$schöpfer Schöpfer Online:`n");
    
$ret.=appoencode($text6."`0");
    if (
$schöpfer==0$ret.=appoencode("`iKeine Schöpfer Online`i`n");

    
db_free_result($result);
        
$ret.=(getsetting("maxonline",10)>0?grafbar(getsetting("maxonline",10),(getsetting("maxonline",10)-$onlinecount),180):"");
        return 
$ret;
    }
}

$accesskeys=array();
$quickkeys=array();
function 
addnav($text,$link=false,$priv=false,$pop=false,$newwin=false){
    global 
$nav,$session,$accesskeys,$REQUEST_URI,$quickkeys;
    
$text translate($text);
    
/*
    if (date("m-d")=="04-01"){
        $text = borkalize($text);
    }
    */
    
if ($link===false){
        
$nav.=templatereplace("navhead",array("title"=>appoencode($text,$priv)));
    }elseif (
$link === "") {
        
$nav.=templatereplace("navhelp",array("text"=>appoencode($text,$priv)));
    }else{
        if (
$text!=""){
            
$extra="";
            if (
$newwin===false) {
                if (
strpos($link,"?")){
                    
$extra="&c=$session[counter]";
                }else{
                    
$extra="?c=$session[counter]";
                }
            }

            if (
$newwin===false$extra.="-".date("His");
            
//$link = str_replace(" ","%20",$link);
            //hotkey for the link.
            
$key="";
            if (
substr($text,1,1)=="?") {
                
// check to see if a key was specified up front.
                
if ($accesskeys[strtolower(substr($text01))]==1){
                    
// output ("key ".substr($text,0,1)." already taken`n");
                    
$text substr($text,2);
                }else{
                    
$key substr($text,0,1);
                    
$text substr($text,2);
                    
//output("key set to $key`n");
                    
$found=false;
                    for (
$i=0;$i<strlen($text); $i++){
                        
$char substr($text,$i,1);
                        if (
$ignoreuntil == $char){
                            
$ignoreuntil="";
                        }else{
                            if (
$ignoreuntil<>""){
                                if (
$char=="<"$ignoreuntil=">";
                                if (
$char=="&"$ignoreuntil=";";
                                if (
$char=="`"$ignoreuntil=substr($text,$i+1,1);
                            }else{
                                if (
$char==$key) {
                                    
$found=true;
                                    break;
                                }
                            }
                        }
                    }
                    if (
$found==false) {
                        if (
strpos($text"__") !== false)
                            
$text=str_replace("__""(".$key.") "$text);
                        else
                            
$text="(".strtoupper($key).") ".$text;
                        
$i=strpos($text$key);
                        
// output("Not found`n");
                    
}
                }
                
//
            
}
            if (
$key==""){
                for (
$i=0;$i<strlen($text); $i++){
                    
$char substr($text,$i,1);
                    if (
$ignoreuntil == $char) {
                        
$ignoreuntil="";
                    }else{
                        if ((
$accesskeys[strtolower($char)]==1) || (strpos("abcdefghijklmnopqrstuvwxyz0123456789"strtolower($char)) === false) || $ignoreuntil<>"") {
                            if (
$char=="<"$ignoreuntil=">";
                            if (
$char=="&"$ignoreuntil=";";
                            if (
$char=="`"$ignoreuntil=substr($text,$i+1,1);
                        }else{
                            break;
                        }
                    }
                }
            }
            if (
$i<strlen($text)){
                
$key=substr($text,$i,1);
                
$accesskeys[strtolower($key)]=1;
                
$keyrep=" accesskey=\"$key\" ";
            }else{
                
$key="";
                
$keyrep="";
            }
            
//output("Key is $key for $text`n");

            
if ($key==""){
                
//$nav.="<a href=\"".HTMLEntities($link.$extra)."\" class='nav'>".appoencode($text,$priv)."<br></a>";
                //$key==""; // This is useless
            
}else{
                
$text=substr($text,0,strpos($text,$key))."`H".$key."`H".substr($text,strpos($text,$key)+1);
                if (
$pop){
                    
$quickkeys[$key]=popup($link.$extra);
                }else{
                    
$quickkeys[$key]="window.location='$link$extra';";
                }
            }
            
$nav.=templatereplace("navitem",array(
                
"text"=>appoencode($text,$priv),
                
"link"=>HTMLEntities($link.$extra),
                
"accesskey"=>$keyrep,
                
"popup"=>($pop==true "target='_blank' onClick=\"".popup($link.$extra)."; return false;\"" : ($newwin==true?"target='_blank'":""))
                ));
            
//$nav.="<a href=\"".HTMLEntities($link.$extra)."\" $keyrep class='nav'>".appoencode($text,$priv)."<br></a>";
        
}
        
$session[allowednavs][$link.$extra]=true;
        
$session[allowednavs][str_replace(" ""%20"$link).$extra]=true;
        
$session[allowednavs][str_replace(" ""+"$link).$extra]=true;
    }
}

function 
savesetting($settingname,$value){
    global 
$settings;
    
loadsettings();
    if (
$value>""){
        if (!isset(
$settings[$settingname])){
            
$sql "INSERT INTO settings (setting,value) VALUES (\"".addslashes($settingname)."\",\"".addslashes($value)."\")";
        }else{
            
$sql "UPDATE settings SET value=\"".addslashes($value)."\" WHERE setting=\"".addslashes($settingname)."\"";
        }
        
db_query($sql) or die(db_error(LINK));