LoGD Standardrelease steht hier zum Download zur Verfügung!

Home-Adresse dieser Version: anpera.net/logd
Anfragen nach dieser Version bitte an: logd@anpera.de

Zeige Source: /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: /common.php

<?php
require_once "dbwrapper.php";
require_once 
"chat_functions.php";
$pagestarttime getmicrotime();
$nestedtags=array();
$output="";
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 
rawoutput($indata) {
   global 
$output;
   
$output .= $indata "\n";
}

function 
output($indata,$priv=false){
   global 
$nestedtags,$output;
   
$data translate($indata); // Aprilscherz aktiviert ;)   Nacher wieder deaktivieren  }else{  und   }   NICHT VERGESSEN
   
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 
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 
compress_out($input){
   
//(c) Based on old YaBBSE code
   //Open-Source Project by Zef Hemel (zef@zefnet.com)
   //(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($input,1),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);
}

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);
   
$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']){
      
$subject=soap($subject);
      
$body=soap($body);
   }
   
$sql "INSERT INTO mail (msgfrom,msgto,subject,body,sent,hide) VALUES ('".(int)$from."','".(int)$to."','$subject','$body',now(),0)";
   
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";
      
$body preg_replace("'[`]n'""\n"$body);
      
$body preg_replace("'[`].'"""$body);
      
mail($row['emailaddress'],"Neue LoGD Mail","Du hast eine neue Nachricht von An Daingean @ 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']);
   
addnav("Kämpfen");
   if(
$conf['healer'] || $session['user']['acctid']==getsetting("hasegg",0)) addnav("H?`LGolindas Hütte","healer.php");
   else
   
addnav("H?`LHütte des Heilers","healer.php");
   if(
$session[user][superuser]==|| $session[user][superuser]>=2){
      
addnav("B?`lEtwas zum Bekämpfen suchen","forest.php?op=search");
      if(
$session['user']['level']>1)addnav("H?`2Herumziehen","forest.php?op=search&type=slum");
      
addnav("N?`{Nervenkitzel suchen","forest.php?op=search&type=thrill");
   }
   if(
getsetting("bankrobber",0)>&& $session['user']['superuser']<>1)addnav("`}`TSuche nach den Räubern","bankrobber.php");
   if (
$session['user']['level']>=15  && $session['user']['seendragon']==&& $session['user']['superuser']!=1)addnav("G?`@Den Grünen Drachen suchen","forest.php?op=dragon");
   
addnav("Wege");
   
addnav("`RVerborgene Lichtung","waldarena.php");
   
$config=unserialize($session[user]['DQ_config']);
   if(
$config[see]==&& $config[geist]<50 && $config[orden]<11)addnav("`gUnheil des Landes suchen","Drachenquest2.php?ziel=geist");
   if(
$playermount['tavern']>0)addnav("D?`GReite {$playermount['mountname']} zur Dark Horse Taverne","forest.php?op=darkhorse");
   if(
$playermount['tavern']>&& $conf['castle'])addnav("B?`gReite {$playermount['mountname']} zur Burg","forest.php?op=castle");
   
addnav("","forest.php");
   
addnav("`gZum Dorf An Daingean zurück","village.php");
   
addnav("`GWeiter zur Stadt Myranor","myranor.php");
   
addnav("Besondere Orte");
   
addnav("`RVerschlungene Pfade","orte.php");
   if(
$session[user][superuser]!=1){
      
addnav("`}Adlerfelsen","sb.php");
      
addnav("P?`{Plumpsklo","outhouse.php");
   }
   if(@
file_exists("forestlakepath.php"))addnav("`2Trampelpfad","forestlakepath.php");
   if(
$session['user']['turns']<=1)addnav("`lHexenhaus","hexe.php");
   if(
getsetting("vendor",0)==3)addnav("`LDie Karawane","karawane.php");
   if(
$noshowmessage!=true){
      
output("`c`b`lD`2e`{r W`2al`ld`b`n`n");
      
output("`gD`Ge`Rr `@W`{a`2ld, Heimat von bösartigen Kreaturen und üblen Übeltätern all`{e`@r `RA`Gr`gt.`n`nD`Gi`Re `@d`{i`2chten Blätter des Waldes erlauben an den meisten Stellen nur wenige Meter Sicht. Die Wege würden
      Dir verborgen bleiben, hättest Du nicht ein so gut geschultes Auge. Du bewegst Dich so leise wie eine milde Brise über den dicken Humus, der den Boden bedeckt. Dabei versuchst Du, es zu vermeiden auf dünne Zweige oder
      irgendwelche der ausgebleichten Knochenstücke zu treten, welche den Waldboden spicken. Du verbirgst Deine Gegenwart vor den abscheulichen Monstern, die den Wald durchwa`{n`@d`Re`Gr`gn.`n`n"
);
      if(
$session['user']['turns']<=1)output("`2I`{n `@d`Re`Gr 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 nic`Rh`@t `{d`2a.`c");
   }
   if(
$session['user']['superuser']>1){
      
output("`n`nSUPERUSER Specials:`n");
      
$d dir("special");
      while(
false!==($entry $d->read())){
         if(
strpos($entry".php") === false)continue;
         if (
substr($entry,0,1)==".")continue;
         
output("<a href='forest.php?specialinc=$entry'>$entry</a>`n",true);
         
addnav("","forest.php?specialinc=$entry");
      }if(@
file_exists('vendor.php')){output("<a href='vendor.php?specialinc=forest'>vendor.php</a>`n",true);addnav('','vendor.php?specialinc=forest');}
   }
}

function 
get_DQ_wep($text="`n`pDu erhälst durch Deine Tat wahren Ruhm.`p`n"){   // 2008 by Schizo
   
global $session;
   
$config=unserialize($session[user][DQ_config]);
   if(
$config[orden]<11 && $config[wep]<10){
      
$config[wep]++;
      
$session[user][DQ_config]=serialize($config);
      
output($text);
   }
}

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<$max) return round(@mt_rand($min,$max)/1000,0);
   elseif(
$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];
   }else{
     
$sql="SELECT lastip,uniqueid,banoverride FROM accounts WHERE login='".addslashes($login)."'";
      
$result=db_query($sql) or die(db_error(LINK));
      
$row=db_fetch_assoc($result);
      if(
$row['banoverride']){
         
$session['banoverride']=true;
         return 
false;
      }
      
db_free_result($result);
      
$ip=$row['lastip'];
      
$id=$row['uniqueid'];
   }
   
$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")."')";
   
$result=db_query($sql) or die(db_error(LINK));
   if(
db_num_rows($result)>0){
      
$session=array();
      
$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");
      
$skills=array(1=>"darkarts","magic","thievery");
      
$skillpoints=array(1=>"darkartuses","magicuses","thieveryuses");
      
$session[user][$skills[$session[user][specialty]]]++;
      
output("`n`#Du 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 
fightnav($allowspecial=true$allowflee=true){
   global 
$PHP_SELF,$session;
   
$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 && (!(empty($session[user][magicuses]) && empty($session[user][darkartuses]) && empty($session[user][thieveryuses])) || $session[user][superuser]>=3)){
      
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","");
         
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][superuser]>=3){
         
addnav("`&Superuser`0","");
         
addnav("!?`&&#149; __GOD MODE","$script?op=fight&skill=godmode",true);
      }
   }
}

function 
appoencode($data,$priv=false){ //bearbeitet von Eliwood
   
global $nestedtags,$session,$appoencode;
   
$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.="`";
      }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(){ //(c) 2005 by Eliwood & Serra
   
global $db,$link;
   
$result=DB_Query("SELECT SQL_CACHE * FROM appoencode",LINK);
   
$tags=array();
   while(
$row DB_Fetch_Assoc($result)){
      
$tags[$row['code']] = $row;
   }
   return 
$tags;
}

function 
cutappoencode($text){  // 2009 by Schizo
   
global $appoencode;
   
$textarray=explode('`',$text);
   
$out=$textarray[0];
   for(
$i=1;$i<count($textarray);$i++){
     
$key=substr($textarray[$i],0,1);
     if(isset(
$appoencode[$key]))$out.=substr($textarray[$i],1);
     else 
$out.='`'.$textarray[$i];
   }
   return 
$out;
}

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

