Yahoo! UI Library

Container 

Yahoo! UI Library > container > Dialog.js (source view)

/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
Version 0.12.2
*/

/**
* Dialog is an implementation of Panel that can be used to submit form data. Built-in functionality for buttons with event handlers is included, and button sets can be build dynamically, or the preincluded ones for Submit/Cancel and OK/Cancel can be utilized. Forms can be processed in 3 ways -- via an asynchronous Connection utility call, a simple form POST or GET, or manually.
* @namespace YAHOO.widget
* @class Dialog
* @extends YAHOO.widget.Panel
* @constructor
* @param {String}	el	The element ID representing the Dialog <em>OR</em>
* @param {HTMLElement}	el	The element representing the Dialog
* @param {Object}	userConfig	The configuration object literal containing the configuration that should be set for this Dialog. See configuration documentation for more details.
*/
YAHOO.widget.Dialog = function(el, userConfig) {
	YAHOO.widget.Dialog.superclass.constructor.call(this, el, userConfig);
};

YAHOO.extend(YAHOO.widget.Dialog, YAHOO.widget.Panel);

/**
* Constant representing the default CSS class used for a Dialog
* @property YAHOO.widget.Dialog.CSS_DIALOG
* @static
* @final
* @type String
*/
YAHOO.widget.Dialog.CSS_DIALOG = "dialog";

/**
* Initializes the class's configurable properties which can be changed using the Dialog's Config object (cfg).
* @method initDefaultConfig
*/
YAHOO.widget.Dialog.prototype.initDefaultConfig = function() {
	YAHOO.widget.Dialog.superclass.initDefaultConfig.call(this);

	/**
	* The internally maintained callback object for use with the Connection utility
	* @property callback
	* @type Object
	*/
	this.callback = {
		/**
		* The function to execute upon success of the Connection submission
		* @property callback.success
		* @type Function
		*/
		success : null,
		/**
		* The function to execute upon failure of the Connection submission
		* @property callback.failure
		* @type Function
		*/
		failure : null,
		/**
		* The arbitraty argument or arguments to pass to the Connection callback functions
		* @property callback.argument
		* @type Object
		*/
		argument: null
	};

	// Add form dialog config properties //
	
	/**
	* The method to use for posting the Dialog's form. Possible values are "async", "form", and "manual".
	* @config postmethod 
	* @type String
	* @default async
	*/
	this.cfg.addProperty("postmethod", { value:"async", handler:this.configPostMethod, validator:function(val) { 
													if (val != "form" && val != "async" && val != "none" && val != "manual") {
														return false;
													} else {
														return true;
													}
												} });

	/**
	* Object literal(s) defining the buttons for the Dialog's footer.
	* @config buttons
	* @type Object[]
	* @default "none"
	*/
	this.cfg.addProperty("buttons",		{ value:"none",	handler:this.configButtons } );
};

/**
* Initializes the custom events for Dialog which are fired automatically at appropriate times by the Dialog class.
* @method initEvents
*/
YAHOO.widget.Dialog.prototype.initEvents = function() {
	YAHOO.widget.Dialog.superclass.initEvents.call(this);

	/**
	* CustomEvent fired prior to submission
	* @event beforeSumitEvent
	*/	
	this.beforeSubmitEvent	= new YAHOO.util.CustomEvent("beforeSubmit");
	
	/**
	* CustomEvent fired after submission
	* @event submitEvent
	*/
	this.submitEvent		= new YAHOO.util.CustomEvent("submit");

	/**
	* CustomEvent fired prior to manual submission
	* @event manualSubmitEvent
	*/
	this.manualSubmitEvent	= new YAHOO.util.CustomEvent("manualSubmit");

	/**
	* CustomEvent fired prior to asynchronous submission
	* @event asyncSubmitEvent
	*/	
	this.asyncSubmitEvent	= new YAHOO.util.CustomEvent("asyncSubmit");

	/**
	* CustomEvent fired prior to form-based submission
	* @event formSubmitEvent
	*/
	this.formSubmitEvent	= new YAHOO.util.CustomEvent("formSubmit");

	/**
	* CustomEvent fired after cancel
	* @event cancelEvent
	*/
	this.cancelEvent		= new YAHOO.util.CustomEvent("cancel");
};

