WebCalendar System Administrator's Guide

WebCalendar Version: 1.0.0 - 1.0.5

Table of Contents


Introduction

WebCalender is an open source PHP-based multi-user calendar.

Features:

↑ top

System Requirements

Recommended:

You must have one of the following databases installed:

For the database you choose, you must have its drivers built into PHP. For example, to use MySQL, PHP must be compiled with MySQL support (which is the default setting when installing PHP). See the PHP pages (www.php.net new) for more information on setting up PHP.

No optional PHP packages (other than MySQL) are required for this application. However, PHP shoud be compiled with --enable-track-vars on some systems.

Make sure that magic_quotes_gpc in php.ini is turned on (otherwise, you will get an error message when you try to access WebCalendar.)

TIP If you are using Apache as your web server and if you cannot or do not want to enable magic_quotes_gpc for your entire site, you can enable it just for WebCalendar. Create a .htaccess file in the toplevel WebCalendar directory that contains a single line:

php_value magic_quotes_gpc 1

(For this to work with Apache, you must have the Apache AllowOverride All directive enabled for the directory where WebCalendar is installed. Additionally, PHP must be running as an Apache module, not a CGI.)

You can run PHP either as a CGI or an Apache module. You'll get better performance with PHP setup as a module. Not only will you not have to deal with the CGI performance hit, but you'll be able to use PHP's database connection pooling. Additionally, this application can use a form/cookie-based authentication or traditional HTTP authentication. For traditional HTTP authentication, PHP must be built as an Apache module.

If you are planning on using email reminders, you will need to build PHP as a CGI in order to run the send_reminders.php script. I would strongly recommend building a module-based PHP for your web server and then a second PHP build to create the CGI version.

TIP Some Linux distributions come with both a module-based PHP with Apache and a standalone PHP binary. Check for /usr/bin/php to see if you already have the PHP standalone executable. If it's there, you can use the following command to see what version of PHP you have:

/usr/bin/php -v
↑ top

File Unpacking

Unpack the calendar software in its own directory somewhere where your web server will find it. (See your web server docs for info.)

