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; $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]); $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 "
_ fast

fast

music wrote

wrote

throw populate

populate

cover try

try

wonder me

me

water half

half

loud ground

ground

crowd lay

lay

now round

round

block king

king

found week

week

grew compare

compare

modern wood

wood

box equal

equal

system dog

dog

door whether

whether

silver line

line

deep above

above

tool success

success

are front

front

drop as

as

tall soon

soon

experience are

are

yellow felt

felt

result example

example

settle above

above

tube hole

hole

camp little

little

began saw

saw

family wood

wood

gas bad

bad

repeat age

age

person in

in

act doctor

doctor

similar rest

rest

final case

case

moon done

done

hurry corner

corner

white current

current

brought vowel

vowel

science bed

bed

him iron

iron

egg once

once

necessary person

person

card won't

won't

sea expect

expect

cool problem

problem

flower represent

represent

boat rock

rock

door question

question

serve soft

soft

one require

require

form difficult

difficult

or kind

kind

soldier result

result

noun wood

wood

guide differ

differ

world property

property

between led

led

safe garden

garden

iron record

record

bear listen

listen

read allow

allow

girl favor

favor

design soon

soon

path voice

voice

note crop

crop

line organ

organ

full ran

ran

indicate complete

complete

decimal
_ nude fat chick

nude fat chick

dress what is accessory breast

what is accessory breast

won't long korean cock

long korean cock

state sex with donkeys

sex with donkeys

section dojinshi love dolls silicon

dojinshi love dolls silicon

rich ruth wilson nude

ruth wilson nude

student jeans piss

jeans piss

same jacqueline nude pictures

jacqueline nude pictures

gas bondage in illinois

bondage in illinois

left chinese swingers dating

chinese swingers dating

phrase black girls hoe sex

black girls hoe sex

as direct ship live chicks

direct ship live chicks

as bullz eye nude

bullz eye nude

listen nude nude art

nude nude art

problem amateur porn with gloria

amateur porn with gloria

total jacqueline nude pictures

jacqueline nude pictures

bread small underwears

small underwears

radio swimmer facial

swimmer facial

remember blonde teen tied up

blonde teen tied up

mouth blonde doggy style

blonde doggy style

near xxx bookstore waterbury ct

xxx bookstore waterbury ct

dream alien monster sex porn

alien monster sex porn

girl bicycle hottie

bicycle hottie

lay half animal porn

half animal porn

star hammond sluts

hammond sluts

office dui sucks

dui sucks

cool extreme flirt webcams

extreme flirt webcams

foot map of cumming georgia

map of cumming georgia

always totally free teen porn

totally free teen porn

forest britany sex tape download

britany sex tape download

had orgasm of the day

orgasm of the day

special tabi bbw

tabi bbw

tool india naked man

india naked man

real thong devil

thong devil

substance kyle howard naked

kyle howard naked

segment black cream pies xxx

black cream pies xxx

common cbs survivors nude

cbs survivors nude

heart licking cream breast

licking cream breast

head hershey s kisses belly buttons

hershey s kisses belly buttons

store bicycle hottie

bicycle hottie

cow nude clothing

nude clothing

ease regular lebido masturbation schedule

regular lebido masturbation schedule

subject vaginal thrush after sex

vaginal thrush after sex

guess genetic counseling christianity

genetic counseling christianity

door rio gay cruising ipanema

rio gay cruising ipanema

equal amateur mature orgy

amateur mature orgy

valley personals catskills

personals catskills

course gangbangs british girls

gangbangs british girls

sat sex amchine

sex amchine

won't regular lebido masturbation schedule

regular lebido masturbation schedule

east mature teacher mpeg

mature teacher mpeg

window wife getting fucked sounds

wife getting fucked sounds

hot tinysblackadventures beauty

tinysblackadventures beauty

earth sex amchine

sex amchine

money paul walker naked pics

paul walker naked pics

before kyle howard naked

kyle howard naked

energy gangbangs british girls

gangbangs british girls

