LoGD Standardrelease steht hier zum Download zur Verfügung!

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

<?php
//
// ----------------------------------------------------------------------------
//
// Clans/Guilds Pages: guildclanfuncs.php
// CR#Dasher#004
// 25th March 2004
// Version: 0.98 beta
// The latest version is always runnning at: www.sembrance.uni.cc/rpg
// (c) Dasher [david.ashwood@inspiredthinking.co.uk] 2004
// This module is relased under the LOTGD GNU public license
// You may change/modify this module and it's associated modules as you wish but
// this copyright MUST be retained.
//
// I would apprechiate feedback/updates on how it works and changes you make.
// Dasher
//
// ----------------------------------------------------------------------------
// Changes by Gargamel
// - quite a lot of functions are grouped and moved to separate files, which
//   must be available in a lib "./guilds"
// - Introducing a bunch of variables for all central expressions in the mod.
//   Should be used for easy translation and adjustment of the current names.
// - weapons and armor can now be defined in guilds and clans up to a maximum
//   of 100 each. Basically 10 are available. Increase that number, if needed.
// - if any text of the application form is zensored by badwords, the respetive
//   phrase is show as §$%&. So the applicant gets a clear indication what has
//   been wrong.
// - increased number of possible benefits from sitepoints.
//   - buy your house cheaper, if discount is granted by sitepoints
//   - buy and feed your mount with discount
// - Guilds and Clans fully separated. This has lead to some new functions
//   having "_guild" or "_clan" in their name.
//   (funcs based upon original code of Dasher!)
// - Guilds and Clans can now be listed on one page in respective sections.
//
// ToDO:
// - PvP Purchase Discount option with sitepoints for guilds and/or clans
//
// Install instruction:
// - copy this file into your LOGD main folder.
//
// Contact Gargamel:
// eMail: gargamel@rabenthal.de or gargamel@silienta-logd.de
// Forum: Gargi at dragonprime
// ----------------------------------------------------------------------------
//
require_once "common.php";
// guilds function lib
require_once "guilds/armoreditor.php";
require_once
"guilds/cellar.php";
require_once
"guilds/clannav.php";
require_once
"guilds/clanmembers.php";
require_once
"guilds/guildmembers.php";
require_once
"guilds/guildnav.php";
require_once
"guilds/hofs.php";
require_once
"guilds/mailing.php";
require_once
"guilds/nav.php";
require_once
"guilds/ranks.php";
require_once
"guilds/shops.php";
require_once
"guilds/sitepoints.php";
require_once
"guilds/tent.php";
require_once
"guilds/weaponeditor.php";
require_once
"guilds/cgkasse.php";
require_once
"guilds/trophy.php";

// Setting for the guilds/clans - when not set in the settings table
// Purchase cost
$GuildPurchaseCostGems=200;
$GuildPurchaseCostGold=90000;
$ClanPurchaseCostGems=75;
$ClanPurchaseCostGold=45000;
// Default gold cost for weapon/armour upgrade per lvl
$DefaultWeaponUpgrade=500;
$DefaultArmourUpgrade=500;
// Ratio of the healing cost for guilds
$HealingGuildDiscount=0.95; // Changed to be 0.95 from 0.75, now that the SitePoints can be spent

// Used for the Nav Management system
$NavSystem=array();

// other variables  by gargamel
// make them global within every used function
   // name of key roles
   
$GuildLeader = "Gilden-Vorsitz";
   
$HeadOfWar = "Befehlshaber im Kampf";
   
$HeadOfMembership = "Mitgliederverwaltung";
   
$ClanLeader = "Clanführer";
   
$vacant = "Nicht besetzt";
   
// name of management actions
   // global $demote, $banish, $addtoHitlist, $assignRank, $Stipend, $promote, $revoke;
   
$demote="Entlassung";
   
$banish="Bann";
   
$addtoHitlist="Hitliste";
   
$assignRank="Rangvergabe";
   
$Stipend="Besoldung";
   
$surprise="Geschenk";
   
$promote="Beförderung";
   
$revoke="Rauswurf";
   
// name of other actions
   
$Edit="bearbeiten";
   
$Remove="löschen";
   
// name of site points spending categories
   
$SPnames=array(
         
"Titel99"          =>"noch nicht umgesetzt",
         
"Titel1"          =>"Aktuelle Leistungen der Gilde",
         
"Titel2"          =>"Aktuelle Verpflichtungen an die Gilde",
         
"Titel3"          =>"Aktuelle Leistungen des Clans",
         
"Titel4"          =>"Aktuelle Verpflichtungen an den Clan",
         
"Banking Interest"        =>"garantierter Mindest-Zinssatz der Bank",
         
"Percent Earned from FF"  =>"Gold-Tribut aus Waldkämpfen",
         
"Percent Earned from PvP" =>"Gold-Tribut aus PvP-Kämpfen",
         
"Healing Discount"        =>"Vergünstigung beim Heiler",
         
"Training Discount"       =>"Erfahrungsbonus im Trainingsraum",
         
"PvP Purchase Discount"   =>"PvP Purchase Discount",
         
"Gem Discount"            =>"Rabatt beim Edelsteinkauf",
         
"Potion Discount"         =>"Rabatt auf Heiltränke",
         
"Weapon Purchase Discount"=>"Rabatt bei Waffenkauf und -verbesserung",
         
"Armor Purchase Discount" =>"Rabatt bei Rüstungskauf und -verbesserung",
         
"house" =>"Rabatt bei Häusern",
         
"mount" =>"Rabatt bei Tieren"
         
);
   
//some configuration
   
$maxarmornum = 10;   // max number of allowed guild armors
   
$maxweaponnum = 10;  // max number of allowed guild weapons
// end variables by gargamel


function CalcInterestEarned($guildID) {

global
$session;
$ThisGuild=&$session['guilds'][$guildID];
$current = mktime(0,0,0,date("m"),date("d"),date("Y"));
$interest=0;

if (isset(
$ThisGuild['PercentOfFightsEarned']['last-interest'])) {
    
$prev=$ThisGuild['PercentOfFightsEarned']['last-interest'];
    
$daycount=intval(($current-$prev)/(60*60*24));
    if (
$daycount>0) {
     if (isset(
$ThisGuild['PercentOfFightsEarned']['Bank'])) {
        for (
$i=$daycount;$i>0;$i--) {
            
$interest+=$ThisGuild['gold']*($ThisGuild['PercentOfFightsEarned']['Bank']/100);
        }
        
$ThisGuild['gold']+=$interest;
     }
    }
}
$ThisGuild['PercentOfFightsEarned']['last-interest']=$current;
update_guild_info($ThisGuild);
return
$interest;
}

function
PromoteMember($guildID) {

// Promote member to the management team
global $GuildLeader, $HeadOfWar, $HeadOfMembership;
global
$HTTP_GET_VARS, $_POST, $session;
$stage=$HTTP_GET_VARS['stage'];

switch (
$stage) {
    case
"2":
        
$who=$_POST['who'];
        
$ThisGuild=&$session['guilds'][$guildID];
        if(
$ThisGuild['GuildLeader'] <> $session[user][acctid]) {
            
output("Beförderungen darf nur der Gildenführer vornehmen!!");
        } else if (
$who!="") {
            
$toPosition=$_POST['sections'];
            switch (
$toPosition) {
                case
"leader":
                    
$ThisGuild['GuildLeader']=$who;
                break;
                case
"how":
                    
$ThisGuild['HeadOfWar']=$who;
                break;
                case
"hom":
                    
$ThisGuild['HeadOfMembership']=$who;
                break;
            }
            
update_guild_info($ThisGuild);
            
output("Das Mitglied wurde befördert!!!");
        } else {
            
output("Du musst erst jemanden auswählen!!");
        }
    break;

    default:
        
$who=$HTTP_GET_VARS['who'];
        
$return=CalcReturnPath();
        if (isset(
$who)) {
             
output("<form action='".$return."&stage=2' method='POST'>",true);
             
addnav("",$return."&stage=2");
             
output("`n`nBeförderung zum Rang: ");
             
output("<input type='hidden' name='who' value='".$who."'/>",true);
             
// Promote member to the management team
             
output("`n`nBeförderung zum: ");
             
// Display a list of ranks in a drop down box that the member can be promoted to.
             
output("<SELECT NAME=sections >",true);
             
output("<OPTION value=leader>".$GuildLeader."</OPTION>",true);
             
output("<OPTION value=how>".$HeadOfWar."</OPTION>",true);
             
output("<OPTION value=hom>".$HeadOfMembership."</OPTION>",true);
             
output("</SELECT>",true);
             
output("<script language='javascript'>document.getElementById('sections').focus();</script>",true);
             
output("`n<input type='submit' class='button' value='Speichern'/>",true);
             
output("</form>",true);
        } else {
            
// Nobody has been selected at all!
            
output("Es wurde niemand ausgewählt!");
            return;
        }
    break;
}
}

function
DemoteMember($guildID, $who) {

// Remove member from the management team
global $GuildLeader, $HeadOfWar, $HeadOfMembership;
global
$HTTP_GET_VARS, $_POST, $session;

if (
$who!="") {
    
$ThisGuild=&$session['guilds'][$guildID];
    if(
$ThisGuild['GuildLeader'] <> $session[user][acctid]) {
        
output("Nur der Gildenleiter darf Degradierungen durchführen!");
    } else if(
$ThisGuild['HeadOfWar'] == $who) {
        
$ThisGuild['HeadOfWar'] = "";
        
output("Das Mitglied wurde degradiert!!!");
        
update_guild_info($ThisGuild);
    } else if (
$ThisGuild['HeadOfMembership'] == $who) {
        
$ThisGuild['HeadOfMembership'] = "";
        
output("Das Mitglied wurde degradiert!!!");
        
update_guild_info($ThisGuild);
    } else {
        
output("Die Gildenleitung kann nicht entlassen werden!");
    }
}
}