function 
templatereplace($itemname,$vals=false){
   global 
$template,$vitalhead,$vitalrow;
   @
reset($vals);
   if(!isset(
$template[$itemname]))output("`bWarnung:`b Das `i$itemname`i Template wurde nicht gefunden!`n");
   
$out=$template[$itemname];
   if(
$itemname=='statstart')$vitalhead=0;
   if(
$itemname=='stathead'){$vitalhead++;$vitalrow=0;}
   if(
$itemname=='statrow' && $vals!="")$vitalrow++;
   if(
$itemname=='statend')$out.='<script language="JavaScript">
                                  <!--
                                  showOrHide();
                                  //-->
                                  </script>'
;
   while(list(
$key,$val)=@each($vals)){
      if(
strpos($out,"{".$key."}")===false)output("`bWarnung:`b Das `i$key`i Teil wurde im `i$itemname`i Template nicht gefunden! (".$out.")`n");
      if(
$itemname=='statrow' && $vals!="")$out=str_replace("<tr>",'<tr id="v'.$vitalhead.'['.$vitalrow.']">',$out);
      if(
$itemname=='stathead')$out=str_replace("{"."$key"."}",'<img src="images/vminus.gif" id="v'.$vitalhead.'['.$vitalrow.']" onclick="showAndHide(\'v'.$vitalhead.'\');" height="12" style="float:left;padding: 5px 0px 0px 5px;">&nbsp;'.$val,$out);
      else 
$out=str_replace("{"."$key"."}",$val,$out);
   }
   return 
$out;
}

function 
charstats(){
   global 
$session;
   
$u=&$session[user];
   if(
$session[loggedin]){
      
$currentpage=$_SERVER['REQUEST_URI'];
      if(
strstr($currentpage"?") !=""){
         
$position=strrpos($currentpage,"?");
         
$currentpage=substr($currentpage,0,$position);
      }
      
$currentpage=str_replace("/logd/","",$currentpage); //change /logd/ to the name of your folder!
      
if(substr($currentpage,0,1)=="/")$currentpage=substr($currentpage,1);
      
//Tränke
      
global $badguy;
      for(
$i=0;$i<6;$i+=1){
         if(
$session['user']['potion']>$i){
            if(
$badguy['creaturename']<>"" or  $session['user']['alive']==or strstr($currentpage"usepotion") !="" or strstr($currentpage"usechow") !="" or strstr($currentpage"newday") !="" or strstr($currentpage"dragon") !="" or $session['user']['specialinc'] <> "" or strstr($currentpage"special/vendor") !=""){
               
$potion.="<img src=\"./images/potion.gif\" title=\"\" alt=\"\" style=\"width: 14px; height: 20px;\">";
            }else{
               
$potion.="<a href=\"usepotion.php\"><img src=\"./images/potion.gif\" title=\"\" alt=\"\" style=\"border: 0px solid ; width: 14px; height: 20px;\"></a>";
               
addnav("","usepotion.php");
            }
         }
//else $potion.="<img src=\"./images/potionclear.gif\" title=\"\" alt=\"\" style=\"width: 14px; height: 20px;\">";
      
}
      
//Inventarlink
      
if($badguy['creaturename']<>"" or strstr($currentpage"prefs") !="" or strstr($currentpage"usechow") !="" or strstr($currentpage"newday") !="" or strstr($currentpage"festungsgrotte") !="" or strstr($currentpage"dragon") !="" or strstr($currentpage"vendor") !="" or $session['user']['specialinc'] <> ""){
         
$bag.="<img src=\"./images/bag.jpg\" title=\"\" alt=\"Zum Inventar\" style=\"border: 0px solid ;\">";
      }else{
         
$bag.="<a href=\"prefs.php?op=inventory&back=$currentpage\"><img src=\"./images/bag.jpg\" title=\"\" alt=\"Zum Inventar\" style=\"border: 0px solid ;\"></a>";
         
addnav("","prefs.php?op=inventory&back=$currentpage");
      }
      
//Vitalinfo
      
$u['hitpoints']=round($u['hitpoints'],0);
      
$u['experience']=round($u['experience'],0);
      
$u['maxhitpoints']=round($u['maxhitpoints'],0);
      
$spirits=array("-7"=>"Wiedererweckt","-6"=>"Wiedererweckt","-2"=>"Sehr schlecht","-1"=>"Schlecht","0"=>"Normal","1"=>"Gut","2"=>"Sehr gut");
      if(!
$u[alive])$spirits[$u[spirits]]="TOT";
      
reset($session[bufflist]);
      
$atk=$u[attack];
      
$def=$u[defence];
      while(list(
$key,$val)=each($session[bufflist])){
         
$buffs.=($val[rounds]>=999)?appoencode("`#$val[name] `7(&infin; Runden)`n",true):appoencode("`#$val[name]".($val[rounds]>0?" `7($val[rounds] Runden übrig)`n":"`n"),true);
         if(isset(
$val[atkmod]))$atk*=$val[atkmod];
         if(isset(
$val[defmod]))$def*=$val[defmod];
      }
      
$atk=round($atk,2);
      
$def=round($def,2);
      
$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"=>"Inventar","value"=>$bag))
//                          .templatereplace("statrow",array("title"=>"Gilde","value"=>$u['gilde']))
                          
,true);
      if(
$session['user']['alive']){
         
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Lebenspunkte","value"=>"$u[hitpoints]`0/$u[maxhitpoints]"))
                              .
templatereplace("statrow",array("title"=>"Runden","value"=>$u['turns']))
                              ,
true);
      }else{
         
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Seelenpunkte","value"=>$u['soulpoints']))
                              .
templatereplace("statrow",array("title"=>"Foltern","value"=>$u['gravefights']))
                              ,
true);
      }
      
$pi=&$session['pietre'];
      
$level=$session[user][level];
      
$exparray=array(1=>100,400,1002,1912,3140,4707,6641,8985,11795,15143,19121,23840,29437,36071,43930);
      while(list(
$key,$val)=each($exparray))$exparray[$key]=round($val+($session[user][dragonkills]/4)*$session[user][level]*100,0);
      
$exprequired=$exparray[$session[user][level]];
      
$dona=$session[user][donation] - $session[user][donationspent];
      
$dqinfo=unserialize($session[user]['DQ_config']);
      
$dqruhm=($dqinfo[wep]>&& $dqinfo[see]!=1)?templatereplace("statrow",array("title"=>"Ruhm","value"=>(int)$dqinfo[wep].'/10')):'';
      
$dqgeist=($dqinfo[see]==&& $dqinfo[orden]<11)?templatereplace("statrow",array("title"=>"Geister","value"=>(int)$dqinfo[geist].'/50')):'';
      
$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"=>"Alter","value"=>$u['age']))
                                                      .
templatereplace("statrow",array("title"=>"Angriff","value"=>$atk))
                                                      .
templatereplace("statrow",array("title"=>"Verteidigung","value"=>$def))
                                                      .
templatereplace("statrow",array("title"=>"Charmepunkte","value"=>$u['charm']))
                                                      .
templatereplace("statrow",array("title"=>"Intelligenz","value"=>$u['iq']))
                                                      .
templatereplace("statrow",array("title"=>"Ehrenpunkte","value"=>$u['ehre']))
                                                      :
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"=>"Gefallen","value"=>$u['deathpower']))
                            )
                           .(
$u['drunkenness']?templatereplace("statrow",array("title"=>"Promille","value"=>round($u['drunkenness']))):"")
                           .
$dqruhm.$dqgeist
                           
.templatereplace("stathead",array("title"=>"Weitere Infos"))
                           .
templatereplace("statrow",array("title"=>"Gold","value"=>round($u['gold'])))
                           .
templatereplace("statrow",array("title"=>"Gold auf der Bank","value"=>round($u['goldinbank'])))
                           .
templatereplace("statrow",array("title"=>"Edelsteine","value"=>$u['gems']))
                           .
templatereplace("statrow",array("title"=>"Edelsteine im Schließfach","value"=>$u['gemsinbank']))
                           .(
$session['user']['potion']?templatereplace("statrow",array("title"=>"Heiltränke","value"=>$potion)):"")
//                           .templatereplace("statrow",array("title"=>"Erfahrung","value"=>$u['experience']))
//                           .templatereplace("statrow",array("title"=>"Benötigte Erfahrung","value"=>$exprequired-$session[user][experience]))
                           
.templatereplace("statrow",array("title"=>"Erfahrung","value"=>($exprequired-$u['experience']<0?'`8`b':'').$u['experience'].' / '.$exprequired.($exprequired-$u['experience']<0?'`b':'')))
                           .(
$u['waffe']?templatereplace("statrow",array("title"=>"Eigene Waffe","value"=>$u['wname'])):"")
                           .
templatereplace("statrow",array("title"=>"Waffe angelegt","value"=>$u['weapon']." `0(".(int)$u['weapondmg'].")"))
                           .(
$u['ruest']?templatereplace("statrow",array("title"=>"Eigene Rüstung","value"=>$u['rname'])):"")
                           .
templatereplace("statrow",array("title"=>"Rüstung angelegt","value"=>$u['armor']." `0(".(int)$u['armordef'].")"))

                           .
templatereplace("stathead",array("title"=>"An Daingean Edition Infos"))
                           .
templatereplace("statrow",array("title"=>"Bester Angriff","value"=>$u['punch']))
                           .
templatereplace("statrow",array("title"=>"Angelrunden","value"=>$u['fishturn']))
                           .(
$u['crowedup']?templatereplace("statrow",array("title"=>"Pflanze gepflegt","value"=>$u['crowedup'])):"")
                           .(
$u['drachenerz']?templatereplace("statrow",array("title"=>"Drachenerze","value"=>(int)$u['drachenerz'])):"")
                           .(
$u['battlepoints']?templatereplace("statrow",array("title"=>"Arenapunkte","value"=>$u['battlepoints'])):"")
                           .(
$u['superuser']<>1?templatereplace("statrow",array("title"=>"Donationpoints gesamt","value"=>$u['donation'])):templatereplace("statrow",array("title"=>"Rollenspielpunkte gesamt","value"=>$u['rppoints'])))
                           .(
$u['superuser']<>1?templatereplace("statrow",array("title"=>"DP verfügbar","value"=>$dona)):templatereplace("statrow",array("title"=>"Rollenspielpunkte verfügbar","value"=>$u['rppoints']-$u['rppointsspent'])))
                           .
templatereplace("statrow",array("title"=>"Drachenkills","value"=>$u['dragonkills']))
                           ,
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));
$zeit=strtotime("1980-01-01 00:00:00 + $realsecstotomorrow seconds");
$stempel=date("G",$zeit)*3600+date("i",$zeit)*60+date("s",$zeit);
$text='<span id="zeit0"></span>
<script language="javascript" type="text/javascript">
var zeit0_id = document.getElementById("zeit0");
var jetzt=new Date();
var past=jetzt.getTime();
var fix_ste='
.$stempel.';