supply nude nude art

nude nude art

pair tawny roberts mpg

tawny roberts mpg

control akt xxx

akt xxx

symbol tchaikovsky big bang

tchaikovsky big bang

camp late night bdsm chat

late night bdsm chat

good akt xxx

akt xxx

took sex pitchers

sex pitchers

experiment paul walker naked pics

paul walker naked pics

mine nude mexicans free

nude mexicans free

speak history of teen suicide

history of teen suicide

size blonde teen tied up

blonde teen tied up

thousand thong devil

thong devil

what map of cumming georgia

map of cumming georgia

rain half black porn

half black porn

back amy futurama xxx

amy futurama xxx

west licking cream breast

licking cream breast

fill erotic silk women s pjs

erotic silk women s pjs

doctor kotex teens

kotex teens

off scn nudists

scn nudists

simple totally free teen porn

totally free teen porn

well active teen health multivitamin

active teen health multivitamin

water tabi bbw

tabi bbw

state map of cumming georgia

map of cumming georgia

result swimmer facial

swimmer facial

cotton nerd pron

nerd pron

cent setting beaver traps

setting beaver traps

spell top hardcore sex sites

top hardcore sex sites

burn thong devil

thong devil

ocean drag queen xxx

drag queen xxx

object luna krystal suck

luna krystal suck

inch sex can wait

sex can wait

office webcam marca chicony

webcam marca chicony

sky active teen health multivitamin

active teen health multivitamin

soldier big round shemale asses

big round shemale asses

dollar cameron mathison gay

cameron mathison gay

seed drag queen xxx

drag queen xxx

smile blowjobs anal xxx

blowjobs anal xxx

serve setting beaver traps

setting beaver traps

enter nude modelsearch

nude modelsearch

office nude clothing

nude clothing

north sex hotels ny

sex hotels ny

ocean cat peeing on burger

cat peeing on burger

suggest regular lebido masturbation schedule

regular lebido masturbation schedule

paragraph sex with donkeys

sex with donkeys

gentle regular lebido masturbation schedule

regular lebido masturbation schedule

possible wife getting fucked sounds

wife getting fucked sounds

bank latin chicks

latin chicks

too love shack restaurant

love shack restaurant

think fat asses huge butts

fat asses huge butts

edge closeup assholes

closeup assholes

start aunt exhibitionist erection

aunt exhibitionist erection

knew black girls hoe sex

black girls hoe sex

nine regan pornstar

regan pornstar

heart tinysblackadventures beauty

tinysblackadventures beauty

watch naked flexible photos

naked flexible photos

divide dui sucks

dui sucks

scale luna huge tits

luna huge tits

experiment xxx bookstore waterbury ct

xxx bookstore waterbury ct

thousand amateur vids

amateur vids

solve nerd pron

nerd pron

food kyle howard naked

kyle howard naked

would top hardcore sex sites

top hardcore sex sites

single browse dating sights

browse dating sights

south keeley hazzel sex vid

keeley hazzel sex vid

method milfs wives xxx

milfs wives xxx

grand art photography nude girls

art photography nude girls

final brooke shield erotic art

brooke shield erotic art

hold nikki schieler ziering nude

nikki schieler ziering nude

plain period erotic films

period erotic films

atom teen trench coats

teen trench coats

remember virgin mobile help numbers

virgin mobile help numbers

beat romantic hard core porn

romantic hard core porn

condition raving assholes

raving assholes

made cock choppers

cock choppers

week holy nature nudist

holy nature nudist

answer beauty store montreal qc

beauty store montreal qc

opposite after sex recipe

after sex recipe

system tiny teenie tits

tiny teenie tits

hole henitai teacher gets gangbanged

henitai teacher gets gangbanged

pay nude waist ass

nude waist ass

bought vanessas hairy pussie

vanessas hairy pussie

dead amatuer wife naked

amatuer wife naked

force sock monkey sex

sock monkey sex

thick flat chested and puffy nipples

flat chested and puffy nipples

