diff --git a/docs/.htaccess b/docs/.htaccess new file mode 100644 index 0000000..7b01f9b --- /dev/null +++ b/docs/.htaccess @@ -0,0 +1,5 @@ +# Fixes a vulnerability in CentOS: http://stackoverflow.com/questions/20533279/prevent-php-from-parsing-non-php-files-such-as-somefile-php-txt + + RemoveHandler .php + ForceType text/plain + \ No newline at end of file diff --git a/docs/classes/nguyenanhung.MyRequests.GetContents.html b/docs/classes/nguyenanhung.MyRequests.GetContents.html new file mode 100644 index 0000000..b864ca8 --- /dev/null +++ b/docs/classes/nguyenanhung.MyRequests.GetContents.html @@ -0,0 +1,2083 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

\nguyenanhung\MyRequestsGetContents

+

Class GetContents

+ + + +
+

Summary

+
+
+ Methods +
+
+ Properties +
+
+ Constants +
+
+
+
+ __construct()
+ __destruct()
+ getVersion()
+ getContent()
+ getError()
+ response()
+ sendRequest()
+ useFileGetContents()
+ getHeaderArray()
+ getPostBody()
+ getQueryString()
+ setURL()
+ setMethod()
+ setData()
+ setQueryString()
+ setHeaders()
+ setCookies()
+ setTrackCookies()
+ setXML()
+ setJson()
+ setJsonPretty()
+ setVerifyPeer()
+ setTimeout()
+ parseReturnHeaders()
+
+
+ $debugStatus
+ $debugLevel
+ $debugLoggerPath
+ $debugLoggerFilename
+
+
+ No constants found +
+
+
+
+ No protected methods found +
+
+ No protected properties found +
+
+ N/A +
+
+
+
+ No private methods found +
+
+ $debug
+ $response
+ $url
+ $method
+ $headers
+ $cookies
+ $data
+ $query_string
+ $trackCookies
+ $isXML
+ $isJson
+ $isDecodeJson
+ $isJsonPretty
+ $verifyPeer
+ $timeout
+ $isSSL
+
+
+ N/A +
+
+
+
+ +
+ + + +
+
+

Properties

+
+ +
+ +
+
+ +
+

$debugStatus

+
$debugStatus : boolean
+

Set Debug Status

+ + +

Type

+ boolean +
+
+ +
+ +
+
+ +
+

$debugLevel

+
$debugLevel : null
+

+ + +

Type

+ null + — Set level Debug: DEBUG, INFO, ERROR ....
+
+ +
+ +
+
+ +
+

$debugLoggerPath

+
$debugLoggerPath : null|string
+

Set Logger Path to Save

+ + +

Type

+ null|string +
+
+ +
+ +
+
+ +
+

$debugLoggerFilename

+
$debugLoggerFilename : string
+

Set Logger Filename to Save

+ + +

Type

+ string +
+
+ +
+ +
+
+ +
+

$debug

+
$debug : object
+

+ + +

Type

+ object + — \nguyenanhung\MyDebug\Debug Call to class
+
+ +
+ +
+
+ +
+

$response

+
$response : array
+

Response from Request

+ + +

Type

+ array +
+
+ +
+ +
+
+ +
+

$url

+
$url : string
+

The base URL to be the target of the Request

+ + +

Type

+ string +
+
+ +
+ +
+
+ +
+

$method

+
$method : string
+

The method to use - GET, POST, PUT, DELETE

+ + +

Type

+ string +
+
+ +
+ +
+
+ +
+

$headers

+
$headers : array
+

An array of headers to be added to the request

+ + +

Type

+ array +
+
+ +
+ +
+
+ +
+

$cookies

+
$cookies : array
+

An array of cookies (which are added to the headers)

+ + +

Type

+ array +
+
+ +
+ +
+
+ +
+

$data

+
$data : array
+

An array of data to be added to the request.

+

Where the method is POST these are sent as a form body, +otherwise - they are added as a query string

+ +

Type

+ array +
+
+ +
+ +
+
+ +
+

$query_string

+
$query_string : array
+

An array of items to be sent as a query string

+ + +

Type

+ array +
+
+ +
+ +
+
+ +
+

$trackCookies

+
$trackCookies : \nguyenanhung\MyRequests\[type]
+

Should we track cookies? +This does not stop the processing of cookies, it just allows for any +received cookies to be sent in subsequent requests. Great for scraping.

+ + +

Type

+ \nguyenanhung\MyRequests\[type] +
+
+ +
+ +
+
+ +
+

$isXML

+
$isXML : boolean
+

Is the request sent in XML and received in XML

+ + +

Type

+ boolean +
+
+ +
+ +
+
+ +
+

$isJson

+
$isJson : boolean
+

Is the request sent in JSON and received in JSON

+ + +

Type

+ boolean +
+
+ +
+ +
+
+ +
+

$isDecodeJson

+
$isDecodeJson : boolean
+

Is the response decode Json to Object

+ + +

Type

+ boolean +
+
+ +
+ +
+
+ +
+

$isJsonPretty

+
$isJsonPretty : boolean
+

Should JSON be sent in JSON_PRETTY_PRINT? +Only really useful for debugging.

+ + +

Type

+ boolean +
+
+ +
+ +
+
+ +
+

$verifyPeer

+
$verifyPeer : \nguyenanhung\MyRequests\[type]
+

Should SSL peers be verified.

+

You should have a good reason for turning this off.

+ +

Type

+ \nguyenanhung\MyRequests\[type] +
+
+ +
+ +
+
+ +
+

$timeout

+
$timeout : integer
+

How long to wait for a server to respond to a request.

+ + +

Type

+ integer +
+
+ +
+ +
+
+ +
+

$isSSL

+
$isSSL : boolean
+

Internal flag to track if the request is in SSL or not.

+ + +

Type

+ boolean +
+
+ +
+ + + +
+

Methods

+ +
+ +
+
+ +
+

__construct()

+ +
__construct(string  $url = '', string  $method = 'GET', array  $data = array(), array  $headers = array()) 
+

GetContents constructor.

+ + +

Parameters

+ + + + + + + + + + + + + + + + + + + + + +
string$url

Url Endpoint

string$method

The method to use - GET, POST, PUT, DELETE

array$data

An array of data to be added to the request.' +Where the method is POST these are sent as a form body, +otherwise - they are added as a query string

array$headers

An array of headers to be added to the request

+ + + +
+
+ +
+ +
+
+ +
+

__destruct()

+ +
__destruct() 
+

GetContents destructor.

+ + + + + +
+
+ +
+ +
+
+ +
+

getVersion()

+ +
getVersion() : mixed|string
+

Function getVersion

+ + + + +

Returns

+ mixed|string + —

Current Project version

+ +
+
+ +
+ +
+
+ +
+

getContent()

+ +
getContent() : array|mixed|string
+

Function getContent - Get Body Content from Request

+ + + + +

Returns

+ array|mixed|string + —

Return Response content if exists +Full Response content if $this->response['content'] not exists +Exception Error Message if Exception Error +Null if Not

+ +
+
+ +
+ +
+
+ +
+

getError()

+ +
getError() : array|mixed|string
+

Function getError - Get Error Code and Message

+ + + + +

Returns

+ array|mixed|string + —

Return Response error if exists +Full Response if $this->response['error'] not exists +Exception Error Message if Exception Error +Null if Not

+ +
+
+ +
+ +
+
+ +
+

response()

+ +
response() : array|null
+

Function get Response of Request

+ + + + +

Returns

+ array|null + —

Array if Exists, Null if Not Response

+ +
+
+ +
+ +
+
+ +
+

sendRequest()

+ +
sendRequest() : array|null|string
+

Let's go to Request

+ + + + +

Returns

+ array|null|string + —

Response from Request if Exists +Exception Error Message if Exception Error +Null if Not

+ +
+
+ +
+ +
+
+ +
+

useFileGetContents()

+ +
useFileGetContents() : array
+

Function useFileGetContents +Use file_get_contents to perform the request

+ + + + +

Returns

+ array + —

The server response array

+ +
+
+ +
+ +
+
+ +
+

getHeaderArray()

+ +
getHeaderArray() : array
+

Generate the complete header array +Merges the supplied (if any) headers with those needed by the +request.

+ + + + +

Returns

+ array + —

An array of headers

+ +
+
+ +
+ +
+
+ +
+

getPostBody()

+ +
getPostBody() : array|false|string
+

Get the post body - either JSON encoded or ready to be sent as a form post

+ + + + +

Returns

+ array|false|string + —

Data to be sent Request

+ +
+
+ +
+ +
+
+ +
+

getQueryString()

+ +
getQueryString() : string
+

Get the query string by merging any supplied string +with that of the generated components.

+ + + + +

Returns

+ string + —

The query string

+ +
+
+ +
+ +
+
+ +
+

setURL()

+ +
setURL(string  $url = '') : string
+

Set the target URL +Must include http:// or https://

+ + +

Parameters

+ + + + + + +
string$url
+ + +

Returns

+ string + +
+
+ +
+ +
+
+ +
+

setMethod()

+ +
setMethod(string  $method = '') : $this|string
+

Set the HTTP method +GET, HEAD, PUT, POST are valid

+ + +

Parameters

+ + + + + + +
string$method

Method to Request GET, HEAD, PUT, POST are valid

+ + +

Returns

+ $this|string + —

Method

+ +
+
+ +
+ +
+
+ +
+

setData()

+ +
setData(array  $data = array()) 
+

Set Data contents +Must be supplied as an array

+ + +

Parameters

+ + + + + + +
array$data

The contents to be sent to the target URL

+ + + +
+
+ +
+ +
+
+ +
+

setQueryString()

+ +
setQueryString(array  $query_string = array()) 
+

Set query string data +Must be supplied as an array

+ + +

Parameters

+ + + + + + +
array$query_string

The query string to be sent to the target URL

+ + + +
+
+ +
+ +
+
+ +
+

setHeaders()

+ +
setHeaders(array  $headers = array()) 
+

Set any headers to be sent to the target URL +Must be supplied as an array

+ + +

Parameters

+ + + + + + +
array$headers

Header to Set

+ + + +
+
+ +
+ +
+
+ +
+

setCookies()

+ +
setCookies(array  $cookies = array()) 
+

Set any cookies to be included in the headers +Must be supplied as an array

+ + +

Parameters

+ + + + + + +
array$cookies

The array of cookies to be sent

+ + + +
+
+ +
+ +
+
+ +
+

setTrackCookies()

+ +
setTrackCookies(boolean  $value = FALSE) 
+

Should cookies be tracked?

+ + +

Parameters

+ + + + + + +
boolean$value

true to track cookies

+ + + +
+
+ +
+ +
+
+ +
+

setXML()

+ +
setXML(boolean  $value = FALSE) 
+

Function setXML - Is this transaction sending / expecting XML

+ + +

Parameters

+ + + + + + +
boolean$value

true if XML is being used and is expected

+ + + +
+
+ +
+ +
+
+ +
+

setJson()

+ +
setJson(boolean  $value = FALSE) 
+

Is this transaction sending / expecting JSON

+ + +

Parameters

+ + + + + + +
boolean$value

true if JSON is being used and is expected

+ + + +
+
+ +
+ +
+
+ +
+

setJsonPretty()

+ +
setJsonPretty(boolean  $value = FALSE) 
+

Should JSON being sent be encoded in an easily readable format? +Only useful for debugging

+ + +

Parameters

+ + + + + + +
boolean$value

true for JSON_PRETTY_PRINT

+ + + +
+
+ +
+ +
+
+ +
+

setVerifyPeer()

+ +
setVerifyPeer(boolean  $value = FALSE) 
+

Should SSL peers be verified?

+ + +

Parameters

+ + + + + + +
boolean$value
+ + + +
+
+ +
+ +
+
+ +
+

setTimeout()

+ +
setTimeout(integer  $timeout = 20) 
+

Function setTimeout

+ + +

Parameters

+ + + + + + +
integer$timeout
+ + + +

Examples

+
+
** File not found : 60 **
+
+
+ +
+ +
+
+ +
+

parseReturnHeaders()

+ +
parseReturnHeaders(array  $headers) : array
+

Parse HTTP response headers

+ + +

Parameters

+ + + + + + +
array$headers
+ + +

Returns

+ array + —

Header Response

+ +
+
+ +
+ +
+
+ + + + +
+ + + diff --git a/docs/classes/nguyenanhung.MyRequests.Interfaces.GetContentsInterface.html b/docs/classes/nguyenanhung.MyRequests.Interfaces.GetContentsInterface.html new file mode 100644 index 0000000..6528fcc --- /dev/null +++ b/docs/classes/nguyenanhung.MyRequests.Interfaces.GetContentsInterface.html @@ -0,0 +1,1421 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

\nguyenanhung\MyRequests\InterfacesGetContentsInterface

+

Interface GetContentsInterface

+ + +
+

Summary

+
+
+ Methods +
+
+ Constants +
+
+
+
+ getContent()
+ getError()
+ response()
+ sendRequest()
+ useFileGetContents()
+ getHeaderArray()
+ getPostBody()
+ getQueryString()
+ setURL()
+ setMethod()
+ setData()
+ setQueryString()
+ setHeaders()
+ setCookies()
+ setTrackCookies()
+ setXML()
+ setJson()
+ setJsonPretty()
+ setVerifyPeer()
+ setTimeout()
+ parseReturnHeaders()
+
+
+ No constants found +
+
+
+
+ No protected methods found +
+
+ N/A +
+
+
+
+ No private methods found +
+
+ N/A +
+
+
+
+ +
+ + +
+
+

Methods

+
+ +
+ +
+
+ +
+

getContent()

+ +
getContent() : array|mixed|string
+

Function getContent - Get Body Content from Request

+ + + + +

Returns

+ array|mixed|string + —

Return Response content if exists +Full Response content if $this->response['content'] not exists +Exception Error Message if Exception Error +Null if Not

+ +
+
+ +
+ +
+
+ +
+

getError()

+ +
getError() : array|mixed|string
+

Function getError - Get Error Code and Message

+ + + + +

Returns

+ array|mixed|string + —

Return Response error if exists +Full Response if $this->response['error'] not exists +Exception Error Message if Exception Error +Null if Not

+ +
+
+ +
+ +
+
+ +
+

response()

+ +
response() : array|null
+

Function get Response of Request

+ + + + +

Returns

+ array|null + —

Array if Exists, Null if Not Response

+ +
+
+ +
+ +
+
+ +
+

sendRequest()

+ +
sendRequest() : array|null|string
+

Let's go to Request

+ + + + +

Returns

+ array|null|string + —

Response from Request if Exists +Exception Error Message if Exception Error +Null if Not

+ +
+
+ +
+ +
+
+ +
+

useFileGetContents()

+ +
useFileGetContents() : array
+

Function useFileGetContents +Use file_get_contents to perform the request

+ + + + +

Returns

+ array + —

The server response array

+ +
+
+ +
+ +
+
+ +
+

getHeaderArray()

+ +
getHeaderArray() : array
+

Generate the complete header array +Merges the supplied (if any) headers with those needed by the +request.

+ + + + +

Returns

+ array + —

An array of headers

+ +
+
+ +
+ +
+
+ +
+

getPostBody()

+ +
getPostBody() : array|false|string
+

Get the post body - either JSON encoded or ready to be sent as a form post

+ + + + +

Returns

+ array|false|string + —

Data to be sent Request

+ +
+
+ +
+ +
+
+ +
+

getQueryString()

+ +
getQueryString() : string
+

Get the query string by merging any supplied string +with that of the generated components.

+ + + + +

Returns

+ string + —

The query string

+ +
+
+ +
+ +
+
+ +
+

setURL()

+ +
setURL(string  $url = '') : string
+

Set the target URL +Must include http:// or https://

+ + +

Parameters

+ + + + + + +
string$url
+ + +

Returns

+ string + +
+
+ +
+ +
+
+ +
+

setMethod()

+ +
setMethod(string  $method = '') : $this|string
+

Set the HTTP method +GET, HEAD, PUT, POST are valid

+ + +

Parameters

+ + + + + + +
string$method

Method to Request GET, HEAD, PUT, POST are valid

+ + +

Returns

+ $this|string + —

Method

+ +
+
+ +
+ +
+
+ +
+

setData()

+ +
setData(array  $data = array()) 
+

Set Data contents +Must be supplied as an array

+ + +

Parameters

+ + + + + + +
array$data

The contents to be sent to the target URL

+ + + +
+
+ +
+ +
+
+ +
+

setQueryString()

+ +
setQueryString(array  $query_string = array()) 
+

Set query string data +Must be supplied as an array

+ + +

Parameters

+ + + + + + +
array$query_string

The query string to be sent to the target URL

+ + + +
+
+ +
+ +
+
+ +
+

setHeaders()

+ +
setHeaders(array  $headers = array()) 
+

Set any headers to be sent to the target URL +Must be supplied as an array

+ + +

Parameters

+ + + + + + +
array$headers

Header to Set

+ + + +
+
+ +
+ +
+
+ +
+

setCookies()

+ +
setCookies(array  $cookies = array()) 
+

Set any cookies to be included in the headers +Must be supplied as an array

+ + +

Parameters

+ + + + + + +
array$cookies

The array of cookies to be sent

+ + + +
+
+ +
+ +
+
+ +
+

setTrackCookies()

+ +
setTrackCookies(boolean  $value = FALSE) 
+

Should cookies be tracked?

+ + +

Parameters

+ + + + + + +
boolean$value

true to track cookies

+ + + +
+
+ +
+ +
+
+ +
+

setXML()

+ +
setXML(boolean  $value = FALSE) 
+

Function setXML - Is this transaction sending / expecting XML

+ + +

Parameters

+ + + + + + +
boolean$value

true if XML is being used and is expected

+ + + +
+
+ +
+ +
+
+ +
+

setJson()

+ +
setJson(boolean  $value = FALSE) 
+

Is this transaction sending / expecting JSON

+ + +

Parameters

+ + + + + + +
boolean$value

true if JSON is being used and is expected

+ + + +
+
+ +
+ +
+
+ +
+

setJsonPretty()

+ +
setJsonPretty(boolean  $value = FALSE) 
+

Should JSON being sent be encoded in an easily readable format? +Only useful for debugging

+ + +

Parameters

+ + + + + + +
boolean$value

true for JSON_PRETTY_PRINT

+ + + +
+
+ +
+ +
+
+ +
+

setVerifyPeer()

+ +
setVerifyPeer(boolean  $value = FALSE) 
+

Should SSL peers be verified?

+ + +

Parameters

+ + + + + + +
boolean$value
+ + + +
+
+ +
+ +
+
+ +
+

setTimeout()

+ +
setTimeout(integer  $timeout = 20) 
+

Function setTimeout

+ + +

Parameters

+ + + + + + +
integer$timeout
+ + + +

Examples

+
+
** File not found : 60 **
+
+
+ +
+ +
+
+ +
+

parseReturnHeaders()

+ +
parseReturnHeaders(array  $headers) : array
+

Parse HTTP response headers

+ + +

Parameters

+ + + + + + +
array$headers
+ + +

Returns

+ array + —

Header Response

+ +
+
+ +
+ +
+
+ + + + +
+ + + diff --git a/docs/classes/nguyenanhung.MyRequests.Interfaces.ProjectInterface.html b/docs/classes/nguyenanhung.MyRequests.Interfaces.ProjectInterface.html new file mode 100644 index 0000000..a9d2909 --- /dev/null +++ b/docs/classes/nguyenanhung.MyRequests.Interfaces.ProjectInterface.html @@ -0,0 +1,763 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

\nguyenanhung\MyRequests\InterfacesProjectInterface

+

Interface ProjectInterface

+ + +
+

Summary

+
+
+ Methods +
+
+ Constants +
+
+
+
+ getVersion()
+
+
+ VERSION
+ LAST_MODIFIED
+ MIN_PHP_VERSION
+ GET
+ HEAD
+ DELETE
+ TRACE
+ POST
+ PUT
+ OPTIONS
+ PATCH
+ ENCODING
+ MAX_REDIRECT
+ RETURN_TRANSFER
+ FOLLOW_LOCATION
+
+
+
+
+ No protected methods found +
+
+ N/A +
+
+
+
+ No private methods found +
+
+ N/A +
+
+
+
+ +
+ + +
+
+

Constants

+
+ +
+ +
+
+ +
+

VERSION

+
VERSION
+

+ +
+
+ +
+ +
+
+ +
+

LAST_MODIFIED

+
LAST_MODIFIED
+

+ +
+
+ +
+ +
+
+ +
+

MIN_PHP_VERSION

+
MIN_PHP_VERSION
+

+ +
+
+ +
+ +
+
+ +
+

GET

+
GET
+

+ +
+
+ +
+ +
+
+ +
+

HEAD

+
HEAD
+

+ +
+
+ +
+ +
+
+ +
+

DELETE

+
DELETE
+

+ +
+
+ +
+ +
+
+ +
+

TRACE

+
TRACE
+

+ +
+
+ +
+ +
+
+ +
+

POST

+
POST
+

+ +
+
+ +
+ +
+
+ +
+

PUT

+
PUT
+

+ +
+
+ +
+ +
+
+ +
+

OPTIONS

+
OPTIONS
+

+ +
+
+ +
+ +
+
+ +
+

PATCH

+
PATCH
+

+ +
+
+ +
+ +
+
+ +
+

ENCODING

+
ENCODING
+

+ +
+
+ +
+ +
+
+ +
+

MAX_REDIRECT

+
MAX_REDIRECT
+

+ +
+
+ +
+ +
+
+ +
+

RETURN_TRANSFER

+
RETURN_TRANSFER
+

+ +
+
+ +
+ +
+
+ +
+

FOLLOW_LOCATION

+
FOLLOW_LOCATION
+

+ +
+
+ +
+ + +
+
+

Methods

+
+ +
+ +
+
+ +
+

getVersion()

+ +
getVersion() : mixed
+

Function getVersion

+ + + + +

Returns

+ mixed + —

Current Project Version

+ +
+
+ +
+ +
+
+ + + + +
+ + + diff --git a/docs/classes/nguyenanhung.MyRequests.Interfaces.SendRequestsInterface.html b/docs/classes/nguyenanhung.MyRequests.Interfaces.SendRequestsInterface.html new file mode 100644 index 0000000..f4d92a0 --- /dev/null +++ b/docs/classes/nguyenanhung.MyRequests.Interfaces.SendRequestsInterface.html @@ -0,0 +1,1834 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

\nguyenanhung\MyRequests\InterfacesSendRequestsInterface

+

Interface SendRequestsInterface

+ + +
+

Summary

+
+
+ Methods +
+
+ Constants +
+
+
+
+ setHeader()
+ setCookie()
+ setOptions()
+ setTimeout()
+ setUserAgent()
+ setReferrer()
+ setUserBody()
+ setRequestIsXml()
+ setRequestIsJson()
+ setRequestIsSSL()
+ setErrorResponseIsData()
+ setErrorResponseIsNull()
+ setBasicAuthentication()
+ setDigestAuthentication()
+ getHttpCode()
+ getHttpMessage()
+ getErrorCode()
+ getRequestsHeader()
+ getResponseHeader()
+ pyRequest()
+ guzzlePhpRequest()
+ curlRequest()
+ sendRequest()
+ xmlRequest()
+ jsonRequest()
+ xmlGetValue()
+ parseXmlDataRequest()
+
+
+ No constants found +
+
+
+
+ No protected methods found +
+
+ N/A +
+
+
+
+ No private methods found +
+
+ N/A +
+
+
+
+ +
+ + +
+
+

Methods

+
+ +
+ +
+
+ +
+

setHeader()

+ +
setHeader(array  $headers = array()) : mixed
+

Function setHeader

+ + +

Parameters

+ + + + + + +
array$headers
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setCookie()

+ +
setCookie(array  $cookies = array()) : mixed
+

Function setCookie

+ + +

Parameters

+ + + + + + +
array$cookies
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setOptions()

+ +
setOptions(array  $options = array()) : mixed
+

Function setOptions

+ + +

Parameters

+ + + + + + +
array$options
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setTimeout()

+ +
setTimeout(integer  $timeout = 60) : mixed
+

Function setTimeout

+ + +

Parameters

+ + + + + + +
integer$timeout
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setUserAgent()

+ +
setUserAgent(string  $userAgent = '') : mixed
+

Function setUserAgent

+ + +

Parameters

+ + + + + + +
string$userAgent
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setReferrer()

+ +
setReferrer(string  $referrer = '') : mixed
+

Function setReferrer

+ + +

Parameters

+ + + + + + +
string$referrer
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setUserBody()

+ +
setUserBody(boolean  $isBody = FALSE) : mixed
+

Function setUserBody

+ + +

Parameters

+ + + + + + +
boolean$isBody
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setRequestIsXml()

+ +
setRequestIsXml(boolean  $isXml = FALSE) : mixed
+

Function setRequestIsXml

+ + +

Parameters

+ + + + + + +
boolean$isXml
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setRequestIsJson()

+ +
setRequestIsJson(boolean  $isJson = FALSE) : mixed
+

Function setRequestIsJson

+ + +

Parameters

+ + + + + + +
boolean$isJson
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setRequestIsSSL()

+ +
setRequestIsSSL(boolean  $isSSL = FALSE) : mixed
+

Function setRequestIsSSL

+ + +

Parameters

+ + + + + + +
boolean$isSSL
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setErrorResponseIsData()

+ +
setErrorResponseIsData(boolean  $errorResponseIsData = FALSE) : mixed
+

Function setErrorResponseIsData

+ + +

Parameters

+ + + + + + +
boolean$errorResponseIsData

Array Data if Response is Null if Error

+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setErrorResponseIsNull()

+ +
setErrorResponseIsNull(boolean  $errorResponseIsNull = FALSE) : mixed
+

Function setErrorResponseIsNull

+ + +

Parameters

+ + + + + + +
boolean$errorResponseIsNull

TRUE if Response is Null if Error

+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setBasicAuthentication()

+ +
setBasicAuthentication(string  $username = '', string  $password = '') 
+

Function setBasicAuthentication

+ + +

Parameters

+ + + + + + + + + + + +
string$username

Username to be Authentication

string$password

Password to be Authentication

+ + + +
+
+ +
+ +
+
+ +
+

setDigestAuthentication()

+ +
setDigestAuthentication(string  $username = '', string  $password = '') 
+

Function setDigestAuthentication

+ + +

Parameters

+ + + + + + + + + + + +
string$username

Username to be Authentication

string$password

Password to be Authentication

+ + + +
+
+ +
+ +
+
+ +
+

getHttpCode()

+ +
getHttpCode() : mixed
+

Function getHttpCode

+ + + + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

getHttpMessage()

+ +
getHttpMessage() : mixed
+

Function getHttpMessage

+ + + + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

getErrorCode()

+ +
getErrorCode() : mixed
+

Function getErrorCode

+ + + + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

getRequestsHeader()

+ +
getRequestsHeader() : mixed
+

Function getRequestsHeader

+ + + + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

getResponseHeader()

+ +
getResponseHeader() : mixed
+

Function getResponseHeader

+ + + + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

pyRequest()

+ +
pyRequest(string  $url = '', array  $data = array(), string  $method = 'GET') : mixed
+

Function pyRequest

+ + +

Parameters

+ + + + + + + + + + + + + + + + +
string$url
array$data
string$method
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

guzzlePhpRequest()

+ +
guzzlePhpRequest(string  $url = '', array  $data = array(), string  $method = 'GET') : mixed
+

Function guzzlePhpRequest

+ + +

Parameters

+ + + + + + + + + + + + + + + + +
string$url
array$data
string$method
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

curlRequest()

+ +
curlRequest(string  $url = '', array  $data = array(), string  $method = 'GET') : array|null|string
+

