@@ -54,7 +54,7 @@ var MthSelColor = "#cc0033"; //color of font of Month selector if "MonthSelector
5454var HoverColor = "#E0FF38" ; //color when mouse move over.
5555var DisableColor = "#999966" ; //color of disabled cell.
5656var CalBgColor = "#ffffff" ; //Background color of Calendar window.
57- var topSelectorBg = "#ffffff " ;
57+ var topSelectorBg = "#f1f4f6 " ;
5858
5959var WeekChar = 2 ; //number of character for week day. if 2 then Mo,Tu,We. if 3 then Mon,Tue,Wed.
6060var DateSeparator = "-" ; //Date Separator, you can change it to "-" if you want.
@@ -551,7 +551,7 @@ function RenderCssCal(bNewCal)
551551 // Set the default cursor for the calendar
552552
553553 winCalData = "<span style='cursor:auto;'>" ;
554- vCalHeader = "<table style='background-color:" + CalBgColor + ";width:auto;padding:0;margin:5px 5px 5px 4px; border:none;'><tbody>" ;
554+ vCalHeader = "<table style='background-color:" + CalBgColor + ";width:auto;padding:0;border:none;'><tbody>" ;
555555
556556 //Table for Month & Year Selector
557557
@@ -560,7 +560,8 @@ function RenderCssCal(bNewCal)
560560
561561 if ( Cal . Scroller === "DROPDOWN" )
562562 {
563- vCalHeader += "<td align='left' style='padding:10px 5px 10px 10px;margin:0;background:" + topSelectorBg + "'><select name='MonthSelector' style='margin-bottom:5px;' onChange='javascript:Cal.SwitchMth(this.selectedIndex);RenderCssCal();'>" ;
563+ vCalHeader += "<td align='left' style='padding:10px 5px 10px 10px;margin:0;background:" + topSelectorBg + "'>\n" ;
564+ vCalHeader += "<select name='MonthSelector' id='MonthSelectorSelect' style='margin-bottom:5px; display: none;' onChange='javascript:Cal.SwitchMth(this.selectedIndex);RenderCssCal();'>" ;
564565 for ( i = 0 ; i < 12 ; i += 1 )
565566 {
566567 if ( i === Cal . Month )
@@ -573,11 +574,29 @@ function RenderCssCal(bNewCal)
573574 }
574575 vCalHeader += "<option " + SelectStr + " value=" + i + ">" + MonthName [ i ] + "</option>" ;
575576 }
577+ vCalHeader += '</select>' ;
576578
577- vCalHeader += "</select></td>" ;
579+ /* ul month for custom select */
580+ vCalHeader += '<span class="MonthSelectorTitle">' + MonthName [ Cal . Month ] + '</span>' ;
581+ vCalHeader += '<ul name="MonthSelector" class="MonthSelector" onChange="javascript:Cal.SwitchMth(this.selectedIndex);RenderCssCal();">' ;
582+ for ( i = 0 ; i < 12 ; i += 1 )
583+ {
584+ if ( i === Cal . Month )
585+ {
586+ SelectStr = "Selected" ;
587+ }
588+ else
589+ {
590+ SelectStr = "" ;
591+ }
592+ vCalHeader += '<li>' + MonthName [ i ] + '</li>' ;
593+ }
594+ vCalHeader += "</ul>" ;
595+ vCalHeader += "</td>" ;
578596 //Year selector
579597
580- vCalHeader += "<td align='right' style='padding:10px 10px 10px 5px;margin:0;background:" + topSelectorBg + "'><select name='YearSelector' style='margin-bottom:5px;' size='1' onChange='javascript:Cal.SwitchYear(this.value);RenderCssCal();'>" ;
598+ vCalHeader += "<td align='right' style='padding:10px 10px 10px 5px;margin:0;background:" + topSelectorBg + "'>" ;
599+ vCalHeader += "<select name='YearSelector' style='display:none; margin-bottom:5px;' size='1' onChange='javascript:Cal.SwitchYear(this.value);RenderCssCal();'>" ;
581600 for ( i = StartYear ; i <= ( dtToday . getFullYear ( ) + EndYear ) ; i += 1 )
582601 {
583602 if ( i === Cal . Year )
@@ -590,7 +609,25 @@ function RenderCssCal(bNewCal)
590609 }
591610 vCalHeader += "<option " + SelectStr + " value=" + i + ">" + i + "</option>\n" ;
592611 }
593- vCalHeader += "</select></td>\n" ;
612+ vCalHeader += "</select>" ;
613+
614+ /* ul year for custom select */
615+ vCalHeader += '<span class="MonthSelectorTitle Year">' + Cal . Year + '</span>' ;
616+ vCalHeader += '<ul name="YearSelector" class="MonthSelector Year" onChange="javascript:Cal.SwitchMth(this.selectedIndex);RenderCssCal();">' ;
617+ for ( i = StartYear ; i <= ( dtToday . getFullYear ( ) + EndYear ) ; i += 1 )
618+ {
619+ if ( i === Cal . Year )
620+ {
621+ SelectStr = 'selected="selected"' ;
622+ }
623+ else
624+ {
625+ SelectStr = '' ;
626+ }
627+ vCalHeader += '<li>' + i + '</li>' ;
628+ }
629+ vCalHeader += "</ul>" ;
630+ vCalHeader += "</td>\n" ;
594631 calHeight += 30 ;
595632 }
596633
@@ -633,7 +670,7 @@ function RenderCssCal(bNewCal)
633670
634671 //Week day header
635672
636- vCalHeader += "<tr><td colspan=\"7\"><table style='border-spacing:0;border-collapse:collapse;box-sizing:border-box;'><tr>" ;
673+ vCalHeader += "<tr><td colspan=\"7\"><table style='border-spacing:0;border-collapse:collapse;box-sizing:border-box; margin: 5px 5px 5px 4px; '><tr>" ;
637674 if ( MondayFirstDay === true )
638675 {
639676 WeekDayName = WeekDayName2 ;
@@ -863,7 +900,22 @@ function RenderCssCal(bNewCal)
863900 cssStr += "#calBorder input, #calBorder select {height:auto;}\n" ;
864901 cssStr += "#calBorder select { -webkit-appearance: menulist; -moz-appearance: menulist;}\n" ;
865902 cssStr += "#calBorder table tr:nth-child(even) {background: none;}\n" ;
866- cssStr += '#calBorder input[type="button"], #calBorderinput[type="reset"], #calBorder input[type="submit"] {margin-top: 15px; font-family:"TMSans-Bold",Helvetica,Arial,sans-serif; font-size:12px; width:45%; border:2px solid #b7c9d3; border-radius:4px; text-transform:uppercase; color:#b7c9d3; padding:4px; margin-bottom:12px;}' ;
903+ cssStr += '#calBorder input[type="button"], #calBorderinput[type="reset"], #calBorder input[type="submit"] {margin-top: 15px; font-family:"TMSans-Bold",Helvetica,Arial,sans-serif; font-size:12px; width:45%; border:2px solid #b7c9d3; border-radius:4px; text-transform:uppercase; color:#b7c9d3; padding:4px; margin-bottom:12px;}\n' ;
904+ cssStr += '#calBorder .MonthSelectorTitle {position: relative; font-family: "TMSans-Bold", Arial, serif; font-size: 14px; color: #b7c9d3; display: block; float: left; margin-left: 5px; padding-right:24px; -webkit-transition: color 0.3s ease-in-out; -o-transition: color 0.3s ease-in-out; transition: color 0.3s ease-in-out;}\n' ;
905+ cssStr += '#calBorder .MonthSelectorTitle:hover {color: #189ddc; cursor: pointer;}\n' ;
906+ cssStr += '#calBorder .MonthSelectorTitle:hover:before {opacity:1;}\n' ;
907+ cssStr += '#calBorder .MonthSelectorTitle:hover:after {opacity:0;}\n' ;
908+ cssStr += '#calBorder .MonthSelectorTitle:hover:after {color: #189ddc; cursor: pointer;}\n' ;
909+ cssStr += '#calBorder .MonthSelectorTitle.Year {float: right;}\n' ;
910+ cssStr += '#calBorder .MonthSelectorTitle:before, #calBorder .MonthSelectorTitle:after {content: ""; position: absolute; right: 0; top: 50%; width: 15px; height: 10px; margin-top: -5px; background-position: center center; background-repeat: no-repeat; -webkit-transition: opacity 0.2s ease-in-out; -o-transition: opacity 0.2s ease-in-out; transition: opacity 0.2s ease-in-out;}\n' ;
911+ cssStr += '#calBorder .MonthSelectorTitle:before {opacity:0; background: url("http://developer.ticketmaster.com/assets/widgets/1.0.0/img/small-shevron-hover.svg") center center no-repeat;\n}' ;
912+ cssStr += '#calBorder .MonthSelectorTitle:after {background: url("http://developer.ticketmaster.com/assets/widgets/1.0.0/img/small-shevron.svg") center center no-repeat;}\n' ;
913+ cssStr += '#calBorder ul.MonthSelector {display: none; background:#b7c9d2; margin-bottom:5px; font-family: "TMSans-Bold", Arial, serif; font-size: 14px; padding: 10px 15px; margin:0; top:35px; left:0; position: absolute;}\n' ;
914+ cssStr += '#calBorder ul.MonthSelector.show {display: block;}\n' ;
915+ cssStr += '#calBorder ul.MonthSelector.Year {left:auto; right:0; padding: 10px 34px;}\n' ;
916+ cssStr += '#calBorder ul.MonthSelector.Year.show {display: block;}\n' ;
917+ cssStr += '#calBorder ul.MonthSelector li { font-family: "TMSans-Bold", Arial, serif; font-size: 14px; margin:0; padding:0; line-height:28px; color: #fff;}\n' ;
918+ cssStr += '#calBorder ul.MonthSelector li:hover {color: #189ddc; cursor: pointer;}\n' ;
867919
868920 style = document . createElement ( "style" ) ;
869921 style . type = "text/css" ;
@@ -1368,3 +1420,51 @@ document.onmousedown = pickIt;
13681420document.onmousemove = dragIt;
13691421document.onmouseup = dropIt;
13701422*/
1423+
1424+ document . addEventListener ( 'click' , function ( e ) {
1425+
1426+ if ( document . querySelector ( '#calBorder .MonthSelector' ) !== null ) {
1427+
1428+ var targetClass = e . target . classList [ 0 ] ;
1429+ if ( e . target . classList [ 1 ] !== undefined ) targetClass = e . target . classList [ 1 ] ;
1430+ if ( targetClass === undefined ) targetClass = e . target . parentNode . classList [ 0 ] ;
1431+
1432+ if ( targetClass == 'MonthSelectorTitle' ) {
1433+ if ( document . querySelector ( '#calBorder .MonthSelector' ) . classList . contains ( "show" ) ) {
1434+ document . querySelector ( '#calBorder .MonthSelector' ) . classList . remove ( "show" ) ;
1435+ }
1436+ else {
1437+ document . querySelector ( '#calBorder .MonthSelector' ) . classList . add ( "show" ) ;
1438+ document . querySelector ( '#calBorder .MonthSelector.Year' ) . classList . remove ( "show" ) ;
1439+ }
1440+ } ;
1441+
1442+ if ( targetClass == 'MonthSelector' ) {
1443+
1444+ var selectClass = e . target . parentNode . classList [ 1 ] ;
1445+
1446+ if ( e . target . tagName === 'LI' && selectClass === 'show' ) {
1447+ document . querySelector ( '#calBorder .MonthSelectorTitle' ) . innerHTML = e . target . innerHTML ;
1448+ Cal . SwitchMth ( [ ] . indexOf . call ( e . target . parentNode . children , ( e ? e . target : e . srcElement ) ) ) ;
1449+ RenderCssCal ( ) ;
1450+ }
1451+ if ( e . target . tagName === 'LI' && selectClass === 'Year' ) {
1452+ document . querySelector ( '#calBorder .MonthSelectorTitle.Year' ) . innerHTML = e . target . innerHTML ;
1453+ Cal . SwitchYear ( e . target . innerHTML ) ;
1454+ RenderCssCal ( ) ;
1455+ }
1456+ } ;
1457+
1458+ if ( targetClass == 'Year' ) {
1459+ if ( document . querySelector ( '#calBorder .MonthSelector.Year' ) . classList . contains ( "show" ) ) {
1460+ document . querySelector ( '#calBorder .MonthSelector.Year' ) . classList . remove ( "show" ) ;
1461+ }
1462+ else {
1463+ document . querySelector ( '#calBorder .MonthSelector.Year' ) . classList . add ( "show" ) ;
1464+ document . querySelector ( '#calBorder .MonthSelector' ) . classList . remove ( "show" ) ;
1465+ }
1466+ } ;
1467+
1468+ }
1469+
1470+ } ) ;
0 commit comments