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!

Alltel Ringtones Butterfly Ringtones Remind Ringtones Tracfone Ringtones Free Verizon Ringtones Verizon Wireless Ringtones Download Free Cingular Ringtones Free Mp3 Ringtones Celcom Caller Ringtones Samsung Ringtones Hotlink Caller Ringtones Get Free Ringtones Free Verizon Wireless Ringtones Music Ringtones Hotlink Maxis Caller Ringtones Real Music Ringtones Mosquito Ringtones Make Your Own Ringtones Free Boost Mobile Ringtones Download Free Motorola Ringtones Download Free Sprint Ringtones Free Music Ringtones Nextel Ringtones Polyphonic Ringtones Blackberry Ringtones Free Real Ringtones Free T Mobile Ringtones Download Verizon Ringtones Ringtones For Cingular Phone Cricket Ringtones Nokia Ringtones Download Free Verizon Ringtones Free Mosquito Ringtones T Mobile Ringtones Midi Ringtones Verizon Ringtones Free Cell Ringtones Free Verizon Cell Phone Ringtones Free Tracfone Ringtones Cell Phone Ringtones Metro Pcs Ringtones Free Nextel Ringtones Sprint Pcs Ringtones Download Free Ringtones T Mobile Download Free Alltel Ringtones Free Alltel Ringtones Free Cricket Ringtones Kiss Ringtones Totally Free Ringtones Free Mobile Ringtones Free Ringtones Download Cingular Ringtones Ringtones Maker Free Cingular Cell Phone Ringtones Free Motorola Ringtones New Ringtones Free Cingular Ringtones Real Ringtones Download Free Ringtones Free Lg Ringtones Funny Ringtones Mp3 Ringtones Free Phone Ringtones Free Boost Ringtones Ringtones Us Cellular Ringtones Virgin Mobile Ringtones Download Nextel Ringtones Free Ringtones For Sprint Phone Free Suncom Ringtones Free Mobile Phone Ringtones Motorola Ringtones Download Ringtones Phone Ringtones Cingular Wireless Ringtones Nickelback Ringtones Free Download Mobile Ringtones Free Real Music Ringtones Sprint Free Metro Pcs Ringtones Free Cell Phone Ringtones Maxis Caller Ringtones Free Samsung Ringtones Free Nokia Ringtones Free Kyocera Ringtones Download Free Ringtones For Verizon Wireless 100 Free Ringtones Free Ringtones For Verizon Phone Cingular Ringtones Free Sprint Pcs Ringtones Download Free Mp3 Ringtones Real Music Ringtones Ringtones BlueTooth Free Ringtones Free Polyphonic Ringtones Sprint Ringtones Free Sprint Ringtones Download Free Nextel Ringtones Download Free Ringtones Nokia Free Virgin Mobile Ringtones Caller Ringtones Free Blackberry Ringtones Cialis Without Prescription Generic Cialis 100Mg Tramadol Buy Xanax Overnight Tramadol Side Effects Viagra For Women Phentermine 37 5Mg Nextday Tramadol Cheap Xanax Cheap Viagra Drug Adipex Xanax No Prescription Buy Xanax Online No Prescription Xanax Discount Cialis Purchase Hydrocodone Xanax Side Effects Buy Cheap Cialis Generic Viagra Adipex Without A Prescription Buy Cialis Hydrocodone Online Prescription Adipex Side Effects Tramadol Hydrocodone No Rx No Prescription Hydrocodone Hydrocodone Apap Viagra Adipex Online Phentermine Cheap Buy Phentermine Cod Phentermine Cheapest Cialis Hydrocodone Cod Female Viagra Buy Hydrocodone Online Order Tramadol Cheapest Tramadol Cialis Online Generic Xanax Adipex Sale Viagra Without Prescription Viagra Uk Purchase Viagra Online Phentermine Overnight Cheap Cialis Tramadol 50Mg Phentermine No Rx Phentermine No Prescription Tramadol Online Cod Buy Xanax Xanax Without A Prescription Tramadol 180 Xanax Online Phentermine No Prescription Phentermine Discount Phentermine Tramadol Cod Xanax Online Buy Hydrocodone Without A Prescription Order Xanax Online Cialis 20Mg Adipex Hydrocodone No Prescription Cialis For Sale Viagra For Sale Cialis Soft Tabs Overnight Xanax Cheap Tramadol Hydrocodone For Sale Order Adipex Discount Viagra Phentermine Without Prescription Buy Cialis Online Order Phentermine Online Phentermine Online Cheap Generic Hydrocodone Buy Phentermine Cheap Adipex Cialis Drug Cheap Phentermine Cheap Hydrocodone Soft Viagra Side Effects Tramadol Generic Adipex Xanax Overnight Phentermine Diet Pills Cheapest Generic Cialis Buying Hydrocodone Without Prescription Buy Adipex Buy Adipex No Prescription Adipex Overnight Herbal Viagra Buy Tramadol Overnight Cialis Vs Viagra Order Viagra Online Tramadol Without Prescription Cialis Generic Viagra Side Effects Adipex Mexico Online Tramadol 50 Mg Phentermine Cod Prince Adipex Cialis On Line Hydrocodone Without A Prescription Buy Phentermine Online Buy Cheap Phentermine Canadian Viagra Cialis Buy Adipex Online Natural Viagra Purchase Xanax Buy Viagra Online Cialis No Prescription Tramadol No Prescription Tramadol Online Buy Online Viagra Cheap Generic Viagra Cialis Cheap Adipex No Prescription Buy Tramadol Online Cod Viagra Pill Tramadol Hcl Hydrocodone Overnight Xanax Buy Phentermine Online Viagra Side Effects Tramadol 50 Mg Viagra Without Prescription Valium Mexico Online Cialis 20Mg Female Viagra Buy Phentermine Phentermine Cheap Cialis Generic Phentermine No Prescription Cheap Xanax Tramadol Cod Generic Xanax Cialis Tramadol No Prescription Phentermine Purchase Viagra Online Buy Tramadol Online Cod No Prescription Valium Discount Phentermine Buy Cialis Online Tramadol Online Cod Buy Tramadol Overnight Viagra Pill Phentermine No Rx Side Effects Tramadol Tramadol 50Mg No Prescription Xanax Drug Valium Cheap Phentermine Cialis Cheap Order Tramadol Phentermine 37 5Mg Buy Xanax Overnight Xanax Side Effects Buy Cheap Phentermine Cialis Online Cheap Viagra Cialis For Sale Online Phentermine Phentermine 37.5 Mg Cheap Tramadol Cialis No Prescription Xanax Buy Online Viagra Buy Phentermine Cod Tramadol Without Prescription 100Mg Tramadol Tramadol 180 Nextday Tramadol Cheapest Tramadol Cialis Vs Viagra Viagra Buy Valium No Prescription Order Viagra Online Buy Valium Generic Viagra Herbal Viagra Buy Viagra Online Cheap Cialis Valium Viagra For Sale Xanax Online Prince Valium Buy Cialis Valium Overnight Purchase Xanax Phentermine Online Xanax Without A Prescription Valium Without A Prescription Tramadol Online Cheap Valium Discount Viagra Cialis Soft Tabs Discount Cialis Buy Xanax Online Cheapest Generic Cialis Cialis On Line Cheap Generic Viagra Xanax Overnight Xanax No Prescription Tramadol Hcl Canadian Viagra Phentermine Diet Pills Phentermine Cod Cialis Drug Generic Cialis Order Phentermine Online Natural Viagra Soft Viagra Generic Valium Buy Valium Online No Prescription Phentermine Order Xanax Online Valium Online Buy Cheap Cialis Valium Sale Viagra For Women Viagra Uk Tramadol Buy Xanax Valium Side Effects Phentermine Without Prescription Alltel Ringtones Free Metro Pcs Ringtones Nokia Ringtones Cricket Ringtones Download Free Nextel Ringtones Download Verizon Ringtones Download Free Ringtones Nokia Music Ringtones T Mobile Ringtones BlueTooth Free Ringtones Free Music Ringtones Free Verizon Ringtones Ringtones Maker Download Ringtones Free Download Mobile Ringtones Kiss Ringtones Free Verizon Wireless Ringtones Samsung Ringtones Funny Ringtones Download Free Sprint Ringtones Free Boost Mobile Ringtones Polyphonic Ringtones Butterfly Ringtones Cell Phone Ringtones Free Motorola Ringtones Download Free Verizon Ringtones Free Lg Ringtones Midi Ringtones Make Your Own Ringtones Tracfone Ringtones Nickelback Ringtones Free Virgin Mobile Ringtones Free Nextel Ringtones Free T Mobile Ringtones Verizon Wireless Ringtones Virgin Mobile Ringtones Totally Free Ringtones Free Sprint Pcs Ringtones Free Alltel Ringtones Free Ringtones For Sprint Phone Free Kyocera Ringtones Phone Ringtones New Ringtones Free Nokia Ringtones Free Sprint Ringtones Free Cricket Ringtones Sprint Ringtones 100 Free Ringtones Download Free Ringtones Download Free Ringtones For Verizon Wireless Download Nextel Ringtones Celcom Caller Ringtones Download Free Motorola Ringtones Cingular Ringtones Download Free Alltel Ringtones Free Ringtones Free Samsung Ringtones Remind Ringtones Free Mosquito Ringtones Free Verizon Cell Phone Ringtones Hotlink Maxis Caller Ringtones Mp3 Ringtones Cingular Wireless Ringtones Ringtones Metro Pcs Ringtones Us Cellular Ringtones Free Tracfone Ringtones Download Cingular Ringtones Free Real Ringtones Free Mobile Phone Ringtones Free Boost Ringtones Caller Ringtones Free Polyphonic Ringtones Free Phone Ringtones Free Cell Ringtones Free Mp3 Ringtones Maxis Caller Ringtones Real Music Ringtones Ringtones Motorola Ringtones Free Cingular Cell Phone Ringtones Free Cingular Ringtones Get Free Ringtones Ringtones For Cingular Phone Free Real Music Ringtones Sprint Nextel Ringtones Free Mobile Ringtones Free Cell Phone Ringtones Verizon Ringtones Free Ringtones For Verizon Phone Real Music Ringtones Blackberry Ringtones Download Free Cingular Ringtones Real Ringtones Hotlink Caller Ringtones Free Blackberry Ringtones Download Free Mp3 Ringtones Sprint Pcs Ringtones Download Free Ringtones T Mobile Free Suncom Ringtones Mosquito Ringtones Ephedra Tablets Hydrocodone Apap Side Effects Paxil Cr 12.5Mg Nexium Drug Sildenafil Alternative Discount Cialis 40Mg Nexium Phentermine No Dr Ephedra Plant Phentermine 37.5 Mg No Prescription Online Ordering Propecia 20 Levitra Mg Levitra Purchase Sildenafil 25 Mg Prescription Soma Where Can I Buy Ephedra Hydrocodone Online Drug Impotence Levitra Meridia Online Order Sildenafil Soft Tabs Ephedra For Sale Sildenafil Price Order Adipex No Prescription Sildenafil 20 Mg What Is Fioricet Hydrocodone And Oxycodone Order Prozac Online Fioricet Picture Nexium Weight Gain Where Can I Buy Sildenafil Nexium Drugs Paxil Generic Buying Adipex Online Order Prozac Cheap Levitra Compare Phentermine Sildenafil For Women Generic Propecia Canada Propecia Online Pharmacy Phentermine Without A Prescription Buy Adipex P Hydrocodone Guaifenesin Cheap Prozac Nexium Online Ephedra Canada Onine Propecia Discount Nexium Purchase Adipex Drug Prozac Ssri Discount Fioricet Buy Meridia Online Sildenafil Online Muscle Relaxers Soma Cheap Meridia Online Order Genaric Propecia Meridia Without Perscription Adipex Weight Loss Cheap Adipex P Fioricet Online Fioricet Florida Phentermine In The Uk Adipex Uk Order Sildenafil Citrate Meridia 15Mg Generic Snorting Prozac Phentermine Alternative Paxil Pill Propecia Price Hydrocodone Apap 7.5 750 Phentermine Overnight Free Levitra Samples Fioricet With Codine Generic Nexium Nexium 40Mg Ephedrine Product Phentermine Vs Meridia Cialis Soft Tabs Discounted Nexium Pill Propecia Baldness Paxil Cr 37.5 Mg Fda Ephedra Herbal Sildenafil Soma Carisoprodol 15Mg Free Meridia Online Adipex Without Rx Meridia 15 Mg Meridia Weight Loss Yellow Swarm Ephedra Order Phentermine Online No Prescription Cheap Meridia Online Phentermine Weight Loss Pill Soma For Sale Nexium Medication Propecia And Woman Soma Without Prescription Paxil Cr Dosages Hydrocodone Bitrate Prozac Pills Prozac Prescription Paxil Withdrawal Buy Ephedra Products Buy Cheap Levitra Online Buy Generic Paxil Generic Fioricet Online Nexium 40 Mg Buy Paxil Without Prescription Snorting Phentermine Levitra Canada Prozac Tablets Prozac Cost Purchase Soma Online Prozac Without Prescription Hydrocodone For Sale Cheap Hydrocodone Generic Paxil Online Half Life Of Hydrocodone Soma Medical Buy Hydrocodone Where Purchase Propecia Propecia Tablets No Prescription Hydrocodone Lipodrene Ephedra Meridia And Effexor Cheap Prescription Propecia Sildenafil 100 Mg Diet Pills With Ephedra Adipex For Sale Hydrocodone M357 Prozac Price Buy Meridia Ephedra Nevadensis Purchase Viagra Online Sildenafil Citrate Tablets Prozac Anxiety Generic Sildenafil Paxil Cr 37.5Mg Meridia Cost Generic Soma Hydrocodone Alcohol Metabolife With Ephedra Generic Paxil Cr Levitra On Line Herbal Ephedra Picture Of Levitra Pill Phentermine Diet Pill Cr Dose Paxil Levitra Lady Order Fioricet Online Ephedra Diet Paxil Xr 25 Mg What Is Levitra Soma Pharmacy The Drug Fioricet Fioricet Tabs Www Sildenafil Soma Prescriptions Non Prescription Adipex Levitra Viagra Online Prescription Of Soma Buy Cheap Soma Online Soma Bay Cialis Without Prescription Extract Hydrocodone Meridia 15Mg Discount Levitra Purchase Adipex Online Without A Prescription Cialis Levitra Viagra Tramadol Side Effects Watson Soma Purchase Fioricet Online Paxil Online Cheap Fioricet 120 Buy Propecia Uk Meridia Xenical Fioricet Brand Cheapest Levitra Soma Muscle Relaxant Nexium Otc Paxil Pills Soma Online Pharmacy Compare Nexium Prices Order Cheap Levitra Get Prozac Soma 350 Mg Adipex Success Fioricet Without A Prescription Phentermine Uk Hydrocodone Apa Buy Now Propecia Buy Cheap Nexium Hydrocodone Urine Adipex Consultation Hydrocodone No Medical Records Compare Levitra Adipex Saturday Delivery Sildenafil Citrate Canada Levitra Vardenafil Hcl Propecia Alternatives Adipex D Sildenafil Citrate India purchase phentermine online lowest price phentermine order phentermine phentermine online prescriptions buy phentermine cash delivery diet drug phentermine phentermine cheap phentermine on line discount pharmacy phentermine phentermine prescriptions online delivered phentermine phentermine diet medication phentermine drug test phentermine no prescription required diet phentermine phentermine buy online order phentermine online cheapest phentermine phentermine online cheap phentermine 37.5 mg westword fioricet phentermine cheap phentermine 37.5mg cheap diet pills phentermine cheap phentermine pill cheap online phentermine loss adipex phentermine phentermine pharmacy cod drug phentermine test buy phentermine diet pill cheap phentermine diet phentermine online prescription adipex phentermine no prescription phentermine phentermine message board buy cheap phentermine buy cod online phentermine free phentermine shipping buy cheap phentermine online phentermine pills online phentermine cheap discount ingredient phentermine extra cheap phentermine cheap phentermine online phentermine ingredient buy phentermine online no prescription fioricet phentermine shipping phentermine diet pills cheap cheap online pharmacy phentermine buy cheap online phentermine cod phentermine phentermine lortab online buy phentermine in canada phentermine fact celexa phentermine phentermine 37.5mg tablets no prescription needed phentermine diet phentermine pill effects phentermine side phentermine cod delivery how does phentermine work cheap phentermine phentermine cheap free shipping buying phentermine online does it phentermine work phentermine no prescription needed cheapest phentermine online phentermine online consultation phentermine information amphetamine it phentermine phentermine for cheap order cheap phentermine buy phentermine where buy cheapest phentermine phentermine online pharmacy canada phentermine cod cheapest phentermine pills fact phentermine best prices phentermine dangers of phentermine cheap overnight phentermine phentermine adipex buy phentermine online pharmacy phentermine diet pills phentermine cheap cod phentermine cheap no prescription bontril phentermine phentermine adipex ionamin cheap phentermine cod lexapro phentermine cheapest phentermine pill cheap diet phentermine pill buy phentermine where to buy phentermine cheap phentermine 37.5 mg generic phentermine buy phentermine no prescription buy echeck phentermine cheap online order phentermine cheap phentermine target allinanchor phentermine cheap phentermine prescription order buy phentermine online online consultation phentermine buy cheap phentermine cod buy phentermine tablet phentermine 37.5 mg diet pill buy phentermine online cheap buy cod phentermine phentermine hydrochloride buy fda approved phentermine cod phentermine cheapest compare phentermine prices discount phentermine prescription cheap phentermine diet pills cheap phentermine 37.5 buy online phentermine snap phentermine diet pill phentermine 37.5mg phentermine for weight loss phentermine 37.5 consult online phentermine phentermine capsule cheap phentermine no rx phentermine online diet pill cheap phentermine no prescription bactrim phentermine cheap phentermine pills phentermine phentermine online no prescription phentermine hcl cheap free phentermine shipping danger phentermine buy phentermine pill phentermine.com buy phentermine on line buy generic online phentermine buy phentermine without prescription cost low phentermine phentermine consultation bargain buy phentermine cheap phentermine rx buy online phentermine shipping adipex phentermine vs cheapest buy phentermine phentermine very cheap buy phentermine online uk herbal phentermine phentermine online cod phentermine pills phentermine side affect purchase phentermine check phentermine ionamin buy cheap phentermine free fedex phentermine hoodia diet pill phentermine prescriptions phentermine 37.5mg cheap phentermine online purchase cheap phentermine price lowest phentermine price crohns phentermine buy phentermine with no prescription followup phentermine post phentermine and glucophage phentermine hcl 30mg phentermine vs meridia cheapest phentermine online cod phentermine canadian pharmacy phentermine price comparison fastin phentermine adipex cheap phentermine canadian pharmacy phentermine custom hrt phentermine lowest phentermine cheap price on phentermine 3pm cheap phentermine buy phentermine online cod phentermine tablets phentermine success story cheapest phentermine price adipex phentermine xenical phentermine online ordering phentermine cheap online cheap phentermine without prescription phentermine online without prescription buy phentermine online phentermine lowest phentermine online approved phentermine discounted phentermine phentermine meridia phentermine diet diet online phentermine pill cheapest phentermine diet pill phentermine cash on delivery phentermine 37.5 free shipping phentermine pill mexico pharmacy phentermine diet pill phentermine 37.5 phentermine side effects phentermine online pharmacy cheap pharmacy phentermine phentermine pharmacy cheap online phentermine dosage buy phentermine adipex buy phentermine cod phentermine hydrocodone phentermine free consultation adipex phentermine prescriptions phentermine 37.5 tablets phentermine low price hoodia and phentermine capsule phentermine cheap 37 5 phentermine phentermine health risk information phentermine approved first phentermine carisoprodol phentermine phentermine no prescription Buy Protonix Buy Lyrica Buy Menosan Buy Rocaltrol Buy Prevacid Buy Seroquel Buy Micardis Buy Macrobid Buy Plendil Buy Phentermine Buy Paroxetine Buy Skelaxin Buy Procardia Buy Lotrisone Buy Pravachol Buy Reglan Buy Loratadine Buy Proventil Buy Microlean Buy Purim Buy Lozol Buy Nexium Buy Proscar Buy Nolvadex Buy Meclizine Buy Mircette Buy Oxytrol Buy Nimotop Buy Silagra Buy Loprox Buy Prinivil Buy Lynoral Buy Rhinocort Buy Nasonex Buy Paxil Buy Lioresal Buy Prograf Buy Nymphomax Buy Lithiumeel Buy Quibron Buy Lovastatin Buy Relafen Buy Prandin Buy Remeron Buy Sarafem Buy Omeprazole Buy Lipothin Buy Microzide Buy Lorazepam Buy Myambutol Buy Rythmol Buy Noroxin Buy Shallaki Buy Miacalcin Buy Pulmicort Buy Ridaura Buy Lisinopril Buy Prednisone Buy Seasonale Buy Mentat Buy Requip Buy Provigil Buy Niacin Buy Ophthacare Buy Lukol Buy Nabumetone Buy Plavix Buy Methadone Buy Metoprolol Buy Niaspan Buy Monoket Buy Ortho Tricyclen Buy Lopressor Buy Omnicef Buy Megathin Buy Lunesta Buy Mexitil Buy Purinethol Buy Loxitane Buy Mevacor Buy Promethazine Buy Oxycontin Buy Lotrel Buy Norpace Buy Propoxyphene Buy Septilin Buy Mentax Buy Naproxen Buy Neurontin Buy Prometrium Buy Retin Buy Pamelor Buy Morphine Buy Lortab Buy Penlac Buy Patanol Buy Maxaquin Buy Rivotril Buy Penicillin Buy Nasacort Buy Oxycodone Buy Ortho Evra Buy Nizoral Buy Pilex Buy Mobic Buy Sinequan Buy Lipotrexate Buy Liposafe Buy Ranitidine Buy Rozerem Buy Metformin Buy Rumalaya Buy Meridia Buy Premarin Buy Mysoline Buy Lipitor Buy Percocet Buy Norco Buy Lopid Buy Prilosec Buy Methylprednisolone Buy Mucinex Buy Reosto Buy Phenergan Buy Ritalin Buy Prozac Buy Lincocin Buy Pletal Buy Methotrexate Buy Lotensin Buy Risperdal Buy Renova Buy Metronidazole Buy Pheromone Buy Protopic Buy Naprosyn Buy Norvasc Buy Singulair Buy Propecia Buy Motrin Buy Zyban Buy Zebeta Buy Atacand Buy Abilify Buy Styplon Buy Adderall Buy Xeloda Buy Synalar Buy Allegra Buy Beconase Buy Tetracycline Buy Viagra Buy Actoplus Buy Amoxil Buy Urispas Buy Arava Buy Ultracet Buy Augmentin Buy Alprazolam Buy Slimpulse Buy Cardura Buy Bactroban Buy Vermox Buy Ambien Buy Ayurslim Buy Adipex Buy Ciprofloxacin Buy Zestril Buy Vantin Buy Amitriptyline Buy Tadalis Buy Valtrex Buy Aldara Buy Carisoprodol Buy Arimidex Buy Tiberius Buy Wellbutrin Buy Benicar Buy Yasmin Buy Benadryl Buy Butalbital Buy Avandia Buy Acne Buy Zerit Buy Ansaid Buy Caverta Buy Suprax Buy Ventolin Buy Triphala Buy Zoloft Buy Vaniqa Buy Cardizem Buy Zyrtec Buy Celebrex Buy Yerba Buy Atarax Buy Zanaflex Buy Triphasil Buy Tramadol Buy Aristocort Buy Starlix Buy Casodex Buy Atenolol Buy Zithromax Buy Speman Buy Aleve Buy Adalat Buy Acomplia Buy Stromectol Buy Transderm Buy Chitosan Buy Sumycin Buy Bontril Buy Cipro Buy Acetaminophen Buy Sorbitrate Buy Antabuse Buy Avandamet Buy Bupropion Buy Avapro Buy Viramune Buy Zinc Buy Xenical Buy Soma Buy Biaxin Buy Ultram Buy Sustiva Buy Zyvox Buy Vasotec Buy Azithromycin Buy Temovate Buy Capoten Buy Calan Buy Actonel Buy Tamiflu Buy Superloss Buy Tagamet Buy Atrovent Buy Vasodilan Buy Aspirin Buy Brahmi Buy Buspar Buy Tulasi Buy Aldactone Buy Synthroid Buy Acyclovir Buy Ashwagandha Buy Benzonatate Buy Advair Buy Byetta Buy Albenza Buy Zovirax Buy Zantac Buy Tentex Buy Ativan Buy Aciphex Buy Azulfidine Buy Aceon Buy Cialis Buy Tenormin Buy Avelox Buy Abana Buy Suregasm Buy Alesse Buy Actos Buy Baclofen Buy Aricept Buy Trandate Buy Antivert Buy Albuterol Buy Aphthasol Buy Celexa Buy Amoxicillin Buy Amaryl Buy Bactrim Buy Altace Buy Cephalexin Buy Zyloprim Buy Bentyl Buy Trimox Buy Kytril Buy Himcolin Buy Cyklokapron Buy Florinef Buy Elimite Buy Kamagra Buy Ionamin Buy Keftab Buy Clarina Buy Danazol Buy Clindamycin Buy Endep Buy Herbolax Buy Flextra Buy Levlen Buy Fioricet Buy Cytotec Buy Didronel Buy Exelon Buy Codeine Buy Detrol Buy Elidel Buy Efudex Buy Levbid Buy Feldene Buy Cyclobenzaprine Buy Flomax Buy Flexeril Buy Clomid Buy Imdur Buy Isordil Buy Cozaar Buy Epivir Buy Levothyroxine Buy Glucophage Buy Lasix Buy Coreg Buy Desyrel Buy Depakote Buy Differin Buy Emsam Buy Levaquin Buy Hoodia Buy Flonase Buy Hgh Buy Lanoxin Buy Coumadin Buy Evecare Buy Klonopin Buy Confido Buy Diprolene Buy Crestor Buy Famvir Buy Levitra Buy Femara Buy Diclofenac Buy Gris Peg Buy Glucosamine Buy Eurax Buy Diarex Buy Isoptin Buy Gasex Buy Folic Buy Karela Buy Lamisil Buy Fluoxetine Buy Cleocin Buy Hytrin Buy Himplasia Buy Clearitol Buy Geriforte Buy Guaifenesin Buy Colchicine Buy Hydrochlorothiazide Buy Imitrex Buy Etodolac Buy Deltasone Buy Ibuprofen Buy Kenalog Buy Ismo Buy Digoxin Buy Furosemide Buy Denavir Buy Clonidine Buy Combivent Buy Lamictal Buy Hyzaar Buy Clarinex Buy Elavil Buy Claritin Buy Diflucan Buy Cystone Buy Esgic Buy Doxycycline Buy Lasuna Buy Hydrocodone Buy Indomethacin Buy Citalopram Buy Enhance9 Buy Keppra Buy Grifulvin Buy Erythromycin Buy Glucotrol Buy Diazepam Buy Clonazepam Buy Fentanyl Buy Hydroxyzine Buy Geodon Buy Euphoria Buy Fosamax Buy Cymbalta Buy Dovonex Buy Innopran Buy Dilantin Buy Flovent Buy Condylox Buy Ketek Buy Diovan Buy Fatblast Buy Diabecon Buy Lariam Buy Keflex Buy Copegus Buy Gabapentin Buy Inderal Buy Cordarone Buy Effexor Buy Levoxyl Buy Lexapro Buy Leukeran Buy Estradiol Buy Flagyl Buy Evista Buy Darvocet Buy Enalapril Buy Didrex Buy Concerta adipex diet pills adipex cheap adipex online adipex generic adipex buy cheap online adipex diet adipex free shipping order adipex cheap online adipex pills adipex side effects buy adipex no prescription adipex pill cheap adipex discount adipex buy adipex adipex prescription order adipex adipex prescriptions order adipex cheap adipex online pharmacy cheapest adipex adipex phentermine adipex cheap buy cheap adipex adipex diet pill buy adipex online adipex pharmacy diet adipex generic adipex adipex online order cialis online cialis pill cialis prescription online cialis cialis vs viagra order cialis buy cialis online purchase cialis cialis side effects buy cheap cialis cialis levitra cialis online buy cialis discount cialis cheap generic cialis cialis soft tabs viagra cialis generic cialis cialis cheap cialis generic hydrocodone hydrocodone on line no prescription hydrocodone hydrocodone withdrawal hydrocodone addictions order hydrocodone what is hydrocodone hydrocodone withdrawal symptom hydrocodone online buy addiction hydrocodone hydrocodone overnight buy hydrocodone online hydrocodone information hydrocodone hydrocodone dosage cheap hydrocodone oxycodone and hydrocodone hydrocodone vicodin hydrocodone buy online prescriptions hydrocodone discount hydrocodone hydrocodone online prescription hydrocodone online hydrocodone order hydrocodone for sale buy hydrocodone hydrocodone description hydrocodone apap how to buy hydrocodone hydrocodone prescription generic phentermine phentermine no prescription phentermine 37.5 mg phentermine diet pills phentermine cheap online phentermine diet phentermine pill adipex phentermine diet phentermine phentermine buy online phentermine online phentermine pharmacy phentermine no prescriptions order phentermine phentermine online pharmacy phentermine pills phentermine cheap online cheap phentermine phentermine diet pill herbal phentermine order phentermine online phentermine online cheap phentermine for cheap phentermine for weight loss cheap phentermine online buy cheap phentermine effects phentermine side phentermine side effects buy phentermine online phentermine hcl phentermine diet no prescription phentermine phentermine adipex cheapest phentermine phentermine cheap buy phentermine buy cheap phentermine online phentermine prescriptions free phentermine shipping phentermine pill buy soma online soma drug order soma soma drug test soma muscle relaxant soma 350 mg soma online pharmacy buy cheap soma online soma on line generic soma soma addiction buy cheap soma soma dosage cheapest soma online soma pills cheap soma soma medications soma drug information buy soma soma generic tramadol lowest price tramadol tramadol side effects 180 tramadol cheap tramadol online tramadol cod cheap tramadol buy cheap tramadol online tramadol online buy tramadol 50 mg tramadol tramadol buy tramadol without prescription buy tramadol cheap tramadol hydrochloride buy cheap tramadol tramadol addiction tramadol online pharmacy buy tramadol hcl cheapest tramadol drug tramadol cheap order tramadol effects side tramadol tramadol no prescription order tramadol tramadol online cheap tramadol hcl tramadol drug buy tramadol online tramadol cheap buy viagra online viagra pills order viagra viagra for woman buy viagra viagra sale viagra information viagra cheap buying online viagra buy viagra cheap female viagra generic viagra cheap order viagra online generic viagra herbal viagra discount viagra viagra natural viagra viagra online generic order viagra viagra online order best price viagra soft tab viagra cheap viagra viagra dosage viagra prescriptions viagra side effects viagra online prescription viagra pharmacy alternative viagra order xanax xanax side effects buying xanax online buy xanax what is xanax xanax pictures xanax prescription generic xanax xanax addictions about xanax order xanax online xanax online pharmacy xanax withdrawal cheap xanax buy xanax on line xanax pills xanax information xanax bar xanax cheap xanax online xanax prescriptions xanax drug test buy xanax online xanax overdose xanax addiction xanax online prescription xanax overnight xanax xr xanax online purchase xanax Buy Pyridoxine Buy Valium Buy Valtrex Buy Fluconazole Buy Claritin Buy Ultram Buy Alprazolam Buy Diflucan Buy Cozaar Buy Cipro Buy Bupropion Buy Celexa Buy Zanaflex Buy Lasix Buy Provigil Buy Prozac Buy Didrex Buy Ultracet Buy Diethylpropion Buy Ambien Buy Tetracycline Buy Prilosec Buy Sildenafil Buy Levitra Buy Lamisil Buy Glucophage Buy Topamax Buy Nexium Buy Famvir Buy Accutane Buy Clonazepam Buy Singulair Buy Elavil Buy Bontril Buy Paroxetine Buy Aldactone Buy Doxycycline Buy Zithromax Buy Avandia Buy Fluoxetine Buy Codeine Buy Ephedrine Buy Aciphex Buy Zolpidem Buy Butalbital Buy Meridia Buy Klonopin Buy Prevacid Buy Imitrex Buy Allegra Buy Amoxil Buy Actos Buy Diazepam Buy Vasotec Buy Clomid Buy Effexor Buy Plavix Buy Acyclovir Buy Amaryl Buy Levaquin metro pcs free ringtones gospel ringtones download free r ingtones phone ringtones for free free ringtones for verizon real ringtones free imelody ringtones ringtones downloadable music box ringtones real ringtones download ringtones for nextel free samsung ringtones download phone ringtones download hotlink caller ringtones free mp3 ringtones free verizon ringtones download urban ringtones free ringtones for sprint ringtones for mobile free ringtones from cingular free verizon ringtones downloads mobile phone ringtones verizon ringtones free compleatly free ringtones centennial ringtones free cell phone ringtones free mp3 ringtones for motorola disturbed ringtones ringtones verizon cingular phone ringtones download free ringtones samsung wrestling ringtones ringtones verizon free ringtones free downloads www cingular ringtones download verizon ringtones free mobile phones ringtones bollywood ringtones free verizon ringtones nextel real ringtones ringtones for free verizon ringtones download cool ringtones nokia ringtones for free ringtones for free sprint free ringtones verizon free ringtones for nokia free samsung ringtones bollywood ringtones free alltel cell phone ringtones ringtones for mobile verizon wireless ringtones ringtones alltel mp3 ringtones for nextel real music ringtones for nextel mobile ringtones alltel wireless ringtones sprint music ringtones lg ringtones download alltel ringtones us cellular ringtones phone ringtones ringtones for cingular grits ringtones real music ringtones nextel ringtones and download ringtones for download free logos ringtones cingular wireless ringtones real ringtones for sprint tmobile ringtones free reggaeton ringtones ringtones to download kyocera ringtones chinese ringtones ringtones free samsung ringtones verizon wireless mmf ringtones nextel music ringtones metal ringtones ringtones for your cell phone motorola ringtones ringtones for free for nextel t mobile ringtones for free mobile ringtones free download ringtones verizon download ringtones for free where can i find free ringtones cell phones ringtones nextel ringtones free ringtones for all phones funny ringtones free suncom ringtones ringtones for free download downloads of ringtones unicel ringtones download ringtones to nextel zingy ringtones alltel ringtones cingular ringtones download free nextel ringtones nextel ringtones for free web ringtones 50 cent ringtones cingular mp3 ringtones download ringtones free nextel mp3 ringtones absolutely free ringtones real mp3 ringtones nextel ringtones ringtones wallpapers free ringtones downloads sprint ringtones for free funny ringtones ringtones for verizon ringtones cell phone ringtones from alltel free motorola ringtones tracfone ringtones ringtones for cingular cell phone downloadable ringtones free sprint ringtones tracfone ringtones free how to download ringtones for free nokia ringtones free animal sound ringtones fire ringtones www nextel ringtones free mobile ringtones free nokia ringtones alltell ringtones free for free ringtones cingular cell phone ringtones ringtones download free metro pcs ringtones t mobile ringtones download real ringtones nextel free ringtones downloads free wallpapers and ringtones planet ringtones ringtones free polyphonic free ringtones downloadable ringtones for verizon wireless music ringtones free cingular ringtones ringtones with alltel downloads free ringtones mp3 ringtones free bell mobility ringtones ringtones download verizon audiovox ringtones ringtones wallpapers how do you download ringtones free ringtones download downloads ringtones jamster ringtones for free hifi ringtones ringtones for sprint phone verizon ringtones polyphonic ringtones for free t mobile ringtones metro pcs ringtones free jamster ringtones ringtones free freee ringtones for nokia free ringtones ringtones nokia free free polyphonic ringtones tmobile ringtones free ringtones verizon wireless alltell ringtones boost mobile ringtones free cingular ringtones cellular phone ringtones music ringtones for free motorola ringtones free phone ringtones free ringtones downloads free hindi ringtones free ringtones sprint composer ringtones real music ringtones harry potter ringtones ringtones free download ringtones downloads for free ringtones cingular ringtones for boost mobile ringtones free sprint mp3 ringtones cingular ringtones free sprint phone ringtones ringtones free verizon alltel ringtones free make you own ringtones nextel phone ringtones real ringtones for nextel kyocera ringtones free alltel lg ringtones wireless phone ringtones download free ringtones verizon verizon ringtones for free hip hop ringtones verizon phones ringtones download music ringtones sidekick ringtones music ringtones nokia ringtones downloads nokia ringtones ringtones to your cell phone sprint ringtones free download midi ringtones keypress ringtones fido ringtones midi ringtones evanescence ringtones tamil ringtones cricket ringtones ringtones for free nokia t mobile ringtones free download ringtones cingular ringtones downloads ringtones for free usa ringtones download of ringtones cell phone ringtones cingular ringtones for free ringtones for alltel juke box ringtones how to download ringtones polyphonic ringtones ringtones blackberry polyphonic ringtones free verizon wireless ringtones free cell phone ringtones for free ringtones for sprint ringtones free sprint ringtones ringtones free motorola the godfather ringtones sprint real ringtones