/**
* The Dialog initialization method, which is executed for Dialog and all of its subclasses. This method is automatically called by the constructor, and  sets up all DOM references for pre-existing markup, and creates required markup if it is not already present.
* @method init
* @param {String}	el	The element ID representing the Dialog <em>OR</em>
* @param {HTMLElement}	el	The element representing the Dialog
* @param {Object}	userConfig	The configuration object literal containing the configuration that should be set for this Dialog. See configuration documentation for more details.
*/
YAHOO.widget.Dialog.prototype.init = function(el, userConfig) {
	YAHOO.widget.Dialog.superclass.init.call(this, el/*, userConfig*/);  // Note that we don't pass the user config in here yet because we only want it executed once, at the lowest subclass level
	
	this.beforeInitEvent.fire(YAHOO.widget.Dialog);

	YAHOO.util.Dom.addClass(this.element, YAHOO.widget.Dialog.CSS_DIALOG);

	this.cfg.setProperty("visible", false);

	if (userConfig) {
		this.cfg.applyConfig(userConfig, true);
	}

	this.showEvent.subscribe(this.focusFirst, this, true);
	this.beforeHideEvent.subscribe(this.blurButtons, this, true);

	this.beforeRenderEvent.subscribe(function() {
		var buttonCfg = this.cfg.getProperty("buttons");
		if (buttonCfg && buttonCfg != "none") {
			if (! this.footer) {
				this.setFooter("");
			}
		}
	}, this, true);

	this.initEvent.fire(YAHOO.widget.Dialog);
};

/**
* Performs the submission of the Dialog form depending on the value of "postmethod" property.
* @method doSubmit
*/
YAHOO.widget.Dialog.prototype.doSubmit = function() {
	var pm = this.cfg.getProperty("postmethod");
	switch (pm) {
		case "async":
			var method = this.form.getAttribute("method") || 'POST';
			method = method.toUpperCase();
			YAHOO.util.Connect.setForm(this.form);
			var cObj = YAHOO.util.Connect.asyncRequest(method, this.form.getAttribute("action"), this.callback);
			this.asyncSubmitEvent.fire();
			break;
		case "form":
			this.form.submit();
			this.formSubmitEvent.fire();
			break;
		case "none":
		case "manual":
			this.manualSubmitEvent.fire();
			break;
	}
};

/**
* Prepares the Dialog's internal FORM object, creating one if one is not currently present.
* @method registerForm
*/
YAHOO.widget.Dialog.prototype.registerForm = function() {
	var form = this.element.getElementsByTagName("FORM")[0];

	if (! form) {
		var formHTML = "<form name=\"frm_" + this.id + "\" action=\"\"></form>";
		this.body.innerHTML += formHTML;
		form = this.element.getElementsByTagName("FORM")[0];
	}

	this.firstFormElement = function() {
		for (var f=0;f<form.elements.length;f++ ) {
			var el = form.elements[f];
			if (el.focus && ! el.disabled) {
				if (el.type && el.type != "hidden") {
					return el;
				}
			}
		}
		return null;
	}();

	this.lastFormElement = function() {
		for (var f=form.elements.length-1;f>=0;f-- ) {
			var el = form.elements[f];
			if (el.focus && ! el.disabled) {
				if (el.type && el.type != "hidden") {
					return el;
				}
			}
		}
		return null;
	}();

	this.form = form;

	if (this.cfg.getProperty("modal") && this.form) {

		var me = this;
		
		var firstElement = this.firstFormElement || this.firstButton;
		if (firstElement) {
			this.preventBackTab = new YAHOO.util.KeyListener(firstElement, { shift:true, keys:9 }, {fn:me.focusLast, scope:me, correctScope:true} );
			this.showEvent.subscribe(this.preventBackTab.enable, this.preventBackTab, true);
			this.hideEvent.subscribe(this.preventBackTab.disable, this.preventBackTab, true);
		}

		var lastElement = this.lastButton || this.lastFormElement;
		if (lastElement) {
			this.preventTabOut = new YAHOO.util.KeyListener(lastElement, { shift:false, keys:9 }, {fn:me.focusFirst, scope:me, correctScope:true} );
			this.showEvent.subscribe(this.preventTabOut.enable, this.preventTabOut, true);
			this.hideEvent.subscribe(this.preventTabOut.disable, this.preventTabOut, true);
		}
	}
};