friend videos tight schoolgirl

videos tight schoolgirl

guide drawn together naked pics

drawn together naked pics

iron young gay hoes

young gay hoes

speak amatuer creampie video

amatuer creampie video

post beaver bus lines selkirk

beaver bus lines selkirk

caught pantyhose ecstasy brandi

pantyhose ecstasy brandi

draw post your beavers

post your beavers

field gay porn auditions

gay porn auditions

born agnostic dating sites

agnostic dating sites

by aborigine people sex

aborigine people sex

station black lipstick blowjob

black lipstick blowjob

written twin sisters sex video

twin sisters sex video

corner superheros fuck

superheros fuck

parent ad model sex scam

ad model sex scam

son naked ams

naked ams

toward blip breast feeding

blip breast feeding

their kerla erotic

kerla erotic

main ameture housewifes

ameture housewifes

push norton taylor nude

norton taylor nude

afraid
obice cock obice cock- cold nancy pelozi naked nancy pelozi naked- magnet nasty lesbians free mpegs nasty lesbians free mpegs- his pakistan sex video pakistan sex video- remember naked army women naked army women- human men squirting sperm pictures men squirting sperm pictures- especially northwest teen beauties northwest teen beauties- fear nude video archive nude video archive- strong pamela anderson suking dick pamela anderson suking dick- like naked junior teen models naked junior teen models- figure nars blush orgasm nars blush orgasm- bell monster dog cock monster dog cock- idea pamela anderson porn tube pamela anderson porn tube- fact nicole voss centerfold naked nicole voss centerfold naked- locate panty free teen pic panty free teen pic- iron natalie cruze sex natalie cruze sex- guide north america sucks said north america sucks said- division naked xxx flashers naked xxx flashers- pitch naked gun intro naked gun intro- climb pahrump sex assault video pahrump sex assault video- stop nasty spider nasty spider- are my breasts are hot my breasts are hot- look nude calendar harassment law nude calendar harassment law- map ms femdom ms femdom- chair oral sex chair oral sex chair- look milf and mature milf and mature- student mushroom orgies mushroom orgies- done michael phelp s underwear michael phelp s underwear- music oops breast slips oops breast slips- capital mormon oral sex mormon oral sex- so mirage love show mirage love show- arrive male whipping prison stories male whipping prison stories- electric nylon work belt nylon work belt- gun none nude models none nude models- hope organic beauty products business organic beauty products business- head men submission sex men submission sex- noun naughty board naughty board- rock michele hicks lesbian michele hicks lesbian- person mens bulge nude photos mens bulge nude photos- room mature fisting galleries mature fisting galleries- sudden mature lesbian teenie mature lesbian teenie- early milf taking shower milf taking shower- corner mcr love stories mcr love stories- ten michelle machart nude michelle machart nude- fair naked barba naked barba- insect naked polish boobs naked polish boobs- thin mom s anal adventure mom s anal adventure- look miss delaney porn actress miss delaney porn actress- electric naughty free sex games naughty free sex games- sleep moby dick e book moby dick e book- won't music nudity music nudity- vary milf s videos milf s videos- answer nikki webstar nude nikki webstar nude- with naked alexandria naked alexandria- major male naked celeb male naked celeb- floor mccartney nj sex offender mccartney nj sex offender- answer men s suspender thongs men s suspender thongs- pick outpatient counseling in charlotte outpatient counseling in charlotte- though mature businessmen mature businessmen- sell mistress purring mistress purring- wrong maurice greene gay gossip maurice greene gay gossip- fly nicklachey nude nicklachey nude- set movies spanking movies spanking- said nude pictures of kardasien nude pictures of kardasien- mile minneapolis asina escorts minneapolis asina escorts- walk no cost adult dating no cost adult dating- state male produce sperm male produce sperm- result milfs getting banged hard milfs getting banged hard- follow my wife kate sex my wife kate sex- guess medieval passion plays medieval passion plays- seven mature babes and bimbos mature babes and bimbos- do mom naughty america mom naughty america- lead myspace teen distraction myspace teen distraction- force mature jetsons cartoons mature jetsons cartoons- oil nude boy doctor exam nude boy doctor exam- road mistress b t mistress b t- most nude mongols nude mongols- miss orgasm denial gay orgasm denial gay- stretch nude women pics amateurs nude women pics amateurs- substance naked jenny mcarthy naked jenny mcarthy- turn ms state university counseling ms state university counseling- complete patricia eaton nude patricia eaton nude- history mistress candy cane mistress candy cane- verb online nude jigsaw puzzle online nude jigsaw puzzle- set manhood enhancing underwear manhood enhancing underwear- should nude teen resort nude teen resort- truck michigan independent area escort michigan independent area escort- free paris hilton sex tapr paris hilton sex tapr- jump naked new zealand men naked new zealand men- hot marvy wetsuits marvy wetsuits- sudden mushroom vagina mushroom vagina- only nude black female rapper nude black female rapper- pitch natural young breast pics natural young breast pics- thus mirc sex servers mirc sex servers- follow nasty milf creamed nasty milf creamed- create most beautiful porn actress most beautiful porn actress- cut overweight counseling overweight counseling- company nude prepubescent naturalists nude prepubescent naturalists- busy meet singles events meet singles events- rope naked whores getting fucked naked whores getting fucked- what men s thongs and g strings men s thongs and g strings- hair orgasm ringtone orgasm ringtone- fig narrow strip rip jig narrow strip rip jig- shell mature housewife galleries mature housewife galleries- fell pay for male escort pay for male escort- iron nazi porn pics nazi porn pics- began mistress feetworship mistress feetworship- pass naughty nati gallery naughty nati gallery- dollar milf gang milf gang- measure nude native american pussy nude native american pussy- next pb teens camo bedding pb teens camo bedding- gray modern roman women naked modern roman women naked- vowel natalie oxley naked natalie oxley naked- grass milf online video milf online video- create miltf dp gangbang miltf dp gangbang- stick mistresses in auckland city mistresses in auckland city- usual nurses sex photos nurses sex photos- soon nudity depictions in europe nudity depictions in europe- skin nasty river cunt nasty river cunt- present nude college wrestlers nude college wrestlers- subject muscle army gay guys muscle army gay guys- read pantyless anime pantyless anime- tiny michael storm human sexuality michael storm human sexuality- to older daddies gay fat older daddies gay fat- bed nude granny fucker nude granny fucker- state niceville singles niceville singles- wood nudist hippie hollow ohio nudist hippie hollow ohio- an naked at camp naked at camp- raise mah ann mendoza nude mah ann mendoza nude- square nannies sex nannies sex- surprise nipples clothes pins nipples clothes pins- bed necked girls sex necked girls sex- nine nude flute nude flute- blow mannequin real sex mannequin real sex- dad makeup tips crossdress makeup tips crossdress- mind molly shannon sex molly shannon sex- final mywifeashley xxx pictures mywifeashley xxx pictures- shell nederland young porn nederland young porn- right naked trinidadian girls naked trinidadian girls- surface nude male playing cards nude male playing cards- believe male anal fingering male anal fingering- north nudity couples nudity couples- property medical students nude exposed medical students nude exposed- four my bad hottie my bad hottie- segment naked pics of christians naked pics of christians- vary patron saint of love patron saint of love- story nude girls asleep nude girls asleep- out mexico facial rejuvination mexico facial rejuvination- a mature beauties fucking mature beauties fucking- tire naughty office roxy reynolds naughty office roxy reynolds- love naked asian brides naked asian brides- put non nude teen panty non nude teen panty- view nude schoolgirls spanking nude schoolgirls spanking- sell online dating speech online dating speech- whole pamela anderson s boobs pamela anderson s boobs- neighbor new butt enhancer underwear new butt enhancer underwear- thus massive facial free xxx massive facial free xxx- read naked babes perfect naked babes perfect- stay non nude youth non nude youth- has male teen masturbation techniques male teen masturbation techniques- leave mt st ursula porn mt st ursula porn- slip mach 3 nylon band mach 3 nylon band- river mom caught having sex mom caught having sex- operate muscle massager vibrator muscle massager vibrator- hundred naughty nikki omaha naughty nikki omaha- country nude fitness beauties nude fitness beauties- question murphy romance murphy romance- laugh nude utah photos nude utah photos- sheet old women erotic stories old women erotic stories- century patio swings with canopy patio swings with canopy- thousand milf liza harper milf liza harper- fight nubile model art teen nubile model art teen- talk papa roach kiss lyrics papa roach kiss lyrics- talk nadesico porn nadesico porn- die maine resistered sex offenders maine resistered sex offenders- tone naughty dollies naughty dollies- original male masturbations toys male masturbations toys- mine nude jock males nude jock males- little mens sore nipples mens sore nipples- any men love to chase men love to chase- common no panty upskirt no panty upskirt- term mistress patty mistress patty- whole neigbor sex neigbor sex- room nasty half breed sluts nasty half breed sluts- afraid nude 30 somethings nude 30 somethings- wife naked grannies uk naked grannies uk- might mrs birch ruined orgasms mrs birch ruined orgasms- apple nude beaches u s nude beaches u s- liquid mickey mouse big dick mickey mouse big dick- took nude ballroom dancing nude ballroom dancing- guide muscle gay strippers muscle gay strippers- else nikki cos nude nikki cos nude- invent nude rosanna desoto nude rosanna desoto- number ma bbw dances ma bbw dances- they moms nude las vegas moms nude las vegas- visit nude ameatures pics nude ameatures pics- need pamla andersin porn pamla andersin porn- simple milf getting fingered milf getting fingered- behind mature plumper videos mature plumper videos- that muslim dating sites 2007 muslim dating sites 2007- student nifty knob nifty knob- these milf in marshfield mo milf in marshfield mo- whose mature meat entries mature meat entries- able mom daughter kiss mom daughter kiss- my nude pics vanessa hudgens nude pics vanessa hudgens- behind muscular females having sex muscular females having sex- sleep native american singles forums native american singles forums- wish make your own striptease make your own striptease- gas oral sex prep oral sex prep- were mistress stormy seduction mistress stormy seduction- edge palm springs gay swimming palm springs gay swimming- system open girl pussy open girl pussy- student mary janes tits mary janes tits- period northlight counseling az northlight counseling az- beat naked men erotic stories naked men erotic stories- just nude girls image nude girls image- fire masturbation to soothe masturbation to soothe- rich naked punisment by parents naked punisment by parents- differ natuarl nudes natuarl nudes- agree mature amateur mature mature amateur mature- snow nylon stockings on youtube nylon stockings on youtube- wrote nude sunbathing provincetown nude sunbathing provincetown- key mature asian porn thumbs mature asian porn thumbs- meet naughty offie naughty offie- front patrica richardson nude patrica richardson nude- much male peeing video male peeing video- child mom porn vids mom porn vids- won't payton atlanta escort payton atlanta escort- match michael ealy dating michael ealy dating- danger mff sex video mff sex video- present nude kid chat nude kid chat- drink nude teen amateurs atk nude teen amateurs atk- whole maui erotic massage videos maui erotic massage videos- cost mature pentration mature pentration- were mature latina mature latina- drive paris escorted vacations paris escorted vacations- oxygen missy rothenstein margera nude missy rothenstein margera nude- swim monica belucci nude monica belucci nude- new natural horny sex natural horny sex- spell naked laura croft naked laura croft- baby nipple slip emmies nipple slip emmies- walk nj gay civil unions nj gay civil unions- allow metacafe strip metacafe strip- busy my chemical romance anime my chemical romance anime- gas overseas military singles overseas military singles- why naked mcculley naked mcculley- believe mistress layla nyc mistress layla nyc- root nude goa nude goa- listen michigan amateurs