0){ return true; }else{ return false; } } /*assertion*/ /****************************************/ /* Functions */ /****************************************/ function imagecreatefrom($file){ if(strtoupper(substr($file,-3,3))=="JPG" || strtoupper(substr($file,-4,4))=="JPEG"){ $image=imagecreatefromjpeg($file); } if(strtoupper(substr($file,-3,3))=="PNG"){ $image=imagecreatefrompng($file); } if(strtoupper(substr($file,-3,3))=="GIF"){ $image=imagecreatefromgif($file); } return $image; } function image_same_type($file,$image,$quality = 100){ if(strtoupper(substr($file,-3,3))=="JPG" || strtoupper(substr($file,-4,4))=="JPEG"){ imagejpeg($image,null,$quality); } if(strtoupper(substr($file,-3,3))=="PNG"){ imagepng($image); } if(strtoupper(substr($file,-3,3))=="GIF"){ imagegif($image); } } if ( file_exists("config.php")){ include("config.php"); }else{ //generate_header(); error_reporting(0); echo ""; echo "
"; echo " Welcome to phpAlbum_$phpalbum_version
"; echo " You have to edit config_change_it.php and rename it to config.php.
"; echo " You have to define data directory, because of security issues it is recommended that this is not data/ but"; echo " something like \"data_Ab6Lkj88KJ/\""; echo "
"; generate_footer(); error_reporting(E_ERROR | E_WARNING | E_PARSE); return; } if ( !check_writable($data_dir)){ //generate_header(); error_reporting(0); echo ""; echo "
"; echo " Welcome to phpAlbum_$phpalbum_version
"; echo "Your data directory $data_dir is eather not existing or not writable
"; echo "Please check for existing of this directory and setup the access rights with CHMOD 777"; echo "
"; generate_footer(); error_reporting(E_ERROR | E_WARNING | E_PARSE); return; } function check_gd(){ if(function_exists("gd_info")){ $info=gd_info(); if(strstr($info['GD Version'],"2.")){ return true; }else{ return false; } } return false; } function string2store($string){ $str=str_replace("\n","",$string); $str=str_replace("\r","",$str); return $str; } function store2string($string){ $str=str_replace("","\n",$string); return $str; } function pa_html_encode($string){ return str_replace( array ( '&', '"', "'", '<', '>'), array ( '&' , '"', ''' , '<' , '>' ),$string); } function pa_html_decode($string){ return str_replace( array ( '&' , '"', ''' , '<' , '>' ),array ( '&', '"', "'", '<', '>'),$string); } function put_default_quality_settings(){ global $data_dir; /*create default quality settings*/ /*thmb_size:thmb_quality:image_size(0=original):image_quality:description*/ $settings="160|70|0|0|original|1|0\n140|70|700|85|middle|1|1\n100|70|500|85|small|1|0\n"; $file=fopen($data_dir."quality.dat","w"); fwrite($file,$settings); fclose($file); chmod($data_dir."quality.dat",0640); /*to be not possible read it by others*/ } function save_quality_settings(){ global $data_dir; $file=fopen($data_dir."quality.dat","w"); $i=1; while($i<4){ if(isset($_POST['p_q_enabled'.$i])){ $enabled=1; }else{ $enabled=0; } if($_POST['p_q_default']==$i){ $default=1; }else{ $default=0; } if($default==1){$enabled=1;} fwrite($file,$_POST['p_q_thmbs'.$i]."|".$_POST['p_q_thmbq'.$i]."|".$_POST['p_q_pics'.$i]."|".$_POST['p_q_picq'.$i]."|".$_POST['p_q_desc'.$i]."|".$enabled."|".$default."\n"); $i=$i+1; } fclose($file); } /****************************************/ /* SETTINGS */ /****************************************/ function read_settings(){ global $setup_password,$album_dir,$data_dir,$cache_dir,$site_name,$logo_path,$logo_enabled,$site_theme,$return_home_url,$new_dir_indic; global $quality_settings; global $cmd,$var1,$var2; global $logs_enabled,$logs_filename,$logs_exclude,$album_name,$album_dir_name,$cookie_password_hours,$setup_text,$next_text,$previous_text,$disable_bottom_nextprev; global $character_set; global $cache_thumbnails,$cache_resized_photos; global $directory_style,$maximum_photos_per_page,$raster_dir_x,$raster_dir_y,$next_page_text,$previous_page_text,$ftp_server,$ftp_server_photos_dir; global $comments_enabled; global $show_filenames; global $default_sorting; /***********************/ /*read main_setup */ /***********************/ if(!file_exists($data_dir."quality.dat")){ put_default_quality_settings(); } $file=file($data_dir."quality.dat"); foreach($file as $line_num=>$line){ $quality_settings[$line_num]=explode("|",$line); } // var_dump($quality_settings);echo '
'; if(!file_exists($data_dir."main_setup.dat")){ $cmd="setup"; $var1="main"; return; } $file=file($data_dir."main_setup.dat"); $setup_password=substr($file[0],0,strlen($file[0])-1); $album_dir=substr($file[1],0,strlen($file[1])-1); $cache_dir=substr($file[2],0,strlen($file[2])-1); $site_name=substr($file[3],0,strlen($file[3])-1); $logo_enabled=substr($file[4],0,strlen($file[4])-1); $logo_path=substr($file[5],0,strlen($file[5])-1); $site_theme=substr($file[6],0,strlen($file[6])-1); $return_home_url=substr($file[7],0,strlen($file[7])-1); $new_dir_indic=substr($file[8],0,strlen($file[8])-1); if(isset($file[9])){ //version 0.2.4 already stored. $album_name=substr($file[9],0,strlen($file[9])-1); $album_dir_name=substr($file[10],0,strlen($file[10])-1); $cookie_password_hours=substr($file[11],0,strlen($file[11])-1); $setup_text=substr($file[12],0,strlen($file[12])-1); $next_text=substr($file[13],0,strlen($file[13])-1); $previous_text=substr($file[14],0,strlen($file[14])-1); $disable_bottom_nextprev=substr($file[15],0,strlen($file[15])-1); $character_set=substr($file[16],0,strlen($file[16])-1); } if(isset($file[17])){ //version 0.3.0 already stored $directory_style=substr($file[17],0,strlen($file[17])-1); $maximum_photos_per_page=substr($file[18],0,strlen($file[18])-1); $raster_dir_x=substr($file[19],0,strlen($file[19])-1); $raster_dir_y=substr($file[20],0,strlen($file[20])-1); $next_page_text=substr($file[21],0,strlen($file[21])-1); $previous_page_text=substr($file[22],0,strlen($file[22])-1); //ftp-settings $ftp_server=substr($file[23],0,strlen($file[23])-1); $ftp_server_photos_dir=substr($file[24],0,strlen($file[24])-1); } if(isset($file[25])){ $show_filenames=(substr($file[25],0,strlen($file[25])-1)=="true")? true:false; } if(isset($file[26])){ $default_sorting=substr($file[26],0,strlen($file[26])-1); } /***********************/ /*read quality settings*/ /***********************/ /***********************/ /*read comments settings */ /***********************/ if(file_exists($data_dir."comments_setup.dat")){ $file=file($data_dir."comments_setup.dat"); $comments_settings=explode("|",$file[0]); $comments_enabled=($comments_settings[0]=="true")? true:false; } /***********************/ /*read logs settings*/ /***********************/ if(file_exists($data_dir."logs_setup.dat")){ $file=file($data_dir."logs_setup.dat"); $logs_settings=explode("|",$file[0]); $logs_enabled=$logs_settings[0]; $logs_filename=$logs_settings[1]; $logs_exclude=$logs_settings[2]; } /***********************/ /* read theme settings*/ /***********************/ global $theme_params; if(file_exists($data_dir.$site_theme.".dat")){ $file=file($data_dir.$site_theme.".dat"); $theme_settings=explode("|",$file[0]); $num=0; while (isset($theme_settings[$num])){ $theme_params[$num]= $theme_settings[$num]; $num=$num+1; } } if(file_exists($data_dir."cache_setup.dat")){ $file=file($data_dir."cache_setup.dat"); $logs_settings=explode("|",$file[0]); $cache_thumbnails=$logs_settings[0]; $cache_resized_photos=$logs_settings[1]; } } function print_error($error){ echo "
$error
"; } function print_warning($error){ echo "
WARNING:$error
"; } function is_setup_user(){ global $passwd; $passwd_req=get_password_for_cmd("setup",""); if($passwd_req!="" && !strstr($passwd,$passwd_req) ){ return false; }else{ return true; } } function get_password_for_cmd($cmd,$var1){ global $setup_password,$demo_functionality; global $album_dir,$passwd; if (!strcmp($cmd,"setup")){ return $setup_password; } if (!strcmp($cmd,"delcache")){ return $setup_password; } if (!strcmp($cmd,"phpinfo")){ return $setup_password; } if( !strcmp($cmd,"album") || !strcmp($cmd,"image") || !strcmp($cmd,"imageview") || !strcmp($cmd,"thmb")){ $dirs=explode("/",$var1); $dir=""; $sett=get_directory_settings($dir,0); if(strlen($sett[0][1])>0 && !strstr($passwd,$sett[0][1])){ return $sett[0][1]; } foreach($dirs as $num => $file){ $dir=$dir."/".$file; $sett=get_directory_settings($dir,0); // echo $dir." ".$sett[0][1]."
"; if(strlen($sett[0][1])>0 && !strstr($passwd,$sett[0][1])){ return $sett[0][1]; } } } return ""; } function generate_password_page($cmd,$var1="",$var2=""){ $content="
"; if (strlen($var2)>0){ $content.= t("ID_ENTER_PASSWD")."
"; }else{ $content.= t("ID_ENTER_PASSWD").""; } $content.= "
"; $content.= "_"; theme_generate_setup_page($content); } function get_dir_size($dir){ $list = dir($dir); $size=0; while ($filename = $list->read()){ if ($filename == '.' || $filename == '..') continue; $size=$size+filesize($dir.$filename); } return $size; } function is_cachable($text,$var1){ global $cache_thumbnails,$cache_resized_photos; if ($text == "logo" || $text == "dir_logo") return true; if ($text == "theme") return false; if ($text == "image") { if($cache_resized_photos=="true"){ return true;}else{ return false;} } if ($text == "setup") return false; if ($text == "delcache") return false; if ($text == "setquality") return false; if ($text == "album") return false; if ($text == "imageview") return false; if ( strlen($text)==0) return false; if ($text == "thmb"){ if($cache_thumbnails=="true"){ return true;}else{ return false;} } return false; } function is_movie($var1){ $t=strtoupper(substr($var1,-3,3)); $t2=strtoupper(substr($var1,-4,4)); if($t=="AVI" ||$t=="MPG" ||$t2=="MPEG" ||$t=="MOV" ||$t=="WMV" ||$t=="VOB") return true; return false; } function is_audio($var1){ $t=strtoupper(substr($var1,-3,3)); if($t=="MP3" ||$t=="WMA" ||$t=="WAV") return true; return false; } function is_image($var1){ $t=strtoupper(substr($var1,-3,3)); $t2=strtoupper(substr($var1,-4,4)); if($t=="GIF" ||$t=="PNG" ||$t=="JPG" ||$t2=="JPEG") return true; return false; } function is_cached($cache_dir,$cmd,$var1,$var2,$var3,$quality){ //return false; $fn=get_cache_file_name($cache_dir,$cmd,$var1,$var2,$var3,$quality); return file_exists($fn); } function load_from_cache($cache_dir,$cmd,$var1,$var2,$var3,$quality){ $fn=get_cache_file_name($cache_dir,$cmd,$var1,$var2,$var3,$quality); /*$file=fopen($fn,"rb"); $doc=fread($file,filesize($fn)); fclose($file); echo $doc;*/ if($cmd == "thmb" || $cmd == "logo" || $cmd == "dir_logo" || $cmd == "image" ){ //$headers=getallheaders();-- not supported by others then apache if (isset( $_SERVER["HTTP_IF_MODIFIED_SINCE"] ) ){ if ( date("D, d M Y H:i:s T",filemtime($fn)) == $_SERVER["HTTP_IF_MODIFIED_SINCE"] ) { header('HTTP/1.0 304 Not Modified'); exit; } } } if(file_exists($fn.".hdr")){ resend_header($fn.".hdr"); } readfile($fn); } function get_cache_file_name($cache_dir,$cmd,$var1,$var2,$var3,$quality){ $filename=$cache_dir . "cache_"; $filename.=$cmd; $filename.="_".str_replace(" ","_",str_replace("/","_",$var1)); $filename.="_".str_replace(" ","_",str_replace("/","_",$var2)); $filename.="_".str_replace(" ","_",str_replace("/","_",$var3)); $filename.="_".$quality; $filename.=".cache"; return $filename; } function get_data_file_name($var1){ global $data_dir; $filename.=$data_dir."_".str_replace(" ","_",str_replace("/","_",$var1)); return $filename; } function cache_document($cache_dir,$cmd,$var1,$var2,$var3,$quality){ $doc=ob_get_contents(); //echo ob_get_length(); $filename=get_cache_file_name($cache_dir,$cmd,$var1,$var2,$var3,$quality); //echo $filename; $file=fopen($filename,"wb"); fwrite($file,$doc); fclose($file); $m_time= filemtime($filename); send_header("Last-Modified: ".date("D, d M Y H:i:s T",$m_time) ); if(sent_header()){ /*cache header*/ store_header($filename.".hdr"); } } function generate_header() { global $logo_path,$logo_enabled,$site_name,$site_theme,$theme_params,$phpalbum_version,$character_set; send_header("Content-type: text/html; charset=$character_set"); echo "\n$site_name"; echo ""; //if ( file_exists($logo_path) && $logo_enabled=="true") { //echo "
"; // }else{ // theme_put_logo(); //} } function get_file_for_screenshot($scr,$dw){ $scr_base=substr($scr,0,strlen($scr)-4); foreach($dw as $file){ if(!is_image($file)){ if($scr_base==$file || $scr_base."."== substr($file,0,strlen($scr_base."."))){ return $file; } } } return ""; } function get_screanshot_for_file($file,$fl){ foreach($fl as $scr){ if( is_image($scr)){ $scr_base=substr($scr,0,strlen($scr)-4); if($scr_base==$file || $scr_base."." == substr($file,0,strlen($scr_base."."))){ return $scr; } } } return ""; } function generate_album($album_dir,$var1,$thumb_size,$thumb_quality,$quality,$passwd,$start_with=0){ global $quality_settings,$site_theme,$theme_params,$new_dir_indic,$return_home_url,$album_name,$album_dir_name,$setup_text; global $directory_style,$maximum_photos_per_page,$raster_dir_x,$raster_dir_y; global $show_filenames; global $act_dir_sorting; if ($directory_style=="flowing"){ $number_of_thmbs=$maximum_photos_per_page; }else{ $number_of_thmbs=$raster_dir_x*$raster_dir_y; } if($number_of_thmbs==0 || $number_of_thmbs<0){ $number_of_thmbs=1000000;/*i hope nobody will make more then million photos in one dir, of yes, i'm sorry :)*/ } /*bugfixing for opera, but shuould by done some other way*/ $is_opera=strstr(strtoupper($_SERVER['HTTP_USER_AGENT']),"OPERA"); if($is_opera){ $inline_style="display: inline-table;"; }else{ $inline_style="display: inline;"; } $dir_settings=get_directory_settings("/".$var1); if(isset($dir_settings[0][5])){ $act_dir_sorting=$dir_settings[0][5]; } $dir_path[0]['name']=t('ID_PHOTO_DIR'); $dir_path[0]['link']="main.php?cmd=album&var2=".$quality; $dirs=explode('/',$var1); $act_dir=""; for($i=0;$i0){ $dir_path[$i+1]['name']=pa_html_decode($ss[0][4]); }else{ $dir_path[$i+1]['name']=conv_out($dirs[$i]); } $dir_path[$i+1]['link']="main.php?cmd=album&var1=".urlencode($act_dir)."&var2=".$quality; } $count=$quality_settings[0][5]+$quality_settings[1][5]+$quality_settings[2][5]; $quality_links=Array(); if($count>1){ $i=0; $first=1; while($i<3){ if($quality_settings[$i][5]==1){ $quality_links[$i]['name']=$quality_settings[$i][4]; $quality_links[$i]['link']="main.php?cmd=setquality&var1=$i&var2=".urlencode($var1); if($quality==$i){ $quality_links[$i]['actual']=1; }else{ $quality_links[$i]['actual']=0; } } $i=$i+1; } } $dir=$album_dir . $var1; /*directory description*/ $dir_long_desc=store2string(pa_html_decode($dir_settings[0][3])); /*openning directories*/ if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if( filetype($dir . $file)=="dir" ) { if($file !="." && $file !=".."){ $sett_all=get_directory_settings($var1.$file,0); $sett=$sett_all[0]; if($sett[6]=="true"){ //visible if(strlen($sett[4])>0){ $name=$sett[4]; }else{ $name=$file; } $file_array=Array("filename"=>$file,"time"=>filectime($dir . $file),"name"=>$name,"desc"=>$sett[2]); $filelist[]=$file_array; } } } } closedir($dh); $directories=Array(); $directories_cnt=0; if(sizeof($filelist)>0){ usort($filelist,"file_array_cmp"); while ( list($key,$file_array)=each($filelist)){ /*visibility*/ $file=$file_array['filename']; $blocked=false; if(strlen(get_password_for_cmd("album",$var1.$file))>0){ if(!strstr($passwd,get_password_for_cmd("album",$var1.$file))){ $blocked=true;}; } if($blocked){ $dir_pic="main.php?cmd=dir_logo&var1=NOTSUP&var2=DIR_PASSWD&var3=".theme_get_id(); $directories[$directories_cnt]['stat']='PASSWD'; }else{ /*test if there is some new images*/ $diff = (time() - filemtime($dir.$file))/60/60; if ($diff < $new_dir_indic ){ $dir_pic="main.php?cmd=dir_logo&var1=NOTSUP&var2=DIR_NEW&var3=".theme_get_id(); $directories[$directories_cnt]['stat']='NEW'; }else{ $dir_pic="main.php?cmd=dir_logo&var1=NOTSUP&var2=DIR&var3=".theme_get_id(); $directories[$directories_cnt]['stat']='NORM'; } } /*defining variable*/ $directories[$directories_cnt]['link']="main.php?cmd=album&var1=".urlencode($var1.$file)."/&var2=".$quality; $directories[$directories_cnt]['logo']=$dir_pic; if($file_array['name']==$file_array['filename']){ /*it is filename and should be converted*/ $directories[$directories_cnt]['name']=conv_out($file_array['filename']); }else{ $directories[$directories_cnt]['name']=pa_html_decode($file_array['name']); } $directories[$directories_cnt]['desc']=pa_html_decode($file_array['desc']); $directories_cnt++; } } } } /*openning files*/ $done_files[]=""; if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if( filetype($dir . $file)=="file" || filetype($dir . $file)=="link" ) { $i=1; $img_desc=""; while(isset($dir_settings[$i][0])){ if($dir_settings[$i][0]==$file){ $img_desc=$dir_settings[$i][1]; break; } $i=$i+1; } if(strlen($img_desc)==0){ $img_desc=$file; } $file_array=Array("filename"=>$file,"time"=>filectime($dir . $file),"name"=>$img_desc); $filelist2[]=$file_array; $file_scr[]=$file; } } closedir($dh); if(sizeof($filelist2)>0){ usort($filelist2,"file_array_cmp"); $qq=$quality_settings[$quality][0]."_".$quality_settings[$quality][1]; $thumbnails=Array(); $thumbnails_cnt=0; $cnt=0; if($start_with>(sizeof($filelist2)-1)|| $start_with<0){ $start_with=0; /*just to be sure*/ } while ( list($key,$file_array)=each($filelist2)){ $file=$file_array['filename']; $file_ok=false; if($cnt>=$start_with and $cnt<$start_with+$number_of_thmbs){ if(is_image($file)){ $file_ok=true; $i=1; $img_desc=""; while(isset($dir_settings[$i][0])){ if($dir_settings[$i][0]==$file){ $img_desc=$dir_settings[$i][1]; break; } $i=$i+1; } $style="me3"; /* if(strlen($img_desc)==0){ $img_desc=" "; $style="me4"; }*/ $scr=get_file_for_screenshot($file,$file_scr); if($scr!=""){ $done_files[]=$scr; $thumbnails[$thumbnails_cnt]['thmb']="main.php?cmd=thmb&var1=". urlencode($var1.$file)."&var2=".$qq; $thumbnails[$thumbnails_cnt]['desc']=pa_html_decode($img_desc); if($show_filenames && $thumbnails[$thumbnails_cnt]['desc']==""){ $thumbnails[$thumbnails_cnt]['desc']=conv_out($scr); } $thumbnails[$thumbnails_cnt]['link']="main.php?cmd=image&var1=".urlencode($var1.$scr)."&var2=".$quality; }else{ $thumbnails[$thumbnails_cnt]['thmb']="main.php?cmd=thmb&var1=". urlencode($var1.$file)."&var2=".$qq; $thumbnails[$thumbnails_cnt]['desc']=pa_html_decode($img_desc); if($show_filenames && $thumbnails[$thumbnails_cnt]['desc']==""){ $thumbnails[$thumbnails_cnt]['desc']=conv_out($file); } $thumbnails[$thumbnails_cnt]['link']="main.php?cmd=imageview&var1=".urlencode($var1.$file)."&var2=".$quality; } } if(is_movie($file) && !array_search($file,$done_files)){ $file_ok=true; $scr=get_screanshot_for_file($file,$file_scr); if($scr!=""){ $file_ok=false; /*$thumbnails[$thumbnails_cnt]['thmb']="main.php?cmd=thmb&var1=".urlencode($var1.$scr)."&var2=".$qq."&var3=".theme_get_id(); $thumbnails[$thumbnails_cnt]['link']="main.php?cmd=image&var1=".urlencode($var1.$file)."&var2=".$quality; $thumbnails[$thumbnails_cnt]['desc']=$file; */ }else{ $thumbnails[$thumbnails_cnt]['thmb']="main.php?cmd=thmb&var1=[movie]&var2=".$qq."&var3=".theme_get_id(); $thumbnails[$thumbnails_cnt]['link']="main.php?cmd=image&var1=".urlencode($var1.$file)."&var2=".$quality; $thumbnails[$thumbnails_cnt]['desc']=conv_out($file); } } if(is_audio($file) && !array_search($file,$done_files)){ $file_ok=true; $scr=get_screanshot_for_file($file,$file_scr); if($scr!=""){ $file_ok=false; /* $thumbnails[$thumbnails_cnt]['thmb']="main.php?cmd=thmb&var1=".urlencode($var1.$scr)."&var2=".$qq."&var3=".theme_get_id(); $thumbnails[$thumbnails_cnt]['link']="main.php?cmd=image&var1=".urlencode($var1.$file)."&var2=".$quality; $thumbnails[$thumbnails_cnt]['desc']=$file; */ }else{ $thumbnails[$thumbnails_cnt]['thmb']="main.php?cmd=thmb&var1=[audio]&var2=".$qq."&var3=".theme_get_id(); $thumbnails[$thumbnails_cnt]['link']="main.php?cmd=image&var1=".urlencode($var1.$file)."&var2=".$quality; $thumbnails[$thumbnails_cnt]['desc']=conv_out($file); } } if($file_ok){ $thumbnails[$thumbnails_cnt]['width']=$thumb_size+12+30; $thumbnails[$thumbnails_cnt]['height']=$thumb_size+12+30; $thumbnails_cnt++; } } $cnt++; } } } } if ( sizeof($filelist2)<=$start_with+$number_of_thmbs){ //no next page $next_start_with=-1; }else{ $next_start_with=$start_with+$number_of_thmbs; } if ( $start_with==0){ //no next page $previous_start_with=-1; }else{ $previous_start_with=$start_with-$number_of_thmbs; if($previous_start_with<0){$previous_start_with=0;} } /*call theme function to generate page*/ theme_generate_album_page($dir_path,$quality_links,$directories,$thumbnails,$inline_style,$dir_long_desc,$next_start_with,$previous_start_with,$var1,$quality); return true; } function file_array_cmp($a,$b){ global $default_sorting,$act_dir_sorting; if($act_dir_sorting=="default"){ $sorting=$default_sorting; }else{ $sorting=$act_dir_sorting; } switch($sorting){ case "date_asc": if ($a['time'] == $b['time']) { return 0; } return ($a['time'] < $b['time']) ? -1 : 1; break; case "date_desc": if ($a['time'] == $b['time']) { return 0; } return ($a['time'] < $b['time']) ? 1 : -1; break; case "filename_asc": if ($a['filename'] == $b['filename']) { return 0; } return ($a['filename'] < $b['filename']) ? -1 : 1; break; case "filename_desc": if ($a['filename'] == $b['filename']) { return 0; } return ($a['filename'] < $b['filename']) ? 1 : -1; break; case "name_asc": if ($a['name'] == $b['name']) { return 0; } return ($a['name'] < $b['name']) ? -1 : 1; break; case "name_desc": if ($a['name'] == $b['name']) { return 0; } return ($a['name'] < $b['name']) ? 1 : -1; break; default: return 0; } } function get_directory_settings($dir,$full = 1){ global $data_dir,$album_dir; if ($dir=="\\") $dir=""; if(substr($dir,0,1)!="/"){ $dir="/".$dir; } if(substr($dir,-1,1)!="/"){ $dir=$dir."/"; } $file_name=stripslashes($data_dir.str_replace(" ","_",str_replace("/","_",$dir)).".dat"); $settings[0]=$dir; if(file_exists($file_name)){ $file=file($file_name); if(strlen($file)>0){ $params=explode("|",substr($file[0],0,strlen($file[0])-1)); $settings[1]=$params[0]; $settings[2]=$params[1]; $settings[3]=$params[2]; if(strlen($params[5])>0){ /*new settings for 0.3.1.4*/ $settings[4]=$params[3]; /*alias*/ $settings[5]=$params[4]; /*sorting*/ $settings[6]=$params[5]; /*visibility*/ }else{ $settings[4]=""; /*alias*/ $settings[5]="default"; /*sorting*/ $settings[6]="true"; /*visibility*/ } }else{ $settings[1]=""; $settings[2]=""; $settings[3]=""; $settings[4]=""; /*alias*/ $settings[5]="default"; /*sorting*/ $settings[6]="true"; /*visibility*/ } }else{ $settings[1]=""; $settings[2]=""; if(!isset($settings[3])){ $settings[3]=""; } $settings[4]=""; /*alias*/ $settings[5]="default"; /*sorting*/ $settings[6]="true"; /*visibility*/ } $sett[0]=$settings; /*read settings for all photos in this direcotry ..*/ /*first read the settings in the file*/ if($full==1){ $num=1; while(isset($file[$num])){ $files[]=explode("|",substr($file[$num],0,strlen($file[$num])-1)); $num=$num+1; } /*now read the directory for files and try to find something about these in settings*/ if(file_exists($album_dir.$dir)){ if ($dh = opendir($album_dir.$dir)) { while (($file = readdir($dh)) !== false) { if( (filetype($album_dir.$dir ."/". $file)=="file" || filetype($album_dir.$dir ."/". $file)=="link" ) && is_image($file) ){ $files2[]=$file; } } closedir($dh); } } /*consolidate files with settings*/ if(sizeof($files2)>0){ asort($files2); foreach($files2 as $num => $file_name){ /*find file in settings*/ $found=0; $i=0; while(isset($files[$i])){ if($file_name==$files[$i][0]){ $found=1; $sett[]=$files[$i]; break; } $i=$i+1; } if($found==0){ $sett[]=Array($file_name,"",""); } } }/*if */ } return $sett; } function get_all_sortings(){ $sorts= Array ( "default"=> "Default", "date_asc"=> "Date - Ascending", "date_desc"=> "Date - Descending", "filename_asc"=> "Filename - Ascending", "filename_desc"=> "Filename - Descending", "name_asc"=> "Name - Ascending", "name_desc"=> "Name - Descending" ); return $sorts; } function get_photos_directories($dir,$filelist){ global $album_dir; $sett=get_directory_settings($dir,0); $filelist[]=$sett[0]; if (is_dir($album_dir.$dir)) { if ($dh = opendir($album_dir.$dir)) { while (($file = readdir($dh)) !== false) { if( filetype($album_dir.$dir.$file)=="dir" && $file!="." && $file !="..") { $filelist=get_photos_directories($dir.$file."/",$filelist); } } closedir($dh); } } return $filelist; } function get_themes(){ global $themes_dir; $dir=$themes_dir; if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if( filetype($dir . $file)=="dir" && $file!="." && $file !=".." && $file !="engines") { $filelist[]=$file; } } closedir($dh); } } return $filelist; } /****************************************/ /* THMB */ /****************************************/ function generate_thumb($var1,$thumb_size,$thumb_quality){ global $album_dir,$character_set; $width = $thumb_size; $height = $thumb_size; $var1=stripslashes($var1); // Content type if(is_image($var1)){ $mime=get_mime($var1); send_header("Content-type: ".$mime); }else{ send_header('Content-type: image/png'); } send_header("Content-Disposition: filename=thmb_".conv_out_header(basename($var1),$character_set)." "); if($var1=="[movie]"){$var1="movie.png";} else if($var1=="[audio]"){$var1="audio.png";} else{$var1=$album_dir.$var1;} // Get new dimensions list($width_orig, $height_orig) = getimagesize($var1); //$image_p = imagecreatetruecolor($width+10, $height+10); //$color=ImageColorAllocate( $image_p, 32, 32, 32 ); //imagefill($image_p,0,0,$color); if ($width && ($width_orig < $height_orig)) { $width = ($height / $height_orig) * $width_orig; } else { $height = ($width / $width_orig) * $height_orig; } // Resample $image=imagecreatefrom($var1); $image_p = imagecreatetruecolor($width, $height); $bgcol=theme_get_bgcolor(); $color = ImageColorAllocate( $image_p,$bgcol[0] ,$bgcol[1] ,$bgcol[2] ); imagefill($image_p,0,0,$color); //imagecopyresampled($image_p, $image, ($thumb_size-$width)/2+5, ($thumb_size-$height)/2+5, 0, 0, $width, $height, $width_orig, $height_orig); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); // Output image_same_type($var1,$image_p,$thumb_quality); } /****************************************/ /* IMAGE */ /****************************************/ function get_mime($var1){ $t=strtoupper(substr($var1,-4,4)); switch($t){ case ".JPG": case "JPEG": return "image/jpeg"; break; case ".GIF": return "image/gif"; break; case ".PNG": return "image/png"; break; default: return ""; break; } } function generate_image($var1,$quality){ global $quality_settings,$album_dir; global $character_set; $var1=stripslashes($var1); $m_time=filemtime($album_dir.$var1); //$headers=getallheaders(); --not supported by others then apache if (isset( $_SERVER["HTTP_IF_MODIFIED_SINCE"] ) ){ if ( date("D, d M Y H:i:s T",$m_time) == $_SERVER["HTTP_IF_MODIFIED_SINCE"] ) { send_header('HTTP/1.0 304 Not Modified'); exit; } } if(is_image($var1)){ // Content type send_header("Last-Modified: ".date("D, d M Y H:i:s T",$m_time)); $mime=get_mime($var1); send_header("Content-type: ".$mime); send_header("Content-Disposition: filename=".conv_out_header(basename($var1),$character_set)." "); if( $quality_settings[$quality][2] == 0){ /*$file=fopen($var1,"rb"); $doc=fread($file,filesize($var1)); fclose($file); echo $doc;*/ readfile($album_dir.$var1); return false; }else{ $image_low_size=$quality_settings[$quality][2]; $width=$image_low_size; $height=$image_low_size; // Get new dimensions list($width_orig, $height_orig) = getimagesize($album_dir.$var1); if ($width && ($width_orig < $height_orig)) { $width = ($height / $height_orig) * $width_orig; } else { $height = ($width / $width_orig) * $height_orig; } $image_p = imagecreatetruecolor($width, $height); // Resample $image = imagecreatefrom($album_dir.$var1); //$image_p = imagecreatetruecolor($width, $height); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); // Output image_same_type($var1,$image_p,$quality_settings[$quality][3]); return true; } } if(!is_image($var1)){ ob_end_clean(); send_header("Content-type: application/download; name=\"".basename($var1)."\""); send_header("Content-Disposition: attachment; filename=\"".basename($var1)."\" "); send_header("Content-Length: ".filesize($album_dir.$var1)." "); send_header("Last-Modified: ".date("D, d M Y H:i:s T",$m_time)." " ); readfile($album_dir.$var1); return false; } } function SendDownloadHeaders($filename,$file_size=0) { $isIE = $isIE6 = 0; if (strstr($HTTP_USER_AGENT, 'compatible; MSIE ') !== false && strstr($HTTP_USER_AGENT, 'Opera') === false) { $isIE = 1; } if (strstr($HTTP_USER_AGENT, 'compatible; MSIE 6') !== false && strstr($HTTP_USER_AGENT, 'Opera') === false) { $isIE6 = 1; } if ($isIE) { $filename=rawurlencode($filename); header ("Pragma: public"); header ("Cache-Control: no-store, max-age=0, no-cache, must-revalidate"); // HTTP/1.1 header ("Cache-Control: post-check=0, pre-check=0", false); header ("Cache-Control: private"); //set the inline header for IE, we'll add the attachment header later if we need it header ("Content-Disposition: inline; filename=$filename"); } // Try to pop up the "save as" box // IE makes this hard. It pops up 2 save boxes, or none. // http://support.microsoft.com/support/kb/articles/Q238/5/88.ASP // http://support.microsoft.com/default.aspx?scid=kb;EN-US;260519 // But, according to Microsoft, it is "RFC compliant but doesn't // take into account some deviations that allowed within the // specification." Doesn't that mean RFC non-compliant? // http://support.microsoft.com/support/kb/articles/Q258/4/52.ASP // all browsers need the application/octet-stream header for this header ("Content-Type: application/octet-stream; name=\"$filename\""); // http://support.microsoft.com/support/kb/articles/Q182/3/15.asp // Do not have quotes around filename, but that applied to // "attachment"... does it apply to inline too? header ("Content-Disposition: attachment; filename=\"$filename\""); if ($isIE && !$isIE6) { // This combination seems to work mostly. IE 5.5 SP 1 has // known issues (see the Microsoft Knowledge Base) // This works for most types, but doesn't work with Word files header ("Content-Type: application/download; name=\"$filename\""); // These are spares, just in case. :-) //header("Content-Type: $type0/$type1; name=\"$filename\""); //header("Content-Type: application/x-msdownload; name=\"$filename\""); //header("Content-Type: application/octet-stream; name=\"$filename\""); } else { // another application/octet-stream forces download for Netscape header ("Content-Type: application/octet-stream; name=\"$filename\""); } if ($filesize > 0) { header("Content-Length: $filesize"); } } // end fn SendDownloadHeaders /****************************************/ /* DELTE CACHE */ /****************************************/ function delete_cache($cache_dir,$display=1){ if ($dh = opendir($cache_dir)) { while (($file = readdir($dh)) !== false) { if($file != "." && $file!=".."){ unlink ( $cache_dir . $file); if($display==1) echo "deleting : ".$cache_dir.$file."
"; } } closedir($dh); } } /****************************************/ /* NEXT PREV IMAGE */ /****************************************/ function get_next_prev_image ($var1){ global $album_dir,$act_dir_sorting; $tmp="null"; $dirname=dirname($var1); if($dirname=="."){ $dirname=""; }else{ $dirname.="/"; } $dir_settings=get_directory_settings($dirname); $act_dir_sorting=$dir_settings[0][5]; if ($dh = opendir(dirname($album_dir.$var1))) { while (($file = readdir($dh)) !== false) { if($file != "." && $file!=".." && (filetype(dirname($album_dir.$var1)."/".$file)=="file" ||filetype(dirname($album_dir.$var1)."/".$file)=="link") && is_image($file)){ $i=1; $img_desc=""; while(isset($dir_settings[$i][0])){ if($dir_settings[$i][0]==$file){ $img_desc=$dir_settings[$i][1]; break; } $i=$i+1; } if(strlen($img_desc)==0){ $img_desc=$file; } $file_array=Array("filename"=>$file,"time"=>filectime(dirname($album_dir.$var1)."/".$file),"name"=>$img_desc); $file_scr[]=$file; $filelist[]=$file_array; }else{ $dw[]=$file; } } closedir($dh); if(sizeof($filelist)>0) { usort($filelist,'file_array_cmp'); while(list($key,$file_array)=each($filelist)){ $file=$file_array['filename']; if ($file == basename($var1)){ if($tmp!="null"){ $names[]=$dirname.$tmp; }else{ $names[]="null"; } while(list($key,$file_array)=each($filelist)){ $file=$file_array['filename']; if(!get_file_for_screenshot($file,$dw)) break; } //echo "KEY=".$key; //echo "FILE=".$file; if($file_array !== null){ $names[]= $dirname.$file; }else{ $names[]= "null"; } } if(!get_file_for_screenshot($file,$dw)){ $tmp=$file; } } } return $names; } } /****************************************/ /* IMAGE VIEW */ /****************************************/ function generate_image_view($var1,$quality,$var3){ global $quality_settings,$album_dir,$return_home_url,$album_name,$album_dir_name,$next_text,$previous_text,$disable_bottom_nextprev,$show_filenames; $var1=stripslashes($var1); $qq=$quality_settings[$quality][2]."_".$quality_settings[$quality][3]; $dir_path[0]['name']=t('ID_PHOTO_DIR'); $dir_path[0]['link']="main.php?cmd=album&var2=".$quality; $dirs=explode('/',$var1); $act_dir=""; for($i=0;$i0){ $dir_path[$i+1]['name']=pa_html_decode($ss[0][4]); }else{ $dir_path[$i+1]['name']=conv_out($dirs[$i]); } $dir_path[$i+1]['link']="main.php?cmd=album&var1=".urlencode($act_dir)."&var2=".$quality; } $count=$quality_settings[0][5]+$quality_settings[1][5]+$quality_settings[2][5]; $quality_links=Array(); if($count>1){ $i=0; $first=1; while($i<3){ if($quality_settings[$i][5]==1){ $quality_links[$i]['name']=$quality_settings[$i][4]; $quality_links[$i]['link']="main.php?cmd=setquality&var1=$i&var2=".urlencode($var1); if($quality==$i){ $quality_links[$i]['actual']=1; }else{ $quality_links[$i]['actual']=0; } } $i=$i+1; } } /*testing for next and previous image ..*/ list( $prev,$next) = get_next_prev_image($var1); list($iwidth, $iheight, $itype, $iattr) = getimagesize($album_dir.$var1); if($quality_settings[$quality][2]== 0){ $width=$iwidth; $height=$iheight; }else { $image_low_size=$quality_settings[$quality][2]; $width=$image_low_size; $height=$image_low_size; if ($width && ($iwidth < $iheight)) { $width = ($height / $iheight) * $iwidth; } else { $height = ($width / $iwidth) * $iheight; } // $img_size="width=\"".$width."\" height=\"".$height."\""; } if( $prev != "null" ) { $prev_link = "main.php?cmd=imageview&var1=".urlencode($prev)."&var2=".$quality; }else{ $prev_link =""; }; if( $next != "null" ) { $next_link = "main.php?cmd=imageview&var1=".urlencode($next)."&var2=".$quality; }else{ $next_link = ""; }; $image_link="main.php?cmd=image&var1=".urlencode($var1)."&var2=".$qq; $imageview_link="main.php?cmd=imageview&var1=".urlencode($var1)."&var2=".$qq; $sett=get_directory_settings(dirname("/".$var1)); $i=1; $img_desc=""; $img_desc_long=""; while(isset($sett[$i][0])){ if($sett[$i][0]==basename($var1)){ $img_desc=pa_html_decode($sett[$i][1]); if($show_filenames && $img_desc==""){ $img_desc=conv_out(basename($var1)); } $img_desc_long=store2string(pa_html_decode($sett[$i][2])); break; } $i=$i+1; } /* store typed comments*/ if($var3=="save_comment"){ if(isset($_POST['p_text'])){ if(strlen($_POST['p_name'])==0){ $p_name="Anonymous"; }else{ $p_name=$_POST['p_name']; } if( isset($_POST['p_name']))setcookie("comment_name",$_POST['p_name'],time()+60*60*24*365); if( isset($_POST['p_email']))setcookie("comment_email",$_POST['p_email'],time()+60*60*24*365); save_comment($var1,$_POST['p_text'],$p_name,$_POST['p_email'],time()); } } if(substr($var3,0,15)=="delete_comment-"){ $time=substr($var3,15); delete_comment($var1,$time); } $comments=get_comments($var1); theme_generate_imageview_page($dir_path,$quality_links,$img_desc,$img_desc_long,$next_link,$prev_link,$image_link,$imageview_link,$width,$height,$var3,$comments); } function approve_comment($var1,$time){ global $data_dir; if(is_setup_user()){ if(file_exists($data_dir."all.comments")){ $file=file($data_dir."all.comments"); $f=fopen($data_dir."all.comments","w"); foreach($file as $line){ if(substr($line,0,strlen($var1."|".$time))!=$var1."|".$time){ fwrite($f,$line); } } fclose($f); } } } function delete_comment($var1,$time){ global $data_dir; if(is_setup_user()){ $fn=get_data_file_name($var1).".comments"; if(file_exists($fn)){ $file=file($fn); $f=fopen($fn,"w"); foreach($file as $line){ if(substr($line,0,strlen($time))!=$time){ fwrite($f,$line); } } fclose($f); } /*deleting from master file*/ if(file_exists($data_dir."all.comments")){ $file=file($data_dir."all.comments"); $f=fopen($data_dir."all.comments","w"); foreach($file as $line){ if(substr($line,0,strlen($var1."|".$time))!=$var1."|".$time){ fwrite($f,$line); } } fclose($f); } } } function save_comment($var1,$text,$name,$email,$time){ global $data_dir; $fn=get_data_file_name($var1).".comments"; if(file_exists($fn)){ $file=file($fn); } $f=fopen($fn,"w"); $t_text=pa_html_encode(stripslashes($text)); $t_text=str_replace("\n","
",$t_text); $t_text=str_replace("\r","",$t_text); fwrite($f,$time."|".pa_html_encode($name)."|".pa_html_encode($email)."|".$t_text."\n"); if(is_array($file)){ foreach($file as $line){ fwrite($f,$line); } } fclose($f); /*write it to all.comments*/ $f=fopen($data_dir."all.comments","a"); fwrite($f,$var1."|".$time."|".pa_html_encode($name)."|".pa_html_encode($email)."|".$t_text."\n"); fclose($f); } function get_comments($var1){ $comments=Array(); $fn=get_data_file_name($var1).".comments"; if(file_exists($fn)){ $file=file($fn); foreach($file as $line){ $tmp=explode("|",$line); $comments[]=Array("time"=>$tmp[0],"name"=>$tmp[1],"email"=>$tmp[2],"text"=>$tmp[3]); } } return $comments; } function get_all_comments(){ global $data_dir; $comments=Array(); $fn=$data_dir."all.comments"; if(file_exists($fn)){ $file=file($fn); foreach($file as $line){ $tmp=explode("|",$line); $comments[]=Array("pic"=>$tmp[0],"time"=>$tmp[1],"name"=>$tmp[2],"email"=>$tmp[3],"text"=>$tmp[4]); } } return $comments; } /****************************************/ /* FOOTER */ /****************************************/ function generate_footer(){ echo "
Powered by PHP Photo Album
"; echo "
_ share share- flat done done- town a a- flower hour hour- car suggest suggest- energy stay stay- shout quart quart- again see see- paper gray gray- set great great- sheet city city- cost heat heat- lie score score- late what what- ear set set- take case case- believe master master- by world world- ground voice voice- we ring ring- include check check- process teach teach- length led led- arrange table table- separate depend depend- print die die- us main main- doctor modern modern- question region region- hill brought brought- bank fig fig- them on on- neighbor pattern pattern- equal be be- smell next next- bell grow grow- mile clear clear- modern order order- summer found found- idea less less- agree mother mother- interest event event- does minute minute- but as as- silver her her- minute begin begin- brown move move- true . cry cry- remember top top- body store store- stay afraid afraid- wear lot lot- method there there- read home home- wife
_ join a bukkake join a bukkake- leave taiwanese gay sauna taiwanese gay sauna- hair browse dating sights browse dating sights- either sex with donkeys sex with donkeys- lost bondage in illinois bondage in illinois- mind whitehorse yukon singles whitehorse yukon singles- object taiwanese gay sauna taiwanese gay sauna- idea girls solo masturbation girls solo masturbation- success monster cock girls monster cock girls- observe drag queen xxx drag queen xxx- period missingno porn missingno porn- favor amateur mature orgy amateur mature orgy- like monster cock girls monster cock girls- joy high five nude pictures high five nude pictures- observe sex with donkeys sex with donkeys- write amateur lesbo video amateur lesbo video- sent the naked fish the naked fish- soft blonde doggy style blonde doggy style- pull jeans piss jeans piss- protect wife getting fucked sounds wife getting fucked sounds- between 0 porn 0 porn- thick kotex teens kotex teens- work half black porn half black porn- flow hardcore anal junky hardcore anal junky- chair extreme flirt webcams extreme flirt webcams- call bondage in illinois bondage in illinois- my extreme flirt webcams extreme flirt webcams- travel amateur mature orgy amateur mature orgy- cell daniela amavia nude daniela amavia nude- view girls solo masturbation girls solo masturbation- solution bad breast augmentations bad breast augmentations- rope sex amchine sex amchine- short nerd pron nerd pron- contain breast enlargement pills cream breast enlargement pills cream- wrong drag queen xxx drag queen xxx- what giovanna ralli nude giovanna ralli nude- need real animal japanses sex real animal japanses sex- search tinysblackadventures beauty tinysblackadventures beauty- color czech sex search engines czech sex search engines- crop girls solo masturbation girls solo masturbation- so bullz eye nude bullz eye nude- when prominent lesbians prominent lesbians- cow black cream pies xxx black cream pies xxx- mean adelaide teen chat adelaide teen chat- gentle blonde teen tied up blonde teen tied up- wear browse dating sights browse dating sights- fine master card blowjob master card blowjob- suggest australian porn actresses australian porn actresses- fat gangbangs british girls gangbangs british girls- what beggars and choosers nudity beggars and choosers nudity- wide half animal porn half animal porn- hold top hardcore sex sites top hardcore sex sites- with tchaikovsky big bang tchaikovsky big bang- camp thong devil thong devil- dog thong devil thong devil- shall jacqueline nude pictures jacqueline nude pictures- meet seven years war mpg seven years war mpg- small half black porn half black porn- win browse dating sights browse dating sights- better cat peeing on burger cat peeing on burger- don't nude mexicans free nude mexicans free- cut teen bootcamps in michigan teen bootcamps in michigan- branch teen curfew in mn teen curfew in mn- see national blonde day national blonde day- deep naked flexible photos naked flexible photos- teach wichita bukkake wichita bukkake- leg blowjobs anal xxx blowjobs anal xxx- love setting beaver traps setting beaver traps- love teen curfew in mn teen curfew in mn- band bad breast augmentations bad breast augmentations- ask xxx canines fucking humans xxx canines fucking humans- ice blonde doggy style blonde doggy style- third czech sex search engines czech sex search engines- enter direct ship live chicks direct ship live chicks- flow daniela amavia nude daniela amavia nude- horse mature teacher mpeg mature teacher mpeg- trade mature teacher mpeg mature teacher mpeg- first licking cream breast licking cream breast- suit tinysblackadventures beauty tinysblackadventures beauty- wrote taiwanese gay sauna taiwanese gay sauna- is hardcore anal junky hardcore anal junky- slave chinese swingers dating chinese swingers dating- instrument teen curfew in mn teen curfew in mn- money tabi bbw tabi bbw- few half black porn half black porn- arrange nude fat chick nude fat chick- usual teen bootcamps in michigan teen bootcamps in michigan- consonant seven years war mpg seven years war mpg- life canine orgasm canine orgasm- idea sex hotels ny sex hotels ny- bat missingno porn missingno porn- make naked flexible photos naked flexible photos- chair sherry birkin hentai sherry birkin hentai- equal australian porn actresses australian porn actresses- in teen weight issues teen weight issues- well cindy crawford naked scenes cindy crawford naked scenes- basic fat asses huge butts fat asses huge butts- populate amateur lesbo video amateur lesbo video- mount brothers giving blowjob brothers giving blowjob- cost teen curfew in mn teen curfew in mn- had blonde teen tied up blonde teen tied up- feel bullz eye nude bullz eye nude- captain nude toastee nude toastee- the video free fellation video free fellation- thing crazy pigtails crazy pigtails- round george estregan sex films george estregan sex films- system crotch shots anal sex crotch shots anal sex- hair sex toys domination sex toys domination- soil bracelet breast cancer silicone bracelet breast cancer silicone- form long beach escort services long beach escort services- probable alexandra moore having sex alexandra moore having sex- mother leza jones porn leza jones porn- busy naked kasumi naked kasumi- share sarah carter sex sarah carter sex- property one woman gangbangs one woman gangbangs- hurry sexy women stripping nude sexy women stripping nude- capital family counseling assessments family counseling assessments- busy jade feng pornstar jade feng pornstar- led tristan and mediaval romance tristan and mediaval romance- support dick hannah jeep dick hannah jeep- prove nude lena headey pics nude lena headey pics- field fuck me mommy fuck me mommy- won't busty mellons busty mellons- consonant beauty school miami beauty school miami- observe nude popstars pics nude popstars pics- next crystal meth teens crystal meth teens- why bizzarre holiday bizzarre holiday- push for pantyhose lovers only for pantyhose lovers only- weather big booty nice tits big booty nice tits- city moby dick audio moby dick audio- bell anal wives anal wives- compare bad housewives bad housewives- top malina perez topless malina perez topless- root romance in genres gather romance in genres gather- term erotic new year s greetings erotic new year s greetings- off stanton and femdom stanton and femdom- still
mature swinging women

mature swinging women

clean naked lady organic soap

naked lady organic soap

better naked body builder

naked body builder

their nude met

nude met

new mature fat naked women

mature fat naked women

girl naked amateur goats

naked amateur goats

room naked men in shower

naked men in shower

meat mom grabs kiss

mom grabs kiss

guess online masturbation guide

online masturbation guide

time nude men contest

nude men contest

tool naked venessa hudgens

naked venessa hudgens

among mandingo porn clips

mandingo porn clips

molecule nude socked teens

nude socked teens

those naked rope bondage

naked rope bondage

late online dating sedona

online dating sedona

by naked girls getting facial

naked girls getting facial

bad nude italian school girl

nude italian school girl

second naughty at home wife

naughty at home wife

word marilyn monroe nude fake

marilyn monroe nude fake

hot paid gay por site

paid gay por site

paragraph moive sex

moive sex

fear nail beauty course

nail beauty course

step male chasity porn

male chasity porn

fun nude hogties in winder

nude hogties in winder

pay male leo love traits

male leo love traits

suit nude rousse

nude rousse

winter mann boobs the song

mann boobs the song

before male teen feet

male teen feet

hit naked rebecca romain

naked rebecca romain

probable palo alto strip club

palo alto strip club

don't nadira alieva naked

nadira alieva naked

steel nissan shift knob

nissan shift knob

so nude sunbathing in aruba

nude sunbathing in aruba

arrange malin akerman peeing video

malin akerman peeing video

led mania and counseling

mania and counseling

team meredith naked

meredith naked

short marissa martinez chubby chicas

marissa martinez chubby chicas

section mia ciari nude video

mia ciari nude video

bring naked pics of females

naked pics of females

sugar muncie tranny identifacation

muncie tranny identifacation

block nude submitted pictures

nude submitted pictures

supply nude size zero

nude size zero

grew orient express beach nudity

orient express beach nudity

heart nude celiberty

nude celiberty

numeral nikkis fully nude

nikkis fully nude

parent nude chris meloni

nude chris meloni

tell masturbation tricks women

masturbation tricks women

planet models16 nudes

models16 nudes

teach parenting difficult teens australia

parenting difficult teens australia

tone milf school 4

milf school 4

night mad rad hair blonde

mad rad hair blonde

once nicola mclean nude

nicola mclean nude

job males sucking dick

males sucking dick

had mona lisa getting fucked

mona lisa getting fucked

view pantyhose fashion

pantyhose fashion

say myspace layouts with bootys

myspace layouts with bootys

post moms 4 fuck

moms 4 fuck

feet mature titty cumshots

mature titty cumshots

friend ministry for teens alcohol

ministry for teens alcohol

observe nude sexy catfighting videos

nude sexy catfighting videos

watch minature pony sex

minature pony sex

hole nudist newsgroup

nudist newsgroup

tail naked women in snow

naked women in snow

ran nude pinoy men

nude pinoy men

press naked over 30s

naked over 30s

chord nude cultures

nude cultures

fall origin of tarts

origin of tarts

clock mature planet website

mature planet website

continue milf cruiser misty

milf cruiser misty

usual mary kaminski cumming ga

mary kaminski cumming ga

hope mistress club staff

mistress club staff

where nikki fritz nude

nikki fritz nude

nature nonstop erotic caberet

nonstop erotic caberet

temperature north fulton beauty college

north fulton beauty college

thing messages board for teens

messages board for teens

sentence naked blades fiction

naked blades fiction

told nipple slip thumbs

nipple slip thumbs

car naked kite flying

naked kite flying

was naked mature skinny women

naked mature skinny women

plan nude toon games

nude toon games

serve nudist colines in wisconsin

nudist colines in wisconsin

bottom nicole kidman nipple

nicole kidman nipple

consonant naked wemon porn

naked wemon porn

above moms fucked by monsters

moms fucked by monsters

written ontario amateur bodybuilding association

ontario amateur bodybuilding association

shoulder mens underwear trunks

mens underwear trunks

feed nude arizona football team playgirl

nude arizona football team playgirl

half michelle s xxx revue

michelle s xxx revue

woman naked airbrush utah

naked airbrush utah

strange naked ryan students

naked ryan students

ring nude funny

nude funny

engine naked young girl naturalist

naked young girl naturalist

thin mistress remy london

mistress remy london

present orlando night clubs fetish

orlando night clubs fetish

sound masturbation joy

masturbation joy

system myspace titties

myspace titties

like nanny cam sex abuse

nanny cam sex abuse

garden muscle jock sex

muscle jock sex

rub mb vibrator exstacy

mb vibrator exstacy

had maine state sex offenders

maine state sex offenders

operate miss teen usa pagents

miss teen usa pagents

or paris hilton vagina photos

paris hilton vagina photos

state nude tiny pussy

nude tiny pussy

least mature breasts boobs

mature breasts boobs

saw minnesota beauty salons

minnesota beauty salons

arrive page sucker

page sucker

present nick jr teen

nick jr teen

throw nudist misty

nudist misty

similar missouri beaver

missouri beaver

book nylons pumps shoeplay bondage

nylons pumps shoeplay bondage

design mon yough singles

mon yough singles

as nude girls belly punch

nude girls belly punch

in monser cock

monser cock

inch michelle porn colorado

michelle porn colorado

during nake gay jocks

nake gay jocks

rich nude sophia marceau

nude sophia marceau

need mature drunk women

mature drunk women

wind nude locker room scenes

nude locker room scenes

coat painful femdom

painful femdom

evening non nude skirts

non nude skirts

pattern mpg 1964 chevy truck

mpg 1964 chevy truck

food over confident teen drivers

over confident teen drivers

caught manning counseling houston texas

manning counseling houston texas

foot obscene teens

obscene teens

crease mpegs drinking cum

mpegs drinking cum

cry naked nude boners

naked nude boners

written naked public bathing

naked public bathing

row milf oral sex

milf oral sex

neighbor overweight camp for teens

overweight camp for teens

flat orgy threesome

orgy threesome

bottom parental spanking art

parental spanking art

effect painful pleasures coupon

painful pleasures coupon

over on line dating horror stories

on line dating horror stories

book minor porn

minor porn

twenty mutual couple masturbation

mutual couple masturbation

year party chick video

party chick video

hand mature negligee

mature negligee

mother nude myspace cheri

nude myspace cheri

after padded underwear for women

padded underwear for women

main marci bowers doctor transgender

marci bowers doctor transgender

offer pakistan sex girls photo

pakistan sex girls photo

instrument nudist culture

nudist culture

shore mn swing feast

mn swing feast

provide naughty celebrities

naughty celebrities

eye pay per minute webcam

pay per minute webcam

ring nudism fkk

nudism fkk

got naked biker bitches

naked biker bitches

among mini teen model

mini teen model

noon nudism in missouri

nudism in missouri

afraid nasty work out vidio

nasty work out vidio

card nude hostage

nude hostage

ask nens underwear

nens underwear

condition naked you die movie

naked you die movie

single oma sex mature board

oma sex mature board

card nude teens vagina sex

nude teens vagina sex

motion naked puerto rican

naked puerto rican

air nigerian romance scammer database

nigerian romance scammer database

night mare love

mare love

art milwaukee singles groups

milwaukee singles groups

done paula patton nudity

paula patton nudity

mouth lyrics and teen angst

lyrics and teen angst

so natily portman nude

natily portman nude

fight naked rooms

naked rooms

method panty creampie fetish

panty creampie fetish

claim mpg sexy

mpg sexy

slave nude women hidden pic cent neprinol and vaginal infection

neprinol and vaginal infection

hand naked michael phelps

naked michael phelps

ball northlight counseling az

northlight counseling az

sister nylons smell

nylons smell

color metoclopramide breast milk

metoclopramide breast milk

modern mistral s kiss online

mistral s kiss online

center manga anime hentai

manga anime hentai

path male develop breasts

male develop breasts

trip nude school uniform girls

nude school uniform girls

laugh naked ladie extacy pills

naked ladie extacy pills

kept naked teenage pictures

naked teenage pictures

sense nubile busty

nubile busty

from nude scenes playboy

nude scenes playboy

result maturethumbs porn

maturethumbs porn

way medieval women and sexuality

medieval women and sexuality

island oridginal sin sex scene

oridginal sin sex scene

necessary mr chews eager beaver

mr chews eager beaver

circle nude youth photos free

nude youth photos free

above nasty ass head wind

nasty ass head wind

both paris huilton sex tape

paris huilton sex tape

rain nude japanese photobook

nude japanese photobook

contain orgasmic foreplay kit

orgasmic foreplay kit

view nympho blondes

nympho blondes

design nude goth teens

nude goth teens

corner nude sexy redheaded girls

nude sexy redheaded girls

twenty mens underwear catalogs

mens underwear catalogs

pair micah strapon

micah strapon

liquid nude black velvet painting

nude black velvet painting

glass naruto sakura hentai video

naruto sakura hentai video

hope naught mature

naught mature

spring orgasm tube

orgasm tube

pitch men love toyoda

men love toyoda

shout nikie hunter pornstar

nikie hunter pornstar

discuss naked halloween costumes

naked halloween costumes

bank naughty girls clits

naughty girls clits

check pamela s pittsburgh strip district

pamela s pittsburgh strip district

whole meghan mccain s jugs

meghan mccain s jugs

ring naked russian sex

naked russian sex

mouth michigan city blonde zepplin

michigan city blonde zepplin

appear nonk sex

nonk sex

dollar massage facial packages oklahoma

massage facial packages oklahoma

fish nude amature pics

nude amature pics

figure pat cummings nba pics

pat cummings nba pics

describe naked wentworth miller

naked wentworth miller

middle nude fitness model pics

nude fitness model pics

next pacific northwest teens

pacific northwest teens

kill oral sex risk

oral sex risk

insect minonite teens

minonite teens

woman lyrics elephant love medley

lyrics elephant love medley

found met ria erotic

met ria erotic

heart mature womens seperates

mature womens seperates

blue nordic nudist

nordic nudist

bird magnified pussy

magnified pussy

sharp pantyhose fiction

pantyhose fiction

neck mother daughter photos nude

mother daughter photos nude

we naked sraight men

naked sraight men

walk lyrics nirvana teen spirit

lyrics nirvana teen spirit

feel naked hard dicked guys

naked hard dicked guys

count nude rene

nude rene

rest masturbation techniques photos videos

masturbation techniques photos videos

stretch mature gay cartoon

mature gay cartoon

were nicole hilton naked

nicole hilton naked

and older men mature seniors

older men mature seniors

book mature nude men

mature nude men

three marital counseling techniques

marital counseling techniques

wild military men singles

military men singles

order massive dick teen

massive dick teen

help mallory taylor nude

mallory taylor nude

round open guitar chord fingerings

open guitar chord fingerings

rather mary kay for teens

mary kay for teens

nose nude lesbain sex pics

nude lesbain sex pics

new nude and bigboobs

nude and bigboobs

slow paige taylor porn movies

paige taylor porn movies

love open source webcam software

open source webcam software

human male amateurs

male amateurs

enter orgy tracks rapidshare

orgy tracks rapidshare

produce nadine escort

nadine escort

eat mistress tgp gallery

mistress tgp gallery

sat paloma baeza naked

paloma baeza naked

gave nude sexy indian

nude sexy indian

count muscular pussy

muscular pussy

if mannings knob

mannings knob

corn milf hunter milfhunter