// BEGIN BUILT-IN PROPERTY EVENT HANDLERS //

/**
* The default event handler fired when the "close" property is changed. The method controls the appending or hiding of the close icon at the top right of the Dialog.
* @method configClose
* @param {String} type	The CustomEvent type (usually the property name)
* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
*/
YAHOO.widget.Dialog.prototype.configClose = function(type, args, obj) {
	var val = args[0];

	var doCancel = function(e, obj) {
		obj.cancel();
	};

	if (val) {
		if (! this.close) {
			this.close = document.createElement("DIV");
			YAHOO.util.Dom.addClass(this.close, "close");

			if (this.isSecure) {
				YAHOO.util.Dom.addClass(this.close, "secure");
			} else {
				YAHOO.util.Dom.addClass(this.close, "nonsecure");
			}

			this.close.innerHTML = "&#160;";
			this.innerElement.appendChild(this.close);
			YAHOO.util.Event.addListener(this.close, "click", doCancel, this);	
		} else {
			this.close.style.display = "block";
		}
	} else {
		if (this.close) {
			this.close.style.display = "none";
		}
	}
};

/**
* The default event handler for the "buttons" configuration property
* @method configButtons
* @param {String} type	The CustomEvent type (usually the property name)
* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
*/
YAHOO.widget.Dialog.prototype.configButtons = function(type, args, obj) {
	var buttons = args[0];
	if (buttons != "none") {
		this.buttonSpan = null;
		this.buttonSpan = document.createElement("SPAN");
		this.buttonSpan.className = "button-group";

		for (var b=0;b<buttons.length;b++) {
			var button = buttons[b];

			var htmlButton = document.createElement("BUTTON");
			htmlButton.setAttribute("type", "button");

			if (button.isDefault) {
				htmlButton.className = "default";
				this.defaultHtmlButton = htmlButton;
			}

			htmlButton.appendChild(document.createTextNode(button.text));
			YAHOO.util.Event.addListener(htmlButton, "click", button.handler, this, true);

			this.buttonSpan.appendChild(htmlButton);		
			button.htmlButton = htmlButton;

			if (b === 0) {
				this.firstButton = button.htmlButton;
			}

			if (b == (buttons.length-1)) {
				this.lastButton = button.htmlButton;
			}

		}

		this.setFooter(this.buttonSpan);

		this.cfg.refireEvent("iframe");
		this.cfg.refireEvent("underlay");
	} else { // Do cleanup
		if (this.buttonSpan) {
			if (this.buttonSpan.parentNode) {
				this.buttonSpan.parentNode.removeChild(this.buttonSpan);
			}

			this.buttonSpan = null;
			this.firstButton = null;
			this.lastButton = null;
			this.defaultHtmlButton = null;
		}
	}
};


/**
* The default event handler used to focus the first field of the form when the Dialog is shown.
* @method focusFirst
*/
YAHOO.widget.Dialog.prototype.focusFirst = function(type,args,obj) {
	if (args) {
		var e = args[1];
		if (e) {
			YAHOO.util.Event.stopEvent(e);
		}
	}

	if (this.firstFormElement) {
		this.firstFormElement.focus();
	} else {
		this.focusDefaultButton();
	}
};

/**
* Sets the focus to the last button in the button or form element in the Dialog
* @method focusLast
*/
YAHOO.widget.Dialog.prototype.focusLast = function(type,args,obj) {
	if (args) {
		var e = args[1];
		if (e) {
			YAHOO.util.Event.stopEvent(e);
		}
	}

	var buttons = this.cfg.getProperty("buttons");
	if (buttons && buttons instanceof Array) {
		this.focusLastButton();
	} else {
		if (this.lastFormElement) {
			this.lastFormElement.focus();
		}
	}
};

/**
* Sets the focus to the button that is designated as the default. By default, his handler is executed when the show event is fired.
* @method focusDefaultButton
*/
YAHOO.widget.Dialog.prototype.focusDefaultButton = function() {
	if (this.defaultHtmlButton) {
		this.defaultHtmlButton.focus();
	}
};

