| 
                  
                    
                      |  | //Start the album script! 
//Check if the admin is here.
$phAdmin=false;
If($display_admin) {
	If($_COOKIE['phAdmin']==$admin_username.$admin_password) {
		$phAdmin=true;
	}
}
//Only if the user is an admin can he $_POST this stuff!
If($display_admin) {
	If($phAdmin==true) {
		
		//Make directorys!
		
		If($_POST['makedir']) {
			If($_POST['albumname']) {
				If(!makedir($_POST['albumname'])) {
					$phmessage="Error: Folder ".$_POST['albumname']." could not be created. Maybe the folder exists?";
				} Else {
					$phmessage="Folder ".$_POST['albumname']." has been created!";
				}
			} Else {
					$phmessage="No Album name entered!";
			}
	
		//Upload Images!
			
		} Elseif($_POST['upload']) {
			If($_FILES['image']['name']) {
				If(!upload()) {
					$phmessage="Error: Image ".$_FILES['image']['name']." could not be upload. Probably a Chmod Error or file exists.";
				} Else {
					$phmessage="Image ".$_FILES['image']['name']." has been uploaded!";
				}
			} Else {
					$phmessage="No File Selected";
			}
		} Elseif($_POST['remove']) {
			If($_POST['file']) {
				If(!remove()) {
					$phmessage="Could not delete file, probably a premission error..";
				} Else {
					$phmessage="The file has been removed.";
				}
			} Else {
					$phmessage="No filename was sent to be deleted...";
			}
		}
		
	}
}
//Makes the tables look nice and pretty.
If($table_cells=="1") {
	$cell_width="100%";
} Elseif($table_cells=="2") {
	$cell_width="50%";	
} Elseif($table_cells=="3") {
	$cell_width="33%";		
} Elseif($table_cells=="4") {
	$cell_width="25%";			
} Elseif($table_cells=="5") {
	$cell_width="20%";
} Elseif($table_cells=="6") {
	$cell_width="16%";
} Else {
	$cell_width="10%";
}
//This is just a random ignore word if none is set above, pretty impossible to be in the filename anyways.
If(!$ignore_word) {
	$ignore_word=microtime();
}
//A bit tricky, but all in all it works, returns the filename without the extension!
function file_name($key) {
	$key=strrev(substr(strstr(strrev($key), "."), 1));
	return($key);
}
//Lets get the file extension.
function file_ext($key) { 
	$key=strtolower(substr(strrchr($key, "."), 1));
	$key=str_replace("jpeg", "jpg", $key);
    return($key); 
}
//My ever popular (Yeah right) function for image creation.
function file_thumb($file,$album,$file_name) {
	global $thumb_width,$thumb_height,$jpg_quality;
	//Get the file extension!
	$file_ext=file_ext($file);
	//The GD Libary only supports jpg and gif really, well it can only make a gif a jpg. There are other ways like image magik, but not many have it so I didn't include that. So dent anything that isn't a gif or jpg :(.	
	$Allow=array("jpg","gif","png");
	If(in_array($file_ext,$Allow)) {
		//Lets do some converting!
		$imgdata=getimagesize($full_server.$album.$file);
		$imgresized=imagecreatetruecolor($thumb_width, $thumb_height);
		
		If($file_ext=="gif") {
			
			$imgsoruce=imagecreatefromgif($full_server.$album.$file);
			
		} Elseif($file_ext=="jpg") {
			
			$imgsoruce=imagecreatefromjpeg($full_server.$album.$file);
			
		} Elseif($file_ext=="png") {
			
			$imgsoruce=imagecreatefrompng($full_server.$album.$file);
			
		} Else {
			
			return false;
			
		}
		imagecopyresized($imgresized, $imgsoruce, 0, 0, 0, 0, $thumb_width, $thumb_height, $imgdata[0], $imgdata[1]);
		
		$new_file=$full_server.$album.$file_name."_thumb.".$file_ext;
		//PHP 4.4.X added safemode check which made me add this here..
		
		$fh=fopen($new_file,'w');
		fclose($fh);
		
		
		If($file_ext=="gif") {
		
			If(!imagegif($imgresized, $new_file)) {
				return false;
			}
			
		} Elseif($file_ext=="jpg") {
			
			If(!imagejpeg($imgresized, $new_file,$jpg_quality)) {
				return false;
			}
			
		} Elseif($file_ext=="png") {
			
			If(!imagepng($imgresized, $new_file)) {
				return false;
			}
			
		}
		
		imagedestroy($imgsoruce);
		imagedestroy($imgresized);
		
		return True;
	}
	
	return false;
}
//The tiny but powerfull ;) admin panel.
function phadmin() {
	global $phmessage,$script_url,$album;
	
	If($phmessage) {
		Echo(" ".$phmessage." ");
	}
?>
 	
	}