Function curlRequest +Send Request use \Curl\Curl class - https://packagist.org/packages/curl/curl

+ + +

Parameters

+ + + + + + + + + + + + + + + + +
string$url

URL Endpoint to be Request

array$data

Data Content to be Request

string$method

Set Method to be Request

+ + +

Returns

+ array|null|string + —

Response content from server, +null of Exception Message if Error

+ +
+
+ +
+ +
+
+ +
+

sendRequest()

+ +
sendRequest(string  $url = '', array  $data = array(), string  $method = 'GET') : array|null|\Requests_Response|string
+

Function sendRequest +Handle send Request use Multi Method

+ + +

Parameters

+ + + + + + + + + + + + + + + + +
string$url

URL Endpoint to be Request

array$data

Data Content to be Request

string$method

Set Method to be Request

+ + +

Returns

+ array|null|\Requests_Response|string + —

Response content from server +null of Exception Message if Error

+ +
+
+ +
+ +
+
+ +
+

xmlRequest()

+ +
xmlRequest(string  $url = '', string  $data = '', integer  $timeout = 60) : array|null|string
+

Function xmlRequest +Send XML Request to Server

+ + +

Parameters

+ + + + + + + + + + + + + + + + +
string$url

URL Endpoint to be Request

string$data

Data Content to be Request

integer$timeout

Timeout Request

+ + +

Returns

+ array|null|string + —

Response from Server

+ +
+
+ +
+ +
+
+ +
+

jsonRequest()

+ +
jsonRequest(string  $url = '', array  $data = array(), integer  $timeout = 60) : array|null|string
+

Function jsonRequest +Send JSON Request to Server

+ + +

Parameters

+ + + + + + + + + + + + + + + + +
string$url

URL Endpoint to be Request

array$data

Data Content to be Request

integer$timeout

Timeout Request

+ + +

Returns

+ array|null|string + —

Response from Server

+ +
+
+ +
+ +
+
+ +
+

xmlGetValue()

+ +
xmlGetValue(string  $xml = '', string  $openTag = '', string  $closeTag = '') : boolean|string
+

Function xmlGetValue

+ + +

Parameters

+ + + + + + + + + + + + + + + + +
string$xml

XML String

string$openTag

OpenTag to find

string$closeTag

CloseTag to find

+ + +

Returns

+ boolean|string + —

Result from Tag, Empty string if not

+ +
+
+ +
+ +
+
+ +
+

parseXmlDataRequest()

+ +
parseXmlDataRequest(string  $resultXml = '') : false|string
+

Function parseXmlDataRequest

+ + +

Parameters

+ + + + + + +
string$resultXml

XML String to Parse

+ + +

Returns

+ false|string + +
+
+ +
+ +
+
+ + + + +
+ + + diff --git a/docs/classes/nguyenanhung.MyRequests.Interfaces.SoapRequestInterface.html b/docs/classes/nguyenanhung.MyRequests.Interfaces.SoapRequestInterface.html new file mode 100644 index 0000000..766e448 --- /dev/null +++ b/docs/classes/nguyenanhung.MyRequests.Interfaces.SoapRequestInterface.html @@ -0,0 +1,761 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

\nguyenanhung\MyRequests\InterfacesSoapRequestInterface

+

Interface SoapRequestInterface

+ + +
+

Summary

+
+
+ Methods +
+
+ Constants +
+
+
+
+ setEndpoint()
+ setData()
+ setCallFunction()
+ setFieldResult()
+ setResponseIsJson()
+ clientRequestWsdl()
+
+
+ SOAP_ENCODING
+ XML_ENCODING
+ DECODE_UTF8
+
+
+
+
+ No protected methods found +
+
+ N/A +
+
+
+
+ No private methods found +
+
+ N/A +
+
+
+
+ +
+ + +
+
+

Constants

+
+ +
+ +
+
+ +
+

SOAP_ENCODING

+
SOAP_ENCODING
+

Default SOAP Encoding

+ +
+
+ +
+ +
+
+ +
+

XML_ENCODING

+
XML_ENCODING
+

Default XML Encoding

+ +
+
+ +
+ +
+
+ +
+

DECODE_UTF8

+
DECODE_UTF8
+

Default Decode UTF8 Status

+ +
+
+ +
+ + +
+
+

Methods

+
+ +
+ +
+
+ +
+

setEndpoint()

+ +
setEndpoint(string  $endpoint = '') 
+

Function setEndpoint

+ + +

Parameters

+ + + + + + +
string$endpoint

Link to Url Endpoint

+ + + +
+
+ +
+ +
+
+ +
+

setData()

+ +
setData(array  $data = array()) 
+

Function setData

+ + +

Parameters

+ + + + + + +
array$data

Data to SOAP Request, call

+ + + +
+
+ +
+ +
+
+ +
+

setCallFunction()

+ +
setCallFunction(string  $callFunction = '') 
+

Function setCallFunction

+ + +

Parameters

+ + + + + + +
string$callFunction

Require Set Function to call SOAP endpoint

+ + + +
+
+ +
+ +
+
+ +
+

setFieldResult()

+ +
setFieldResult(string  $fieldResult = '') 
+

Function setFieldResult +Nếu input giá trì vào đây, result sẽ map trực tiếp đến mã này +nếu không có sẽ trả error luôn

+ + +

Parameters

+ + + + + + +
string$fieldResult

If input fieldResult, result return $response[$fieldResult] f +from Response SOAP Service +Return Error Code if not find $fieldResult from Response

+ + + +
+
+ +
+ +
+
+ +
+

setResponseIsJson()

+ +
setResponseIsJson(string  $responseIsJson = '') : mixed|void
+

Function setResponseIsJson +Return Response is Json if value = true

+ + +

Parameters

+ + + + + + +
string$responseIsJson
+ + +

Returns

+ mixed|void + —

if set value = TRUE, response is Json string

+ +
+
+ +
+ +
+
+ +
+

clientRequestWsdl()

+ +
clientRequestWsdl() : array|null|string
+

Function clientRequestWsdl

+ + + + +

Returns

+ array|null|string + —

Call to SOAP request and received Response from Server +Return is Json String if set setResponseIsJson(true) +Return Null if class nguyenanhung\MyNuSOAP\nusoap_client is unavailable, class is not exists

+ +
+
+ +
+ +
+
+ + + + +
+ + + diff --git a/docs/classes/nguyenanhung.MyRequests.MyRequests.html b/docs/classes/nguyenanhung.MyRequests.MyRequests.html new file mode 100644 index 0000000..21e4154 --- /dev/null +++ b/docs/classes/nguyenanhung.MyRequests.MyRequests.html @@ -0,0 +1,2575 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+ + +
+ + + +
+
+

Properties

+
+ +
+ +
+
+ +
+

$debugStatus

+
$debugStatus : boolean
+

Set Debug Status

+ + +

Type

+ boolean +
+
+ +
+ +
+
+ +
+

$debugLevel

+
$debugLevel : null
+

+ + +

Type

+ null + — Set level Debug: DEBUG, INFO, ERROR ....
+
+ +
+ +
+
+ +
+

$debugLoggerPath

+
$debugLoggerPath : null|string
+

Set Logger Path to Save

+ + +

Type

+ null|string +
+
+ +
+ +
+
+ +
+

$debugLoggerFilename

+
$debugLoggerFilename : string
+

Set Logger Filename to Save

+ + +

Type

+ string +
+
+ +
+ +
+
+ +
+

$headers

+
$headers : array
+

An array of headers to be added to the request

+ + +

Type

+ array +
+
+ +
+ +
+
+ +
+

$cookies

+
$cookies : array
+

An array of cookies (which are added to the headers)

+ + +

Type

+ array +
+
+ +
+ +
+
+ +
+

$options

+
$options : array
+

An array of options to be added to the request

+ + +

Type

+ array +
+
+ +
+ +
+
+ +
+

$timeout

+
$timeout : integer
+

How long to wait for a server to respond to a request.

+ + +

Type

+ integer +
+
+ +
+ +
+
+ +
+

$userAgent

+
$userAgent : array|string
+

An array of userAgent to be added to the request

+ + +

Type

+ array|string +
+
+ +
+ +
+
+ +
+

$referrer

+
$referrer : string
+

An URL String referrer to be added to the request

+ + +

Type

+ string +
+
+ +
+ +
+
+ +
+

$basicAuthentication

+
$basicAuthentication : array
+

An array of basicAuthentication: username, password to be added to the request

+ + +

Type

+ array +
+
+ +
+ +
+
+ +
+

$digestAuthentication

+
$digestAuthentication : array
+

An array of digestAuthentication: username, password to be added to the request

+ + +

Type

+ array +
+
+ +
+ +
+
+ +
+

$isBody

+
$isBody : boolean
+

Set data request is Body

+ + +

Type

+ boolean +
+
+ +
+ +
+
+ +
+

$isJson

+
$isJson : boolean
+

Set data request is Json

+ + +

Type

+ boolean +
+
+ +
+ +
+
+ +
+

$isXml

+
$isXml : boolean
+

Set data request is XML

+ + +

Type

+ boolean +
+
+ +
+ +
+
+ +
+

$isSSL

+
$isSSL : boolean
+

Set data request is SSL

+ + +

Type

+ boolean +
+
+ +
+ +
+
+ +
+

$errorResponseIsData

+
$errorResponseIsData : boolean
+

Set Response Error is Array Data

+ + +

Type

+ boolean +
+
+ +
+ +
+
+ +
+

$errorResponseIsNull

+
$errorResponseIsNull : boolean
+

Set Response Error is Null

+ + +

Type

+ boolean +
+
+ +
+ +
+
+ +
+

$error_code

+
$error_code : integer
+

Error Code from Request

+ + +

Type

+ integer +
+
+ +
+ +
+
+ +
+

$requests_header

+
$requests_header : array|null
+

Request Header array if exists, Null if not

+ + +

Type

+ array|null +
+
+ +
+ +
+
+ +
+

$response_header

+
$response_header : array|null
+

Response Header array if exists, Null if not

+ + +

Type

+ array|null +
+
+ +
+ +
+
+ +
+

$http_code

+
$http_code : integer
+

Http Code from Request

+ + +

Type

+ integer +
+
+ +
+ +
+
+ +
+

$http_message

+
$http_message : string|null
+

Http Message from Request

+ + +

Type

+ string|null +
+
+ +
+ +
+
+ +
+

$debug

+
$debug : object
+

+ + +

Type

+ object + — \nguyenanhung\MyDebug\Debug Call to class
+
+ +
+ + + +
+

Methods

+ +
+ +
+
+ +
+

__construct()

+ +
__construct() 
+

MyRequests constructor.

+ + + + + +
+
+ +
+ +
+
+ +
+

__destruct()

+ +
__destruct() 
+

MyRequests destructor.

+ + + + + +
+
+ +
+ +
+
+ +
+

getVersion()

+ +
getVersion() : mixed|string
+

Function getVersion

+ + + + +

Returns

+ mixed|string + —

Current Project version

+ +
+
+ +
+ +
+
+ +
+

setHeader()

+ +
setHeader(array  $headers = array()) : mixed
+

Function setHeaders

+ + +

Parameters

+ + + + + + +
array$headers
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setCookie()

+ +
setCookie(array  $cookies = array()) : mixed
+

Function setCookie

+ + +

Parameters

+ + + + + + +
array$cookies
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setOptions()

+ +
setOptions(array  $options = array()) : mixed
+

Function setOptions

+ + +

Parameters

+ + + + + + +
array$options
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setTimeout()

+ +
setTimeout(integer  $timeout = 60) : mixed
+

Function setTimeout

+ + +

Parameters

+ + + + + + +
integer$timeout
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setUserAgent()

+ +
setUserAgent(string  $userAgent = '') : mixed
+

Function setUserAgent

+ + +

Parameters

+ + + + + + +
string$userAgent
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setReferrer()

+ +
setReferrer(string  $referrer = '') : mixed
+

Function setReferrer

+ + +

Parameters

+ + + + + + +
string$referrer
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setUserBody()

+ +
setUserBody(boolean  $isBody = FALSE) : mixed
+

Function setUserBody

+ + +

Parameters

+ + + + + + +
boolean$isBody
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setRequestIsXml()

+ +
setRequestIsXml(boolean  $isXml = FALSE) : mixed
+

Function setRequestIsXml

+ + +

Parameters

+ + + + + + +
boolean$isXml
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setRequestIsJson()

+ +
setRequestIsJson(boolean  $isJson = FALSE) : mixed
+

Function setRequestIsJson

+ + +

Parameters

+ + + + + + +
boolean$isJson
+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setRequestIsSSL()

+ +
setRequestIsSSL(boolean  $isSSL = FALSE) : mixed|void
+

Function setRequestIsSSL

+ + +

Parameters

+ + + + + + +
boolean$isSSL
+ + +

Returns

+ mixed|void + +
+
+ +
+ +
+
+ +
+

setErrorResponseIsData()

+ +
setErrorResponseIsData(boolean  $errorResponseIsData = FALSE) : mixed
+

Function setErrorResponseIsData += true -> sẽ trả về 1 response đầy đủ error code, error message

+ + +

Parameters

+ + + + + + +
boolean$errorResponseIsData

Array Data if Response is Null if Error

+ + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

setErrorResponseIsNull()

+ +
setErrorResponseIsNull(boolean  $errorResponseIsNull = FALSE) : mixed|void
+

Function setErrorResponseIsNull +Trả về null nếu có lỗi request

+ + +

Parameters

+ + + + + + +
boolean$errorResponseIsNull

TRUE if Response is Null if Error

+ + +

Returns

+ mixed|void + +
+
+ +
+ +
+
+ +
+

setBasicAuthentication()

+ +
setBasicAuthentication(string  $username = '', string  $password = '') 
+

Function setBasicAuthentication

+ + +

Parameters

+ + + + + + + + + + + +
string$username

Username to be Authentication

string$password

Password to be Authentication

+ + + +
+
+ +
+ +
+
+ +
+

setDigestAuthentication()

+ +
setDigestAuthentication(string  $username = '', string  $password = '') 
+

Function setDigestAuthentication

+ + +

Parameters

+ + + + + + + + + + + +
string$username

Username to be Authentication

string$password

Password to be Authentication

+ + + +
+
+ +
+ +
+
+ +
+

getHttpCode()

+ +
getHttpCode() : mixed
+

Function getHttpCode

+ + + + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

getHttpMessage()

+ +
getHttpMessage() : mixed
+

Function getHttpMessage

+ + + + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

getErrorCode()

+ +
getErrorCode() : mixed
+

Function getErrorCode

+ + + + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

getRequestsHeader()

+ +
getRequestsHeader() : mixed
+

Function getRequestsHeader

+ + + + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

getResponseHeader()

+ +
getResponseHeader() : mixed
+

Function getResponseHeader

+ + + + +

Returns

+ mixed + +
+
+ +
+ +
+
+ +
+

pyRequest()

+ +
pyRequest(string  $url = '', array  $data = array(), string  $method = 'GET') : null|\Requests_Response|string
+

Function pyRequest +Send Request use Requests - https://packagist.org/packages/rmccue/requests

+ + +

Parameters

+ + + + + + + + + + + + + + + + +
string$url

URL Endpoint to be Request

array$data

Data Content to be Request

string$method

Set Method to be Request

+ + +

Returns

+ null|\Requests_Response|string + +
+
+ +
+ +
+
+ +
+

guzzlePhpRequest()

+ +
guzzlePhpRequest(string  $url = '', array  $data = array(), string  $method = 'GET') : \GuzzleHttp\Stream\StreamInterface|null|string
+

Function guzzlePhpRequest +Send Request use GuzzleHttp\Client - https://packagist.org/packages/guzzlehttp/guzzle

+ + +

Parameters

+ + + + + + + + + + + + + + + + +
string$url

URL Endpoint to be Request

array$data

Data Content to be Request

string$method

Set Method to be Request

+ + +

Returns

+ \GuzzleHttp\Stream\StreamInterface|null|string + +
+
+ +
+ +
+
+ +
+

curlRequest()

+ +
curlRequest(string  $url = '', array  $data = array(), string  $method = 'GET') : array|null|string
+

Function curlRequest +Send Request use \Curl\Curl class - https://packagist.org/packages/curl/curl

+ + +

Parameters

+ + + + + + + + + + + + + + + + +
string$url

URL Endpoint to be Request

array$data

Data Content to be Request

string$method

Set Method to be Request

+ + +

Returns

+ array|null|string + —

Response content from server, +null of Exception Message if Error

+ +
+
+ +
+ +
+
+ +
+

sendRequest()

+ +
sendRequest(string  $url = '', array  $data = array(), string  $method = 'GET') : array|null|\Requests_Response|string
+

Function sendRequest +Handle send Request use Multi Method

+ + +

Parameters

+ + + + + + + + + + + + + + + + +
string$url

URL Endpoint to be Request

array$data

Data Content to be Request

string$method

Set Method to be Request

+ + +

Returns

+ array|null|\Requests_Response|string + —

Response content from server +null of Exception Message if Error

+ +
+
+ +
+ +
+
+ +
+

xmlRequest()

+ +
xmlRequest(string  $url = '', string  $data = '', integer  $timeout = 60) : array|null|string
+

Function xmlRequest +Send XML Request to Server

+ + +

Parameters

+ + + + + + + + + + + + + + + + +
string$url

URL Endpoint to be Request

string$data

Data Content to be Request

integer$timeout

Timeout Request

+ + +

Returns

+ array|null|string + —

Response from Server

+ +
+
+ +
+ +
+
+ +
+

jsonRequest()

+ +
jsonRequest(string  $url = '', array  $data = array(), integer  $timeout = 60) : array|null|string
+

Function jsonRequest +Send JSON Request to Server

+ + +

Parameters

+ + + + + + + + + + + + + + + + +
string$url

URL Endpoint to be Request

array$data

Data Content to be Request

integer$timeout

Timeout Request

+ + +

Returns

+ array|null|string + —

Response from Server

+ +
+
+ +
+ +
+
+ +
+

xmlGetValue()

+ +
xmlGetValue(string  $xml = '', string  $openTag = '', string  $closeTag = '') : boolean|string
+

Function xmlGetValue

+ + +

Parameters

+ + + + + + + + + + + + + + + + +
string$xml

XML String

string$openTag

OpenTag to find

string$closeTag

CloseTag to find

+ + +

Returns

+ boolean|string + —

Result from Tag, Empty string if not

+ +
+
+ +
+ +
+
+ +
+

parseXmlDataRequest()

+ +
parseXmlDataRequest(string  $resultXml = '') : false|string
+

Function parseXmlDataRequest

+ + +

Parameters

+ + + + + + +
string$resultXml

XML String to Parse

+ + +

Returns

+ false|string + +
+
+ +
+ +
+
+ + + + +
+ + + diff --git a/docs/classes/nguyenanhung.MyRequests.Repository.DataRepository.html b/docs/classes/nguyenanhung.MyRequests.Repository.DataRepository.html new file mode 100644 index 0000000..4a78ec2 --- /dev/null +++ b/docs/classes/nguyenanhung.MyRequests.Repository.DataRepository.html @@ -0,0 +1,557 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

\nguyenanhung\MyRequests\RepositoryDataRepository

+

Class DataRepository

+ + + +
+

Summary

+
+
+ Methods +
+
+ Properties +
+
+ Constants +
+
+
+
+ getVersion()
+ getData()
+
+
+ No public properties found +
+
+ CONFIG_PATH
+ CONFIG_EXT
+
+
+
+
+ No protected methods found +
+
+ No protected properties found +
+
+ N/A +
+
+
+
+ No private methods found +
+
+ No private properties found +
+
+ N/A +
+
+
+
+ +
+ + +
+
+

Constants

+
+ +
+ +
+
+ +
+

CONFIG_PATH

+
CONFIG_PATH
+

+ +
+
+ +
+ +
+
+ +
+

CONFIG_EXT

+
CONFIG_EXT
+

+ +
+
+ +
+ + + + +
+

Methods

+ +
+ +
+
+ +
+

getVersion()

+ +
getVersion() : mixed|string
+

Function getVersion

+ + + + +

Returns

+ mixed|string + +
+
+ +
+ +
+
+ +
+

getData()

+ +
getData(  $configName) : array|mixed
+

Function getData

+ + +

Parameters

+ + + + + + +
$configName

config file from folder config

+ + +

Returns

+ array|mixed + —

Data content from config file

+ +
+
+ +
+ +
+
+ + + + +
+ + + diff --git a/docs/classes/nguyenanhung.MyRequests.SoapRequest.html b/docs/classes/nguyenanhung.MyRequests.SoapRequest.html new file mode 100644 index 0000000..8b45328 --- /dev/null +++ b/docs/classes/nguyenanhung.MyRequests.SoapRequest.html @@ -0,0 +1,1074 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

\nguyenanhung\MyRequestsSoapRequest

+

Class SoapRequest

+ + + +
+

Summary

+
+
+ Methods +
+
+ Properties +
+
+ Constants +
+
+
+
+ __construct()
+ __destruct()
+ getVersion()
+ setEndpoint()
+ setData()
+ setCallFunction()
+ setFieldResult()
+ setResponseIsJson()
+ clientRequestWsdl()
+
+
+ $debugStatus
+ $debugLevel
+ $debugLoggerPath
+ $debugLoggerFilename
+
+
+ No constants found +
+
+
+
+ No protected methods found +
+
+ No protected properties found +
+
+ N/A +
+
+
+
+ No private methods found +
+
+ $endpoint
+ $data
+ $callFunction
+ $fieldResult
+ $responseIsJson
+ $debug
+
+
+ N/A +
+
+
+
+ +
+ + + +
+
+

Properties

+
+ +
+ +
+
+ +
+

$debugStatus

+
$debugStatus : boolean
+

Set Debug Status

+ + +

Type

+ boolean +
+
+ +
+ +
+
+ +
+

$debugLevel

+
$debugLevel : null
+

+ + +

Type

+ null + — Set level Debug: DEBUG, INFO, ERROR ....
+
+ +
+ +
+
+ +
+

$debugLoggerPath

+
$debugLoggerPath : null|string
+

Set Logger Path to Save

+ + +

Type

+ null|string +
+
+ +
+ +
+
+ +
+

$debugLoggerFilename

+
$debugLoggerFilename : string
+

Set Logger Filename to Save

+ + +

Type

+ string +
+
+ +
+ +
+
+ +
+

$endpoint

+
$endpoint : string
+

+ + +

Type

+ string + — Url Endpoint to Request
+
+ +
+ +
+
+ +
+

$data

+
$data : array
+

+ + +

Type

+ array + — Data to Request
+
+ +
+ +
+
+ +
+

$callFunction

+
$callFunction : string
+

+ + +

Type

+ string + — Function to Request SOAP Service
+
+ +
+ +
+
+ +
+

$fieldResult

+
$fieldResult : string
+

+ + +

Type

+ string + — Field Result to mapping Response request
+
+ +
+ +
+
+ +
+

$responseIsJson

+
$responseIsJson : boolean
+

+ + +

Type

+ boolean + — Set Json Encode Response to Output
+
+ +
+ +
+
+ +
+

$debug

+
$debug : \nguyenanhung\MyRequests\object\nguyenanhung\MyDebug\Debug
+

+ + +

Type

+ \nguyenanhung\MyRequests\object\nguyenanhung\MyDebug\Debug + — Call to class
+
+ +
+ + + +
+

Methods

+ +
+ +
+
+ +
+

__construct()

+ +
__construct() 
+

SoapRequest constructor.

+ + + + + +
+
+ +
+ +
+
+ +
+

__destruct()

+ +
__destruct() 
+

SoapRequest destructor.

+ + + + + +
+
+ +
+ +
+
+ +
+

getVersion()

+ +
getVersion() : mixed|string
+

Function getVersion

+ + + + +

Returns

+ mixed|string + —

Current Project Version

+ +

Examples

+
0.1.3
+
** File not found : string **
+
+
+ +
+ +
+
+ +
+

setEndpoint()

+ +
setEndpoint(string  $endpoint = '') 
+

Function setEndpoint

+ + +

Parameters

+ + + + + + +
string$endpoint

Link to Url Endpoint

+ + + +
+
+ +
+ +
+
+ +
+

setData()

+ +
setData(array  $data = array()) 
+

Function setData

+ + +

Parameters

+ + + + + + +
array$data

Data to SOAP Request, call

+ + + +
+
+ +
+ +
+
+ +
+

setCallFunction()

+ +
setCallFunction(string  $callFunction = '') 
+

Function setCallFunction

+ + +

Parameters

+ + + + + + +
string$callFunction

Require Set Function to call SOAP endpoint

+ + + +
+
+ +
+ +
+
+ +
+

setFieldResult()

+ +
setFieldResult(string  $fieldResult = '') 
+

Function setFieldResult +Nếu input giá trì vào đây, result sẽ map trực tiếp đến mã này +nếu không có sẽ trả error luôn

+ + +

Parameters

+ + + + + + +
string$fieldResult

If input fieldResult, result return $response[$fieldResult] f +from Response SOAP Service +Return Error Code if not find $fieldResult from Response

+ + + +
+
+ +
+ +
+
+ +
+

setResponseIsJson()

+ +
setResponseIsJson(string  $responseIsJson = '') : mixed|void
+

Function setResponseIsJson +Return Response is Json if value = true

+ + +

Parameters

+ + + + + + +
string$responseIsJson
+ + +

Returns

+ mixed|void + —

if set value = TRUE, response is Json string

+ +
+
+ +
+ +
+
+ +
+

clientRequestWsdl()

+ +
clientRequestWsdl() : array|null|string
+

Function clientRequestWsdl

+ + + + +

Returns

+ array|null|string + —

Call to SOAP request and received Response from Server +Return is Json String if set setResponseIsJson(true) +Return Null if class nguyenanhung\MyNuSOAP\nusoap_client is unavailable, class is not exists