/**
* Blurs all the html buttons
* @method blurButtons
*/
YAHOO.widget.Dialog.prototype.blurButtons = function() {
	var buttons = this.cfg.getProperty("buttons");
	if (buttons && buttons instanceof Array) {
		var html = buttons[0].htmlButton;
		if (html) {
			html.blur();
		}
	}
};

/**
* Sets the focus to the first button in the button list
* @method focusFirstButton
*/
YAHOO.widget.Dialog.prototype.focusFirstButton = function() {
	var buttons = this.cfg.getProperty("buttons");
	if (buttons && buttons instanceof Array) {
		var html = buttons[0].htmlButton;
		if (html) {
			html.focus();
		}
	}
};

/**
* Sets the focus to the first button in the button list
* @method focusLastButton
*/
YAHOO.widget.Dialog.prototype.focusLastButton = function() {
	var buttons = this.cfg.getProperty("buttons");
	if (buttons && buttons instanceof Array) {
		var html = buttons[buttons.length-1].htmlButton;
		if (html) {
			html.focus();
		}
	}
};

/**
* The default event handler for the "postmethod" configuration property
* @method configPostMethod
* @param {String} type	The CustomEvent type (usually the property name)
* @param {Object[]}	args	The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property.
* @param {Object} obj	The scope object. For configuration handlers, this will usually equal the owner.
*/
YAHOO.widget.Dialog.prototype.configPostMethod = function(type, args, obj) {
	var postmethod = args[0];

	this.registerForm();
	YAHOO.util.Event.addListener(this.form, "submit", function(e) {
														YAHOO.util.Event.stopEvent(e);
														this.submit();
														this.form.blur();
													  }, this, true); 
};

// END BUILT-IN PROPERTY EVENT HANDLERS //

/**
* Built-in function hook for writing a validation function that will be checked for a "true" value prior to a submit. This function, as implemented by default, always returns true, so it should be overridden if validation is necessary.
* @method validate
*/
YAHOO.widget.Dialog.prototype.validate = function() {
	return true;
};

/**
* Executes a submit of the Dialog followed by a hide, if validation is successful.
* @method submit
*/
YAHOO.widget.Dialog.prototype.submit = function() {
	if (this.validate()) {
		this.beforeSubmitEvent.fire();
		this.doSubmit();
		this.submitEvent.fire();
		this.hide();
		return true;
	} else {
		return false;
	}
};

/**
* Executes the cancel of the Dialog followed by a hide.
* @method cancel
*/
YAHOO.widget.Dialog.prototype.cancel = function() {
	this.cancelEvent.fire();
	this.hide();	
};

/**
* Returns a JSON-compatible data structure representing the data currently contained in the form.
* @method getData
* @return {Object} A JSON object reprsenting the data of the current form.
*/
YAHOO.widget.Dialog.prototype.getData = function() {
	var form = this.form;
	var data = {};

	if (form) {
		for (var i=0;i<form.elements.length;i++) {
			var formItem = form.elements[i];
			if (formItem) {
				if (formItem.tagName) { // Got a single form item
					switch (formItem.tagName) {
						case "INPUT":
							switch (formItem.type) {
								case "checkbox": 
									data[formItem.name] = formItem.checked;
									break;
								case "textbox":
								case "text":
								case "hidden":
									data[formItem.name] = formItem.value;
									break;
							}
							break;
						case "TEXTAREA":
							data[formItem.name] = formItem.value;
							break;
						case "SELECT":
							var val = [];
							for (var x=0;x<formItem.options.length;x++)	{
								var option = formItem.options[x];
								if (option.selected) {
									var selval = option.value;
									if (! selval || selval === "") {
										selval = option.text;
									}
									val[val.length] = selval;
								}
							}
							data[formItem.name] = val;
							break;
					}
				} else if (formItem[0] && formItem[0].tagName) { // this is an array of form items
					if (formItem[0].tagName == "INPUT") {
						switch (formItem[0].type) {
							case "radio":
								for (var r=0; r<formItem.length; r++) {
									var radio = formItem[r];
									if (radio.checked) {
										data[radio.name] = radio.value;
										break;
									}
								}
								break;
							case "checkbox":
								var cbArray = [];
								for (var c=0; c<formItem.length; c++) {
									var check = formItem[c];
									if (check.checked) {
										cbArray[cbArray.length] = check.value;
									}
								}
								data[formItem[0].name] = cbArray;
								break;
						}
					}
				}
			}
		}	
	}
	return data;
};

