define( [

	"../var/document",

	"../core"

], function( document, jQuery ) {



"use strict";



var cssPrefixes = [ "Webkit", "Moz", "ms" ],

	emptyStyle = document.createElement( "div" ).style,

	vendorProps = {};



// Return a vendor-prefixed property or undefined

function vendorPropName( name ) {



	// Check for vendor prefixed names

	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),

		i = cssPrefixes.length;



	while ( i-- ) {

		name = cssPrefixes[ i ] + capName;

		if ( name in emptyStyle ) {

			return name;

		}

	}

}



// Return a potentially-mapped jQuery.cssProps or vendor prefixed property

function finalPropName( name ) {

	var final = jQuery.cssProps[ name ] || vendorProps[ name ];



	if ( final ) {

		return final;

	}

	if ( name in emptyStyle ) {

		return name;

	}

	return vendorProps[ name ] = vendorPropName( name ) || name;

}



return finalPropName;



} );