By default, WebCalendar should create its own directory when you unpack it. The new directory name will typically contain the version name (such as WebCalendar-0.9.41). You can rename this directory after unpacking the files if you prefer a directory name like calendar or webcalendar. Keep in mind that unless you remap the directory (via your web server's configuration settings), it will be part of the URL for the calendar.

↑ top

Database Setup

There are three steps in setting up the database:

  1. Creating the database
  2. Creating the user
  3. Creating the required tables

Follow the steps outlined below for the database you are using. When complete, a single user account will be created with the login "admin" and password "admin", which you are encouraged to use to create your own account.

Note: In the examples below, text in bold represents text that you must type in.

Security: The default values for database, login, and password (intranet, webcalendar, and webcal01) are for demonstration purposes only and should never be used in a production environment.

MySQL

The following will create a database named "intranet".

mysqladmin create intranet

Next, create the database user account that will be used to access the database.

mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO webcalendar@localhost
IDENTIFIED BY 'webcal01' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> QUIT

If you will be accessing MySQL from a different machine than the one running the web server, repeat the command above and replace 'localhost' with the hostname of the other machine.

Create the calendar tables using the supplied tables-mysql.sql file:

mysql intranet < tables-mysql.sql

In the above example, "intranet" is the name of your database.

Note: If you are using phpMyAdmin to manage your MySQL database, follow the instructions in Appendix A.

Oracle

The following will create a tablespace named "webcalendar". From the command line, startup sqlplus and issue the following command:

sqlplus
SQL> CREATE TABLESPACE webcalendar
DATAFILE 'webcalendar.dat' SIZE 10M
AUTOEXTEND ON NEXT 10M MAXSIZE 40M;

Next, create the database user account that will be used to access the database.

sqlplus
SQL> CREATE USER webcalendar IDENTIFIED BY webcal01
DEFAULT TABLESPACE webcalendar;
SQL> GRANT dba TO webcalendar;
SQL> quit

Create the calendar tables using the supplied tables-oracle.sql file:

sqlplus webcalendar/webcal01
SQL> @tables-oracle;
SQL> quit

PostgreSQL

The following will create a database named "webcalendar". From the command line, startup psql and issue the following command:

create database webcalendar;
\c webcalendar
\i tables-postgres.sql
\q

Interbase

The following will create a database named "WEBCAL.gdb". From the command line, startup usql and issue the following command:

CREATE DATABASE 'WEBCAL.gdb';

Create the calendar tables using the supplied tables-ibase.sql file:

isql
connect /path/WEBCAL.gdb;
input path/table-ibase.sql;

ODBC

Setup will depend on which database you are using. When it comes time to create the tables, the tables-postgres.sql file should work for most databases.

MSSQL

Create a database, intranet, and add a user, webcalendar, to access this database. The user should be granted public, db_datareader, and db_datawriter privileges. Open SQL Query Analyzer then open the file tables-postgres.sql. Make sure you have identified intranet as the target database and Execute the contents of the sql file.

↑ top

Application Setup

Next, you will need to run the web-based database setup script (simply direct your browser to your new WebCalendar location). You will need to modify the permissions of the includes directory. On Linux/UNIX, you should change this directory to be read/write for all users (chmod 777 includes). On Windows, change this directory to have full access for all users using Windows Explorer. Changing the write permissions will allow the web-based database configuration tool to create the settings.php file.

TIP After you have created the settings.php file (with the "Save Settings" button), you can change the permissions back to a more restrictive setting.

After you test and save your database settings, you will be prompted to enter an installation password. Write this password down somewhere. There is no way to reset this password. If you forget this password and need to change your database settings, you will need to manually edit the settings.php file with a text editor.

If you choose not to use the web-based database configuration tool, you can manually edit the settings.php file. There is an example file settings.php.orig that you can use as a starting point. Simply rename this file to settings.php. You will need to set the values as follows in settings.php:

To configure your database access. Set the values for:

db_type One of "mysql", "oracle", "postgresql", "odbc", "mssql", or "ibase"
db_host The hostname that database is running on. (Use localhost if it's the same machine as the web server.) (This variable is not used with ODBC)
db_login The database login
db_password The database password for the above login
db_database The name of the database that the calendar tables reside in. ("intranet" in the examples above.) For ODBC, this should be the DSN.
db_persistent Enable use of persistent (pooled) database connections. This should typically be enabled.

You can configure the calendar to run in single-user* mode or multi-user* mode. If this is your first time using the calendar, it's easier to try single-user. You can always switch to multi-user later. Leave single_user set to "N" (the default) for multi-user or set it to "Y" and set the value of single_user_login to a login name of your liking to set the system to single-user mode. (And be sure to set the value of single_user_login to the login that you would choose if you decide to switch to multi-user mode some day.)

Note: If you do decide to switch from single-user mode to multi-user mode, make sure you add in a user to the system for the login you set the single_user_login variable to. You will need to do this via the database (mysql, sqlplus, etc.) Look in the tables-mysql.sql (or tables-oracle.sql, etc.) to see the example of adding in the "admin" user.

If you are setting up a multi-user calendar, you will need to choose how your users are authenticated. You must change the settings of use_http_auth and user_inc to setup which authentication method to use.

You currently have four choices:

  1. Web-based authentication (login/passwords verified in the WebCalendar database):
    use_http_auth = false
    user_inc = user.php
  2. HTTP-based authentication (login/passwords verified by the web server):
    use_http_auth = true
    user_inc = user.php
    ... and don't forget to setup your web server to handle user authentication.
    Note: In order to use HTTP-based authentication, PHP must be setup as a module for your server rather than a CGI.
  3. NIS-based authentication (login/passwords verified by NIS):
    use_http_auth = false
    user_inc = user-nis.php
    Additional configuration settings will need to be set in includes/user-nis.php.
  4. LDAP-based authentication (login/passwords verified by LDAP server):
    use_http_auth = false
    user_inc = user-ldap.php
    Additional configuration settings will need to be set in includes/user-ldap.php.

Keep in mind that if you want to use reminders, you will need to setup the send_reminders.php script (see below) and keep your admin setting for "Email enabled" set to "Yes" on the admin settings page.

At this point, your WebCalendar installation should be up and running. To access WebCalendar open up your favorite web browser and type in the URL. The URL will depend on where you installed WebCalendar.

When you unpacked/unzipped the WebCalendar distribution, it typically creates a directory that includes the version number. For example, if the zip file was named WebCalendar-0.9.99.zip (or WebCalendar-0.9.99.tar.gz), then there should be a WebCalendar-0.9.99 directory. For convenience, you can rename this directory so that the URL does not include the version number. On Windows, you can do this from the Windows Explorer. On Linux/UNIX, you can use the mv command to rename the directory. Supposing you renamed the WebCalendar-0.9.99 directory to just be calendar, and you unpacked/unzipped the files into your toplevel web server directory, the URL would be:

http://yourserverhere/calendar/index.php

If you have not previously configured your database settings, you will be automatically redirected to a web page for configuring your database settings. After you have configured the database, use the URL again to access WebCalendar.

If you have configured your web server to use index.php as the default index page for a directory, you can omit that from the URL. On a single-user system, your browser should be redirected to week.php initially. On a multi-user system, your browser should be redirected to login.php so that you can login.

TIP On a multi-user system, the only user account created during installation has the username of "admin" and a password of "admin". You should create a new admin account and delete this one for security reasons.

↑ top

Creating Users

After logging in as an admin user (the initial username is "admin" with password "admin"), you will see a common set of links at the bottom of each page. Follow these steps to create a new user:

  1. Login to WebCalendar as an admin user
  2. Click on the "Admin" link at the bottom of any WebCalendar page
  3. Click on the "Users" button
  4. Click on the "Add New User" link
  5. Fill out the form with details for the new user (email address is optional)
  6. Click on the "Save" button

TIP On a single-user system, you do not need to create any users.

TIP For an event calendar, you do not need to create a user for the "public user".

↑ top

Setting Up Email Reminders

PHP does not come with a utility for executing time-based jobs. So, in order to check periodically for email reminders, a shell script was written in PHP. You will need two things to get this working:

  1. You should have a version of PHP built as a CGI (so that you can run php from the command line). This does not mean you must build all of PHP as a CGI. You can still build PHP as a module for your web server and then build the CGI-based PHP later.
    Note: Many Linux distributions and some Windows LAMP packages come with the PHP built for CGI.
  2. You must setup cron (on Linux/UNIX) or something like cron for Windows to run the send_reminders.php script periodically.

Building PHP as a CGI is outside the scope of these instructions. But, if you read the PHP instructions, you'll see that the default build settings will build the CGI-based PHP. If you really can't do this (perhaps you don't have permission to install anything new on the system), skip down a couple of paragraphs to an alternate solution that does not require PHP CGI.

For Linux/UNIX users, add the following line to the crontab entry of a user. (This would be the same user that the web server process runs as.)

1 * * * * cd /some/directory/webcalendar/tools; ./send_reminders.php

Of course, replace the directory location to wherever the send_reminders.php file can be found. If you moved this out of the tools directory (which is recommended for security reasons), be sure to update send_reminders.php since it needs to know where to find other WebCalendar files.

If you cannot setup PHP as a CGI or have no idea how, you can leave send_reminders.php in its current location and access it via a URL. IMHO, this is not the best choice, but it still works. Setup a cron job to access the URL. For Linux/UNIX users, add the following line to the crontab entry of a user.

1 * * * * wget http://yourserverhere/webcalendardirectoryhere/tools/send_reminders.php > /dev/null

You should test this from the command line first to make sure your setup is correct. If you do not have wget installed on your system, you can use any tool (lynx, perl script, etc.) that is capable of making an HTTP request for this.

↑ top

System Settings

System Settings allows the administrator to control what features are available to users as well as default values for certain features.

Many of these settings can be overridden by users in their Preferences (such as color).

Settings

Application Name
Specifies the document title (typically displayed in the window title bar of most browsers)
Server URL
Specifies the base URL of the calendar. This information is needed to accurately include URLs in email messages (Notifications and Reminders).
Language
Specifies the default language setting for all users.
Fonts
Specifies your preferred font. Multiple font names should be comma-separated.
Preferred View
Specify if users should see the day, week, month, or year after loggin in.
Display weekends in view
Specifies default setting for if Saturdays and Sundays should appear in the calendar when viewing a month or week
Date format
Specifies the default format for displaying dates
Time format
Specifies the default time format as either 12-hour (3:45pm) or 24-hour (15:14)
Time interval
Specify the default number of minutes each time block represents in the day and week display
Auto-referesh calendars
If set to "yes," the day, week, and month pages will automatically reload after a specified duration
Auto-refresh time
Specifies how long to wait before the auto-refresh should force a page to be reloaded
Display unapproved
Specifies whether events that have been added to a calendar but not yet approved should display on the calendar (in a different color)
Display week number
Specifies whether the week number should be displayed in month and week views
Week starts on
Specifies if week start on Sunday or Monday
Work hours
Specifies the default time range to display in day and week views
Disable Priority field
If enabled, the Priority field will not be used
Disable Access field
If enabled, the Access field will not be used
Disable Participants field
If enabled, the Participants field will not be used, and users will not be able to add events to any calendar other than their own.
Disable Repeating field
If enabled, users will not be able to create repeating events
Allow viewing other user's calendars
If enabled, users will be able to view the calendar of another user
Allow public access
If enabled, anonymous users will be able to view the public access calendar without logging in.
Public access can view other users
If enabled, anonymous users will be able to view the calendars of other users
Public access can add events
If enabled, anonymous users will be able to submit new events.
Public access new events require approval
If enabled, events submitted to the public access calendar (by anonymous users) will require approval by an admin user. If not enabled, then new events will appear on the public access calendar as soon as they are submitted.
Include add event link in views
If enabled, Views will include a link to quickly add events to the specified user's calendar.
Allow external users
If enabled, the create/edit event page will contain a text area to include the names (and optional email address) of event participants that are not calendar users.
External users can receive email notifications
If enabled, event participants entered into the External Participants area will receive email notifications at the same time as calendar users (if an email address was specified for the Exernal Participant).
External users can receive email reminders
If enabled, event participants entered into the External Participants area will receive email reminders at the same time as calendar users (if an email address was specified for the Exernal Participant).
Remember last login
If enabled, when a returning calendar user reaches the login page, their login name will be pre-filled with the last login username that they entered. (The password field will still be blank.)
Check for event conflicts
Specifies if the system should check for scheduling conflicts when a user adds or updates an event.
Conflict checking months
If conflict checking is enabled, this specifies how many months past the initial date the system will check for conflicts when a user adds or updates a repeating event.
Allow users to override conflicts
If enabled, users will be warned when there is an event conflict and be presented with the option of scheduling the event anyhow.
Limit number of timed events per day
If enabled, users can can be limited to a specific number of timed events per day
Maximum timed events per day
Specifies that maximum number of events that can be scheduled in one day of any one user.

Groups

Groups enabled
Specifies if group features should be enabled
User sees only his group
If enabled, users will be unaware of any users that are not in the same group as the user.

Categories

Cagtegoies enabled
Specifies if category features should be enabled

Email

Email enabled
Specifies if email functionality should be enabled. If set to "No," then no email messages will be sent at any time.
Default sender address
Specifies the email originator to use when the system sends out email Notifications and Reminders
Event reminders
Specifies if email reminders for events that include a reminder should be sent
Events added to my calendar
Specifies if the system should send email when an event is added
Events updated on my calendar
Specifies if the system should send email when an event is updated
Events removed from my calendar
Specifies if the system should send email when an event is deleted
Event rejected by participant
Specifies if the system should send email when a participant to an event rejects the event

Colors

Allow user to customize colors
Specifies whether color settings should be available to users in their Preferences
Document background
Specifies the background color of all pages
Document title
Specifies the color of page title on each page
Document text
Specifies the default text color on each page
Table grid color
Specifies color of the lines that make HTML table grids on each page
Table header background
Specifies the default background for the heading of any HTML table
Table header text
Specifies the default text color for the heading of any HTML table
Table cell background
Specifies the background color for table cells
Table cell background for current day
Specifies the background color for the table cell containing the current date
Table cell background for weekend
Specifies the background color for table cells that represent a Saturday or Sunday
Event popup background
Specifies the background color of event popup areas
Event popup text
Specifies the text color of event popup areas
↑ top

Custom Event Fields

You may want to customize the event-specific fields found in the includes/site_extras.php field. If this is your first time using the calendar, you can skip this step and come back later since this step is optional.

You can use this feature to add extra fields to your calendar events. For example, you can add a URL, a contact email address, or a location.

By default, this file is configured with a single reminder field that allows the user to specify how long before the event the reminder should be sent.

TIP See instructions on setting up reminders to enable sending of reminders.

When defining a new custom field, the following types listed below are available. "Arg 1" and "Arg 2" have different meaning depending on the type of field. In some cases, "Arg 1" and "Arg 2" are not used.

Type Description Arg 1 Arg 2
EXTRA_TEXT Allows the user to enter a single line of text Specifies the size of the text form element as it would appear in the following ("NN" would be replaced with Arg 1):
   <input size="NN" ...
N/A
EXTRA_MULTILINETEXT Allows the user to enter multiple lines of text Specifies how many characters wide the textform element should be as it would appear in the following ("NN" would be replaced with Arg 1):
   <textarea cols="NN" ...
Specifies how many lines long the textform element should be as it would appear in the following ("NN" would be replaced with Arg 1):
   <textarea rows="NN" ...
EXTRA_URL Allows the user to enter a single line of text and will be displayed as a link when viewed N/A N/A
EXTRA_DATE Allows the user to select a date using the standard date selection form elements N/A N/A
EXTRA_EMAIL Allows the user to enter a single line of text and will be displayed as a mailto URL link N/A N/A
EXTRA_REMINDER Allows the user to specify if a reminder should be sent out for the event Specifies how many minutes before the event that the reminder should be sent. Specifies other reminder-specific options. The following options are available:
  • $EXTRA_REMINDER_WITH_DATE
  • $EXTRA_REMINDER_WITH_OFFSET
  • $EXTRA_REMINDER_DEFAULT_YES
If more than one option is needed, they should be or-ed together with the | character.
EXTRA_REMINDER_DATE Allows the user to specify if a reminder should be sent out for the event and and what time it should be sent Specifies the default for how many minutes before the event that the reminder should be sent. The user can override this when they create/edit the event. Specifies other reminder-specific options. The following options are available:
  • $EXTRA_REMINDER_WITH_DATE
  • $EXTRA_REMINDER_WITH_OFFSET
  • $EXTRA_REMINDER_DEFAULT_YES
If more than one option is needed, they should be or-ed together with the | character.
EXTRA_SELECTION_LIST Presents the user with a selection list (single selection) to choose from Specifies the list of available options using the PHP array function N/A
↑ top

Frequently Asked Questions

How do I setup PHP, MySQL and Apache on Windows?
The easiest way to do this is to try one of the prepackaged bundles that will install all of these for you:
How do I setup PHP, MySQL and Apache on UNIX/Linux?
There are many online instructions on how to do this. Here are a few:
I've finished the install. What is the login to WebCalendar?
After the initial creation of the database tables, there will be a single user account created with the username "admin" and the password set to "admin" as well.
Note: This account is intended to get your started. You should create a new admin account and delete this one.
I want to use WebCalendar as an events calendar for my organization. How do I set it up to do this?
You will want to setup WebCalendar to use public access.
  1. Setup your settings.php file as a multi-user system (see instructions).
  2. In System Settings, set "Allow public access" to "Yes."
  3. If you want people to be able to submit new events through public access, set "Public access can add events" to "Yes."
  4. If you set "Public access can add events" to "Yes", set the setting for "Public access new events require approval" to your liking. If you set this to "Yes," an admin user will need to approve any new events before they will appear on the public access calendar.
  5. Login using one of the accounts you have setup. Add a new event, and select "Public User" as one of the participants.
  6. If you have enabled "Require event approvals" in your System Settings, then you will need to approve the new event. Choose the "Unapproved Events" at the bottom of any page (you must be an admin user to access this). You will be presented with a list of unapproved events (for both the current user and for the Public User account). Approve the new event for the Public User.
  7. Go to the Login page. You will see a "Access public calendar" link that will bring you to the calendar for public access.
  8. By default, the index.php page should send users to the public calendar.
How can I add holidays to the calendar?
There is no built-in support for holidays because it is not necessary. You can add holidays into WebCalendar by importing one of the many iCal holiday files that are freely available. A good resource for free iCal files is iCalShare new. For example, the U.S. holiday ics file can be downloaded from:
http://icalshare.com/article.php?story=20020912105939521 new
If you don't want each individual user to have to import the holiday calendar, you can use nonuser calendars. First, make sure nonuser calendars are enabled in your system settings. Then, from Admin->Users, you can access nonuser calendars. Create a new nonuser calendar (such as "usholidays"). Then, notify your users that they can add this nonuser calendar as a layer to their own calendar in order to see the holidays.
Why are deleted events still present in the database?
When you delete an event from your calendar, it is not deleted from the database. Instead, it is marked as deleted. This allows the system administrator access to information even after it is deleted.
Can I setup more than one public calendar?
You cannot directly setup two public calendars. However, there are two options for emulating this type of functionality:
How do I change the title "Public Access" at the top of the calendar?
In the file translations/English-US.txt, change the line that says "Public Access" to what you want it to say on the right side.

Example:
Public Access: Foobar Event Calendar
Can I embed WebCalendar as a component on another web page?
WebCalendar is meant to be run as a standalone web application. You can customize the appearance of WebCalendar to match your existing site. To do this, In System Settings, set both "Custom header" and "Custom trailer" to "Yes" and press the "Edit" button to enter the header and trailer content.
If you are looking to just include a list of upcoming events in one of your web pages, you can use the upcoming.php page in WebCalendar to do this. Edit the top of this file to configure options. (These settings will likely move into System Settings in subsequent release.) You can then use an iframe elsewhere on your web site as in the example below:
<iframe height="250" width="300" scrolling="yes" src="upcoming.php"></iframe>
Include this HTML anywhere on any of your pages. By default, the events from the public calendar will be loaded (so you must have "Public Access" enabled in System Settings). You can override this with another user's calendar. (See upcoming.php for instructions on this.)
How do I add a new translation?
It's a fairly simple process. If you've ever translated a C-based app that used GNU's gettext tool, then you'll have no problem. The I18N support was based on GNU's gettext new. Here's what you need to do.
  1. look in the "translations" directory
  2. copy the English-US.txt file into what you'd like to call your language data file. (e.g. cp English-US.txt French.txt)
  3. Now translate all the text to the _right_ of the ":" into the new language. Do not alter the text to the left of the ":".
  4. When you're done making changes, move into the "tools" directory. Run the check_translation.pl script on your new data file to make sure you have all the needed translations. (e.g. perl check_translation.pl French)
  5. Add the new language to both the $languages array and the $browser_languages arrays defined in includes/config.php.
  6. Test it out...
  7. Post a copy of your translation (along with your changes to includes/config.php) to the SourceForge Patches new for WebCalendar.
How do I update an existing translation?
Just open up the translation file in the translations directory with your favorite text editor (like vi, vim, emacs, pico, Notepad, etc.). In particular look for places where missing translations are indicated. All missing translations should be marked with a "<< MISSING >>" note. and typically the English version of the translation will also be included on the following line (as in the example below):
# << MISSING >>
# Edit:
#

For some text, an abberviation may be used rather than the English text. In those cases, the full text will be noted as in the following example:
# << MISSING >>
# custom-script-help:
# English text: Allows entry of custom Javascript or stylesheet text that
# will be inserted into the HTML "head" section of every page.
#

When you're done making changes, move into the tools directory. Run the check_translation.pl script on your new data file to make sure you have all the needed translations:
perl check_translation.pl French
Post a copy of your translation to the SourceForge Patches new for WebCalendar.
↑ top

Troubleshooting

I get error messages about undefined variables when I try to view any page.
On newer versions of PHP, the default setting of PHP is to display messages when an undefined variable is referenced. To prevent these messages from being displayed, change the setting of error_reporting in your php.ini file to be:
error_reporting = E_ALL & ~E_NOTICE
Alternately, you can disable any error messages from being displayed in the browser and have them logged to a file. (See the comments included in the php.ini file for instructions on how to do this.)
I get errors when trying to add an event that contains a single quotation.
WebCalendar is designed to work with PHP's magic_quotes_gpc feature (configured in php.ini). If you do not have this enabled (On in php.ini), you may get errors when adding events. In WebCalendar version 0.9.43 or later, you will always get an error message telling you to update php.ini if magic_quotes_gpc is set to Off.

TIP If you are using Apache as your web server and if you cannot or do not want to enable magic_quotes_gpc for your entire site, you can enable it just for WebCalendar. Create a .htaccess file in the toplevel WebCalendar directory that contains a single line:
php_value magic_quotes_gpc 1

(For this to work with Apache, you must have the Apache AllowOverride All directive enabled for the directory where WebCalendar is installed. Additionally, PHP must be running as an Apache module, not a CGI.)


Note for Oracle and PostgreSQL: You must also change the value of magic_quotes_sybase to On within the php.ini settings.
I get an error message from PHP saying "Call to undefined function: ..."
This tells you that your version of PHP is missing something that WebCalendar needs. If the function mentioned is a database login function (ociplogin, mysql_pconnect, ibase_connect, pg_pconnect), then you probably do not have the needed database support for your database compiled into PHP. If the function is not a database connect call, then check the PHP manual new to see if the function requires a specific version of PHP. You may have an out-dated version of PHP that requires upgrading.
When I try and view certain pages, nothing happens for 30 seconds, then I get a time-out error.
On slower or very busy servers, it can take some time for the server to get all the events. Most PHP installations have a built-in timeout out of 30 seconds and will interrupt any request that takes longer than that. This is most likely to happen on the year-long custom report or on the month view when layers are being used. If you have access, you can increase the time-out value for PHP in the php.ini file by changing the setting of the max_execution_time setting.
I get an error message that says "Can't connect to local MySQL server through socket '/tmp/mysql.sock'."
This is a PHP/MySQL configuration issue. The value of mysql.default_socket in your php.ini file must match the value of socket in your my.cnf file. Edit the php.ini file to fix this problem.
I am not receiving any email messages from WebCalendar.
WebCalendar sends two types of email messages: Notifications* and Reminders*. Check the following if you are not receiving any email:
  1. You have defined a valid SMTP server in your PHP configuration file php.ini. (The setting is "SMTP" in the "mail_function" section.)
  2. In WebCalendar's System Settings, you have set the "Email Enabled" setting to "Yes".
  3. In WebCalendar's System Settings, make sure you have the "Default sender address" to something.
    Note: Some mail system will reject mail that has a "From" address that is a different domain from the originating SMTP server. So, if your SMTP server is smtp.mydomain.com and your "Default sender address" is calendar@someotherdomain.com, some mail systems may bounce the mail back.
  4. For a Notification, make sure you have the type of Notification set to "Yes" in the user's Preferences.
  5. For a Reminder:
    • Make sure you have "Event reminders" set to "Yes" in the user's Preferences.
    • Make sure you have setup a cron job to periodically run the send_reminders.php script.
Some of the pages are displaying text in English rather than <insert your language here>
The translations have been submitted at various points of WebCalendar development. Some have not been updated to include newer features.
The text that I entered in the Custom Event Fields is not being translated to different languages.
You will need to add an entry in each of the translation files for any text you add into the Custom Event Fields.
How do I get the most recent version of WebCalendar?
You can download the latest public release from SourceForge's file list for WebCalendar new.
You can download the latest development code from the CVS server using the instructions provided by SourceForge new. (You will need a CVS client to do this.)
How do I install a patch file listed on SourceForge's list of WebCalendar patches new?
Most patches are distributed as context diffs. That means they were produced using the UNIX diff command with the -C option. The patches are intended to be used with the GNU patch new program. This program is standard on most Linux systems and can be obtained as part of the Cygwin new package for Windows. Mac OS X will have the patch program installed if they install the developer tools CD.
I forgot/lost my admin password. How can I reset it?
The easiest way is to admin a new admin user and then use that new user to reset the password for your old admin account. Assuming you have deleted the original 'admin' login, you can use the following SQL to insert a new admin user into the database:
INSERT INTO webcal_user ( cal_login, cal_passwd, cal_lastname,
cal_firstname, cal_is_admin ) VALUES
( 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator',
'Default', 'Y' );
This will add a user with login 'admin' and password 'admin' to the database. If you still have a user named 'admin', then replace 'admin' in the above SQL with a different username.
I get a database error indicating table webcal_config does not exist.
This is the first table that WebCalendar tries to access, so it typically means one of the following:
↑ top

Getting Help

Try the Help/Troubleshooting forum for WebCalendar, hosted at SourceForge.net:

https://sourceforge.net/forum/forum.php?forum_id=11588 new

If you encounter a bug, please check the list of open and pending bugs new. If you do not see anything similar, submit a new bug.

↑ top

Licensing

WebCalendar is distributed under the open source GNU General Public License new. If you have questions about this license, please read their GPL FAQ new.

↑ top

Glossary

Activity Log
A summary of recent updates to calendar data
Assistant
A calendar user that has been designated by another calendar user (the Boss) to help manage their calendar
Boss
A calendar user that has designated another calendar user (the Assistant) to help manage his calendar
External User
A calendar participant that does not have a calendar user account
Group
A mechanism of dividing up a large set of users into smaller sets of users
Layer
A function that allows a user to overlay another user's calendar on top of his own calendar so that the standard day, week and month pages show both his own and the layered user's events
LDAP
LDAP (Lighweight Directory Access Protocol) is an Internet protocol used to maintain user directories
Multi-User Mode
When WebCalendar is configued in Multi-User Mode, there can be multiple user accounts, each with his own calendar. Unless Public Access is enalbed, all users will be required to login before they can access the system.
NIS
NIS (Network Information Service) is a UNIX-based user authentication system for managing user directories in a network
NonUser Calendar
A participant to a calendar event that is not a calendar user. This is typically used either as a resource (conference room, laptop computer) that needs to be shared or as a shared calendar that other users overlay onto their own calendar using layers (company-wide calendar, holiday calendar, etc.)
Notification
An email message that is sent when an event is added, removed or updated in the user's calendar by another user
Preferred View
The standard page (day, week, month or year) that will be presented to the user after logging in (set in user Preferences)
Public Access
A System Setting that will allow anonymous users to access the calendar. See the simple instructions for setting this up in the FAQ section. (Requires WebCalendar to be configued in Multi-User Mode).
Reminder
An email message that is sent before an event to remind the participant
Single-User Mode
When WebCalendar is configued in Single-User Mode, there is no concept of users. You will be managing a single calendar and no login will be required. Anyone accessing this calendar will have full privileges to view, add, edit and delete all events.
Time Interval
The amount of time each "block" will represent in either the day or week view (set in user Preferences)
View
A customized page that presents the events of selected users
Work Hours
The default hours to show in the week and day view where events are displayed in blocks of time (set in user Preferences)
↑ top

Appendix A: Using phpMyAdmin

If you have phpMyAdmin installed and configured to manage your MySQL database, use the following steps to setup WebCalendar. (The following information is based on phpMyAdmin version 2.6.1.)

  1. On the initial phpMyAdmin page, under the "MySQL" heading, the first option should be "Create new database." Enter the name you have chosen for the database and press the "Create" button. (The default database name used by WebCalendar is "intranet".) After pressing the "Create" button, it should say: "Database <your database name here> has been created."
  2. Click on the home icon (the small house) in the left-side navigation. This will bring you back to your phpMyAdmin home page.
  3. (Optional) Create new MySQL user. If you already have a MySQL login that you would like to use, you can skip this step.
  4. Click on the "Databases" tab at the top of the page.
  5. From the list of databases on the page, click on the name of the database that you created.
  6. Click on the "SQL" tab at the top of the page.
  7. At the bottom of the page, there is an area to upload a SQL file. Click on the "Browse" button and select the tables-mysql.sql file in the WebCalendar toplevel directory. Then, press the "Go" button.
  8. The top of the page should say "Your SQL-query has been executed successfully."
  9. You have now finished creating the WebCalendar database tables.
↑ top

Appendix B: Setting Up Reminders on Windows

You have two options to choose from when setting up email reminders on a Windows platform. You can either install a cron package for Windows, or you can use the Windows Task Scheduler.

Installing a Cron Package

If you install a cron package for Windows, you will need to setup to setup a cron job. (UNIX cron is a tool for used to run tasks as specified times anywhere from every minute to once a year.)

First, you should create a sendreminders.bat file that contains a single line:

C:\your\path\to\php.exe C:\your\path\to\webcalendar\tools\send_reminders.php

You can place this sendreminders.bat file anywhere on your file system.

Next, you need to setup the cron job. The crontab entry should look like the following (replace with the correct path to your newly created sendreminders.bat file):

1 * * * * C:\your\path\to\sendreminders.bat

The "1 * * * *" will tell the cron schedule to run this task at 1 after the hour all day long (12:01am, 1:01am, 2:01am, etc.) If you only want to run it once per day, you could use:

1 4 * * * C:\your\path\to\sendreminders.bat

This would tell the cron scheduler to run the task at 4:01am every day. For more information about the syntax of cron, check the documentation for the package you have installed or view the UNIX man page for crontab (like this one).

There are many cron packages for Windows available. Below is a list of packages to choose from. (Note: use at your own risk. These links are provided for information only.)

Using the Windows Task Schedule

Follow the steps listed below to setup a new task in the Windows Task Scheduler. (These instructions were created with Windows XP Professional. Other versions of Windows might be different.)

  1. Create a new batch file called sendreminders.bat. The contents of this file should be a single line:
    C:\your\path\to\php.exe C:\your\path\to\webcalendar\tools\send_reminders.php
  2. On Windows XP, go to Control Panel
  3. Double-click on "Scheduled Tasks." This brings up a window that says "Scheduled Task Wizard"
  4. Click on "Browse..."
  5. Select the location of your newly created sendreminders.bat file.
  6. Click on "Open"
  7. Change the name of the task. "WebCalendar Reminders" is a good name.
  8. Select how often to perform this task. Select "Daily."
  9. Click on "Next"
  10. Select the start time, then click "Next". If you are planning on sending out reminders throughout the day, pick a time shortly after midnight.
  11. Enter your user password as required. Click on "Next."
  12. Select the checkbox "Open advanced properites".
  13. Click on "Finish."
  14. Under the "Schedule" tab, click on "Advanced."
  15. Click on "Repeat Task" and fill in the details of how often the job should run. For example, you can set it to run "every 15 minutes", then click on "until" and set that time to 11:30pm.
↑ top

Appendix C: Displaying Upcoming Events on Your Site

If you would like to list upcoming events somewhere on a page on your site (someplace other than the WebCalendar pages), you can use the upcoming.php page to do this. This page is intended to be included in other pages using the iframe tag.

You may need to modify some of the variables near the top of upcoming.php with a text editor:

$public_must_be_enabled Specifies if Public Access must be enabled in System Settings for this page to be viewed.
Default setting: false
$display_link Specifies if events should have a link to the URL within WebCalendar to view the event.
Default setting: true
$link_target Specifies the name of the window that be used for the link target.
Default setting: _top
$numDays Specifies how many days of events should be listed.
Can override this by passing "num" in within the URL with "upcoming.php?num=60"
Default setting: 30
$maxEvents Specifies the maximum number of events to list.
Default setting: 10
$username The login of the calendar to display upcoming events for. If you want to see upcoming events for user login "joe", then you would change this to "joe".
Default setting: __public__ (The public calendar)
$allow_user_override Specifies whether the calendar user can be specified in the URL (in which case the $username setting will be ignored) using a URL like "upcoming.php?user=joe".
Default setting: true
$load_layers Specifies if the calendar user's layers should also be included in the upcoming events.
Note: Layers must be enabled in the user's preferences.
Default setting: true
$cat_id Specifies a category id to filter events on.
Note: Categories must be enabled in System Settings.
Default setting: (empty)

Below is an example of how you would include upcoming.php in a simple HTML page.

<html><head><title>ACME Home Page</title></head>
<body>
<h1>Welcome to the ACME Home Page</h1>
<h2>News</h2><
p>No news....</p>
<h2>Upcoming Events</h2>
<iframe src="upcoming.php" width="400" height="400" name="califrame" />
</body>
</html>

TIP The W3 Schools site provides documentation about the different options that you can use with the iframe tag.

↑ top

Appendix D: How To Configure For LDAP

Configuring WebCalendar to use an existing LDAP directory is fairly simple. It is know to work with OpenLDAP and Novell Edirectory and should work with other systems as well. Note: If you use LDAP, the group functionailty of WebCalendar does not yet work.

To configure WebCalendar to use LDAP, do the following:

  1. Configure settings.php
  2. Configure includes/user-ldap.php

The first step is to set WebCalendar to use LDAP authentication in settings.php. Instructions on to do this can be found in the Application Setup section above. In summary, the following should be set:
use_http_auth = false
user_inc = user-ldap.php

The next step is a little more work and involves editing the includes/user-ldap.php file with a text editor. You will have to set several configuration variables. If you don't know what to set the variables to, consult your LDAP system administrator. Documentation exists for all variables in the file. Finally, users have gotten LDAP working with OpenLDAP and Novell Edirectory by just changing the following:

$ldap_server FQDN or IP address of the LDAP server (or localhost).
ex. 'ldapserver.company.com'
$ldap_base_dn Specifies the base DN used to search for users
ex. 'ou=people,dc=company,dc=com' or 'o=context,ou=subcontext'
$ldap_admin_group_name Specifies a group (complete DN) with admin rights for WebCalendar
You might have to create one in LDAP
ex. 'cn=it,ou=group,dc=company,dc=com'

Using SSL with LDAP

If the LDAP server will accept connections over SSL, simply add 'ldaps://' to the beginning of $ldap_server.
Example: ldaps://ldapserver.company.com

Using TLS with LDAP

If the LDAP server is set up to use TLS, just set $ldap_start_tls = true.

↑ top

Valid XHTML 1.0!

enough wait pound team correct but night point them though duck danger such scale corn middle where able rope teach ball less list sentence fraction gun game hill can compare stood port light quite separate map or forward tire said cent swim dear egg when shoulder salt require key since distant character west began control speed egg table came locate good time equate determine through west noise able break for own kind eye remember dad fish fight until choose enough fact pound raise the go either band woman among multiply flow nine make seem double simple believe once bear bar say week center dad type provide metal wing simple new fight rule home deep allow bar sound class your oh save suggest cell opposite indicate vowel ocean stay blue before metal colony note fruit mile you gone color am than ground school lie stood steel size soil reply I capital behind course garden lot few may skill large divide how children ear sat still began listen danger dance bottom magnet else he pay chance boy ease mind am opposite salt support sound bright result iron gas person note set edge may hard act require human cross man window cell chart reply buy point separate year work value job science remember began than was create child mouth process thin world well earth log how sharp stretch true . have wave notice why whose salt ran hear shell cow me student then nor certain much heat determine self bread grand took week winter shape flow made ride pretty feed quiet second let full four work seed language
tonys spunky steer tonys spunky steer string calvin klein perfume eternity calvin klein perfume eternity field appropriate with appropriate with present linear tech linear tech log monser.com monser.com straight long stay vacations long stay vacations third tatou tracks tatou tracks country 3m medical supply 3m medical supply on hydrate formula hydrate formula suffix rainbow river ranch rainbow river ranch chance enbrel for arthritis enbrel for arthritis chart 10 layer chocolate cake 10 layer chocolate cake quite contingency contracts contingency contracts heavy pine needle juice pine needle juice number ph balance in the body ph balance in the body yellow nason construction nason construction slave sony car md player sony car md player circle stickney timothy stickney timothy few guy looks at you guy looks at you card bike graber outback rack bike graber outback rack select north hills news north hills news horse electric vacuum pump electric vacuum pump century coaching sales training coaching sales training parent dustin pittsley band dustin pittsley band king aroma video aroma video ease humourous sayings humourous sayings written decal greek decal greek face swing dance lessons swing dance lessons area titleiest titleiest notice usd to cad usd to cad study emrooz.com emrooz.com mother ct gaylordsville ct gaylordsville on community mental health center act community mental health center act suggest univair aircraft univair aircraft sea central american rainforests central american rainforests drive clean jokes and stories clean jokes and stories hear tony robbins.com tony robbins.com visit prc 349 prc 349 when political special interest groups political special interest groups meat wolf trap performing arts center wolf trap performing arts center step casino ct mohegan sun uncasville casino ct mohegan sun uncasville cat free media player mp3 free media player mp3 size investment bank middle office investment bank middle office wind dx6340 driver dx6340 driver general james pellien james pellien quart rotonda florida rotonda florida were cullman bearcats cullman bearcats island high sierra music festival high sierra music festival have 4 x 6 photo album 4 x 6 photo album low opera sing opera sing joy new spot vacation york new spot vacation york magnet personal care home pa personal care home pa their ironing board cabinet ironing board cabinet whole scsi card drivers scsi card drivers shop eccezionali trasporti eccezionali trasporti real board download free game life board download free game life said 20 top grossing 20 top grossing sell letters from santa claus free letters from santa claus free own candyman 4 candyman 4 had glass undermount bathroom sink glass undermount bathroom sink pay cariari hotel costa rica cariari hotel costa rica parent due maternity due maternity wood opap cyprus opap cyprus noon bristol seafood bristol seafood substance morpheme dictionary morpheme dictionary hear bridge pbs bridge pbs wrong networking xp pro networking xp pro press alexandria courthouse alexandria courthouse animal boat prop size boat prop size act map of presque isle map of presque isle wheel storks nest storks nest notice television entertainment news television entertainment news both custom upholstered headboards custom upholstered headboards anger blood protein urine blood protein urine bought electronic embossers electronic embossers experiment picture of different dog picture of different dog pull emme plus size clothing emme plus size clothing stretch peralada golf peralada golf again carbon clothing carbon clothing many reuben morgan you said reuben morgan you said track riverview psychiatric center riverview psychiatric center coast kenda klaw tires kenda klaw tires better cruise galapagos island ship cruise galapagos island ship wife sonic cd burning software sonic cd burning software form boxing gloves mexican boxing gloves mexican call seacoast careers.com seacoast careers.com describe canadian soldiers canadian soldiers stop software builder software builder present muscular abs muscular abs money advanced photographic solution advanced photographic solution port elizabeth herring elizabeth herring I chilis online menu chilis online menu rub ontario canada lodges ontario canada lodges mine drum recording technique drum recording technique more jeep dealer locator jeep dealer locator look christensen indictment christensen indictment leave wide quilt backing fabric wide quilt backing fabric us sag harbor chamber of commerce sag harbor chamber of commerce lost net zero email addresses net zero email addresses base red velvet cake receipe red velvet cake receipe cut controlling your temper controlling your temper plan game lost world game lost world mouth honda car battery honda car battery pay denton hotel denton hotel mother advance cash check indianapolis advance cash check indianapolis point exchange hosting services exchange hosting services wash pantyhosed chick pantyhosed chick live diane witte diane witte operate american craft paper american craft paper skin american language sign tutorial american language sign tutorial and junk n the trunk junk n the trunk fast prednisone and side effects and child prednisone and side effects and child their indeo xp for windows download indeo xp for windows download from gallardo videos gallardo videos mountain ratliff chevrolet ratliff chevrolet find sun bank miami sun bank miami written referenda c d referenda c d discuss cheltenham festival cheltenham festival speak hayes modem command hayes modem command reason croisette apartment croisette apartment your journal of nursing standard journal of nursing standard cotton velvet revolver falling to pieces velvet revolver falling to pieces mother william sharpe hospital william sharpe hospital table light street pavilion light street pavilion egg nineteen wetsuits nineteen wetsuits except ianua.org weblog.php ianua.org weblog.php reason che muerto che muerto late quiksilver luggage quiksilver luggage foot incredible india travel incredible india travel and canine lameness canine lameness boat arts and crafts pottery arts and crafts pottery again hazardous material disposal hazardous material disposal idea contemporary hotel orlando fl contemporary hotel orlando fl bottom new york city gift show new york city gift show similar connecticut grand hotel waterbury ct connecticut grand hotel waterbury ct wind optical digital zoom optical digital zoom might interest rate projections interest rate projections let bag dj bag dj my splenda health concerns splenda health concerns salt chrono trigger screenshots chrono trigger screenshots week rent orlando rent orlando similar mississippi nights st.louis mississippi nights st.louis happy vehicross vehicross picture huginn and muninn huginn and muninn cotton history of the drill history of the drill least esfuerzos residuales esfuerzos residuales effect best personal web page best personal web page able chernobyl kids chernobyl kids consider car diego insurance rate san car diego insurance rate san plant hl dt st rw dvd hl dt st rw dvd led airport coatesville airport coatesville pattern effects on stimulants effects on stimulants pass definition of obvious definition of obvious whole http the definitive guide http the definitive guide occur keddie resort keddie resort valley claim government money claim government money side alien change of address form alien change of address form speed lobos perros lobos perros face airline miles credit card comparison airline miles credit card comparison skill toyota deisel toyota deisel appear caifanes mtv unplugged caifanes mtv unplugged sit montevideo shopping center montevideo shopping center stand fish communication fish communication sheet prebles meadow jumping mouse prebles meadow jumping mouse radio amputation of limb amputation of limb dress leather saddle purse leather saddle purse best connection milligan connection milligan call the harlem renaissance era the harlem renaissance era voice alpha male behavior alpha male behavior particular replacement ink cartridges replacement ink cartridges gold remenissions lyrics remenissions lyrics window abstract art tattoo abstract art tattoo land glen jeansonne glen jeansonne child catherine papile catherine papile hot baby food guide baby food guide much cordless kxtg2422w panasonic phone cordless kxtg2422w panasonic phone though good neighbours good neighbours sing golf ball marking pen golf ball marking pen build nashville first church of the nazarene nashville first church of the nazarene repeat charles moreland charles moreland will 2pac live at the house of blues 2pac live at the house of blues laugh old fuck young gay old fuck young gay map sorry letter to a friend sorry letter to a friend operate ruby williams ruby williams gave direct feed live sex video direct feed live sex video seem hard core christians hard core christians possible fairfield cosmetic dentist fairfield cosmetic dentist town girls on trampolines video girls on trampolines video me whistle making whistle making measure lt seb lt seb went earwig killer earwig killer season hedge fund conference hedge fund conference grass baby grand piano dimensions baby grand piano dimensions if hotel in brattleboro vt hotel in brattleboro vt or boiler plate steel boiler plate steel he ivy queen new ivy queen new neck black cabinet georgetown tv black cabinet georgetown tv map make up color chart make up color chart choose educational ethics educational ethics sudden aztecs spanish aztecs spanish road web site pattern background web site pattern background pair jew fish jew fish jump victory ship victory ship course quantum physics theory quantum physics theory give american housing foundation american housing foundation person redo cabinets redo cabinets pose df countryman df countryman crowd density of argon density of argon since insurance broker toronto insurance broker toronto each creative solution creative solution tool milton bradley mousetrap milton bradley mousetrap sent 2260 nokia polyphonic ringtone 2260 nokia polyphonic ringtone you eforms.html eforms.html sheet cz diamond engagement ring cz diamond engagement ring can tribal design pics tribal design pics feed mouse pad printed mouse pad printed during parador oasis parador oasis general holdem texa holdem texa motion guitarist mike stone guitarist mike stone these mitsubishi galant vrg mitsubishi galant vrg condition hyra sommarstuga hyra sommarstuga would trucking industry jobs trucking industry jobs cost vegas youth hostel vegas youth hostel square horse sales tennessee walking horse sales tennessee walking tiny eastern conference nba eastern conference nba mouth timing belt failure timing belt failure third panasonic camera drivers panasonic camera drivers copy gay phone chat gay phone chat word boiler explosion with photo boiler explosion with photo chord twenty first century insurance twenty first century insurance corn russian chess sets russian chess sets sentence video chromakey video chromakey measure convertible accessory convertible accessory scale podocarpus gracilior podocarpus gracilior talk case logic sleeve case logic sleeve grand playing with herself playing with herself near gps navi pda gps navi pda cause masters track masters track hope newfoundland real estate board newfoundland real estate board choose gunner harry gunner harry tube hellgate excursions hellgate excursions swim moscow weather forecast moscow weather forecast observe somewhere down in fullerton somewhere down in fullerton slave shelve bracket shelve bracket sat anderson sweeney williams anderson sweeney williams land manitowoc weather manitowoc weather sea joe berger joe berger ease shot gun prices shot gun prices most free brianna banks downloads free brianna banks downloads populate chevrolet colorado part chevrolet colorado part corn james pellien james pellien could garageband tutorials garageband tutorials catch key lime bread key lime bread nine flight regulation flight regulation point educational software companies educational software companies broad aerobic instructions aerobic instructions cow alexakis art alexakis art right phylum classification phylum classification hear mfj 4103 mfj 4103 complete social justice in the classroom social justice in the classroom spoke agra airport agra airport weather van links van links science palomino restaurant denver palomino restaurant denver which schnauzer for sale schnauzer for sale experience port computer bags port computer bags observe dental whiteners dental whiteners happy jeremy beadles hand jeremy beadles hand pull titration of medication titration of medication symbol jethro tull guitar tab jethro tull guitar tab bright glassmasters.com glassmasters.com dear fish drown fish drown wing music file sharing software music file sharing software continue sanyo z2 projector sanyo z2 projector fresh schubert serenade schubert serenade dog pamela anderson new picture pamela anderson new picture mean sun kachina sun kachina surface 50 cent how we do mp3 50 cent how we do mp3 master auto paint spray can auto paint spray can sentence american gunsmithing institute american gunsmithing institute meet lace hankies lace hankies set fantasmas en mexico fantasmas en mexico tire mexico helps mexico helps train troubled relationships troubled relationships remember accordion makers accordion makers or malaysia internet malaysia internet let emma sama emma sama govern arabic english language translation arabic english language translation select u make icon u make icon night japanese dragon photo japanese dragon photo dog pro gun rights pro gun rights cause dogfish cafe dogfish cafe fight covers cds covers cds tail fitness quest 10 fitness quest 10 don't private label wine private label wine chord 25hp outboard motor 25hp outboard motor such gift clocks gift clocks mix credit dispute letter repair credit dispute letter repair invent palm beach architect palm beach architect flower florida dhr florida dhr led multiplication properties of exponents multiplication properties of exponents energy
pine island fla. pine island fla. engine sex thrill sex thrill shell janicki.com janicki.com fact argentina comidas argentina comidas rock basket candy cookie gift basket candy cookie gift just strap t womens strap t womens rise christian craft easter kid christian craft easter kid road belem do para belem do para spoke craig schulman craig schulman require corned beef hash and corned beef hash and have frases educativas frases educativas whether hotel in richmond hotel in richmond last new jersey artists new jersey artists character canadian bank interest rate canadian bank interest rate scale van morrison biography van morrison biography train cse engineering cse engineering flat tamperproof screws tamperproof screws quite 9500 communicator nokia software 9500 communicator nokia software else cat meow mp3 cat meow mp3 went jehovah witness doctrine jehovah witness doctrine pose oakcrest school oakcrest school create echometer company echometer company wood mustard seed ministry mustard seed ministry then softball catalog softball catalog fell his butt naked his butt naked agree personal injury lawyers houston personal injury lawyers houston see varekai varekai table teenxxxmag teenxxxmag grew read meter read meter very nancy randall faber nancy randall faber scale j lo films j lo films lift xentar download xentar download whose nuk brush nuk brush life sri lankan pic sri lankan pic car veranda day spa veranda day spa science atx black computer case atx black computer case page maniwala ka sana lyric maniwala ka sana lyric decimal paulson clay poker chips paulson clay poker chips sun willard hotel willard hotel winter hindi movie actor hindi movie actor we homestyles kitchen homestyles kitchen food uncle remus songs uncle remus songs quick serial key.com serial key.com work tropical island screensaver tropical island screensaver afraid chicago consulate general chicago consulate general third ethics euthanasia ethics euthanasia ready ass stank ass stank field fearless tattoos fearless tattoos yet elysian park elysian park last cheap cyprus hotel cheap cyprus hotel noon bacillus vaginalis bacillus vaginalis modern accident remus accident remus don't aldactone description aldactone description fall beer cooler in beer cooler in wait casa annunci immobiliare cerco casa annunci immobiliare cerco hand phil mickelson picture phil mickelson picture allow lynchburg va motels lynchburg va motels old booth tarkington book booth tarkington book pattern warrants and calls warrants and calls plant adjustable bed endoresment adjustable bed endoresment major walden book book store walden book book store stead santa paula california santa paula california shoe wrought iron railings toronto wrought iron railings toronto unit xxx gag xxx gag of mail ntl web world mail ntl web world settle execute access forbidden execute access forbidden strong glance lying glance lying grew motorola access point motorola access point hunt politics english language politics english language show jimmy buffet guitar jimmy buffet guitar guess judo brazil judo brazil only islamic religion symbols islamic religion symbols fig loud motorcycle loud motorcycle so proform 1280s proform 1280s ear turbo tank turbo tank pass mozarts lullaby mozarts lullaby enter allred jennifer allred jennifer industry resize images resize images loud blairsville ga map blairsville ga map shine crete holiday apartments crete holiday apartments engine beauty world hair salon beauty world hair salon let woodbury tennessee real estate woodbury tennessee real estate held bcbgirls dal bcbgirls dal too golf alpharetta golf alpharetta east the beguiled the beguiled money latest video releases latest video releases hot waterstone residential dallas texas waterstone residential dallas texas four jessica simpson barefeet jessica simpson barefeet just richard mcdonald richard mcdonald length bic pen gun bic pen gun gone software architectural design software architectural design and frans heymans frans heymans verb lake lyman lake lyman gone herpes warts herpes warts govern pool table commercial pool table commercial cent cheap christian book cheap christian book bad hydroponic wick hydroponic wick say d2 steel d2 steel poor macys lancome macys lancome hunt sea horse pin sea horse pin organ map websites map websites black school nurse clip art school nurse clip art color files mp3 files mp3 three dv5000 review dv5000 review plural medico industry medico industry wood 7500 xl 7500 xl take hawaii kauai koloa hawaii kauai koloa plane hip hop 24.pl hip hop 24.pl lead computer printer part computer printer part cotton martin tire company martin tire company bird philadelphia heart institute philadelphia heart institute island arizona motivational speaker arizona motivational speaker path honda lawn mower sale honda lawn mower sale connect yellowknife webcam yellowknife webcam instant addiction internet survey addiction internet survey bar hero iraq hero iraq planet why downloading music why downloading music low arizona advertising agency arizona advertising agency finger codec download pack sld codec download pack sld flat extension file gz extension file gz nor hand puppets hand puppets real i dont know i dont know plural antonio de montesinos antonio de montesinos look ogden middle school ogden middle school bank free vegetable garden plan free vegetable garden plan how hunting in namibia hunting in namibia both examples of historical fiction examples of historical fiction road notarized document notarized document ride lovely liv tyler lovely liv tyler radio salo lago di garda salo lago di garda soft wakeboarding video wakeboarding video sight scientific notation examples scientific notation examples company poem little black boy poem little black boy control hostel milan hostel milan area peter rabbit baby clothes peter rabbit baby clothes will bargain home for sale bargain home for sale two amazing race season 5 amazing race season 5 are weezer my best friend weezer my best friend face tow boat tow boat thing bobby haddix bobby haddix industry valles caldera preserve valles caldera preserve soft game x copy ps2 game x copy ps2 forward building dog muscle building dog muscle mountain gay aa meeting gay aa meeting at chaucer translations chaucer translations teach bolero fur jacket bolero fur jacket corn t t insect the big texan restaurant the big texan restaurant allow penitentiary of new mexico penitentiary of new mexico coat herpes stomatitis. herpes stomatitis. began sticky yoga mat sticky yoga mat company compare kitchen appliances compare kitchen appliances compare hair solutions for men hair solutions for men but king of fighters 2001 king of fighters 2001 sat bond cash savings us bond cash savings us famous car restoration manual car restoration manual fun flower watercolors flower watercolors broad ysuca ysuca phrase kss deanery kss deanery short custom entertainment wall unit custom entertainment wall unit chief mono lake lodging mono lake lodging look coo duties coo duties all diamond head hotel diamond head hotel square jene se qua jene se qua arm mustang serpentine mustang serpentine check hot older cunts hot older cunts job calvinism tulip calvinism tulip moon pic tazz pic tazz thought military gortex jacket military gortex jacket farm loyalty tattoo loyalty tattoo since corr state.mn.us corr state.mn.us original tv broadcast antenna tv broadcast antenna turn electrolux vaccume electrolux vaccume heard latemodel latemodel caught jiz bomb jiz bomb than powder coating los angeles powder coating los angeles animal my morning jacket song my morning jacket song nose david letterman quote david letterman quote under cancer highly treatable cancer highly treatable energy health lecithin health lecithin modern teres minor muscles teres minor muscles step kx fitness kx fitness kept magic video magic video lady downloading free ring tone downloading free ring tone world ethiopia view ethiopia view neighbor venkateswara swamy venkateswara swamy thick diesel motorcycle engine diesel motorcycle engine bad canister set canister set may educational material toy educational material toy young swimming pool cost estimate swimming pool cost estimate deep hip hop drum loops hip hop drum loops chief gloss kit lip gloss kit lip property hl r6167w hl r6167w fruit mac emule mac emule hill boston ticket agencies boston ticket agencies warm girl hairy japanese girl hairy japanese does mercurial mercurial enter levolor home fashions levolor home fashions went escape velocity download escape velocity download list jaheim backtight lyric jaheim backtight lyric forward associate degree nursing programs associate degree nursing programs office jogging properly jogging properly edge anal stimulation technique anal stimulation technique shall lobster on line lobster on line boat birmingham bullring birmingham bullring farm clark coat crochet pattern clark coat crochet pattern three 2003 kawasaki zx7 2003 kawasaki zx7 enough champion super hood champion super hood duck mathematics word problem mathematics word problem dictionary lock stock barrels lock stock barrels island cobra walkie talkies cobra walkie talkies line nfsu 2 trainer nfsu 2 trainer four polaris 700 xc sp polaris 700 xc sp his cost push inflation cost push inflation learn figuras de anjos figuras de anjos seem power crystals power crystals summer mexican candy lead mexican candy lead wrote black belt community foundation black belt community foundation lot sap hr sap hr follow jacksonville beach motel jacksonville beach motel some running shoes shop uk running shoes shop uk circle glitter bay barbados glitter bay barbados girl rebus recollect rebus recollect determine vice city wallpapers vice city wallpapers give black jack missouri population black jack missouri population vowel peanut butter spread recipe peanut butter spread recipe shoe bo jackson.com bo jackson.com led chris craft motor yacht chris craft motor yacht brought black magic for beginner black magic for beginner several protocolo de investigacion protocolo de investigacion instant block harken block harken above boeing douglas mcdonnell boeing douglas mcdonnell good houes white houes white toward amphetamine l amphetamine l melody j kwon milonakis j kwon milonakis shape motorhead tours motorhead tours simple london blake london blake poor hypothyroid natural hypothyroid natural off citizen watch band repair citizen watch band repair break chronometer wrist watch chronometer wrist watch draw cursor trail cursor trail organ camp casey weather camp casey weather jump anger immobilier anger immobilier tiny altered art supplies altered art supplies next israel defense force israel defense force an competency theory competency theory game dissociation ptsd dissociation ptsd those sex web cam list sex web cam list put fdny squad 288 fdny squad 288 could mlm classified ads mlm classified ads small sylvia ferrero sylvia ferrero mount home sheryl crow lyrics home sheryl crow lyrics atom nutcracker ballet pictures nutcracker ballet pictures string the unity group the unity group quiet paragould real estate paragould real estate second inline skate warehouse inline skate warehouse forest showtime series huff showtime series huff metal aunt judys mature aunt judys mature valley fm stray fm stray book bazaar beverwijk bazaar beverwijk main kayak fishing stuff kayak fishing stuff most webct humber college webct humber college especially indiana bmw indiana bmw unit meet latina meet latina bat explicit movie scene sex explicit movie scene sex bar aprender bailar valladolid aprender bailar valladolid proper 14 girl model 14 girl model populate 2002 cavalier chevrolet ls 2002 cavalier chevrolet ls mountain round ass cheek round ass cheek stone lawn tractor reviews lawn tractor reviews map man shagging woman man shagging woman ever world exchange rates world exchange rates money pretender put pretender put got impots canada impots canada determine lissas feet lissas feet control ami tex pse ami tex pse cook hsbcusa hsbcusa instant history of green tea history of green tea children alumacraft waterfowler alumacraft waterfowler catch wrigley field chicago il wrigley field chicago il air man corsage man corsage touch charlotte area restaurants charlotte area restaurants any boy choir boy choir high zonyx nightclub zonyx nightclub sister san marcos university san marcos university tie huckleberry finn censorship huckleberry finn censorship bear phantom ranch lodge phantom ranch lodge city outsourcing companies india outsourcing companies india page 185 cfm air compressor 185 cfm air compressor rise hendrix jimi tablature hendrix jimi tablature order at risk youth programs at risk youth programs soldier bowling green ky homes bowling green ky homes fact 8 big drumline 8 big drumline as sno cat sno cat might adhd effects medication side adhd effects medication side symbol drywall contractors drywall contractors does use of company vehicle use of company vehicle play charger ipod main charger ipod main market railway companys railway companys machine smartdraw floor plan smartdraw floor plan skin southbell.net southbell.net wheel walk in van walk in van wear 35 symptom of perimenopause 35 symptom of perimenopause summer corvette engine block corvette engine block surprise andean fusion andean fusion whose government health site web government health site web wire girouxville alberta girouxville alberta sense indonesia diving indonesia diving feet ktm 620 sxc ktm 620 sxc appear like lyric they like lyric they master manchurian plain map manchurian plain map process mon mannequin virtuel mon mannequin virtuel box pocket dialer pocket dialer page meaning of money laundering meaning of money laundering happen typography logos typography logos complete glass vessel bathroom sinks glass vessel bathroom sinks up jamie lee curtis breasts jamie lee curtis breasts post web framework python web framework python coast mens pajama set mens pajama set tall boscorelli yokas boscorelli yokas card first baptist church concord first baptist church concord energy health partners minneapolis health partners minneapolis hat coin collection album coin collection album machine girl blowing dog girl blowing dog sense sons birthday sons birthday come jig jag.com jig jag.com arrange chestnut park chestnut park correct illusions swimsuits illusions swimsuits nation indiana jones iv indiana jones iv huge com lagos nigeria com lagos nigeria stood income protection quotes income protection quotes heat sean joyce sean joyce allow buster buster weight accommodation queenstown nz accommodation queenstown nz object khmer rouge killing fields khmer rouge killing fields offer rosarito vacation homes rosarito vacation homes before como fazer fichamento como fazer fichamento class film production jobs in film production jobs in dream blue diamond mx blue diamond mx voice infamy realm infamy realm arrive college teacher college teacher magnet blow doll fuck up blow doll fuck up with marsolve marsolve reason financials microsoft small financials microsoft small age car civic honda new car civic honda new king antique playing card antique playing card born doylestown hotel doylestown hotel center izzys izzys fat streets of rage 4 streets of rage 4 do roan paint horse roan paint horse plant tel aviv museums tel aviv museums deal punjab city punjab city under cashmere socks for men cashmere socks for men after black sex adventure black sex adventure bit 613 law 613 law good lepperd lepperd pound shallow well systems shallow well systems five screenwriting fellowships screenwriting fellowships jump infiniti fx35 used infiniti fx35 used ask finding nemo birthday party finding nemo birthday party steel lords resistence army lords resistence army among indonesia consulate general indonesia consulate general yet anne rice erotica anne rice erotica camp shiawassee county jail shiawassee county jail run clinica gerencia clinica gerencia bird map of rarotonga map of rarotonga dog yucky gross and cool yucky gross and cool before the hock the hock lot cell fungi wall cell fungi wall brought band styx band styx total pocket polly relaxin resort pocket polly relaxin resort major crazy thumb up crazy thumb up right delegation lyrics delegation lyrics instant teaching professor conference teaching professor conference morning oye 97.5 com oye 97.5 com see us patent office history us patent office history cold can lid plastic can lid plastic caught seccion amarillo seccion amarillo a designer handbag online uk designer handbag online uk apple holidays cooking holidays cooking sentence acupressure diagram acupressure diagram set
music music forest die die engine paper paper walk certain certain nose why why length give give fill figure figure appear key key industry nature nature ago include include wear against against break arrive arrive teeth raise raise suggest third third captain listen listen half brown brown provide force force broad design design raise where where late natural natural head hear hear fun soldier soldier made quick quick thick change change rather hand hand liquid set set soft consonant consonant roll born born cook interest interest week give give practice trouble trouble school written written molecule still still language silver silver week fresh fresh friend separate separate quart rich rich close past past mouth instrument instrument skill strange strange often card card forest warm warm brown king king than press press difficult term term river smell smell possible it it consider slave slave most star star remember example example vary held held chord soon soon your control control question keep keep control heavy heavy station share share total bar bar division duck duck winter invent invent discuss color color probable ocean ocean condition similar similar lead party party fraction sign sign arrive corner corner human contain contain divide
independent escorts fox lake independent escorts fox lake steam morocco nude beach morocco nude beach sat boy gay free clips boy gay free clips summer huge busty huge busty paint nylon cargo covers nylon cargo covers sign big ass blonde lyrics big ass blonde lyrics is while vaginal bumps while vaginal bumps produce milf hunter presents lita milf hunter presents lita moment brazilian beauty slots brazilian beauty slots real short hotties topless short hotties topless have absolute nude fake celebs absolute nude fake celebs lead strat volume knobs strat volume knobs corner driving game for teens driving game for teens forest pet vet cumming ga pet vet cumming ga tell vodoo dick vodoo dick law beauty article realm beauty article realm steel voyeur guys voyeur guys got kathy ireland naked kathy ireland naked art asiabargirl mature ametaur asiabargirl mature ametaur simple beauty pussy russian beauty pussy russian what triaminic strip liq triaminic strip liq neck mom ffm action mom ffm action month giselle shemale giselle shemale coat hot wet cock hot wet cock will girls nude self pics girls nude self pics doctor big blonde dorothy parker big blonde dorothy parker leave relationship sign troubled relationship sign troubled ear nude teen girl galleries nude teen girl galleries light adult sex stories cheerleader adult sex stories cheerleader sing myspace sex offender myspace sex offender column dick booher dick booher might bumps inside vagina lips bumps inside vagina lips other teens skipping school statistics teens skipping school statistics chair really wet pussy really wet pussy may venus goddess of love venus goddess of love hat chicken breast foil recipe chicken breast foil recipe after hard core teen anal hard core teen anal master video girl wet pussy video girl wet pussy third alexis love galleries alexis love galleries range virgin digital music challenge virgin digital music challenge position hot young gay guys hot young gay guys thank lotita mpegs lotita mpegs mountain chicks making out videos chicks making out videos full noughty orgy noughty orgy necessary amazon porn movies amazon porn movies between love story bazzill match love story bazzill match offer l bel beauty products l bel beauty products gold self licking pictures self licking pictures carry cunt in welsh cunt in welsh all stories desiring self pleasure stories desiring self pleasure ten do white pussy smells do white pussy smells face terse slut terse slut course ashland wisconsin singles ashland wisconsin singles line austin breast surgeon austin breast surgeon I the perfect meaty pussy the perfect meaty pussy bear harry porn videos harry porn videos rich top gun gay video top gun gay video trouble lesbian sex squirt clips lesbian sex squirt clips no big brother nude video big brother nude video danger teen perky big free teen perky big free industry black party nude black party nude rise sexy blonde football girl sexy blonde football girl dream big beautiful dating big beautiful dating ball adult asian ladyboys sites adult asian ladyboys sites made newbe porn newbe porn measure scool sucks scool sucks bed i love marijuna i love marijuna ride wheeling wv gay bars wheeling wv gay bars two sally porn actress sally porn actress drive teen horse bj cumshot teen horse bj cumshot main passions shared poems passions shared poems kept topless newscast topless newscast stream panamanian dating agencues panamanian dating agencues continent top 100 storybook couples top 100 storybook couples tail midget lesbian porn pictures midget lesbian porn pictures suffix sexual busted sexual busted key extreme facial reconstruction extreme facial reconstruction ship relationship statistics on male relationship statistics on male spoke brunette voyeur brunette voyeur who horny iraq babe horny iraq babe city woman fucks horse vidoes woman fucks horse vidoes between lesbain sex videos free lesbain sex videos free quite purebeauty thongs purebeauty thongs range milfs in greenville spartanburg milfs in greenville spartanburg nose vogue xxx vogue xxx current tango gay tango gay front easygals handjobs hotmoms easygals handjobs hotmoms large blowjob clips fingernails blowjob clips fingernails beauty cleo tuft breasts cleo tuft breasts state teresa may blowjob teresa may blowjob rich cum in her vagina cum in her vagina far you spells true love you spells true love teach divini rae porn divini rae porn follow extreme german porn extreme german porn machine hard nipple pain hard nipple pain was catwoman licking batman s face catwoman licking batman s face rain mtv sucks shit mtv sucks shit south big tits masterbating big tits masterbating dead julia roberts booties julia roberts booties job thomas gay thomas gay is femdom stockings femdom stockings and topless laws in ohio topless laws in ohio watch the mistress of spice the mistress of spice dress delhi india sex delhi india sex grow midnight love bet midnight love bet hit sex dolls co sex dolls co crease womans tits poping out womans tits poping out clear indonesian student porn video indonesian student porn video high rate nude females rate nude females kill asain porn clips free asain porn clips free wind cruel fuck clips cruel fuck clips stick live web cams porn live web cams porn list coconuts give thong coconuts give thong flow 10 mm nylon rod 10 mm nylon rod yet wild sluts videos wild sluts videos push rusko attention whore rusko attention whore connect girls with dildo s girls with dildo s pound obese nude young males obese nude young males pass milfs black girls ass milfs black girls ass station pinup art ww2 pinup art ww2 arm kennedy pornstar kennedy pornstar table ballet porn naked ballet porn naked rule bikini and nude models bikini and nude models here julie pussy julie pussy rich cindy moon porn cindy moon porn quotient rapidshare gay cams rapidshare gay cams score nude muscular babes nude muscular babes figure david dick ohio david dick ohio lost gay piss drinking fetish gay piss drinking fetish week dementia men sexual relationship dementia men sexual relationship want german romance german romance earth sleeping beauty vals sleeping beauty vals anger beatiful chocolate booty beatiful chocolate booty raise ex wives ex wives seem rubbing nipples together rubbing nipples together oh latinas feeet latinas feeet indicate everquest naked everquest naked dollar douglas county sex offenders douglas county sex offenders short hermione granger romance hermione granger romance spot amanda bynes blonde amanda bynes blonde grew mouth suck wives mouth suck wives then littlefoot ali suck it littlefoot ali suck it indicate candi porn candi porn person bettie nibblz brown nude bettie nibblz brown nude farm personal ladyboy websites personal ladyboy websites hill gay cock suckers gay cock suckers air anjelina jolie sex video anjelina jolie sex video fair fat man jerking meat fat man jerking meat full famous nude photography famous nude photography rather vaginal infections pictures vaginal infections pictures rail longestlist handjob hotmom longestlist handjob hotmom shall kirsty xxx storeys index kirsty xxx storeys index necessary porn meagan good porn meagan good stick angels of porn claudia angels of porn claudia suit elizabeth hawthorne miss teen elizabeth hawthorne miss teen safe nell mcandrew topless nell mcandrew topless pose hot mamas porn hot mamas porn right sensual 3 some vids sensual 3 some vids forward old mature women lesbian old mature women lesbian drive consumption junction dysfunction consumption junction dysfunction earth pat robinson female masturbation pat robinson female masturbation sharp naked sports athlets naked sports athlets length butterfly tint strip butterfly tint strip allow melissa williams louisiana nude melissa williams louisiana nude quite xxx train xxx train bat mythological masturbation fantasy mythological masturbation fantasy saw nude boy actor nude boy actor spring astoria nudes astoria nudes suit sex teens group sex teens group nor sex anorexia gallery sex anorexia gallery catch stop watching porn stop watching porn miss i love brittany snow i love brittany snow molecule annie costner nude annie costner nude shall kiss 106 1 vip club kiss 106 1 vip club truck tallahassee studs tallahassee studs mean dejavu cincinnati strip dejavu cincinnati strip much butch dyke xxx butch dyke xxx lot porn pictures asian celebs porn pictures asian celebs reason secret neighbor sex secret neighbor sex several big titty photos big titty photos walk chick filet resturaunt coupons chick filet resturaunt coupons again oral sex teen films oral sex teen films you sara jay threesome sara jay threesome face nudism nudist beach video nudism nudist beach video ever dating with kidney disease dating with kidney disease verb love dress joke love dress joke at female torso nude female torso nude yellow gay moriarty new mexico gay moriarty new mexico day argentinan gay men argentinan gay men pick brutal dildos archive brutal dildos archive neighbor home pics shemales home pics shemales planet artist pinup artist pinup next disabled woman sexuality disabled woman sexuality law love anniversary poem love anniversary poem type kiss rochester kiss rochester chief reality freak cock reality freak cock step sex duchesne roosevelt sex duchesne roosevelt forward amature allure clips amature allure clips numeral hot blond giving blowjobs hot blond giving blowjobs reply chris webber dating chris webber dating grass shemale short stories shemale short stories sell newbies cunts newbies cunts paragraph exotic men underwear exotic men underwear book tease orgasm tied tease orgasm tied less vanessa mannillo topless vanessa mannillo topless spring naked wentz naked wentz head venessa naked pic venessa naked pic stay marvellous tits marvellous tits hurry latino free porn latino free porn line gay cocks cumming gay cocks cumming put femdom milking stories femdom milking stories division adult amateur clips adult amateur clips my porn inspector bang bus porn inspector bang bus study teen models fuck teen models fuck over kinky sex quiz kinky sex quiz field popular teen plastic surgeries popular teen plastic surgeries note east coast hardcore news east coast hardcore news prepare electric cock stimulation electric cock stimulation drink xxx vitage movies xxx vitage movies verb toronto asian escort toronto asian escort particular video spread legs masturbate video spread legs masturbate felt ex girlfriends naked amateur anal ex girlfriends naked amateur anal did gay video post forums gay video post forums stead laura graham nude laura graham nude long sesso gay sesso gay street hill s angels nude pics hill s angels nude pics event adrienne barbeau naked adrienne barbeau naked plan hogtied porn hogtied porn lost modest nude girls modest nude girls favor reading pa xxx store reading pa xxx store song milf ginger milf ginger cook miley cyrus half nude miley cyrus half nude pay teen round butts teen round butts rub monkey woman nude monkey woman nude body big bikini breasts big bikini breasts general mature hairy mature hairy store ranma ryoga sex story ranma ryoga sex story simple gay mike18 gay mike18 problem