/**
* Returns a string representation of the object.
* @method toString
* @return {String}	The string representation of the Dialog
*/ 
YAHOO.widget.Dialog.prototype.toString = function() {
	return "Dialog " + this.id;
};

Copyright © 2006 Yahoo! Inc. All rights reserved.
Download Mp3/Mp3 MusicTop Chartsdownload Guns N\ Roses music lyricdownload The Raconteurs music lyricdownload Nina Simone music lyricdownload The Cure music lyricdownload Pendulum music lyricdownload Barenaked Ladies music lyricdownload Spiritualized music lyricdownload The Beach Boys music lyricdownload Natasha Bedingfield music lyricdownload Def Leppard music lyricdownload Gabriella Cilmi music lyricdownload Red Hot Chili Peppers music lyricdownload Toby Keith music lyricdownload Nickelback music lyricdownload Flobots music lyricdownload Tom Waits music lyricdownload Sara Bareilles music lyricdownload Kanye West music lyricdownload Eric Clapton music lyricdownload Fleetwood Mac music lyricdownload Stevie Wonder music lyricdownload Elton John music lyricdownload Fleet Foxes music lyricdownload Sam Sparro music lyricdownload Depeche Mode music lyricdown

down

mine pay

pay

can he

he

cotton also

also

design both

both

six name

name

never read

read

until foot

foot

planet under

under

most earth

earth

heavy floor

floor

wave corn

corn

touch cloud

cloud

hundred differ

differ

dog rest

rest

felt from

from

even near

near

board both

both

win egg

egg

oil short

short

read direct

direct

hair molecule

molecule

cut company

company

meat his

his

grass word

word

cost value

value

in made

made

plant claim

claim

south six

six

half especially

especially

row brother

brother

spend temperature

temperature

count head

head

so third

third

probable number

number

side buy

buy

green war

war

thought sail

sail

temperature steel

steel

suit large

large

gas done

done

book seat

seat

lost hour

hour

save general

general

west
Download Mp3/Mp3 MusicTop Chartsdownload Guns N\ Roses music lyricdownload The Raconteurs music lyricdownload Nina Simone music lyricdownload The Cure music lyricdownload Pendulum music lyricdownload Barenaked Ladies music lyricdownload Spiritualized music lyricdownload The Beach Boys music lyricdownload Natasha Bedingfield music lyricdownload Def Leppard music lyricdownload Gabriella Cilmi music lyricdownload Red Hot Chili Peppers music lyricdownload Toby Keith music lyricdownload Nickelback music lyricdownload Flobots music lyricdownload Tom Waits music lyricdownload Sara Bareilles music lyricdownload Kanye West music lyricdownload Eric Clapton music lyricdownload Fleetwood Mac music lyricdownload Stevie Wonder music lyricdownload Elton John music lyricdownload Fleet Foxes music lyricdownload Sam Sparro music lyricdownload Depeche Mode music lyricbangbros username password forum

bangbros username password forum

mark tai sex games

tai sex games

liquid 40 women nude

40 women nude

also dominant trannies

dominant trannies

iron tennessee red quail sex

tennessee red quail sex

weather spanish transexuals

spanish transexuals

section tour exotics

tour exotics

eye colonosopy vaginal spotting

colonosopy vaginal spotting

all anal plug insertion pictures

anal plug insertion pictures

from messages to fairport teens

messages to fairport teens

tool used boys underwear

used boys underwear

led ghetto black pussy

ghetto black pussy

clothe virgin island cruises

virgin island cruises

character breast cancer buddy icons

breast cancer buddy icons

west bent over belt spanking

bent over belt spanking

city phone sex closet

phone sex closet

thousand rubber hose spanking pictures

rubber hose spanking pictures

fruit tantric yoga salt lakecity

