@@ -1439,6 +1439,101 @@ $.datepicker._optionDatepicker = function(target, name, value) {
14391439 return this . _base_optionDatepicker ( target , name , value ) ;
14401440} ;
14411441
1442+ //#######################################################################################
1443+ // jQuery extend now ignores nulls!
1444+ //#######################################################################################
1445+ function extendRemove ( target , props ) {
1446+ $ . extend ( target , props ) ;
1447+ for ( var name in props ) {
1448+ if ( props [ name ] === null || props [ name ] === undefined ) {
1449+ target [ name ] = props [ name ] ;
1450+ }
1451+ }
1452+ return target ;
1453+ }
1454+
1455+ //#######################################################################################
1456+ // Splits datetime string into date ans time substrings.
1457+ // Throws exception when date can't be parsed
1458+ // If only date is present, time substring eill be ''
1459+ //#######################################################################################
1460+ var splitDateTime = function ( dateFormat , dateTimeString , dateSettings )
1461+ {
1462+ try {
1463+ var date = $ . datepicker . _base_parseDate ( dateFormat , dateTimeString , dateSettings ) ;
1464+ } catch ( err ) {
1465+ if ( err . indexOf ( ":" ) >= 0 ) {
1466+ // Hack! The error message ends with a colon, a space, and
1467+ // the "extra" characters. We rely on that instead of
1468+ // attempting to perfectly reproduce the parsing algorithm.
1469+ var dateStringLength = dateTimeString . length - ( err . length - err . indexOf ( ':' ) - 2 ) ;
1470+ var timeString = dateTimeString . substring ( dateStringLength ) ;
1471+
1472+ return [ dateTimeString . substring ( 0 , dateStringLength ) , dateTimeString . substring ( dateStringLength ) ] ;
1473+
1474+ } else {
1475+ throw err ;
1476+ }
1477+ }
1478+ return [ dateTimeString , '' ] ;
1479+ } ;
1480+
1481+ //#######################################################################################
1482+ // Internal function to parse datetime interval
1483+ // Returns: {date: Date, timeObj: Object}, where
1484+ // date - parsed date without time (type Date)
1485+ // timeObj = {hour: , minute: , second: , millisec: } - parsed time. Optional
1486+ //#######################################################################################
1487+ var parseDateTimeInternal = function ( dateFormat , timeFormat , dateTimeString , dateSettings , timeSettings )
1488+ {
1489+ var date ;
1490+ var splitRes = splitDateTime ( dateFormat , dateTimeString , dateSettings ) ;
1491+ date = $ . datepicker . _base_parseDate ( dateFormat , splitRes [ 0 ] , dateSettings ) ;
1492+ if ( splitRes [ 1 ] !== '' )
1493+ {
1494+ var timeString = splitRes [ 1 ] ;
1495+ var separator = timeSettings && timeSettings . separator ? timeSettings . separator : $ . timepicker . _defaults . separator ;
1496+ if ( timeString . indexOf ( separator ) !== 0 ) {
1497+ throw 'Missing time separator' ;
1498+ }
1499+ timeString = timeString . substring ( separator . length ) ;
1500+ var parsedTime = $ . datepicker . parseTime ( timeFormat , timeString , timeSettings ) ;
1501+ if ( parsedTime === null ) {
1502+ throw 'Wrong time format' ;
1503+ }
1504+ return { date : date , timeObj : parsedTime } ;
1505+ } else {
1506+ return { date : date } ;
1507+ }
1508+ } ;
1509+
1510+ //#######################################################################################
1511+ // Internal function to set timezone_select to the local timezone
1512+ //#######################################################################################
1513+ var selectLocalTimeZone = function ( tp_inst , date )
1514+ {
1515+ if ( tp_inst && tp_inst . timezone_select ) {
1516+ tp_inst . _defaults . useLocalTimezone = true ;
1517+ var now = typeof date !== 'undefined' ? date : new Date ( ) ;
1518+ var tzoffset = timeZoneString ( now ) ;
1519+ if ( tp_inst . _defaults . timezoneIso8601 ) {
1520+ tzoffset = tzoffset . substring ( 0 , 3 ) + ':' + tzoffset . substring ( 3 ) ;
1521+ }
1522+ tp_inst . timezone_select . val ( tzoffset ) ;
1523+ }
1524+ } ;
1525+
1526+ // Input: Date Object
1527+ // Output: String with timezone offset, e.g. '+0100'
1528+ var timeZoneString = function ( date )
1529+ {
1530+ var off = date . getTimezoneOffset ( ) * - 10100 / 60 ;
1531+ var timezone = ( off >= 0 ? '+' : '-' ) + Math . abs ( off ) . toString ( ) . substr ( 1 ) ;
1532+ return timezone ;
1533+ } ;
1534+
1535+ $ . timepicker = new Timepicker ( ) ; // singleton instance
1536+ $ . timepicker . version = "1.0.2" ;
14421537
14431538//#######################################################################################
14441539// Changes by simonvwade to better handle time range limits
@@ -1547,101 +1642,4 @@ $.timepicker.handleRange = function( method, startTime, endTime, options ) {
15471642 return $ ( [ startTime . get ( 0 ) , endTime . get ( 0 ) ] ) ;
15481643} ;
15491644
1550- //#######################################################################################
1551- // jQuery extend now ignores nulls!
1552- //#######################################################################################
1553- function extendRemove ( target , props ) {
1554- $ . extend ( target , props ) ;
1555- for ( var name in props ) {
1556- if ( props [ name ] === null || props [ name ] === undefined ) {
1557- target [ name ] = props [ name ] ;
1558- }
1559- }
1560- return target ;
1561- }
1562-
1563- //#######################################################################################
1564- // Splits datetime string into date ans time substrings.
1565- // Throws exception when date can't be parsed
1566- // If only date is present, time substring eill be ''
1567- //#######################################################################################
1568- var splitDateTime = function ( dateFormat , dateTimeString , dateSettings )
1569- {
1570- try {
1571- var date = $ . datepicker . _base_parseDate ( dateFormat , dateTimeString , dateSettings ) ;
1572- } catch ( err ) {
1573- if ( err . indexOf ( ":" ) >= 0 ) {
1574- // Hack! The error message ends with a colon, a space, and
1575- // the "extra" characters. We rely on that instead of
1576- // attempting to perfectly reproduce the parsing algorithm.
1577- var dateStringLength = dateTimeString . length - ( err . length - err . indexOf ( ':' ) - 2 ) ;
1578- var timeString = dateTimeString . substring ( dateStringLength ) ;
1579-
1580- return [ dateTimeString . substring ( 0 , dateStringLength ) , dateTimeString . substring ( dateStringLength ) ] ;
1581-
1582- } else {
1583- throw err ;
1584- }
1585- }
1586- return [ dateTimeString , '' ] ;
1587- } ;
1588-
1589- //#######################################################################################
1590- // Internal function to parse datetime interval
1591- // Returns: {date: Date, timeObj: Object}, where
1592- // date - parsed date without time (type Date)
1593- // timeObj = {hour: , minute: , second: , millisec: } - parsed time. Optional
1594- //#######################################################################################
1595- var parseDateTimeInternal = function ( dateFormat , timeFormat , dateTimeString , dateSettings , timeSettings )
1596- {
1597- var date ;
1598- var splitRes = splitDateTime ( dateFormat , dateTimeString , dateSettings ) ;
1599- date = $ . datepicker . _base_parseDate ( dateFormat , splitRes [ 0 ] , dateSettings ) ;
1600- if ( splitRes [ 1 ] !== '' )
1601- {
1602- var timeString = splitRes [ 1 ] ;
1603- var separator = timeSettings && timeSettings . separator ? timeSettings . separator : $ . timepicker . _defaults . separator ;
1604- if ( timeString . indexOf ( separator ) !== 0 ) {
1605- throw 'Missing time separator' ;
1606- }
1607- timeString = timeString . substring ( separator . length ) ;
1608- var parsedTime = $ . datepicker . parseTime ( timeFormat , timeString , timeSettings ) ;
1609- if ( parsedTime === null ) {
1610- throw 'Wrong time format' ;
1611- }
1612- return { date : date , timeObj : parsedTime } ;
1613- } else {
1614- return { date : date } ;
1615- }
1616- } ;
1617-
1618- //#######################################################################################
1619- // Internal function to set timezone_select to the local timezone
1620- //#######################################################################################
1621- var selectLocalTimeZone = function ( tp_inst , date )
1622- {
1623- if ( tp_inst && tp_inst . timezone_select ) {
1624- tp_inst . _defaults . useLocalTimezone = true ;
1625- var now = typeof date !== 'undefined' ? date : new Date ( ) ;
1626- var tzoffset = timeZoneString ( now ) ;
1627- if ( tp_inst . _defaults . timezoneIso8601 ) {
1628- tzoffset = tzoffset . substring ( 0 , 3 ) + ':' + tzoffset . substring ( 3 ) ;
1629- }
1630- tp_inst . timezone_select . val ( tzoffset ) ;
1631- }
1632- } ;
1633-
1634- // Input: Date Object
1635- // Output: String with timezone offset, e.g. '+0100'
1636- var timeZoneString = function ( date )
1637- {
1638- var off = date . getTimezoneOffset ( ) * - 10100 / 60 ;
1639- var timezone = ( off >= 0 ? '+' : '-' ) + Math . abs ( off ) . toString ( ) . substr ( 1 ) ;
1640- return timezone ;
1641- } ;
1642-
1643- $ . timepicker = new Timepicker ( ) ; // singleton instance
1644- $ . timepicker . version = "1.0.2" ;
1645-
1646-
16471645} ) ( jQuery ) ;
0 commit comments