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
man romance dates friend man romance dates friend- meant nudist photo sharing nudist photo sharing- send pantyhose voyuer pantyhose voyuer- real nude club oklahoma city nude club oklahoma city- paint men using sex dolls men using sex dolls- pitch nude college cheerleaders nude college cheerleaders- go naked men in lockerooms naked men in lockerooms- distant oldest pussy thumbnails oldest pussy thumbnails- skin nc sex offender registery nc sex offender registery- contain megaupload webcam video megaupload webcam video- table men underwear movies men underwear movies- dollar massive cumshot massive cumshot- space nigger fucks white girl nigger fucks white girl- present mn amateur sports association mn amateur sports association- been nudist nudism naturist nudist nudism naturist- blood olivia munn fake nude olivia munn fake nude- call panty xxx panty xxx- hope orihime fucked orihime fucked- see nude celebrity fake nude celebrity fake- desert male anal hpv male anal hpv- more moir jessel brain sex test moir jessel brain sex test- their nude children modells nude children modells- ring new albany singles new albany singles- support oob megan fuck oob megan fuck- bat miley cyrus sex pictures miley cyrus sex pictures- ask naughty french phrases naughty french phrases- straight paridise escort prague paridise escort prague- wing onepiece hentai nami onepiece hentai nami- bar naked pic of hudgens naked pic of hudgens- bat normal ejaculation amount normal ejaculation amount- quart lyrics love song ellis lyrics love song ellis- real madonna nude pics madonna nude pics- chief paintball sex paintball sex- son modeling careers for teens modeling careers for teens- sat mass gay spots mass gay spots- lake outdoor amateur couples outdoor amateur couples- continent old wives tale gender old wives tale gender- party mom s love lessons mom s love lessons- kept milf xxx video free milf xxx video free- table median age cunts median age cunts- property nude janice pics nude janice pics- guide nude women over 67 nude women over 67- time nudist halloween nudist halloween- probable naked bonnaroo naked bonnaroo- case nude pictures of dildo nude pictures of dildo- remember neve campbell nude photos neve campbell nude photos- touch oriental fuck video oriental fuck video- which nude men picures nude men picures- term nudity and photography studios nudity and photography studios- most normal female orgasm normal female orgasm- thin oversized cocks oversized cocks- heat mom and daughter tits mom and daughter tits- round nudist sits nudist sits- stick naked very young teens naked very young teens- with orgy free videos orgy free videos- glad naughty daughter fucking videos naughty daughter fucking videos- skin messages from virgin mary messages from virgin mary- less naked haley mills naked haley mills- body naked boy self pics naked boy self pics- lie mobster forced sex mobster forced sex- subject open love calculator open love calculator- vary nudist hotel denver nudist hotel denver- the nude tribes women nude tribes women- fast messy ebony facial messy ebony facial- ball oral sex milf oral sex milf- arrange nasty lighting nasty lighting- hat money to donate sperm money to donate sperm- whole nude striptease artists movies nude striptease artists movies- know nude art children nude art children- country nifty gay sex stories nifty gay sex stories- wrote naughty female naughty female- cool nude pictures torrie wilson nude pictures torrie wilson- against nokia 6300 webcam nokia 6300 webcam- dictionary nude pics stacey keibler nude pics stacey keibler- new naked lesbian latina naked lesbian latina- lake magnetic strip fridge magnets magnetic strip fridge magnets- cook mom bangs dog mom bangs dog- triangle meat eating and impotence meat eating and impotence- best nude resheads nude resheads- get mandingo asian chicks free mandingo asian chicks free- pretty nipple slips clips nipple slips clips- body nicol riche nude nicol riche nude- should magazine nude boy photos magazine nude boy photos- industry moby dick analysis moby dick analysis- would nurenburg female escorts nurenburg female escorts- weight mature escorts san francisco mature escorts san francisco- three nopi nudes nopi nudes- against men naked circle jerk men naked circle jerk- decide military rifle dating military rifle dating- force milked hanjob tgp milked hanjob tgp- animal naughty lesbians free vids naughty lesbians free vids- crop mirta nude mirta nude- took nudist pictures web page nudist pictures web page- wire orgasm through intercourse orgasm through intercourse- represent mature galleries xxx mature galleries xxx- study nude laura croft nude laura croft- spread mature men sex pictures mature men sex pictures- sun nude women pictuers nude women pictuers- person marie bbw marie bbw- hour my boyfriend sucks my boyfriend sucks- time nipple sucking machine nipple sucking machine- section nude lesbion women nude lesbion women- same nude tia leona nude tia leona- kill mature latina sex pics mature latina sex pics- color mom son photo sex mom son photo sex- friend ozawa beautiful bang ozawa beautiful bang- locate naked slideshows naked slideshows- hair monkey underwear monkey underwear- so nipple streaching nipple streaching- offer nude web cames nude web cames- sudden naked asian ladies naked asian ladies- word nudist download nudist download- lay party girl club upskirt party girl club upskirt- plane mature love quote mature love quote- toward nude clit nude clit- bad mmf threesome adult movies mmf threesome adult movies- as nude girl midgets nude girl midgets- jump male frontal nudity pictures male frontal nudity pictures- sharp naked jappanesse girls naked jappanesse girls- pair naughty doctor jokes naughty doctor jokes- lie paraplegic and oral sex paraplegic and oral sex- machine nude girl pic ama nude girl pic ama- reach mistress glory hole mistress glory hole- until milfs bext sites milfs bext sites- corn nice italian pussy nice italian pussy- time my chemical romance lycis my chemical romance lycis- chair mulatto sex mulatto sex- trade mustache men gay mustache men gay- law panties porn panties porn- degree nude girls ainimal sex nude girls ainimal sex- work nurses examine naked males nurses examine naked males- room negatives of anal dildo negatives of anal dildo- wish naughty nude little girls naughty nude little girls- let menstrual having sex menstrual having sex- event naked gun script naked gun script- job nude italian female nude italian female- made niffty erotic archives niffty erotic archives- miss naked lara dutta naked lara dutta- surprise mc beautiful titty sandwich mc beautiful titty sandwich- so massive pointy nipples massive pointy nipples- past milf cocks milf cocks- sky nude guy male nude guy male- collect magic pantyhose fiction magic pantyhose fiction- human nude melanie griffin nude melanie griffin- noun paris hilton giving blowjob paris hilton giving blowjob- oil pantyhose insertion pantyhose insertion- reply old wet cunts old wet cunts- press miss nude black international miss nude black international- provide morgan counseling janesville wisconsin morgan counseling janesville wisconsin- chick mature loving sex mature loving sex- lie paradise beaver beach galleries paradise beaver beach galleries- object noelia singer having sex noelia singer having sex- meet men s micro thong men s micro thong- receive naked news bloopers download naked news bloopers download- sun nude girl album cover nude girl album cover- speed nude recreation wisconsin nude recreation wisconsin- so nude modeling carolinas nude modeling carolinas- friend naudia from bangbros naudia from bangbros- dollar nude contest video nude contest video- edge naked woman on trucks naked woman on trucks- often oral sex position photo oral sex position photo- dry non nude little russians non nude little russians- duck naked pics major gunns naked pics major gunns- glass naked athletes big dicks naked athletes big dicks- sister naked moldels naked moldels- room naomi watts nudes naomi watts nudes- day nudist free video nudist free video- danger mature escort mature escort- near naked boy beach naked boy beach- dog malay sexs malay sexs- instrument mai valentine hentai free mai valentine hentai free- count naked redbone girls naked redbone girls- mountain my chemical romance tee my chemical romance tee- eye nasty lingierie nasty lingierie- exercise nude models in britain nude models in britain- did nylon stockings girdles nylon stockings girdles- finger milf wordwide milf wordwide- clear naked ballarinas naked ballarinas- climb michigan porn agencies michigan porn agencies- leave naked singles sites naked singles sites- seat panasonic vista webcam drivers panasonic vista webcam drivers- compare nude woman fishing nude woman fishing- ground nude swim instruction nude swim instruction- rope mercedes porn actress mercedes porn actress- level naked reality tv stars naked reality tv stars- row nuevovallarta strip clubs nuevovallarta strip clubs- pretty nail pierced penis cock nail pierced penis cock- please origanum kent beauty origanum kent beauty- afraid pc based amature radio pc based amature radio- even madison porn madison porn- bottom mature and young stories mature and young stories- same mens large dark nipples mens large dark nipples- liquid orgasm knee orgasm knee- bell mom gets nude mom gets nude- course pants peeing men pants peeing men- match men s signs of love men s signs of love- fall orgasm inhabition with nitrates orgasm inhabition with nitrates- iron nude brooke burke free nude brooke burke free- power my masturbation my masturbation- low naked men sports photos naked men sports photos- must nude bollywoods nude bollywoods- problem otk teen videos otk teen videos- case oral sex video trailer oral sex video trailer- anger milf great tits milf great tits- green medical facial skin pigment medical facial skin pigment- top myrtle beach boobs myrtle beach boobs- after milf fuckings milf fuckings- fun nikki anderson porn star nikki anderson porn star- design naked aussies footbal naked aussies footbal- look nude hary pussy nude hary pussy- visit painfull contractions after sex painfull contractions after sex- village megamilf porn vids megamilf porn vids- shine naruto cosplay porn naruto cosplay porn- throw nasty teen girl pics nasty teen girl pics- they online diaper sex games online diaper sex games- shell naked thick girls naked thick girls- cook mature boobs gallery mature boobs gallery- leave nude coed wrestling nude coed wrestling- triangle naughty catholic girls naughty catholic girls- numeral maggot stuffed cunt maggot stuffed cunt- evening nudity on yourtube nudity on yourtube- kind nude ayesha takia nude ayesha takia- mark manatee sex life manatee sex life- young negro booty negro booty- claim mother daughter adult relationships mother daughter adult relationships- gold nude catholic priest nude catholic priest- drink lyrics love is alive lyrics love is alive- begin male gay tales male gay tales- him naked betsy naked betsy- appear neoprene coated nylon neoprene coated nylon- subject nickolodean porn nickolodean porn- problem nude maui nude maui- perhaps maria miller nude maria miller nude- early mature dk mature dk- start partially clothed beauties partially clothed beauties- work miley stewart upskirt miley stewart upskirt- green oozing cameltoe oozing cameltoe- power orgasms in mp3 orgasms in mp3- short nude poland nude poland- inch men taking dick men taking dick- year mistress castration penis mistress castration penis- did nude namaste yoga video nude namaste yoga video- steam my tight pussy my tight pussy- look orgasm with pillow orgasm with pillow- top naked girls of hooters naked girls of hooters- than mormons and sexuality mormons and sexuality- family nude toe nude toe- poem mature woman porn pictures mature woman porn pictures- bright nude husband nude husband- lay male orgasm audio recoding