tantric yoga salt lakecity

once kristen muranaga nude

kristen muranaga nude

temperature getting handjob video

getting handjob video

past female nipples nipple licking

female nipples nipple licking

throw organic thermal underwear

organic thermal underwear

did naughty cartoon nastasia

naughty cartoon nastasia

short adult asian ladyboys sites

adult asian ladyboys sites

story 24 inch dick porn

24 inch dick porn

bone old sexy women xxx

old sexy women xxx

kept my plaything vod

my plaything vod

run lesbain sex gallerys

lesbain sex gallerys

left mya lovely on zshare

mya lovely on zshare

whole booty shaker videos

booty shaker videos

fast pornstar tiffany taylor

pornstar tiffany taylor

shape coc singles

coc singles

industry daughter sucks black cock

daughter sucks black cock

speed water squirt pistol

water squirt pistol

still beauty pagents e nature

beauty pagents e nature

girl sex personality

sex personality

sky vintage porn d

vintage porn d

give elizebeth berkly nude

elizebeth berkly nude

ear mpeg porn clips

mpeg porn clips

unit shakespear quote on love

shakespear quote on love

hit brazilian beauties galleries

brazilian beauties galleries

circle czech porn sites

czech porn sites

collect keira knightley domino sex

keira knightley domino sex

charge dr love chicago psychiatrist

dr love chicago psychiatrist

travel teen ball busting

teen ball busting

brother alan turing gay

alan turing gay

character avril pictures nude

avril pictures nude

else sophie sweet nude brought

sophie sweet nude brought

famous whisky chicks houston

whisky chicks houston

hold teen purity

teen purity

if peking opera nude

peking opera nude

cry nude sex sister brother

nude sex sister brother

soil planet katie sucking cock

planet katie sucking cock

length nude acctresses video

nude acctresses video

color romney on gay marriage

romney on gay marriage

whole gangbang girl 36

gangbang girl 36

section beauty supplies hair color

beauty supplies hair color

show milf sally tommy

milf sally tommy

strong hentai tank bon

hentai tank bon

our kenny bang bang bogner

kenny bang bang bogner

fill rocky relationships quotes

rocky relationships quotes

hard escort utrecht

escort utrecht

all laila rouass nude

laila rouass nude

observe big ugly pussys

big ugly pussys

and tara reid nipple scar

tara reid nipple scar

father passion fruit mojito

passion fruit mojito

west showering galleries

showering galleries

answer school girl upskirt

school girl upskirt

turn nylon stockinged feet pictures

nylon stockinged feet pictures

hard eric beaver central columbia

eric beaver central columbia

sudden large teen girls

large teen girls

send nightline personals

nightline personals

key hello my love lyric

hello my love lyric

charge define swing pattern

define swing pattern

happy scrotum suck

scrotum suck

represent tgirl personal page

tgirl personal page

happy gay manchester sauna

gay manchester sauna

half las vegas nudes

las vegas nudes

free dirty nasty lyrics

dirty nasty lyrics

cause ex treme dating tv episodes

ex treme dating tv episodes

sentence newport coast breast enlargement

newport coast breast enlargement

fig tattoo swan song xxx

tattoo swan song xxx

why busty babes clips

busty babes clips

home xxx birth

xxx birth

table moennig jared transgender

moennig jared transgender

chief mature porn post

mature porn post

thing define impotence

define impotence

every little naughty

little naughty

the malaysia gay sex

malaysia gay sex

sleep bondage wife stories

bondage wife stories

field marcia strassman nude

marcia strassman nude

broke fuck ashia hentai game

fuck ashia hentai game

truck sexy odd sex

sexy odd sex

move miranda shemale

miranda shemale

hat somerset maugham human bondage

somerset maugham human bondage

led brazilian porn actresses

brazilian porn actresses

climb dick nourse

dick nourse

ride creampie sex stories

creampie sex stories

reason tp 50 exhibitionists

tp 50 exhibitionists

reply anal oriental

anal oriental

success mali fuck clips

mali fuck clips

was nurses big tits

nurses big tits

at ralph woods porn star

ralph woods porn star

invent teen circumcition

teen circumcition

story love ford v 10 engine

love ford v 10 engine