//Makes a directory
function makedir($key) {
	global $full_server;
	
	$key=str_replace(".","",str_replace("/","",$key));
	$album=str_replace(".","",$_POST['album']);
	
	If(!@mkdir($full_server.$album.$key)) {
		return False;
	}
	@chmod($full_server.$album.$key,octdec("0777"));
	return True;
}
//Uploads the file to the current directory.
function upload() {
	global $full_server,$show_files;
	
	$key=$_FILES['image']['tmp_name'];
	$name=$_FILES['image']['name'];
	
	$album=str_replace(".","",$_POST['album']);
	
	If(in_array(file_ext($name),$show_files)) {
		If(!file_exists($full_server.$album.$name)) {
			If(!move_uploaded_file($key,$full_server.$album.$name)) {
				return False;
			} Else {
				return True;
			}
			
		}
	}
	return False;
}
function remove() {
	global $show_files;
	
	$file=$_POST['file'];
	
	
	$name=file_name($file);
	$ext=file_ext($file);
	
	$thumb=$name."_thumb.".$ext;
	
	If(in_array(file_ext($file),$show_files)) {
		If(@!unlink($file)) {
			return false;
		} Else {
			@unlink($thumb);
			return true;
		}
	}
	return False;
}
//Get the current album.
$album=stripslashes(str_replace(".","",$_GET['album'])); //Great security here.. Disallows going up the dir tree.
//Lil bit of security, not much but it may stop some kids from messing!
If(!is_dir($files_path.$album)) {
	$album="";
}
//We don't want ugly _'s or -'s to display with the file or folder names do we? No! So, lets take them out.
$find=array("_","-");
$replace=array(" "," ");
//############################# DISPLAY THE ALBUM###########################
//Boom! Splits the $album var into a readable array!
$folder=@explode("/",$album);
If($album) {
	$nav="
	| Upload Image |  
		| 
 
 |  
		| Make New Album |  
		| 
 
 |   ".$home_link." ";
} Else {
	$nav="  ".$home_link." ";	
}
//How many paths do we got in $album?
$count=@count($folder);
//Lets make the naviation! Don't look if you have a weak stomache!
for($i=0;$i<$count;$i++) {
	If($folder[$i]) {
		
		$path.=$folder[$i]."/";
		//Give all the folders except the last folder a link and a closed picture.
		If(($count-2) > $i) {
			$nav .=" > ![\"".ucwords($folder[$i])."\"](\"".$close_folder."\") ".ucwords($folder[$i])." ";
		} Else {
			$nav .=" > ![\"".ucwords($folder[$i])."\"](\"".$open_folder."\") ".ucwords($folder[$i])." ";
		}
	}
}
Echo($nav);
//Lets get some images!!
$dir=@opendir($full_server.$album);
//Loop through them all ;).
while($file=@readdir($dir)) {
	//Don't display the stupid directory tree files.
	If($file!= "." AND $file!= "..") {
		//If it's a directory, show the folder image with a link to the new album
		If(is_dir($full_server.$album.$file)) {
			//If the file has the ignore word in it, do not show the file.
			If(!eregi($ignore_word,$file)) {
				$display_name=str_replace($find,$replace,$file);
				//Make the html		
				
				$folders .= " | \n";
				$j++;
				If(is_int($j / $table_cells)) { //This makes the table all nice and neat, actually, it splits the table with a new ".ucwords($display_name)."
 |   every $table_cells images/folders.
					$folders.= "\n \n";
					$folder_close="1";
				} Else {
					$folders.="";
				}
			
			}
		// Else, the file is not a directory, so it must be an image.
		} Else {
			
			$file_ext=".".file_ext($file);
			$file_name=file_name($file);
			$display_name=str_replace($find,$replace,$file_name);
			//Hide the thumb files from displaying as regular files and disallow any file types that are not allowed.
			If((!eregi("_thumb",$file)) && (in_array(file_ext($file),$show_files))) {
				//If the file has the ignore word in it, do not show the file.
				If(!eregi($ignore_word,$file)) {
					
					//If a thumb file dosen't exists, then try and make one.
					
					If($auto_thumb) {
						If(!file_exists($full_server.$album.$file_name."_thumb".$file_ext)) {
							If(!file_thumb($file,$full_server.$album,$file_name)) {
								$thumb_error .="Thumb for ".$files_path.$album.$file." could not be created.";
							}
						}
					}
					//Now, if there is a thumb file, display the thumb, else display the full images but smaller :(.
					If(file_exists($full_server.$album.$file_name."_thumb".$file_ext) OR file_exists($full_server.$album.$file_name."_thumb".$file_ext)) {
						$thumb="_thumb".$file_ext;
					} Else {
						$thumb=$file_ext;
					}
					//Make the html
$remove="";
If($display_admin) {
	If($phAdmin==true) {
		$remove="\n\n";
	}
}
					If($drop_shadow) {
						//Cool drop shadow effect.
						$images .= "
 ".ucwords($display_name)." \n";
					} Else {
						//Image border
						$images .= "".$remove."
 | \n";
						
					}
					
					$k++;
					If(is_int($k / $table_cells)) { //This makes the table all nice and neat, actually, it splits the table with a new ".ucwords($display_name)."
 ".$remove."
 |   every $table_cells images/folders.
						$images .= "\n \n";
						$image_close="1";
					} Else {
						$images .="";
					}
				
				}
			}
		}
	}
}
@closedir($dir);
//Close the directory so the bugs don't get in and display some folders and images! Whew! What a workout!
?>
If($folders) {
	Echo("
 \n");
	Echo("\n");
	Echo("\n");
	Echo($folders);
	If(!$folder_close) {
		Echo("\n");
	}
	Echo(" \n");
}
Echo("
 \n");
If($images) {
	Echo("
 \n");
	Echo("\n");
	
	If($thumb_error && !$supress_error) {
		Echo("\n");
	Echo($images);
	If(!$image_close) {
		Echo("\n");
	}
	Echo(" The following thumb errors have occured:");
	}
	
} Else {
	Echo("
 ".$thumb_error."
 Maybe this is from the folder ".$files_path.$album." not being chmod 777.
 \n");
	Echo("\n");
}
Echo("\n");
	Echo("\n");
	Echo("| No images to display in this album. Please pick another album.");
	Echo(" |  \n");
Echo("
 \n");
If($display_admin) {
	
	Echo("
 
 \n");
	
	If($phAdmin==true) {
			phadmin();
	} Else {
		?>
	
		
	}
}
?>
 |