if(zeit0_id){window.setTimeout("countdown0()",1);}
function countdown0(){
  var jet=new Date();
  var jet=jet.getTime();
  var diff=Math.round(fix_ste-(jet - past)/1000);
  var diff_hou=Math.floor(diff/3600)%24;
  var diff_min=Math.floor((diff%3600)/60)%60;
  var diff_sek=diff%60;
  if(diff>0){
    zeit0_id.innerHTML = (diff_hou>0?diff_hou+"h, ":"")+(diff_min>0 || diff_hou>0?(diff_min<10?"0":"")+diff_min+"m, ":"")+(diff_sek<10?"0":"")+diff_sek+"s";
    window.setTimeout("countdown0()",1000);
  }
  else zeit0_id.innerHTML = "jetzt"
}
</script>'
;
         
$charstat.=appoencode(templatereplace("statrow",array("title"=>"Nächste Runde","value"=>$text)),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{
      
$sql="SELECT name,alive,location,sex,level,laston,loggedin,lastip,uniqueid FROM accounts WHERE superuser<=1 AND locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime("-".getsetting("LOGINTIMEOUT",900)." seconds"))."' ORDER BY level DESC";
      
$result=db_query($sql) or die(sql_error($sql));
      
$count=db_num_rows($result);
      
$ret.=appoencode("`b$count Bewohner/innen `nsind unterwegs:`b`n");
      for(
$i=0;$i<db_num_rows($result);$i++){
         
$row db_fetch_assoc($result);
         
$ret.=appoencode("`^$row[name]`n");
      }
      
$sql="SELECT name,alive,location,sex,superuser,level,laston,loggedin,lastip,uniqueid FROM accounts WHERE superuser>=2 AND invis!=1 AND locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("LOGINTIMEOUT",900)." seconds"))."' ORDER BY level DESC";
      
$result=db_query($sql) or die(sql_error($sql));
      
$count=db_num_rows($result);
      
$ret.=appoencode("`n`$`b$count Admins beobachten die Welt:`b`n");
      for(
$i=0;$i<db_num_rows($result);$i++){
         
$row db_fetch_assoc($result);
         
$ret.=appoencode("`^$row[name]`n");
         
$onlinecount++;
      }
      
db_free_result($result);
      if(
$onlinecount==0)$ret.=appoencode("`i`cBack in 5 minutes!`c`i");
      return 
$ret;
   }
}

$accesskeys=array('ü'=>1,'ä'=>1,'ö'=>1);
$quickkeys=array();

function 
addnav($text,$link=false,$priv=false,$pop=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(
strpos($link,"?"))$extra="&c=$session[counter]";
         else 
$extra="?c=$session[counter]";
         
$extra.="-".date("His");
         
//hotkey for the link.
         
$key="";
         if(
substr($text,1,1)=="?"){
            if(
$accesskeys[strtolower(substr($text01))]==1)$text substr($text,2);
            else{
               
$key substr($text,0,1);
               
$text substr($text,2);
               
$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);
               }
            }
         }
         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("abcdefghijklmnopqrstuvwxyzüöä0123456789"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="";
         }
         if(
$key!=""){
//          $text=substr($text,0,strpos($text,$key))."`H".$key."`H".substr($text,strpos($text,$key)+1);
            
$text=substr($text,0,$i)."`H".$key."`H".substr($text,$i+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;\"" "")
                              ));
      }
      
$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));
      
$settings[$settingname]=$value;
      if(
db_affected_rows()>0) return true; else return false;
   }
   return 
false;
}

function 
loadsettings(){
   global 
$settings;
   if(!
is_array($settings)){
      
$settings=array();
      
$sql="SELECT * FROM settings";
      
$result=db_query($sql) or die(db_error(LINK));
      for(
$i=0;$i<db_num_rows($result);$i++){
         
$row=db_fetch_assoc($result);
         
$settings[$row[setting]] = $row[value];
      }
      
db_free_result($result);
   }
}

function 
getsetting($settingname,$default){
   global 
$settings;
   
loadsettings();
   if(!isset(
$settings[$settingname])){
      
savesetting($settingname,$default);
      return 
$default;
   }else{
      if(
trim($settings[$settingname])=="")$settings[$settingname]=$default;
      return 
$settings[$settingname];
   }
}