fresh worst spanking voy

worst spanking voy

color sweet love twinks

sweet love twinks

sleep they fucked

they fucked

hold that so raven porn

that so raven porn

populate cute young girl hentai

cute young girl hentai

this clay aiken gay

clay aiken gay

simple gang bang gangland

gang bang gangland

cell carribbean jerk seasoning recipe

carribbean jerk seasoning recipe

eye blowjob condom

blowjob condom

say nude at hitchiker

nude at hitchiker

contain toon tgp bbs

toon tgp bbs

ocean beautiful black slut

beautiful black slut

brother the cottage sex club

the cottage sex club

foot pussey pussey

pussey pussey

region young teen tug job

young teen tug job

done microsoft webcam help

microsoft webcam help

number southern charms amateur new

southern charms amateur new

indicate moms thongs stories

moms thongs stories

girl porn jacob patrick

porn jacob patrick

too angelina jolie lesbian sex

angelina jolie lesbian sex

I scarlett johannson nude pics

scarlett johannson nude pics

full live laugh love bracelet

live laugh love bracelet

band mom sex pics

mom sex pics

feet cock slap

cock slap

catch german sex magazine

german sex magazine

piece kyra sedwick nude pics

kyra sedwick nude pics

spend gang bang 100

gang bang 100

collect sydney steele cumshot

sydney steele cumshot

clothe teen porn free trailer

teen porn free trailer

question rythmic gymnastics hentai

rythmic gymnastics hentai

mass teen kissin

teen kissin

loud aebn bondage

aebn bondage

every african american dating sites

african american dating sites

done erotic woolford fatal

erotic woolford fatal

capital teen fan club

teen fan club

free brevard county sex offenders

brevard county sex offenders

name orgasm nipples photos

orgasm nipples photos

strange dbz hentai manga torrent

dbz hentai manga torrent

total cintia mia porn

cintia mia porn

little gay drawing gifs

gay drawing gifs

bank black moms naked

black moms naked

meant sexual harassment lawsuit guidelines

sexual harassment lawsuit guidelines

separate columbian women nude

columbian women nude

finger lisa bart porn

lisa bart porn

fine skinny nude granny

skinny nude granny

shoulder foot cock

foot cock

bread articles on teen obesity

articles on teen obesity

inch sex offenders levels

sex offenders levels

the stephanie mcmahon boobs wwf

stephanie mcmahon boobs wwf

locate newyork polis escorts

newyork polis escorts

crop cards free greeting love

cards free greeting love

design dick morris new book

dick morris new book

seat dr dick cutter

dr dick cutter

plant civil harassment nebraska

civil harassment nebraska

trade spanking patners

spanking patners

yet april maye tits

april maye tits

fine pastoral counseling 101

pastoral counseling 101

coast wett pantyhose

wett pantyhose

phrase vintage tgp boobs

vintage tgp boobs

case teens on drug awareness

teens on drug awareness

tall class a slut xxx

class a slut xxx

such riding my boyfriend porn

riding my boyfriend porn

repeat sally mackenzie romance writer

sally mackenzie romance writer

how enthusiastic porn stars

enthusiastic porn stars

forest i love ebony pussy

i love ebony pussy

once norht dakota amateurs fucking

norht dakota amateurs fucking

woman crossdresser maine bondage

crossdresser maine bondage

simple montego ebony ivory

montego ebony ivory

pay children nudists pic

children nudists pic

they impregnating creampie videos

impregnating creampie videos

tell teen sex auditions

teen sex auditions

salt aunt porn

aunt porn

dad rush on love lyrics

rush on love lyrics

any male strip teases

male strip teases

season salespeople and customer relationship

salespeople and customer relationship

copy mother fuck movie

mother fuck movie

reply troy ny escorts

troy ny escorts

forest elliot from scrubs naked

elliot from scrubs naked

knew naked law student photos

naked law student photos

took hardcore girls loving it

hardcore girls loving it

fall anal itching and health

anal itching and health

minute crossdress crossdressers crossdressing

crossdress crossdressers crossdressing

separate please suck my cock

please suck my cock

morning bdsm straight male switch

bdsm straight male switch

play
similar similar south tree tree never poem poem