+ +
+
+ +
+ +
+
+ + + + +
+ + + diff --git a/docs/css/bootstrap-combined.no-icons.min.css b/docs/css/bootstrap-combined.no-icons.min.css new file mode 100644 index 0000000..5ab243e --- /dev/null +++ b/docs/css/bootstrap-combined.no-icons.min.css @@ -0,0 +1,732 @@ +/*! + * Bootstrap v2.3.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;} +.clearfix:after{clear:both;} +.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;} +.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;} +audio,canvas,video{display:inline-block;*display:inline;*zoom:1;} +audio:not([controls]){display:none;} +html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;} +a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +a:hover,a:active{outline:0;} +sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;} +sup{top:-0.5em;} +sub{bottom:-0.25em;} +img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;} +#map_canvas img,.google-maps img{max-width:none;} +button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;} +button,input{*overflow:visible;line-height:normal;} +button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;} +button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;} +label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer;} +input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;} +input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;} +textarea{overflow:auto;vertical-align:top;} +@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important;} a,a:visited{text-decoration:underline;} a[href]:after{content:" (" attr(href) ")";} abbr[title]:after{content:" (" attr(title) ")";} .ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:"";} pre,blockquote{border:1px solid #999;page-break-inside:avoid;} thead{display:table-header-group;} tr,img{page-break-inside:avoid;} img{max-width:100% !important;} @page {margin:0.5cm;}p,h2,h3{orphans:3;widows:3;} h2,h3{page-break-after:avoid;}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333333;background-color:#ffffff;} +a{color:#0088cc;text-decoration:none;} +a:hover,a:focus{color:#005580;text-decoration:underline;} +.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);} +.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px;} +.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} +.row:after{clear:both;} +[class*="span"]{float:left;min-height:1px;margin-left:20px;} +.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;} +.span12{width:940px;} +.span11{width:860px;} +.span10{width:780px;} +.span9{width:700px;} +.span8{width:620px;} +.span7{width:540px;} +.span6{width:460px;} +.span5{width:380px;} +.span4{width:300px;} +.span3{width:220px;} +.span2{width:140px;} +.span1{width:60px;} +.offset12{margin-left:980px;} +.offset11{margin-left:900px;} +.offset10{margin-left:820px;} +.offset9{margin-left:740px;} +.offset8{margin-left:660px;} +.offset7{margin-left:580px;} +.offset6{margin-left:500px;} +.offset5{margin-left:420px;} +.offset4{margin-left:340px;} +.offset3{margin-left:260px;} +.offset2{margin-left:180px;} +.offset1{margin-left:100px;} +.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} +.row-fluid:after{clear:both;} +.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;} +.row-fluid [class*="span"]:first-child{margin-left:0;} +.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%;} +.row-fluid .span12{width:100%;*width:99.94680851063829%;} +.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%;} +.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%;} +.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%;} +.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%;} +.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%;} +.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%;} +.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%;} +.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%;} +.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%;} +.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%;} +.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%;} +.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%;} +.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%;} +.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%;} +.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%;} +.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%;} +.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%;} +.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%;} +.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%;} +.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%;} +.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%;} +.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%;} +.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%;} +.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%;} +.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%;} +.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%;} +.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%;} +.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%;} +.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%;} +.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%;} +.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%;} +.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%;} +.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%;} +.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%;} +.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%;} +[class*="span"].hide,.row-fluid [class*="span"].hide{display:none;} +[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right;} +.container{margin-right:auto;margin-left:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";line-height:0;} +.container:after{clear:both;} +.container-fluid{padding-right:20px;padding-left:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0;} +.container-fluid:after{clear:both;} +p{margin:0 0 10px;} +.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px;} +small{font-size:85%;} +strong{font-weight:bold;} +em{font-style:italic;} +cite{font-style:normal;} +.muted{color:#999999;} +a.muted:hover,a.muted:focus{color:#808080;} +.text-warning{color:#c09853;} +a.text-warning:hover,a.text-warning:focus{color:#a47e3c;} +.text-error{color:#b94a48;} +a.text-error:hover,a.text-error:focus{color:#953b39;} +.text-info{color:#3a87ad;} +a.text-info:hover,a.text-info:focus{color:#2d6987;} +.text-success{color:#468847;} +a.text-success:hover,a.text-success:focus{color:#356635;} +.text-left{text-align:left;} +.text-right{text-align:right;} +.text-center{text-align:center;} +h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999999;} +h1,h2,h3{line-height:40px;} +h1{font-size:38.5px;} +h2{font-size:31.5px;} +h3{font-size:24.5px;} +h4{font-size:17.5px;} +h5{font-size:14px;} +h6{font-size:11.9px;} +h1 small{font-size:24.5px;} +h2 small{font-size:17.5px;} +h3 small{font-size:14px;} +h4 small{font-size:14px;} +.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eeeeee;} +ul,ol{padding:0;margin:0 0 10px 25px;} +ul ul,ul ol,ol ol,ol ul{margin-bottom:0;} +li{line-height:20px;} +ul.unstyled,ol.unstyled{margin-left:0;list-style:none;} +ul.inline,ol.inline{margin-left:0;list-style:none;}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;*zoom:1;padding-left:5px;padding-right:5px;} +dl{margin-bottom:20px;} +dt,dd{line-height:20px;} +dt{font-weight:bold;} +dd{margin-left:10px;} +.dl-horizontal{*zoom:1;}.dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0;} +.dl-horizontal:after{clear:both;} +.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} +.dl-horizontal dd{margin-left:180px;} +hr{margin:20px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;} +abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999;} +abbr.initialism{font-size:90%;text-transform:uppercase;} +blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25;} +blockquote small{display:block;line-height:20px;color:#999999;}blockquote small:before{content:'\2014 \00A0';} +blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;} +blockquote.pull-right small:before{content:'';} +blockquote.pull-right small:after{content:'\00A0 \2014';} +q:before,q:after,blockquote:before,blockquote:after{content:"";} +address{display:block;margin-bottom:20px;font-style:normal;line-height:20px;} +code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;white-space:nowrap;} +pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}pre.prettyprint{margin-bottom:20px;} +pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0;} +.pre-scrollable{max-height:340px;overflow-y:scroll;} +.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#ffffff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#999999;} +.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.badge{padding-left:9px;padding-right:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;} +.label:empty,.badge:empty{display:none;} +a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer;} +.label-important,.badge-important{background-color:#b94a48;} +.label-important[href],.badge-important[href]{background-color:#953b39;} +.label-warning,.badge-warning{background-color:#f89406;} +.label-warning[href],.badge-warning[href]{background-color:#c67605;} +.label-success,.badge-success{background-color:#468847;} +.label-success[href],.badge-success[href]{background-color:#356635;} +.label-info,.badge-info{background-color:#3a87ad;} +.label-info[href],.badge-info[href]{background-color:#2d6987;} +.label-inverse,.badge-inverse{background-color:#333333;} +.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a;} +.btn .label,.btn .badge{position:relative;top:-1px;} +.btn-mini .label,.btn-mini .badge{top:0;} +table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0;} +.table{width:100%;margin-bottom:20px;}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;} +.table th{font-weight:bold;} +.table thead th{vertical-align:bottom;} +.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;} +.table tbody+tbody{border-top:2px solid #dddddd;} +.table .table{background-color:#ffffff;} +.table-condensed th,.table-condensed td{padding:4px 5px;} +.table-bordered{border:1px solid #dddddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;} +.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;} +.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;} +.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;} +.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;} +.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;} +.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;} +.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;} +.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;} +.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;} +.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9;} +.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5;} +table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0;} +.table td.span1,.table th.span1{float:none;width:44px;margin-left:0;} +.table td.span2,.table th.span2{float:none;width:124px;margin-left:0;} +.table td.span3,.table th.span3{float:none;width:204px;margin-left:0;} +.table td.span4,.table th.span4{float:none;width:284px;margin-left:0;} +.table td.span5,.table th.span5{float:none;width:364px;margin-left:0;} +.table td.span6,.table th.span6{float:none;width:444px;margin-left:0;} +.table td.span7,.table th.span7{float:none;width:524px;margin-left:0;} +.table td.span8,.table th.span8{float:none;width:604px;margin-left:0;} +.table td.span9,.table th.span9{float:none;width:684px;margin-left:0;} +.table td.span10,.table th.span10{float:none;width:764px;margin-left:0;} +.table td.span11,.table th.span11{float:none;width:844px;margin-left:0;} +.table td.span12,.table th.span12{float:none;width:924px;margin-left:0;} +.table tbody tr.success>td{background-color:#dff0d8;} +.table tbody tr.error>td{background-color:#f2dede;} +.table tbody tr.warning>td{background-color:#fcf8e3;} +.table tbody tr.info>td{background-color:#d9edf7;} +.table-hover tbody tr.success:hover>td{background-color:#d0e9c6;} +.table-hover tbody tr.error:hover>td{background-color:#ebcccc;} +.table-hover tbody tr.warning:hover>td{background-color:#faf2cc;} +.table-hover tbody tr.info:hover>td{background-color:#c4e3f3;} +form{margin:0 0 20px;} +fieldset{padding:0;margin:0;border:0;} +legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333333;border:0;border-bottom:1px solid #e5e5e5;}legend small{font-size:15px;color:#999999;} +label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px;} +input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;} +label{display:block;margin-bottom:5px;} +select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555555;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;vertical-align:middle;} +input,textarea,.uneditable-input{width:206px;} +textarea{height:auto;} +textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#ffffff;border:1px solid #cccccc;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear .2s, box-shadow linear .2s;-moz-transition:border linear .2s, box-shadow linear .2s;-o-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82, 168, 236, 0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);} +input[type="radio"],input[type="checkbox"]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal;} +input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto;} +select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px;} +select{width:220px;border:1px solid #cccccc;background-color:#ffffff;} +select[multiple],select[size]{height:auto;} +select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.uneditable-input,.uneditable-textarea{color:#999999;background-color:#fcfcfc;border-color:#cccccc;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;} +.uneditable-input{overflow:hidden;white-space:nowrap;} +.uneditable-textarea{width:auto;height:auto;} +input:-moz-placeholder,textarea:-moz-placeholder{color:#999999;} +input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999999;} +input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999999;} +.radio,.checkbox{min-height:20px;padding-left:20px;} +.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px;} +.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;} +.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle;} +.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;} +.input-mini{width:60px;} +.input-small{width:90px;} +.input-medium{width:150px;} +.input-large{width:210px;} +.input-xlarge{width:270px;} +.input-xxlarge{width:530px;} +input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0;} +.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block;} +input,textarea,.uneditable-input{margin-left:0;} +.controls-row [class*="span"]+[class*="span"]{margin-left:20px;} +input.span12,textarea.span12,.uneditable-input.span12{width:926px;} +input.span11,textarea.span11,.uneditable-input.span11{width:846px;} +input.span10,textarea.span10,.uneditable-input.span10{width:766px;} +input.span9,textarea.span9,.uneditable-input.span9{width:686px;} +input.span8,textarea.span8,.uneditable-input.span8{width:606px;} +input.span7,textarea.span7,.uneditable-input.span7{width:526px;} +input.span6,textarea.span6,.uneditable-input.span6{width:446px;} +input.span5,textarea.span5,.uneditable-input.span5{width:366px;} +input.span4,textarea.span4,.uneditable-input.span4{width:286px;} +input.span3,textarea.span3,.uneditable-input.span3{width:206px;} +input.span2,textarea.span2,.uneditable-input.span2{width:126px;} +input.span1,textarea.span1,.uneditable-input.span1{width:46px;} +.controls-row{*zoom:1;}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0;} +.controls-row:after{clear:both;} +.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left;} +.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px;} +input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eeeeee;} +input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent;} +.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;} +.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;} +.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;} +.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;} +.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;} +.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;} +.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;} +.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;} +.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;} +.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;} +.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;} +.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;} +.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad;} +.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;} +.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;} +.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad;} +input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;} +.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1;}.form-actions:before,.form-actions:after{display:table;content:"";line-height:0;} +.form-actions:after{clear:both;} +.help-block,.help-inline{color:#595959;} +.help-block{display:block;margin-bottom:10px;} +.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px;} +.input-append,.input-prepend{display:inline-block;margin-bottom:10px;vertical-align:middle;font-size:0;white-space:nowrap;}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px;} +.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2;} +.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#eeeeee;border:1px solid #ccc;} +.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546;} +.input-prepend .add-on,.input-prepend .btn{margin-right:-1px;} +.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;} +.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px;} +.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;} +.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.input-prepend.input-append .btn-group:first-child{margin-left:0;} +input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;} +.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;} +.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;} +.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;} +.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;} +.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle;} +.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none;} +.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block;} +.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0;} +.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle;} +.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0;} +.control-group{margin-bottom:10px;} +legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate;} +.form-horizontal .control-group{margin-bottom:20px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0;} +.form-horizontal .control-group:after{clear:both;} +.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right;} +.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0;}.form-horizontal .controls:first-child{*padding-left:180px;} +.form-horizontal .help-block{margin-bottom:0;} +.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px;} +.form-horizontal .form-actions{padding-left:180px;} +.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:14px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333333;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(to bottom, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #cccccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333333;background-color:#e6e6e6;*background-color:#d9d9d9;} +.btn:active,.btn.active{background-color:#cccccc \9;} +.btn:first-child{*margin-left:0;} +.btn:hover,.btn:focus{color:#333333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;} +.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);} +.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px;} +.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0;} +.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px;} +.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +.btn-block+.btn-block{margin-top:5px;} +input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%;} +.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);} +.btn-primary{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #0088cc, #0044cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));background-image:-webkit-linear-gradient(top, #0088cc, #0044cc);background-image:-o-linear-gradient(top, #0088cc, #0044cc);background-image:linear-gradient(to bottom, #0088cc, #0044cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);border-color:#0044cc #0044cc #002a80;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#0044cc;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#ffffff;background-color:#0044cc;*background-color:#003bb3;} +.btn-primary:active,.btn-primary.active{background-color:#003399 \9;} +.btn-warning{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#ffffff;background-color:#f89406;*background-color:#df8505;} +.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;} +.btn-danger{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(to bottom, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#ffffff;background-color:#bd362f;*background-color:#a9302a;} +.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;} +.btn-success{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(to bottom, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#ffffff;background-color:#51a351;*background-color:#499249;} +.btn-success:active,.btn-success.active{background-color:#408140 \9;} +.btn-info{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(to bottom, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#ffffff;background-color:#2f96b4;*background-color:#2a85a0;} +.btn-info:active,.btn-info.active{background-color:#24748c \9;} +.btn-inverse{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#363636;background-image:-moz-linear-gradient(top, #444444, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));background-image:-webkit-linear-gradient(top, #444444, #222222);background-image:-o-linear-gradient(top, #444444, #222222);background-image:linear-gradient(to bottom, #444444, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#222222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#ffffff;background-color:#222222;*background-color:#151515;} +.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;} +button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;} +button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;} +button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;} +button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;} +.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.btn-link{border-color:transparent;cursor:pointer;color:#0088cc;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent;} +.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333333;text-decoration:none;} +.btn-group{position:relative;display:inline-block;*display:inline;*zoom:1;font-size:0;vertical-align:middle;white-space:nowrap;*margin-left:.3em;}.btn-group:first-child{*margin-left:0;} +.btn-group+.btn-group{margin-left:5px;} +.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px;}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px;} +.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.btn-group>.btn+.btn{margin-left:-1px;} +.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px;} +.btn-group>.btn-mini{font-size:10.5px;} +.btn-group>.btn-small{font-size:11.9px;} +.btn-group>.btn-large{font-size:17.5px;} +.btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;} +.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;} +.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;} +.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;} +.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2;} +.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;} +.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px;} +.btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px;} +.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px;} +.btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px;} +.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);} +.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6;} +.btn-group.open .btn-primary.dropdown-toggle{background-color:#0044cc;} +.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406;} +.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f;} +.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351;} +.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4;} +.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222222;} +.btn .caret{margin-top:8px;margin-left:0;} +.btn-large .caret{margin-top:6px;} +.btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px;} +.btn-mini .caret,.btn-small .caret{margin-top:8px;} +.dropup .btn-large .caret{border-bottom-width:5px;} +.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;} +.btn-group-vertical{display:inline-block;*display:inline;*zoom:1;} +.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.btn-group-vertical>.btn+.btn{margin-left:0;margin-top:-1px;} +.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;} +.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;} +.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0;} +.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;} +.nav{margin-left:0;margin-bottom:20px;list-style:none;} +.nav>li>a{display:block;} +.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee;} +.nav>li>a>img{max-width:none;} +.nav>.pull-right{float:right;} +.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;} +.nav li+.nav-header{margin-top:9px;} +.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;} +.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);} +.nav-list>li>a{padding:3px 15px;} +.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;} +.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px;} +.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;} +.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0;} +.nav-tabs:after,.nav-pills:after{clear:both;} +.nav-tabs>li,.nav-pills>li{float:left;} +.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;} +.nav-tabs{border-bottom:1px solid #ddd;} +.nav-tabs>li{margin-bottom:-1px;} +.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eeeeee #eeeeee #dddddd;} +.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;} +.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#ffffff;background-color:#0088cc;} +.nav-stacked>li{float:none;} +.nav-stacked>li>a{margin-right:0;} +.nav-tabs.nav-stacked{border-bottom:0;} +.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;} +.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;} +.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{border-color:#ddd;z-index:2;} +.nav-pills.nav-stacked>li>a{margin-bottom:3px;} +.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;} +.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;} +.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.nav .dropdown-toggle .caret{border-top-color:#0088cc;border-bottom-color:#0088cc;margin-top:6px;} +.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580;} +.nav-tabs .dropdown-toggle .caret{margin-top:8px;} +.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff;} +.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;} +.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer;} +.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#ffffff;background-color:#999999;border-color:#999999;} +.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);} +.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999999;} +.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";line-height:0;} +.tabbable:after{clear:both;} +.tab-content{overflow:auto;} +.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0;} +.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;} +.tab-content>.active,.pill-content>.active{display:block;} +.tabs-below>.nav-tabs{border-top:1px solid #ddd;} +.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0;} +.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-bottom-color:transparent;border-top-color:#ddd;} +.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd;} +.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none;} +.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;} +.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;} +.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;} +.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eeeeee #dddddd #eeeeee #eeeeee;} +.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;} +.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;} +.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eeeeee #eeeeee #eeeeee #dddddd;} +.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;} +.nav>.disabled>a{color:#999999;} +.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;background-color:transparent;cursor:default;} +.navbar{overflow:visible;margin-bottom:20px;*position:relative;*z-index:2;} +.navbar-inner{min-height:40px;padding-left:20px;padding-right:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top, #ffffff, #f2f2f2);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));background-image:-webkit-linear-gradient(top, #ffffff, #f2f2f2);background-image:-o-linear-gradient(top, #ffffff, #f2f2f2);background-image:linear-gradient(to bottom, #ffffff, #f2f2f2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);-moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);*zoom:1;}.navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0;} +.navbar-inner:after{clear:both;} +.navbar .container{width:auto;} +.nav-collapse.collapse{height:auto;overflow:visible;} +.navbar .brand{float:left;display:block;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777777;text-shadow:0 1px 0 #ffffff;}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none;} +.navbar-text{margin-bottom:0;line-height:40px;color:#777777;} +.navbar-link{color:#777777;}.navbar-link:hover,.navbar-link:focus{color:#333333;} +.navbar .divider-vertical{height:40px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid #ffffff;} +.navbar .btn,.navbar .btn-group{margin-top:5px;} +.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0;} +.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0;} +.navbar-form:after{clear:both;} +.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;} +.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0;} +.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;} +.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;} +.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0;}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;} +.navbar-static-top{position:static;margin-bottom:0;}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;} +.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px;} +.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0;} +.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;} +.navbar-fixed-top{top:0;} +.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1);} +.navbar-fixed-bottom{bottom:0;}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(0,0,0,.1);} +.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;} +.navbar .nav.pull-right{float:right;margin-right:0;} +.navbar .nav>li{float:left;} +.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777777;text-decoration:none;text-shadow:0 1px 0 #ffffff;} +.navbar .nav .dropdown-toggle .caret{margin-top:8px;} +.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{background-color:transparent;color:#333333;text-decoration:none;} +.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);-moz-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);} +.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#ededed;background-image:-moz-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));background-image:-webkit-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-o-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:linear-gradient(to bottom, #f2f2f2, #e5e5e5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e5e5e5;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#ffffff;background-color:#e5e5e5;*background-color:#d9d9d9;} +.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#cccccc \9;} +.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);} +.btn-navbar .icon-bar+.icon-bar{margin-top:3px;} +.navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;} +.navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;} +.navbar-fixed-bottom .nav>li>.dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;} +.navbar-fixed-bottom .nav>li>.dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;} +.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333333;border-bottom-color:#333333;} +.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:#e5e5e5;color:#555555;} +.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777777;border-bottom-color:#777777;} +.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;} +.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{left:auto;right:0;}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{left:auto;right:12px;} +.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{left:auto;right:13px;} +.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;} +.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top, #222222, #111111);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));background-image:-webkit-linear-gradient(top, #222222, #111111);background-image:-o-linear-gradient(top, #222222, #111111);background-image:linear-gradient(to bottom, #222222, #111111);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);border-color:#252525;} +.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999999;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#ffffff;} +.navbar-inverse .brand{color:#999999;} +.navbar-inverse .navbar-text{color:#999999;} +.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{background-color:transparent;color:#ffffff;} +.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#ffffff;background-color:#111111;} +.navbar-inverse .navbar-link{color:#999999;}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#ffffff;} +.navbar-inverse .divider-vertical{border-left-color:#111111;border-right-color:#222222;} +.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{background-color:#111111;color:#ffffff;} +.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;} +.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999999;border-bottom-color:#999999;} +.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;} +.navbar-inverse .navbar-search .search-query{color:#ffffff;background-color:#515151;border-color:#111111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none;}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#cccccc;} +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#cccccc;} +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;} +.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;} +.navbar-inverse .btn-navbar{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e0e0e;background-image:-moz-linear-gradient(top, #151515, #040404);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));background-image:-webkit-linear-gradient(top, #151515, #040404);background-image:-o-linear-gradient(top, #151515, #040404);background-image:linear-gradient(to bottom, #151515, #040404);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);border-color:#040404 #040404 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#040404;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#ffffff;background-color:#040404;*background-color:#000000;} +.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000000 \9;} +.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.breadcrumb>li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #ffffff;}.breadcrumb>li>.divider{padding:0 5px;color:#ccc;} +.breadcrumb>.active{color:#999999;} +.pagination{margin:20px 0;} +.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);} +.pagination ul>li{display:inline;} +.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#ffffff;border:1px solid #dddddd;border-left-width:0;} +.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5;} +.pagination ul>.active>a,.pagination ul>.active>span{color:#999999;cursor:default;} +.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999999;background-color:transparent;cursor:default;} +.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;} +.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;} +.pagination-centered{text-align:center;} +.pagination-right{text-align:right;} +.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px;} +.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;} +.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;} +.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-top-left-radius:3px;-moz-border-radius-topleft:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-bottomleft:3px;border-bottom-left-radius:3px;} +.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;-moz-border-radius-topright:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;border-bottom-right-radius:3px;} +.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px;} +.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px;} +.pager{margin:20px 0;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";line-height:0;} +.pager:after{clear:both;} +.pager li{display:inline;} +.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;} +.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5;} +.pager .next>a,.pager .next>span{float:right;} +.pager .previous>a,.pager .previous>span{float:left;} +.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#fff;cursor:default;} +.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0;} +.thumbnails:after{clear:both;} +.row-fluid .thumbnails{margin-left:0;} +.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px;} +.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;} +a.thumbnail:hover,a.thumbnail:focus{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);} +.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;} +.thumbnail .caption{padding:9px;color:#555555;} +.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.alert,.alert h4{color:#c09853;} +.alert h4{margin:0;} +.alert .close{position:relative;top:-2px;right:-21px;line-height:20px;} +.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;} +.alert-success h4{color:#468847;} +.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;} +.alert-danger h4,.alert-error h4{color:#b94a48;} +.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;} +.alert-info h4{color:#3a87ad;} +.alert-block{padding-top:14px;padding-bottom:14px;} +.alert-block>p,.alert-block>ul{margin-bottom:0;} +.alert-block p+p{margin-top:5px;} +@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-o-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(to bottom, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.progress .bar{width:0%;height:100%;color:#ffffff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(to bottom, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;} +.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);} +.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;} +.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;} +.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(to bottom, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);} +.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(to bottom, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);} +.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(to bottom, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);} +.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);} +.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eeeeee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px;} +.hero-unit li{line-height:30px;} +.media,.media-body{overflow:hidden;*overflow:visible;zoom:1;} +.media,.media .media{margin-top:15px;} +.media:first-child{margin-top:0;} +.media-object{display:block;} +.media-heading{margin:0 0 5px;} +.media>.pull-left{margin-right:10px;} +.media>.pull-right{margin-left:10px;} +.media-list{margin-left:0;list-style:none;} +.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} +.tooltip.top{margin-top:-3px;padding:5px 0;} +.tooltip.right{margin-left:3px;padding:0 5px;} +.tooltip.bottom{margin-top:3px;padding:5px 0;} +.tooltip.left{margin-left:-3px;padding:0 5px;} +.tooltip-inner{max-width:200px;padding:8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);white-space:normal;}.popover.top{margin-top:-10px;} +.popover.right{margin-left:10px;} +.popover.bottom{margin-top:10px;} +.popover.left{margin-left:-10px;} +.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}.popover-title:empty{display:none;} +.popover-content{padding:9px 14px;} +.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;} +.popover .arrow{border-width:11px;} +.popover .arrow:after{border-width:10px;content:"";} +.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0, 0, 0, 0.25);bottom:-11px;}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff;} +.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0, 0, 0, 0.25);}.popover.right .arrow:after{left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff;} +.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0, 0, 0, 0.25);top:-11px;}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff;} +.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0, 0, 0, 0.25);}.popover.left .arrow:after{right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px;} +.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;} +.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);} +.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:none;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;} +.modal.fade.in{top:10%;} +.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;} +.modal-header h3{margin:0;line-height:30px;} +.modal-body{position:relative;overflow-y:auto;max-height:400px;padding:15px;} +.modal-form{margin-bottom:0;} +.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0;} +.modal-footer:after{clear:both;} +.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;} +.modal-footer .btn-group .btn+.btn{margin-left:-1px;} +.modal-footer .btn-block+.btn-block{margin-left:0;} +.dropup,.dropdown{position:relative;} +.dropdown-toggle{*margin-bottom:-3px;} +.dropdown-toggle:active,.open .dropdown-toggle{outline:0;} +.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";} +.dropdown .caret{margin-top:8px;margin-left:2px;} +.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#ffffff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;}.dropdown-menu.pull-right{right:0;left:auto;} +.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;} +.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333333;white-space:nowrap;} +.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{text-decoration:none;color:#ffffff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);} +.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);} +.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999;} +.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:default;} +.open{*z-index:1000;}.open>.dropdown-menu{display:block;} +.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990;} +.pull-right>.dropdown-menu{right:0;left:auto;} +.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"";} +.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;} +.dropdown-submenu{position:relative;} +.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;} +.dropdown-submenu:hover>.dropdown-menu{display:block;} +.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0;} +.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#cccccc;margin-top:5px;margin-right:-10px;} +.dropdown-submenu:hover>a:after{border-left-color:#ffffff;} +.dropdown-submenu.pull-left{float:none;}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;} +.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px;} +.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.accordion{margin-bottom:20px;} +.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.accordion-heading{border-bottom:0;} +.accordion-heading .accordion-toggle{display:block;padding:8px 15px;} +.accordion-toggle{cursor:pointer;} +.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;} +.carousel{position:relative;margin-bottom:20px;line-height:1;} +.carousel-inner{overflow:hidden;width:100%;position:relative;} +.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1;} +.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block;} +.carousel-inner>.active{left:0;} +.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%;} +.carousel-inner>.next{left:100%;} +.carousel-inner>.prev{left:-100%;} +.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0;} +.carousel-inner>.active.left{left:-100%;} +.carousel-inner>.active.right{left:100%;} +.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#ffffff;text-align:center;background:#222222;border:3px solid #ffffff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;} +.carousel-control:hover,.carousel-control:focus{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);} +.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none;}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255, 255, 255, 0.25);border-radius:5px;} +.carousel-indicators .active{background-color:#fff;} +.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:15px;background:#333333;background:rgba(0, 0, 0, 0.75);} +.carousel-caption h4,.carousel-caption p{color:#ffffff;line-height:20px;} +.carousel-caption h4{margin:0 0 5px;} +.carousel-caption p{margin-bottom:0;} +.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);} +.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;filter:alpha(opacity=40);} +button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;} +.pull-right{float:right;} +.pull-left{float:left;} +.hide{display:none;} +.show{display:block;} +.invisible{visibility:hidden;} +.affix{position:fixed;} +.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;} +.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;}.collapse.in{height:auto;} +@-ms-viewport{width:device-width;}.hidden{display:none;visibility:hidden;} +.visible-phone{display:none !important;} +.visible-tablet{display:none !important;} +.hidden-desktop{display:none !important;} +.visible-desktop{display:inherit !important;} +@media (min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit !important;} .visible-desktop{display:none !important ;} .visible-tablet{display:inherit !important;} .hidden-tablet{display:none !important;}}@media (max-width:767px){.hidden-desktop{display:inherit !important;} .visible-desktop{display:none !important;} .visible-phone{display:inherit !important;} .hidden-phone{display:none !important;}}.visible-print{display:none !important;} +@media print{.visible-print{display:inherit !important;} .hidden-print{display:none !important;}}@media (max-width:767px){body{padding-left:20px;padding-right:20px;} .navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-left:-20px;margin-right:-20px;} .container-fluid{padding:0;} .dl-horizontal dt{float:none;clear:none;width:auto;text-align:left;} .dl-horizontal dd{margin-left:0;} .container{width:auto;} .row-fluid{width:100%;} .row,.thumbnails{margin-left:0;} .thumbnails>li{float:none;margin-left:0;} [class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{float:none;display:block;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .row-fluid [class*="offset"]:first-child{margin-left:0;} .input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto;} .controls-row [class*="span"]+[class*="span"]{margin-left:0;} .modal{position:fixed;top:20px;left:20px;right:20px;width:auto;margin:0;}.modal.fade{top:-100px;} .modal.fade.in{top:20px;}}@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:20px;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .media .pull-left,.media .pull-right{float:none;display:block;margin-bottom:10px;} .media-object{margin-right:0;margin-left:0;} .modal{top:10px;left:10px;right:10px;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:20px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%;} .row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%;} .row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%;} .row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%;} .row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%;} .row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%;} .row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%;} .row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%;} .row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%;} .row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%;} .row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%;} .row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%;} .row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%;} .row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%;} .row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%;} .row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%;} .row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%;} .row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%;} .row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%;} .row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%;} .row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%;} .row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%;} .row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%;} .row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%;} .row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%;} .row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%;} .row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%;} .row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%;} .row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%;} .row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%;} .row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%;} .row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%;} .row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%;} .row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%;} .row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:20px;} input.span12,textarea.span12,.uneditable-input.span12{width:710px;} input.span11,textarea.span11,.uneditable-input.span11{width:648px;} input.span10,textarea.span10,.uneditable-input.span10{width:586px;} input.span9,textarea.span9,.uneditable-input.span9{width:524px;} input.span8,textarea.span8,.uneditable-input.span8{width:462px;} input.span7,textarea.span7,.uneditable-input.span7{width:400px;} input.span6,textarea.span6,.uneditable-input.span6{width:338px;} input.span5,textarea.span5,.uneditable-input.span5{width:276px;} input.span4,textarea.span4,.uneditable-input.span4{width:214px;} input.span3,textarea.span3,.uneditable-input.span3{width:152px;} input.span2,textarea.span2,.uneditable-input.span2{width:90px;} input.span1,textarea.span1,.uneditable-input.span1{width:28px;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:30px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%;} .row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%;} .row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%;} .row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%;} .row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%;} .row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%;} .row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%;} .row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%;} .row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%;} .row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%;} .row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%;} .row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%;} .row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%;} .row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%;} .row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%;} .row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%;} .row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%;} .row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%;} .row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%;} .row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%;} .row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%;} .row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%;} .row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%;} .row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%;} .row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%;} .row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%;} .row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%;} .row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%;} .row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%;} .row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%;} .row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%;} .row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%;} .row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%;} .row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%;} .row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:30px;} input.span12,textarea.span12,.uneditable-input.span12{width:1156px;} input.span11,textarea.span11,.uneditable-input.span11{width:1056px;} input.span10,textarea.span10,.uneditable-input.span10{width:956px;} input.span9,textarea.span9,.uneditable-input.span9{width:856px;} input.span8,textarea.span8,.uneditable-input.span8{width:756px;} input.span7,textarea.span7,.uneditable-input.span7{width:656px;} input.span6,textarea.span6,.uneditable-input.span6{width:556px;} input.span5,textarea.span5,.uneditable-input.span5{width:456px;} input.span4,textarea.span4,.uneditable-input.span4{width:356px;} input.span3,textarea.span3,.uneditable-input.span3{width:256px;} input.span2,textarea.span2,.uneditable-input.span2{width:156px;} input.span1,textarea.span1,.uneditable-input.span1{width:56px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;} .row-fluid .thumbnails{margin-left:0;}}@media (max-width:979px){body{padding-top:0;} .navbar-fixed-top,.navbar-fixed-bottom{position:static;} .navbar-fixed-top{margin-bottom:20px;} .navbar-fixed-bottom{margin-top:20px;} .navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .nav-collapse{clear:both;} .nav-collapse .nav{float:none;margin:0 0 10px;} .nav-collapse .nav>li{float:none;} .nav-collapse .nav>li>a{margin-bottom:2px;} .nav-collapse .nav>.divider-vertical{display:none;} .nav-collapse .nav .nav-header{color:#777777;text-shadow:none;} .nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} .nav-collapse .dropdown-menu li+li a{margin-bottom:2px;} .nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2;} .navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999999;} .navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111111;} .nav-collapse.in .btn-group{margin-top:5px;padding:0;} .nav-collapse .dropdown-menu{position:static;top:auto;left:auto;float:none;display:none;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .nav-collapse .open>.dropdown-menu{display:block;} .nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none;} .nav-collapse .dropdown-menu .divider{display:none;} .nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none;} .nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);} .navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111111;border-bottom-color:#111111;} .navbar .nav-collapse .nav.pull-right{float:none;margin-left:0;} .nav-collapse,.nav-collapse.collapse{overflow:hidden;height:0;} .navbar .btn-navbar{display:block;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important;}} diff --git a/docs/css/font-awesome.min.css b/docs/css/font-awesome.min.css new file mode 100644 index 0000000..866437f --- /dev/null +++ b/docs/css/font-awesome.min.css @@ -0,0 +1,403 @@ +@font-face{font-family:'FontAwesome';src:url('../font/fontawesome-webfont.eot?v=3.2.1');src:url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'),url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'),url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');font-weight:normal;font-style:normal;}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em;} +[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none;} +.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em;} +a [class^="icon-"],a [class*=" icon-"]{display:inline;} +[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.1428571428571428em;text-align:right;padding-right:0.2857142857142857em;}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.4285714285714286em;} +.icons-ul{margin-left:2.142857142857143em;list-style-type:none;}.icons-ul>li{position:relative;} +.icons-ul .icon-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;text-align:center;line-height:inherit;} +[class^="icon-"].hide,[class*=" icon-"].hide{display:none;} +.icon-muted{color:#eeeeee;} +.icon-light{color:#ffffff;} +.icon-dark{color:#333333;} +.icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.icon-2x{font-size:2em;}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.icon-3x{font-size:3em;}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.icon-4x{font-size:4em;}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.icon-5x{font-size:5em;}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;} +.pull-right{float:right;} +.pull-left{float:left;} +[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em;} +[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em;} +[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0;} +.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none;} +.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em;} +.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block;} +.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em;} +.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em;} +.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em;} +.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em;} +.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0;}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em;} +.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em;} +.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em;} +.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit;} +.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%;}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em;} +.icon-stack .icon-stack-base{font-size:2em;*line-height:1em;} +.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;} +a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none;} +@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);} 100%{-moz-transform:rotate(359deg);}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);} 100%{-webkit-transform:rotate(359deg);}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);} 100%{-o-transform:rotate(359deg);}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg);} 100%{-ms-transform:rotate(359deg);}}@keyframes spin{0%{transform:rotate(0deg);} 100%{transform:rotate(359deg);}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);} +.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);} +.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);} +.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1);} +.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1);} +a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block;} +.icon-glass:before{content:"\f000";} +.icon-music:before{content:"\f001";} +.icon-search:before{content:"\f002";} +.icon-envelope-alt:before{content:"\f003";} +.icon-heart:before{content:"\f004";} +.icon-star:before{content:"\f005";} +.icon-star-empty:before{content:"\f006";} +.icon-user:before{content:"\f007";} +.icon-film:before{content:"\f008";} +.icon-th-large:before{content:"\f009";} +.icon-th:before{content:"\f00a";} +.icon-th-list:before{content:"\f00b";} +.icon-ok:before{content:"\f00c";} +.icon-remove:before{content:"\f00d";} +.icon-zoom-in:before{content:"\f00e";} +.icon-zoom-out:before{content:"\f010";} +.icon-power-off:before,.icon-off:before{content:"\f011";} +.icon-signal:before{content:"\f012";} +.icon-gear:before,.icon-cog:before{content:"\f013";} +.icon-trash:before{content:"\f014";} +.icon-home:before{content:"\f015";} +.icon-file-alt:before{content:"\f016";} +.icon-time:before{content:"\f017";} +.icon-road:before{content:"\f018";} +.icon-download-alt:before{content:"\f019";} +.icon-download:before{content:"\f01a";} +.icon-upload:before{content:"\f01b";} +.icon-inbox:before{content:"\f01c";} +.icon-play-circle:before{content:"\f01d";} +.icon-rotate-right:before,.icon-repeat:before{content:"\f01e";} +.icon-refresh:before{content:"\f021";} +.icon-list-alt:before{content:"\f022";} +.icon-lock:before{content:"\f023";} +.icon-flag:before{content:"\f024";} +.icon-headphones:before{content:"\f025";} +.icon-volume-off:before{content:"\f026";} +.icon-volume-down:before{content:"\f027";} +.icon-volume-up:before{content:"\f028";} +.icon-qrcode:before{content:"\f029";} +.icon-barcode:before{content:"\f02a";} +.icon-tag:before{content:"\f02b";} +.icon-tags:before{content:"\f02c";} +.icon-book:before{content:"\f02d";} +.icon-bookmark:before{content:"\f02e";} +.icon-print:before{content:"\f02f";} +.icon-camera:before{content:"\f030";} +.icon-font:before{content:"\f031";} +.icon-bold:before{content:"\f032";} +.icon-italic:before{content:"\f033";} +.icon-text-height:before{content:"\f034";} +.icon-text-width:before{content:"\f035";} +.icon-align-left:before{content:"\f036";} +.icon-align-center:before{content:"\f037";} +.icon-align-right:before{content:"\f038";} +.icon-align-justify:before{content:"\f039";} +.icon-list:before{content:"\f03a";} +.icon-indent-left:before{content:"\f03b";} +.icon-indent-right:before{content:"\f03c";} +.icon-facetime-video:before{content:"\f03d";} +.icon-picture:before{content:"\f03e";} +.icon-pencil:before{content:"\f040";} +.icon-map-marker:before{content:"\f041";} +.icon-adjust:before{content:"\f042";} +.icon-tint:before{content:"\f043";} +.icon-edit:before{content:"\f044";} +.icon-share:before{content:"\f045";} +.icon-check:before{content:"\f046";} +.icon-move:before{content:"\f047";} +.icon-step-backward:before{content:"\f048";} +.icon-fast-backward:before{content:"\f049";} +.icon-backward:before{content:"\f04a";} +.icon-play:before{content:"\f04b";} +.icon-pause:before{content:"\f04c";} +.icon-stop:before{content:"\f04d";} +.icon-forward:before{content:"\f04e";} +.icon-fast-forward:before{content:"\f050";} +.icon-step-forward:before{content:"\f051";} +.icon-eject:before{content:"\f052";} +.icon-chevron-left:before{content:"\f053";} +.icon-chevron-right:before{content:"\f054";} +.icon-plus-sign:before{content:"\f055";} +.icon-minus-sign:before{content:"\f056";} +.icon-remove-sign:before{content:"\f057";} +.icon-ok-sign:before{content:"\f058";} +.icon-question-sign:before{content:"\f059";} +.icon-info-sign:before{content:"\f05a";} +.icon-screenshot:before{content:"\f05b";} +.icon-remove-circle:before{content:"\f05c";} +.icon-ok-circle:before{content:"\f05d";} +.icon-ban-circle:before{content:"\f05e";} +.icon-arrow-left:before{content:"\f060";} +.icon-arrow-right:before{content:"\f061";} +.icon-arrow-up:before{content:"\f062";} +.icon-arrow-down:before{content:"\f063";} +.icon-mail-forward:before,.icon-share-alt:before{content:"\f064";} +.icon-resize-full:before{content:"\f065";} +.icon-resize-small:before{content:"\f066";} +.icon-plus:before{content:"\f067";} +.icon-minus:before{content:"\f068";} +.icon-asterisk:before{content:"\f069";} +.icon-exclamation-sign:before{content:"\f06a";} +.icon-gift:before{content:"\f06b";} +.icon-leaf:before{content:"\f06c";} +.icon-fire:before{content:"\f06d";} +.icon-eye-open:before{content:"\f06e";} +.icon-eye-close:before{content:"\f070";} +.icon-warning-sign:before{content:"\f071";} +.icon-plane:before{content:"\f072";} +.icon-calendar:before{content:"\f073";} +.icon-random:before{content:"\f074";} +.icon-comment:before{content:"\f075";} +.icon-magnet:before{content:"\f076";} +.icon-chevron-up:before{content:"\f077";} +.icon-chevron-down:before{content:"\f078";} +.icon-retweet:before{content:"\f079";} +.icon-shopping-cart:before{content:"\f07a";} +.icon-folder-close:before{content:"\f07b";} +.icon-folder-open:before{content:"\f07c";} +.icon-resize-vertical:before{content:"\f07d";} +.icon-resize-horizontal:before{content:"\f07e";} +.icon-bar-chart:before{content:"\f080";} +.icon-twitter-sign:before{content:"\f081";} +.icon-facebook-sign:before{content:"\f082";} +.icon-camera-retro:before{content:"\f083";} +.icon-key:before{content:"\f084";} +.icon-gears:before,.icon-cogs:before{content:"\f085";} +.icon-comments:before{content:"\f086";} +.icon-thumbs-up-alt:before{content:"\f087";} +.icon-thumbs-down-alt:before{content:"\f088";} +.icon-star-half:before{content:"\f089";} +.icon-heart-empty:before{content:"\f08a";} +.icon-signout:before{content:"\f08b";} +.icon-linkedin-sign:before{content:"\f08c";} +.icon-pushpin:before{content:"\f08d";} +.icon-external-link:before{content:"\f08e";} +.icon-signin:before{content:"\f090";} +.icon-trophy:before{content:"\f091";} +.icon-github-sign:before{content:"\f092";} +.icon-upload-alt:before{content:"\f093";} +.icon-lemon:before{content:"\f094";} +.icon-phone:before{content:"\f095";} +.icon-unchecked:before,.icon-check-empty:before{content:"\f096";} +.icon-bookmark-empty:before{content:"\f097";} +.icon-phone-sign:before{content:"\f098";} +.icon-twitter:before{content:"\f099";} +.icon-facebook:before{content:"\f09a";} +.icon-github:before{content:"\f09b";} +.icon-unlock:before{content:"\f09c";} +.icon-credit-card:before{content:"\f09d";} +.icon-rss:before{content:"\f09e";} +.icon-hdd:before{content:"\f0a0";} +.icon-bullhorn:before{content:"\f0a1";} +.icon-bell:before{content:"\f0a2";} +.icon-certificate:before{content:"\f0a3";} +.icon-hand-right:before{content:"\f0a4";} +.icon-hand-left:before{content:"\f0a5";} +.icon-hand-up:before{content:"\f0a6";} +.icon-hand-down:before{content:"\f0a7";} +.icon-circle-arrow-left:before{content:"\f0a8";} +.icon-circle-arrow-right:before{content:"\f0a9";} +.icon-circle-arrow-up:before{content:"\f0aa";} +.icon-circle-arrow-down:before{content:"\f0ab";} +.icon-globe:before{content:"\f0ac";} +.icon-wrench:before{content:"\f0ad";} +.icon-tasks:before{content:"\f0ae";} +.icon-filter:before{content:"\f0b0";} +.icon-briefcase:before{content:"\f0b1";} +.icon-fullscreen:before{content:"\f0b2";} +.icon-group:before{content:"\f0c0";} +.icon-link:before{content:"\f0c1";} +.icon-cloud:before{content:"\f0c2";} +.icon-beaker:before{content:"\f0c3";} +.icon-cut:before{content:"\f0c4";} +.icon-copy:before{content:"\f0c5";} +.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6";} +.icon-save:before{content:"\f0c7";} +.icon-sign-blank:before{content:"\f0c8";} +.icon-reorder:before{content:"\f0c9";} +.icon-list-ul:before{content:"\f0ca";} +.icon-list-ol:before{content:"\f0cb";} +.icon-strikethrough:before{content:"\f0cc";} +.icon-underline:before{content:"\f0cd";} +.icon-table:before{content:"\f0ce";} +.icon-magic:before{content:"\f0d0";} +.icon-truck:before{content:"\f0d1";} +.icon-pinterest:before{content:"\f0d2";} +.icon-pinterest-sign:before{content:"\f0d3";} +.icon-google-plus-sign:before{content:"\f0d4";} +.icon-google-plus:before{content:"\f0d5";} +.icon-money:before{content:"\f0d6";} +.icon-caret-down:before{content:"\f0d7";} +.icon-caret-up:before{content:"\f0d8";} +.icon-caret-left:before{content:"\f0d9";} +.icon-caret-right:before{content:"\f0da";} +.icon-columns:before{content:"\f0db";} +.icon-sort:before{content:"\f0dc";} +.icon-sort-down:before{content:"\f0dd";} +.icon-sort-up:before{content:"\f0de";} +.icon-envelope:before{content:"\f0e0";} +.icon-linkedin:before{content:"\f0e1";} +.icon-rotate-left:before,.icon-undo:before{content:"\f0e2";} +.icon-legal:before{content:"\f0e3";} +.icon-dashboard:before{content:"\f0e4";} +.icon-comment-alt:before{content:"\f0e5";} +.icon-comments-alt:before{content:"\f0e6";} +.icon-bolt:before{content:"\f0e7";} +.icon-sitemap:before{content:"\f0e8";} +.icon-umbrella:before{content:"\f0e9";} +.icon-paste:before{content:"\f0ea";} +.icon-lightbulb:before{content:"\f0eb";} +.icon-exchange:before{content:"\f0ec";} +.icon-cloud-download:before{content:"\f0ed";} +.icon-cloud-upload:before{content:"\f0ee";} +.icon-user-md:before{content:"\f0f0";} +.icon-stethoscope:before{content:"\f0f1";} +.icon-suitcase:before{content:"\f0f2";} +.icon-bell-alt:before{content:"\f0f3";} +.icon-coffee:before{content:"\f0f4";} +.icon-food:before{content:"\f0f5";} +.icon-file-text-alt:before{content:"\f0f6";} +.icon-building:before{content:"\f0f7";} +.icon-hospital:before{content:"\f0f8";} +.icon-ambulance:before{content:"\f0f9";} +.icon-medkit:before{content:"\f0fa";} +.icon-fighter-jet:before{content:"\f0fb";} +.icon-beer:before{content:"\f0fc";} +.icon-h-sign:before{content:"\f0fd";} +.icon-plus-sign-alt:before{content:"\f0fe";} +.icon-double-angle-left:before{content:"\f100";} +.icon-double-angle-right:before{content:"\f101";} +.icon-double-angle-up:before{content:"\f102";} +.icon-double-angle-down:before{content:"\f103";} +.icon-angle-left:before{content:"\f104";} +.icon-angle-right:before{content:"\f105";} +.icon-angle-up:before{content:"\f106";} +.icon-angle-down:before{content:"\f107";} +.icon-desktop:before{content:"\f108";} +.icon-laptop:before{content:"\f109";} +.icon-tablet:before{content:"\f10a";} +.icon-mobile-phone:before{content:"\f10b";} +.icon-circle-blank:before{content:"\f10c";} +.icon-quote-left:before{content:"\f10d";} +.icon-quote-right:before{content:"\f10e";} +.icon-spinner:before{content:"\f110";} +.icon-circle:before{content:"\f111";} +.icon-mail-reply:before,.icon-reply:before{content:"\f112";} +.icon-github-alt:before{content:"\f113";} +.icon-folder-close-alt:before{content:"\f114";} +.icon-folder-open-alt:before{content:"\f115";} +.icon-expand-alt:before{content:"\f116";} +.icon-collapse-alt:before{content:"\f117";} +.icon-smile:before{content:"\f118";} +.icon-frown:before{content:"\f119";} +.icon-meh:before{content:"\f11a";} +.icon-gamepad:before{content:"\f11b";} +.icon-keyboard:before{content:"\f11c";} +.icon-flag-alt:before{content:"\f11d";} +.icon-flag-checkered:before{content:"\f11e";} +.icon-terminal:before{content:"\f120";} +.icon-code:before{content:"\f121";} +.icon-reply-all:before{content:"\f122";} +.icon-mail-reply-all:before{content:"\f122";} +.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123";} +.icon-location-arrow:before{content:"\f124";} +.icon-crop:before{content:"\f125";} +.icon-code-fork:before{content:"\f126";} +.icon-unlink:before{content:"\f127";} +.icon-question:before{content:"\f128";} +.icon-info:before{content:"\f129";} +.icon-exclamation:before{content:"\f12a";} +.icon-superscript:before{content:"\f12b";} +.icon-subscript:before{content:"\f12c";} +.icon-eraser:before{content:"\f12d";} +.icon-puzzle-piece:before{content:"\f12e";} +.icon-microphone:before{content:"\f130";} +.icon-microphone-off:before{content:"\f131";} +.icon-shield:before{content:"\f132";} +.icon-calendar-empty:before{content:"\f133";} +.icon-fire-extinguisher:before{content:"\f134";} +.icon-rocket:before{content:"\f135";} +.icon-maxcdn:before{content:"\f136";} +.icon-chevron-sign-left:before{content:"\f137";} +.icon-chevron-sign-right:before{content:"\f138";} +.icon-chevron-sign-up:before{content:"\f139";} +.icon-chevron-sign-down:before{content:"\f13a";} +.icon-html5:before{content:"\f13b";} +.icon-css3:before{content:"\f13c";} +.icon-anchor:before{content:"\f13d";} +.icon-unlock-alt:before{content:"\f13e";} +.icon-bullseye:before{content:"\f140";} +.icon-ellipsis-horizontal:before{content:"\f141";} +.icon-ellipsis-vertical:before{content:"\f142";} +.icon-rss-sign:before{content:"\f143";} +.icon-play-sign:before{content:"\f144";} +.icon-ticket:before{content:"\f145";} +.icon-minus-sign-alt:before{content:"\f146";} +.icon-check-minus:before{content:"\f147";} +.icon-level-up:before{content:"\f148";} +.icon-level-down:before{content:"\f149";} +.icon-check-sign:before{content:"\f14a";} +.icon-edit-sign:before{content:"\f14b";} +.icon-external-link-sign:before{content:"\f14c";} +.icon-share-sign:before{content:"\f14d";} +.icon-compass:before{content:"\f14e";} +.icon-collapse:before{content:"\f150";} +.icon-collapse-top:before{content:"\f151";} +.icon-expand:before{content:"\f152";} +.icon-euro:before,.icon-eur:before{content:"\f153";} +.icon-gbp:before{content:"\f154";} +.icon-dollar:before,.icon-usd:before{content:"\f155";} +.icon-rupee:before,.icon-inr:before{content:"\f156";} +.icon-yen:before,.icon-jpy:before{content:"\f157";} +.icon-renminbi:before,.icon-cny:before{content:"\f158";} +.icon-won:before,.icon-krw:before{content:"\f159";} +.icon-bitcoin:before,.icon-btc:before{content:"\f15a";} +.icon-file:before{content:"\f15b";} +.icon-file-text:before{content:"\f15c";} +.icon-sort-by-alphabet:before{content:"\f15d";} +.icon-sort-by-alphabet-alt:before{content:"\f15e";} +.icon-sort-by-attributes:before{content:"\f160";} +.icon-sort-by-attributes-alt:before{content:"\f161";} +.icon-sort-by-order:before{content:"\f162";} +.icon-sort-by-order-alt:before{content:"\f163";} +.icon-thumbs-up:before{content:"\f164";} +.icon-thumbs-down:before{content:"\f165";} +.icon-youtube-sign:before{content:"\f166";} +.icon-youtube:before{content:"\f167";} +.icon-xing:before{content:"\f168";} +.icon-xing-sign:before{content:"\f169";} +.icon-youtube-play:before{content:"\f16a";} +.icon-dropbox:before{content:"\f16b";} +.icon-stackexchange:before{content:"\f16c";} +.icon-instagram:before{content:"\f16d";} +.icon-flickr:before{content:"\f16e";} +.icon-adn:before{content:"\f170";} +.icon-bitbucket:before{content:"\f171";} +.icon-bitbucket-sign:before{content:"\f172";} +.icon-tumblr:before{content:"\f173";} +.icon-tumblr-sign:before{content:"\f174";} +.icon-long-arrow-down:before{content:"\f175";} +.icon-long-arrow-up:before{content:"\f176";} +.icon-long-arrow-left:before{content:"\f177";} +.icon-long-arrow-right:before{content:"\f178";} +.icon-apple:before{content:"\f179";} +.icon-windows:before{content:"\f17a";} +.icon-android:before{content:"\f17b";} +.icon-linux:before{content:"\f17c";} +.icon-dribbble:before{content:"\f17d";} +.icon-skype:before{content:"\f17e";} +.icon-foursquare:before{content:"\f180";} +.icon-trello:before{content:"\f181";} +.icon-female:before{content:"\f182";} +.icon-male:before{content:"\f183";} +.icon-gittip:before{content:"\f184";} +.icon-sun:before{content:"\f185";} +.icon-moon:before{content:"\f186";} +.icon-archive:before{content:"\f187";} +.icon-bug:before{content:"\f188";} +.icon-vk:before{content:"\f189";} +.icon-weibo:before{content:"\f18a";} +.icon-renren:before{content:"\f18b";} diff --git a/docs/css/jquery.iviewer.css b/docs/css/jquery.iviewer.css new file mode 100644 index 0000000..11f5f09 --- /dev/null +++ b/docs/css/jquery.iviewer.css @@ -0,0 +1,65 @@ +.viewer { + -ms-touch-action: none; +} + +.iviewer_common { + position:absolute; + bottom:10px; + border: 1px solid #000; + height: 28px; + z-index: 5000; +} + +.iviewer_cursor { + cursor: url(../images/iviewer/hand.cur) 6 8, pointer; +} + +.iviewer_drag_cursor { + cursor: url(../images/iviewer/grab.cur) 6 8, pointer; +} + +.iviewer_button { + width: 28px; + cursor: pointer; + background-position: center center; + background-repeat: no-repeat; +} + +.iviewer_zoom_in { + left: 20px; + background: url(../images/iviewer/iviewer.zoom_in.png); +} + +.iviewer_zoom_out { + left: 55px; + background: url(../images/iviewer/iviewer.zoom_out.png); +} + +.iviewer_zoom_zero { + left: 90px; + background: url(../images/iviewer/iviewer.zoom_zero.png); +} + +.iviewer_zoom_fit { + left: 125px; + background: url(../images/iviewer/iviewer.zoom_fit.png); +} + +.iviewer_zoom_status { + left: 160px; + font: 1em/28px Sans; + color: #000; + background-color: #fff; + text-align: center; + width: 60px; +} + +.iviewer_rotate_left { + left: 227px; + background: #fff url(../images/iviewer/iviewer.rotate_left.png) center center no-repeat; +} + +.iviewer_rotate_right { + left: 262px; + background: #fff url(../images/iviewer/iviewer.rotate_right.png) center center no-repeat; +} diff --git a/docs/css/phpdocumentor-clean-icons/Read Me.txt b/docs/css/phpdocumentor-clean-icons/Read Me.txt new file mode 100644 index 0000000..9d2b9e5 --- /dev/null +++ b/docs/css/phpdocumentor-clean-icons/Read Me.txt @@ -0,0 +1,3 @@ +To modify your generated font, use the *dev.svg* file, located in the *fonts* folder in this package. You can import this dev.svg file to the IcoMoon app. All the tags (class names) and the Unicode points of your glyphs are saved in this file. + +See the documentation for more info on how to use this package: http://icomoon.io/#docs/font-face \ No newline at end of file diff --git a/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.dev.svg b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.dev.svg new file mode 100644 index 0000000..8b543c1 --- /dev/null +++ b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.dev.svg @@ -0,0 +1,17 @@ + + + + +This is a custom SVG font generated by IcoMoon. + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.eot b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.eot new file mode 100644 index 0000000..ef43f26 Binary files /dev/null and b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.eot differ diff --git a/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.svg b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.svg new file mode 100644 index 0000000..cf0548b --- /dev/null +++ b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.svg @@ -0,0 +1,17 @@ + + + + +This is a custom SVG font generated by IcoMoon. + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.ttf b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.ttf new file mode 100644 index 0000000..1937c7a Binary files /dev/null and b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.ttf differ diff --git a/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.woff b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.woff new file mode 100644 index 0000000..32fe30d Binary files /dev/null and b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.woff differ diff --git a/docs/css/phpdocumentor-clean-icons/lte-ie7.js b/docs/css/phpdocumentor-clean-icons/lte-ie7.js new file mode 100644 index 0000000..881c16e --- /dev/null +++ b/docs/css/phpdocumentor-clean-icons/lte-ie7.js @@ -0,0 +1,30 @@ +/* Load this script using conditional IE comments if you need to support IE 7 and IE 6. */ + +window.onload = function() { + function addIcon(el, entity) { + var html = el.innerHTML; + el.innerHTML = '' + entity + '' + html; + } + var icons = { + 'icon-trait' : '', + 'icon-interface' : '', + 'icon-class' : '' + }, + els = document.getElementsByTagName('*'), + i, attr, html, c, el; + for (i = 0; ; i += 1) { + el = els[i]; + if(!el) { + break; + } + attr = el.getAttribute('data-icon'); + if (attr) { + addIcon(el, attr); + } + c = el.className; + c = c.match(/icon-[^\s'"]+/); + if (c && icons[c[0]]) { + addIcon(el, icons[c[0]]); + } + } +}; \ No newline at end of file diff --git a/docs/css/phpdocumentor-clean-icons/style.css b/docs/css/phpdocumentor-clean-icons/style.css new file mode 100644 index 0000000..f069ec1 --- /dev/null +++ b/docs/css/phpdocumentor-clean-icons/style.css @@ -0,0 +1,48 @@ +@font-face { + font-family: 'phpdocumentor-clean-icons'; + src:url('fonts/phpdocumentor-clean-icons.eot'); + src:url('fonts/phpdocumentor-clean-icons.eot?#iefix') format('embedded-opentype'), + url('fonts/phpdocumentor-clean-icons.woff') format('woff'), + url('fonts/phpdocumentor-clean-icons.ttf') format('truetype'), + url('fonts/phpdocumentor-clean-icons.svg#phpdocumentor-clean-icons') format('svg'); + font-weight: normal; + font-style: normal; +} + +/* Use the following CSS code if you want to use data attributes for inserting your icons */ +[data-icon]:before { + font-family: 'phpdocumentor-clean-icons'; + content: attr(data-icon); + speak: none; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; +} + +/* Use the following CSS code if you want to have a class per icon */ +/* +Instead of a list of all class selectors, +you can use the generic selector below, but it's slower: +[class*="icon-"] { +*/ +.icon-trait, .icon-interface, .icon-class { + font-family: 'phpdocumentor-clean-icons'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; +} +.icon-trait:before { + content: "\e000"; +} +.icon-interface:before { + content: "\e001"; +} +.icon-class:before { + content: "\e002"; +} diff --git a/docs/css/prism.css b/docs/css/prism.css new file mode 100644 index 0000000..17876af --- /dev/null +++ b/docs/css/prism.css @@ -0,0 +1,204 @@ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ + +code[class*="language-"], +pre[class*="language-"] { + color: black; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', monospace; + direction: ltr; + text-align: left; + white-space: pre; + word-spacing: normal; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #a67f59; + background: hsla(0,0%,100%,.5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + + +.token.regex, +.token.important { + color: #e90; +} + +.token.important { + font-weight: bold; +} + +.token.entity { + cursor: help; +} +pre[data-line] { + position: relative; + padding: 1em 0 1em 3em; +} + +.line-highlight { + position: absolute; + left: 0; + right: 0; + padding: inherit 0; + margin-top: 1em; /* Same as .prism’s padding-top */ + + background: hsla(24, 20%, 50%,.08); + background: -moz-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0)); + background: -webkit-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0)); + background: -o-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0)); + background: linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0)); + + pointer-events: none; + + line-height: inherit; + white-space: pre; +} + + .line-highlight:before, + .line-highlight[data-end]:after { + content: attr(data-start); + position: absolute; + top: .4em; + left: .6em; + min-width: 1em; + padding: 0 .5em; + background-color: hsla(24, 20%, 50%,.4); + color: hsl(24, 20%, 95%); + font: bold 65%/1.5 sans-serif; + text-align: center; + vertical-align: .3em; + border-radius: 999px; + text-shadow: none; + box-shadow: 0 1px white; + } + + .line-highlight[data-end]:after { + content: attr(data-end); + top: auto; + bottom: .4em; + } +pre.line-numbers { + position: relative; + padding-left: 3.8em; + counter-reset: linenumber; +} + +pre.line-numbers > code { + position: relative; +} + +.line-numbers .line-numbers-rows { + position: absolute; + pointer-events: none; + top: 0; + font-size: 100%; + left: -3.8em; + width: 3em; /* works for line-numbers below 1000 lines */ + letter-spacing: -1px; + border-right: 1px solid #999; + + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + +} + + .line-numbers-rows > span { + pointer-events: none; + display: block; + counter-increment: linenumber; + } + + .line-numbers-rows > span:before { + content: counter(linenumber); + color: #999; + display: block; + padding-right: 0.8em; + text-align: right; + } diff --git a/docs/css/template.css b/docs/css/template.css new file mode 100644 index 0000000..9edf5ee --- /dev/null +++ b/docs/css/template.css @@ -0,0 +1,429 @@ +@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro); +@import url('phpdocumentor-clean-icons/style.css'); + +body { + padding-top: 40px; + background-color: #333333; +} + +a { + color: #6495ed; +} +a.anchor { + height: 40px; + margin-top: -40px; + display: block; +} + +h1, h2, h3, h4, h5, h6, .brand { + font-family: 'Source Sans Pro', sans-serif; + font-weight: normal; + letter-spacing: 0.05em; +} + +h2, h3, .detailsbar h1 { + overflow: hidden; + white-space: nowrap; + margin: 30px 0 20px 0; +} + +h2:after, h3:after, .detailsbar h1:after { + content: ''; + display: inline-block; + vertical-align: middle; + width: 100%; + height: 2px; + margin-left: 1em; + background: silver; +} + +h3 { + margin: 10px 0 20px 0; +} + +h4 { + margin: 20px 0 10px 0; + color: gray; + font-size: 18.5px; +} + +h3.public, h3.protected, h3.private { + padding-left: 10px; + text-overflow: ellipsis; +} + +.table tr:first-of-type th, .table tr:first-of-type td { + border-top: none; +} +.detailsbar { + color: #eeeeee; + background-color: #333333; + font-size: 0.9em; + overflow: hidden; + border-left: 2px solid gray; +} + +.detailsbar h1 { + font-size: 1.5em; + margin-bottom: 20px; + margin-top: 0; +} + +.detailsbar h2 { + font-size: 1.2em; + margin: 0; + padding: 0; +} + +.detailsbar h1:after { + background: gray; +} +.detailsbar h2:after, .detailsbar h3:after { + background: transparent; +} + +.detailsbar dt { + font-variant: small-caps; + text-transform: lowercase; + font-size: 1.1em; + letter-spacing: 0.1em; + color: silver; +} + +.hierarchy div:nth-of-type(2) { margin-left: 11px; } +.hierarchy div:nth-of-type(3) { margin-left: 22px; } +.hierarchy div:nth-of-type(4) { margin-left: 33px; } +.hierarchy div:nth-of-type(5) { margin-left: 44px; } +.hierarchy div:nth-of-type(6) { margin-left: 55px; } +.hierarchy div:nth-of-type(7) { margin-left: 66px; } +.hierarchy div:nth-of-type(8) { margin-left: 77px; } +.hierarchy div:nth-of-type(9) { margin-left: 88px; } +.hierarchy div:before { + content: "\f0da"; + font-family: FontAwesome; + margin-right: 5px; +} + +.row-fluid { + background-color: white; + overflow: hidden; +} + +footer.row-fluid, footer.row-fluid * { + background-color: #333333; + color: white; +} + +footer.row-fluid { + border-top: 2px dashed #555; + margin-top: 2px; +} + +.footer-sections .span4 { + border: 2px solid #555; + text-align: center; + border-radius: 10px; + margin-top: 70px; + margin-bottom: 20px; + background: #373737; +} + +.footer-sections .span4 h1 { + background: transparent; + margin-top: -30px; + margin-bottom: 20px; + font-size: 5em; +} + +.footer-sections .span4 h1 * { + background: transparent; +} + +.footer-sections .span4 div { + border-bottom-right-radius: 6px; + border-bottom-left-radius: 6px; + padding: 10px; + min-height: 40px; +} +.footer-sections .span4 div, .footer-sections .span4 div * { + background-color: #555; +} +.footer-sections .span4 ul { + text-align: left; + list-style: none; + margin: 0; + padding: 0; +} + +.content { + background-color: white; + padding-right: 20px; +} + +.content nav { + text-align: center; + border-bottom: 1px solid silver; + margin: 5px 0 20px 0; + padding-bottom: 5px; +} + +.content > h1 { + padding-bottom: 15px; +} + +.content > h1 small { + display: block; + padding-bottom: 8px; + font-size: 0.6em; +} + +.deprecated { + text-decoration: line-through; +} + +.method { + margin-bottom: 20px; +} + +.method .signature .argument { + color: maroon; + font-weight: bold; +} + +.class #summary section.row-fluid { + overflow: hidden +} + +.class #summary .heading { + font-weight: bold; + text-align: center; +} + +.class #summary section .span4 { + padding: 3px; + overflow: hidden; + margin-bottom: -9999px; + padding-bottom: 9999px; + white-space: nowrap; + text-overflow: ellipsis; + border-left: 5px solid transparent; +} + +.class #summary section.public .span4:first-of-type:before, +.class #summary section.public .span6:first-of-type:before, +h3.public:before { + font-family: FontAwesome; + content: "\f046"; + color: green; + display: inline-block; + width: 1.2em; +} + +.class #summary section .span4:first-of-type, +.class #summary section .span6:first-of-type { + padding-left: 21px; +} +.class #summary section .span4:first-of-type:before, +.class #summary section .span6:first-of-type:before { + margin-left: -21px; +} +.class #summary section.protected .span4:first-of-type:before, +.class #summary section.protected .span6:first-of-type:before, +h3.protected:before { + font-family: FontAwesome; + content: "\f132"; + color: orange; + display: inline-block; + width: 1.2em; +} + +.class #summary section.private .span4:first-of-type:before, +.class #summary section.private .span6:first-of-type:before, +h3.private:before { + font-family: FontAwesome; + content: "\f023"; + color: red; + display: inline-block; + width: 1.2em; +} + +.class #summary section em { + font-size: 0.9em; + color: silver; +} +.class #summary .inherited { + color: gray; + font-style: italic; +} + +.accordion-group { + border: none; +} + +.accordion { + margin-bottom: 0; +} + +.accordion a:hover { + text-decoration: none; + background: #333333; + color: #eeeeee; +} + +.accordion-heading .accordion-toggle:before { + content: "\f078"; + font-family: FontAwesome; + margin-right: 5px; +} + +.accordion-heading .accordion-toggle.collapsed:before { + content: "\f054"; +} +.accordion-heading .accordion-toggle { + float: left; + width: 16px; + height: 16px; + padding: 4px 2px 4px 12px; +} +.accordion-heading a { + display: block; + padding: 4px 12px; +} + +.accordion-inner a { + display: block; + padding: 4px 12px; +} + +.accordion-inner > ul a:before { + font-family: 'phpdocumentor-clean-icons'; + content: "\e001"; + margin-right: 5px; +} + +.accordion-inner li.class a:before { + content: "\e002"; +} + +.accordion-inner li.interface a:before { + content: "\e001"; +} + +.accordion-inner li.trait a:before { + content: "\e000"; +} + +.accordion-inner { + padding: 4px 0 4px 12px; +} +.accordion-inner ul { + list-style: none; + padding: 0; + margin: 0; +} + +.row-fluid .span2 { + width: 16.5%; +} + +body .modal { + width: 90%; /* desired relative width */ + left: 5%; /* (100%-width)/2 */ + /* place center */ + margin-left:auto; + margin-right:auto; +} + +.side-nav.nav-list li a { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +@media (min-width: 767px) { + .sidebar { + position: fixed; + top: 40px; + bottom: 0; + background-color: #f3f3f3; + left: 0; + border-right: 1px solid #e9e9e9; + overflow-y: scroll; + overflow-x: hidden; + padding-top: 10px; + } + + .sidebar::-webkit-scrollbar { + width: 10px; + } + + .sidebar::-webkit-scrollbar-thumb { + background: #cccccc; + background-clip: padding-box; + border: 3px solid #f3f3f3; + border-radius: 5px; + } + + .sidebar::-webkit-scrollbar-button { + display: none; + } + + .sidebar::-webkit-scrollbar-track { + background: #f3f3f3; + } +} + +@media (max-width: 979px) { + body { + padding-top: 0; + } +} + +@media (max-width: 767px) { + .class #summary .heading { + display: none; + } + + .detailsbar h1 { + display: none; + } + + body { + background-color: white; + } + + footer.row-fluid, footer.row-fluid * { + background-color: white; + } + + .footer-sections .span4 h1 { + color: #ccccd9; + margin-top: 0; + } + + .detailsbar { + background-color: white; + color: #333; + border: none; + } + + .row-fluid .span2 { + width: 100%; + } +} + +@media (min-width: 767px) { + .detailsbar { + min-height: 100%; + margin-bottom: -99999px; + padding-bottom: 99999px; + padding-left: 20px; + padding-top: 10px; + } +} + +@media (min-width: 1200px) { + .row-fluid .span2 { + width: 16.5%; + } +} diff --git a/docs/files/GetContents.html b/docs/files/GetContents.html new file mode 100644 index 0000000..f748d3a --- /dev/null +++ b/docs/files/GetContents.html @@ -0,0 +1,340 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

GetContents.php

+

Project requests.

+

Created by PhpStorm. +User: 713uk13m dev@nguyenanhung.com +Date: 10/7/18 +Time: 01:14

+ + + +

Classes

+ + + + + +
GetContentsClass GetContents
+
+ + +
+ + + +
+
+ + + + +
+ + + diff --git a/docs/files/GetContents.php.txt b/docs/files/GetContents.php.txt new file mode 100644 index 0000000..d5bef8e --- /dev/null +++ b/docs/files/GetContents.php.txt @@ -0,0 +1,820 @@ + + * Date: 10/7/18 + * Time: 01:14 + */ + +namespace nguyenanhung\MyRequests; +if (!interface_exists('nguyenanhung\MyRequests\Interfaces\ProjectInterface')) { + include_once __DIR__ . DIRECTORY_SEPARATOR . 'Interfaces' . DIRECTORY_SEPARATOR . 'ProjectInterface.php'; +} +if (!interface_exists('nguyenanhung\MyRequests\Interfaces\GetContentsInterface')) { + include_once __DIR__ . DIRECTORY_SEPARATOR . 'Interfaces' . DIRECTORY_SEPARATOR . 'GetContentsInterface.php'; +} + +use \Exception; +use nguyenanhung\MyDebug\Debug; +use nguyenanhung\MyRequests\Interfaces\ProjectInterface; +use nguyenanhung\MyRequests\Interfaces\GetContentsInterface; + +/** + * Class GetContents + * + * @package nguyenanhung\MyRequests + * @author 713uk13m + * @copyright 713uk13m + */ +class GetContents implements ProjectInterface, GetContentsInterface +{ + /** + * @var object \nguyenanhung\MyDebug\Debug Call to class + */ + private $debug; + + /** + * Set Debug Status + * + * @var bool + */ + public $debugStatus = FALSE; + + /** + * @var null Set level Debug: DEBUG, INFO, ERROR .... + */ + public $debugLevel = NULL; + + /** + * Set Logger Path to Save + * + * @var null|string + */ + public $debugLoggerPath = NULL; + + /** + * Set Logger Filename to Save + * + * @var string + */ + public $debugLoggerFilename; + + /** + * Response from Request + * + * @var array + */ + private $response; + + /** + * The base URL to be the target of the Request + * + * @var string + */ + private $url = ''; + + /** + * The method to use - GET, POST, PUT, DELETE + * + * @var string + */ + private $method = 'GET'; + + /** + * An array of headers to be added to the request + * + * @var array + */ + private $headers = []; + + /** + * An array of cookies (which are added to the headers) + * + * @var array + */ + private $cookies = []; + + /** + * An array of data to be added to the request. + * Where the method is POST these are sent as a form body, + * otherwise - they are added as a query string + * + * @var array + */ + private $data = []; + + /** + * An array of items to be sent as a query string + * + * @var array + */ + private $query_string = []; + + /** + * Should we track cookies? + * This does not stop the processing of cookies, it just allows for any + * received cookies to be sent in subsequent requests. Great for scraping. + * + * @var [type] + */ + private $trackCookies = TRUE; + + /** + * Is the request sent in XML and received in XML + * + * @var boolean + */ + private $isXML = FALSE; + + /** + * Is the request sent in JSON and received in JSON + * + * @var boolean + */ + private $isJson = FALSE; + /** + * Is the response decode Json to Object + * + * @var boolean + */ + private $isDecodeJson = FALSE; + + /** + * Should JSON be sent in JSON_PRETTY_PRINT? + * Only really useful for debugging. + * + * @var boolean + */ + private $isJsonPretty = FALSE; + + /** + * Should SSL peers be verified. + * You should have a good reason for turning this off. + * + * @var [type] + */ + private $verifyPeer = TRUE; + + /** + * How long to wait for a server to respond to a request. + * + * @var integer + */ + private $timeout = 60; + + /** + * Internal flag to track if the request is in SSL or not. + * + * @var boolean + */ + private $isSSL = FALSE; + + /** + * GetContents constructor. + * + * @param string $url Url Endpoint + * @param string $method The method to use - GET, POST, PUT, DELETE + * @param array $data An array of data to be added to the request.' + * Where the method is POST these are sent as a form body, + * otherwise - they are added as a query string + * @param array $headers An array of headers to be added to the request + */ + public function __construct($url = '', $method = 'GET', $data = [], $headers = []) + { + /** + * Call to class Debug + */ + $this->debug = new Debug(); + if (empty($this->debugLoggerPath)) { + $this->debugStatus = FALSE; + } + $this->debug->setDebugStatus($this->debugStatus); + $this->debug->setGlobalLoggerLevel($this->debugLevel); + $this->debug->setLoggerPath($this->debugLoggerPath); + $this->debug->setLoggerSubPath(__CLASS__); + if (empty($this->debugLoggerFilename)) { + $this->debugLoggerFilename = 'Log-' . date('Y-m-d') . '.log'; + } + $this->debug->setLoggerFilename($this->debugLoggerFilename); + $this->debug->debug(__FUNCTION__, '/-------------------------> Begin Logger - File Get Contents Requests - Version: ' . self::VERSION . ' - Last Modified: ' . self::LAST_MODIFIED . ' <-------------------------\\'); + if ($url) { + /** + * If $url is not Empty, call method setURL + */ + $this->setURL($url); + } + $this->setMethod($method); + $this->setData($data); + $this->setHeaders($headers); + } + + /** + * GetContents destructor. + */ + public function __destruct() + { + $this->debug->debug(__FUNCTION__, '/-------------------------> End Logger - File Get Contents Requests - Version: ' . self::VERSION . ' - Last Modified: ' . self::LAST_MODIFIED . ' <-------------------------\\'); + } + + /** + * Function getVersion + * + * @author: 713uk13m + * @time : 10/7/18 01:46 + * + * @return mixed|string Current Project version + */ + public function getVersion() + { + return self::VERSION; + } + + /** + * Function getContent - Get Body Content from Request + * + * @author: 713uk13m + * @time : 10/7/18 02:08 + * + * @return array|mixed|string Return Response content if exists + * Full Response content if $this->response['content'] not exists + * Exception Error Message if Exception Error + * Null if Not + */ + public function getContent() + { + try { + if ($this->response) { + if (isset($this->response['content'])) { + return $this->response['content']; + } else { + return $this->response; + } + } + } + catch (Exception $e) { + $message = 'Error File: ' . $e->getFile() . ' - Line: ' . $e->getLine() . ' - Code: ' . $e->getCode() . ' - Message: ' . $e->getMessage(); + $this->debug->error(__FUNCTION__, $message); + + return $message; + } + + return NULL; + } + + /** + * Function getError - Get Error Code and Message + * + * @author: 713uk13m + * @time : 10/9/18 09:33 + * + * @return array|mixed|string Return Response error if exists + * Full Response if $this->response['error'] not exists + * Exception Error Message if Exception Error + * Null if Not + */ + public function getError() + { + try { + if ($this->response) { + if (isset($this->response['error'])) { + return $this->response['error']; + } else { + return $this->response; + } + } + } + catch (Exception $e) { + $message = 'Error File: ' . $e->getFile() . ' - Line: ' . $e->getLine() . ' - Code: ' . $e->getCode() . ' - Message: ' . $e->getMessage(); + $this->debug->error(__FUNCTION__, $message); + + return $message; + } + + return NULL; + } + + /** + * Function get Response of Request + * + * @author: 713uk13m + * @time : 10/7/18 01:50 + * + * @return array|null Array if Exists, Null if Not Response + */ + public function response() + { + if ($this->response) { + return $this->response; + } + + return NULL; + } + + /** + * Let's go to Request + * + * @author: 713uk13m + * @time : 10/7/18 02:12 + * + * @return array|null|string Response from Request if Exists + * Exception Error Message if Exception Error + * Null if Not + */ + public function sendRequest() + { + try { + if (mb_strlen($this->url) >= 9) { + $response = $this->useFileGetContents(); + $this->response = $response; + + return $response; + } + } + catch (Exception $e) { + $message = "Error: " . __CLASS__ . ": Please make sure to set a URL to fetch - Line: " . $e->getLine() . ' - Msg: ' . $e->getMessage(); + $this->debug->error(__FUNCTION__, $message); + + return $message; + } + + return NULL; + } + + /** + * Function useFileGetContents + * Use file_get_contents to perform the request + * + * @return array The server response array + * + * @author: 713uk13m + * @time : 10/7/18 02:19 + */ + public function useFileGetContents() + { + $return = []; + $options = [ + 'http' => [ + 'method' => $this->method, + 'timeout' => $this->timeout + ] + ]; + + if ($this->isSSL) { + // use SSL + $options['ssl'] = [ + 'verify_peer' => $this->verifyPeer, + 'verify_peer_name' => $this->verifyPeer + ]; + } + + $headers = $this->getHeaderArray(); + + if (count($headers) > 0) { + $options['http']['header'] = implode("\r\n", $headers); + } + + if ($this->method == 'POST') { + $post = $this->getPostBody(); + if (mb_strlen($post) > 0) { + $options['http']['content'] = $post; + } + $return['post'] = $post; + } + $context = stream_context_create($options); + $query_string = $this->getQueryString(); + $this->debug->debug(__FUNCTION__, 'Options into Request: ', $options); + $this->debug->debug(__FUNCTION__, 'Data Query String into Request: ', $query_string); + $this->debug->debug(__FUNCTION__, 'Endpoint URL into Request: ', $this->url); + try { + $response = file_get_contents($this->url . $query_string, FALSE, $context); + $responseHeaders = $http_response_header; + $return['headers'] = $this->parseReturnHeaders($responseHeaders); + $return['url'] = $this->url . $query_string; + if ($response) { + $return['content'] = iconv('UTF-8', 'UTF-8//IGNORE', utf8_encode($response)); + if ($this->isJson === TRUE && $this->isDecodeJson === TRUE) { + $responseJson = json_decode(trim($return['content'])); + if (json_last_error() == JSON_ERROR_NONE) { + $return['content'] = $responseJson; + $this->debug->debug(__FUNCTION__, 'Set Response is Json: ', $return['content']); + } + } + } + } + + catch (Exception $e) { + $return['error'] = [ + 'code' => 500, + 'message' => 'Could not file_get_contents.', + 'extended' => $e + ]; + $this->debug->error(__FUNCTION__, 'Could not file_get_contents: ', $return['error']); + } + + if (isset($return['headers']['reponse_code'])) { + $responseType = substr($return['headers']['reponse_code'], 0, 1); + if ($responseType != '2') { + $return['error'] = [ + 'code' => $return['headers']['reponse_code'], + 'message' => 'Server returned an error.' + ]; + $this->debug->error(__FUNCTION__, 'Could not file_get_contents: ', $return['error']); + } + } + + $cookies = []; + foreach ($http_response_header as $hdr) { + if (preg_match('/^Set-Cookie:\s*([^;]+)/i', $hdr, $matches)) { + parse_str($matches[1], $tmp); + $cookies += $tmp; + } + } + + if ($this->trackCookies) { + $cookies = array_merge($this->cookies, $cookies); + $this->cookies = $cookies; + } + $return['cookies'] = $cookies; + $this->debug->info(__FUNCTION__, 'Final Result from Server: ', $return); + + return $return; + } + + /** + * Generate the complete header array + * Merges the supplied (if any) headers with those needed by the + * request. + * + * @return array An array of headers + * + * @author: 713uk13m + * @time : 10/7/18 02:19 + */ + public function getHeaderArray() + { + $headerArray = (count($this->headers) > 0 ? $this->headers : []); + if ($this->isJson) { + $headerArray[] = 'Accept: application/json'; + } + if ($this->isXML) { + $headerArray[] = 'Accept: text/xml'; + } + if ($this->method == 'POST' && count($this->data) > 0 && $this->isJson) { + $headerArray[] = 'Content-type: application/json'; + } elseif ($this->method == 'POST' && count($this->data) > 0 && $this->isXML) { + $headerArray[] = 'Content-type: text/xml'; + } elseif ($this->method == 'POST' && count($this->data) > 0) { + $headerArray[] = 'Content-type: application/x-www-form-urlencoded'; + } + if (count($this->cookies) > 0) { + $cookies = ''; + foreach ($this->cookies as $key => $value) { + if (mb_strlen($cookies) > 0) { + $cookies .= '; '; + } + $cookies .= urlencode($key) . '=' . urlencode($value); + } + $headerArray[] = 'Cookie: ' . $cookies; + } + + return $headerArray; + } + + /** + * Get the post body - either JSON encoded or ready to be sent as a form post + * + * @author: 713uk13m + * @time : 10/7/18 02:19 + * + * @return array|false|string Data to be sent Request + */ + public function getPostBody() + { + $output = ''; + if ($this->isJson) { + $jsonPretty = ($this->isJsonPretty ? JSON_PRETTY_PRINT : NULL); + if (count($this->data) > 0) { + $output = json_encode($this->data, $jsonPretty); + } + } elseif ($this->isXML) { + $output = $this->data; + } elseif (count($this->data) > 0) { + $output = http_build_query($this->data); + } + + return $output; + } + + /** + * Get the query string by merging any supplied string + * with that of the generated components. + * + * @return string The query string + * + * @author: 713uk13m + * @time : 10/7/18 02:19 + */ + public function getQueryString() + { + $query_string = ''; + if (count($this->query_string) > 0) { + $query_string .= http_build_query($this->query_string); + } + if ($this->method != 'POST') { + if (count($this->data) > 0) { + $query_string .= http_build_query($this->data); + } + } + if (mb_strlen($query_string) > 0) { + $query_string = (mb_strpos($this->url, '?') ? '&' : '?') . $query_string; + } + + return $query_string; + } + + /** + * Set the target URL + * Must include http:// or https:// + * + * @author: 713uk13m + * @time : 10/7/18 02:10 + * + * @param string $url + * + * @return string + */ + public function setURL($url = '') + { + try { + if (mb_strlen($url) > 0) { + if (substr($url, 0, 8) == 'https://') { + $this->isSSL = TRUE; + $this->debug->debug(__FUNCTION__, 'Set SSL: ' . $this->isSSL); + } elseif (substr($url, 0, 7) == 'http://') { + $this->isSSL = TRUE; + $this->debug->debug(__FUNCTION__, 'Set SSL: ' . $this->isSSL); + } + } + $this->url = $url; + } + catch (Exception $e) { + $this->url = NULL; + $message = "Error: " . __CLASS__ . ": Invalid protocol specified. URL must start with http:// or https:// - " . $e->getFile() . ' - Line: ' . $e->getLine() . ' - Code: ' . $e->getCode() . ' - Message: ' . $e->getMessage(); + $this->debug->error(__FUNCTION__, $message); + + return $message; + } + $this->debug->debug(__FUNCTION__, 'Endpoint URL to Request: ', $this->url); + + return $this; + } + + /** + * Set the HTTP method + * GET, HEAD, PUT, POST are valid + * + * @author: 713uk13m + * @time : 10/7/18 02:15 + * + * @param string $method Method to Request GET, HEAD, PUT, POST are valid + * + * @return $this|string Method + */ + public function setMethod($method = '') + { + if (mb_strlen($method) == 0) { + $this->debug->debug(__FUNCTION__, 'Set Default Method = GET if $method is does not exist'); + $method = 'GET'; + } else { + $method = strtoupper($method); + $validMethods = [ + 'GET', + 'HEAD', + 'PUT', + 'POST', + 'DELETE' + ]; + if (!in_array($method, $validMethods)) { + $message = "Error: " . __CLASS__ . ": The requested method (${method}) is not valid here"; + $this->debug->error(__FUNCTION__, $message); + + return $message; + } + } + $this->method = $method; + + return $this; + } + + /** + * Set Data contents + * Must be supplied as an array + * + * @param array $data The contents to be sent to the target URL + * + * @author: 713uk13m + * @time : 10/7/18 02:18 + */ + public function setData($data = []) + { + if (!is_array($data) && is_string($data)) { + $data = parse_str($data); + } + if (count($data) == 0) { + $this->data = []; + } else { + $this->data = $data; + } + $this->debug->debug(__FUNCTION__, 'Data into Request: ', $this->data); + } + + /** + * Set query string data + * Must be supplied as an array + * + * @param array $query_string The query string to be sent to the target URL + * + * @author: 713uk13m + * @time : 10/7/18 01:36 + */ + public function setQueryString($query_string = []) + { + if (!is_array($query_string) && is_string($query_string)) { + $query_string = parse_str($query_string); + } + if (count($query_string) == 0) { + $this->query_string = []; + } else { + $this->query_string = $query_string; + } + } + + /** + * Set any headers to be sent to the target URL + * Must be supplied as an array + * + * @param array $headers Header to Set + * + * @author: 713uk13m + * @time : 10/7/18 02:18 + */ + public function setHeaders($headers = []) + { + if (!is_array($headers)) { + $this->headers = []; + } else { + $this->headers = $headers; + } + } + + /** + * Set any cookies to be included in the headers + * Must be supplied as an array + * + * @param array $cookies The array of cookies to be sent + * + * @author: 713uk13m + * @time : 10/7/18 02:18 + */ + public function setCookies($cookies = []) + { + if (!is_array($cookies)) { + $this->cookies = []; + } else { + $this->cookies = $cookies; + $this->trackCookies = TRUE; + } + } + + /** + * Should cookies be tracked? + * + * @param boolean $value true to track cookies + * + * @author: 713uk13m + * @time : 10/7/18 02:18 + */ + public function setTrackCookies($value = FALSE) + { + if (!$value) { + $this->trackCookies = FALSE; + } else { + $this->trackCookies = TRUE; + } + } + + /** + * Function setXML - Is this transaction sending / expecting XML + * + * @author: 713uk13m + * @time : 10/7/18 01:38 + * + * @param bool $value true if XML is being used and is expected + */ + public function setXML($value = FALSE) + { + if (!$value) { + $this->isXML = FALSE; + } else { + $this->isXML = TRUE; + } + } + + /** + * Is this transaction sending / expecting JSON + * + * @param boolean $value true if JSON is being used and is expected + * + * @author: 713uk13m + * @time : 10/7/18 02:17 + */ + public function setJson($value = FALSE) + { + if (!$value) { + $this->isJson = FALSE; + } else { + $this->isJson = TRUE; + } + } + + /** + * Should JSON being sent be encoded in an easily readable format? + * Only useful for debugging + * + * @param boolean $value true for JSON_PRETTY_PRINT + * + * @author: 713uk13m + * @time : 10/7/18 02:17 + */ + public function setJsonPretty($value = FALSE) + { + if (!$value) { + $this->isJsonPretty = FALSE; + } else { + $this->isJsonPretty = TRUE; + } + } + + /** + * Should SSL peers be verified? + * + * @author: 713uk13m + * @time : 10/7/18 02:17 + * + * @param bool $value + */ + public function setVerifyPeer($value = FALSE) + { + if (!$value) { + $this->verifyPeer = FALSE; + } else { + $this->verifyPeer = TRUE; + } + } + + /** + * Function setTimeout + * + * @author : 713uk13m + * @time : 10/7/18 02:17 + * + * @param int $timeout + * + * @example 60 + */ + public function setTimeout($timeout = 20) + { + $this->timeout = $timeout; + } + + /** + * Parse HTTP response headers + * + * @author: 713uk13m + * @time : 10/7/18 02:17 + * + * @param array $headers + * + * @return array Header Response + */ + public function parseReturnHeaders($headers) + { + $head = []; + foreach ($headers as $k => $v) { + $t = explode(':', $v, 2); + if (isset($t[1])) { + $head[trim($t[0])] = trim($t[1]); + } else { + $head[] = $v; + if (preg_match("#HTTP/[0-9\.]+\s+([0-9]+)#", $v, $out)) { + $head['reponse_code'] = intval($out[1]); + } + } + } + $this->debug->debug(__FUNCTION__, 'Response Header: ', $head); + + return $head; + } +} + diff --git a/docs/files/Interfaces.GetContentsInterface.html b/docs/files/Interfaces.GetContentsInterface.html new file mode 100644 index 0000000..69dcb15 --- /dev/null +++ b/docs/files/Interfaces.GetContentsInterface.html @@ -0,0 +1,340 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

InterfacesGetContentsInterface.php

+

Project requests.

+

Created by PhpStorm. +User: 713uk13m dev@nguyenanhung.com +Date: 10/7/18 +Time: 01:45

+ + +

Interfaces

+ + + + + +
GetContentsInterfaceInterface GetContentsInterface
+ +
+ + +
+ + + +
+
+ + + + +
+ + + diff --git a/docs/files/Interfaces.ProjectInterface.html b/docs/files/Interfaces.ProjectInterface.html new file mode 100644 index 0000000..8c745c4 --- /dev/null +++ b/docs/files/Interfaces.ProjectInterface.html @@ -0,0 +1,340 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

InterfacesProjectInterface.php

+

Project requests +Created by PhpStorm.

+

User: 713uk13m dev@nguyenanhung.com +Date: 10/4/18 +Time: 14:55

+ + +

Interfaces

+ + + + + +
ProjectInterfaceInterface ProjectInterface
+ +
+ + +
+ + + +
+
+ + + + +
+ + + diff --git a/docs/files/Interfaces.SendRequestsInterface.html b/docs/files/Interfaces.SendRequestsInterface.html new file mode 100644 index 0000000..47917a3 --- /dev/null +++ b/docs/files/Interfaces.SendRequestsInterface.html @@ -0,0 +1,340 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

InterfacesSendRequestsInterface.php

+

Project requests.

+

Created by PhpStorm. +User: 713uk13m dev@nguyenanhung.com +Date: 10/7/18 +Time: 03:45

+ + +

Interfaces

+ + + + + +
SendRequestsInterfaceInterface SendRequestsInterface
+ +
+ + +
+ + + +
+
+ + + + +
+ + + diff --git a/docs/files/Interfaces.SoapRequestInterface.html b/docs/files/Interfaces.SoapRequestInterface.html new file mode 100644 index 0000000..b9b1e6f --- /dev/null +++ b/docs/files/Interfaces.SoapRequestInterface.html @@ -0,0 +1,340 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

InterfacesSoapRequestInterface.php

+

Project requests.

+

Created by PhpStorm. +User: 713uk13m dev@nguyenanhung.com +Date: 10/7/18 +Time: 02:27

+ + +

Interfaces

+ + + + + +
SoapRequestInterfaceInterface SoapRequestInterface
+ +
+ + +
+ + + +
+
+ + + + +
+ + + diff --git a/docs/files/Interfaces/GetContentsInterface.php.txt b/docs/files/Interfaces/GetContentsInterface.php.txt new file mode 100644 index 0000000..d1a1d79 --- /dev/null +++ b/docs/files/Interfaces/GetContentsInterface.php.txt @@ -0,0 +1,257 @@ + + * Date: 10/7/18 + * Time: 01:45 + */ + +namespace nguyenanhung\MyRequests\Interfaces; +/** + * Interface GetContentsInterface + * + * @package nguyenanhung\MyRequests\Interfaces + * @author 713uk13m + * @copyright 713uk13m + */ +interface GetContentsInterface +{ + /** + * Function getContent - Get Body Content from Request + * + * @author: 713uk13m + * @time : 10/7/18 02:08 + * + * @return array|mixed|string Return Response content if exists + * Full Response content if $this->response['content'] not exists + * Exception Error Message if Exception Error + * Null if Not + */ + public function getContent(); + + /** + * Function getError - Get Error Code and Message + * + * @author: 713uk13m + * @time : 10/9/18 09:33 + * + * @return array|mixed|string Return Response error if exists + * Full Response if $this->response['error'] not exists + * Exception Error Message if Exception Error + * Null if Not + */ + public function getError(); + + /** + * Function get Response of Request + * + * @author: 713uk13m + * @time : 10/7/18 01:50 + * + * @return array|null Array if Exists, Null if Not Response + */ + public function response(); + + /** + * Let's go to Request + * + * @author: 713uk13m + * @time : 10/7/18 02:12 + * + * @return array|null|string Response from Request if Exists + * Exception Error Message if Exception Error + * Null if Not + */ + public function sendRequest(); + + /** + * Function useFileGetContents + * Use file_get_contents to perform the request + * + * @return array The server response array + * + * @author: 713uk13m + * @time : 10/7/18 02:19 + */ + public function useFileGetContents(); + + /** + * Generate the complete header array + * Merges the supplied (if any) headers with those needed by the + * request. + * + * @return array An array of headers + * + * @author: 713uk13m + * @time : 10/7/18 02:19 + */ + public function getHeaderArray(); + + /** + * Get the post body - either JSON encoded or ready to be sent as a form post + * + * @author: 713uk13m + * @time : 10/7/18 02:19 + * + * @return array|false|string Data to be sent Request + */ + public function getPostBody(); + + /** + * Get the query string by merging any supplied string + * with that of the generated components. + * + * @return string The query string + * + * @author: 713uk13m + * @time : 10/7/18 02:19 + */ + public function getQueryString(); + + /** + * Set the target URL + * Must include http:// or https:// + * + * @author: 713uk13m + * @time : 10/7/18 02:10 + * + * @param string $url + * + * @return string + */ + public function setURL($url = ''); + + /** + * Set the HTTP method + * GET, HEAD, PUT, POST are valid + * + * @author: 713uk13m + * @time : 10/7/18 02:15 + * + * @param string $method Method to Request GET, HEAD, PUT, POST are valid + * + * @return $this|string Method + */ + public function setMethod($method = ''); + + /** + * Set Data contents + * Must be supplied as an array + * + * @param array $data The contents to be sent to the target URL + * + * @author: 713uk13m + * @time : 10/7/18 02:18 + */ + public function setData($data = []); + + /** + * Set query string data + * Must be supplied as an array + * + * @param array $query_string The query string to be sent to the target URL + * + * @author: 713uk13m + * @time : 10/7/18 01:36 + */ + public function setQueryString($query_string = []); + + /** + * Set any headers to be sent to the target URL + * Must be supplied as an array + * + * @param array $headers Header to Set + * + * @author: 713uk13m + * @time : 10/7/18 02:18 + */ + public function setHeaders($headers = []); + + /** + * Set any cookies to be included in the headers + * Must be supplied as an array + * + * @param array $cookies The array of cookies to be sent + * + * @author: 713uk13m + * @time : 10/7/18 02:18 + */ + public function setCookies($cookies = []); + + /** + * Should cookies be tracked? + * + * @param boolean $value true to track cookies + * + * @author: 713uk13m + * @time : 10/7/18 02:18 + */ + public function setTrackCookies($value = FALSE); + + /** + * Function setXML - Is this transaction sending / expecting XML + * + * @author: 713uk13m + * @time : 10/7/18 01:38 + * + * @param bool $value true if XML is being used and is expected + */ + public function setXML($value = FALSE); + + /** + * Is this transaction sending / expecting JSON + * + * @param boolean $value true if JSON is being used and is expected + * + * @author: 713uk13m + * @time : 10/7/18 02:17 + */ + public function setJson($value = FALSE); + + /** + * Should JSON being sent be encoded in an easily readable format? + * Only useful for debugging + * + * @param boolean $value true for JSON_PRETTY_PRINT + * + * @author: 713uk13m + * @time : 10/7/18 02:17 + */ + public function setJsonPretty($value = FALSE); + + /** + * Should SSL peers be verified? + * + * @author: 713uk13m + * @time : 10/7/18 02:17 + * + * @param bool $value + */ + public function setVerifyPeer($value = FALSE); + + /** + * Function setTimeout + * + * @author : 713uk13m + * @time : 10/7/18 02:17 + * + * @param int $timeout + * + * @example 60 + */ + public function setTimeout($timeout = 20); + + /** + * Parse HTTP response headers + * + * @author: 713uk13m + * @time : 10/7/18 02:17 + * + * @param array $headers + * + * @return array Header Response + */ + public function parseReturnHeaders($headers); +} + diff --git a/docs/files/Interfaces/ProjectInterface.php.txt b/docs/files/Interfaces/ProjectInterface.php.txt new file mode 100644 index 0000000..c01db5d --- /dev/null +++ b/docs/files/Interfaces/ProjectInterface.php.txt @@ -0,0 +1,46 @@ + + * Date: 10/4/18 + * Time: 14:55 + */ + +namespace nguyenanhung\MyRequests\Interfaces; +/** + * Interface ProjectInterface + * + * @package nguyenanhung\MyRequests\Interfaces + * @author 713uk13m + * @copyright 713uk13m + */ +interface ProjectInterface +{ + const VERSION = '0.1.3.5'; + const LAST_MODIFIED = '2018-10-10'; + const MIN_PHP_VERSION = '5.3'; + const GET = 'GET'; + const HEAD = 'HEAD'; + const DELETE = 'DELETE'; + const TRACE = 'TRACE'; + const POST = 'POST'; + const PUT = 'PUT'; + const OPTIONS = 'OPTIONS'; + const PATCH = 'PATCH'; + const ENCODING = "utf-8"; + const MAX_REDIRECT = 10; + const RETURN_TRANSFER = 1; + const FOLLOW_LOCATION = TRUE; + + /** + * Function getVersion + * + * @author: 713uk13m + * @time : 10/7/18 01:05 + * + * @return mixed Current Project Version + */ + public function getVersion(); +} + diff --git a/docs/files/Interfaces/SendRequestsInterface.php.txt b/docs/files/Interfaces/SendRequestsInterface.php.txt new file mode 100644 index 0000000..546657f --- /dev/null +++ b/docs/files/Interfaces/SendRequestsInterface.php.txt @@ -0,0 +1,354 @@ + + * Date: 10/7/18 + * Time: 03:45 + */ + +namespace nguyenanhung\MyRequests\Interfaces; +/** + * Interface SendRequestsInterface + * + * @package nguyenanhung\MyRequests\Interfaces + * @author 713uk13m + * @copyright 713uk13m + */ +interface SendRequestsInterface +{ + /** + * Function setHeader + * + * @author: 713uk13m + * @time : 10/7/18 06:53 + * + * @param array $headers + * + * @return mixed + */ + public function setHeader($headers = []); + + /** + * Function setCookie + * + * @author: 713uk13m + * @time : 10/7/18 06:53 + * + * @param array $cookies + * + * @return mixed + */ + public function setCookie($cookies = []); + + /** + * Function setOptions + * + * @author: 713uk13m + * @time : 10/7/18 06:53 + * + * @param array $options + * + * @return mixed + */ + public function setOptions($options = []); + + /** + * Function setTimeout + * + * @author: 713uk13m + * @time : 10/7/18 06:53 + * + * @param int $timeout + * + * @return mixed + */ + public function setTimeout($timeout = 60); + + /** + * Function setUserAgent + * + * @author: 713uk13m + * @time : 10/7/18 06:53 + * + * @param string $userAgent + * + * @return mixed + */ + public function setUserAgent($userAgent = ''); + + /** + * Function setReferrer + * + * @author: 713uk13m + * @time : 10/7/18 06:53 + * + * @param string $referrer + * + * @return mixed + */ + public function setReferrer($referrer = ''); + + /** + * Function setUserBody + * + * @author: 713uk13m + * @time : 10/7/18 06:53 + * + * @param bool $isBody + * + * @return mixed + */ + public function setUserBody($isBody = FALSE); + + /** + * Function setRequestIsXml + * + * @author: 713uk13m + * @time : 10/7/18 06:53 + * + * @param bool $isXml + * + * @return mixed + */ + public function setRequestIsXml($isXml = FALSE); + + /** + * Function setRequestIsJson + * + * @author: 713uk13m + * @time : 10/7/18 06:53 + * + * @param bool $isJson + * + * @return mixed + */ + public function setRequestIsJson($isJson = FALSE); + + /** + * Function setRequestIsSSL + * + * @author: 713uk13m + * @time : 10/7/18 20:03 + * + * @param bool $isSSL + * + * @return mixed + */ + public function setRequestIsSSL($isSSL = FALSE); + + /** + * Function setErrorResponseIsData + * + * @author: 713uk13m + * @time : 10/7/18 23:04 + * + * @param bool $errorResponseIsData Array Data if Response is Null if Error + * + * @return mixed + */ + public function setErrorResponseIsData($errorResponseIsData = FALSE); + + /** + * Function setErrorResponseIsNull + * + * @author: 713uk13m + * @time : 10/7/18 23:04 + * + * @param bool $errorResponseIsNull TRUE if Response is Null if Error + * + * @return mixed + */ + public function setErrorResponseIsNull($errorResponseIsNull = FALSE); + + /** + * Function setBasicAuthentication + * + * @author: 713uk13m + * @time : 10/7/18 06:53 + * + * @param string $username Username to be Authentication + * @param string $password Password to be Authentication + */ + public function setBasicAuthentication($username = '', $password = ''); + + /** + * Function setDigestAuthentication + * + * @author: 713uk13m + * @time : 10/7/18 06:53 + * + * @param string $username Username to be Authentication + * @param string $password Password to be Authentication + */ + public function setDigestAuthentication($username = '', $password = ''); + + /** + * Function getHttpCode + * + * @author: 713uk13m + * @time : 10/7/18 23:15 + * + * @return mixed + */ + public function getHttpCode(); + + /** + * Function getHttpMessage + * + * @author: 713uk13m + * @time : 10/7/18 23:15 + * + * @return mixed + */ + public function getHttpMessage(); + + /** + * Function getErrorCode + * + * @author: 713uk13m + * @time : 10/7/18 23:15 + * + * @return mixed + */ + public function getErrorCode(); + + /** + * Function getRequestsHeader + * + * @author: 713uk13m + * @time : 10/7/18 23:15 + * + * @return mixed + */ + public function getRequestsHeader(); + + /** + * Function getResponseHeader + * + * @author: 713uk13m + * @time : 10/7/18 23:15 + * + * @return mixed + */ + public function getResponseHeader(); + + /** + * Function pyRequest + * + * @author: 713uk13m + * @time : 10/7/18 06:54 + * + * @param string $url + * @param array $data + * @param string $method + * + * @return mixed + */ + public function pyRequest($url = '', $data = [], $method = 'GET'); + + /** + * Function guzzlePhpRequest + * + * @author: 713uk13m + * @time : 10/7/18 06:54 + * + * @param string $url + * @param array $data + * @param string $method + * + * @return mixed + */ + public function guzzlePhpRequest($url = '', $data = [], $method = 'GET'); + + /** + * Function curlRequest + * Send Request use \Curl\Curl class - https://packagist.org/packages/curl/curl + * + * @author: 713uk13m + * @time : 10/7/18 05:54 + * + * @param string $url URL Endpoint to be Request + * @param array $data Data Content to be Request + * @param string $method Set Method to be Request + * + * @return array|null|string Response content from server, + * null of Exception Message if Error + * @see https://packagist.org/packages/curl/curl + */ + public function curlRequest($url = '', $data = [], $method = 'GET'); + /******************************** Handle Send Request ********************************/ + /** + * Function sendRequest + * Handle send Request use Multi Method + * + * @author: 713uk13m + * @time : 10/7/18 07:07 + * + * + * @param string $url URL Endpoint to be Request + * @param array $data Data Content to be Request + * @param string $method Set Method to be Request + * + * @return array|null|\Requests_Response|string Response content from server + * null of Exception Message if Error + */ + public function sendRequest($url = '', $data = [], $method = 'GET'); + + /** + * Function xmlRequest + * Send XML Request to Server + * + * @author: 713uk13m + * @time : 10/7/18 07:11 + * + * @param string $url URL Endpoint to be Request + * @param string $data Data Content to be Request + * @param int $timeout Timeout Request + * + * @return array|null|string Response from Server + */ + public function xmlRequest($url = '', $data = '', $timeout = 60); + + /** + * Function jsonRequest + * Send JSON Request to Server + * + * @author: 713uk13m + * @time : 10/7/18 07:13 + * + * @param string $url URL Endpoint to be Request + * @param array $data Data Content to be Request + * @param int $timeout Timeout Request + * + * @return array|null|string Response from Server + */ + public function jsonRequest($url = '', $data = [], $timeout = 60); + /******************************** Utils Function ********************************/ + /** + * Function xmlGetValue + * + * @author: 713uk13m + * @time : 10/7/18 06:57 + * + * @param string $xml XML String + * @param string $openTag OpenTag to find + * @param string $closeTag CloseTag to find + * + * @return bool|string Result from Tag, Empty string if not + */ + public function xmlGetValue($xml = '', $openTag = '', $closeTag = ''); + + /** + * Function parseXmlDataRequest + * + * @author: 713uk13m + * @time : 10/7/18 06:57 + * + * @param string $resultXml XML String to Parse + * + * @return false|string + */ + public function parseXmlDataRequest($resultXml = ''); +} + diff --git a/docs/files/Interfaces/SoapRequestInterface.php.txt b/docs/files/Interfaces/SoapRequestInterface.php.txt new file mode 100644 index 0000000..2f7b190 --- /dev/null +++ b/docs/files/Interfaces/SoapRequestInterface.php.txt @@ -0,0 +1,103 @@ + + * Date: 10/7/18 + * Time: 02:27 + */ + +namespace nguyenanhung\MyRequests\Interfaces; +/** + * Interface SoapRequestInterface + * + * @package nguyenanhung\MyRequests\Interfaces + * @author 713uk13m + * @copyright 713uk13m + */ +interface SoapRequestInterface +{ + /** + * Default SOAP Encoding + */ + const SOAP_ENCODING = 'utf-8'; + /** + * Default XML Encoding + */ + const XML_ENCODING = 'utf-8'; + /** + * Default Decode UTF8 Status + */ + const DECODE_UTF8 = FALSE; + + /** + * Function setEndpoint + * + * @author: 713uk13m + * @time : 10/7/18 02:26 + * + * @param string $endpoint Link to Url Endpoint + */ + public function setEndpoint($endpoint = ''); + + /** + * Function setData + * + * @author: 713uk13m + * @time : 10/7/18 02:26 + * + * @param array $data Data to SOAP Request, call + */ + public function setData($data = []); + + /** + * Function setCallFunction + * + * @author: 713uk13m + * @time : 10/7/18 02:36 + * + * @param string $callFunction Require Set Function to call SOAP endpoint + */ + public function setCallFunction($callFunction = ''); + + /** + * Function setFieldResult + * Nếu input giá trì vào đây, result sẽ map trực tiếp đến mã này + * nếu không có sẽ trả error luôn + * + * @author: 713uk13m + * @time : 10/7/18 02:37 + * + * @param string $fieldResult If input fieldResult, result return $response[$fieldResult] f + * from Response SOAP Service + * Return Error Code if not find $fieldResult from Response + */ + public function setFieldResult($fieldResult = ''); + + /** + * Function setResponseIsJson + * Return Response is Json if value = true + * + * @author: 713uk13m + * @time : 10/8/18 19:00 + * + * @param string $responseIsJson + * + * @return mixed|void if set value = TRUE, response is Json string + * @see clientRequestWsdl() method + */ + public function setResponseIsJson($responseIsJson = ''); + + /** + * Function clientRequestWsdl + * + * @author: 713uk13m + * @time : 10/7/18 02:41 + * + * @return array|null|string Call to SOAP request and received Response from Server + * Return is Json String if set setResponseIsJson(true) + * Return Null if class nguyenanhung\MyNuSOAP\nusoap_client is unavailable, class is not exists + */ + public function clientRequestWsdl(); +} + diff --git a/docs/files/MyRequests.html b/docs/files/MyRequests.html new file mode 100644 index 0000000..76c54d6 --- /dev/null +++ b/docs/files/MyRequests.html @@ -0,0 +1,340 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

MyRequests.php

+

Project requests.

+

Created by PhpStorm. +User: 713uk13m dev@nguyenanhung.com +Date: 10/7/18 +Time: 03:44

+ + + +

Classes

+ + + + + +
MyRequestsClass MyRequests
+
+ + +
+ + + +
+
+ + + + +
+ + + diff --git a/docs/files/MyRequests.php.txt b/docs/files/MyRequests.php.txt new file mode 100644 index 0000000..794ffc2 --- /dev/null +++ b/docs/files/MyRequests.php.txt @@ -0,0 +1,1183 @@ + + * Date: 10/7/18 + * Time: 03:44 + */ + +namespace nguyenanhung\MyRequests; +if (!interface_exists('nguyenanhung\MyRequests\Interfaces\ProjectInterface')) { + include_once __DIR__ . DIRECTORY_SEPARATOR . 'Interfaces' . DIRECTORY_SEPARATOR . 'ProjectInterface.php'; +} +if (!interface_exists('nguyenanhung\MyRequests\Interfaces\SendRequestsInterface')) { + include_once __DIR__ . DIRECTORY_SEPARATOR . 'Interfaces' . DIRECTORY_SEPARATOR . 'SendRequestsInterface.php'; +} + +use nguyenanhung\MyDebug\Debug; +use nguyenanhung\MyRequests\Interfaces\ProjectInterface; +use nguyenanhung\MyRequests\Interfaces\SendRequestsInterface; +use Requests; +use GuzzleHttp\Client; +use Curl\Curl; + +/** + * Class MyRequests + * + * @package nguyenanhung\MyRequests + * @author 713uk13m + * @copyright 713uk13m + */ +class MyRequests implements ProjectInterface, SendRequestsInterface +{ + /** + * An array of headers to be added to the request + * + * @var array + */ + private $headers = []; + + /** + * An array of cookies (which are added to the headers) + * + * @var array + */ + private $cookies = []; + + /** + * An array of options to be added to the request + * + * @var array + */ + private $options = []; + + /** + * How long to wait for a server to respond to a request. + * + * @var integer + */ + private $timeout = 60; + + /** + * An array of userAgent to be added to the request + * + * @var array|string + */ + private $userAgent; + + /** + * An URL String referrer to be added to the request + * + * @var string + */ + private $referrer; + + /** + * An array of basicAuthentication: username, password to be added to the request + * + * @var array + */ + private $basicAuthentication; + + /** + * An array of digestAuthentication: username, password to be added to the request + * + * @var array + */ + private $digestAuthentication; + + /** + * Set data request is Body + * + * @var bool + */ + private $isBody; + + /** + * Set data request is Json + * + * @var bool + */ + private $isJson; + + /** + * Set data request is XML + * + * @var bool + */ + private $isXml; + + /** + * Set data request is SSL + * + * @var bool + */ + private $isSSL = FALSE; + + /** + * Set Response Error is Array Data + * + * @var bool + */ + private $errorResponseIsData = FALSE; + + /** + * Set Response Error is Null + * + * @var bool + */ + private $errorResponseIsNull = FALSE; + + /** + * Error Code from Request + * + * @var integer + */ + private $error_code; + + /** + * Request Header array if exists, Null if not + * + * @var array|null + */ + private $requests_header; + + /** + * Response Header array if exists, Null if not + * + * @var array|null + */ + private $response_header; + + /** + * Http Code from Request + * + * @var integer + */ + private $http_code; + + /** + * Http Message from Request + * + * @var string|null + */ + private $http_message; + + /** + * @var object \nguyenanhung\MyDebug\Debug Call to class + */ + private $debug; + + /** + * Set Debug Status + * + * @var bool + */ + public $debugStatus = FALSE; + + /** + * @var null Set level Debug: DEBUG, INFO, ERROR .... + */ + public $debugLevel = NULL; + + /** + * Set Logger Path to Save + * + * @var null|string + */ + public $debugLoggerPath = NULL; + + /** + * Set Logger Filename to Save + * + * @var string + */ + public $debugLoggerFilename; + + /** + * MyRequests constructor. + */ + public function __construct() + { + $this->debug = new Debug(); + if (empty($this->debugLoggerPath)) { + $this->debugStatus = FALSE; + } + $this->debug->setDebugStatus($this->debugStatus); + $this->debug->setGlobalLoggerLevel($this->debugLevel); + $this->debug->setLoggerPath($this->debugLoggerPath); + $this->debug->setLoggerSubPath(__CLASS__); + if (empty($this->debugLoggerFilename)) { + $this->debugLoggerFilename = 'Log-' . date('Y-m-d') . '.log'; + } + $this->debug->setLoggerFilename($this->debugLoggerFilename); + $this->debug->debug(__FUNCTION__, '/-------------------------> Begin Logger - My Requests - Version: ' . self::VERSION . ' - Last Modified: ' . self::LAST_MODIFIED . ' <-------------------------\\'); + } + + /** + * MyRequests destructor. + */ + public function __destruct() + { + $this->debug->debug(__FUNCTION__, '/-------------------------> End Logger - My Requests - Version: ' . self::VERSION . ' - Last Modified: ' . self::LAST_MODIFIED . ' <-------------------------\\'); + } + + /** + * Function getVersion + * + * @author: 713uk13m + * @time : 10/7/18 01:46 + * + * @return mixed|string Current Project version + */ + public function getVersion() + { + return self::VERSION; + } + + /** + * Function setHeaders + * + * @author: 713uk13m + * @time : 10/7/18 04:04 + * + * @param array $headers + */ + public function setHeader($headers = []) + { + $this->headers = $headers; + $this->debug->info(__FUNCTION__, 'setHeaders: ', $this->headers); + } + + /** + * Function setCookie + * + * @author: 713uk13m + * @time : 10/7/18 05:28 + * + * @param array $cookies + */ + public function setCookie($cookies = []) + { + $this->cookies = $cookies; + $this->debug->info(__FUNCTION__, 'setCookie: ', $this->cookies); + } + + /** + * Function setOptions + * + * @author: 713uk13m + * @time : 10/7/18 04:04 + * + * @param array $options + */ + public function setOptions($options = []) + { + $this->options = $options; + $this->debug->info(__FUNCTION__, 'setOptions: ', $this->options); + } + + /** + * Function setTimeout + * + * @author: 713uk13m + * @time : 10/7/18 04:05 + * + * @param int $timeout + */ + public function setTimeout($timeout = 60) + { + $this->timeout = $timeout; + $this->debug->info(__FUNCTION__, 'setTimeout: ', $this->timeout); + } + + /** + * Function setUserAgent + * + * @author: 713uk13m + * @time : 10/7/18 05:19 + * + * @param string $userAgent + */ + public function setUserAgent($userAgent = '') + { + $this->userAgent = $userAgent; + $this->debug->info(__FUNCTION__, 'setUserAgent: ', $this->userAgent); + } + + /** + * Function setReferrer + * + * @author: 713uk13m + * @time : 10/7/18 05:26 + * + * @param string $referrer + */ + public function setReferrer($referrer = '') + { + $this->referrer = $referrer; + $this->debug->info(__FUNCTION__, 'setReferrer: ', $this->referrer); + } + + /** + * Function setUserBody + * + * @author: 713uk13m + * @time : 10/7/18 06:25 + * + * @param bool $isBody + */ + public function setUserBody($isBody = FALSE) + { + $this->isBody = $isBody; + $this->debug->info(__FUNCTION__, 'setUserBody: ', $this->referrer); + } + + /** + * Function setRequestIsXml + * + * @author: 713uk13m + * @time : 10/7/18 05:17 + * + * @param bool $isXml + */ + public function setRequestIsXml($isXml = FALSE) + { + $this->isXml = $isXml; + if ($this->isXml === TRUE) { + $header['Accept'] = 'text/xml; charset=utf-8'; + $header['Content-type'] = 'text/xml; charset=utf-8'; + $this->headers = $header; + } + $this->debug->info(__FUNCTION__, 'setRequestIsXml: ', $this->isXml); + } + + /** + * Function setRequestIsJson + * + * @author: 713uk13m + * @time : 10/7/18 05:17 + * + * @param bool $isJson + */ + public function setRequestIsJson($isJson = FALSE) + { + $this->isJson = $isJson; + if ($this->isJson === TRUE) { + $header['Accept'] = 'application/json; charset=utf-8'; + $header['Content-type'] = 'application/json; charset=utf-8'; + $this->headers = $header; + } + $this->debug->info(__FUNCTION__, 'setRequestIsJson: ', $this->isJson); + } + + /** + * Function setRequestIsSSL + * + * @author: 713uk13m + * @time : 10/7/18 20:03 + * + * @param bool $isSSL + * + * @return mixed|void + */ + public function setRequestIsSSL($isSSL = FALSE) + { + $this->isSSL = $isSSL; + $this->debug->info(__FUNCTION__, 'setRequestIsSSL: ', $this->isSSL); + } + + /** + * Function setErrorResponseIsData + * = true -> sẽ trả về 1 response đầy đủ error code, error message + * + * @author: 713uk13m + * @time : 10/7/18 23:02 + * + * @param bool $errorResponseIsData Array Data if Response is Null if Error + */ + public function setErrorResponseIsData($errorResponseIsData = FALSE) + { + $this->errorResponseIsData = $errorResponseIsData; + $this->debug->info(__FUNCTION__, 'setErrorResponseIsData: ', $this->errorResponseIsData); + } + + /** + * Function setErrorResponseIsNull + * Trả về null nếu có lỗi request + * + * @author: 713uk13m + * @time : 10/7/18 23:04 + * + * @param bool $errorResponseIsNull TRUE if Response is Null if Error + * + * @return mixed|void + */ + public function setErrorResponseIsNull($errorResponseIsNull = FALSE) + { + $this->errorResponseIsNull = $errorResponseIsNull; + $this->debug->info(__FUNCTION__, 'setErrorResponseIsNull: ', $this->errorResponseIsNull); + } + + /** + * Function setBasicAuthentication + * + * @author: 713uk13m + * @time : 10/7/18 05:24 + * + * @param string $username Username to be Authentication + * @param string $password Password to be Authentication + */ + public function setBasicAuthentication($username = '', $password = '') + { + $this->basicAuthentication = [ + 'username' => $username, + 'password' => $password + ]; + $this->debug->info(__FUNCTION__, 'setBasicAuthentication: ', $this->basicAuthentication); + } + + /** + * Function setDigestAuthentication + * + * @author: 713uk13m + * @time : 10/7/18 06:28 + * + * @param string $username Username to be Authentication + * @param string $password Password to be Authentication + */ + public function setDigestAuthentication($username = '', $password = '') + { + $this->digestAuthentication = [$username, $password, 'digest']; + $this->debug->info(__FUNCTION__, 'setDigestAuthentication: ', $this->digestAuthentication); + } + + /** + * Function getHttpCode + * + * @author: 713uk13m + * @time : 10/7/18 23:16 + * + * @return mixed + */ + public function getHttpCode() + { + return $this->http_code; + } + + /** + * Function getHttpMessage + * + * @author: 713uk13m + * @time : 10/7/18 23:16 + * + * @return mixed + */ + public function getHttpMessage() + { + return $this->http_message; + } + + /** + * Function getErrorCode + * + * @author: 713uk13m + * @time : 10/7/18 23:16 + * + * @return mixed + */ + public function getErrorCode() + { + return $this->error_code; + } + + /** + * Function getRequestsHeader + * + * @author: 713uk13m + * @time : 10/7/18 23:16 + * + * @return mixed + */ + public function getRequestsHeader() + { + return $this->requests_header; + } + + /** + * Function getResponseHeader + * + * @author: 713uk13m + * @time : 10/7/18 23:16 + * + * @return mixed + */ + public function getResponseHeader() + { + return $this->response_header; + } + + /******************************** Các hàm Request ********************************/ + /** + * Function pyRequest + * Send Request use Requests - https://packagist.org/packages/rmccue/requests + * + * @author: 713uk13m + * @time : 10/7/18 05:07 + * + * @param string $url URL Endpoint to be Request + * @param array $data Data Content to be Request + * @param string $method Set Method to be Request + * + * @return null|\Requests_Response|string + * @see http://requests.ryanmccue.info/ + */ + public function pyRequest($url = '', $data = [], $method = 'GET') + { + $this->debug->debug(__FUNCTION__, '/------------> ' . __FUNCTION__ . ' <------------\\'); + $inputParams = [ + 'url' => $url, + 'data' => $data, + 'method' => $method, + ]; + $this->debug->info(__FUNCTION__, 'input Params: ', $inputParams); + $method = strtoupper($method); + if (version_compare(PHP_VERSION, '5.4', '<')) { + return $this->curlRequest($url, $data, $method); + } + if ((($method == self::GET || $method == self::HEAD || $method == self::TRACE || $method == self::DELETE) && !empty($data))) { + $endpoint = trim($url) . '?' . http_build_query($data); + } else { + $endpoint = trim($url); + } + $this->debug->debug(__FUNCTION__, 'cURL Endpoint: ', $endpoint); + if (!class_exists('Requests')) { + $this->debug->critical(__FUNCTION__, 'class Requests is not exits'); + $result = NULL; + } else { + try { + if ($method == self::GET) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::GET . ' request to ' . $url . ' with Data: ', $data); + $request = Requests::get($endpoint, $this->headers, $this->options); + } elseif ($method == self::HEAD) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::HEAD . ' request to ' . $url . ' with Data: ', $data); + $request = Requests::head($endpoint, $this->headers, $this->options); + } elseif ($method == self::DELETE) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::DELETE . ' request to ' . $url . ' with Data: ', $data); + $request = Requests::delete($endpoint, $this->headers, $this->options); + } elseif ($method == self::TRACE) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::TRACE . ' request to ' . $url . ' with Data: ', $data); + $request = Requests::trace($endpoint, $this->headers, $this->options); + } elseif ($method == self::POST) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::POST . ' request to ' . $url . ' with Data: ', $data); + $request = Requests::post($endpoint, $this->headers, $data, $this->options); + } elseif ($method == self::PUT) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::PUT . ' request to ' . $url . ' with Data: ', $data); + $request = Requests::put($endpoint, $this->headers, $data, $this->options); + } elseif ($method == self::OPTIONS) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::OPTIONS . ' request to ' . $url . ' with Data: ', $data); + $request = Requests::options($endpoint, $this->headers, $data, $this->options); + } elseif ($method == self::PATCH) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::PATCH . ' request to ' . $url . ' with Data: ', $data); + $request = Requests::patch($endpoint, $this->headers, $data, $this->options); + } else { + $this->debug->debug(__FUNCTION__, 'Make DEFAULT request to ' . $url . ' with Data: ', $data); + $request = Requests::get($endpoint, $this->headers, $this->options); + } + $this->debug->debug(__FUNCTION__, 'Response from Request: ', $request); + $this->requests_header = $this->headers; + $this->response_header = $request->headers; + $this->http_code = $request->status_code; + $http_error = in_array(floor($this->http_code / 100), [4, 5]); + $error_code = [ + 'status' => $request->status_code, + 'error' => $request->status_code, + 'error_code' => $request->status_code, + 'http_error' => [ + 'http_error' => $http_error, + 'http_status_code' => $request->status_code + ], + 'headers' => [ + 'request_headers' => $this->headers, + 'response_headers' => $request->headers, + ], + 'data' => [ + 'status' => $request->status_code, + 'status_code' => $request->status_code, + 'protocol_version' => $request->protocol_version, + 'headers' => $request->headers, + 'history' => $request->history, + 'cookies' => $request->cookies, + 'url' => $request->url, + 'number_redirect' => $request->redirects, + 'raw_data' => $request->raw, + 'response_body' => $request->body, + ] + ]; + $this->error_code = $error_code; + $this->debug->debug(__FUNCTION__, 'Http Code - ' . $this->http_code); + $this->debug->debug(__FUNCTION__, 'Requests Header - ' . json_encode($this->error_code)); + $this->debug->debug(__FUNCTION__, 'Requests Header - ' . json_encode($this->requests_header)); + $this->debug->debug(__FUNCTION__, 'Full Data Curl Message and Http Message - ' . json_encode($this->response_header)); + if ($request->success) { + $result = isset($request->body) ? $request->body : $request; + } else { + if ($this->errorResponseIsData === TRUE) { + $this->debug->debug(__FUNCTION__, 'Return Error Response is Array Data'); + $result = $error_code; + } elseif ($this->errorResponseIsNull === TRUE) { + $this->debug->debug(__FUNCTION__, 'Return Error Response is Null'); + $result = NULL; + } else { + $result = $request; + $this->debug->debug(__FUNCTION__, 'Return Error Response is Message: ' . json_encode($result)); + } + } + } + catch (\Exception $e) { + $result = "Error File: " . $e->getFile() . ' - Line: ' . $e->getLine() . ' Code: ' . $e->getCode() . ' - Message: ' . $e->getMessage(); + $this->debug->error(__FUNCTION__, 'Exception Error - ' . $result); + } + } + $this->debug->info(__FUNCTION__, 'Final Result from Request: ', $result); + + return $result; + } + + /** + * Function guzzlePhpRequest + * Send Request use GuzzleHttp\Client - https://packagist.org/packages/guzzlehttp/guzzle + * + * @author: 713uk13m + * @time : 10/7/18 06:45 + * + * @param string $url URL Endpoint to be Request + * @param array $data Data Content to be Request + * @param string $method Set Method to be Request + * + * @return \GuzzleHttp\Stream\StreamInterface|null|string + * @see https://packagist.org/packages/guzzlehttp/guzzle + */ + public function guzzlePhpRequest($url = '', $data = [], $method = 'GET') + { + $this->debug->debug(__FUNCTION__, '/------------> ' . __FUNCTION__ . ' <------------\\'); + $inputParams = [ + 'url' => $url, + 'data' => $data, + 'method' => $method, + ]; + $this->debug->info(__FUNCTION__, 'input Params: ', $inputParams); + $method = strtoupper($method); + $endpoint = trim($url); + $this->debug->debug(__FUNCTION__, 'cURL Endpoint: ', $endpoint); + if (version_compare(PHP_VERSION, '5.4', '<')) { + return $this->curlRequest($url, $data, $method); + } + if (!class_exists('GuzzleHttp\Client')) { + $this->debug->critical(__FUNCTION__, 'class GuzzleHttp\Client is not exits'); + $result = NULL; + } else { + try { + $client = new Client(); + // Create options + $options = [ + 'timeout' => $this->timeout, + 'connect_timeout' => $this->timeout, + ]; + if (is_array($this->headers) && count($this->headers) > 0) { + $options = [ + 'headers' => $this->headers + ]; + } + if (is_array($this->cookies) && count($this->cookies) > 0) { + $options = [ + 'cookies' => $this->cookies + ]; + } + if ($this->basicAuthentication) { + $options['auth'] = $this->basicAuthentication; + } + if ($this->digestAuthentication) { + $options['auth'] = $this->digestAuthentication; + } + if (($this->isBody == TRUE) && ($method == self::POST || $method == self::PUT || $method == self::PATCH || $method == self::OPTIONS)) { + if ($this->isJson) { + $options['body'] = json_encode($data); + } else { + $options['body'] = $data; + } + } else { + $options['query'] = $data; + } + $this->setOptions($options); + if ($method == self::GET) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::GET . ' request to ' . $url . ' with Data: ', $data); + $request = $client->get($endpoint, $this->options); + } elseif ($method == self::HEAD) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::HEAD . ' request to ' . $url . ' with Data: ', $data); + $request = $client->head($endpoint, $this->options); + } elseif ($method == self::DELETE) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::DELETE . ' request to ' . $url . ' with Data: ', $data); + $request = $client->delete($endpoint, $this->options); + } elseif ($method == self::POST) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::POST . ' request to ' . $url . ' with Data: ', $data); + $request = $client->post($endpoint, $this->options); + } elseif ($method == self::PUT) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::PUT . ' request to ' . $url . ' with Data: ', $data); + $request = $client->put($endpoint, $this->options); + } elseif ($method == self::OPTIONS) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::OPTIONS . ' request to ' . $url . ' with Data: ', $data); + $request = $client->options($endpoint, $this->options); + } elseif ($method == self::PATCH) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::PATCH . ' request to ' . $url . ' with Data: ', $data); + $request = $client->patch($endpoint, $this->options); + } else { + $this->debug->debug(__FUNCTION__, 'Make DEFAULT request to ' . $url . ' with Data: ', $data); + $request = $client->get($endpoint, $this->options); + } + // Debug + $status_code = $request->getStatusCode(); + $status_message = $request->getReasonPhrase(); + $http_error = in_array(floor($this->http_code / 100), [4, 5]); + $error_code = [ + 'status' => $status_code, + 'error' => $status_code, + 'error_code' => $status_code, + 'error_message' => $status_message, + 'http_error' => [ + 'http_error' => $http_error, + 'http_status_code' => $status_code, + 'http_error_message' => $status_message + ], + 'headers' => [ + 'request_headers' => $this->headers, + 'response_headers' => $request->getHeaders(), + ], + 'data' => [ + 'status' => $request->getStatusCode(), + 'error_code' => $request->getStatusCode(), + 'error_message' => $request->getReasonPhrase(), + 'reasonPhrase' => $request->getReasonPhrase(), + 'effectiveUrl' => $request->getEffectiveUrl(), + 'protocolVersion' => $request->getProtocolVersion(), + 'headers' => $request->getHeaders(), + 'requests_url' => $endpoint, + 'requests_options' => $this->options, + 'response_body' => $request->getBody() + ] + ]; + $this->http_code = $status_code; + $this->http_message = $request->getReasonPhrase(); + $this->error_code = $error_code; + $this->debug->debug(__FUNCTION__, 'Full Data Curl Message and Http Message: ', $error_code); + if ($http_error) { + if ($this->errorResponseIsData === TRUE) { + $this->debug->debug(__FUNCTION__, 'Return Error Response is Array Data'); + $result = $error_code; + } elseif ($this->errorResponseIsNull === TRUE) { + $this->debug->debug(__FUNCTION__, 'Return Error Response is Null'); + $result = NULL; + } else { + $result = $request; + $this->debug->debug(__FUNCTION__, 'Return Error Response is Message: ' . $result); + } + } else { + $result = $request->getBody(); + } + } + catch (\Exception $e) { + $result = "Error File: " . $e->getFile() . ' - Line: ' . $e->getLine() . ' Code: ' . $e->getCode() . ' - Message: ' . $e->getMessage(); + $this->debug->error(__FUNCTION__, 'Exception Error - ' . $result); + } + } + $this->debug->info(__FUNCTION__, 'Final Result from Request: ', $result); + + return $result; + } + + /** + * Function curlRequest + * Send Request use \Curl\Curl class - https://packagist.org/packages/curl/curl + * + * @author: 713uk13m + * @time : 10/7/18 05:54 + * + * @param string $url URL Endpoint to be Request + * @param array $data Data Content to be Request + * @param string $method Set Method to be Request + * + * @return array|null|string Response content from server, + * null of Exception Message if Error + * @see https://packagist.org/packages/curl/curl + */ + public function curlRequest($url = '', $data = [], $method = 'GET') + { + $this->debug->debug(__FUNCTION__, '/------------> ' . __FUNCTION__ . ' <------------\\'); + $inputParams = [ + 'url' => $url, + 'data' => $data, + 'method' => $method, + ]; + $this->debug->info(__FUNCTION__, 'input Params: ', $inputParams); + $method = strtoupper($method); + if (!class_exists('Requests')) { + $this->debug->critical(__FUNCTION__, 'class \Curl\Curl() is not exits'); + $response = NULL; + } else { + try { + $curl = new Curl(); + if ($this->isJson) { + $data = json_encode($data); + $this->debug->info(__FUNCTION__, 'isJson Data: ', $data); + } + if ($this->userAgent) { + $curl->setUserAgent($this->userAgent); + } + if (is_array($this->headers) && count($this->headers) > 0) { + foreach ($this->headers as $key => $value) { + $curl->setCookie($key, $value); + } + } + if (is_array($this->cookies) && count($this->cookies) > 0) { + foreach ($this->cookies as $key => $value) { + $curl->setHeader($key, $value); + } + } + if ($this->basicAuthentication) { + $curl->setBasicAuthentication($this->basicAuthentication['username'], $this->basicAuthentication['password']); + } + if ($this->referrer) { + $curl->setReferer($this->referrer); + } + $curl->setOpt(CURLOPT_RETURNTRANSFER, self::RETURN_TRANSFER); + $curl->setOpt(CURLOPT_SSL_VERIFYPEER, $this->isSSL); + $curl->setOpt(CURLOPT_SSL_VERIFYHOST, $this->isSSL); + $curl->setOpt(CURLOPT_ENCODING, self::ENCODING); + $curl->setOpt(CURLOPT_MAXREDIRS, self::MAX_REDIRECT); + $curl->setOpt(CURLOPT_TIMEOUT, $this->timeout); + $curl->setOpt(CURLOPT_CONNECTTIMEOUT, $this->timeout); + $curl->setOpt(CURLOPT_FOLLOWLOCATION, self::FOLLOW_LOCATION); + // Request + if (self::POST == $method) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::POST . ' request to ' . $url . ' with Data: ', $data); + $curl->post($url, $data); + } elseif (self::PUT == $method) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::PUT . ' request to ' . $url . ' with Data: ', $data); + $curl->put($url, $data); + } elseif (self::PATCH == $method) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::PATCH . ' request to ' . $url . ' with Data: ', $data); + $curl->patch($url, $data); + } elseif (self::DELETE == $method) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::DELETE . ' request to ' . $url . ' with Data: ', $data); + $curl->delete($url, $data); + } elseif (self::GET == $method) { + $this->debug->debug(__FUNCTION__, 'Make ' . self::GET . ' request to ' . $url . ' with Data: ', $data); + $curl->get($url, $data); + } else { + $this->debug->debug(__FUNCTION__, 'Make DEFAULT request to ' . $url . ' with Data: ', $data); + $curl->get($url, $data); + } + // Response + if (($curl->error)) { + $error_code = [ + 'status' => $curl->error_code, + 'error' => $curl->error, + 'error_code' => $curl->error_code, + 'error_message' => $curl->error_message, + 'curl_error' => [ + 'curl_error' => $curl->curl_error, + 'curl_error_code' => $curl->curl_error_code, + 'curl_error_message' => $curl->curl_error_message + ], + 'http_error' => [ + 'http_error' => $curl->http_error, + 'http_status_code' => $curl->http_status_code, + 'http_error_message' => $curl->http_error_message + ], + 'headers' => [ + 'request_headers' => $curl->request_headers, + 'response_headers' => $curl->response_headers, + ] + ]; + // Set Vars + $this->error_code = $error_code; + $this->http_code = $curl->http_status_code; + $this->http_message = $curl->http_error_message; + $this->requests_header = $curl->request_headers; + $this->response_header = $curl->response_headers; + // Debug + $this->debug->debug(__FUNCTION__, 'Full Data Curl Message and Http Message: ', $error_code); + if ($this->errorResponseIsData === TRUE) { + $this->debug->debug(__FUNCTION__, 'Return Error Response is Array Data'); + $response = $error_code; + } elseif ($this->errorResponseIsNull === TRUE) { + $this->debug->debug(__FUNCTION__, 'Return Error Response is Null'); + $response = NULL; + } else { + $response = "cURL Error: " . $curl->error_message; + $this->debug->debug(__FUNCTION__, 'Return Error Response is Message: ' . $response); + } + } else { + $response = $curl->response; + $this->debug->debug(__FUNCTION__, 'Response from Request, no Error: ' . $response); + } + // Close Request + $curl->close(); + // Log Response + if (isset($response)) { + $this->debug->info(__FUNCTION__, 'Final Result from Request: ', $response); + } + } + catch (\Exception $e) { + $response = "Error File: " . $e->getFile() . ' - Line: ' . $e->getLine() . ' Code: ' . $e->getCode() . ' - Message: ' . $e->getMessage(); + $this->debug->error(__FUNCTION__, 'Exception Error - ' . $response); + } + } + + return $response; + } + + /******************************** Handle Send Request ********************************/ + /** + * Function sendRequest + * Handle send Request use Multi Method + * + * @author: 713uk13m + * @time : 10/7/18 07:07 + * + * + * @param string $url URL Endpoint to be Request + * @param array $data Data Content to be Request + * @param string $method Set Method to be Request + * + * @return array|null|\Requests_Response|string Response content from server + * null of Exception Message if Error + */ + public function sendRequest($url = '', $data = [], $method = 'GET') + { + $this->debug->debug(__FUNCTION__, '/------------> ' . __FUNCTION__ . ' <------------\\'); + $inputParams = [ + 'url' => $url, + 'data' => $data, + 'method' => $method, + ]; + $this->debug->info(__FUNCTION__, 'input Params: ', $inputParams); + $method = strtoupper($method); + $endpoint = trim($url); + $this->debug->debug(__FUNCTION__, 'cURL Endpoint: ', $endpoint); + if (!extension_loaded('curl')) { + $this->debug->critical(__FUNCTION__, 'Server is not Support cURL, Please cURL. Library fallback user File Get Contents'); + // Create Request use File Get Content + $content = new GetContents(); + $content->debugStatus = $this->debugStatus; + $content->debugLoggerPath = $this->debugLoggerPath; + $content->__construct(); + $content->setURL($url); + $content->setMethod($method); + $content->setData($data); + $content->sendRequest(); + // Create Request + $result = $content->response(); + $getContent = $content->getContent(); + $getError = $content->getError(); + $this->debug->debug(__FUNCTION__, 'Get Content Result: ' . $getContent); + $this->debug->debug(__FUNCTION__, 'Get Error Result: ' . $getError); + } else { + try { + if ($method == self::GET) { + // Handle GET Request with curlRequest + $this->debug->debug(__FUNCTION__, 'Make ' . self::GET . ' request to ' . $url . ' with Data: ', $data); + $result = $this->curlRequest($url, $data, $method); + } elseif ($method == self::HEAD) { + // Handle HEAD Request with pyRequest + $this->debug->debug(__FUNCTION__, 'Make ' . self::HEAD . ' request to ' . $url . ' with Data: ', $data); + $result = $this->pyRequest($url, $data, $method); + } elseif ($method == self::DELETE) { + // Handle DELETE Request with curlRequest + $this->debug->debug(__FUNCTION__, 'Make ' . self::DELETE . ' request to ' . $url . ' with Data: ', $data); + $result = $this->curlRequest($url, $data, $method); + } elseif ($method == self::TRACE) { + // Handle TRACE Request with pyRequest + $this->debug->debug(__FUNCTION__, 'Make ' . self::TRACE . ' request to ' . $url . ' with Data: ', $data); + $result = $this->pyRequest($url, $data, $method); + } elseif ($method == self::POST) { + // Handle POST Request with curlRequest + $this->debug->debug(__FUNCTION__, 'Make ' . self::POST . ' request to ' . $url . ' with Data: ', $data); + $result = $this->curlRequest($url, $data, $method); + } elseif ($method == self::PUT) { + // Handle PUT Request with curlRequest + $this->debug->debug(__FUNCTION__, 'Make ' . self::PUT . ' request to ' . $url . ' with Data: ', $data); + $result = $this->curlRequest($url, $data, $method); + } elseif ($method == self::OPTIONS) { + // Handle OPTIONS Request with pyRequest + $this->debug->debug(__FUNCTION__, 'Make ' . self::OPTIONS . ' request to ' . $url . ' with Data: ', $data); + $result = $this->pyRequest($url, $data, $method); + } elseif ($method == self::PATCH) { + // Handle PATCH Request with curlRequest + $this->debug->debug(__FUNCTION__, 'Make ' . self::PATCH . ' request to ' . $url . ' with Data: ', $data); + $result = $this->curlRequest($url, $data, $method); + } else { + // Handle DEFAULT Request with curlRequest + $this->debug->debug(__FUNCTION__, 'Make DEFAULT request to ' . $url . ' with Data: ', $data); + $result = $this->curlRequest($url, $data, $method); + } + } + catch (\Exception $e) { + $result = "Error File: " . $e->getFile() . ' - Line: ' . $e->getLine() . ' - Code: ' . $e->getCode() . ' - Message: ' . $e->getMessage(); + $this->debug->error(__FUNCTION__, $result); + } + } + $this->debug->info(__FUNCTION__, 'Final Result from Request: ', $result); + + return $result; + } + + /** + * Function xmlRequest + * Send XML Request to Server + * + * @author: 713uk13m + * @time : 10/7/18 07:11 + * + * @param string $url URL Endpoint to be Request + * @param string $data Data Content to be Request + * @param int $timeout Timeout Request + * + * @return array|null|string Response from Server + */ + public function xmlRequest($url = '', $data = '', $timeout = 60) + { + $this->debug->debug(__FUNCTION__, '/------------> ' . __FUNCTION__ . ' <------------\\'); + $inputParams = [ + 'url' => $url, + 'data' => $data, + 'timeout' => $timeout, + ]; + $this->debug->info(__FUNCTION__, 'input Params: ', $inputParams); + $endpoint = trim($url); + $this->debug->debug(__FUNCTION__, 'cURL Endpoint: ', $endpoint); + if (!extension_loaded('curl')) { + $this->debug->critical(__FUNCTION__, 'Server is not Support cURL, Please cURL. Library fallback user File Get Contents'); + // Create Request use File Get Content + $content = new GetContents(); + $content->debugStatus = $this->debugStatus; + $content->debugLoggerPath = $this->debugLoggerPath; + $content->__construct(); + $content->setURL($url); + $content->setMethod('POST'); + $content->setXML(TRUE); + $content->setData($data); + $content->sendRequest(); + // Create Request + $result = $content->response(); + $getContent = $content->getContent(); + $getError = $content->getError(); + $this->debug->debug(__FUNCTION__, 'Get Content Result: ' . $getContent); + $this->debug->debug(__FUNCTION__, 'Get Error Result: ' . $getError); + } else { + $this->setRequestIsXml(TRUE); + $this->setTimeout($timeout); + $result = $this->curlRequest($url, $data, 'POST'); + } + $this->debug->info(__FUNCTION__, 'Final Result from Request: ', $result); + + return $result; + } + + /** + * Function jsonRequest + * Send JSON Request to Server + * + * @author: 713uk13m + * @time : 10/7/18 07:13 + * + * @param string $url URL Endpoint to be Request + * @param array $data Data Content to be Request + * @param int $timeout Timeout Request + * + * @return array|null|string Response from Server + */ + public function jsonRequest($url = '', $data = [], $timeout = 60) + { + $this->debug->debug(__FUNCTION__, '/------------> ' . __FUNCTION__ . ' <------------\\'); + $inputParams = [ + 'url' => $url, + 'data' => $data, + 'timeout' => $timeout, + ]; + $this->debug->info(__FUNCTION__, 'input Params: ', $inputParams); + $endpoint = trim($url); + $this->debug->debug(__FUNCTION__, 'cURL Endpoint: ', $endpoint); + if (!extension_loaded('curl')) { + $this->debug->critical(__FUNCTION__, 'Server is not Support cURL, Please cURL. Library fallback user File Get Contents'); + // Create Request use File Get Content + $content = new GetContents(); + $content->debugStatus = $this->debugStatus; + $content->debugLoggerPath = $this->debugLoggerPath; + $content->__construct(); + $content->setURL($url); + $content->setMethod('POST'); + $content->setJson(TRUE); + $content->setData($data); + $content->sendRequest(); + // Create Request + $result = $content->response(); + $getContent = $content->getContent(); + $getError = $content->getError(); + $this->debug->debug(__FUNCTION__, 'Get Content Result: ' . $getContent); + $this->debug->debug(__FUNCTION__, 'Get Error Result: ' . $getError); + } else { + $this->setRequestIsJson(TRUE); + $this->setTimeout($timeout); + $result = $this->curlRequest($url, $data, 'POST'); + } + $this->debug->info(__FUNCTION__, 'Final Result from Request: ', $result); + + return $result; + } + /******************************** Utils Function ********************************/ + /** + * Function xmlGetValue + * + * @author: 713uk13m + * @time : 10/7/18 06:57 + * + * @param string $xml XML String + * @param string $openTag OpenTag to find + * @param string $closeTag CloseTag to find + * + * @return bool|string Result from Tag, Empty string if not + */ + public function xmlGetValue($xml = '', $openTag = '', $closeTag = '') + { + if (empty($xml) || empty($openTag) || empty($closeTag)) { + return ''; + } + $f = strpos($xml, $openTag) + strlen($openTag); + $l = strpos($xml, $closeTag); + + return ($f <= $l) ? substr($xml, $f, $l - $f) : ""; + } + + /** + * Function parseXmlDataRequest + * + * @author: 713uk13m + * @time : 10/7/18 06:57 + * + * @param string $resultXml XML String to Parse + * + * @return false|string + */ + public function parseXmlDataRequest($resultXml = '') + { + $array = [ + 'ec' => $this->xmlGetValue($resultXml, "", ""), + 'msg' => $this->xmlGetValue($resultXml, "", "") + ]; + + return json_encode($array); + } +} + diff --git a/docs/files/Repository.DataRepository.html b/docs/files/Repository.DataRepository.html new file mode 100644 index 0000000..fbf025e --- /dev/null +++ b/docs/files/Repository.DataRepository.html @@ -0,0 +1,340 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

RepositoryDataRepository.php

+

Project td-vas-report +Created by PhpStorm.

+

User: 713uk13m dev@nguyenanhung.com +Date: 9/28/18 +Time: 14:47

+ + + +

Classes

+ + + + + +
DataRepositoryClass DataRepository
+
+ + +
+ + + +
+
+ + + + +
+ + + diff --git a/docs/files/Repository/DataRepository.php.txt b/docs/files/Repository/DataRepository.php.txt new file mode 100644 index 0000000..aeb18af --- /dev/null +++ b/docs/files/Repository/DataRepository.php.txt @@ -0,0 +1,62 @@ + + * Date: 9/28/18 + * Time: 14:47 + */ + +namespace nguyenanhung\MyRequests\Repository; +if (!interface_exists('nguyenanhung\MyRequests\Interfaces\ProjectInterface')) { + include_once __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'Interfaces' . DIRECTORY_SEPARATOR . 'ProjectInterface.php'; +} + +use nguyenanhung\MyRequests\Interfaces\ProjectInterface; + +/** + * Class DataRepository + * + * @package nguyenanhung\MyRequests\Repository + * @author 713uk13m + * @copyright 713uk13m + */ +class DataRepository implements ProjectInterface +{ + const CONFIG_PATH = 'config'; + const CONFIG_EXT = '.php'; + + /** + * Function getVersion + * + * @author: 713uk13m + * @time : 10/7/18 01:07 + * + * @return mixed|string + */ + public function getVersion() + { + return self::VERSION; + } + + /** + * Function getData + * + * @author: 713uk13m + * @time : 10/7/18 01:07 + * + * @param $configName config file from folder config + * + * @return array|mixed Data content from config file + */ + public static function getData($configName) + { + $path = __DIR__ . DIRECTORY_SEPARATOR . self::CONFIG_PATH . DIRECTORY_SEPARATOR . $configName . self::CONFIG_EXT; + if (is_file($path) && file_exists($path)) { + return require($path); + } + + return []; + } +} + diff --git a/docs/files/SoapRequest.html b/docs/files/SoapRequest.html new file mode 100644 index 0000000..599ed5e --- /dev/null +++ b/docs/files/SoapRequest.html @@ -0,0 +1,340 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ + + +

SoapRequest.php

+

Project requests.

+

Created by PhpStorm. +User: 713uk13m dev@nguyenanhung.com +Date: 10/7/18 +Time: 02:23

+ + + +

Classes

+ + + + + +
SoapRequestClass SoapRequest
+
+ + +
+ + + +
+
+ + + + +
+ + + diff --git a/docs/files/SoapRequest.php.txt b/docs/files/SoapRequest.php.txt new file mode 100644 index 0000000..63f0d74 --- /dev/null +++ b/docs/files/SoapRequest.php.txt @@ -0,0 +1,279 @@ + + * Date: 10/7/18 + * Time: 02:23 + */ + +namespace nguyenanhung\MyRequests; +if (!interface_exists('nguyenanhung\MyRequests\Interfaces\ProjectInterface')) { + include_once __DIR__ . DIRECTORY_SEPARATOR . 'Interfaces' . DIRECTORY_SEPARATOR . 'ProjectInterface.php'; +} +if (!interface_exists('nguyenanhung\MyRequests\Interfaces\SoapRequestInterface')) { + include_once __DIR__ . DIRECTORY_SEPARATOR . 'Interfaces' . DIRECTORY_SEPARATOR . 'SoapRequestInterface.php'; +} + +use nguyenanhung\MyDebug\Debug; +use nguyenanhung\MyNuSOAP\nusoap_client; +use nguyenanhung\MyRequests\Interfaces\ProjectInterface; +use nguyenanhung\MyRequests\Interfaces\SoapRequestInterface; + +/** + * Class SoapRequest + * + * @package nguyenanhung\MyRequests + * @author 713uk13m + * @copyright 713uk13m + */ +class SoapRequest implements ProjectInterface, SoapRequestInterface +{ + /** + * @var string Url Endpoint to Request + */ + private $endpoint; + /** + * @var array Data to Request + */ + private $data; + /** + * @var string Function to Request SOAP Service + */ + private $callFunction; + /** + * @var string Field Result to mapping Response request + */ + private $fieldResult; + /** + * @var bool Set Json Encode Response to Output + */ + private $responseIsJson; + /** + * @var object\nguyenanhung\MyDebug\Debug Call to class + */ + private $debug; + /** + * Set Debug Status + * + * @var bool + */ + public $debugStatus = FALSE; + + /** + * @var null Set level Debug: DEBUG, INFO, ERROR .... + */ + public $debugLevel = NULL; + /** + * Set Logger Path to Save + * + * @var null|string + */ + public $debugLoggerPath = NULL; + + /** + * Set Logger Filename to Save + * + * @var string + */ + public $debugLoggerFilename; + + /** + * SoapRequest constructor. + */ + public function __construct() + { + $this->debug = new Debug(); + if (empty($this->debugLoggerPath)) { + $this->debugStatus = FALSE; + } + $this->debug->setDebugStatus($this->debugStatus); + $this->debug->setGlobalLoggerLevel($this->debugLevel); + $this->debug->setLoggerPath($this->debugLoggerPath); + $this->debug->setLoggerSubPath(__CLASS__); + if (empty($this->debugLoggerFilename)) { + $this->debugLoggerFilename = 'Log-' . date('Y-m-d') . '.log'; + } + $this->debug->setLoggerFilename($this->debugLoggerFilename); + $this->debug->debug(__FUNCTION__, '/-------------------------> Begin Logger - SOAP Requests - Version: ' . self::VERSION . ' - Last Modified: ' . self::LAST_MODIFIED . ' <-------------------------\\'); + } + + /** + * SoapRequest destructor. + */ + public function __destruct() + { + $this->debug->debug(__FUNCTION__, '/-------------------------> End Logger - SOAP Requests - Version: ' . self::VERSION . ' - Last Modified: ' . self::LAST_MODIFIED . ' <-------------------------\\'); + } + + /** + * Function getVersion + * + * @author : 713uk13m + * @time : 10/7/18 02:24 + * + * @return mixed|string Current Project Version + * @example string 0.1.3 + */ + public function getVersion() + { + return self::VERSION; + } + + /** + * Function setEndpoint + * + * @author: 713uk13m + * @time : 10/7/18 02:26 + * + * @param string $endpoint Link to Url Endpoint + */ + public function setEndpoint($endpoint = '') + { + $this->endpoint = $endpoint; + $this->debug->info(__FUNCTION__, 'setEndpoint: ', $this->endpoint); + } + + /** + * Function setData + * + * @author: 713uk13m + * @time : 10/7/18 02:26 + * + * @param array $data Data to SOAP Request, call + */ + public function setData($data = []) + { + $this->data = $data; + $this->debug->info(__FUNCTION__, 'setData: ', $this->data); + } + + /** + * Function setCallFunction + * + * @author: 713uk13m + * @time : 10/7/18 02:36 + * + * @param string $callFunction Require Set Function to call SOAP endpoint + */ + public function setCallFunction($callFunction = '') + { + $this->callFunction = $callFunction; + $this->debug->info(__FUNCTION__, 'setCallFunction: ', $this->callFunction); + } + + /** + * Function setFieldResult + * Nếu input giá trì vào đây, result sẽ map trực tiếp đến mã này + * nếu không có sẽ trả error luôn + * + * @author: 713uk13m + * @time : 10/7/18 02:37 + * + * @param string $fieldResult If input fieldResult, result return $response[$fieldResult] f + * from Response SOAP Service + * Return Error Code if not find $fieldResult from Response + */ + public function setFieldResult($fieldResult = '') + { + $this->fieldResult = $fieldResult; + $this->debug->info(__FUNCTION__, 'setFieldResult: ', $this->fieldResult); + } + + /** + * Function setResponseIsJson + * Return Response is Json if value = true + * + * @author: 713uk13m + * @time : 10/8/18 19:00 + * + * @param string $responseIsJson + * + * @return mixed|void if set value = TRUE, response is Json string + * @see clientRequestWsdl() method + */ + public function setResponseIsJson($responseIsJson = '') + { + $this->responseIsJson = $responseIsJson; + $this->debug->info(__FUNCTION__, 'setResponseIsJson: ', $this->responseIsJson); + } + + /** + * Function clientRequestWsdl + * + * @author: 713uk13m + * @time : 10/7/18 02:41 + * + * @return array|null|string Call to SOAP request and received Response from Server + * Return is Json String if set setResponseIsJson(true) + * Return Null if class nguyenanhung\MyNuSOAP\nusoap_client is unavailable, class is not exists + */ + public function clientRequestWsdl() + { + $this->debug->debug(__FUNCTION__, '/------------> ' . __FUNCTION__ . ' <------------\\'); + if (!class_exists('nguyenanhung\MyNuSOAP\nusoap_client')) { + $this->debug->critical(__FUNCTION__, 'nguyenanhung\MyNuSOAP\nusoap_client is unavailable, class is not exists'); + + return NULL; + } + try { + $client = new nusoap_client($this->endpoint, TRUE); + $client->soap_defencoding = self::SOAP_ENCODING; + $client->xml_encoding = self::XML_ENCODING; + $client->decode_utf8 = self::DECODE_UTF8; + $error = $client->getError(); + if ($error) { + $message = "Request SOAP Charge Error: " . json_encode($error); + $this->debug->error(__FUNCTION__, $message); + } else { + $result = $client->call($this->callFunction, $this->data); + $this->debug->info(__FUNCTION__, 'Result from Endpoint: ', $result); + if ($this->fieldResult) { + if (isset($result[$this->fieldResult])) { + $this->debug->info(__FUNCTION__, 'Output Result: ', $result[$this->fieldResult]); + $message = [ + 'status' => 0, + 'code' => $result[$this->fieldResult], + 'data' => $result + ]; + } else { + $this->debug->info(__FUNCTION__, 'Missing Result from ' . $this->fieldResult); + $message = [ + 'status' => 1, + 'code' => 'Missing Result from ' . $this->fieldResult, + 'data' => $result + ]; + } + } else { + $message = [ + 'status' => 0, + 'code' => 'Return full Response', + 'data' => $result + ]; + } + } + } + catch (\Exception $e) { + $message = [ + 'status' => 2, + 'code' => 'Exception Error', + 'data' => [ + 'File' => $e->getFile(), + 'Line' => $e->getLine(), + 'Code' => $e->getCode(), + 'Message' => $e->getMessage(), + ] + ]; + $error_message = 'Error File: ' . $e->getFile() . ' - Line: ' . $e->getLine() . ' - Code: ' . $e->getCode() . ' - Message: ' . $e->getMessage(); + $this->debug->error(__FUNCTION__, $error_message); + } + if ($this->responseIsJson) { + $this->debug->debug(__FUNCTION__, 'Response is Json'); + $message = json_encode($message); + } + $this->debug->info(__FUNCTION__, 'Final Result: ', $message); + + return $message; + } +} + diff --git a/docs/font/FontAwesome.otf b/docs/font/FontAwesome.otf new file mode 100644 index 0000000..3461e3f Binary files /dev/null and b/docs/font/FontAwesome.otf differ diff --git a/docs/font/fontawesome-webfont.eot b/docs/font/fontawesome-webfont.eot new file mode 100644 index 0000000..6cfd566 Binary files /dev/null and b/docs/font/fontawesome-webfont.eot differ diff --git a/docs/font/fontawesome-webfont.svg b/docs/font/fontawesome-webfont.svg new file mode 100644 index 0000000..a9f8469 --- /dev/null +++ b/docs/font/fontawesome-webfont.svg @@ -0,0 +1,504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/font/fontawesome-webfont.ttf b/docs/font/fontawesome-webfont.ttf new file mode 100644 index 0000000..5cd6cff Binary files /dev/null and b/docs/font/fontawesome-webfont.ttf differ diff --git a/docs/font/fontawesome-webfont.woff b/docs/font/fontawesome-webfont.woff new file mode 100644 index 0000000..9eaecb3 Binary files /dev/null and b/docs/font/fontawesome-webfont.woff differ diff --git a/docs/graphs/class.html b/docs/graphs/class.html new file mode 100644 index 0000000..5cc575b --- /dev/null +++ b/docs/graphs/class.html @@ -0,0 +1,172 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+ + +
+ + + diff --git a/docs/images/apple-touch-icon-114x114.png b/docs/images/apple-touch-icon-114x114.png new file mode 100644 index 0000000..1506f6a Binary files /dev/null and b/docs/images/apple-touch-icon-114x114.png differ diff --git a/docs/images/apple-touch-icon-72x72.png b/docs/images/apple-touch-icon-72x72.png new file mode 100644 index 0000000..d813259 Binary files /dev/null and b/docs/images/apple-touch-icon-72x72.png differ diff --git a/docs/images/apple-touch-icon.png b/docs/images/apple-touch-icon.png new file mode 100644 index 0000000..2d320cb Binary files /dev/null and b/docs/images/apple-touch-icon.png differ diff --git a/docs/images/custom-icons.svg b/docs/images/custom-icons.svg new file mode 100644 index 0000000..c6b8037 --- /dev/null +++ b/docs/images/custom-icons.svg @@ -0,0 +1,116 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/docs/images/favicon.ico b/docs/images/favicon.ico new file mode 100644 index 0000000..9575ac8 Binary files /dev/null and b/docs/images/favicon.ico differ diff --git a/docs/images/hierarchy-item.png b/docs/images/hierarchy-item.png new file mode 100644 index 0000000..c7756e7 Binary files /dev/null and b/docs/images/hierarchy-item.png differ diff --git a/docs/images/icon-class-13x13.png b/docs/images/icon-class-13x13.png new file mode 100644 index 0000000..731f0bd Binary files /dev/null and b/docs/images/icon-class-13x13.png differ diff --git a/docs/images/icon-class.svg b/docs/images/icon-class.svg new file mode 100644 index 0000000..7dacd0c --- /dev/null +++ b/docs/images/icon-class.svg @@ -0,0 +1,77 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/docs/images/icon-interface-13x13.png b/docs/images/icon-interface-13x13.png new file mode 100644 index 0000000..aa24fa9 Binary files /dev/null and b/docs/images/icon-interface-13x13.png differ diff --git a/docs/images/icon-interface.svg b/docs/images/icon-interface.svg new file mode 100644 index 0000000..7c6371e --- /dev/null +++ b/docs/images/icon-interface.svg @@ -0,0 +1,73 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/docs/images/icon-trait-13x13.png b/docs/images/icon-trait-13x13.png new file mode 100644 index 0000000..3c2792b Binary files /dev/null and b/docs/images/icon-trait-13x13.png differ diff --git a/docs/images/icon-trait.svg b/docs/images/icon-trait.svg new file mode 100644 index 0000000..03cf08f --- /dev/null +++ b/docs/images/icon-trait.svg @@ -0,0 +1,73 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/docs/images/iviewer/grab.cur b/docs/images/iviewer/grab.cur new file mode 100644 index 0000000..ef540be Binary files /dev/null and b/docs/images/iviewer/grab.cur differ diff --git a/docs/images/iviewer/hand.cur b/docs/images/iviewer/hand.cur new file mode 100644 index 0000000..1a5bafb Binary files /dev/null and b/docs/images/iviewer/hand.cur differ diff --git a/docs/images/iviewer/iviewer.rotate_left.png b/docs/images/iviewer/iviewer.rotate_left.png new file mode 100644 index 0000000..df0956d Binary files /dev/null and b/docs/images/iviewer/iviewer.rotate_left.png differ diff --git a/docs/images/iviewer/iviewer.rotate_right.png b/docs/images/iviewer/iviewer.rotate_right.png new file mode 100644 index 0000000..7a6c829 Binary files /dev/null and b/docs/images/iviewer/iviewer.rotate_right.png differ diff --git a/docs/images/iviewer/iviewer.zoom_fit.png b/docs/images/iviewer/iviewer.zoom_fit.png new file mode 100644 index 0000000..364e01d Binary files /dev/null and b/docs/images/iviewer/iviewer.zoom_fit.png differ diff --git a/docs/images/iviewer/iviewer.zoom_in.png b/docs/images/iviewer/iviewer.zoom_in.png new file mode 100644 index 0000000..7899332 Binary files /dev/null and b/docs/images/iviewer/iviewer.zoom_in.png differ diff --git a/docs/images/iviewer/iviewer.zoom_out.png b/docs/images/iviewer/iviewer.zoom_out.png new file mode 100644 index 0000000..893f350 Binary files /dev/null and b/docs/images/iviewer/iviewer.zoom_out.png differ diff --git a/docs/images/iviewer/iviewer.zoom_zero.png b/docs/images/iviewer/iviewer.zoom_zero.png new file mode 100644 index 0000000..c981db6 Binary files /dev/null and b/docs/images/iviewer/iviewer.zoom_zero.png differ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..67452e2 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,271 @@ + + + + + + API Documentation + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ +

\

+ +

Namespaces

+ + + + +
nguyenanhung
+ + + +
+ + +
+ + + +
+
+ + +
+ + + diff --git a/docs/js/bootstrap.min.js b/docs/js/bootstrap.min.js new file mode 100644 index 0000000..319a85d --- /dev/null +++ b/docs/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/** +* Bootstrap.js by @fat & @mdo +* plugins: bootstrap-transition.js, bootstrap-modal.js, bootstrap-dropdown.js, bootstrap-scrollspy.js, bootstrap-tab.js, bootstrap-tooltip.js, bootstrap-popover.js, bootstrap-affix.js, bootstrap-alert.js, bootstrap-button.js, bootstrap-collapse.js, bootstrap-carousel.js, bootstrap-typeahead.js +* Copyright 2012 Twitter, Inc. +* http://www.apache.org/licenses/LICENSE-2.0.txt +*/ +!function(a){a(function(){a.support.transition=function(){var a=function(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},c;for(c in b)if(a.style[c]!==undefined)return b[c]}();return a&&{end:a}}()})}(window.jQuery),!function(a){var b=function(b,c){this.options=c,this.$element=a(b).delegate('[data-dismiss="modal"]',"click.dismiss.modal",a.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};b.prototype={constructor:b,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var b=this,c=a.Event("show");this.$element.trigger(c);if(this.isShown||c.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var c=a.support.transition&&b.$element.hasClass("fade");b.$element.parent().length||b.$element.appendTo(document.body),b.$element.show(),c&&b.$element[0].offsetWidth,b.$element.addClass("in").attr("aria-hidden",!1),b.enforceFocus(),c?b.$element.one(a.support.transition.end,function(){b.$element.focus().trigger("shown")}):b.$element.focus().trigger("shown")})},hide:function(b){b&&b.preventDefault();var c=this;b=a.Event("hide"),this.$element.trigger(b);if(!this.isShown||b.isDefaultPrevented())return;this.isShown=!1,this.escape(),a(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),a.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var b=this;a(document).on("focusin.modal",function(a){b.$element[0]!==a.target&&!b.$element.has(a.target).length&&b.$element.focus()})},escape:function(){var a=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(b){b.which==27&&a.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),b.hideModal()},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),b.hideModal()})},hideModal:function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a('