function 
showform($layout,$row,$nosave=false){
   global 
$output,$appoencode;
   
output("<table>",true);
   while(list(
$key,$val)=each($layout)){
      
$info=explode(",",$val);
      if(
$info[1]=="title"){
         
output("<tr><td colspan='2' bgcolor='#666666'>",true);
         
output("`b`^$info[0]`0`b");
         
output("</td></tr>",true);
      }else{
         
output("<tr><td valign='top'>",true);
         
output("$info[0]");
         
output("</td><td>",true);
      }
      switch(
$info[1]){
         case 
"title":break;
         case 
"enum":reset($info);
                     list(
$k,$v)=each($info);
                     list(
$k,$v)=each($info);
                     
$output.="<select name='$key' style='color:#444444;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>";
                     while(list(
$k,$v)=each($info)){
                        
$optval=$v;
                        list(
$k,$v)=each($info);
                        
$optdis=$v;
                        
$output.="<option value='$optval'".($row[$key]==$optval?" selected":"").">".HTMLEntities("$optval : $optdis")."</option>";
                     }
                     
$output.="</select>";
                     break;
         case 
"password":$output.="<input type='password' name='$key' value='".HTMLEntities($row[$key])."' style='font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>";
                         break;
         case 
"bool":if(!isset($row[$key]) && $info[2]==1)$row[$key]=1;
                     
$output.="<select name='$key' style='color:#444444;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>";
                     
$output.="<option value='0'".($row[$key]==0?" selected":"").">Nein</option>";
                     
$output.="<option value='1'".($row[$key]==1?" selected":"").">Ja</option>";
                     
$output.="</select>";
                     break;
         case 
"hidden":$output.="<input type='hidden' name='$key' value=\"".HTMLEntities($row[$key])."\">".HTMLEntities($row[$key]);
                       break;
         case 
"viewonly":output(dump_item($row[$key]), true);
                         break;
         case 
"int":if ($key != 'bio')$output.="<input name='$key' value=\"".HTMLEntities($row[$key])."\" size='5'>";
                    elseif(
$key == 'bio')$output.="<textarea name='{$key}' cols='30' rows='5'>".HTMLEntities($row[$key])."</textarea>";
                    break;
         case 
"textarea":$output.="<textarea name='$key' class='input' cols='$info[2]' rows='$info[3]' style='font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>".HTMLEntities($row[$key])."</textarea>";
                         break;
         case 
'file':$output .= "<input name='$key' type='file' style='font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>";
                     break;
         case 
'color':reset($appoencode);
                      
$output.='<script type="text/javascript">var appoencodearray=Array();';
                      while(list(
$akey,$aval) = each($appoencode)){if(!empty($aval['color']))$output.='appoencodearray[\''.$akey.'\']="#'.$aval['color'].'";';}
                      
$output.='</script>';
                      
$output.='<input type="text" name="'.$key.'" value="'.$row[$key].'" maxlength="1" style="width:20px;text-align:center;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;" onkeyup="if(typeof appoencodearray[this.value] != \'undefined\'){this.style.backgroundColor=appoencodearray[this.value];this.style.color=appoencodearray[this.value];}else{this.style.backgroundColor=\'#433828\';this.style.color=\'#CCCC00\';this.value=\'\';}">';
                      break;
         case 
'text':$output.=("<input size='53' maxlength='{$info[2]}' name='$key' value=\"".HTMLEntities($row[$key])."\" style='font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>");
                     break;
         default:
$output.=("<input size='53' name='$key' value=\"".HTMLEntities($row[$key])."\" style='font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;'>");
      }
      
output("</td></tr>",true);
   }
   
output("</table>",true);
   if(!
$nosave)output("<input type='submit' class='button' value='Speichern'>",true);
}

function 
clearnav(){
   
$session[allowednavs]=array();
}

function 
redirect($location,$reason=false){
   global 
$session,$REQUEST_URI,$SCRIPT_NAME;
   if(
$location!="badnav.php"){
      
$session[allowednavs]=array();
      
addnav("",$location);
   }
   if(
strpos($location,"badnav.php")===false)$session[output]="<a href=\"".HTMLEntities($location)."\">Hier klicken</a>";
   
$session['debug'].="Redirected to $location from $REQUEST_URI.  $reason\n";
   
saveuser();
   
header("Location: $location");
   echo 
$location;
   echo 
$session['debug'];
   exit();
}