function
ChangeLeader($clanID) {
    global
$session, $HTTP_GET_VARS;

    
$stage=$HTTP_GET_VARS['stage'];
    
$ThisGuild=&$session['guilds'][$clanID];
    
    switch (
$stage) {
            default:
                
output("`6`bÄnderung der Clanführung`b:`n");
                
                if (
$ThisGuild['GuildLeader'] == $session['user']['acctid']) {
                    
output("Du, als Führer dieses Clans hast die Möglichkeit ein anderes Clanmitglied zum Clanoberhaupt zu bestimmen!");
                    
output("Bedenke jedoch, dass du danach nicht mehr der Anführer dieses Clans bist!");
                    
                    
$members=FindClanMembers($clanID, true, false);
                    
$MemberCount=count($members);
                    
                     if (
$MemberCount==0) {
                          
output("`n`n`i Es sind keine Mitglieder registriert!`i");
                            
output("`n`n");
                       } else {
                            
output("`n`n`&Es ".(($MemberCount==1)?"ist":"sind")." ".$MemberCount." ehrenwerte" .(($MemberCount==1)?"r":"")." Krieger Mitglied des Clans`n`n");
                            
output("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999' align='center'>",true);

                             
output("<tr class='trhead'>
                            <td>`bBio`b</td>
                               <td>`bOption`b</td>
                            <td>`bRang`b</td>
                            <td>`bName`b</td>
                            <td>`bDK`b</td>
                            <td>`bLevel`b</td>
                            <td>`bzuletzt Online`b</td>
                            </tr>"
,true);
                                
                        
$i=0;        
                        foreach (
$members as $ThisMember){
                            
$loggedin=(date("U") - strtotime($ThisMember['laston']) < getsetting("LOGINTIMEOUT",900) && $ThisMember['loggedin']);
                            
$laston=round((strtotime(date("r"))-strtotime($ThisMember['laston'])) / 86400,0)." Tage";
                            if (
substr($laston,0,2)=="1 ") $laston="1 Tag";
                            if (
date("Y-m-d",strtotime($ThisMember['laston'])) == date("Y-m-d")) $laston="Heute";
                            if (
date("Y-m-d",strtotime($ThisMember['laston'])) == date("Y-m-d",strtotime(date("r")."-1 day"))) $laston="Gestern";
                            if (
$loggedin) $laston="Jetzt";
                            
                              
output("<tr class='".($i%2?"trlight":"trdark")."'><td><a href=\"bio.php?char=".rawurlencode($ThisMember['login'])."&ret=".URLEncode($_SERVER['REQUEST_URI'])."\">
                            <img src='images/head.gif' width='16' height='16' alt='Bio lesen' border='0'></a>`0</td><td>"
.
                                
"<a href='clan.php?op=manage&action=clanleader&id=".$clanID."&stage=2&who=".$ThisMember['acctid']."'>[Befördern]&nbsp;</a>".
                            
"</td><td>".$ThisMember['displaytitle']."</td><td>".$ThisMember['name']."</td>".
                            
"<td>".$ThisMember['dragonkills']."</td><td>".$ThisMember['level']."</td><td>".$laston."</td></tr>",true);
                            
addnav("","clan.php?op=manage&action=clanleader&id=".$clanID."&stage=2&who=".$ThisMember['acctid']);
                            
addnav("","bio.php?char=".rawurlencode($ThisMember['login'])."&ret=".URLEncode($_SERVER['REQUEST_URI'])."");
                            
$i++;
                       }
                       
output("</TABLE>`n",true);
                     }
                    
                } else {
                    
output("Aus irgendwelchen Gründen solltest Du nicht hier sein! Verschwinde also!");
                }

            break;

            case
"2":
            
$who = $HTTP_GET_VARS['who'];
            
$sql="SELECT name FROM accounts WHERE acctid = '".$who."'";
            
$result=db_query($sql);
            
$member=db_fetch_assoc($result);
            
output("`2Bist du dir sicher, dass `^" . $member['name'] . " `2das neue Clanoberhaupt sein soll?`n");
            
output("Mit einem Klick auf 'Ja' wird die Änderung unwiderruflich durchgeführt!`n`n");
            
output("<a href='clan.php?op=manage&action=clanleader&id=".$clanID."&stage=3&who=".$who."'>`N Ja!!!</a>", true);
            
output("`n`n`2Falls du dir unsicher bist, oder deine Entscheidung überdenken willst, dann verlasse diesen Ort am besten!");
            
addnav("","clan.php?op=manage&action=clanleader&id=".$clanID."&stage=3&who=".$who);
            
            break;
            
            case
"3":
            
$who = $HTTP_GET_VARS['who'];
            
$sql="SELECT name FROM accounts WHERE acctid = '".$who."'";
            
$result=db_query($sql);
            
$member=db_fetch_assoc($result);
            
$ThisGuild['GuildLeader'] = $who;
            
output("`2Die Änderung wurde durchgeführt! `^" . $member['name'] . " `2 ist nun der neue Anführer des Clans!`n");
            
systemmail($who,"`2Clanoberhaupt!`2",$session['user']['name'] . " `2hat entschieden, dass du das neue Clanoberhaupt des Clans " . $ThisGuild['Name'] . " `2sein sollst. Herzlichen Glückwunsch, auf dass du immer gerecht deines Amtes walten mögest!");
            
update_guild_info($ThisGuild);
            
header("Refresh: 3; URL=clan.php?op=member&action=enter&id=".$clanID);
            
addnav("","clan.php?op=member&action=enter&id=".$clanID);
            break;
    }

}

function
PayMember($guildID, $who) {

// Pay a member a some gold/gems from the guild funds

    
global $session, $HTTP_GET_VARS;
    
$stage=$HTTP_GET_VARS['stage'];
    
$ThisGuild=&$session['guilds'][$guildID];
    if (
$who<>$session[user][acctid]){
    
$MemberName = ListToNames($who, false);
   }else{
      
$MemberName = $session[user][name];
   }
    
$sqla="SELECT goldafterdk, dragonkills, level, guildtransfer, cg_spendgold FROM accounts WHERE acctid = ".$who."";
    
$resulta=db_query($sqla);
    
$rowa=db_fetch_assoc($resulta);
    
$gadk=$rowa[goldafterdk];
    
//$maxgadk =   2000 - ($gadk + ($rowa[dragonkills]*50)); //Gold wieviel maximal nach einem DK ausgezahlt wird
    //$maxgadk =   4000 - ($rowa[dragonkills]*50);
    
$maxgadk = getsetting("maxgadk",2500);
    if (
$rowa[cg_spendgold] >= 150000) {
        
$maxgadk = $maxgadk * 2;
    }

    
$maxtfer= $rowa[level]*getsetting("transferperlevel",25)*getsetting("transferreceive",3); // maximale Goldüberweisung pro Tag
    
$transfertoday = $rowa[guildtransfer]; //heute schon Überweisung erhalten?
    
    
switch ($stage) {
            default:
// Transfer Sequence
                
if (($ThisGuild['gold']<=0) and ($ThisGuild['gems'])) {
                    
output("`6Der kleine Finanzgnom teilt Dir mit, dass er die
                    Transaktion für einen Schuldner nicht durchführen wird."
);
                    return;
                }
                
output("`6`bTransfer an Mitglied`b:`n");
                
output("Übertrage Gold oder Edelsteine an Dein Mitglied `^".$MemberName."`0",true);
                
output("`n`6Du kannst pro Tag nur eine Überweisung, von maximal `^$maxtfer`6 Gold an dieses Mitglied durchführen`6!");
                
output("`n`6Beachte, dass du diesem Mitglied maximal `^$maxgadk`6 Gold nach einem Drachenkill gewähren kannst`6!");
                
// Unlimited transfer
                
$return=CalcReturnPath();
                
output("<form action='".$return."&who=".$who."&stage=2' method='POST'>",true);
                if (
$ThisGuild['gold']>0) output("<input type=radio name='type' value='gold' checked> Gold<br>",true);
                if (
$ThisGuild['gems']>0) output("<input type=radio name='type' value='gems'> Edelsteine<br>",true);
                
output("wie<u>v</u>iel übertragen: <input name='amount' id='amount' accesskey='v' width='5'>`n",true);
                
output("wiev<u>i</u>el Gold nach DK übertragen: <input name='amountday' id='amountday' value ='".$gadk."' accesskey='i' width='5'>`n",true);
                
output("`n<input type='submit' class='button' value='übertragen'></form>",true);
                
output("<script language='javascript'>document.getElementById('amount').focus();</script>",true);
                
addnav("",$return."&who=".$who."&stage=2");
            break;

            case
"2":
                
$amt = abs((int)$_POST['amount']);
                
$amtmon = abs((int)$_POST['amountday']);
                
$type = $_POST['type'];
                
output("`&`bStatus der Übertragung:`b`n`0");
                switch (
$type) {
                    case
"gold":
                        if(
$transfertoday > 0) {
                            
output("`6Dieses Mitglied hat heute schon eine Überweisung erhalten`6!");
                        } else if(
$amt>$maxtfer){
                            
output("`6Du kannst maximal `^$maxtfer`6 Gold an dieses Mitglied pro Tag überweisen`6!");
                        } else if (
$ThisGuild['gold']<$amt){
                            
output("`6Wie willst Du `^$amt`6 Gold übertragen, wenn Du nur `^".($ThisGuild['gold'])." `6Gold in der Schatztruhe hast?`6?");
                        } else if (
$amtmon > $maxgadk) {
                            
output("`6Du kannst maximal `^$maxgadk`6 Gold nach einem Drachenkill an dieses Mitglied übertragen`6!");
                        }else{
                            
debuglog(" `&from the ".$ThisGuild['Name']." transferred ".$amt." gold to ".$MemberName,$who);
                            
$ThisGuild['gold']-=$amt;
                            if (
$who==$session[user][acctid]){
                                
$session[user][gold]+=$amt;
                                
$session['user']['cg_getgold']+=$amt;
                                
// Überweisung heute getätigt
                                
if($amt > 0){
                                    
$comment="/me zahlt sich selbst `^".$amt." `&Goldstücke aus";
                                    
$session[user][guildtransfer] = 1;
                                }
                                
set_special_var("goldafterdk","".$amtmon."","0",$who,$session[user][acctid]," ");
                            }else{
                                if(
$amt > 0){
                                    
$comment="/me überweist `^".$amt." `&Goldstücke an `^".$MemberName;
                                       
$sql= "update accounts set guildtransfer=1 where acctid=".$who;
                                      
db_query($sql);
                                }
                                
set_special_var("goldinbank","".$amt."","0",$who,$session[user][acctid],"Überweisung: ".$session[user][name]." hat Dir ".$amt." ClanGold überwiesen.");
                                
set_special_var("goldafterdk","".$amtmon."","0",$who,$session[user][acctid]," ");
                                
set_special_var("getgold","".$amt."","0",$who,$session[user][acctid]," ");
                            }
                            
update_guild_info($ThisGuild);
                            
output("`6Übertrag erfolgreich angeschlossen!");
                        }
                    break;
                    case
"gems":
                        if (
$ThisGuild['gems']<$amt){
                            
output("`6Wie willst Du `%$amt`6 Edelsteine übertragen, wenn Du nur ".($ThisGuild['gems'])." Edelsteine in der Schatztruhe hast?`6?");
                        }else{
                            
debuglog("`& from the ".$ThisGuild['Name']." transferred ".$amt." gems to ".$MemberName,$who);
                            
$ThisGuild['gems']-=$amt;
                            if (
$who==$session[user][acctid]){
                               
$comment="/me zahlt sich selbst `^".$amt." `&Edelsteine aus";
                               
$session[user][gems]+=$amt;
                               
$session[user][cg_getgems]+=$amt;
                            }else{
                            
//$sql= "update accounts set gems=gems+".$amt." where acctid=".$who;
                            //db_query($sql);
                                
$comment="/me überweist `^".$amt." `&Edelsteine an `^".$MemberName;
                                
set_special_var("gems","".$amt."","0",$who,$session[user][acctid],"Überweisung: ".$session[user][name]." hat Dir ".$amt." Clan Edelsteine zugesteckt");
                                
set_special_var("getgems","".$amt."","0",$who,$session[user][acctid]," ");
                           }
                            
update_guild_info($ThisGuild);
                            
output("`6Übertrag erfolgreich angeschlossen!");
                        }

                    break;
                }
                if(
$comment != ""){
                    
$sql="INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'GuildPay-".$ThisGuild['ID']."',".$session[user][acctid].",'".$comment."')";
                      
db_query($sql)or die(db_error(LINK));
                    break;
                }
            }

}


function
transfer_cash_guild($guildID, $stage=0) {

// Allows members to donate to the guild/clan

    
global $session, $HTTP_GET_VARS, $_POST;
    
$stage=$HTTP_GET_VARS['stage'];

    
$ThisGuild=&$session['guilds'][$guildID];
    switch (
$stage) {
             default:
// Transfer Sequence
                
output("`&`bTribut zahlen`b:`n`0");
                if (
$session['user']['goldinbank']>=0){
                
$maxout = $session[user][level]*getsetting("maxtransferout",25);
                    
$transleft = $maxout - $session[user][amountouttoday];
            if (
$transleft <= 0){
                
output("`&Du hast heute bereits Dein Einzahlungslimit im Spiel überschritten.");
            }else{
                            
output("`0Hier kannst Du `^Gold `0or `%Edelsteine `0an die Gilde `3".$ThisGuild['Name']."`0 übertragen.");
                            
// Unlimited transfer
                            
$return=CalcReturnPath(true);
                            
output("<form action='".$return."&stage=2' method='POST'>",true);
                            
output("<input type=radio name='type' value='gold' checked> `^Gold`0<br>",true);
                            
output("<input type=radio name='type' value='gems'> `%Edelsteine`0<br>",true);
                            
output("`0Wieviel übertragen: <input name='amount' id='amount' accesskey='h' width='5'>`n",true);
                            
output("`n<input type='submit' class='button' value='Übertrag'></form>",true);
                            
output("<script language='javascript'>document.getElementById('amount').focus();</script>",true);
                            
addnav("",$return."&stage=2");
            }
                }else{
                    
output("`&Ein Übertrag an die Gilde ist für verschuldete Mitglieder nicht möglich!");
                }
                break;

            case
"2":
                
$amt = abs((int)$_POST['amount']);
                
$type = $_POST['type'];
                
output("`&`bStatus der Übertragung:`b`n`0");
                switch (
$type) {
                    case
"gold":
                
$maxout = $session[user][level]*getsetting("maxtransferout",25);
                    
$transleft = $maxout - $session[user][amountouttoday];
                        if (
$session['user']['gold']+$session['user']['goldinbank']<$amt){
                            
output("`6Übertrag unmöglich!`n
                            Wie willst Du der Gilde `^$amt`6 Gold übertragen, wenn Du nur "
.($session['user']['gold']+$session['user']['goldinbank'])." Gold besitzt`6?");
            }else if (
$amt > $transleft){
                
output("`6Soviel Gold darfst Du heute nicht mehr übertragen. `n
                    Insgesamt darfst Du heute nur noch "
.$transleft." Gold im Spiel übertragen.");
                        }else{
                            
debuglog($session['user']['Name']."transferred ".$amt." gold to ".$ThisGuild['Name']);
                            
$session['user']['gold']-=$amt;
                            if (
$session['user']['gold']<0){ //withdraw in case they don't have enough on hand.
                                
$session['user']['goldinbank']+=$session['user']['gold'];
                                
$session['user']['gold']=0;
                            }
                            
$session['user']['amountouttoday']+= $amt;
                            
$ThisGuild['gold']+=$amt;
                            
$session['user']['cg_spendgold']+=$amt;
                            
//update_guild_info($ThisGuild);
                
set_clanguild_var("addguildgold","".$amt."","0",$session[user][acctid],$guildID,"Donation Gold");
                            
output("`n`&Du hast erfolgreich `^".$amt." `&Gold an die Gilde übertragen!");
                        }
                    break;
                    case
"gems":
                        if (
$session['user']['gems']+$session['user']['gemsinbank']<$amt){
                            
output("`6Übertrag unmöglich!`m
                            Wie willst du der Gilde `^$amt`6 Edelsteine übertragen, wenn Du nur "
.($session['user']['gems']+$session['user']['gemsinbank'])." Edelsteine besitzt`6?");
                        }else{
                            
debuglog($session['user']['Name']."transferred ".$amt." gems to ".$ThisGuild['Name']);
                            
$session['user']['gems']-=$amt;
                            
$session['user']['cg_spendgems']+=$amt;
                            if (
$session['user']['gems']<0){ //withdraw in case they don't have enough on hand.
                                
$session['user']['gemsinbank']+=$session['user']['gold'];
                                
$session['user']['gems']=0;
                            }
                            
$ThisGuild['gems']+=$amt;
                            
//update_guild_info($ThisGuild);
                
set_clanguild_var("addguildgems","".$amt."","0",$session[user][acctid],$guildID,"Donation Gems");
                            
output("`n`&Du hast erfolgreich  `%".$amt." `&Edelsteine an die Gilde übertragen!");
                        }

                    break;
                }
                break;
            }
}

function
transfer_cash_clan($guildID, $stage=0) {

// Allows members to donate to the guild/clan

    
global $session, $HTTP_GET_VARS, $_POST;
    
$stage=$HTTP_GET_VARS['stage'];

    
$ThisClan=&$session['guilds'][$guildID];
    switch (
$stage) {
             default:
// Transfer Sequence
                
output("`&`bTribut zahlen`b:`n`0");
                if (
$session['user']['goldinbank']>=0){
                
$maxout = $session[user][level]*getsetting("maxtransferout",25);
                    
$transleft = $maxout - $session[user][amountouttoday];
            if (
$transleft <= 0){
                
output("`&Du hast heute bereits Dein Einzahlungslimit im Spiel überschritten.");
            }else{
                            
output("`0Hier kannst Du `^Gold `0oder `%Edelsteine `0an den Clan `3".$ThisClan['Name']."`0 übertragen.");
                            
// Unlimited transfer
                            
$return=CalcReturnPath(true);
                            
output("<form action='".$return."&stage=2' method='POST'>",true);
                            
output("<input type=radio name='type' value='gold' checked> `^Gold`0<br>",true);
                            
output("<input type=radio name='type' value='gems'> `%Edelsteine`0<br>",true);
                            
output("`0Wieviel übertragen: <input name='amount' id='amount' accesskey='h' width='5'>`n",true);
                            
output("`n<input type='submit' class='button' value='Übertrag'></form>",true);
                            
output("<script language='javascript'>document.getElementById('amount').focus();</script>",true);
                            
addnav("",$return."&stage=2");
            }
                }else{
                    
output("`&Ein Übertrag an den Clan ist für verschuldete Mitglieder nicht möglich!");
                }
                break;

            case
"2":
                
$amt = abs((int)$_POST['amount']);
                
$type = $_POST['type'];
                
output("`&`bStatus der Übertragung:`b`n`0");
                switch (
$type) {
                    case
"gold":
                
$maxout = $session[user][level]*getsetting("maxtransferout",25);
                    
$transleft = $maxout - $session[user][amountouttoday];            
                        if (
$session['user']['gold']+$session['user']['goldinbank']<$amt){
                            
output("`6Übertrag unmöglich!`n
                            Wie willst Du dem Clan `^$amt`6 Gold übertragen, wenn Du nur "
.($session['user']['gold']+$session['user']['goldinbank'])." Gold besitzt`6?");
            }else if (
$amt > $transleft){
                
output("`6Soviel Gold darfst Du heute nicht mehr übertragen. `n
                    Insgesamt darfst Du heute nur noch "
.$transleft." Gold im Spiel übertragen.");
                        }else{
                            
debuglog($session['user']['Name']."transferred ".$amt." gold to ".$ThisClan['Name']);
                            
$session['user']['gold']-=$amt;
                            if (
$session['user']['gold']<0){ //withdraw in case they don't have enough on hand.
                                
$session['user']['goldinbank']+=$session['user']['gold'];
                                
$session['user']['gold']=0;
                            }
                            
$session['user']['amountouttoday']+= $amt;
                            
$ThisClan['gold']+=$amt;
                            
$session['user']['cg_spendgold']+=$amt;
                            
//update_guild_info($ThisClan); //handels Clans too
                
set_clanguild_var("addclangold","".$amt."","0",$session[user][acctid],$guildID,"Donation Gold");
                            
output("`n`&Du hast erfolgreich `^".$amt." `&Gold an den Clan übertragen!");
                        }
                    break;
                    case
"gems":
                        if (
$session['user']['gems']+$session['user']['gemsinbank']<$amt){
                            
output("`6Übertrag unmöglich!`m
                            Wie willst du dem Clan `^$amt`6 Edelsteine übertragen, wenn Du nur "
.($session['user']['gems']+$session['user']['gemsinbank'])." Edelsteine besitzt`6?");
                        }else{
                            
debuglog($session['user']['Name']."transferred ".$amt." gems to ".$ThisClan['Name']);
                            
$session['user']['gems']-=$amt;
                            
$session['user']['cg_spendgems']+=$amt;
                            if (
$session['user']['gems']<0){ //withdraw in case they don't have enough on hand.
                                
$session['user']['gemsinbank']+=$session['user']['gold'];
                                
$session['user']['gems']=0;
                            }
                            
$ThisClan['gems']+=$amt;
                            
//update_guild_info($ThisClan); //handels Clans too
                
set_clanguild_var("addclangems","".$amt."","0",$session[user][acctid],$guildID,"Donation Gems");
                            
output("`n`&Du hast erfolgreich  `%".$amt." `&Edelsteine an den Clan übertragen!");
                        }

                    break;
                }
                break;
            }
}

function
view_hitlist($guildID) {

// View the guild hitlist
// Won't display members of the guild/clan in the list of available members
global $session, $HTTP_GET_VARS;

    
$ThisGuild=&$session['guilds'][$guildID];
    
$HitListMembers=HitlistToNames($ThisGuild['Hitlist'], true);

    if (
count($HitListMembers)==0) {
        
output("`n`0Es ist momentan niemand auf die Hitliste gesetzt.`n`n");
    } else {
        
output("`nEs ".((count($HitListMembers)==1)?"ist":"sind")." momentan ".count($HitListMembers)." Mitglied".((Count($HitListMembers)==1)?"":"er")." auf der Hitliste:`n`n");
        
output("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999' align='center'>",true);
        
output("<tr class='trhead'>
                    <td>`bRang`b</td>
                    <td>`bName`b</td>
                    <td>`bKopfgeld`b</td>
                </tr>"
,true);
        
$return=CalcReturnPath(true);

        foreach (
$HitListMembers as $ThisName){
            
output("<tr class='".($i%2?"trlight":"trdark")."'>".
                
"<td>".($i+1)."</td><td>",true);
                
$link = "bio.php?char=".rawurlencode($ThisName['login']) . "&ret=".URLEncode($_SERVER['REQUEST_URI']);
                
output("<a href='".$link."'>",true);
                
addnav("",$link);
                
output($ThisName['name']);
                
output("</a>",true);
                
output("</td><td>`^".$ThisName['bounty']."`0 gp</td></tr>",true);

        }
        
output("</TABLE>`n",true);
    }
}

function
edit_hitlist($guildID) {

// Edit the guild hitlist
// Won't display members of the guild/clan in the list of available members
global $session, $HTTP_GET_VARS;
$stage=$HTTP_GET_VARS['stage'];
if (
$stage=="") $stage=0;

    
$ThisGuild=&$session['guilds'][$guildID];
    
$HitListMembers=HitlistToNames($ThisGuild['Hitlist'], true);

    if (
count($HitListMembers)==0) {
        
output("`n`0Es ist momentan niemand auf die Hitliste gesetzt.`n`n");
    } else {
        
output("`nEs ".((count($HitListMembers)==1)?"ist":"sind")." momentan ".count($HitListMembers)." Mitglied".((Count($HitListMembers)==1)?"":"er")." auf der Hitliste:`n`n");
        
output("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999' align='center'>",true);
        
output("<tr class='trhead'>
                    <td>`bOption`b</td>
                    <td>`bRang`b</td>
                    <td>`bName`b</td>
                    <td>`bKopfgeld`b</td>
                </tr>"
,true);
        
$return=CalcReturnPath(true);

        foreach (
$HitListMembers as $ThisName){
            
output("<tr class='".($i%2?"trlight":"trdark")."'><td>".
                
"<a href='".$return."&type=remove&id=".$guildID."&who=".$ThisName['acctid']."&stage=2'>löschen</a>".
                
"</td><td>".($i+1)."</td><td>",true);
                
$link = "bio.php?char=".rawurlencode($ThisName['login']) . "&ret=".URLEncode($_SERVER['REQUEST_URI']);
                
output("<a href='".$link."'>",true);
                
addnav("",$link);
                
output($ThisName['name']);
                
output("</a>",true);
                
output("</td><td>`^".$ThisName['bounty']."`0 gp</td></tr>",true);

            
addnav("",$return."&type=remove&id=".$guildID."&who=".$ThisName['acctid']."&stage=2");
        }
        
output("</TABLE>`n",true);
    }

    switch (
$stage) {
        case
"1":
            
// Display results
            
$searchname=$_POST['searchname'];
            
// Expand name with %
            
for ($x=0;$x<strlen($searchname);$x++){
                
//$search .= substr($searchname,$x,1)."__";
        
$search .= substr($searchname,$x,1)."%";
                }
            
$searchname="%".$search."%";
            if (!
is_array($ThisGuild['Hitlist'])) $ThisGuild['Hitlist']=array();
            
$exclusion=implode(",",array_keys($ThisGuild['Hitlist']));  // Remove people currently in the hitlist
            
$MyMembers=implode(",",array_keys(FindGuildMembers($guildID,true)));  // You cannot put a bounty on your own members
            
if ($exclusion!="") $exclusion.=",";  // Handles when the HitList is empty
            
$exclusion.= $MyMembers;    // Exclude guild members
            
if ($exclusion=="") {
                
// There is ALWAYS a member of the guild
                
output("This shouldn't happen - BUG!!!");
            }

            
$sql="select * from accounts where name like '%".$searchname."%' and acctid not in (".$exclusion.")";

            
$result=db_query($sql);
            
$rows=db_num_rows($result);
            if (
$rows==0) {
                
output("The Search didn't find any results!");
            } else {
                
output("Die Suche hat ".$rows." Krieger gefunden:`n`n");
                
output("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999' align='center'>",true);
                
output("<tr class='trhead'>
                            <td>Option</td><td>
                            <b>Lebt</b></td>
                            <td><b>Level</b></td>
                            <td><b>Name</b></td>
                            <td><b>Ort</b></td>
                            <td><b>Geschlecht</b></td>
                            <td><b>Kopfgeld</b></td>"
,true);
                
$return=CalcReturnPath(true);
                for(
$i=0;$i<$rows;$i++){
                    
$row = db_fetch_assoc($result);
                    
output("<tr class='".($i%2?"trdark":"trlight")."'><td>",true);
                    
output("<a href='".$return."&type=add&who=".$row['acctid']."&stage=2'>auf Hitliste setzen</a>",true);
                    
addnav("",$return."&type=add&who=".$row['acctid']."&stage=2");
                    
output("</td><td>",true);
                    
output($row['alive']?"`1Ja`0":"`4Nein`0");
                    
output("</td><td>",true);
                    
output("`^".$row['level']."`0");
                    
output("</td><td>",true);
                    
output("<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='Write Mail' border='0'></a>",true);
                    
$link = "bio.php?char=".rawurlencode($row[login]) . "&ret=".URLEncode($_SERVER['REQUEST_URI']);
                    
output("<a href='".$link."'>",true);
                    
addnav("",$link);

                    
output("`&".$row['name']."`0");
                    
output("</a>",true);
                    
output("</td><td>",true);
                    
$loggedin=(date("U") - strtotime($row['laston']) < getsetting("LOGINTIMEOUT",900) && $row['loggedin']);
                    
output($row['location']
                                ?
"`3Boar's Head Inn`0"
                                
:(
                                    
$loggedin
                                    
?"`#Online`0"
                                    
:"`3The Fields`0"
                                    
)
                            );
                    
output("</td><td>",true);
                    
output($row['sex']?"`!weiblich`0":"`!männlich`0");
                    
output("</td>",true);
                    
output("<td>`^".$row['bounty']."`0 Gold</td>",true);
                    
output("</tr>",true);
                }
                
output("</table>",true);

            }
        break;
        case
"2":
            
$type=$HTTP_GET_VARS['type'];
            
$who=$HTTP_GET_VARS['who'];
            switch (
$type) {
                case
"add":
                    
// Add them to HitList
                    
$ThisGuild['Hitlist'][$who]="";
                break;
                case
"remove":
                    
// Add them to HitList
                    
$HitList=&$ThisGuild['Hitlist'];
                    unset(
$HitList[$who]);
                break;
                default:
                    
output("Humm... Now how did we get here?");
                break;
            }

            
update_guild_info($ThisGuild);
            
redirect("guild.php?op=manage&action=hitlist&id=".$guildID."&stage=0");

        break;

        case
"0":
        default:
            
$return=CalcReturnPath();
            
output("`0<form action='".$return."&stage=1' method='POST'>",true);
            
output("`nWen suchst Du? <input name='searchname' size=50>",true);
            
output("<input type='submit' class='button' value='finden'>",true);
            
addnav("",$return."&stage=1");
        break;
    }
}

function
edit_hitlist_clan($guildID) {

// Edit the guild hitlist
// Won't display members of the guild/clan in the list of available members
global $session, $HTTP_GET_VARS;
$stage=$HTTP_GET_VARS['stage'];
if (
$stage=="") $stage=0;

    
$ThisGuild=&$session['guilds'][$guildID];
    
$HitListMembers=HitlistToNames($ThisGuild['Hitlist'], true);

    if (
count($HitListMembers)==0) {
        
output("`n`0Es ist momentan niemand auf die Hitliste gesetzt.`n`n");
    } else {
        
output("`nEs ".((count($HitListMembers)==1)?"ist":"sind")." momentan ".count($HitListMembers)." Mitglied".((Count($HitListMembers)==1)?"":"er")." auf der Hitliste:`n`n");
        
output("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999' align='center'>",true);
        
output("<tr class='trhead'>
                    <td>`bOption`b</td>
                    <td>`bRang`b</td>
                    <td>`bName`b</td>
                    <td>`bKopfgeld`b</td>
                </tr>"
,true);
        
$return=CalcReturnPath(true);

        foreach (
$HitListMembers as $ThisName){
            
output("<tr class='".($i%2?"trlight":"trdark")."'><td>".
                
"<a href='".$return."&type=remove&id=".$guildID."&who=".$ThisName['acctid']."&stage=2'>löschen</a>".
                
"</td><td>".($i+1)."</td><td>",true);
                
$link = "bio.php?char=".rawurlencode($ThisName['login']) . "&ret=".URLEncode($_SERVER['REQUEST_URI']);
                
output("<a href='".$link."'>",true);
                
addnav("",$link);
                
output($ThisName['name']);
                
output("</a>",true);
                
output("</td><td>`^".$ThisName['bounty']."`0 gp</td></tr>",true);

            
addnav("",$return."&type=remove&id=".$guildID."&who=".$ThisName['acctid']."&stage=2");
        }
        
output("</TABLE>`n",true);
    }

    switch (
$stage) {
        case
"1":
            
// Display results
            
$searchname=$_POST['searchname'];
            
// Expand name with %
            
for ($x=0;$x<strlen($searchname);$x++){
                
//$search .= substr($searchname,$x,1)."__";
        
$search .= substr($searchname,$x,1)."%";
                }
            
$searchname="%".$search."%";
            if (!
is_array($ThisGuild['Hitlist'])) $ThisGuild['Hitlist']=array();
            
$exclusion=implode(",",array_keys($ThisGuild['Hitlist']));  // Remove people currently in the hitlist
            
$MyMembers=implode(",",array_keys(FindClanMembers($guildID,true)));  // You cannot put a bounty on your own members
            
if ($exclusion!="") $exclusion.=",";  // Handles when the HitList is empty
            
$exclusion.= $MyMembers;    // Exclude guild members
            
if ($exclusion=="") {
                
// There is ALWAYS a member of the guild
                
output("This shouldn't happen - BUG!!!");
            }

            
$sql="select * from accounts where name like '%".$searchname."%' and acctid not in (".$exclusion.")";

            
$result=db_query($sql);
            
$rows=db_num_rows($result);
            if (
$rows==0) {
                
output("The Search didn't find any results!");
            } else {
                
output("Die Suche hat ".$rows." Krieger gefunden:`n`n");
                
output("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999' align='center'>",true);
                
output("<tr class='trhead'>
                            <td>Option</td><td>
                            <b>Lebt</b></td>
                            <td><b>Level</b></td>
                            <td><b>Name</b></td>
                            <td><b>Ort</b></td>
                            <td><b>Geschlecht</b></td>
                            <td><b>Kopfgeld</b></td>"
,true);
                
$return=CalcReturnPath(true);
                for(
$i=0;$i<$rows;$i++){
                    
$row = db_fetch_assoc($result);
                    
output("<tr class='".($i%2?"trdark":"trlight")."'><td>",true);
                    
output("<a href='".$return."&type=add&who=".$row['acctid']."&stage=2'>auf Hitliste setzen</a>",true);
                    
addnav("",$return."&type=add&who=".$row['acctid']."&stage=2");
                    
output("</td><td>",true);
                    
output($row['alive']?"`1Ja`0":"`4Nein`0");
                    
output("</td><td>",true);
                    
output("`^".$row['level']."`0");
                    
output("</td><td>",true);
                    
output("<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='Write Mail' border='0'></a>",true);
                    
$link = "bio.php?char=".rawurlencode($row[login]) . "&ret=".URLEncode($_SERVER['REQUEST_URI']);
                    
output("<a href='".$link."'>",true);
                    
addnav("",$link);

                    
output("`&".$row['name']."`0");
                    
output("</a>",true);
                    
output("</td><td>",true);
                    
$loggedin=(date("U") - strtotime($row['laston']) < getsetting("LOGINTIMEOUT",900) && $row['loggedin']);
                    
output($row['location']
                                ?
"`3Boar's Head Inn`0"
                                
:(
                                    
$loggedin
                                    
?"`#Online`0"
                                    
:"`3The Fields`0"
                                    
)
                            );
                    
output("</td><td>",true);
                    
output($row['sex']?"`!weiblich`0":"`!männlich`0");
                    
output("</td>",true);
                    
output("<td>`^".$row['bounty']."`0 Gold</td>",true);
                    
output("</tr>",true);
                }
                
output("</table>",true);

            }
        break;
        case
"2":
            
$type=$HTTP_GET_VARS['type'];
            
$who=$HTTP_GET_VARS['who'];
            switch (
$type) {
                case
"add":
                    
// Add them to HitList
                    
$ThisGuild['Hitlist'][$who]="";
                break;
                case
"remove":
                    
// Add them to HitList
                    
$HitList=&$ThisGuild['Hitlist'];
                    unset(
$HitList[$who]);
                break;
                default:
                    
output("Humm... Now how did we get here?");
                break;
            }

            
update_guild_info($ThisGuild);
            
redirect("clan.php?op=manage&action=hitlist&id=".$guildID."&stage=0");

        break;

        case
"0":
        default:
            
$return=CalcReturnPath();
            
output("`0<form action='".$return."&stage=1' method='POST'>",true);
            
output("`nWen suchst Du? <input name='searchname' size=50>",true);
            
output("<input type='submit' class='button' value='finden'>",true);
            
addnav("",$return."&stage=1");
        break;
    }
}

function
display_guild_intro($guildname) {
output("`n`%Informationen der Gilde");
}

function
ManagementTeam($guildID, $IncludeNames=false) {

// Return the management team (acctid's)
// Guilds have 3 members
// Clans have 1 member
// The keys of the returned array are the table display headings

global $session;
$ThisGuild=&$session['guilds'][$guildID];

global
$GuildLeader, $HeadOfWar, $HeadOfMembership, $ClanLeader;

    if (
$ThisGuild['IsGuild']==1) {
        
$mgmt=array();
        
$mgmt[$GuildLeader]=$ThisGuild['GuildLeader'];
        
$mgmt[$HeadOfWar]=$ThisGuild['HeadOfWar'];
        
$mgmt[$HeadOfMembership]=$ThisGuild['HeadOfMembership'];
    } else {
        
$mgmt=array();
        
$mgmt[$ClanLeader]=$ThisGuild['GuildLeader'];
    }

    if (
$IncludeNames) {
        
$sql_include=implode(",", array_values($mgmt));
        
$sql="select accounts.name, accounts.acctid, accounts.guildid, lotbd_guildranks.displaytitle
                        from accounts left join lotbd_guildranks on accounts.guildrank=lotbd_guildranks.rankid and accounts.guildid=lotbd_guildranks.guildid
                        where acctid in ("
.$sql_include.")";
        
$result=db_query($sql);
        
$RowCount=db_num_rows($result);

        if (
$ThisGuild['IsGuild']==1) {
            
$results[$GuildLeader]=$ThisGuild['GuildLeader'];
            
$results[$HeadOfWar]=$ThisGuild['HeadOfWar'];
            
$results[$HeadOfMembership]=$ThisGuild['HeadOfMembership'];
        } else {
            
$results[$ClanLeader]=$ThisGuild['GuildLeader'];
        }

        for (
$i=0; $i<$RowCount; $i++) {
            
$row=db_fetch_assoc($result);
            
$key=array_search($row['acctid'], $mgmt);
            
$results[$key]=$row;
        }
        return
$results;
    } else {
        return
$mgmt;
    }
}

function
IsOnManagementTeam($guildID, $who=""){

// Is the passed in member or the current user on the management team of the guild

  
global $session;
  
$onTeam=0;
  if (
$who=="") $who=$session['user']['acctid'];

  
$TestGuild=&$session['guilds'][$guildID];

  
$pos=strpos(":".$TestGuild['GuildLeader'].":".$TestGuild['HeadOfMembership'].":".$TestGuild['HeadOfWar'].":",":".$who.":");
  if (
$pos===false) {
     
$onTeam=false;
  } else {
     
$onTeam=true;
  }

return
$onTeam;
}

function
remove_bad_marks($in) {    //gargamel: show unwanted text!
    
$badtext = "`4 enthält unerwünschte Begriffe`0";
    
$zensor  = "`i$@#%`i";
    
$plainzensor = "$@#%";
    
$out = str_replace ( $badtext,"",$in );
    
$out = str_replace ( $zensor,$plainzensor,$out );
return
$out;
}

function
display_edit_guild($Info,$Admin=false, $SU=false) {

    global
$GuildLeader, $HeadOfWar, $HeadOfMembership;

//gargamel: show unwanted text!
    
$Info['Name'] = remove_bad_marks($Info['Name']);
    
$Info['PublicText'] = remove_bad_marks($Info['PublicText']);
    
$Info['ApplyText'] = remove_bad_marks($Info['ApplyText']);
    
$Info['RulesText'] = remove_bad_marks($Info['RulesText']);

// Edit the guild info

    
$HasData=(count($Info)!=0);
    if (
$HasData!=true) $Info=array();

    
output("`&`c`bGründung einer Gilde`b`c");
    
output("`n`n*`izwingend notwendige Angaben`i`n",true);

    if (
$SU) {
        
output("`0<form action='guilds-clans-su.php?type=applications&action=save' method='POST'>",true);
        
addnav("","guilds-clans-su.php?type=applications&action=save");
    } else {
        
output("`0<form action='guild.php?op=nonmember&action=create&type=guild&status=verifyInfo&id=".$Info['ID']."' method='POST'>",true);
        
addnav("","guild.php?op=nonmember&action=create&type=guild&status=verifyInfo&id=".$Info['ID']);
    }
    
output("<input name='info[ID]'  type='hidden' value='".$Info['ID']."'>",true);
    
output("`n* Welchen Namen soll die Gilde führen? <input name='info[Name]' size=100 value='".SafeDisplayString(($HasData)? $Info['Name']: "" )."'>`n",true);

    if (!isset(
$Info['GuildPrefix']['pre'])) $Info['GuildPrefix']['pre']=1;
    
$pre=$Info['GuildPrefix']['pre'];
    
$GuildPrefix=$Info['GuildPrefix']['display'];
    
output("`nWelches Kürzel sollen die zukünftigen Mitglieder stolz tragen (3 Zeichen, jedes Zeichen kann mit einem Farbcode versehen werden)? <input name='info[GuildPrefix][display]' length=9 size=10 value='".SafeDisplayString(($HasData)? $GuildPrefix: "" )."'>`n",true);
    
output("<input type=radio name='info[GuildPrefix][pre]' value='1' ".(($pre==1)?"checked":"")."> Als Prefix zum Namen<br>",true);
    
output("<input type=radio name='info[GuildPrefix][pre]' value='0' ".(($pre==0)?"checked":"")."> Als Suffix zum Namen<br>",true);
    
output("<input type=radio name='info[GuildPrefix][pre]' value='2' ".(($pre==2)?"checked":"")."> Ohne Kennzeichnung<br>",true);

    
output("`n* Beschreibung der Gilde: `n<textarea name='info[PublicText]' size=10 cols=75 rows=5 title='Enter what will be displayed to outsiders'>".SafeDisplayString(($HasData)? $Info['PublicText']: "" )."</textarea>`n",true);
    
output("`n* Text für Bewerber: `n<textarea name='info[ApplyText]' cols=75 rows=5 title='Enter what will be displayed to outsiders'>".SafeDisplayString(($HasData)? $Info['ApplyText']: "" )."</textarea>`n",true);
    
output("`n* Regeln der Gilde:`n <textarea name='info[RulesText]' cols=75 rows=5 title='Enter what will be displayed to outsiders'>".SafeDisplayString(($HasData)? $Info['RulesText']: "" )."</textarea>`n",true);
    
output("`nLink: `n<input name='info[ExternalPagesLink]' size=100 value='".SafeDisplayString(($HasData)? $Info['ExternalPagesLink']: "" )."'>",true);

    if (
$SU) {
        
output("`nAccount ID's of:");
        
output("`n&nbsp;&nbsp;$GuildLeader: `n<input name='info[GuildLeader]' length=9 size=10 value='".SafeDisplayString(($HasData)? $Info['GuildLeader']: "" )."'>`n",true);
        
output("`n&nbsp;&nbsp;$HeadOfWar: `n<input name='info[HeadOfWar]' length=9 size=10 value='".SafeDisplayString(($HasData)? $Info['HeadOfWar']: "" )."'>`n",true);
        
output("`n&nbsp;&nbsp;$HeadOfMembership: `n<input name='info[HeadOfMembership]' length=9 size=10 value='".SafeDisplayString(($HasData)? $Info['HeadOfMembership']: "" )."'>`n",true);
    }

    if (
$Admin) {
     
$type="";
    } else {
     
$type=" type='hidden' ";
    }


    if (!
is_array($Info['Hitlist'])) $Info['Hitlist']=array();
    
$HitListDisplay=HitlistToNames($Info['Hitlist'], false);
    
output("`nHitList: `n<input name='info[Hitlist]' readonly ".$type."size=100 value='".SafeDisplayString($HitListDisplay)."'>",true);

    
DisplaySitePoints($Info['ID']);

    if (
$SU) {
     
$type="";
    } else {
     
$type=" readonly ";
    }

    
output("`nGold: `n<input name='info[gold]' ".$type." size=10 value='".(($HasData)? $Info['gold']: "" )."'>",true);
    
output("`nEdelsteine: `n<input name='info[gems]' ".$type." size=10 value='".(($HasData)? $Info['gems']: "" )."'>",true);
    
output("`nGildenpunkte: `n<input name='info[SitePoints]' ".$type." size=5 value='".(($HasData)? $Info['SitePoints']: "" )."'>",true);

    if (
$Admin) {
        
output("`n`n<input type='submit' class='button' value='Save'>",true);
    } else {
        
output("`n`nWenn Du das Pergament ausgefüllt hast, drücke Antrag. Du wirst die Angaben
        noch einmal prüfen können, bevor Dein Pergament endgültig den Göttern vorgelegt wird."
);
        
output("`n`n<input type='submit' class='button' value='Antrag'>",true);
    }
}

function
display_edit_clan($Info,$Admin=false, $SU=false) {

    global
$ClanLeader;

//gargamel: show unwanted text!
    
$Info['Name'] = remove_bad_marks($Info['Name']);
    
$Info['PublicText'] = remove_bad_marks($Info['PublicText']);
    
$Info['ApplyText'] = remove_bad_marks($Info['ApplyText']);
    
$Info['RulesText'] = remove_bad_marks($Info['RulesText']);

// Edit the clan info

    
$HasData=(count($Info)!=0);
    if (
$HasData!=true) $Info=array();

    
output("`&`c`bGründung eines Clans`b`c");
    
output("`n`n*`izwingend notwendige Angaben`i`n",true);

    if (
$SU) {
        
output("`0<form action='guilds-clans-su.php?type=applications&action=save' method='POST'>",true);
        
addnav("","guilds-clans-su.php?type=applications&action=save");
    } else {
        
output("`0<form action='clan.php?op=nonmember&action=create&type=clan&status=verifyInfo&id=".$Info['ID']."' method='POST'>",true);
        
addnav("","clan.php?op=nonmember&action=create&type=clan&status=verifyInfo&id=".$Info['ID']);
    }
    
output("<input name='info[ID]'  type='hidden' value='".$Info['ID']."'>",true);
    
output("`n* Welchen Namen soll der Clan führen? <input name='info[Name]' size=100 value='".SafeDisplayString(($HasData)? $Info['Name']: "" )."'>`n",true);

    if (!isset(
$Info['GuildPrefix']['pre'])) $Info['GuildPrefix']['pre']=1;
    
$pre=$Info['GuildPrefix']['pre'];
    
$GuildPrefix=$Info['GuildPrefix']['display'];
    
output("`nWelches Kürzel sollen die zukünftigen Mitglieder stolz tragen (3 Zeichen, jedes Zeichen kann mit einem Farbcode versehen werden)? <input name='info[GuildPrefix][display]' length=9 size=10 value='".SafeDisplayString(($HasData)? $GuildPrefix: "" )."'>`n",true);
    
output("<input type=radio name='info[GuildPrefix][pre]' value='1' ".(($pre==1)?"checked":"")."> Als Prefix zum Namen<br>",true);
    
output("<input type=radio name='info[GuildPrefix][pre]' value='0' ".(($pre==0)?"checked":"")."> Als Suffix zum Namen<br>",true);
    
output("<input type=radio name='info[GuildPrefix][pre]' value='2' ".(($pre==2)?"checked":"")."> Ohne Kennzeichnung<br>",true);

    
output("`n* Beschreibung des Clans: `n<textarea name='info[PublicText]' size=10 cols=75 rows=5 title='Enter what will be displayed to outsiders'>".SafeDisplayString(($HasData)? $Info['PublicText']: "" )."</textarea>`n",true);
    
output("`n* Text für Bewerber: `n<textarea name='info[ApplyText]' cols=75 rows=5 title='Enter what will be displayed to outsiders'>".SafeDisplayString(($HasData)? $Info['ApplyText']: "" )."</textarea>`n",true);
    
output("`n* Regeln des Clans:`n <textarea name='info[RulesText]' cols=75 rows=5 title='Enter what will be displayed to outsiders'>".SafeDisplayString(($HasData)? $Info['RulesText']: "" )."</textarea>`n",true);
    
output("`nLink: `n<input name='info[ExternalPagesLink]' size=100 value='".SafeDisplayString(($HasData)? $Info['ExternalPagesLink']: "" )."'>",true);

    if (
$SU) {
        
output("`nAccount ID's of:");
        
output("`n&nbsp;&nbsp;$ClanLeader: `n<input name='info[GuildLeader]' length=9 size=10 value='".SafeDisplayString(($HasData)? $Info['GuildLeader']: "" )."'>`n",true);
    }

    if (
$Admin) {
     
$type="";
    } else {
     
$type=" type='hidden' ";
    }


    if (!
is_array($Info['Hitlist'])) $Info['Hitlist']=array();
    
$HitListDisplay=HitlistToNames($Info['Hitlist'], false);
    
output("`nHitList: `n<input name='info[Hitlist]' readonly ".$type."size=100 value='".SafeDisplayString($HitListDisplay)."'>",true);

    
DisplaySitePoints($Info['ID']);

    if (
$SU) {
     
$type="";
    } else {
     
$type=" readonly ";
    }

    
output("`nGold: `n<input name='info[gold]' ".$type." size=10 value='".(($HasData)? $Info['gold']: "" )."'>",true);
    
output("`nEdelsteine: `n<input name='info[gems]' ".$type." size=10 value='".(($HasData)? $Info['gems']: "" )."'>",true);
    
output("`nClanpunkte: `n<input name='info[SitePoints]' ".$type." size=5 value='".(($HasData)? $Info['SitePoints']: "" )."'>",true);

    if (
$Admin) {
        
output("`n`n<input type='submit' class='button' value='Save'>",true);
    } else {
        
output("`n`nWenn Du das Pergament ausgefüllt hast, drücke Antrag. Du wirst die Angaben
        noch einmal prüfen können, bevor Dein Pergament endgültig den Göttern vorgelegt wird."
);
        
output("`n`n<input type='submit' class='button' value='Antrag'>",true);
    }
}

function
display_guild_info($Info) {

    global
$GuildLeader, $HeadOfWar, $HeadOfMembership;

// Display and verify the Guild Information
// Checks if the mandatory information has been entered and checks for bad language

    
$badtext = "`4 enthält unerwünschte Begriffe`0";

    
$InvalidLanguage=0;
    
$MissingVitalInfo=false;

    
$soapname = soap($GuildName=$Info['Name']);
    if (
$soapname!=$GuildName) {
        
$Info['Name'] = $soapname.$badtext;
        
$InvalidLangauge=1;
    } else {
        if (
$GuildName=="") $MissingVitalInfo=true;
    }

    
$soapname = soap($Description=$Info['PublicText']);
    if (
$soapname!=$Description) {
        
$Info['PublicText'] = $soapname.$badtext;
        
$InvalidLangauge=1;
    } else {
        if (
$Description=="") $MissingVitalInfo=true;
    }

    
$soapname = soap($ApplicantText=$Info['ApplyText']);
    if (
$soapname!=$ApplicantText) {
        
$Info['ApplyText'] = $soapname.$badtext;
        
$InvalidLangauge=1;
    } else {
        if (
$ApplicantText=="") $MissingVitalInfo=true;
    }

    
$soapname = soap($RulesText=$Info['RulesText']);
    if (
$soapname!=$RulesText) {
        
$Info['RulesText'] = $soapname.$badtext;
        
$InvalidLangauge=1;
    } else {
        if (
$RulesText=="") $MissingVitalInfo=true;
    }

    
$Link=$Info['link'];

    
$GuildPrefix_display=$Info['GuildPrefix']['display'];
    if (
strlen(color_sanitize($GuildPrefix_display))>3) {
        
$Info['GuildPrefix']['display']= substr(color_sanitize($GuildPrefix_display),0,3);
    }

    
output("<form action='guild.php?op=manage&action=create&type=guild&status=submit&id=".$Info['ID']."' method='POST'>",true);
    
output("`n`3Name der Gilde: `n`0".$Info['Name']);
    
output("`n`n`3Gildenkürzel: `n`0".$Info['GuildPrefix']['display']);
    
output("`n`n`3Beschreibung der Gilde: `n`0".$Info['PublicText']);
    
output("`n`n`3Text für Bewerber: `n`0".$Info['ApplyText']);
    
output("`n`n`3Regeln der Gilde: `n`0".$Info['RulesText']);
    
output("`n`n`3Link: `n`0".$Info['ExternalPagesLink']);
    
$sql="select name from accounts where acctid=".$Info['GuildLeader'];
    
$result=db_query($sql);
    
$row=db_fetch_assoc($result);
    
output("`n`n`3$GuildLeader: `n`0".$row['name']);
    
$Info['BadLanguage']=$InvalidLangauge;
    
$Info['MissingVitalInfo']=$MissingVitalInfo;
    
$tmp=base64_encode(serialize($Info));
    
output("<input type='hidden' name='info' value='$tmp'>",true);
    if (
$InvalidLangauge!=true) {
        if (!isset(
$Info['ID']) or ($Info['ID']=="")) {
            
output("`n`n<input type='submit' class='button' value='Antrag abgeben'>",true);
        } else {
            
output("`n`n<input type='submit' class='button' value='Daten aktualisieren'>",true);
        }
    } else {
        
output("`n`n`i`bDein Antrag enthält Begriffe, die zensiert werden müssten.`n
        Bitte ändere Deinen Antrag!`b`i"
,true);
        
output("`n`n<input type='submit' class='button' value='Antrag ändern'>",true);
    }
    
addnav("","guild.php?op=manage&action=create&type=guild&status=submit&id=".$Info['ID']);
}

function
display_clan_info($Info) {

    global
$ClanLeader;

// Display and verify the Clan Information
// Checks if the mandatory information has been entered and checks for bad language

    
$badtext = "`4 enthält unerwünschte Begriffe`0";

    
$InvalidLanguage=0;
    
$MissingVitalInfo=false;

    
$soapname = soap($GuildName=$Info['Name']);
    if (
$soapname!=$GuildName) {
        
$Info['Name'] = $soapname.$badtext;
        
$InvalidLangauge=1;
    } else {
        if (
$GuildName=="") $MissingVitalInfo=true;
    }

    
$soapname = soap($Description=$Info['PublicText']);
    if (
$soapname!=$Description) {
        
$Info['PublicText'] = $soapname.$badtext;
        
$InvalidLangauge=1;
    } else {
        if (
$Description=="") $MissingVitalInfo=true;
    }

    
$soapname = soap($ApplicantText=$Info['ApplyText']);
    if (
$soapname!=$ApplicantText) {
        
$Info['ApplyText'] = $soapname.$badtext;
        
$InvalidLangauge=1;
    } else {
        if (
$ApplicantText=="") $MissingVitalInfo=true;
    }

    
$soapname = soap($RulesText=$Info['RulesText']);
    if (
$soapname!=$RulesText) {
        
$Info['RulesText'] = $soapname.$badtext;
        
$InvalidLangauge=1;
    } else {
        if (
$RulesText=="") $MissingVitalInfo=true;
    }

    
$Link=$Info['link'];

    
$GuildPrefix_display=$Info['GuildPrefix']['display'];
    if (
strlen(color_sanitize($GuildPrefix_display))>3) {
        
$Info['GuildPrefix']['display']= substr(color_sanitize($GuildPrefix_display),0,3);
    }

    
output("<form action='clan.php?op=manage&action=create&type=clan&status=submit&id=".$Info['ID']."' method='POST'>",true);
    
output("`n`3Name des Clans: `n`0".$Info['Name']);
    
output("`n`n`3Clankürzel: `n`0".$Info['GuildPrefix']['display']);
    
output("`n`n`3Beschreibung des Clans: `n`0".$Info['PublicText']);
    
output("`n`n`3Text für Bewerber: `n`0".$Info['ApplyText']);
    
output("`n`n`3Regeln des Clans: `n`0".$Info['RulesText']);
    
output("`n`n`3Link: `n`0".$Info['ExternalPagesLink']);
    
$sql="select name from accounts where acctid=".$Info['GuildLeader'];
    
$result=db_query($sql);
    
$row=db_fetch_assoc($result);
    
output("`n`n`3$ClanLeader: `n`0".$row['name']);
    
$Info['BadLanguage']=$InvalidLangauge;
    
$Info['MissingVitalInfo']=$MissingVitalInfo;
    
$tmp=base64_encode(serialize($Info));
    
output("<input type='hidden' name='info' value='$tmp'>",true);
    if (
$InvalidLangauge!=true) {
        if (!isset(
$Info['ID']) or ($Info['ID']=="")) {
            
output("`n`n<input type='submit' class='button' value='Antrag abgeben'>",true);
        } else {
            
output("`n`n<input type='submit' class='button' value='Daten aktualisieren'>",true);
        }
    } else {
        
output("`n`n`i`bDein Antrag enthält Begriffe, die zensiert werden müssten.`n
        Bitte ändere Deinen Antrag!`b`i"
,true);
        
output("`n`n<input type='submit' class='button' value='Antrag ändern'>",true);
    }
    
addnav("","clan.php?op=manage&action=create&type=clan&status=submit&id=".$Info['ID']);
}

function
HitlistToNames($Hitlist, $ReturnAsArray=false) {

// Turns the passed in list (string in the form of {n[,n]} where n is the acctid | array of acctid's)
// tuned to returning names and bounties
// Use list to names if you want more information

    
if (is_array($Hitlist)) {
     
$UserSearch=implode(",",array_keys($Hitlist));
    } else {
     
$UserSearch=$Hitlist;
    }

    if (
$UserSearch!=""){
        
$sql = "select acctid, name, bounty, login from accounts where acctid in (".$UserSearch.")";
        
$NameResult = db_query($sql);
        
$HitListNames="";
        
$ArrayResult=array();
        
$RowCount=db_num_rows($NameResult);

        for (
$i=0;$i<$RowCount;$i++){
             
$NameRows = db_fetch_assoc($NameResult);
             
$ArrayResult[]=$NameRows;
             
$HitListNames.=$NameRows['name']." `&- `^".$NameRows['bounty']."`& Gold".(($i<($RowCount-1))? ", ":".");
        }
    } else {
        
$HitListNames="None";
    }

//db_free_result($NameResult);
  
if ($ReturnAsArray!=false) {
    return
$ArrayResult;
  } else {
       return
$HitListNames;
  }
}

function
ListToNames($SearchList, $ReturnAsArray=false) {

// Turns the passed in list (string in the form of {n[,n]} where n is the acctid | array of acctid's)
// tuned to returning names, rank

    
if (is_array($SearchList)) {
     
$UserSearch=implode(",",array_keys($SearchList));
    } else {
     
$UserSearch=$SearchList;
    }

    if (
$UserSearch!=""){
        
$sql = "select accounts.acctid, accounts.name, accounts.guildid, accounts.guildrank, lotbd_guildranks.displaytitle
                from accounts
                     left join lotbd_guildranks
                     on accounts.guildrank=lotbd_guildranks.rankID
                        and accounts.guildid=lotbd_guildranks.guildid
                where accounts.acctid in ("
.$UserSearch.")";

        
$NameResult = db_query($sql);
        
$ListNames="";
        
$ArrayResult=array();
        
$RowCount=db_num_rows($NameResult);

        for (
$i=0;$i<$RowCount;$i++){
             
$NameRows = db_fetch_assoc($NameResult);
             
$ArrayResult[$NameRows['acctid']]=$NameRows;
             
$ListNames.=$NameRows['name']."".(($i<($RowCount-1))? ", ":".");
        }
    } else {
        
$ListNames="None";
    }

//db_free_result($NameResult);
  
if ($ReturnAsArray!=false) {
    return
$ArrayResult;
  } else {
       return
$ListNames;
  }
}

function
Display_Record($ThisGuild){

    global
$GuildLeader, $HeadOfWar, $HeadOfMembership, $vacant, $ClanLeader;
    global
$SPnames;

// Names of Leaders
$UserSearch=$ThisGuild['HeadOfWar'].",".$ThisGuild['GuildLeader'].",".$ThisGuild['HeadOfMembership'];
$sql = "select acctid, name from accounts where acctid in (".$UserSearch.")";
$NameResult = db_query($sql);
$GuildLeaderName = $HeadOfMembershipName = $HeadOfWarName = "`i$vacant`i";

for (
$i=0;$i<db_num_rows($NameResult);$i++){
     
$NameRows = db_fetch_assoc($NameResult);
     if (
$NameRows['acctid']==$ThisGuild['GuildLeader']) $GuildLeaderName=$NameRows['name'];
     if (
$NameRows['acctid']==$ThisGuild['HeadOfMembership']) $HeadOfMembershipName=$NameRows['name'];
     if (
$NameRows['acctid']==$ThisGuild['HeadOfWar']) $HeadOfWarName=$NameRows['name'];
}

// Guild/Clan Status
switch ($ThisGuild['Status']) {
         case
"-999":
           
$statustext="`4Denied";
         break;
         case
"0":
           
$statustext="`%Pending";
         break;
         case
"1":
           
$statustext="`2Active";
         break;
         default:
           
$statustext="`0Unknown";
         break;
}

$HitListNames = HitlistToNames($ThisGuild['Hitlist']);
if (
$ThisGuild['IsGuild']==1) {
$members=FindGuildMembers($ThisGuild['ID'], true);
} else {
    
$members=FindClanMembers($ThisGuild['ID'], true);
}
$display="";
$ranks=PopulateRanks($ThisGuild['ID']); // handles when no rank has been set

output("`n`0");

//table part 1
if ( $ThisGuild['IsGuild'] ) {
    
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999' align='left'>",true);
    
output("<tr class='trhead'><td>`bAllgemeine`nInformationen`b</td><td>`b `b</td></tr>",true);
    
output("<tr class='trlight'><td>`0Name</td><td>`%".$ThisGuild['Name']."</td>",true);
    
output("<tr class='trlight'><td>`0Namenszusatz</td><td>`%".$ThisGuild['GuildPrefix']['display']."</td>",true);
    
output("<tr class='trlight'><td>`0Status</td><td>`%".$statustext."</td>",true);
    
output("<tr class='trlight'><td>`0Mitglieder</td><td>`%".count($members)."</td>",true);
    
output("<tr class='trlight'><td>`0Gilde oder Clan</td><td>`%".(($ThisGuild['IsGuild']==1)? "Guild": "Clan")."</td>",true);
    
output("<tr class='trlight'><td>`0Beschreibung der Gilde</td><td>`%".$ThisGuild['PublicText']."</td>",true);
    
output("<tr class='trlight'><td>`0Text für Bewerber</td><td>`%".$ThisGuild['ApplyText']."</td>",true);
    
output("<tr class='trlight'><td>`0Regeln der Gilde</td><td>`%".$ThisGuild['RulesText']."</td>",true);
    
output("<tr class='trlight'><td>`0Link</td><td>`%".$ThisGuild['Name']."</td>",true);
    
output("<tr class='trlight'><td>`0$GuildLeader</td><td>`%".$GuildLeaderName."</td>",true);
    
output("<tr class='trlight'><td>`0$HeadOfMembership</td><td>`%".$HeadOfMembershipName."</td>",true);
    
output("<tr class='trlight'><td>`0$HeadOfWar</td><td>`%".$HeadOfWarName."</td>",true);
    
output("<tr class='trlight'><td>`0Hit List</td><td>`%".$HitListNames."</td>",true);
} else {
    
output("<table cellpadding=2 cellspacing=1 bgcolor='#999999' align='left'>",true);
    
output("<tr class='trhead'><td>`bAllgemeine`nInformationen`b</td><td>`b `b</td></tr>",true);
    
output("<tr class='trlight'><td>`0Name</td><td>`%".$ThisGuild['Name']."</td>",true);
    
output("<tr class='trlight'><td>`0Namenszusatz</td><td>`%".$ThisGuild['GuildPrefix']['display']."</td>",true);
    
output("<tr class='trlight'><td>`0Status</td><td>`%".$statustext."</td>",true);
    
output("<tr class='trlight'><td>`0Mitglieder</td><td>`%".count($members)."</td>",true);
    
output("<tr class='trlight'><td>`0Gilde oder Clan</td><td>`%".(($ThisGuild['IsGuild']==1)? "Guild": "Clan")."</td>",true);
    
output("<tr class='trlight'><td>`0Beschreibung des Clans</td><td>`%".$ThisGuild['PublicText']."</td>",true);
    
output("<tr class='trlight'><td>`0Text für Bewerber</td><td>`%".$ThisGuild['ApplyText']."</td>",true);
    
output("<tr class='trlight'><td>`0Regeln des Clans</td><td>`%".$ThisGuild['RulesText']."</td>",true);
    
output("<tr class='trlight'><td>`0Link</td><td>`%".$ThisGuild['Name']."</td>",true);
    
output("<tr class='trlight'><td>`0$ClanLeader</td><td>`%".$GuildLeaderName."</td>",true);
    
output("<tr class='trlight'><td>`0Hit List</td><td>`%".$HitListNames."</td>",true);
}

    
//table part 2
    
output("<tr class='trhead'><td>`bMitglieder`nRang`b</td><td>`b`nName`b</td></tr>",true);
    foreach (
$members as $member) {
     
// Traverse the array and display the names ane their rank
        
if (!isset($member['displaytitle'])) {
            
output("<tr class='".($i%2?"trlight":"trdark")."'><td>".$ranks[0]['DisplayTitle']."</td><td>".$member['name']."</td>",true);
        } else {
            
output("<tr class='".($i%2?"trlight":"trdark")."'><td>".$member['displaytitle']."</td><td>".$member['name']."</td>",true);
        }
    }

    
//table part 3
if ( $ThisGuild['IsGuild'] ) {
    
output("<tr class='trhead'><td>`bÜbersicht`nGildenpunkte und Verwendung`b</td><td>`b`nWert`b</td></tr>",true);
    
output("<tr class='trdark'><td>`0Vermögen</td><td> </td>",true);
    
output("<tr class='trlight'><td>`0Gold</td><td>`%".$ThisGuild['gold']."</td>",true);
    
output("<tr class='trlight'><td>`0Edelsteine</td><td>`%".$ThisGuild['gems']."</td>",true);
    
output("<tr class='trdark'><td>`0neue Gildenpunkte</td><td> </td>",true);
    
output("<tr class='trlight'><td>`0offene Punkte</td><td>`%".$ThisGuild['SitePoints']."</td>",true);
    
output("<tr class='trdark'><td>`0eingesetzte Gildenpunkte</td><td> </td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Banking Interest']."</td><td>`%".$ThisGuild['PercentOfFightsEarned']['Bank']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Healing Discount']."</td><td>`%".$ThisGuild['HealDiscount']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Gem Discount']."</td><td>`%".$ThisGuild['GemPurchaseDiscount']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Weapon Purchase Discount']."</td><td>`%".$ThisGuild['WeaponDiscount']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Armor Purchase Discount']."</td><td>`%".$ThisGuild['ArmourDiscount']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Potion Discount']."</td><td>`%".$ThisGuild['PotionDiscount']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Training Discount']."</td><td>`%".$ThisGuild['TrainDiscount']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['house']."</td><td>`%".$ThisGuild['OtherSitepoints']['house']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['mount']."</td><td>`%".$ThisGuild['OtherSitepoints']['mount']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Percent Earned from PvP']."</td><td>`%".$ThisGuild['PercentOfFightsEarned']['PvP']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Percent Earned from FF']."</td><td>`%".$ThisGuild['PercentOfFightsEarned']['FF']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['PvP Purchase Discount']."</td><td>`%".$ThisGuild['PvPDiscount']."</td>",true);
} else {
    
output("<tr class='trhead'><td>`bÜbersicht`nClanpunkte und Verwendung`b</td><td>`b`nWert`b</td></tr>",true);
    
output("<tr class='trdark'><td>`0Vermögen</td><td> </td>",true);
    
output("<tr class='trlight'><td>`0Gold</td><td>`%".$ThisGuild['gold']."</td>",true);
    
output("<tr class='trlight'><td>`0Edelsteine</td><td>`%".$ThisGuild['gems']."</td>",true);
    
output("<tr class='trdark'><td>`0neue Clanpunkte</td><td> </td>",true);
    
output("<tr class='trlight'><td>`0offene Punkte</td><td>`%".$ThisGuild['SitePoints']."</td>",true);
    
output("<tr class='trdark'><td>`0eingesetzte Clanpunkte</td><td> </td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Banking Interest']."</td><td>`%".$ThisGuild['PercentOfFightsEarned']['Bank']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Healing Discount']."</td><td>`%".$ThisGuild['HealDiscount']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Gem Discount']."</td><td>`%".$ThisGuild['GemPurchaseDiscount']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Weapon Purchase Discount']."</td><td>`%".$ThisGuild['WeaponDiscount']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Armor Purchase Discount']."</td><td>`%".$ThisGuild['ArmourDiscount']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Potion Discount']."</td><td>`%".$ThisGuild['PotionDiscount']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Training Discount']."</td><td>`%".$ThisGuild['TrainDiscount']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['house']."</td><td>`%".$ThisGuild['OtherSitepoints']['house']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['mount']."</td><td>`%".$ThisGuild['OtherSitepoints']['mount']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Percent Earned from PvP']."</td><td>`%".$ThisGuild['PercentOfFightsEarned']['PvP']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['Percent Earned from FF']."</td><td>`%".$ThisGuild['PercentOfFightsEarned']['FF']."</td>",true);
    
output("<tr class='trlight'><td>`0".$SPnames['PvP Purchase Discount']."</td><td>`%".$ThisGuild['PvPDiscount']."</td>",true);
}
    
output("</TABLE>`n`n`n",true);
}

function
RemoveUserFromMgmt($who) {

// Removes somebody from the management team - aimed to be used from User.php for Superusers
// If a Guild:
//   If the user being removed is the GuildLeader then try and assign the guild leader from the other mgmt members
//   If this cannot be done then pick a random member if possible
//   Otherwise set the GuildLeader to 0
// If a clan:
//   Pick a random member if one exists
//

global $session;

    
$sql = "select guildID, ClanID from accounts where acctid=".$who;
    
$result = db_query($sql);
    
$row = db_fetch_assoc($result);
    
$guildID = $row['guildID']; $clanID = $row['clanID'];
    if (
IsOnManagementTeam($guildID,$who)) {
        
$ThisGuild=&$session['guilds'][$guildID];
        if (
$ThisGuild['GuildLeader']==$who) {
            if (
$ThisGuild['HeadOfWar']<>0) {
                
$ThisGuild['GuildLeader']=$ThisGuild['HeadOfWar'];
            } else {
                if (
$ThisGuild['HeadOfMembership']<>0) {
                    
$ThisGuild['GuildLeader']=$ThisGuild['HeadOfMembership'];
                } else {
                    
// There are no management members
                    
$NewMgr=RandomGuildMember($guildID,$who);
                    
$ThisGuild['GuildLeader']=$NewMgr;
                }
            }
        }
        if (
$ThisGuild['HeadOfWar']==$who) {
            
$ThisGuild['HeadOfWar']=0;
        }

        if (
$ThisGuild['HeadOfMembership']==$who) {
            
$ThisGuild['HeadOfMembership']=0;
        }
    
update_guild_info($ThisGuild);
    }

    if (
IsOnManagementTeam($clanID,$who)) {
        
$ThisClan=$session['guilds'][$clanID];
        if (
$ThisClan['GuildLeader']==$who) {
            
$ThisClan['GuildLeader']=RandomGuildMember($clanID,$who);
        }
    
update_guild_info($ThisClan);
    }
}

function
RandomGuildMember($guildID, $exclude="") {

//
// Find a random member of a guild
// optionally exclude one or more people
//

global $session;

    if (
$exclude!="") $exclude=" and acctid not in (".$exclude.")";

    
$ThisGroup=&$session['guilds'][$guildID];
    if (
$ThisGroup['IsGuild']==1) {
        
$sqlType=" guildID=".$guildID;
    } else {
        
$sqlType=" clanID=".$guildID;
    }

    
// How many players are we talking about?
    
$sql="select count(*) as Players from accounts where ".$sqlType.$exclude;
    
$result=db_query($sql);
    
$row=db_fetch_assoc($result);
    
$players=$row['Players'];
    
// Pick a number between 1 and the size of the pot
    
if ($players>1) {
        
$val=e_rand(1,$players);
        if (
$val==0) return 0;
        
$sql="select acctid from accounts where ".$sqlType.$exclude." limit ".$val.",1";
    } else {
        if (
$players==1) {
            
// There is only one choice!
            
$sql="select acctid from accounts where ".$sqlType.$exclude;
        } else {
            
// There is nobody to select
            
return 0;
        }
    }

    
$result=db_query($sql);
    
$row=db_fetch_assoc($result);
    
$who=$row['acctid'];

    return
$who;
}

function
listall_guildclan($su=0){
// gargamel
// list all available guilds an clans
// code based upon guilds-clans.php?op=nonmember&action=list by Dasher.
//
global $session;

    
// Display outstanding applications
    
unset($session['guilds'][null]);
    
$i=1;
    
$anz = count($session['guilds']);
    
$anzguild=$anzclan=0;
    foreach (
$session['guilds'] as $ThisGuild){
        if (
$ThisGuild['IsGuild'] ) $anzguild++;
        else
$anzclan++;
    }
    if (
$anzguild==0 && $anzclan ==0) {
        
output("`n`0Aktuell sind `3keine`0 Gilden vorhanden!`n");
        
output("`n`0Aktuell sind `3keine`0 Clans vorhanden!`n");
        if (
$su) {
            
output("`nGehe ins Dorf und amüsier Dich!!!");
        }
    } else {
        if (
$su) $verb = "zuverwalten";
        else
$verb = "vorhanden";
        if (
$anzguild==0 ) {
             
output("`n`0Aktuell sind `3keine`0 Gilden vorhanden!`n");
        } else {
            
$helpid=100;
            
output("`n`0Aktuell ".(($anzguild==1)?"ist":"sind").
            
" `^".$anzguild."`0 Gilde".
            ((
$anzguild==1)?"":"n")." ".$verb.":`n`n");
            
output("<table border=0 cellpadding=4 cellspacing=1 bgcolor='#999999' align='center'>",true);
            
output("<tr class='trhead'><td>`bID`b</td><td>`bName`b</td><td>`bStatus`b</td>",true);
            foreach (
$session['guilds'] as $ThisGuild){
                if (
$ThisGuild['IsGuild'] ) {
                    switch (
$ThisGuild['Status']) {
                    case
"-999":
                    
$statustext="`4Denied";
                    break;

                    case
"0":
                    
$statustext="`%Pending";
                    break;

                    case
"1":
                    
$statustext="`2Active";
                    break;

                    default:
                    
$statustext="`0Unknown";
                    break;
                    }
                    if (
$su) {
                        
$link="guilds-clans-su.php?type=applications&display=item&id=";
                        
output("<tr class='".($i%2?"trlight":"trdark")."'>
                        <td>"
.$ThisGuild['ID']."</td>
                        <td><a href='"
.$link.$ThisGuild['ID']."'>".$ThisGuild['Name']."</td>
                        <td>`i"
.$statustext."`i</td></a>",true);
                        
addnav("",$link.$ThisGuild['ID']);
                    } else if (
$ThisGuild['Status'] != 0) {
                        
$link="guild.php?op=nonmember&action=examine&id=";
                        
output("<tr class='".($i%2?"trlight":"trdark")."'>
                        <td>"
.$ThisGuild['ID']."</td>
                        <td><a href='"
.$link.$ThisGuild['ID']."'>".$ThisGuild['Name']."</td>
                        <td>`i"
.$statustext."`i</td></a>",true);
                        
addnav("",$link.$ThisGuild['ID']);
                    }
                }
            }
            
output("</table>",true);
        }
        if (
$anzclan==0 ) {
             
output("`n`0Aktuell sind `3keine`0 Clans vorhanden!`n");
        } else {
            
$helpid=100;
            
output("`n`0Aktuell ".(($anzclan==1)?"ist":"sind").
            
" `^".$anzclan."`0 Clan".
            ((
$anzclan==1)?"":"s")." ".$verb.":`n`n");
            
output("<table border=0 cellpadding=4 cellspacing=1 bgcolor='#999999' align='center'>",true);
            
output("<tr class='trhead'><td>`bID`b</td><td>`bName`b</td><td>`bStatus`b</td>",true);
            foreach (
$session['guilds'] as $ThisClan){
                if ( !
$ThisClan['IsGuild'] ) {
                    switch (
$ThisClan['Status']) {
                    case
"-999":
                    
$statustext="`4Denied";
                    break;

                    case
"0":
                    
$statustext="`%Pending";
                    break;

                    case
"1":
                    
$statustext="`2Active";
                    break;

                    default:
                    
$statustext="`0Unknown";
                    break;
                    }
                    if (
$su) {
                        
$link="guilds-clans-su.php?type=applications&display=item&id=";
                        
output("<tr class='".($i%2?"trlight":"trdark")."'>
                        <td>"
.$ThisClan['ID']."</td>
                        <td><a href='"
.$link.$ThisClan['ID']."'>".$ThisClan['Name']."</td>
                        <td>`i"
.$statustext."`i</td></a>",true);
                        
addnav("",$link.$ThisClan['ID']);
                    } else if (
$ThisClan['Status'] != 0) {
                        
$link="clan.php?op=nonmember&action=examine&id=";
                        
output("<tr class='".($i%2?"trlight":"trdark")."'>
                        <td>"
.$ThisClan['ID']."</td>
                        <td><a href='"
.$link.$ThisClan['ID']."'>".$ThisClan['Name']."</td>
                        <td>`i"
.$statustext."`i</td></a>",true);
                        
addnav("",$link.$ThisClan['ID']);
                    }
                }
            }
            
output("</table>",true);
        }
    }
}

function
SurpriseMember($guildID, $who) {

// Schicke einem Mitglied ein Geschenk, z.B. einen Schädel für Gefallen

    
global $session, $HTTP_GET_VARS;
    
$stage=$HTTP_GET_VARS['stage'];
    
$ThisGuild=&$session['guilds'][$guildID];
    if (
$who<>$session[user][acctid]){
    
$MemberName = ListToNames($who, false);
   }else{
      
$MemberName = $session[user][name];
   }
   
    
$sqla="SELECT level, alive FROM accounts WHERE acctid = ".$who."";
    
$resulta=db_query($sqla);
    
$rowa=db_fetch_assoc($resulta);
    
    
//$schaedelkost = 3000 + ($rowa[level] * 100);
    
$schaedelkost = 8000;
    
    switch (
$stage) {
            default:
                
// Transfer Sequence
                
$return=CalcReturnPath(true);
                if ((
$ThisGuild['gold']<=0) and ($ThisGuild['gems'])) {
                    
output("`6Du kannst es Dir nicht leisten irgendwen zu beschenken.");
                    return;
                }
                
output("`n`6`bBeschenke ein Mitglied`b:`n");
                
output("Hier kannst du Deinem Mitglied `^".$MemberName."`0 `6ein Geschenk machen. Bedenke, dass Geschenke auch Gold kosten, welches direkt aus deinem Gildenschatz genommen wird.`n`n",true);

                if (
$ThisGuild['gold'] >= $schaedelkost){
                    
output("<a href='".$return."&stage=2&item=schaedel'>Seltsamer Schädel - ".$schaedelkost." Goldstücke</a>", true);
                    
addnav("",$return."&stage=2&item=schaedel");
                }
            break;

          case
"2":
              switch(
$HTTP_GET_VARS['item']) {
                  
                  case
"schaedel":
                      
$gift="Seltsamer Schädel";
                      
$gefallen=e_rand(5,10);    
                    
$effekt="Du untersuchst dieses merkwürdige Geschenk genauer. Dabei rutscht es dir aus der Hand und zerplatzt am Boden in 1000 Stücke. Doch eine seltsame Kraft wird frei, die dir $gefallen Gefallen bei Ramius bringt!";
                    
$ThisGuild['gold']-=$schaedelkost;
                    
update_guild_info($ThisGuild);
                    
debuglog("Schädel für " . $schaedelkost . " Gold an " . $who . " geschenkt");
                    
                    if(
$session[user][acctid]==$who) {
                        
$comment="/me schenkt sich selbst einen Schädel für `^".$schaedelkost." `&Goldstücke";
                          
$session[user][deathpower]+=$gefallen;
                      } else {
                          
$comment="/me schenkt `^".$MemberName." `&einen Schädel für `^".$schaedelkost." `&Goldstücke";
                          
db_query("UPDATE accounts SET deathpower=deathpower+$gefallen WHERE acctid=$who");
                      }
                break;
              }
              
$sql="INSERT INTO commentary (postdate,section,author,comment) VALUES (now(),'GuildPay-".$ThisGuild['ID']."',".$session[user][acctid].",'".$comment."')";
              
db_query($sql)or die(db_error(LINK));
              
$mailmessage=$session[user][name];
            
$mailmessage.="`7 hat dir ein Geschenk geschickt.  Du öffnest es. Es ist ein/e `6";
            
$mailmessage.=$gift;
            
//you can change the following the match what you name your gift shop
            
$mailmessage.="`7 aus dem Laden der Gilde/des Clans.`n".$effekt;
            
systemmail($who,"`2Geschenk erhalten!`2",$mailmessage);
            
output("`n`6Dein Geschenk wurde an `^".$MemberName."`0 `6verschickt.`n`n",true);
            
output("`n`6Da dich das Verpacken des Geschenks sehr viel Zeit gekostet hat verlierst du einen Waldkampf!`n`n");
            
$session[user][turns]--;
            break;
         }

}


?>