function 
loadtemplate($templatename){
   if(!
file_exists("templates/$templatename") || $templatename==""$templatename="diabloNeu.htm";
   
$fulltemplate implode("",file("templates/$templatename"));
   
$fulltemplate explode("<!--!",$fulltemplate);
   while(list(
$key,$val)=each($fulltemplate)){
      
$fieldname=substr($val,0,strpos($val,"-->"));
      if(
$fieldname!="")$template[$fieldname]=substr($val,strpos($val,"-->")+3);
   }
   return 
$template;
}

function 
maillink(){
   global 
$session;
   
$sql="SELECT sum(if(seen=1,1,0)) AS seencount, sum(if(seen=0,1,0)) AS notseen FROM mail WHERE hide=0 AND msgto=\"".$session[user][acctid]."\"";
   
$result=db_query($sql) or die(mysql_error(LINK));
   
$row=db_fetch_assoc($result);
   
db_free_result($result);
   
$row[seencount]=(int)$row[seencount];
   
$row[notseen]=(int)$row[notseen];
   if(
$session[user][prefs][ajaxoff]==|| !$session[loggedin])$return='';
   else{
     
addnav("","ajax_request.php");
     
$return='<script type="text/javascript">
<!--
var httpObjectYom = new AjaxRequest();
function yomIt(){
  var Yom=httpObjectYom.connectPOST("ajax_request.php","op=yom",true);
  Yom.onreadystatechange = function(){
    if((Yom.readyState==4)&&(Yom.status==200)){
      document.getElementById("ajax_request_yom").innerHTML = text_decode(Yom.responseText);
//      alert(text_decode(Yom.responseText));
      window.setTimeout("yomIt()",45000);
    }
  }
}
window.setTimeout("yomIt()",45000);
//-->
</script>'
;
   }
   if(
$row[notseen]>0) return $return."<div id=\"ajax_request_yom\"><a href='mail.php' target='_blank' onClick=\"".popup("mail.php").";return false;\" class='hotmotd'>Ye Olde Mail: {$row[notseen]} neu, {$row[seencount]} alt</a></div>";
                  else return 
$return."<div id=\"ajax_request_yom\"><a href='mail.php' target='_blank' onClick=\"".popup("mail.php").";return false;\" class='motd'   >Ye Olde Mail: {$row[notseen]} neu, {$row[seencount]} alt</a></div>";
}

function 
motdlink(){
   global 
$session,$templatename;
   if(
$session[user][prefs][ajaxoff]==|| !$session[loggedin])$return='';
   else{
     
addnav("","ajax_request.php");
     
$return='<script type="text/javascript">
<!--
var httpObjectMotd = new AjaxRequest();
function motdIt(){
  var Motd=httpObjectMotd.connectPOST("ajax_request.php","op=motd",true);
  Motd.onreadystatechange = function(){
    if((Motd.readyState==4)&&(Motd.status==200)){
      document.getElementById("ajax_request_motd").innerHTML = text_decode(Motd.responseText);
      window.setTimeout("motdIt()",45000);
    }
  }
}
window.setTimeout("motdIt()",45000);
//-->
</script>'
;
   }
   if(
$session[needtoviewmotd]) return $return."<div id=\"ajax_request_motd\"><a href='motd.php' target='_blank' onClick=\"".popup("motd.php").";return false;\" class='hotmotd'><b>MoTD</b></a></div>";
                           else return 
$return."<div id=\"ajax_request_motd\"><a href='motd.php' target='_blank' onClick=\"".popup("motd.php").";return false;\" class='motd'   ><b>MoTD</b></a></div>";
}

function 
page_header($title="LoGD 0.9.7 ext GER"){
   global 
$header,$SCRIPT_NAME,$session,$template,$settings;
   
$nopopups["login.php"]=1;
   
$nopopups["motd.php"]=1;
   
$nopopups["index.php"]=1;
   
$nopopups["vote.php"]=1;
   
$nopopups["create.php"]=1;
   
$nopopups["about.php"]=1;
   
$nopopups["mail.php"]=1;
   
$nopopups["farben.php"]=1;
   
$nopopups["bio.php"]=1;
   
$nopopups["freieavatare.php"]=1;
   
$nopopups["referral.php"]=1;
   
$header $template['header'];
   
$sql="SELECT motddate FROM motd ORDER BY motditem DESC LIMIT 1";
   
$result=db_query($sql);
   
$row=db_fetch_assoc($result);
   
db_free_result($result);
   
$wetter=cutappoencode($settings['weather']);
   if( (
stristr($wetter,'schnee')!==FALSE || stristr($wetter,'schneit')!==FALSE || stristr($wetter,'eis')!==FALSE)  && (strstr($SCRIPT_NAME,'test.php')!==FALSE || strstr($SCRIPT_NAME,'village.php') || strstr($SCRIPT_NAME,'index.php'))){$header=str_replace('<body','<body id="winter"',$header);}
   if((
$row[motddate]>$session[user][lastmotd]) && $nopopups[$SCRIPT_NAME]!=&& $session[user][loggedin]){
      
$header=str_replace("{headscript}","<script language=\"JavaScript\" type=\"text/javascript\">".popup("motd.php")."</script>",$header);
      
$session[needtoviewmotd]=true;
   }else{
      
$header=str_replace("{headscript}","",$header);
      
$session[needtoviewmotd]=false;
   }
   
$header=str_replace("{title}",$title,$header);
}

function 
popup($page){
   return 
"window.open('$page','".preg_replace("([^[:alnum:]])","",$page)."','resizable=yes,".(preg_match("/farben.php/",$page)?"scrollbars=no,width=830,height=357":"scrollbars=yes,width=550,height=300")."')";
}

function 
page_footer(){
   
$forumlink=getsetting("forum","http://lotgd.net/forum");
   global 
$output,$templatename,$nestedtags,$header,$nav,$session,$REMOTE_ADDR,$REQUEST_URI,$pagestarttime,$quickkeys,$template,$logd_version;
   while(list(
$key,$val)=each($nestedtags)){
      
$output.="</$key>";
      unset(
$nestedtags[$key]);
   }
   
$script.="<script language=\"JavaScript\" type=\"text/javascript\">
        <!--
        document.onkeypress=keyevent;
        function keyevent(e){
                var c;
                var target;
                var altKey;
                var ctrlKey;
                if (window.event != null) {
                        c=String.fromCharCode(window.event.keyCode).toUpperCase();
                        altKey=window.event.altKey;
                        ctrlKey=window.event.ctrlKey;
                }else{
                        c=String.fromCharCode(e.charCode).toUpperCase();
                        altKey=e.altKey;
                        ctrlKey=e.ctrlKey;
                }
                if (window.event != null)
                        target=window.event.srcElement;
                else
                        target=e.originalTarget;
                if (target.nodeName.toUpperCase()=='INPUT' || target.nodeName.toUpperCase()=='TEXTAREA' || altKey || ctrlKey){
                }else{"
;
   
reset($quickkeys);
   while(list(
$key,$val)=each($quickkeys)){
      
$script.="\n if (c == '".strtoupper($key)."') { $val; return false; }";
   }
   
$script.="   }
        return true;}
        //-->
        </script>"
;
   
// START - chat preview mod by Chaosmaker Modified for Ellis Colortags by Devilzimti)
   
$appoencode Load_Tags();
   
$cases" ";
   while(list(
$key,$val) = each($appoencode)) {
      if(
$val['allowed'] == true){
         
$cases .= "case \"".$val['code']."\":\n
                    if (openspan) output= output+\"</span>\"; else openspan = true;\n
                    output= output+\"<span style='color: #"
.$val['color'].";'>\";\n
                    break;\n    "
;
      }else{
         
$cases .= "\n//".$val['code']." darf hier nicht benutzt werden!\n ";
      }
   }
   
$script .= <<<JS
      <script type="text/javascript">
      <!--
         function appoencode(data){
            var Fundstelle=-1;
            var tag='';
            var append='';
            var output='<br />Vorschau: ';
            var openspan=false;
            while ((Fundstelle=data.search(/`/))!=-1){
               tag=data.substr(Fundstelle+1, 1);
               append=data.substr(0,Fundstelle);
               append=append.replace(/</,'&lt;');
               append=append.replace(/>/,'&gt;');
               output=output+append;
               if(data.length>=Fundstelle+2) data = data.substring(Fundstelle+2,data.length);
               else data='';
               switch(tag){
                  case "0":
                  if(openspan)output=output+"</span>";
                  openspan=false;
                    break;
                  
{$cases}
                  default:
                  output=output+"`"+tag;
               }
            }
            output+=data;
            if(openspan)output+='</span>';
            return output;
         }
      //-->
      </script>
JS;
   
//END - chat preview mod by Chaosmaker (Modified for Ellis Colortags by Devilzimti)

   
if(($session['user']['arbeit_ID']>&& $session['user']['superuser']<>1) || $session['user']['superuser']>=2){
      
$dateiseite=$REQUEST_URI;
      if(!empty(
$session['user']['specialinc']))$dateiseite=str_replace('forest.php',$session['user']['specialinc'],$dateiseite);
      if(
strstr($dateiseite,"&c=")!=""){$position=strrpos($dateiseite,"&c=");$dateiseite=substr($dateiseite,0,$position);}
      elseif(
strstr($dateiseite,"?c=")!=""){$position=strrpos($dateiseite,"?c=");$dateiseite=substr($dateiseite,0,$position);}
      if(
strstr($dateiseite,"/")!=""){$position=strrpos($dateiseite,"/");$dateiseite=substr($dateiseite,$position+1);}
      
$arbeitresult=db_query("SELECT `ID` FROM arbeit WHERE ".(($session['user']['superuser']>=2)?'':"`ID`={$session['user']['arbeit_ID']} AND")." `datei`='{$dateiseite}' LIMIT 1");
      
db_num_rows($arbeitresult);
      if(
db_num_rows($arbeitresult)>0){$arbeitrow=db_fetch_assoc($arbeitresult);addnav("Willst Du helfen?");addnav("`QArbeiten","work.php".($session['user']['superuser']>=2?'?id='.$arbeitrow['ID']:''));if($session['user']['superuser']>=2)addnav("`Zzum Jobeditor","jobeditor.php");}
   }

   
$footer=$template['footer'];
   if(
strpos($footer,"{paypal}") || strpos($header,"{paypal}"))$palreplace="{paypal}";
   else 
$palreplace="{stats}";
   
//NOTICE Although I will not deny you the ability to remove the below paypal link, I do request, as the author of this software
   //NOTICE that you leave it in.
   
$paypalstr='<table style="text-align:center;" cellspacing="0"><tr><td>';
   
$paypalstr.='<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
                    <input type="hidden" name="cmd" value="_xclick">
                    <input type="hidden" name="business" value="nahdude81@hotmail.com">
                    <input type="hidden" name="item_name" value="Legend of the Green Dragon Author Donation from '
.preg_replace("/[`]./","",$session['user']['name']).'">
                    <input type="hidden" name="item_number" value="'
.htmlentities($session['user']['login']).":".$_SERVER['HTTP_HOST']."/".$_SERVER['REQUEST_URI'].'">
                    <input type="hidden" name="no_shipping" value="1">
                    <input type="hidden" name="cn" value="Your Character Name">
                    <input type="hidden" name="cs" value="1">
                    <input type="hidden" name="currency_code" value="USD">
                    <input type="hidden" name="tax" value="0">
                    <input type="image" src="images/paypal1.gif" border="0" name="submit" alt="Donate!">
                  </form>'
;
   
$paysite=getsetting("paypalemail""");
   if(
$paysite!=""){
      
$paypalstr.='</td><td>';
      
$paypalstr.='<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
                     <input type="hidden" name="cmd" value="_xclick">
                     <input type="hidden" name="business" value="'
.$paysite.'">
                     <input type="hidden" name="item_name" value="Legend of the Green Dragon Site Donation from '
.preg_replace("/[`]./","",$session['user']['name']).'">
                     <input type="hidden" name="item_number" value="'
.htmlentities($session['user']['login']).":".$_SERVER['HTTP_HOST']."/".$_SERVER['REQUEST_URI'].'">
                     <input type="hidden" name="no_shipping" value="1">
                     <input type="hidden" name="cn" value="Your Character Name">
                     <input type="hidden" name="cs" value="1">
                     <input type="hidden" name="currency_code" value="EUR">
                     <input type="hidden" name="tax" value="0">
                     <input type="image" src="images/paypal2.gif" border="0" name="submit" alt="Donate!">
                   </form>'
;
   }
   
$paypalstr.='</td></tr></table>';
   if(
$session[user][loggedin]){$paypalstr="<a href='referral.php' target='_blank' onClick=\"".popup("referral.php").";return false;\"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Freunde<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;einladen</b></a>";addnav("","referral.php");}
   
$footer=str_replace($palreplace,(strpos($palreplace,"paypal")?"":"{stats}").$paypalstr,$footer);
   
$header=str_replace($palreplace,(strpos($palreplace,"paypal")?"":"{stats}").$paypalstr,$header);
   
//NOTICE Although I will not deny you the ability to remove the above paypal link, I do request, as the author of this software
   //NOTICE that you leave it in.
   
$header=str_replace("{nav}",$nav,$header);
   
$footer=str_replace("{nav}",$nav,$footer);
   
$header=str_replace("{motd}",motdlink(),$header);
   
$footer=str_replace("{motd}",motdlink(),$footer);
      
$header=str_replace("{forum}","<a href='$forumlink' target='_blank' class='motd'>Forum</a>",$header);
      
$footer=str_replace("{forum}","<a href='$forumlink' target='_blank' class='motd'>Forum</a>",$footer);
   if(
$session[user][acctid]>0){
      
$header=str_replace("{mail}",maillink(),$header);
      
$footer=str_replace("{mail}",maillink(),$footer);
   }else{
      
$header=str_replace("{mail}","",$header);
      
$footer=str_replace("{mail}","",$footer);
   }
      
$header=str_replace("{petition}","<a href='petition.php' onClick=\"".popup("petition.php").";return false;\" target='_blank' align='right' class='motd'>Hilfe anfordern</a>",$header);
      
$footer=str_replace("{petition}","<a href='petition.php' onClick=\"".popup("petition.php").";return false;\" target='_blank' align='right' class='motd'>Hilfe anfordern</a>",$footer);
   if(
$session['user']['superuser']>1){
      
$sql="SELECT count(petitionid) AS c,status FROM petitions GROUP BY status";
      
$result=db_query($sql);
      
$petitions=array(0=>0,1=>0,2=>0);
      for(
$i=0;$i<db_num_rows($result);$i++){
         
$row db_fetch_assoc($result);
         
$petitions[(int)$row['status']] = $row['c'];
      }
      
db_free_result($result);
      
$footer "<table border='0' cellpadding='5' cellspacing='0' align='right'><tr><td><b>Anfragen:</b> $petitions[0] Ungelesen, $petitions[1] Gelesen, $petitions[2] Geschlossen.</td></tr></table>".$footer;
   }
   
$footer=str_replace("{stats}",charstats(),$footer);
   
$header=str_replace("{stats}",charstats(),$header);
   
$header=str_replace("{script}",$script,$header);
   if(
$session[user][loggedin]){
      
$footer=str_replace("{source}","<a href='source.php?url=".preg_replace("/[?].*/","",($_SERVER['REQUEST_URI']))."' target='_blank'>Source anzeigen</a>",$footer);
      
$header=str_replace("{source}","<a href='source.php?url=".preg_replace("/[?].*/","",($_SERVER['REQUEST_URI']))."' target='_blank'>Source anzeigen</a>",$header);
      
$footer=str_replace("{Vote 4 US}","<a href='http://www.galaxy-news.de/index.php?page...game&game_id=65'</a>",$footer);
      
$header=str_replace("{Vote 4 US}","<a href='http://www.galaxy-news.de/index.php?page...game&game_id=65'</a>",$header);
   }else{
      
$footer=str_replace("{source}","<a href='source.php' target='_blank'>Source</a>",$footer);
      
$header=str_replace("{source}","<a href='source.php' target='_blank'>Source</a>",$header);
      
$footer=str_replace("{Vote 4 US}","<a href='http://www.galaxy-news.de/index.php?page...game&game_id=65'</a>",$footer);
      
$header=str_replace("{Vote 4 US}","<a href='http://www.galaxy-news.de/index.php?page...game&game_id=65'</a>",$header);
   }
   
$footer=str_replace("{copyright}","Copyright 2002-2003, Game: Eric Stevens",$footer);
   
$footer=str_replace("{version}""Version: $logd_version"$footer);
   
$footer=str_replace("{Vote 4 US}","<a href='http://www.galaxy-news.de/index.php?page...game&game_id=65'</a>",$footer);
   
$header=str_replace("{Vote 4 US}","<a href='http://www.galaxy-news.de/index.php?page...game&game_id=65'</a>",$header);
   
$gentime getmicrotime()-$pagestarttime;
   
$session[user][gentime]+=$gentime;
   
$session[user][gentimecount]++;
   
$footer=str_replace("{pagegen}","Seitengenerierung: ".round($gentime,2)."s, Schnitt: ".round($session[user][gentime]/$session[user][gentimecount],2)."s - ".round($session[user][gentime],2)."/".round($session[user][gentimecount],2)."",$footer);
   if(
strpos($_SERVER['HTTP_HOST'],"lotgd.net")!==false)$footer=str_replace("</html>",'<script language="JavaScript" type="text/JavaScript" src="http://www.reinvigorate.net/archive/app.bin/jsinclude.php?5193"></script></html>',$footer);
   
$output=$header.$output.$footer;
   
$session['user']['gensize']+=strlen($output);
   
$session[output]=$output;
   
$currentpage=$_SERVER['REQUEST_URI'];
   if(
strstr($currentpage,"?")!=""){
      
$position=strrpos($currentpage,"?");
      
$currentpage=substr($currentpage,0,$position);
   }
   
$currentpage=str_replace("/","",$currentpage);
   if(
substr($currentpage,0,1)=="/")$currentpage=substr($currentpage,1);
   if(
$currentpage!="usepotion.php" or $currentpage != "usechow.php")$session['user']['pqrestorepage']=$currentpage;
   
saveuser();
   
session_write_close();
   echo 
compress_out($output);
   exit();
}

function 
popup_header($title="Legend of the Green Dragon"){
   global 
$header,$session;
   if(
strstr($_SERVER['REQUEST_URI'],'bio.php') || strstr($_SERVER['REQUEST_URI'],'referral.php') || strstr($_SERVER['REQUEST_URI'],'freieavatare.php')){
     
$header.='<?xml version="1.0" encoding="ISO-8859-1"?>
               <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
               <html><head>
               <title>'
.$title.'</title>
               <link href="templates/diabloNeu.css" rel="stylesheet" type="text/css">
               </head>
               <body style="color:#CCCC99;background-color:#000000;margin:1px 1px 10px 1px;">'
;
   }else{
     
$header.="<html><head><title>$title</title>";
     
$header.="<link href=\"newstyle.css\" rel=\"stylesheet\" type=\"text/css\">";
     
$header.="</head><body bgcolor='#000000' text='#CCCCCC'><table cellpadding=5 cellspacing=0 width='100%'>";
     
$header.="<tr><td class='popupheader'><b>$title</b></td></tr>";
     
$header.="<tr><td valign='top' width='100%'>";
   }
}

function 
popup_footer(){
   global 
$output,$nestedtags,$header,$nav,$session;
   while(list(
$key,$val)=each($nestedtags)){
      
$output.="</$key>";
      unset(
$nestedtags[$key]);
   }
   if(
strstr($_SERVER['REQUEST_URI'],'bio.php') || strstr($_SERVER['REQUEST_URI'],'referral.php') || strstr($_SERVER['REQUEST_URI'],'freieavatare.php')){
     
$output=$header.'
<table style="background:repeat-x url(templates/diabloNeu/main/main-top-back.gif);width:100%;height:46px;border:none;border-collapse:collapse;">
 <tr>
  <td style="background:no-repeat url(templates/diabloNeu/main/main-top-left.gif) left 0px;width:31px;height:46px;padding:0px;"></td>
  <td style="background:no-repeat url(templates/diabloNeu/main/main-top-middle.gif) center -1px;width:330px;height:46px;padding:0px;"></td>
  <td style="background:no-repeat url(templates/diabloNeu/main/main-top-right.gif) right 0px;width:31px;height:46px;padding:0px;"></td>
 </tr>
</table>
<table style="width:100%;border:none;border-collapse:collapse;">
 <tr>
  <td style="background:repeat-y url(templates/diabloNeu/main/main-left.gif);width:31px;padding:0px;"></td>
  <td style="padding:0px;">
'
.$output.'
  </td>
  <td style="background:repeat-y url(templates/diabloNeu/main/main-right.gif);width:31px;padding:0px;"></td>
 </tr>
</table>
<table style="background:repeat-x url(templates/diabloNeu/main/main-bot-back.gif);width:100%;height:46px;border:none;border-collapse:collapse;">
 <tr>
  <td style="background:no-repeat url(templates/diabloNeu/main/main-bot-left.gif) left 0px;width:31px;height:46px;padding:0px;"></td>
  <td style="background:no-repeat url(templates/diabloNeu/main/main-bot-middle.gif) center 1px;width:330px;height:46px;padding:0px;"></td>
  <td style="background:no-repeat url(templates/diabloNeu/main/main-bot-right.gif) right 0px;width:31px;height:46px;padding:0px;"></td>
 </tr>
</table>
</body>
</html>'
;
   }else{
     
$output.="</td></tr><tr><td bgcolor='#330000' align='center'>Copyright 2002, Eric Stevens WERBUNG</td></tr></table></body></html>";
     
$output=$header.$output;
   }

   
saveuser();
   echo 
$output;
   exit();
}

function 
clearoutput(){
   global 
$output,$nestedtags,$header,$nav,$session;
   
$session[allowednavs]="";
   
$output="";
   unset(
$nestedtags);
   
$header="";
   
$nav="";
}

function 
soap($input){
   global 
$soapsearch;
   if(
getsetting("soap",1)){
      if(!
is_array($soapsearch)){
         
$appoencodekeys='a-zA-Z0-9{}.,:;@!#%~&\(\)\[\]\^\$\*\+';
         
$sql="SELECT * FROM nastywords";
         
$result=db_query($sql);
         
$row=db_fetch_assoc($result);
         
$soapsearch=$row['words'];
         
$soapsearch=str_replace(array('a','l','i','e','t','o','s','k','c','*'),array('[a4@]','[l1!]','[li1!]','[e3]','[t7+]','[o0]','[sz$]','[kc]','[c(k]','([[:alnum:]]*)'),$soapsearch);
         
$start='\'(\s|\A)(`['.$appoencodekeys.'])*';
         
$end='(`['.$appoencodekeys.'])*([.,:;?!]|(\s|\Z))\'iU';
         
$soapsearch=str_replace(" ","$end $start"$soapsearch);
         
$soapsearch="$start".$soapsearch."$end";
         
$soapsearch=explode(" ",$soapsearch);
      }
      return 
preg_replace($soapsearch,"\\1`i$@#%`i\\2",$input);
   }else{
      return 
$input;
   }
}

function 
saveuser(){
   global 
$session,$dbqueriesthishit;
   if(
$session[loggedin] && $session[user][acctid]!=""){
      
$session[user][output]=$session[output];
      
$session[user][allowednavs]=serialize($session[allowednavs]);
      
$session[user][bufflist]=serialize($session[bufflist]);
      if(
is_array($session[user][prefs]))$session[user][prefs]=serialize($session[user][prefs]);
      if(
is_array($session[user][dragonpoints]))$session[user][dragonpoints]=serialize($session[user][dragonpoints]);
      
$sql="UPDATE accounts SET ";
      
reset($session[user]);
      while(list(
$key,$val)=each($session[user])){
         if(
is_array($val)){
            
$sql.="$key='".addslashes(serialize($val))."', ";
         }else{
            
$sql.="$key='".addslashes($val)."', ";
         }
      }
      
$sql substr($sql,0,strlen($sql)-2);
      
$sql.=" WHERE acctid = ".$session[user][acctid];
      
db_query($sql);
   }
}

function 
createstring($array){
   if(
is_array($array)){
      
reset($array);
      while(list(
$key,$val)=each($array)){
         
$output.=rawurlencoderawurlencode($key)."\"".rawurlencode($val) )."\"";
      }
      
$output=substr($output,0,strlen($output)-1);
   }
   return 
$output;
}

function 
createarray($string){
   
$arr1=explode("\"",$string);
   
$output=array();
   while(list(
$key,$val)=each($arr1)){
      
$arr2=explode("\"",rawurldecode($val));
      
$output[rawurldecode($arr2[0])] = rawurldecode($arr2[1]);
   }
   return 
$output;
}

function 
output_array($array,$prefix=""){
   while(list(
$key,$val)=@each($array)){
      
$output.=$prefix."[$key] = ";
      if(
is_array($val))$output.="array{\n".output_array($val,$prefix."[$key]")."\n}\n";
      else
$output.=$val."\n";
   }
   return 
$output;
}

function 
dump_item($item){
   
$output="";
   if(
is_array($item))$temp=$item;
   else
$temp=unserialize($item);
   if(
is_array($temp)){
      
$output.="array(" count($temp) . ") {<blockquote>";
      while(list(
$key$val) = @each($temp)){
         
$output.="'$key' = '" dump_item($val) . "'`n";
      }
      
$output .= "</blockquote>}";
   }else{
      
$output .= $item;
   }
   return 
$output;
}

function 
addnews($news){
   global 
$session;
   
$sql="INSERT INTO news(newstext,newsdate,accountid) VALUES ('".addslashes($news)."',NOW(),".$session[user][acctid].")";
   return 
db_query($sql) or die(db_error($link));
}

function 
checkday() {
   global 
$session,$revertsession,$REQUEST_URI;
   if(
$session['user']['loggedin']){
      
output("<!--CheckNewDay()-->",true);
      if(
is_new_day()){
         
$session=$revertsession;
         
$session[user][restorepage]=$REQUEST_URI;
         
$session[allowednavs]=array();
         
addnav("","newday.php");
         
redirect("newday.php");
      }
   }
}

function 
is_new_day(){
   global 
$session;
   
$t1=gametime();
   
$t2=convertgametime(strtotime($session[user][lasthit]));
   
$d1=date("Y-m-d",$t1);
   
$d2=date("Y-m-d",$t2);
   if (
$d1!=$d2) return true;
   else return 
false;
}

function 
getgamedate() {
   
$date=explode('-',getsetting('gamedate','0005-01-01'));
   
$find=array('%Y','%y','%m','%n','%d','%j');
   
$replace=array($date[0],sprintf('%02d',$date[0]%100),sprintf('%02d',$date[1]),(int)$date[1],sprintf('%02d',$date[2]),(int)$date[2]);
   return 
str_replace($find,$replace,getsetting('gamedateformat','%Y-%m-%d'));
}

function 
gametime(){
   
$time=convertgametime(strtotime(date("r")));
   return 
$time;
}

function 
convertgametime($intime){
   
$multi=getsetting("daysperday",4);
   
$offset=getsetting("gameoffsetseconds",0);
   
$fixtime=mktime(0,0,0-$offset,date("m")-$multi,date("d"),date("Y"));
   
$time=$multi*(strtotime(date("Y-m-d H:i:s",$intime))-$fixtime);
   
$time=strtotime(date("Y-m-d H:i:s",$time)."+".($multi*date("I",$intime))." hour");
   
$time=strtotime(date("Y-m-d H:i:s",$time)."-".date("I",$time). " hour");
   
$time=strtotime(date("Y-m-d H:i:s",$time)."+".(23-$multi)." hour");
   return 
$time;
}

function 
getgametime(){
$text='<span id="zeit1">.</span>
<script language="javascript" type="text/javascript">
var zeit1_id = document.getElementById("zeit1");
if(zeit1_id){window.setTimeout("act_zeit1()",1);}
function act_zeit1(){
   var gerade = new Date();
   var gamezeit = gerade.getHours()+":"+(gerade.getMinutes()<10?"0":"")+gerade.getMinutes();
   zeit1_id.innerHTML = gamezeit.replace(/ /g,"");
   window.setTimeout("act_zeit1()", 1000);
}</script>'
;
//   return date("g:i a",$time);
  
return $text;
}

function 
getmoon($typ='pic'){
   
/*------------------- Mondphasen, an-daingean.de ------------------/
   / "f" entspricht einer gewünschten Vollmondzeit (Zeitstempel)      /
   / "z" entspricht der Dauer in Sekunden eines Zyklus'               /
   / "v" entspricht die Anzahl der Sekunden, die die Mondphasen       /
   /      Vollmond, Halbmond und Neumond dauern                       /
   /------------------------ 2009 by Schizo -------------------------*/
   
$mond=array("f"=>1257189228,"z"=>2551380,"v"=>172800);
   
$zyklus=(time()-$mond[f])%$mond[z];
   while(
$zyklus<0){$zyklus+=$mond[z];}
   
$out="`^Du schaust gen Himmel und ";
   if(
$zyklus<$mond[v]/2){
     
$out.="erblickst einen wunderschönen Vollmond.";
     
$pic="<img src='images/mond/vollmond.gif' alt='(Vollmond)' title='Vollmond'>";
     
$wk=3;
   }
   elseif(
$zyklus<($mond[z]-$mond[v])/2){
     if(
$zyklus<($mond[z]/4-$mond[v]/4)){
       
$out.="siehst einen abnehmenden Mond.";
       
$pic="<img src='images/mond/dreiviertelmond2.gif' alt='(abnehmender Mond)' title='abnehmender Mond'>";
     }elseif(
$zyklus>($mond[z]/4+$mond[v]/4)){
       
$out.="siehst einen abnehmenden Mond.";
       
$pic="<img src='images/mond/viertelmond2.gif' alt='(abnehmender Mond)' title='abnehmender Mond'>";
     }else{
       
$out.="siehst einen abnehmenden Halbmond.";
       
$pic="<img src='images/mond/halbmond2.gif' alt='(Halbmond)' title='abnehmender Halbmond'>";
     }
     
$wk=-1*e_rand(0,1);
   }
   elseif(
$zyklus<($mond[z]+$mond[v])/2){
     
$out.="stellst fest, es ist Neumond.";
     
$pic="<img src='images/mond/neumond.gif' alt='(Neumond)' title='Neumond'>";
     
$wk=-2;
   }
   elseif(
$zyklus<$mond[z]-$mond[v]/2){
     if(
$zyklus<($mond[z]*3/4-$mond[v]/4)){
       
$out.="siehst einen zunehmenden Mond.";
       
$pic="<img src='images/mond/viertelmond.gif' alt='(zunehmender Mond)' title='zunehmender Mond'>";
     }elseif(
$zyklus>($mond[z]*3/4+$mond[v]/4)){
       
$out.="siehst einen zunehmenden Mond.";
       
$pic="<img src='images/mond/dreiviertelmond.gif' alt='(zunehmender Mond)' title='zunehmender Mond'>";
     }else{
       
$out.="siehst einen zunehmenden Halbmond.";
       
$pic="<img src='images/mond/halbmond.gif' alt='(Halbmond)' title='zunehmender Halbmond'>";
     }
     
$wk=e_rand(0,1);
   }
   else{
     
$out.="erblickst einen wunderschönen Vollmond.";
     
$pic="<img src='images/mond/vollmond.gif' alt='(Vollmond)' title='Vollmond'>";
     
$wk=3;
   }
   if(
$typ=='text')output($out);
   elseif(
$typ=='pic'output($pic,true);
   elseif(
$typ=='wk') return $wk;
}

function 
sql_error($sql){
   global 
$session;
   return 
output_array($session)."SQL = <pre>$sql</pre>".db_error(LINK);
}

function 
ordinal($val){
   
$exceptions=array(1=>"ten",2=>"ten",3=>"ten",11=>"ten",12=>"ten",13=>"ten");
   
$x=($val 100);
   if(isset(
$exceptions[$x]))return $val.$exceptions[$x];
   else{
      
$x=($val 10);
      if(isset(
$exceptions[$x]))return $val.$exceptions[$x];
      else return 
$val."ten";
   }
}

function 
dhms($secs,$dec=false){
   if(
$dec===false)$secs=round($secs,0);
   return (int)(
$secs/86400)."d".(int)($secs/3600%24)."h".(int)($secs/60%60)."m".($secs%60).($dec?substr($secs-(int)$secs,1):"")."s";
}

function 
getmount($horse=0) {
   
$sql="SELECT * FROM mounts WHERE mountid='$horse'";
   
$result db_query($sql);
   if(
db_num_rows($result)>0) return db_fetch_assoc($result);
   else return array();
}

function 
debuglog($message,$target=0){
   global 
$session;
   
$sql="DELETE from debuglog WHERE date <'".date("Y-m-d H:i:s",strtotime("-".(getsetting("expirecontent",180)/10)." days"))."'";
   
db_query($sql);
   
$sql="INSERT INTO debuglog VALUES(0,now(),{$session['user']['acctid']},$target,'".addslashes($message)."')";
   
db_query($sql);
}

function 
rpzelle(){ //by Schizo 2010
  
global $session;
  
$result=db_query("SELECT rpzelle FROM charadata WHERE acctid=".$session['user']['acctid']);
  if(
db_num_rows($result)==0)return false;
  
$row=db_fetch_assoc($result);
  
$zellen=unserialize($row['rpzelle']);
  if(!
is_array($zellen))return false;
  if(
count($zellen)==0)return false;
  if(!
preg_match("/in/",$row['rpzelle']))return false;
  return 
$zellen;
}

function 
soapnames($input){
  global 
$soapnamessearch,$titles,$races,$gods;
  if(!
is_array($soapnamessearch)){
         
$appoencodekeys='a-zA-Z0-9{}.,:;@!#%~&\(\)\[\]\^\$\*\+';
         
$sql="SELECT * FROM nastywords";
         
$result=db_query($sql);
         
$row=db_fetch_assoc($result);
         
$soapnamessearch=$row['names'];
         
$soapnamessearch=str_replace(array('a','l','i','e','t','o','s','c','k','*'),array('[a4@]','[l1!]','[li1!]','[e3]','[t7+]','[o0]','[sz$]','[c(k]','[kc]','([[:alnum:]]*)'),$soapnamessearch);
         
$start='\'(\s|\A)(`['.$appoencodekeys.'])*';
         
$end='(`['.$appoencodekeys.'])*([.,:;?!]|(\s|\Z))\'iU';
         
$soapnamessearch=str_replace(" ","$end $start"$soapnamessearch);
         
$soapnamessearch="$start".$soapnamessearch."$end";
         
$soapnamessearch=explode(" ",$soapnamessearch);
  }
  
$input=str_replace(array('.',',',"'",' ','_','-'),'',$input);
  
$output=preg_replace($soapnamessearch,"",$input);
  foreach(
$titles AS $titel){
    
$output=str_replace(cutappoencode($titel[0]),'',$output);
    
$output=str_replace(cutappoencode($titel[1]),'',$output);
  }
  foreach(
$races AS $race){
    
$output=str_replace(cutappoencode($race),'',$output);
  }
  foreach(
$gods AS $god){
    
$output=str_replace(cutappoencode($god),'',$output);
  }
  if(
$input<>$output)return 0;
  return 
1;
}

//END FUNCTIONS

if(file_exists("dbconnect.php")){
   require_once 
"dbconnect.php";
}else{
   echo 
"You must edit the file named \"dbconnect.php.dist,\" and provide the requested information, then save it as \"dbconnect.php\"".
   exit();
}
$link db_pconnect($DB_HOST$DB_USER$DB_PASS) or die (db_error($link));
db_select_db ($DB_NAME) or die (db_error($link));
define("LINK",$link);
$appoencode Load_Tags();
$appoencode_str Get_Allowed_Tags();
require_once 
"translator.php";
if(!
$_COOKIE[vital]){setcookie("vital","v1:1::v2:1::v3:1",time()+1000*60*60*24*7);}
session_register("session");
function 
register_global(&$var){
   @
reset($var);
   while(list(
$key,$val)=@each($var)){
      global $
$key;
      $
$key $val;
   }
   @
reset($var);
}
$session =& $_SESSION['session'];
register_global($_SERVER);
if(
strtotime("-".getsetting("LOGINTIMEOUT",900)." seconds") > $session['lasthit'] && $session['lasthit']>&& $session[loggedin]){
   
$session=array();
   
$session['message'].="`nDeine Session ist abgelaufen!`n";
}
$session[lasthit]=strtotime("now");
$revertsession=$session;
if(
$PATH_INFO!=""){
   
$SCRIPT_NAME=$PATH_INFO;
   
$REQUEST_URI="";
}
if(
$REQUEST_URI==""){  //necessary for some IIS installations (CGI in particular)
   
if(is_array($_GET) && count($_GET)>0){
      
$REQUEST_URI=$SCRIPT_NAME."?";
      
reset($_GET);
      
$i=0;
      while(list(
$key,$val)=each($_GET)){
         if(
$i>0)$REQUEST_URI.="&";
         
$REQUEST_URI.="$key=".URLEncode($val);
         
$i++;
      }
   }else 
$REQUEST_URI=$SCRIPT_NAME;
   
$_SERVER['REQUEST_URI'] = $REQUEST_URI;
}
$SCRIPT_NAME=substr($SCRIPT_NAME,strrpos($SCRIPT_NAME,"/")+1);
if (
strpos($REQUEST_URI,"?")) $REQUEST_URI=$SCRIPT_NAME.substr($REQUEST_URI,strpos($REQUEST_URI,"?"));
else 
$REQUEST_URI=$SCRIPT_NAME;

$allowanonymous=array("index.php"=>true,"vote.php"=>true,"login.php"=>true,"create.php"=>true,"about.php"=>true,"list.php"=>true,"petition.php"=>true,"connector.php"=>true,"logdnet.php"=>true,"referral.php"=>true,"news.php"=>true,"motd.php"=>true,"topwebvote.php"=>true,"source.php"=>true);
$allownonnav = array("badnav.php"=>true,"motd.php"=>true,"petition.php"=>true,"mail.php"=>true,"topwebvote.php"=>true,"chat.php"=>