/**
 * Resize function without multiple trigger
 * 
 * Usage:
 * $(window).smartresize(function(){  
 *     // code here
 * });
 */
(function($,sr){
    // debouncing function from John Hann
    // http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
    var debounce = function (func, threshold, execAsap) {
      var timeout;

        return function debounced () {
            var obj = this, args = arguments;
            function delayed () {
                if (!execAsap)
                    func.apply(obj, args); 
                timeout = null; 
            }

            if (timeout)
                clearTimeout(timeout);
            else if (execAsap)
                func.apply(obj, args);

            timeout = setTimeout(delayed, threshold || 100); 
        };
    };

    // smartresize 
    jQuery.fn[sr] = function(fn){  return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); };

})(jQuery,'smartresize');
/**
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

var CURRENT_URL = window.location.href.split('#')[0].split('?')[0],
    $BODY = $('body'),
    $MENU_TOGGLE = $('#menu_toggle'),
    $SIDEBAR_MENU = $('#sidebar-menu'),
    $SIDEBAR_FOOTER = $('.sidebar-footer'),
    $LEFT_COL = $('.left_col'),
    $RIGHT_COL = $('.right_col'),
    $NAV_MENU = $('.nav_menu'),
    $FOOTER = $('footer');

    
    
// Sidebar
function init_sidebar() {
// TODO: This is some kind of easy fix, maybe we can improve this
var setContentHeight = function () {
    // reset height
    $RIGHT_COL.css('min-height', $(window).height());

    var bodyHeight = $BODY.outerHeight(),
        footerHeight = $BODY.hasClass('footer_fixed') ? -10 : $FOOTER.height(),
        leftColHeight = $LEFT_COL.eq(1).height() + $SIDEBAR_FOOTER.height(),
        contentHeight = bodyHeight < leftColHeight ? leftColHeight : bodyHeight;

    // normalize content
    contentHeight -= $NAV_MENU.height() + footerHeight;

    $RIGHT_COL.css('min-height', contentHeight);
};

  $SIDEBAR_MENU.find('a').on('click', function(ev) {
      console.log('clicked - sidebar_menu');
        var $li = $(this).parent();

        if ($li.is('.active')) {
            $li.removeClass('active active-sm');
            $('ul:first', $li).slideUp(function() {
                setContentHeight();
            });
        } else {
            // prevent closing menu if we are on child menu
            if (!$li.parent().is('.child_menu')) {
                $SIDEBAR_MENU.find('li').removeClass('active active-sm');
                $SIDEBAR_MENU.find('li ul').slideUp();
            }else
            {
                if ( $BODY.is( ".nav-sm" ) )
                {
                    $SIDEBAR_MENU.find( "li" ).removeClass( "active active-sm" );
                    $SIDEBAR_MENU.find( "li ul" ).slideUp();
                }
            }
            $li.addClass('active');

            $('ul:first', $li).slideDown(function() {
                setContentHeight();
            });
        }
    });

// toggle small or large menu 
$MENU_TOGGLE.on('click', function() {
        console.log('clicked - menu toggle');
        
        if ($BODY.hasClass('nav-md')) {
            $SIDEBAR_MENU.find('li.active ul').hide();
            $SIDEBAR_MENU.find('li.active').addClass('active-sm').removeClass('active');
        } else {
            $SIDEBAR_MENU.find('li.active-sm ul').show();
            $SIDEBAR_MENU.find('li.active-sm').addClass('active').removeClass('active-sm');
        }

    $BODY.toggleClass('nav-md nav-sm');

    setContentHeight();

    $('.dataTable').each ( function () { $(this).dataTable().fnDraw(); });
});

    // check active menu
    $SIDEBAR_MENU.find('a[href="' + CURRENT_URL + '"]').parent('li').addClass('current-page');

    $SIDEBAR_MENU.find('a').filter(function () {
        return this.href == CURRENT_URL;
    }).parent('li').addClass('current-page').parents('ul').slideDown(function() {
        setContentHeight();
    }).parent().addClass('active');

    // recompute content when resizing
    $(window).smartresize(function(){  
        setContentHeight();
    });

    setContentHeight();

    // fixed sidebar
    if ($.fn.mCustomScrollbar) {
        $('.menu_fixed').mCustomScrollbar({
            autoHideScrollbar: true,
            theme: 'minimal',
            mouseWheel:{ preventDefault: true }
        });
    }
};
// /Sidebar

    var randNum = function() {
      return (Math.floor(Math.random() * (1 + 40 - 20))) + 20;
    };


// Panel toolbox
$(document).ready(function() {
    $('.collapse-link').on('click', function() {
        var $BOX_PANEL = $(this).closest('.x_panel'),
            $ICON = $(this).find('i'),
            $BOX_CONTENT = $BOX_PANEL.find('.x_content');
        
        // fix for some div with hardcoded fix class
        if ($BOX_PANEL.attr('style')) {
            $BOX_CONTENT.slideToggle(200, function(){
                $BOX_PANEL.removeAttr('style');
            });
        } else {
            $BOX_CONTENT.slideToggle(200); 
            $BOX_PANEL.css('height', 'auto');  
        }

        $ICON.toggleClass('fa-chevron-up fa-chevron-down');
    });

    $('.close-link').click(function () {
        var $BOX_PANEL = $(this).closest('.x_panel');

        $BOX_PANEL.remove();
    });
});
// /Panel toolbox

// Tooltip
$(document).ready(function() {
    $('[data-toggle="tooltip"]').tooltip({
        container: 'body'
    });
});
// /Tooltip

// Progressbar
if ($(".progress .progress-bar")[0]) {
    $('.progress .progress-bar').progressbar();
}
// /Progressbar

// Switchery
$(document).ready(function() {
    if ($(".js-switch")[0]) {
        var elems = Array.prototype.slice.call(document.querySelectorAll('.js-switch'));
        elems.forEach(function (html) {
            var switchery = new Switchery(html, {
                color: '#26B99A'
            });
        });
    }
});
// /Switchery


// iCheck
$(document).ready(function() {
    if ($("input.flat")[0]) {
        $(document).ready(function () {
            $('input.flat').iCheck({
                checkboxClass: 'icheckbox_flat-green',
                radioClass: 'iradio_flat-green'
            });
        });
    }
});
// /iCheck

// Table
$('table input').on('ifChecked', function () {
    checkState = '';
    $(this).parent().parent().parent().addClass('selected');
    countChecked();
});
$('table input').on('ifUnchecked', function () {
    checkState = '';
    $(this).parent().parent().parent().removeClass('selected');
    countChecked();
});

var checkState = '';

$('.bulk_action input').on('ifChecked', function () {
    checkState = '';
    $(this).parent().parent().parent().addClass('selected');
    countChecked();
});
$('.bulk_action input').on('ifUnchecked', function () {
    checkState = '';
    $(this).parent().parent().parent().removeClass('selected');
    countChecked();
});
$('.bulk_action input#check-all').on('ifChecked', function () {
    checkState = 'all';
    countChecked();
});
$('.bulk_action input#check-all').on('ifUnchecked', function () {
    checkState = 'none';
    countChecked();
});

function countChecked() {
    if (checkState === 'all') {
        $(".bulk_action input[name='table_records']").iCheck('check');
    }
    if (checkState === 'none') {
        $(".bulk_action input[name='table_records']").iCheck('uncheck');
    }

    var checkCount = $(".bulk_action input[name='table_records']:checked").length;

    if (checkCount) {
        $('.column-title').hide();
        $('.bulk-actions').show();
        $('.action-cnt').html(checkCount + ' Records Selected');
    } else {
        $('.column-title').show();
        $('.bulk-actions').hide();
    }
}



// Accordion
$(document).ready(function() {
    $(".expand").on("click", function () {
        $(this).next().slideToggle(200);
        $expand = $(this).find(">:first-child");

        if ($expand.text() == "+") {
            $expand.text("-");
        } else {
            $expand.text("+");
        }
    });
});

// NProgress
if (typeof NProgress != 'undefined') {
    $(document).ready(function () {
        NProgress.start();
    });

    $(window).load(function () {
        NProgress.done();
    });
}

    
      //hover and retain popover when on popover content
        var originalLeave = $.fn.popover.Constructor.prototype.leave;
        $.fn.popover.Constructor.prototype.leave = function(obj) {
          var self = obj instanceof this.constructor ?
            obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type);
          var container, timeout;

          originalLeave.call(this, obj);

          if (obj.currentTarget) {
            container = $(obj.currentTarget).siblings('.popover');
            timeout = self.timeout;
            container.one('mouseenter', function() {
              //We entered the actual popover – call off the dogs
              clearTimeout(timeout);
              //Let's monitor popover content instead
              container.one('mouseleave', function() {
                $.fn.popover.Constructor.prototype.leave.call(self, self);
              });
            });
          }
        };

        $('body').popover({
          selector: '[data-popover]',
          trigger: 'click hover',
          delay: {
            show: 50,
            hide: 400
          }
        });


    function gd(year, month, day) {
        return new Date(year, month - 1, day).getTime();
    }
      
    
    function init_flot_chart(){
        
        if( typeof ($.plot) === 'undefined'){ return; }
        
        console.log('init_flot_chart');
        
        
        
        var arr_data1 = [
            [gd(2012, 1, 1), 17],
            [gd(2012, 1, 2), 74],
            [gd(2012, 1, 3), 6],
            [gd(2012, 1, 4), 39],
            [gd(2012, 1, 5), 20],
            [gd(2012, 1, 6), 85],
            [gd(2012, 1, 7), 7]
        ];

        var arr_data2 = [
          [gd(2012, 1, 1), 82],
          [gd(2012, 1, 2), 23],
          [gd(2012, 1, 3), 66],
          [gd(2012, 1, 4), 9],
          [gd(2012, 1, 5), 119],
          [gd(2012, 1, 6), 6],
          [gd(2012, 1, 7), 9]
        ];
        
        var arr_data3 = [
            [0, 1],
            [1, 9],
            [2, 6],
            [3, 10],
            [4, 5],
            [5, 17],
            [6, 6],
            [7, 10],
            [8, 7],
            [9, 11],
            [10, 35],
            [11, 9],
            [12, 12],
            [13, 5],
            [14, 3],
            [15, 4],
            [16, 9]
        ];
        
        var chart_plot_02_data = [];
        
        var chart_plot_03_data = [
            [0, 1],
            [1, 9],
            [2, 6],
            [3, 10],
            [4, 5],
            [5, 17],
            [6, 6],
            [7, 10],
            [8, 7],
            [9, 11],
            [10, 35],
            [11, 9],
            [12, 12],
            [13, 5],
            [14, 3],
            [15, 4],
            [16, 9]
        ];
        
        
        for (var i = 0; i < 30; i++) {
          chart_plot_02_data.push([new Date(Date.today().add(i).days()).getTime(), randNum() + i + i + 10]);
        }
        
        
        var chart_plot_01_settings = {
          series: {
            lines: {
              show: false,
              fill: true
            },
            splines: {
              show: true,
              tension: 0.4,
              lineWidth: 1,
              fill: 0.4
            },
            points: {
              radius: 0,
              show: true
            },
            shadowSize: 2
          },
          grid: {
            verticalLines: true,
            hoverable: true,
            clickable: true,
            tickColor: "#d5d5d5",
            borderWidth: 1,
            color: '#fff'
          },
          colors: ["rgba(38, 185, 154, 0.38)", "rgba(3, 88, 106, 0.38)"],
          xaxis: {
            tickColor: "rgba(51, 51, 51, 0.06)",
            mode: "time",
            tickSize: [1, "day"],
            //tickLength: 10,
            axisLabel: "Date",
            axisLabelUseCanvas: true,
            axisLabelFontSizePixels: 12,
            axisLabelFontFamily: 'Verdana, Arial',
            axisLabelPadding: 10
          },
          yaxis: {
            ticks: 8,
            tickColor: "rgba(51, 51, 51, 0.06)",
          },
          tooltip: false
        }
        
        var chart_plot_02_settings = {
            grid: {
                show: true,
                aboveData: true,
                color: "#3f3f3f",
                labelMargin: 10,
                axisMargin: 0,
                borderWidth: 0,
                borderColor: null,
                minBorderMargin: 5,
                clickable: true,
                hoverable: true,
                autoHighlight: true,
                mouseActiveRadius: 100
            },
            series: {
                lines: {
                    show: true,
                    fill: true,
                    lineWidth: 2,
                    steps: false
                },
                points: {
                    show: true,
                    radius: 4.5,
                    symbol: "circle",
                    lineWidth: 3.0
                }
            },
            legend: {
                position: "ne",
                margin: [0, -25],
                noColumns: 0,
                labelBoxBorderColor: null,
                labelFormatter: function(label, series) {
                    return label + '&nbsp;&nbsp;';
                },
                width: 40,
                height: 1
            },
            colors: ['#96CA59', '#3F97EB', '#72c380', '#6f7a8a', '#f7cb38', '#5a8022', '#2c7282'],
            shadowSize: 0,
            tooltip: true,
            tooltipOpts: {
                content: "%s: %y.0",
                xDateFormat: "%d/%m",
            shifts: {
                x: -30,
                y: -50
            },
            defaultTheme: false
            },
            yaxis: {
                min: 0
            },
            xaxis: {
                mode: "time",
                minTickSize: [1, "day"],
                timeformat: "%d/%m/%y",
                min: chart_plot_02_data[0][0],
                max: chart_plot_02_data[20][0]
            }
        };  
    
        var chart_plot_03_settings = {
            series: {
                curvedLines: {
                    apply: true,
                    active: true,
                    monotonicFit: true
                }
            },
            colors: ["#26B99A"],
            grid: {
                borderWidth: {
                    top: 0,
                    right: 0,
                    bottom: 1,
                    left: 1
                },
                borderColor: {
                    bottom: "#7F8790",
                    left: "#7F8790"
                }
            }
        };
        
        
        if ($("#chart_plot_01").length){
            console.log('Plot1');
            
            $.plot( $("#chart_plot_01"), [ arr_data1, arr_data2 ],  chart_plot_01_settings );
        }
        
        
        if ($("#chart_plot_02").length){
            console.log('Plot2');
            
            $.plot( $("#chart_plot_02"), 
            [{ 
                label: "Email Sent", 
                data: chart_plot_02_data, 
                lines: { 
                    fillColor: "rgba(150, 202, 89, 0.12)" 
                }, 
                points: { 
                    fillColor: "#fff" } 
            }], chart_plot_02_settings);
            
        }
        
        if ($("#chart_plot_03").length){
            console.log('Plot3');
            
            
            $.plot($("#chart_plot_03"), [{
                label: "Registrations",
                data: chart_plot_03_data,
                lines: {
                    fillColor: "rgba(150, 202, 89, 0.12)"
                }, 
                points: {
                    fillColor: "#fff"
                }
            }], chart_plot_03_settings);
            
        };
      
    } 
    
        
    /* STARRR */
            
    function init_starrr() {
        
        if( typeof (starrr) === 'undefined'){ return; }
        console.log('init_starrr');
        
        $(".stars").starrr();

        $('.stars-existing').starrr({
          rating: 4
        });

        $('.stars').on('starrr:change', function (e, value) {
          $('.stars-count').html(value);
        });

        $('.stars-existing').on('starrr:change', function (e, value) {
          $('.stars-count-existing').html(value);
        });
        
      };
    
    
    function init_JQVmap(){

        //console.log('check init_JQVmap [' + typeof (VectorCanvas) + '][' + typeof (jQuery.fn.vectorMap) + ']' );  
        
        if(typeof (jQuery.fn.vectorMap) === 'undefined'){ return; }
        
        console.log('init_JQVmap');
         
            if ($('#world-map-gdp').length ){
         
                $('#world-map-gdp').vectorMap({
                    map: 'world_en',
                    backgroundColor: null,
                    color: '#ffffff',
                    hoverOpacity: 0.7,
                    selectedColor: '#666666',
                    enableZoom: true,
                    showTooltip: true,
                    values: sample_data,
                    scaleColors: ['#E6F2F0', '#149B7E'],
                    normalizeFunction: 'polynomial'
                });
            
            }
            
            if ($('#usa_map').length ){
            
                $('#usa_map').vectorMap({
                    map: 'usa_en',
                    backgroundColor: null,
                    color: '#ffffff',
                    hoverOpacity: 0.7,
                    selectedColor: '#666666',
                    enableZoom: true,
                    showTooltip: true,
                    values: sample_data,
                    scaleColors: ['#E6F2F0', '#149B7E'],
                    normalizeFunction: 'polynomial'
                });
            
            }
            
    };
            
        
    function init_skycons(){
                
            if( typeof (Skycons) === 'undefined'){ return; }
            console.log('init_skycons');
        
            var icons = new Skycons({
                "color": "#73879C"
              }),
              list = [
                "clear-day", "clear-night", "partly-cloudy-day",
                "partly-cloudy-night", "cloudy", "rain", "sleet", "snow", "wind",
                "fog"
              ],
              i;

            for (i = list.length; i--;)
              icons.set(list[i], list[i]);

            icons.play();
    
    }  
       
       
    function init_chart_doughnut(){
                
        if( typeof (Chart) === 'undefined'){ return; }
        
        console.log('init_chart_doughnut');
     
        if ($('.canvasDoughnut').length){
            
        var chart_doughnut_settings = {
                type: 'doughnut',
                tooltipFillColor: "rgba(51, 51, 51, 0.55)",
                data: {
                    labels: [
                        "Symbian",
                        "Blackberry",
                        "Other",
                        "Android",
                        "IOS"
                    ],
                    datasets: [{
                        data: [15, 20, 30, 10, 30],
                        backgroundColor: [
                            "#BDC3C7",
                            "#9B59B6",
                            "#E74C3C",
                            "#26B99A",
                            "#3498DB"
                        ],
                        hoverBackgroundColor: [
                            "#CFD4D8",
                            "#B370CF",
                            "#E95E4F",
                            "#36CAAB",
                            "#49A9EA"
                        ]
                    }]
                },
                options: { 
                    legend: false, 
                    responsive: false 
                }
            }
        
            $('.canvasDoughnut').each(function(){
                
                var chart_element = $(this);
                var chart_doughnut = new Chart( chart_element, chart_doughnut_settings);
                
            });         
        
        }  
       
    }
       
    function init_gauge() {
            
        if( typeof (Gauge) === 'undefined'){ return; }
        
        console.log('init_gauge [' + $('.gauge-chart').length + ']');
        
        console.log('init_gauge');
        

          var chart_gauge_settings = {
          lines: 12,
          angle: 0,
          lineWidth: 0.4,
          pointer: {
              length: 0.75,
              strokeWidth: 0.042,
              color: '#1D212A'
          },
          limitMax: 'false',
          colorStart: '#1ABC9C',
          colorStop: '#1ABC9C',
          strokeColor: '#F0F3F3',
          generateGradient: true
      };
        
        
        if ($('#chart_gauge_01').length){ 
        
            var chart_gauge_01_elem = document.getElementById('chart_gauge_01');
            var chart_gauge_01 = new Gauge(chart_gauge_01_elem).setOptions(chart_gauge_settings);
            
        }   
        
        
        if ($('#gauge-text').length){ 
        
            chart_gauge_01.maxValue = 6000;
            chart_gauge_01.animationSpeed = 32;
            chart_gauge_01.set(3200);
            chart_gauge_01.setTextField(document.getElementById("gauge-text"));
        
        }
        
        if ($('#chart_gauge_02').length){
        
            var chart_gauge_02_elem = document.getElementById('chart_gauge_02');
            var chart_gauge_02 = new Gauge(chart_gauge_02_elem).setOptions(chart_gauge_settings);
            
        }
        
        
        if ($('#gauge-text2').length){
            
            chart_gauge_02.maxValue = 9000;
            chart_gauge_02.animationSpeed = 32;
            chart_gauge_02.set(2400);
            chart_gauge_02.setTextField(document.getElementById("gauge-text2"));
        
        }
    
    
    }   
           
    /* SPARKLINES */
            
        function init_sparklines() {
            
            if(typeof (jQuery.fn.sparkline) === 'undefined'){ return; }
            console.log('init_sparklines'); 
            
            
            $(".sparkline_one").sparkline([2, 4, 3, 4, 5, 4, 5, 4, 3, 4, 5, 6, 4, 5, 6, 3, 5, 4, 5, 4, 5, 4, 3, 4, 5, 6, 7, 5, 4, 3, 5, 6], {
                type: 'bar',
                height: '125',
                barWidth: 13,
                colorMap: {
                    '7': '#a1a1a1'
                },
                barSpacing: 2,
                barColor: '#26B99A'
            });
            
            
            $(".sparkline_two").sparkline([2, 4, 3, 4, 5, 4, 5, 4, 3, 4, 5, 6, 7, 5, 4, 3, 5, 6], {
                type: 'bar',
                height: '40',
                barWidth: 9,
                colorMap: {
                    '7': '#a1a1a1'  
                },
                barSpacing: 2,
                barColor: '#26B99A'
            });
            
            
            $(".sparkline_three").sparkline([2, 4, 3, 4, 5, 4, 5, 4, 3, 4, 5, 6, 7, 5, 4, 3, 5, 6], {
                type: 'line',
                width: '200',
                height: '40',
                lineColor: '#26B99A',
                fillColor: 'rgba(223, 223, 223, 0.57)',
                lineWidth: 2,
                spotColor: '#26B99A',
                minSpotColor: '#26B99A'
            });
            
            
            $(".sparkline11").sparkline([2, 4, 3, 4, 5, 4, 5, 4, 3, 4, 6, 2, 4, 3, 4, 5, 4, 5, 4, 3], {
                type: 'bar',
                height: '40',
                barWidth: 8,
                colorMap: {
                    '7': '#a1a1a1'
                },
                barSpacing: 2,
                barColor: '#26B99A'
            });
            
            
            $(".sparkline22").sparkline([2, 4, 3, 4, 7, 5, 4, 3, 5, 6, 2, 4, 3, 4, 5, 4, 5, 4, 3, 4, 6], {
                type: 'line',
                height: '40',
                width: '200',
                lineColor: '#26B99A',
                fillColor: '#ffffff',
                lineWidth: 3,
                spotColor: '#34495E',
                minSpotColor: '#34495E'
            });
    
    
            $(".sparkline_bar").sparkline([2, 4, 3, 4, 5, 4, 5, 4, 3, 4, 5, 6, 4, 5, 6, 3, 5], {
                type: 'bar',
                colorMap: {
                    '7': '#a1a1a1'
                },
                barColor: '#26B99A'
            });
            
            
            $(".sparkline_area").sparkline([5, 6, 7, 9, 9, 5, 3, 2, 2, 4, 6, 7], {
                type: 'line',
                lineColor: '#26B99A',
                fillColor: '#26B99A',
                spotColor: '#4578a0',
                minSpotColor: '#728fb2',
                maxSpotColor: '#6d93c4',
                highlightSpotColor: '#ef5179',
                highlightLineColor: '#8ba8bf',
                spotRadius: 2.5,
                width: 85
            });
            
            
            $(".sparkline_line").sparkline([2, 4, 3, 4, 5, 4, 5, 4, 3, 4, 5, 6, 4, 5, 6, 3, 5], {
                type: 'line',
                lineColor: '#26B99A',
                fillColor: '#ffffff',
                width: 85,
                spotColor: '#34495E',
                minSpotColor: '#34495E'
            });
            
            
            $(".sparkline_pie").sparkline([1, 1, 2, 1], {
                type: 'pie',
                sliceColors: ['#26B99A', '#ccc', '#75BCDD', '#D66DE2']
            });
            
            
            $(".sparkline_discreet").sparkline([4, 6, 7, 7, 4, 3, 2, 1, 4, 4, 2, 4, 3, 7, 8, 9, 7, 6, 4, 3], {
                type: 'discrete',
                barWidth: 3,
                lineColor: '#26B99A',
                width: '85',
            });

            
        };   
       
       
       /* AUTOCOMPLETE */
            
        function init_autocomplete() {
            
            if( typeof ($.fn.autocomplete) === 'undefined'){ return; }
            console.log('init_autocomplete');
            
            var countries = { AD:"Andorra",A2:"Andorra Test",AE:"United Arab Emirates",AF:"Afghanistan",AG:"Antigua and Barbuda",AI:"Anguilla",AL:"Albania",AM:"Armenia",AN:"Netherlands Antilles",AO:"Angola",AQ:"Antarctica",AR:"Argentina",AS:"American Samoa",AT:"Austria",AU:"Australia",AW:"Aruba",AX:"Åland Islands",AZ:"Azerbaijan",BA:"Bosnia and Herzegovina",BB:"Barbados",BD:"Bangladesh",BE:"Belgium",BF:"Burkina Faso",BG:"Bulgaria",BH:"Bahrain",BI:"Burundi",BJ:"Benin",BL:"Saint Barthélemy",BM:"Bermuda",BN:"Brunei",BO:"Bolivia",BQ:"British Antarctic Territory",BR:"Brazil",BS:"Bahamas",BT:"Bhutan",BV:"Bouvet Island",BW:"Botswana",BY:"Belarus",BZ:"Belize",CA:"Canada",CC:"Cocos [Keeling] Islands",CD:"Congo - Kinshasa",CF:"Central African Republic",CG:"Congo - Brazzaville",CH:"Switzerland",CI:"Côte d’Ivoire",CK:"Cook Islands",CL:"Chile",CM:"Cameroon",CN:"China",CO:"Colombia",CR:"Costa Rica",CS:"Serbia and Montenegro",CT:"Canton and Enderbury Islands",CU:"Cuba",CV:"Cape Verde",CX:"Christmas Island",CY:"Cyprus",CZ:"Czech Republic",DD:"East Germany",DE:"Germany",DJ:"Djibouti",DK:"Denmark",DM:"Dominica",DO:"Dominican Republic",DZ:"Algeria",EC:"Ecuador",EE:"Estonia",EG:"Egypt",EH:"Western Sahara",ER:"Eritrea",ES:"Spain",ET:"Ethiopia",FI:"Finland",FJ:"Fiji",FK:"Falkland Islands",FM:"Micronesia",FO:"Faroe Islands",FQ:"French Southern and Antarctic Territories",FR:"France",FX:"Metropolitan France",GA:"Gabon",GB:"United Kingdom",GD:"Grenada",GE:"Georgia",GF:"French Guiana",GG:"Guernsey",GH:"Ghana",GI:"Gibraltar",GL:"Greenland",GM:"Gambia",GN:"Guinea",GP:"Guadeloupe",GQ:"Equatorial Guinea",GR:"Greece",GS:"South Georgia and the South Sandwich Islands",GT:"Guatemala",GU:"Guam",GW:"Guinea-Bissau",GY:"Guyana",HK:"Hong Kong SAR China",HM:"Heard Island and McDonald Islands",HN:"Honduras",HR:"Croatia",HT:"Haiti",HU:"Hungary",ID:"Indonesia",IE:"Ireland",IL:"Israel",IM:"Isle of Man",IN:"India",IO:"British Indian Ocean Territory",IQ:"Iraq",IR:"Iran",IS:"Iceland",IT:"Italy",JE:"Jersey",JM:"Jamaica",JO:"Jordan",JP:"Japan",JT:"Johnston Island",KE:"Kenya",KG:"Kyrgyzstan",KH:"Cambodia",KI:"Kiribati",KM:"Comoros",KN:"Saint Kitts and Nevis",KP:"North Korea",KR:"South Korea",KW:"Kuwait",KY:"Cayman Islands",KZ:"Kazakhstan",LA:"Laos",LB:"Lebanon",LC:"Saint Lucia",LI:"Liechtenstein",LK:"Sri Lanka",LR:"Liberia",LS:"Lesotho",LT:"Lithuania",LU:"Luxembourg",LV:"Latvia",LY:"Libya",MA:"Morocco",MC:"Monaco",MD:"Moldova",ME:"Montenegro",MF:"Saint Martin",MG:"Madagascar",MH:"Marshall Islands",MI:"Midway Islands",MK:"Macedonia",ML:"Mali",MM:"Myanmar [Burma]",MN:"Mongolia",MO:"Macau SAR China",MP:"Northern Mariana Islands",MQ:"Martinique",MR:"Mauritania",MS:"Montserrat",MT:"Malta",MU:"Mauritius",MV:"Maldives",MW:"Malawi",MX:"Mexico",MY:"Malaysia",MZ:"Mozambique",NA:"Namibia",NC:"New Caledonia",NE:"Niger",NF:"Norfolk Island",NG:"Nigeria",NI:"Nicaragua",NL:"Netherlands",NO:"Norway",NP:"Nepal",NQ:"Dronning Maud Land",NR:"Nauru",NT:"Neutral Zone",NU:"Niue",NZ:"New Zealand",OM:"Oman",PA:"Panama",PC:"Pacific Islands Trust Territory",PE:"Peru",PF:"French Polynesia",PG:"Papua New Guinea",PH:"Philippines",PK:"Pakistan",PL:"Poland",PM:"Saint Pierre and Miquelon",PN:"Pitcairn Islands",PR:"Puerto Rico",PS:"Palestinian Territories",PT:"Portugal",PU:"U.S. Miscellaneous Pacific Islands",PW:"Palau",PY:"Paraguay",PZ:"Panama Canal Zone",QA:"Qatar",RE:"Réunion",RO:"Romania",RS:"Serbia",RU:"Russia",RW:"Rwanda",SA:"Saudi Arabia",SB:"Solomon Islands",SC:"Seychelles",SD:"Sudan",SE:"Sweden",SG:"Singapore",SH:"Saint Helena",SI:"Slovenia",SJ:"Svalbard and Jan Mayen",SK:"Slovakia",SL:"Sierra Leone",SM:"San Marino",SN:"Senegal",SO:"Somalia",SR:"Suriname",ST:"São Tomé and Príncipe",SU:"Union of Soviet Socialist Republics",SV:"El Salvador",SY:"Syria",SZ:"Swaziland",TC:"Turks and Caicos Islands",TD:"Chad",TF:"French Southern Territories",TG:"Togo",TH:"Thailand",TJ:"Tajikistan",TK:"Tokelau",TL:"Timor-Leste",TM:"Turkmenistan",TN:"Tunisia",TO:"Tonga",TR:"Turkey",TT:"Trinidad and Tobago",TV:"Tuvalu",TW:"Taiwan",TZ:"Tanzania",UA:"Ukraine",UG:"Uganda",UM:"U.S. Minor Outlying Islands",US:"United States",UY:"Uruguay",UZ:"Uzbekistan",VA:"Vatican City",VC:"Saint Vincent and the Grenadines",VD:"North Vietnam",VE:"Venezuela",VG:"British Virgin Islands",VI:"U.S. Virgin Islands",VN:"Vietnam",VU:"Vanuatu",WF:"Wallis and Futuna",WK:"Wake Island",WS:"Samoa",YD:"People's Democratic Republic of Yemen",YE:"Yemen",YT:"Mayotte",ZA:"South Africa",ZM:"Zambia",ZW:"Zimbabwe",ZZ:"Unknown or Invalid Region" };

            var countriesArray = $.map(countries, function(value, key) {
              return {
                value: value,
                data: key
              };
            });

            // initialize autocomplete with custom appendTo
            $('#autocomplete-custom-append').autocomplete({
              lookup: countriesArray
            });
            
        };
       
     /* AUTOSIZE */
            
        function init_autosize() {
            
            if(typeof $.fn.autosize !== 'undefined'){
            
            autosize($('.resizable_textarea'));
            
            }
            
        };  
       
       /* PARSLEY */
            
        function init_parsley() {
            
            if( typeof (parsley) === 'undefined'){ return; }
            console.log('init_parsley');
            
            $/*.listen*/('parsley:field:validate', function() {
              validateFront();
            });
            $('#demo-form .btn').on('click', function() {
              $('#demo-form').parsley().validate();
              validateFront();
            });
            var validateFront = function() {
              if (true === $('#demo-form').parsley().isValid()) {
                $('.bs-callout-info').removeClass('hidden');
                $('.bs-callout-warning').addClass('hidden');
              } else {
                $('.bs-callout-info').addClass('hidden');
                $('.bs-callout-warning').removeClass('hidden');
              }
            };
          
            $/*.listen*/('parsley:field:validate', function() {
              validateFront();
            });
            $('#demo-form2 .btn').on('click', function() {
              $('#demo-form2').parsley().validate();
              validateFront();
            });
            var validateFront = function() {
              if (true === $('#demo-form2').parsley().isValid()) {
                $('.bs-callout-info').removeClass('hidden');
                $('.bs-callout-warning').addClass('hidden');
              } else {
                $('.bs-callout-info').addClass('hidden');
                $('.bs-callout-warning').removeClass('hidden');
              }
            };
            
              try {
                hljs.initHighlightingOnLoad();
              } catch (err) {}
            
        };
       
        
          /* INPUTS */
          
            function onAddTag(tag) {
                alert("Added a tag: " + tag);
              }

              function onRemoveTag(tag) {
                alert("Removed a tag: " + tag);
              }

              function onChangeTag(input, tag) {
                alert("Changed a tag: " + tag);
              }

              //tags input
            function init_TagsInput() {
                  
                if(typeof $.fn.tagsInput !== 'undefined'){  
                 
                $('#tags_1').tagsInput({
                  width: 'auto'
                });
                
                }
                
            };
       
        /* SELECT2 */
      
        function init_select2() {
             
            if( typeof (select2) === 'undefined'){ return; }
            console.log('init_toolbox');
             
            $(".select2_single").select2({
              placeholder: "Select a state",
              allowClear: true
            });
            $(".select2_group").select2({});
            $(".select2_multiple").select2({
              maximumSelectionLength: 4,
              placeholder: "With Max Selection limit 4",
              allowClear: true
            });
            
        };
       
       /* WYSIWYG EDITOR */

        function init_wysiwyg() {
            
        if( typeof ($.fn.wysiwyg) === 'undefined'){ return; }
        console.log('init_wysiwyg');    
            
        function init_ToolbarBootstrapBindings() {
          var fonts = ['Serif', 'Sans', 'Arial', 'Arial Black', 'Courier',
              'Courier New', 'Comic Sans MS', 'Helvetica', 'Impact', 'Lucida Grande', 'Lucida Sans', 'Tahoma', 'Times',
              'Times New Roman', 'Verdana'
            ],
            fontTarget = $('[title=Font]').siblings('.dropdown-menu');
          $.each(fonts, function(idx, fontName) {
            fontTarget.append($('<li><a data-edit="fontName ' + fontName + '" style="font-family:\'' + fontName + '\'">' + fontName + '</a></li>'));
          });
          $('a[title]').tooltip({
            container: 'body'
          });
          $('.dropdown-menu input').click(function() {
              return false;
            })
            .change(function() {
              $(this).parent('.dropdown-menu').siblings('.dropdown-toggle').dropdown('toggle');
            })
            .keydown('esc', function() {
              this.value = '';
              $(this).change();
            });

          $('[data-role=magic-overlay]').each(function() {
            var overlay = $(this),
              target = $(overlay.data('target'));
            overlay.css('opacity', 0).css('position', 'absolute').offset(target.offset()).width(target.outerWidth()).height(target.outerHeight());
          });

          if ("onwebkitspeechchange" in document.createElement("input")) {
            var editorOffset = $('#editor').offset();

            $('.voiceBtn').css('position', 'absolute').offset({
              top: editorOffset.top,
              left: editorOffset.left + $('#editor').innerWidth() - 35
            });
          } else {
            $('.voiceBtn').hide();
          }
        }

        function showErrorAlert(reason, detail) {
          var msg = '';
          if (reason === 'unsupported-file-type') {
            msg = "Unsupported format " + detail;
          } else {
            console.log("error uploading file", reason, detail);
          }
          $('<div class="alert"> <button type="button" class="close" data-dismiss="alert">&times;</button>' +
            '<strong>File upload error</strong> ' + msg + ' </div>').prependTo('#alerts');
        }

       $('.editor-wrapper').each(function(){
            var id = $(this).attr('id');    //editor-one
            
            $(this).wysiwyg({
                toolbarSelector: '[data-target="#' + id + '"]',
                fileUploadError: showErrorAlert
            }); 
        });
 
        
        window.prettyPrint;
        prettyPrint();
    
    };
      
    /* CROPPER */
        
        function init_cropper() {
            
            
            if( typeof ($.fn.cropper) === 'undefined'){ return; }
            console.log('init_cropper');
            
            var $image = $('#image');
            var $download = $('#download');
            var $dataX = $('#dataX');
            var $dataY = $('#dataY');
            var $dataHeight = $('#dataHeight');
            var $dataWidth = $('#dataWidth');
            var $dataRotate = $('#dataRotate');
            var $dataScaleX = $('#dataScaleX');
            var $dataScaleY = $('#dataScaleY');
            var options = {
                  aspectRatio: 16 / 9,
                  preview: '.img-preview',
                  crop: function (e) {
                    $dataX.val(Math.round(e.x));
                    $dataY.val(Math.round(e.y));
                    $dataHeight.val(Math.round(e.height));
                    $dataWidth.val(Math.round(e.width));
                    $dataRotate.val(e.rotate);
                    $dataScaleX.val(e.scaleX);
                    $dataScaleY.val(e.scaleY);
                  }
                };


            // Tooltip
            $('[data-toggle="tooltip"]').tooltip();


            // Cropper
            $image.on({
              'build.cropper': function (e) {
                console.log(e.type);
              },
              'built.cropper': function (e) {
                console.log(e.type);
              },
              'cropstart.cropper': function (e) {
                console.log(e.type, e.action);
              },
              'cropmove.cropper': function (e) {
                console.log(e.type, e.action);
              },
              'cropend.cropper': function (e) {
                console.log(e.type, e.action);
              },
              'crop.cropper': function (e) {
                console.log(e.type, e.x, e.y, e.width, e.height, e.rotate, e.scaleX, e.scaleY);
              },
              'zoom.cropper': function (e) {
                console.log(e.type, e.ratio);
              }
            }).cropper(options);


            // Buttons
            if (!$.isFunction(document.createElement('canvas').getContext)) {
              $('button[data-method="getCroppedCanvas"]').prop('disabled', true);
            }

            if (typeof document.createElement('cropper').style.transition === 'undefined') {
              $('button[data-method="rotate"]').prop('disabled', true);
              $('button[data-method="scale"]').prop('disabled', true);
            }


            // Download
            if (typeof $download[0].download === 'undefined') {
              $download.addClass('disabled');
            }


            // Options
            $('.docs-toggles').on('change', 'input', function () {
              var $this = $(this);
              var name = $this.attr('name');
              var type = $this.prop('type');
              var cropBoxData;
              var canvasData;

              if (!$image.data('cropper')) {
                return;
              }

              if (type === 'checkbox') {
                options[name] = $this.prop('checked');
                cropBoxData = $image.cropper('getCropBoxData');
                canvasData = $image.cropper('getCanvasData');

                options.built = function () {
                  $image.cropper('setCropBoxData', cropBoxData);
                  $image.cropper('setCanvasData', canvasData);
                };
              } else if (type === 'radio') {
                options[name] = $this.val();
              }

              $image.cropper('destroy').cropper(options);
            });


            // Methods
            $('.docs-buttons').on('click', '[data-method]', function () {
              var $this = $(this);
              var data = $this.data();
              var $target;
              var result;

              if ($this.prop('disabled') || $this.hasClass('disabled')) {
                return;
              }

              if ($image.data('cropper') && data.method) {
                data = $.extend({}, data); // Clone a new one

                if (typeof data.target !== 'undefined') {
                  $target = $(data.target);

                  if (typeof data.option === 'undefined') {
                    try {
                      data.option = JSON.parse($target.val());
                    } catch (e) {
                      console.log(e.message);
                    }
                  }
                }

                result = $image.cropper(data.method, data.option, data.secondOption);

                switch (data.method) {
                  case 'scaleX':
                  case 'scaleY':
                    $(this).data('option', -data.option);
                    break;

                  case 'getCroppedCanvas':
                    if (result) {

                      // Bootstrap's Modal
                      $('#getCroppedCanvasModal').modal().find('.modal-body').html(result);

                      if (!$download.hasClass('disabled')) {
                        $download.attr('href', result.toDataURL());
                      }
                    }

                    break;
                }

                if ($.isPlainObject(result) && $target) {
                  try {
                    $target.val(JSON.stringify(result));
                  } catch (e) {
                    console.log(e.message);
                  }
                }

              }
            });

            // Keyboard
            $(document.body).on('keydown', function (e) {
              if (!$image.data('cropper') || this.scrollTop > 300) {
                return;
              }

              switch (e.which) {
                case 37:
                  e.preventDefault();
                  $image.cropper('move', -1, 0);
                  break;

                case 38:
                  e.preventDefault();
                  $image.cropper('move', 0, -1);
                  break;

                case 39:
                  e.preventDefault();
                  $image.cropper('move', 1, 0);
                  break;

                case 40:
                  e.preventDefault();
                  $image.cropper('move', 0, 1);
                  break;
              }
            });

            // Import image
            var $inputImage = $('#inputImage');
            var URL = window.URL || window.webkitURL;
            var blobURL;

            if (URL) {
              $inputImage.change(function () {
                var files = this.files;
                var file;

                if (!$image.data('cropper')) {
                  return;
                }

                if (files && files.length) {
                  file = files[0];

                  if (/^image\/\w+$/.test(file.type)) {
                    blobURL = URL.createObjectURL(file);
                    $image.one('built.cropper', function () {

                      // Revoke when load complete
                      URL.revokeObjectURL(blobURL);
                    }).cropper('reset').cropper('replace', blobURL);
                    $inputImage.val('');
                  } else {
                    window.alert('Please choose an image file.');
                  }
                }
              });
            } else {
              $inputImage.prop('disabled', true).parent().addClass('disabled');
            }
            
            
        };
        
        /* CROPPER --- end */  
      
        /* KNOB */
      
        function init_knob() {
        
                if( typeof ($.fn.knob) === 'undefined'){ return; }
                console.log('init_knob');
    
                $(".knob").knob({
                  change: function(value) {
                    //console.log("change : " + value);
                  },
                  release: function(value) {
                    //console.log(this.$.attr('value'));
                    console.log("release : " + value);
                  },
                  cancel: function() {
                    console.log("cancel : ", this);
                  },
                  /*format : function (value) {
                   return value + '%';
                   },*/
                  draw: function() {

                    // "tron" case
                    if (this.$.data('skin') == 'tron') {

                      this.cursorExt = 0.3;

                      var a = this.arc(this.cv) // Arc
                        ,
                        pa // Previous arc
                        , r = 1;

                      this.g.lineWidth = this.lineWidth;

                      if (this.o.displayPrevious) {
                        pa = this.arc(this.v);
                        this.g.beginPath();
                        this.g.strokeStyle = this.pColor;
                        this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, pa.s, pa.e, pa.d);
                        this.g.stroke();
                      }

                      this.g.beginPath();
                      this.g.strokeStyle = r ? this.o.fgColor : this.fgColor;
                      this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, a.s, a.e, a.d);
                      this.g.stroke();

                      this.g.lineWidth = 2;
                      this.g.beginPath();
                      this.g.strokeStyle = this.o.fgColor;
                      this.g.arc(this.xy, this.xy, this.radius - this.lineWidth + 1 + this.lineWidth * 2 / 3, 0, 2 * Math.PI, false);
                      this.g.stroke();

                      return false;
                    }
                  }
                  
                });

                // Example of infinite knob, iPod click wheel
                var v, up = 0,
                  down = 0,
                  i = 0,
                  $idir = $("div.idir"),
                  $ival = $("div.ival"),
                  incr = function() {
                    i++;
                    $idir.show().html("+").fadeOut();
                    $ival.html(i);
                  },
                  decr = function() {
                    i--;
                    $idir.show().html("-").fadeOut();
                    $ival.html(i);
                  };
                $("input.infinite").knob({
                  min: 0,
                  max: 20,
                  stopper: false,
                  change: function() {
                    if (v > this.cv) {
                      if (up) {
                        decr();
                        up = 0;
                      } else {
                        up = 1;
                        down = 0;
                      }
                    } else {
                      if (v < this.cv) {
                        if (down) {
                          incr();
                          down = 0;
                        } else {
                          down = 1;
                          up = 0;
                        }
                      }
                    }
                    v = this.cv;
                  }
                });
                
        };
     
        /* INPUT MASK */
            
        function init_InputMask() {
            
            if( typeof ($.fn.inputmask) === 'undefined'){ return; }
            console.log('init_InputMask');
            
                $(":input").inputmask();
                
        };
      
        /* COLOR PICKER */
             
        function init_ColorPicker() {
            
            if( typeof ($.fn.colorpicker) === 'undefined'){ return; }
            console.log('init_ColorPicker');
            
                $('.demo1').colorpicker();
                $('.demo2').colorpicker();

                $('#demo_forceformat').colorpicker({
                    format: 'rgba',
                    horizontal: true
                });

                $('#demo_forceformat3').colorpicker({
                    format: 'rgba',
                });

                $('.demo-auto').colorpicker();
            
        }; 
       
       
        /* ION RANGE SLIDER */
            
        function init_IonRangeSlider() {
            
            if( typeof ($.fn.ionRangeSlider) === 'undefined'){ return; }
            console.log('init_IonRangeSlider');
            
            $("#range_27").ionRangeSlider({
              type: "double",
              min: 1000000,
              max: 2000000,
              grid: true,
              force_edges: true
            });
            $("#range").ionRangeSlider({
              hide_min_max: true,
              keyboard: true,
              min: 0,
              max: 5000,
              from: 1000,
              to: 4000,
              type: 'double',
              step: 1,
              prefix: "$",
              grid: true
            });
            $("#range_25").ionRangeSlider({
              type: "double",
              min: 1000000,
              max: 2000000,
              grid: true
            });
            $("#range_26").ionRangeSlider({
              type: "double",
              min: 0,
              max: 10000,
              step: 500,
              grid: true,
              grid_snap: true
            });
            $("#range_31").ionRangeSlider({
              type: "double",
              min: 0,
              max: 100,
              from: 30,
              to: 70,
              from_fixed: true
            });
            $(".range_min_max").ionRangeSlider({
              type: "double",
              min: 0,
              max: 100,
              from: 30,
              to: 70,
              max_interval: 50
            });
            $(".range_time24").ionRangeSlider({
              min: +moment().subtract(12, "hours").format("X"),
              max: +moment().format("X"),
              from: +moment().subtract(6, "hours").format("X"),
              grid: true,
              force_edges: true,
              prettify: function(num) {
                var m = moment(num, "X");
                return m.format("Do MMMM, HH:mm");
              }
            });
            
        };
       
       
       /* DATERANGEPICKER */
       
        function init_daterangepicker() {

            if( typeof ($.fn.daterangepicker) === 'undefined'){ return; }
            console.log('init_daterangepicker');
        
            var cb = function(start, end, label) {
              console.log(start.toISOString(), end.toISOString(), label);
              $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
            };

            var optionSet1 = {
              startDate: moment().subtract(29, 'days'),
              endDate: moment(),
              minDate: '01/01/2012',
              maxDate: '12/31/2015',
              dateLimit: {
                days: 60
              },
              showDropdowns: true,
              showWeekNumbers: true,
              timePicker: false,
              timePickerIncrement: 1,
              timePicker12Hour: true,
              ranges: {
                'Today': [moment(), moment()],
                'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
                'Last 7 Days': [moment().subtract(6, 'days'), moment()],
                'Last 30 Days': [moment().subtract(29, 'days'), moment()],
                'This Month': [moment().startOf('month'), moment().endOf('month')],
                'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
              },
              opens: 'left',
              buttonClasses: ['btn btn-default'],
              applyClass: 'btn-small btn-primary',
              cancelClass: 'btn-small',
              format: 'MM/DD/YYYY',
              separator: ' to ',
              locale: {
                applyLabel: 'Submit',
                cancelLabel: 'Clear',
                fromLabel: 'From',
                toLabel: 'To',
                customRangeLabel: 'Custom',
                daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
                monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
                firstDay: 1
              }
            };
            
            $('#reportrange span').html(moment().subtract(29, 'days').format('MMMM D, YYYY') + ' - ' + moment().format('MMMM D, YYYY'));
            $('#reportrange').daterangepicker(optionSet1, cb);
            $('#reportrange').on('show.daterangepicker', function() {
              console.log("show event fired");
            });
            $('#reportrange').on('hide.daterangepicker', function() {
              console.log("hide event fired");
            });
            $('#reportrange').on('apply.daterangepicker', function(ev, picker) {
              console.log("apply event fired, start/end dates are " + picker.startDate.format('MMMM D, YYYY') + " to " + picker.endDate.format('MMMM D, YYYY'));
            });
            $('#reportrange').on('cancel.daterangepicker', function(ev, picker) {
              console.log("cancel event fired");
            });
            $('#options1').click(function() {
              $('#reportrange').data('daterangepicker').setOptions(optionSet1, cb);
            });
            $('#options2').click(function() {
              $('#reportrange').data('daterangepicker').setOptions(optionSet2, cb);
            });
            $('#destroy').click(function() {
              $('#reportrange').data('daterangepicker').remove();
            });
   
        }
       
       function init_daterangepicker_right() {
          
                if( typeof ($.fn.daterangepicker) === 'undefined'){ return; }
                console.log('init_daterangepicker_right');
          
                var cb = function(start, end, label) {
                  console.log(start.toISOString(), end.toISOString(), label);
                  $('#reportrange_right span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
                };

                var optionSet1 = {
                  startDate: moment().subtract(29, 'days'),
                  endDate: moment(),
                  minDate: '01/01/2012',
                  maxDate: '12/31/2020',
                  dateLimit: {
                    days: 60
                  },
                  showDropdowns: true,
                  showWeekNumbers: true,
                  timePicker: false,
                  timePickerIncrement: 1,
                  timePicker12Hour: true,
                  ranges: {
                    'Today': [moment(), moment()],
                    'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
                    'Last 7 Days': [moment().subtract(6, 'days'), moment()],
                    'Last 30 Days': [moment().subtract(29, 'days'), moment()],
                    'This Month': [moment().startOf('month'), moment().endOf('month')],
                    'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
                  },
                  opens: 'right',
                  buttonClasses: ['btn btn-default'],
                  applyClass: 'btn-small btn-primary',
                  cancelClass: 'btn-small',
                  format: 'MM/DD/YYYY',
                  separator: ' to ',
                  locale: {
                    applyLabel: 'Submit',
                    cancelLabel: 'Clear',
                    fromLabel: 'From',
                    toLabel: 'To',
                    customRangeLabel: 'Custom',
                    daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
                    monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
                    firstDay: 1
                  }
                };

                $('#reportrange_right span').html(moment().subtract(29, 'days').format('MMMM D, YYYY') + ' - ' + moment().format('MMMM D, YYYY'));

                $('#reportrange_right').daterangepicker(optionSet1, cb);

                $('#reportrange_right').on('show.daterangepicker', function() {
                  console.log("show event fired");
                });
                $('#reportrange_right').on('hide.daterangepicker', function() {
                  console.log("hide event fired");
                });
                $('#reportrange_right').on('apply.daterangepicker', function(ev, picker) {
                  console.log("apply event fired, start/end dates are " + picker.startDate.format('MMMM D, YYYY') + " to " + picker.endDate.format('MMMM D, YYYY'));
                });
                $('#reportrange_right').on('cancel.daterangepicker', function(ev, picker) {
                  console.log("cancel event fired");
                });

                $('#options1').click(function() {
                  $('#reportrange_right').data('daterangepicker').setOptions(optionSet1, cb);
                });

                $('#options2').click(function() {
                  $('#reportrange_right').data('daterangepicker').setOptions(optionSet2, cb);
                });

                $('#destroy').click(function() {
                  $('#reportrange_right').data('daterangepicker').remove();
                });

       }
       
        function init_daterangepicker_single_call() {
          
            if( typeof ($.fn.daterangepicker) === 'undefined'){ return; }
            console.log('init_daterangepicker_single_call');
           
            $('#single_cal1').daterangepicker({
              singleDatePicker: true,
              singleClasses: "picker_1"
            }, function(start, end, label) {
              console.log(start.toISOString(), end.toISOString(), label);
            });
            $('#single_cal2').daterangepicker({
              singleDatePicker: true,
              singleClasses: "picker_2"
            }, function(start, end, label) {
              console.log(start.toISOString(), end.toISOString(), label);
            });
            $('#single_cal3').daterangepicker({
              singleDatePicker: true,
              singleClasses: "picker_3"
            }, function(start, end, label) {
              console.log(start.toISOString(), end.toISOString(), label);
            });
            $('#single_cal4').daterangepicker({
              singleDatePicker: true,
              singleClasses: "picker_4"
            }, function(start, end, label) {
              console.log(start.toISOString(), end.toISOString(), label);
            });
  
  
        }
        
         
        function init_daterangepicker_reservation() {
          
            if( typeof ($.fn.daterangepicker) === 'undefined'){ return; }
            console.log('init_daterangepicker_reservation');
         
            $('#reservation').daterangepicker(null, function(start, end, label) {
              console.log(start.toISOString(), end.toISOString(), label);
            });

            $('#reservation-time').daterangepicker({
              timePicker: true,
              timePickerIncrement: 30,
              locale: {
                format: 'MM/DD/YYYY h:mm A'
              }
            });
    
        }
       
       /* SMART WIZARD */
        
        function init_SmartWizard() {
            
            if( typeof ($.fn.smartWizard) === 'undefined'){ return; }
            console.log('init_SmartWizard');
            
            $('#wizard').smartWizard();

            $('#wizard_verticle').smartWizard({
              transitionEffect: 'slide'
            });

            $('.buttonNext').addClass('btn btn-success');
            $('.buttonPrevious').addClass('btn btn-primary');
            $('.buttonFinish').addClass('btn btn-default');
            
        };
       
       
      /* VALIDATOR */

      function init_validator () {
         
        if( typeof (validator) === 'undefined'){ return; }
        console.log('init_validator'); 
      
      // initialize the validator function
      validator.message.date = 'not a real date';

      // validate a field on "blur" event, a 'select' on 'change' event & a '.reuired' classed multifield on 'keyup':
      $('form')
        .on('blur', 'input[required], input.optional, select.required', validator.checkField)
        .on('change', 'select.required', validator.checkField)
        .on('keypress', 'input[required][pattern]', validator.keypress);

      $('.multi.required').on('keyup blur', 'input', function() {
        validator.checkField.apply($(this).siblings().last()[0]);
      });

      $('form').submit(function(e) {
        e.preventDefault();
        var submit = true;

        // evaluate the form using generic validaing
        if (!validator.checkAll($(this))) {
          submit = false;
        }

        if (submit)
          this.submit();

        return false;
        });
      
      };
       
        /* PNotify */
            
        function init_PNotify() {
            
            if( typeof (PNotify) === 'undefined'){ return; }
            console.log('init_PNotify');
        }; 
       
       
       /* CUSTOM NOTIFICATION */
            
        function init_CustomNotification() {
            
            console.log('run_customtabs');
            
            if( typeof (CustomTabs) === 'undefined'){ return; }
            console.log('init_CustomTabs');
            
            var cnt = 10;

            TabbedNotification = function(options) {
              var message = "<div id='ntf" + cnt + "' class='text alert-" + options.type + "' style='display:none'><h2><i class='fa fa-bell'></i> " + options.title +
                "</h2><div class='close'><a href='javascript:;' class='notification_close'><i class='fa fa-close'></i></a></div><p>" + options.text + "</p></div>";

              if (!document.getElementById('custom_notifications')) {
                alert('doesnt exists');
              } else {
                $('#custom_notifications ul.notifications').append("<li><a id='ntlink" + cnt + "' class='alert-" + options.type + "' href='#ntf" + cnt + "'><i class='fa fa-bell animated shake'></i></a></li>");
                $('#custom_notifications #notif-group').append(message);
                cnt++;
                CustomTabs(options);
              }
            };

            CustomTabs = function(options) {
              $('.tabbed_notifications > div').hide();
              $('.tabbed_notifications > div:first-of-type').show();
              $('#custom_notifications').removeClass('dsp_none');
              $('.notifications a').click(function(e) {
                e.preventDefault();
                var $this = $(this),
                  tabbed_notifications = '#' + $this.parents('.notifications').data('tabbed_notifications'),
                  others = $this.closest('li').siblings().children('a'),
                  target = $this.attr('href');
                others.removeClass('active');
                $this.addClass('active');
                $(tabbed_notifications).children('div').hide();
                $(target).show();
              });
            };

            CustomTabs();

            var tabid = idname = '';

            $(document).on('click', '.notification_close', function(e) {
              idname = $(this).parent().parent().attr("id");
              tabid = idname.substr(-2);
              $('#ntf' + tabid).remove();
              $('#ntlink' + tabid).parent().remove();
              $('.notifications a').first().addClass('active');
              $('#notif-group div').first().css('display', 'block');
            });
            
        };
        
            /* EASYPIECHART */
            
            function init_EasyPieChart() {
                
                if( typeof ($.fn.easyPieChart) === 'undefined'){ return; }
                console.log('init_EasyPieChart');
                
                $('.chart').easyPieChart({
                  easing: 'easeOutElastic',
                  delay: 3000,
                  barColor: '#26B99A',
                  trackColor: '#fff',
                  scaleColor: false,
                  lineWidth: 20,
                  trackWidth: 16,
                  lineCap: 'butt',
                  onStep: function(from, to, percent) {
                    $(this.el).find('.percent').text(Math.round(percent));
                  }
                });
                var chart = window.chart = $('.chart').data('easyPieChart');
                $('.js_update').on('click', function() {
                  chart.update(Math.random() * 200 - 100);
                });

                //hover and retain popover when on popover content
                var originalLeave = $.fn.popover.Constructor.prototype.leave;
                $.fn.popover.Constructor.prototype.leave = function(obj) {
                  var self = obj instanceof this.constructor ?
                    obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type);
                  var container, timeout;

                  originalLeave.call(this, obj);

                  if (obj.currentTarget) {
                    container = $(obj.currentTarget).siblings('.popover');
                    timeout = self.timeout;
                    container.one('mouseenter', function() {
                      //We entered the actual popover – call off the dogs
                      clearTimeout(timeout);
                      //Let's monitor popover content instead
                      container.one('mouseleave', function() {
                        $.fn.popover.Constructor.prototype.leave.call(self, self);
                      });
                    });
                  }
                };

                $('body').popover({
                  selector: '[data-popover]',
                  trigger: 'click hover',
                  delay: {
                    show: 50,
                    hide: 400
                  }
                });
                
            };
       
        
        function init_charts() {
            
                console.log('run_charts  typeof [' + typeof (Chart) + ']');
            
                if( typeof (Chart) === 'undefined'){ return; }
                
                console.log('init_charts');
            
                
                Chart.defaults.global.legend = {
                    enabled: false
                };
                
                

            if ($('#canvas_line').length ){
                
                var canvas_line_00 = new Chart(document.getElementById("canvas_line"), {
                  type: 'line',
                  data: {
                    labels: ["January", "February", "March", "April", "May", "June", "July"],
                    datasets: [{
                      label: "My First dataset",
                      backgroundColor: "rgba(38, 185, 154, 0.31)",
                      borderColor: "rgba(38, 185, 154, 0.7)",
                      pointBorderColor: "rgba(38, 185, 154, 0.7)",
                      pointBackgroundColor: "rgba(38, 185, 154, 0.7)",
                      pointHoverBackgroundColor: "#fff",
                      pointHoverBorderColor: "rgba(220,220,220,1)",
                      pointBorderWidth: 1,
                      data: [31, 74, 6, 39, 20, 85, 7]
                    }, {
                      label: "My Second dataset",
                      backgroundColor: "rgba(3, 88, 106, 0.3)",
                      borderColor: "rgba(3, 88, 106, 0.70)",
                      pointBorderColor: "rgba(3, 88, 106, 0.70)",
                      pointBackgroundColor: "rgba(3, 88, 106, 0.70)",
                      pointHoverBackgroundColor: "#fff",
                      pointHoverBorderColor: "rgba(151,187,205,1)",
                      pointBorderWidth: 1,
                      data: [82, 23, 66, 9, 99, 4, 2]
                    }]
                  },
                });
                
            }

            
            if ($('#canvas_line1').length ){
            
                var canvas_line_01 = new Chart(document.getElementById("canvas_line1"), {
                  type: 'line',
                  data: {
                    labels: ["January", "February", "March", "April", "May", "June", "July"],
                    datasets: [{
                      label: "My First dataset",
                      backgroundColor: "rgba(38, 185, 154, 0.31)",
                      borderColor: "rgba(38, 185, 154, 0.7)",
                      pointBorderColor: "rgba(38, 185, 154, 0.7)",
                      pointBackgroundColor: "rgba(38, 185, 154, 0.7)",
                      pointHoverBackgroundColor: "#fff",
                      pointHoverBorderColor: "rgba(220,220,220,1)",
                      pointBorderWidth: 1,
                      data: [31, 74, 6, 39, 20, 85, 7]
                    }, {
                      label: "My Second dataset",
                      backgroundColor: "rgba(3, 88, 106, 0.3)",
                      borderColor: "rgba(3, 88, 106, 0.70)",
                      pointBorderColor: "rgba(3, 88, 106, 0.70)",
                      pointBackgroundColor: "rgba(3, 88, 106, 0.70)",
                      pointHoverBackgroundColor: "#fff",
                      pointHoverBorderColor: "rgba(151,187,205,1)",
                      pointBorderWidth: 1,
                      data: [82, 23, 66, 9, 99, 4, 2]
                    }]
                  },
                });
            
            }
                
                
            if ($('#canvas_line2').length ){        
            
                var canvas_line_02 = new Chart(document.getElementById("canvas_line2"), {
                  type: 'line',
                  data: {
                    labels: ["January", "February", "March", "April", "May", "June", "July"],
                    datasets: [{
                      label: "My First dataset",
                      backgroundColor: "rgba(38, 185, 154, 0.31)",
                      borderColor: "rgba(38, 185, 154, 0.7)",
                      pointBorderColor: "rgba(38, 185, 154, 0.7)",
                      pointBackgroundColor: "rgba(38, 185, 154, 0.7)",
                      pointHoverBackgroundColor: "#fff",
                      pointHoverBorderColor: "rgba(220,220,220,1)",
                      pointBorderWidth: 1,
                      data: [31, 74, 6, 39, 20, 85, 7]
                    }, {
                      label: "My Second dataset",
                      backgroundColor: "rgba(3, 88, 106, 0.3)",
                      borderColor: "rgba(3, 88, 106, 0.70)",
                      pointBorderColor: "rgba(3, 88, 106, 0.70)",
                      pointBackgroundColor: "rgba(3, 88, 106, 0.70)",
                      pointHoverBackgroundColor: "#fff",
                      pointHoverBorderColor: "rgba(151,187,205,1)",
                      pointBorderWidth: 1,
                      data: [82, 23, 66, 9, 99, 4, 2]
                    }]
                  },
                });

            }   
            
            
            if ($('#canvas_line3').length ){
            
                var canvas_line_03 = new Chart(document.getElementById("canvas_line3"), {
                  type: 'line',
                  data: {
                    labels: ["January", "February", "March", "April", "May", "June", "July"],
                    datasets: [{
                      label: "My First dataset",
                      backgroundColor: "rgba(38, 185, 154, 0.31)",
                      borderColor: "rgba(38, 185, 154, 0.7)",
                      pointBorderColor: "rgba(38, 185, 154, 0.7)",
                      pointBackgroundColor: "rgba(38, 185, 154, 0.7)",
                      pointHoverBackgroundColor: "#fff",
                      pointHoverBorderColor: "rgba(220,220,220,1)",
                      pointBorderWidth: 1,
                      data: [31, 74, 6, 39, 20, 85, 7]
                    }, {
                      label: "My Second dataset",
                      backgroundColor: "rgba(3, 88, 106, 0.3)",
                      borderColor: "rgba(3, 88, 106, 0.70)",
                      pointBorderColor: "rgba(3, 88, 106, 0.70)",
                      pointBackgroundColor: "rgba(3, 88, 106, 0.70)",
                      pointHoverBackgroundColor: "#fff",
                      pointHoverBorderColor: "rgba(151,187,205,1)",
                      pointBorderWidth: 1,
                      data: [82, 23, 66, 9, 99, 4, 2]
                    }]
                  },
                });

            }   
            
            
            if ($('#canvas_line4').length ){
                
                var canvas_line_04 = new Chart(document.getElementById("canvas_line4"), {
                  type: 'line',
                  data: {
                    labels: ["January", "February", "March", "April", "May", "June", "July"],
                    datasets: [{
                      label: "My First dataset",
                      backgroundColor: "rgba(38, 185, 154, 0.31)",
                      borderColor: "rgba(38, 185, 154, 0.7)",
                      pointBorderColor: "rgba(38, 185, 154, 0.7)",
                      pointBackgroundColor: "rgba(38, 185, 154, 0.7)",
                      pointHoverBackgroundColor: "#fff",
                      pointHoverBorderColor: "rgba(220,220,220,1)",
                      pointBorderWidth: 1,
                      data: [31, 74, 6, 39, 20, 85, 7]
                    }, {
                      label: "My Second dataset",
                      backgroundColor: "rgba(3, 88, 106, 0.3)",
                      borderColor: "rgba(3, 88, 106, 0.70)",
                      pointBorderColor: "rgba(3, 88, 106, 0.70)",
                      pointBackgroundColor: "rgba(3, 88, 106, 0.70)",
                      pointHoverBackgroundColor: "#fff",
                      pointHoverBorderColor: "rgba(151,187,205,1)",
                      pointBorderWidth: 1,
                      data: [82, 23, 66, 9, 99, 4, 2]
                    }]
                  },
                });     
                
            }
            
                
              // Line chart
             
            if ($('#lineChart').length ){   
            
              var ctx = document.getElementById("lineChart");
              var lineChart = new Chart(ctx, {
                type: 'line',
                data: {
                  labels: ["January", "February", "March", "April", "May", "June", "July"],
                  datasets: [{
                    label: "My First dataset",
                    backgroundColor: "rgba(38, 185, 154, 0.31)",
                    borderColor: "rgba(38, 185, 154, 0.7)",
                    pointBorderColor: "rgba(38, 185, 154, 0.7)",
                    pointBackgroundColor: "rgba(38, 185, 154, 0.7)",
                    pointHoverBackgroundColor: "#fff",
                    pointHoverBorderColor: "rgba(220,220,220,1)",
                    pointBorderWidth: 1,
                    data: [31, 74, 6, 39, 20, 85, 7]
                  }, {
                    label: "My Second dataset",
                    backgroundColor: "rgba(3, 88, 106, 0.3)",
                    borderColor: "rgba(3, 88, 106, 0.70)",
                    pointBorderColor: "rgba(3, 88, 106, 0.70)",
                    pointBackgroundColor: "rgba(3, 88, 106, 0.70)",
                    pointHoverBackgroundColor: "#fff",
                    pointHoverBorderColor: "rgba(151,187,205,1)",
                    pointBorderWidth: 1,
                    data: [82, 23, 66, 9, 99, 4, 2]
                  }]
                },
              });
            
            }
                
              // Bar chart
              
            if ($('#mybarChart').length ){ 
              
              var ctx = document.getElementById("mybarChart");
              var mybarChart = new Chart(ctx, {
                type: 'bar',
                data: {
                  labels: ["January", "February", "March", "April", "May", "June", "July"],
                  datasets: [{
                    label: '# of Votes',
                    backgroundColor: "#26B99A",
                    data: [51, 30, 40, 28, 92, 50, 45]
                  }, {
                    label: '# of Votes',
                    backgroundColor: "#03586A",
                    data: [41, 56, 25, 48, 72, 34, 12]
                  }]
                },

                options: {
                  scales: {
                    yAxes: [{
                      ticks: {
                        beginAtZero: true
                      }
                    }]
                  }
                }
              });
              
            } 
              

              // Doughnut chart
              
            if ($('#canvasDoughnut').length ){ 
              
              var ctx = document.getElementById("canvasDoughnut");
              var data = {
                labels: [
                  "Dark Grey",
                  "Purple Color",
                  "Gray Color",
                  "Green Color",
                  "Blue Color"
                ],
                datasets: [{
                  data: [120, 50, 140, 180, 100],
                  backgroundColor: [
                    "#455C73",
                    "#9B59B6",
                    "#BDC3C7",
                    "#26B99A",
                    "#3498DB"
                  ],
                  hoverBackgroundColor: [
                    "#34495E",
                    "#B370CF",
                    "#CFD4D8",
                    "#36CAAB",
                    "#49A9EA"
                  ]

                }]
              };

              var canvasDoughnut = new Chart(ctx, {
                type: 'doughnut',
                tooltipFillColor: "rgba(51, 51, 51, 0.55)",
                data: data
              });
             
            } 

              // Radar chart
              
            if ($('#canvasRadar').length ){ 
              
              var ctx = document.getElementById("canvasRadar");
              var data = {
                labels: ["Eating", "Drinking", "Sleeping", "Designing", "Coding", "Cycling", "Running"],
                datasets: [{
                  label: "My First dataset",
                  backgroundColor: "rgba(3, 88, 106, 0.2)",
                  borderColor: "rgba(3, 88, 106, 0.80)",
                  pointBorderColor: "rgba(3, 88, 106, 0.80)",
                  pointBackgroundColor: "rgba(3, 88, 106, 0.80)",
                  pointHoverBackgroundColor: "#fff",
                  pointHoverBorderColor: "rgba(220,220,220,1)",
                  data: [65, 59, 90, 81, 56, 55, 40]
                }, {
                  label: "My Second dataset",
                  backgroundColor: "rgba(38, 185, 154, 0.2)",
                  borderColor: "rgba(38, 185, 154, 0.85)",
                  pointColor: "rgba(38, 185, 154, 0.85)",
                  pointStrokeColor: "#fff",
                  pointHighlightFill: "#fff",
                  pointHighlightStroke: "rgba(151,187,205,1)",
                  data: [28, 48, 40, 19, 96, 27, 100]
                }]
              };

              var canvasRadar = new Chart(ctx, {
                type: 'radar',
                data: data,
              });
            
            }
            
            
              // Pie chart
              if ($('#pieChart').length ){
                  
                  var ctx = document.getElementById("pieChart");
                  var data = {
                    datasets: [{
                      data: [120, 50, 140, 180, 100],
                      backgroundColor: [
                        "#455C73",
                        "#9B59B6",
                        "#BDC3C7",
                        "#26B99A",
                        "#3498DB"
                      ],
                      label: 'My dataset' // for legend
                    }],
                    labels: [
                      "Dark Gray",
                      "Purple",
                      "Gray",
                      "Green",
                      "Blue"
                    ]
                  };

                  var pieChart = new Chart(ctx, {
                    data: data,
                    type: 'pie',
                    otpions: {
                      legend: false
                    }
                  });
                  
              }
            
              
              // PolarArea chart

            if ($('#polarArea').length ){

                var ctx = document.getElementById("polarArea");
                var data = {
                datasets: [{
                  data: [120, 50, 140, 180, 100],
                  backgroundColor: [
                    "#455C73",
                    "#9B59B6",
                    "#BDC3C7",
                    "#26B99A",
                    "#3498DB"
                  ],
                  label: 'My dataset'
                }],
                labels: [
                  "Dark Gray",
                  "Purple",
                  "Gray",
                  "Green",
                  "Blue"
                ]
                };

                var polarArea = new Chart(ctx, {
                data: data,
                type: 'polarArea',
                options: {
                  scale: {
                    ticks: {
                      beginAtZero: true
                    }
                  }
                }
                });
            
            }
        }

        /* COMPOSE */
        
        function init_compose() {
        
            if( typeof ($.fn.slideToggle) === 'undefined'){ return; }
            console.log('init_compose');
        
            $('#compose, .compose-close').click(function(){
                $('.compose').slideToggle();
            });
        
        };
       
        /* CALENDAR */
          
            function  init_calendar() {
                    
                if( typeof ($.fn.fullCalendar) === 'undefined'){ return; }
                console.log('init_calendar');
                    
                var date = new Date(),
                    d = date.getDate(),
                    m = date.getMonth(),
                    y = date.getFullYear(),
                    started,
                    categoryClass;

                var calendar = $('#calendar').fullCalendar({
                  header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'month,agendaWeek,agendaDay,listMonth'
                  },
                  selectable: true,
                  selectHelper: true,
                  select: function(start, end, allDay) {
                    $('#fc_create').click();

                    started = start;
                    ended = end;

                    $(".antosubmit").on("click", function() {
                      var title = $("#title").val();
                      if (end) {
                        ended = end;
                      }

                      categoryClass = $("#event_type").val();

                      if (title) {
                        calendar.fullCalendar('renderEvent', {
                            title: title,
                            start: started,
                            end: end,
                            allDay: allDay
                          },
                          true // make the event "stick"
                        );
                      }

                      $('#title').val('');

                      calendar.fullCalendar('unselect');

                      $('.antoclose').click();

                      return false;
                    });
                  },
                  eventClick: function(calEvent, jsEvent, view) {
                    $('#fc_edit').click();
                    $('#title2').val(calEvent.title);

                    categoryClass = $("#event_type").val();

                    $(".antosubmit2").on("click", function() {
                      calEvent.title = $("#title2").val();

                      calendar.fullCalendar('updateEvent', calEvent);
                      $('.antoclose2').click();
                    });

                    calendar.fullCalendar('unselect');
                  },
                  editable: true,
                  events: [{
                    title: 'All Day Event',
                    start: new Date(y, m, 1)
                  }, {
                    title: 'Long Event',
                    start: new Date(y, m, d - 5),
                    end: new Date(y, m, d - 2)
                  }, {
                    title: 'Meeting',
                    start: new Date(y, m, d, 10, 30),
                    allDay: false
                  }, {
                    title: 'Lunch',
                    start: new Date(y, m, d + 14, 12, 0),
                    end: new Date(y, m, d, 14, 0),
                    allDay: false
                  }, {
                    title: 'Birthday Party',
                    start: new Date(y, m, d + 1, 19, 0),
                    end: new Date(y, m, d + 1, 22, 30),
                    allDay: false
                  }, {
                    title: 'Click for Google',
                    start: new Date(y, m, 28),
                    end: new Date(y, m, 29),
                    url: 'http://google.com/'
                  }]
                });
                
            };
       
        /* DATA TABLES */
            
            function init_DataTables() {
                
                console.log('run_datatables');
                
                if( typeof ($.fn.DataTable) === 'undefined'){ return; }
                console.log('init_DataTables');
                
                var handleDataTableButtons = function() {
                  if ($("#datatable-buttons").length) {
                    $("#datatable-buttons").DataTable({
                      dom: "Blfrtip",
                      buttons: [
                        {
                          extend: "copy",
                          className: "btn-sm"
                        },
                        {
                          extend: "csv",
                          className: "btn-sm"
                        },
                        {
                          extend: "excel",
                          className: "btn-sm"
                        },
                        {
                          extend: "pdfHtml5",
                          className: "btn-sm"
                        },
                        {
                          extend: "print",
                          className: "btn-sm"
                        },
                      ],
                      responsive: true
                    });
                  }
                };

                TableManageButtons = function() {
                  "use strict";
                  return {
                    init: function() {
                      handleDataTableButtons();
                    }
                  };
                }();

                $('#datatable').dataTable();

                $('#datatable-keytable').DataTable({
                  keys: true
                });

                $('#datatable-responsive').DataTable();

                $('#datatable-scroller').DataTable({
                  ajax: "js/datatables/json/scroller-demo.json",
                  deferRender: true,
                  scrollY: 380,
                  scrollCollapse: true,
                  scroller: true
                });

                $('#datatable-fixed-header').DataTable({
                  fixedHeader: true
                });

                var $datatable = $('#datatable-checkbox');

                $datatable.dataTable({
                  'order': [[ 1, 'asc' ]],
                  'columnDefs': [
                    { orderable: false, targets: [0] }
                  ]
                });
                $datatable.on('draw.dt', function() {
                  $('checkbox input').iCheck({
                    checkboxClass: 'icheckbox_flat-green'
                  });
                });

                TableManageButtons.init();
                
            };
       
            /* CHART - MORRIS  */
        
        function init_morris_charts() {
            
            if( typeof (Morris) === 'undefined'){ return; }
            console.log('init_morris_charts');
            
            if ($('#graph_bar').length){ 
            
                Morris.Bar({
                  element: 'graph_bar',
                  data: [
                    {device: 'iPhone 4', geekbench: 380},
                    {device: 'iPhone 4S', geekbench: 655},
                    {device: 'iPhone 3GS', geekbench: 275},
                    {device: 'iPhone 5', geekbench: 1571},
                    {device: 'iPhone 5S', geekbench: 655},
                    {device: 'iPhone 6', geekbench: 2154},
                    {device: 'iPhone 6 Plus', geekbench: 1144},
                    {device: 'iPhone 6S', geekbench: 2371},
                    {device: 'iPhone 6S Plus', geekbench: 1471},
                    {device: 'Other', geekbench: 1371}
                  ],
                  xkey: 'device',
                  ykeys: ['geekbench'],
                  labels: ['Geekbench'],
                  barRatio: 0.4,
                  barColors: ['#26B99A', '#34495E', '#ACADAC', '#3498DB'],
                  xLabelAngle: 35,
                  hideHover: 'auto',
                  resize: true
                });

            }   
            
            if ($('#graph_bar_group').length ){
            
                Morris.Bar({
                  element: 'graph_bar_group',
                  data: [
                    {"period": "2016-10-01", "licensed": 807, "sorned": 660},
                    {"period": "2016-09-30", "licensed": 1251, "sorned": 729},
                    {"period": "2016-09-29", "licensed": 1769, "sorned": 1018},
                    {"period": "2016-09-20", "licensed": 2246, "sorned": 1461},
                    {"period": "2016-09-19", "licensed": 2657, "sorned": 1967},
                    {"period": "2016-09-18", "licensed": 3148, "sorned": 2627},
                    {"period": "2016-09-17", "licensed": 3471, "sorned": 3740},
                    {"period": "2016-09-16", "licensed": 2871, "sorned": 2216},
                    {"period": "2016-09-15", "licensed": 2401, "sorned": 1656},
                    {"period": "2016-09-10", "licensed": 2115, "sorned": 1022}
                  ],
                  xkey: 'period',
                  barColors: ['#26B99A', '#34495E', '#ACADAC', '#3498DB'],
                  ykeys: ['licensed', 'sorned'],
                  labels: ['Licensed', 'SORN'],
                  hideHover: 'auto',
                  xLabelAngle: 60,
                  resize: true
                });

            }
            
            if ($('#graphx').length ){
            
                Morris.Bar({
                  element: 'graphx',
                  data: [
                    {x: '2015 Q1', y: 2, z: 3, a: 4},
                    {x: '2015 Q2', y: 3, z: 5, a: 6},
                    {x: '2015 Q3', y: 4, z: 3, a: 2},
                    {x: '2015 Q4', y: 2, z: 4, a: 5}
                  ],
                  xkey: 'x',
                  ykeys: ['y', 'z', 'a'],
                  barColors: ['#26B99A', '#34495E', '#ACADAC', '#3498DB'],
                  hideHover: 'auto',
                  labels: ['Y', 'Z', 'A'],
                  resize: true
                }).on('click', function (i, row) {
                    console.log(i, row);
                });

            }
            
            if ($('#graph_area').length ){
            
                Morris.Area({
                  element: 'graph_area',
                  data: [
                    {period: '2014 Q1', iphone: 2666, ipad: null, itouch: 2647},
                    {period: '2014 Q2', iphone: 2778, ipad: 2294, itouch: 2441},
                    {period: '2014 Q3', iphone: 4912, ipad: 1969, itouch: 2501},
                    {period: '2014 Q4', iphone: 3767, ipad: 3597, itouch: 5689},
                    {period: '2015 Q1', iphone: 6810, ipad: 1914, itouch: 2293},
                    {period: '2015 Q2', iphone: 5670, ipad: 4293, itouch: 1881},
                    {period: '2015 Q3', iphone: 4820, ipad: 3795, itouch: 1588},
                    {period: '2015 Q4', iphone: 15073, ipad: 5967, itouch: 5175},
                    {period: '2016 Q1', iphone: 10687, ipad: 4460, itouch: 2028},
                    {period: '2016 Q2', iphone: 8432, ipad: 5713, itouch: 1791}
                  ],
                  xkey: 'period',
                  ykeys: ['iphone', 'ipad', 'itouch'],
                  lineColors: ['#26B99A', '#34495E', '#ACADAC', '#3498DB'],
                  labels: ['iPhone', 'iPad', 'iPod Touch'],
                  pointSize: 2,
                  hideHover: 'auto',
                  resize: true
                });

            }
            
            if ($('#graph_donut').length ){
            
                Morris.Donut({
                  element: 'graph_donut',
                  data: [
                    {label: 'Jam', value: 25},
                    {label: 'Frosted', value: 40},
                    {label: 'Custard', value: 25},
                    {label: 'Sugar', value: 10}
                  ],
                  colors: ['#26B99A', '#34495E', '#ACADAC', '#3498DB'],
                  formatter: function (y) {
                    return y + "%";
                  },
                  resize: true
                });

            }
            
            if ($('#graph_line').length ){
            
                Morris.Line({
                  element: 'graph_line',
                  xkey: 'year',
                  ykeys: ['value'],
                  labels: ['Value'],
                  hideHover: 'auto',
                  lineColors: ['#26B99A', '#34495E', '#ACADAC', '#3498DB'],
                  data: [
                    {year: '2012', value: 20},
                    {year: '2013', value: 10},
                    {year: '2014', value: 5},
                    {year: '2015', value: 5},
                    {year: '2016', value: 20}
                  ],
                  resize: true
                });

                $MENU_TOGGLE.on('click', function() {
                  $(window).resize();
                });
            
            }
            
        };
       
        
        
        /* ECHRTS */
    
        
        function init_echarts() {
        
                if( typeof (echarts) === 'undefined'){ return; }
                console.log('init_echarts');
            
        
                  var theme = {
                  color: [
                      '#26B99A', '#34495E', '#BDC3C7', '#3498DB',
                      '#9B59B6', '#8abb6f', '#759c6a', '#bfd3b7'
                  ],

                  title: {
                      itemGap: 8,
                      textStyle: {
                          fontWeight: 'normal',
                          color: '#408829'
                      }
                  },

                  dataRange: {
                      color: ['#1f610a', '#97b58d']
                  },

                  toolbox: {
                      color: ['#408829', '#408829', '#408829', '#408829']
                  },

                  tooltip: {
                      backgroundColor: 'rgba(0,0,0,0.5)',
                      axisPointer: {
                          type: 'line',
                          lineStyle: {
                              color: '#408829',
                              type: 'dashed'
                          },
                          crossStyle: {
                              color: '#408829'
                          },
                          shadowStyle: {
                              color: 'rgba(200,200,200,0.3)'
                          }
                      }
                  },

                  dataZoom: {
                      dataBackgroundColor: '#eee',
                      fillerColor: 'rgba(64,136,41,0.2)',
                      handleColor: '#408829'
                  },
                  grid: {
                      borderWidth: 0
                  },

                  categoryAxis: {
                      axisLine: {
                          lineStyle: {
                              color: '#408829'
                          }
                      },
                      splitLine: {
                          lineStyle: {
                              color: ['#eee']
                          }
                      }
                  },

                  valueAxis: {
                      axisLine: {
                          lineStyle: {
                              color: '#408829'
                          }
                      },
                      splitArea: {
                          show: true,
                          areaStyle: {
                              color: ['rgba(250,250,250,0.1)', 'rgba(200,200,200,0.1)']
                          }
                      },
                      splitLine: {
                          lineStyle: {
                              color: ['#eee']
                          }
                      }
                  },
                  timeline: {
                      lineStyle: {
                          color: '#408829'
                      },
                      controlStyle: {
                          normal: {color: '#408829'},
                          emphasis: {color: '#408829'}
                      }
                  },

                  k: {
                      itemStyle: {
                          normal: {
                              color: '#68a54a',
                              color0: '#a9cba2',
                              lineStyle: {
                                  width: 1,
                                  color: '#408829',
                                  color0: '#86b379'
                              }
                          }
                      }
                  },
                  map: {
                      itemStyle: {
                          normal: {
                              areaStyle: {
                                  color: '#ddd'
                              },
                              label: {
                                  textStyle: {
                                      color: '#c12e34'
                                  }
                              }
                          },
                          emphasis: {
                              areaStyle: {
                                  color: '#99d2dd'
                              },
                              label: {
                                  textStyle: {
                                      color: '#c12e34'
                                  }
                              }
                          }
                      }
                  },
                  force: {
                      itemStyle: {
                          normal: {
                              linkStyle: {
                                  strokeColor: '#408829'
                              }
                          }
                      }
                  },
                  chord: {
                      padding: 4,
                      itemStyle: {
                          normal: {
                              lineStyle: {
                                  width: 1,
                                  color: 'rgba(128, 128, 128, 0.5)'
                              },
                              chordStyle: {
                                  lineStyle: {
                                      width: 1,
                                      color: 'rgba(128, 128, 128, 0.5)'
                                  }
                              }
                          },
                          emphasis: {
                              lineStyle: {
                                  width: 1,
                                  color: 'rgba(128, 128, 128, 0.5)'
                              },
                              chordStyle: {
                                  lineStyle: {
                                      width: 1,
                                      color: 'rgba(128, 128, 128, 0.5)'
                                  }
                              }
                          }
                      }
                  },
                  gauge: {
                      startAngle: 225,
                      endAngle: -45,
                      axisLine: {
                          show: true,
                          lineStyle: {
                              color: [[0.2, '#86b379'], [0.8, '#68a54a'], [1, '#408829']],
                              width: 8
                          }
                      },
                      axisTick: {
                          splitNumber: 10,
                          length: 12,
                          lineStyle: {
                              color: 'auto'
                          }
                      },
                      axisLabel: {
                          textStyle: {
                              color: 'auto'
                          }
                      },
                      splitLine: {
                          length: 18,
                          lineStyle: {
                              color: 'auto'
                          }
                      },
                      pointer: {
                          length: '90%',
                          color: 'auto'
                      },
                      title: {
                          textStyle: {
                              color: '#333'
                          }
                      },
                      detail: {
                          textStyle: {
                              color: 'auto'
                          }
                      }
                  },
                  textStyle: {
                      fontFamily: 'Arial, Verdana, sans-serif'
                  }
              };

              
              //echart Bar
              
            if ($('#mainb').length ){
              
                  var echartBar = echarts.init(document.getElementById('mainb'), theme);

                  echartBar.setOption({
                    title: {
                      text: 'Graph title',
                      subtext: 'Graph Sub-text'
                    },
                    tooltip: {
                      trigger: 'axis'
                    },
                    legend: {
                      data: ['sales', 'purchases']
                    },
                    toolbox: {
                      show: false
                    },
                    calculable: false,
                    xAxis: [{
                      type: 'category',
                      data: ['1?', '2?', '3?', '4?', '5?', '6?', '7?', '8?', '9?', '10?', '11?', '12?']
                    }],
                    yAxis: [{
                      type: 'value'
                    }],
                    series: [{
                      name: 'sales',
                      type: 'bar',
                      data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
                      markPoint: {
                        data: [{
                          type: 'max',
                          name: '???'
                        }, {
                          type: 'min',
                          name: '???'
                        }]
                      },
                      markLine: {
                        data: [{
                          type: 'average',
                          name: '???'
                        }]
                      }
                    }, {
                      name: 'purchases',
                      type: 'bar',
                      data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
                      markPoint: {
                        data: [{
                          name: 'sales',
                          value: 182.2,
                          xAxis: 7,
                          yAxis: 183,
                        }, {
                          name: 'purchases',
                          value: 2.3,
                          xAxis: 11,
                          yAxis: 3
                        }]
                      },
                      markLine: {
                        data: [{
                          type: 'average',
                          name: '???'
                        }]
                      }
                    }]
                  });

            }
              
              
              
              
               //echart Radar
              
            if ($('#echart_sonar').length ){ 
              
              var echartRadar = echarts.init(document.getElementById('echart_sonar'), theme);

              echartRadar.setOption({
                title: {
                  text: 'Budget vs spending',
                  subtext: 'Subtitle'
                },
                 tooltip: {
                    trigger: 'item'
                },
                legend: {
                  orient: 'vertical',
                  x: 'right',
                  y: 'bottom',
                  data: ['Allocated Budget', 'Actual Spending']
                },
                toolbox: {
                  show: true,
                  feature: {
                    restore: {
                      show: true,
                      title: "Restore"
                    },
                    saveAsImage: {
                      show: true,
                      title: "Save Image"
                    }
                  }
                },
                polar: [{
                  indicator: [{
                    text: 'Sales',
                    max: 6000
                  }, {
                    text: 'Administration',
                    max: 16000
                  }, {
                    text: 'Information Techology',
                    max: 30000
                  }, {
                    text: 'Customer Support',
                    max: 38000
                  }, {
                    text: 'Development',
                    max: 52000
                  }, {
                    text: 'Marketing',
                    max: 25000
                  }]
                }],
                calculable: true,
                series: [{
                  name: 'Budget vs spending',
                  type: 'radar',
                  data: [{
                    value: [4300, 10000, 28000, 35000, 50000, 19000],
                    name: 'Allocated Budget'
                  }, {
                    value: [5000, 14000, 28000, 31000, 42000, 21000],
                    name: 'Actual Spending'
                  }]
                }]
              });

            } 
              
               //echart Funnel
              
            if ($('#echart_pyramid').length ){ 
              
              var echartFunnel = echarts.init(document.getElementById('echart_pyramid'), theme);

              echartFunnel.setOption({
                title: {
                  text: 'Echart Pyramid Graph',
                  subtext: 'Subtitle'
                },
                tooltip: {
                  trigger: 'item',
                  formatter: "{a} <br/>{b} : {c}%"
                },
                toolbox: {
                  show: true,
                  feature: {
                    restore: {
                      show: true,
                      title: "Restore"
                    },
                    saveAsImage: {
                      show: true,
                      title: "Save Image"
                    }
                  }
                },
                legend: {
                  data: ['Something #1', 'Something #2', 'Something #3', 'Something #4', 'Something #5'],
                  orient: 'vertical',
                  x: 'left',
                  y: 'bottom'
                },
                calculable: true,
                series: [{
                  name: '漏斗图',
                  type: 'funnel',
                  width: '40%',
                  data: [{
                    value: 60,
                    name: 'Something #1'
                  }, {
                    value: 40,
                    name: 'Something #2'
                  }, {
                    value: 20,
                    name: 'Something #3'
                  }, {
                    value: 80,
                    name: 'Something #4'
                  }, {
                    value: 100,
                    name: 'Something #5'
                  }]
                }]
              });

            } 
              
               //echart Gauge
              
            if ($('#echart_gauge').length ){ 
              
              var echartGauge = echarts.init(document.getElementById('echart_gauge'), theme);

              echartGauge.setOption({
                tooltip: {
                  formatter: "{a} <br/>{b} : {c}%"
                },
                toolbox: {
                  show: true,
                  feature: {
                    restore: {
                      show: true,
                      title: "Restore"
                    },
                    saveAsImage: {
                      show: true,
                      title: "Save Image"
                    }
                  }
                },
                series: [{
                  name: 'Performance',
                  type: 'gauge',
                  center: ['50%', '50%'],
                  startAngle: 140,
                  endAngle: -140,
                  min: 0,
                  max: 100,
                  precision: 0,
                  splitNumber: 10,
                  axisLine: {
                    show: true,
                    lineStyle: {
                      color: [
                        [0.2, 'lightgreen'],
                        [0.4, 'orange'],
                        [0.8, 'skyblue'],
                        [1, '#ff4500']
                      ],
                      width: 30
                    }
                  },
                  axisTick: {
                    show: true,
                    splitNumber: 5,
                    length: 8,
                    lineStyle: {
                      color: '#eee',
                      width: 1,
                      type: 'solid'
                    }
                  },
                  axisLabel: {
                    show: true,
                    formatter: function(v) {
                      switch (v + '') {
                        case '10':
                          return 'a';
                        case '30':
                          return 'b';
                        case '60':
                          return 'c';
                        case '90':
                          return 'd';
                        default:
                          return '';
                      }
                    },
                    textStyle: {
                      color: '#333'
                    }
                  },
                  splitLine: {
                    show: true,
                    length: 30,
                    lineStyle: {
                      color: '#eee',
                      width: 2,
                      type: 'solid'
                    }
                  },
                  pointer: {
                    length: '80%',
                    width: 8,
                    color: 'auto'
                  },
                  title: {
                    show: true,
                    offsetCenter: ['-65%', -10],
                    textStyle: {
                      color: '#333',
                      fontSize: 15
                    }
                  },
                  detail: {
                    show: true,
                    backgroundColor: 'rgba(0,0,0,0)',
                    borderWidth: 0,
                    borderColor: '#ccc',
                    width: 100,
                    height: 40,
                    offsetCenter: ['-60%', 10],
                    formatter: '{value}%',
                    textStyle: {
                      color: 'auto',
                      fontSize: 30
                    }
                  },
                  data: [{
                    value: 50,
                    name: 'Performance'
                  }]
                }]
              });

            } 
              
               //echart Line
              
            if ($('#echart_line').length ){ 
              
              var echartLine = echarts.init(document.getElementById('echart_line'), theme);

              echartLine.setOption({
                title: {
                  text: 'Line Graph',
                  subtext: 'Subtitle'
                },
                tooltip: {
                  trigger: 'axis'
                },
                legend: {
                  x: 220,
                  y: 40,
                  data: ['Intent', 'Pre-order', 'Deal']
                },
                toolbox: {
                  show: true,
                  feature: {
                    magicType: {
                      show: true,
                      title: {
                        line: 'Line',
                        bar: 'Bar',
                        stack: 'Stack',
                        tiled: 'Tiled'
                      },
                      type: ['line', 'bar', 'stack', 'tiled']
                    },
                    restore: {
                      show: true,
                      title: "Restore"
                    },
                    saveAsImage: {
                      show: true,
                      title: "Save Image"
                    }
                  }
                },
                calculable: true,
                xAxis: [{
                  type: 'category',
                  boundaryGap: false,
                  data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
                }],
                yAxis: [{
                  type: 'value'
                }],
                series: [{
                  name: 'Deal',
                  type: 'line',
                  smooth: true,
                  itemStyle: {
                    normal: {
                      areaStyle: {
                        type: 'default'
                      }
                    }
                  },
                  data: [10, 12, 21, 54, 260, 830, 710]
                }, {
                  name: 'Pre-order',
                  type: 'line',
                  smooth: true,
                  itemStyle: {
                    normal: {
                      areaStyle: {
                        type: 'default'
                      }
                    }
                  },
                  data: [30, 182, 434, 791, 390, 30, 10]
                }, {
                  name: 'Intent',
                  type: 'line',
                  smooth: true,
                  itemStyle: {
                    normal: {
                      areaStyle: {
                        type: 'default'
                      }
                    }
                  },
                  data: [1320, 1132, 601, 234, 120, 90, 20]
                }]
              });

            } 
              
               //echart Scatter
              
            if ($('#echart_scatter').length ){ 
              
              var echartScatter = echarts.init(document.getElementById('echart_scatter'), theme);

              echartScatter.setOption({
                title: {
                  text: 'Scatter Graph',
                  subtext: 'Heinz  2003'
                },
                tooltip: {
                  trigger: 'axis',
                  showDelay: 0,
                  axisPointer: {
                    type: 'cross',
                    lineStyle: {
                      type: 'dashed',
                      width: 1
                    }
                  }
                },
                legend: {
                  data: ['Data2', 'Data1']
                },
                toolbox: {
                  show: true,
                  feature: {
                    saveAsImage: {
                      show: true,
                      title: "Save Image"
                    }
                  }
                },
                xAxis: [{
                  type: 'value',
                  scale: true,
                  axisLabel: {
                    formatter: '{value} cm'
                  }
                }],
                yAxis: [{
                  type: 'value',
                  scale: true,
                  axisLabel: {
                    formatter: '{value} kg'
                  }
                }],
                series: [{
                  name: 'Data1',
                  type: 'scatter',
                  tooltip: {
                    trigger: 'item',
                    formatter: function(params) {
                      if (params.value.length > 1) {
                        return params.seriesName + ' :<br/>' + params.value[0] + 'cm ' + params.value[1] + 'kg ';
                      } else {
                        return params.seriesName + ' :<br/>' + params.name + ' : ' + params.value + 'kg ';
                      }
                    }
                  },
                  data: [
                    [161.2, 51.6],
                    [167.5, 59.0],
                    [159.5, 49.2],
                    [157.0, 63.0],
                    [155.8, 53.6],
                    [170.0, 59.0],
                    [159.1, 47.6],
                    [166.0, 69.8],
                    [176.2, 66.8],
                    [160.2, 75.2],
                    [172.5, 55.2],
                    [170.9, 54.2],
                    [172.9, 62.5],
                    [153.4, 42.0],
                    [160.0, 50.0],
                    [147.2, 49.8],
                    [168.2, 49.2],
                    [175.0, 73.2],
                    [157.0, 47.8],
                    [167.6, 68.8],
                    [159.5, 50.6],
                    [175.0, 82.5],
                    [166.8, 57.2],
                    [176.5, 87.8],
                    [170.2, 72.8],
                    [174.0, 54.5],
                    [173.0, 59.8],
                    [179.9, 67.3],
                    [170.5, 67.8],
                    [160.0, 47.0],
                    [154.4, 46.2],
                    [162.0, 55.0],
                    [176.5, 83.0],
                    [160.0, 54.4],
                    [152.0, 45.8],
                    [162.1, 53.6],
                    [170.0, 73.2],
                    [160.2, 52.1],
                    [161.3, 67.9],
                    [166.4, 56.6],
                    [168.9, 62.3],
                    [163.8, 58.5],
                    [167.6, 54.5],
                    [160.0, 50.2],
                    [161.3, 60.3],
                    [167.6, 58.3],
                    [165.1, 56.2],
                    [160.0, 50.2],
                    [170.0, 72.9],
                    [157.5, 59.8],
                    [167.6, 61.0],
                    [160.7, 69.1],
                    [163.2, 55.9],
                    [152.4, 46.5],
                    [157.5, 54.3],
                    [168.3, 54.8],
                    [180.3, 60.7],
                    [165.5, 60.0],
                    [165.0, 62.0],
                    [164.5, 60.3],
                    [156.0, 52.7],
                    [160.0, 74.3],
                    [163.0, 62.0],
                    [165.7, 73.1],
                    [161.0, 80.0],
                    [162.0, 54.7],
                    [166.0, 53.2],
                    [174.0, 75.7],
                    [172.7, 61.1],
                    [167.6, 55.7],
                    [151.1, 48.7],
                    [164.5, 52.3],
                    [163.5, 50.0],
                    [152.0, 59.3],
                    [169.0, 62.5],
                    [164.0, 55.7],
                    [161.2, 54.8],
                    [155.0, 45.9],
                    [170.0, 70.6],
                    [176.2, 67.2],
                    [170.0, 69.4],
                    [162.5, 58.2],
                    [170.3, 64.8],
                    [164.1, 71.6],
                    [169.5, 52.8],
                    [163.2, 59.8],
                    [154.5, 49.0],
                    [159.8, 50.0],
                    [173.2, 69.2],
                    [170.0, 55.9],
                    [161.4, 63.4],
                    [169.0, 58.2],
                    [166.2, 58.6],
                    [159.4, 45.7],
                    [162.5, 52.2],
                    [159.0, 48.6],
                    [162.8, 57.8],
                    [159.0, 55.6],
                    [179.8, 66.8],
                    [162.9, 59.4],
                    [161.0, 53.6],
                    [151.1, 73.2],
                    [168.2, 53.4],
                    [168.9, 69.0],
                    [173.2, 58.4],
                    [171.8, 56.2],
                    [178.0, 70.6],
                    [164.3, 59.8],
                    [163.0, 72.0],
                    [168.5, 65.2],
                    [166.8, 56.6],
                    [172.7, 105.2],
                    [163.5, 51.8],
                    [169.4, 63.4],
                    [167.8, 59.0],
                    [159.5, 47.6],
                    [167.6, 63.0],
                    [161.2, 55.2],
                    [160.0, 45.0],
                    [163.2, 54.0],
                    [162.2, 50.2],
                    [161.3, 60.2],
                    [149.5, 44.8],
                    [157.5, 58.8],
                    [163.2, 56.4],
                    [172.7, 62.0],
                    [155.0, 49.2],
                    [156.5, 67.2],
                    [164.0, 53.8],
                    [160.9, 54.4],
                    [162.8, 58.0],
                    [167.0, 59.8],
                    [160.0, 54.8],
                    [160.0, 43.2],
                    [168.9, 60.5],
                    [158.2, 46.4],
                    [156.0, 64.4],
                    [160.0, 48.8],
                    [167.1, 62.2],
                    [158.0, 55.5],
                    [167.6, 57.8],
                    [156.0, 54.6],
                    [162.1, 59.2],
                    [173.4, 52.7],
                    [159.8, 53.2],
                    [170.5, 64.5],
                    [159.2, 51.8],
                    [157.5, 56.0],
                    [161.3, 63.6],
                    [162.6, 63.2],
                    [160.0, 59.5],
                    [168.9, 56.8],
                    [165.1, 64.1],
                    [162.6, 50.0],
                    [165.1, 72.3],
                    [166.4, 55.0],
                    [160.0, 55.9],
                    [152.4, 60.4],
                    [170.2, 69.1],
                    [162.6, 84.5],
                    [170.2, 55.9],
                    [158.8, 55.5],
                    [172.7, 69.5],
                    [167.6, 76.4],
                    [162.6, 61.4],
                    [167.6, 65.9],
                    [156.2, 58.6],
                    [175.2, 66.8],
                    [172.1, 56.6],
                    [162.6, 58.6],
                    [160.0, 55.9],
                    [165.1, 59.1],
                    [182.9, 81.8],
                    [166.4, 70.7],
                    [165.1, 56.8],
                    [177.8, 60.0],
                    [165.1, 58.2],
                    [175.3, 72.7],
                    [154.9, 54.1],
                    [158.8, 49.1],
                    [172.7, 75.9],
                    [168.9, 55.0],
                    [161.3, 57.3],
                    [167.6, 55.0],
                    [165.1, 65.5],
                    [175.3, 65.5],
                    [157.5, 48.6],
                    [163.8, 58.6],
                    [167.6, 63.6],
                    [165.1, 55.2],
                    [165.1, 62.7],
                    [168.9, 56.6],
                    [162.6, 53.9],
                    [164.5, 63.2],
                    [176.5, 73.6],
                    [168.9, 62.0],
                    [175.3, 63.6],
                    [159.4, 53.2],
                    [160.0, 53.4],
                    [170.2, 55.0],
                    [162.6, 70.5],
                    [167.6, 54.5],
                    [162.6, 54.5],
                    [160.7, 55.9],
                    [160.0, 59.0],
                    [157.5, 63.6],
                    [162.6, 54.5],
                    [152.4, 47.3],
                    [170.2, 67.7],
                    [165.1, 80.9],
                    [172.7, 70.5],
                    [165.1, 60.9],
                    [170.2, 63.6],
                    [170.2, 54.5],
                    [170.2, 59.1],
                    [161.3, 70.5],
                    [167.6, 52.7],
                    [167.6, 62.7],
                    [165.1, 86.3],
                    [162.6, 66.4],
                    [152.4, 67.3],
                    [168.9, 63.0],
                    [170.2, 73.6],
                    [175.2, 62.3],
                    [175.2, 57.7],
                    [160.0, 55.4],
                    [165.1, 104.1],
                    [174.0, 55.5],
                    [170.2, 77.3],
                    [160.0, 80.5],
                    [167.6, 64.5],
                    [167.6, 72.3],
                    [167.6, 61.4],
                    [154.9, 58.2],
                    [162.6, 81.8],
                    [175.3, 63.6],
                    [171.4, 53.4],
                    [157.5, 54.5],
                    [165.1, 53.6],
                    [160.0, 60.0],
                    [174.0, 73.6],
                    [162.6, 61.4],
                    [174.0, 55.5],
                    [162.6, 63.6],
                    [161.3, 60.9],
                    [156.2, 60.0],
                    [149.9, 46.8],
                    [169.5, 57.3],
                    [160.0, 64.1],
                    [175.3, 63.6],
                    [169.5, 67.3],
                    [160.0, 75.5],
                    [172.7, 68.2],
                    [162.6, 61.4],
                    [157.5, 76.8],
                    [176.5, 71.8],
                    [164.4, 55.5],
                    [160.7, 48.6],
                    [174.0, 66.4],
                    [163.8, 67.3]
                  ],
                  markPoint: {
                    data: [{
                      type: 'max',
                      name: 'Max'
                    }, {
                      type: 'min',
                      name: 'Min'
                    }]
                  },
                  markLine: {
                    data: [{
                      type: 'average',
                      name: 'Mean'
                    }]
                  }
                }, {
                  name: 'Data2',
                  type: 'scatter',
                  tooltip: {
                    trigger: 'item',
                    formatter: function(params) {
                      if (params.value.length > 1) {
                        return params.seriesName + ' :<br/>' + params.value[0] + 'cm ' + params.value[1] + 'kg ';
                      } else {
                        return params.seriesName + ' :<br/>' + params.name + ' : ' + params.value + 'kg ';
                      }
                    }
                  },
                  data: [
                    [174.0, 65.6],
                    [175.3, 71.8],
                    [193.5, 80.7],
                    [186.5, 72.6],
                    [187.2, 78.8],
                    [181.5, 74.8],
                    [184.0, 86.4],
                    [184.5, 78.4],
                    [175.0, 62.0],
                    [184.0, 81.6],
                    [180.0, 76.6],
                    [177.8, 83.6],
                    [192.0, 90.0],
                    [176.0, 74.6],
                    [174.0, 71.0],
                    [184.0, 79.6],
                    [192.7, 93.8],
                    [171.5, 70.0],
                    [173.0, 72.4],
                    [176.0, 85.9],
                    [176.0, 78.8],
                    [180.5, 77.8],
                    [172.7, 66.2],
                    [176.0, 86.4],
                    [173.5, 81.8],
                    [178.0, 89.6],
                    [180.3, 82.8],
                    [180.3, 76.4],
                    [164.5, 63.2],
                    [173.0, 60.9],
                    [183.5, 74.8],
                    [175.5, 70.0],
                    [188.0, 72.4],
                    [189.2, 84.1],
                    [172.8, 69.1],
                    [170.0, 59.5],
                    [182.0, 67.2],
                    [170.0, 61.3],
                    [177.8, 68.6],
                    [184.2, 80.1],
                    [186.7, 87.8],
                    [171.4, 84.7],
                    [172.7, 73.4],
                    [175.3, 72.1],
                    [180.3, 82.6],
                    [182.9, 88.7],
                    [188.0, 84.1],
                    [177.2, 94.1],
                    [172.1, 74.9],
                    [167.0, 59.1],
                    [169.5, 75.6],
                    [174.0, 86.2],
                    [172.7, 75.3],
                    [182.2, 87.1],
                    [164.1, 55.2],
                    [163.0, 57.0],
                    [171.5, 61.4],
                    [184.2, 76.8],
                    [174.0, 86.8],
                    [174.0, 72.2],
                    [177.0, 71.6],
                    [186.0, 84.8],
                    [167.0, 68.2],
                    [171.8, 66.1],
                    [182.0, 72.0],
                    [167.0, 64.6],
                    [177.8, 74.8],
                    [164.5, 70.0],
                    [192.0, 101.6],
                    [175.5, 63.2],
                    [171.2, 79.1],
                    [181.6, 78.9],
                    [167.4, 67.7],
                    [181.1, 66.0],
                    [177.0, 68.2],
                    [174.5, 63.9],
                    [177.5, 72.0],
                    [170.5, 56.8],
                    [182.4, 74.5],
                    [197.1, 90.9],
                    [180.1, 93.0],
                    [175.5, 80.9],
                    [180.6, 72.7],
                    [184.4, 68.0],
                    [175.5, 70.9],
                    [180.6, 72.5],
                    [177.0, 72.5],
                    [177.1, 83.4],
                    [181.6, 75.5],
                    [176.5, 73.0],
                    [175.0, 70.2],
                    [174.0, 73.4],
                    [165.1, 70.5],
                    [177.0, 68.9],
                    [192.0, 102.3],
                    [176.5, 68.4],
                    [169.4, 65.9],
                    [182.1, 75.7],
                    [179.8, 84.5],
                    [175.3, 87.7],
                    [184.9, 86.4],
                    [177.3, 73.2],
                    [167.4, 53.9],
                    [178.1, 72.0],
                    [168.9, 55.5],
                    [157.2, 58.4],
                    [180.3, 83.2],
                    [170.2, 72.7],
                    [177.8, 64.1],
                    [172.7, 72.3],
                    [165.1, 65.0],
                    [186.7, 86.4],
                    [165.1, 65.0],
                    [174.0, 88.6],
                    [175.3, 84.1],
                    [185.4, 66.8],
                    [177.8, 75.5],
                    [180.3, 93.2],
                    [180.3, 82.7],
                    [177.8, 58.0],
                    [177.8, 79.5],
                    [177.8, 78.6],
                    [177.8, 71.8],
                    [177.8, 116.4],
                    [163.8, 72.2],
                    [188.0, 83.6],
                    [198.1, 85.5],
                    [175.3, 90.9],
                    [166.4, 85.9],
                    [190.5, 89.1],
                    [166.4, 75.0],
                    [177.8, 77.7],
                    [179.7, 86.4],
                    [172.7, 90.9],
                    [190.5, 73.6],
                    [185.4, 76.4],
                    [168.9, 69.1],
                    [167.6, 84.5],
                    [175.3, 64.5],
                    [170.2, 69.1],
                    [190.5, 108.6],
                    [177.8, 86.4],
                    [190.5, 80.9],
                    [177.8, 87.7],
                    [184.2, 94.5],
                    [176.5, 80.2],
                    [177.8, 72.0],
                    [180.3, 71.4],
                    [171.4, 72.7],
                    [172.7, 84.1],
                    [172.7, 76.8],
                    [177.8, 63.6],
                    [177.8, 80.9],
                    [182.9, 80.9],
                    [170.2, 85.5],
                    [167.6, 68.6],
                    [175.3, 67.7],
                    [165.1, 66.4],
                    [185.4, 102.3],
                    [181.6, 70.5],
                    [172.7, 95.9],
                    [190.5, 84.1],
                    [179.1, 87.3],
                    [175.3, 71.8],
                    [170.2, 65.9],
                    [193.0, 95.9],
                    [171.4, 91.4],
                    [177.8, 81.8],
                    [177.8, 96.8],
                    [167.6, 69.1],
                    [167.6, 82.7],
                    [180.3, 75.5],
                    [182.9, 79.5],
                    [176.5, 73.6],
                    [186.7, 91.8],
                    [188.0, 84.1],
                    [188.0, 85.9],
                    [177.8, 81.8],
                    [174.0, 82.5],
                    [177.8, 80.5],
                    [171.4, 70.0],
                    [185.4, 81.8],
                    [185.4, 84.1],
                    [188.0, 90.5],
                    [188.0, 91.4],
                    [182.9, 89.1],
                    [176.5, 85.0],
                    [175.3, 69.1],
                    [175.3, 73.6],
                    [188.0, 80.5],
                    [188.0, 82.7],
                    [175.3, 86.4],
                    [170.5, 67.7],
                    [179.1, 92.7],
                    [177.8, 93.6],
                    [175.3, 70.9],
                    [182.9, 75.0],
                    [170.8, 93.2],
                    [188.0, 93.2],
                    [180.3, 77.7],
                    [177.8, 61.4],
                    [185.4, 94.1],
                    [168.9, 75.0],
                    [185.4, 83.6],
                    [180.3, 85.5],
                    [174.0, 73.9],
                    [167.6, 66.8],
                    [182.9, 87.3],
                    [160.0, 72.3],
                    [180.3, 88.6],
                    [167.6, 75.5],
                    [186.7, 101.4],
                    [175.3, 91.1],
                    [175.3, 67.3],
                    [175.9, 77.7],
                    [175.3, 81.8],
                    [179.1, 75.5],
                    [181.6, 84.5],
                    [177.8, 76.6],
                    [182.9, 85.0],
                    [177.8, 102.5],
                    [184.2, 77.3],
                    [179.1, 71.8],
                    [176.5, 87.9],
                    [188.0, 94.3],
                    [174.0, 70.9],
                    [167.6, 64.5],
                    [170.2, 77.3],
                    [167.6, 72.3],
                    [188.0, 87.3],
                    [174.0, 80.0],
                    [176.5, 82.3],
                    [180.3, 73.6],
                    [167.6, 74.1],
                    [188.0, 85.9],
                    [180.3, 73.2],
                    [167.6, 76.3],
                    [183.0, 65.9],
                    [183.0, 90.9],
                    [179.1, 89.1],
                    [170.2, 62.3],
                    [177.8, 82.7],
                    [179.1, 79.1],
                    [190.5, 98.2],
                    [177.8, 84.1],
                    [180.3, 83.2],
                    [180.3, 83.2]
                  ],
                  markPoint: {
                    data: [{
                      type: 'max',
                      name: 'Max'
                    }, {
                      type: 'min',
                      name: 'Min'
                    }]
                  },
                  markLine: {
                    data: [{
                      type: 'average',
                      name: 'Mean'
                    }]
                  }
                }]
              });

            } 
              
               //echart Bar Horizontal
              
            if ($('#echart_bar_horizontal').length ){ 
              
              var echartBar = echarts.init(document.getElementById('echart_bar_horizontal'), theme);

              echartBar.setOption({
                title: {
                  text: 'Bar Graph',
                  subtext: 'Graph subtitle'
                },
                tooltip: {
                  trigger: 'axis'
                },
                legend: {
                  x: 100,
                  data: ['2015', '2016']
                },
                toolbox: {
                  show: true,
                  feature: {
                    saveAsImage: {
                      show: true,
                      title: "Save Image"
                    }
                  }
                },
                calculable: true,
                xAxis: [{
                  type: 'value',
                  boundaryGap: [0, 0.01]
                }],
                yAxis: [{
                  type: 'category',
                  data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
                }],
                series: [{
                  name: '2015',
                  type: 'bar',
                  data: [18203, 23489, 29034, 104970, 131744, 630230]
                }, {
                  name: '2016',
                  type: 'bar',
                  data: [19325, 23438, 31000, 121594, 134141, 681807]
                }]
              });

            } 
              
               //echart Pie Collapse
              
            if ($('#echart_pie2').length ){ 
              
              var echartPieCollapse = echarts.init(document.getElementById('echart_pie2'), theme);
              
              echartPieCollapse.setOption({
                tooltip: {
                  trigger: 'item',
                  formatter: "{a} <br/>{b} : {c} ({d}%)"
                },
                legend: {
                  x: 'center',
                  y: 'bottom',
                  data: ['rose1', 'rose2', 'rose3', 'rose4', 'rose5', 'rose6']
                },
                toolbox: {
                  show: true,
                  feature: {
                    magicType: {
                      show: true,
                      type: ['pie', 'funnel']
                    },
                    restore: {
                      show: true,
                      title: "Restore"
                    },
                    saveAsImage: {
                      show: true,
                      title: "Save Image"
                    }
                  }
                },
                calculable: true,
                series: [{
                  name: 'Area Mode',
                  type: 'pie',
                  radius: [25, 90],
                  center: ['50%', 170],
                  roseType: 'area',
                  x: '50%',
                  max: 40,
                  sort: 'ascending',
                  data: [{
                    value: 10,
                    name: 'rose1'
                  }, {
                    value: 5,
                    name: 'rose2'
                  }, {
                    value: 15,
                    name: 'rose3'
                  }, {
                    value: 25,
                    name: 'rose4'
                  }, {
                    value: 20,
                    name: 'rose5'
                  }, {
                    value: 35,
                    name: 'rose6'
                  }]
                }]
              });

            } 
              
               //echart Donut
              
            if ($('#echart_donut').length ){  
              
              var echartDonut = echarts.init(document.getElementById('echart_donut'), theme);
              
              echartDonut.setOption({
                tooltip: {
                  trigger: 'item',
                  formatter: "{a} <br/>{b} : {c} ({d}%)"
                },
                calculable: true,
                legend: {
                  x: 'center',
                  y: 'bottom',
                  data: ['Direct Access', 'E-mail Marketing', 'Union Ad', 'Video Ads', 'Search Engine']
                },
                toolbox: {
                  show: true,
                  feature: {
                    magicType: {
                      show: true,
                      type: ['pie', 'funnel'],
                      option: {
                        funnel: {
                          x: '25%',
                          width: '50%',
                          funnelAlign: 'center',
                          max: 1548
                        }
                      }
                    },
                    restore: {
                      show: true,
                      title: "Restore"
                    },
                    saveAsImage: {
                      show: true,
                      title: "Save Image"
                    }
                  }
                },
                series: [{
                  name: 'Access to the resource',
                  type: 'pie',
                  radius: ['35%', '55%'],
                  itemStyle: {
                    normal: {
                      label: {
                        show: true
                      },
                      labelLine: {
                        show: true
                      }
                    },
                    emphasis: {
                      label: {
                        show: true,
                        position: 'center',
                        textStyle: {
                          fontSize: '14',
                          fontWeight: 'normal'
                        }
                      }
                    }
                  },
                  data: [{
                    value: 335,
                    name: 'Direct Access'
                  }, {
                    value: 310,
                    name: 'E-mail Marketing'
                  }, {
                    value: 234,
                    name: 'Union Ad'
                  }, {
                    value: 135,
                    name: 'Video Ads'
                  }, {
                    value: 1548,
                    name: 'Search Engine'
                  }]
                }]
              });

            } 
              
               //echart Pie
              
            if ($('#echart_pie').length ){  
              
              var echartPie = echarts.init(document.getElementById('echart_pie'), theme);

              echartPie.setOption({
                tooltip: {
                  trigger: 'item',
                  formatter: "{a} <br/>{b} : {c} ({d}%)"
                },
                legend: {
                  x: 'center',
                  y: 'bottom',
                  data: ['Direct Access', 'E-mail Marketing', 'Union Ad', 'Video Ads', 'Search Engine']
                },
                toolbox: {
                  show: true,
                  feature: {
                    magicType: {
                      show: true,
                      type: ['pie', 'funnel'],
                      option: {
                        funnel: {
                          x: '25%',
                          width: '50%',
                          funnelAlign: 'left',
                          max: 1548
                        }
                      }
                    },
                    restore: {
                      show: true,
                      title: "Restore"
                    },
                    saveAsImage: {
                      show: true,
                      title: "Save Image"
                    }
                  }
                },
                calculable: true,
                series: [{
                  name: '访问来源',
                  type: 'pie',
                  radius: '55%',
                  center: ['50%', '48%'],
                  data: [{
                    value: 335,
                    name: 'Direct Access'
                  }, {
                    value: 310,
                    name: 'E-mail Marketing'
                  }, {
                    value: 234,
                    name: 'Union Ad'
                  }, {
                    value: 135,
                    name: 'Video Ads'
                  }, {
                    value: 1548,
                    name: 'Search Engine'
                  }]
                }]
              });

              var dataStyle = {
                normal: {
                  label: {
                    show: false
                  },
                  labelLine: {
                    show: false
                  }
                }
              };

              var placeHolderStyle = {
                normal: {
                  color: 'rgba(0,0,0,0)',
                  label: {
                    show: false
                  },
                  labelLine: {
                    show: false
                  }
                },
                emphasis: {
                  color: 'rgba(0,0,0,0)'
                }
              };

            } 
              
               //echart Mini Pie
              
            if ($('#echart_mini_pie').length ){ 
              
              var echartMiniPie = echarts.init(document.getElementById('echart_mini_pie'), theme);

              echartMiniPie .setOption({
                title: {
                  text: 'Chart #2',
                  subtext: 'From ExcelHome',
                  sublink: 'http://e.weibo.com/1341556070/AhQXtjbqh',
                  x: 'center',
                  y: 'center',
                  itemGap: 20,
                  textStyle: {
                    color: 'rgba(30,144,255,0.8)',
                    fontFamily: '微软雅黑',
                    fontSize: 35,
                    fontWeight: 'bolder'
                  }
                },
                tooltip: {
                  show: true,
                  formatter: "{a} <br/>{b} : {c} ({d}%)"
                },
                legend: {
                  orient: 'vertical',
                  x: 170,
                  y: 45,
                  itemGap: 12,
                  data: ['68%Something #1', '29%Something #2', '3%Something #3'],
                },
                toolbox: {
                  show: true,
                  feature: {
                    mark: {
                      show: true
                    },
                    dataView: {
                      show: true,
                      title: "Text View",
                      lang: [
                        "Text View",
                        "Close",
                        "Refresh",
                      ],
                      readOnly: false
                    },
                    restore: {
                      show: true,
                      title: "Restore"
                    },
                    saveAsImage: {
                      show: true,
                      title: "Save Image"
                    }
                  }
                },
                series: [{
                  name: '1',
                  type: 'pie',
                  clockWise: false,
                  radius: [105, 130],
                  itemStyle: dataStyle,
                  data: [{
                    value: 68,
                    name: '68%Something #1'
                  }, {
                    value: 32,
                    name: 'invisible',
                    itemStyle: placeHolderStyle
                  }]
                }, {
                  name: '2',
                  type: 'pie',
                  clockWise: false,
                  radius: [80, 105],
                  itemStyle: dataStyle,
                  data: [{
                    value: 29,
                    name: '29%Something #2'
                  }, {
                    value: 71,
                    name: 'invisible',
                    itemStyle: placeHolderStyle
                  }]
                }, {
                  name: '3',
                  type: 'pie',
                  clockWise: false,
                  radius: [25, 80],
                  itemStyle: dataStyle,
                  data: [{
                    value: 3,
                    name: '3%Something #3'
                  }, {
                    value: 97,
                    name: 'invisible',
                    itemStyle: placeHolderStyle
                  }]
                }]
              });

            } 
              
               //echart Map
              
            if ($('#echart_world_map').length ){ 
              
                  var echartMap = echarts.init(document.getElementById('echart_world_map'), theme);
                  
                   
                  echartMap.setOption({
                    title: {
                      text: 'World Population (2010)',
                      subtext: 'from United Nations, Total population, both sexes combined, as of 1 July (thousands)',
                      x: 'center',
                      y: 'top'
                    },
                    tooltip: {
                      trigger: 'item',
                      formatter: function(params) {
                        var value = (params.value + '').split('.');
                        value = value[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, '$1,') + '.' + value[1];
                        return params.seriesName + '<br/>' + params.name + ' : ' + value;
                      }
                    },
                    toolbox: {
                      show: true,
                      orient: 'vertical',
                      x: 'right',
                      y: 'center',
                      feature: {
                        mark: {
                          show: true
                        },
                        dataView: {
                          show: true,
                          title: "Text View",
                          lang: [
                            "Text View",
                            "Close",
                            "Refresh",
                          ],
                          readOnly: false
                        },
                        restore: {
                          show: true,
                          title: "Restore"
                        },
                        saveAsImage: {
                          show: true,
                          title: "Save Image"
                        }
                      }
                    },
                    dataRange: {
                      min: 0,
                      max: 1000000,
                      text: ['High', 'Low'],
                      realtime: false,
                      calculable: true,
                      color: ['#087E65', '#26B99A', '#CBEAE3']
                    },
                    series: [{
                      name: 'World Population (2010)',
                      type: 'map',
                      mapType: 'world',
                      roam: false,
                      mapLocation: {
                        y: 60
                      },
                      itemStyle: {
                        emphasis: {
                          label: {
                            show: true
                          }
                        }
                      },
                      data: [{
                        name: 'Afghanistan',
                        value: 28397.812
                      }, {
                        name: 'Angola',
                        value: 19549.124
                      }, {
                        name: 'Albania',
                        value: 3150.143
                      }, {
                        name: 'United Arab Emirates',
                        value: 8441.537
                      }, {
                        name: 'Argentina',
                        value: 40374.224
                      }, {
                        name: 'Armenia',
                        value: 2963.496
                      }, {
                        name: 'French Southern and Antarctic Lands',
                        value: 268.065
                      }, {
                        name: 'Australia',
                        value: 22404.488
                      }, {
                        name: 'Austria',
                        value: 8401.924
                      }, {
                        name: 'Azerbaijan',
                        value: 9094.718
                      }, {
                        name: 'Burundi',
                        value: 9232.753
                      }, {
                        name: 'Belgium',
                        value: 10941.288
                      }, {
                        name: 'Benin',
                        value: 9509.798
                      }, {
                        name: 'Burkina Faso',
                        value: 15540.284
                      }, {
                        name: 'Bangladesh',
                        value: 151125.475
                      }, {
                        name: 'Bulgaria',
                        value: 7389.175
                      }, {
                        name: 'The Bahamas',
                        value: 66402.316
                      }, {
                        name: 'Bosnia and Herzegovina',
                        value: 3845.929
                      }, {
                        name: 'Belarus',
                        value: 9491.07
                      }, {
                        name: 'Belize',
                        value: 308.595
                      }, {
                        name: 'Bermuda',
                        value: 64.951
                      }, {
                        name: 'Bolivia',
                        value: 716.939
                      }, {
                        name: 'Brazil',
                        value: 195210.154
                      }, {
                        name: 'Brunei',
                        value: 27.223
                      }, {
                        name: 'Bhutan',
                        value: 716.939
                      }, {
                        name: 'Botswana',
                        value: 1969.341
                      }, {
                        name: 'Central African Republic',
                        value: 4349.921
                      }, {
                        name: 'Canada',
                        value: 34126.24
                      }, {
                        name: 'Switzerland',
                        value: 7830.534
                      }, {
                        name: 'Chile',
                        value: 17150.76
                      }, {
                        name: 'China',
                        value: 1359821.465
                      }, {
                        name: 'Ivory Coast',
                        value: 60508.978
                      }, {
                        name: 'Cameroon',
                        value: 20624.343
                      }, {
                        name: 'Democratic Republic of the Congo',
                        value: 62191.161
                      }, {
                        name: 'Republic of the Congo',
                        value: 3573.024
                      }, {
                        name: 'Colombia',
                        value: 46444.798
                      }, {
                        name: 'Costa Rica',
                        value: 4669.685
                      }, {
                        name: 'Cuba',
                        value: 11281.768
                      }, {
                        name: 'Northern Cyprus',
                        value: 1.468
                      }, {
                        name: 'Cyprus',
                        value: 1103.685
                      }, {
                        name: 'Czech Republic',
                        value: 10553.701
                      }, {
                        name: 'Germany',
                        value: 83017.404
                      }, {
                        name: 'Djibouti',
                        value: 834.036
                      }, {
                        name: 'Denmark',
                        value: 5550.959
                      }, {
                        name: 'Dominican Republic',
                        value: 10016.797
                      }, {
                        name: 'Algeria',
                        value: 37062.82
                      }, {
                        name: 'Ecuador',
                        value: 15001.072
                      }, {
                        name: 'Egypt',
                        value: 78075.705
                      }, {
                        name: 'Eritrea',
                        value: 5741.159
                      }, {
                        name: 'Spain',
                        value: 46182.038
                      }, {
                        name: 'Estonia',
                        value: 1298.533
                      }, {
                        name: 'Ethiopia',
                        value: 87095.281
                      }, {
                        name: 'Finland',
                        value: 5367.693
                      }, {
                        name: 'Fiji',
                        value: 860.559
                      }, {
                        name: 'Falkland Islands',
                        value: 49.581
                      }, {
                        name: 'France',
                        value: 63230.866
                      }, {
                        name: 'Gabon',
                        value: 1556.222
                      }, {
                        name: 'United Kingdom',
                        value: 62066.35
                      }, {
                        name: 'Georgia',
                        value: 4388.674
                      }, {
                        name: 'Ghana',
                        value: 24262.901
                      }, {
                        name: 'Guinea',
                        value: 10876.033
                      }, {
                        name: 'Gambia',
                        value: 1680.64
                      }, {
                        name: 'Guinea Bissau',
                        value: 10876.033
                      }, {
                        name: 'Equatorial Guinea',
                        value: 696.167
                      }, {
                        name: 'Greece',
                        value: 11109.999
                      }, {
                        name: 'Greenland',
                        value: 56.546
                      }, {
                        name: 'Guatemala',
                        value: 14341.576
                      }, {
                        name: 'French Guiana',
                        value: 231.169
                      }, {
                        name: 'Guyana',
                        value: 786.126
                      }, {
                        name: 'Honduras',
                        value: 7621.204
                      }, {
                        name: 'Croatia',
                        value: 4338.027
                      }, {
                        name: 'Haiti',
                        value: 9896.4
                      }, {
                        name: 'Hungary',
                        value: 10014.633
                      }, {
                        name: 'Indonesia',
                        value: 240676.485
                      }, {
                        name: 'India',
                        value: 1205624.648
                      }, {
                        name: 'Ireland',
                        value: 4467.561
                      }, {
                        name: 'Iran',
                        value: 240676.485
                      }, {
                        name: 'Iraq',
                        value: 30962.38
                      }, {
                        name: 'Iceland',
                        value: 318.042
                      }, {
                        name: 'Israel',
                        value: 7420.368
                      }, {
                        name: 'Italy',
                        value: 60508.978
                      }, {
                        name: 'Jamaica',
                        value: 2741.485
                      }, {
                        name: 'Jordan',
                        value: 6454.554
                      }, {
                        name: 'Japan',
                        value: 127352.833
                      }, {
                        name: 'Kazakhstan',
                        value: 15921.127
                      }, {
                        name: 'Kenya',
                        value: 40909.194
                      }, {
                        name: 'Kyrgyzstan',
                        value: 5334.223
                      }, {
                        name: 'Cambodia',
                        value: 14364.931
                      }, {
                        name: 'South Korea',
                        value: 51452.352
                      }, {
                        name: 'Kosovo',
                        value: 97.743
                      }, {
                        name: 'Kuwait',
                        value: 2991.58
                      }, {
                        name: 'Laos',
                        value: 6395.713
                      }, {
                        name: 'Lebanon',
                        value: 4341.092
                      }, {
                        name: 'Liberia',
                        value: 3957.99
                      }, {
                        name: 'Libya',
                        value: 6040.612
                      }, {
                        name: 'Sri Lanka',
                        value: 20758.779
                      }, {
                        name: 'Lesotho',
                        value: 2008.921
                      }, {
                        name: 'Lithuania',
                        value: 3068.457
                      }, {
                        name: 'Luxembourg',
                        value: 507.885
                      }, {
                        name: 'Latvia',
                        value: 2090.519
                      }, {
                        name: 'Morocco',
                        value: 31642.36
                      }, {
                        name: 'Moldova',
                        value: 103.619
                      }, {
                        name: 'Madagascar',
                        value: 21079.532
                      }, {
                        name: 'Mexico',
                        value: 117886.404
                      }, {
                        name: 'Macedonia',
                        value: 507.885
                      }, {
                        name: 'Mali',
                        value: 13985.961
                      }, {
                        name: 'Myanmar',
                        value: 51931.231
                      }, {
                        name: 'Montenegro',
                        value: 620.078
                      }, {
                        name: 'Mongolia',
                        value: 2712.738
                      }, {
                        name: 'Mozambique',
                        value: 23967.265
                      }, {
                        name: 'Mauritania',
                        value: 3609.42
                      }, {
                        name: 'Malawi',
                        value: 15013.694
                      }, {
                        name: 'Malaysia',
                        value: 28275.835
                      }, {
                        name: 'Namibia',
                        value: 2178.967
                      }, {
                        name: 'New Caledonia',
                        value: 246.379
                      }, {
                        name: 'Niger',
                        value: 15893.746
                      }, {
                        name: 'Nigeria',
                        value: 159707.78
                      }, {
                        name: 'Nicaragua',
                        value: 5822.209
                      }, {
                        name: 'Netherlands',
                        value: 16615.243
                      }, {
                        name: 'Norway',
                        value: 4891.251
                      }, {
                        name: 'Nepal',
                        value: 26846.016
                      }, {
                        name: 'New Zealand',
                        value: 4368.136
                      }, {
                        name: 'Oman',
                        value: 2802.768
                      }, {
                        name: 'Pakistan',
                        value: 173149.306
                      }, {
                        name: 'Panama',
                        value: 3678.128
                      }, {
                        name: 'Peru',
                        value: 29262.83
                      }, {
                        name: 'Philippines',
                        value: 93444.322
                      }, {
                        name: 'Papua New Guinea',
                        value: 6858.945
                      }, {
                        name: 'Poland',
                        value: 38198.754
                      }, {
                        name: 'Puerto Rico',
                        value: 3709.671
                      }, {
                        name: 'North Korea',
                        value: 1.468
                      }, {
                        name: 'Portugal',
                        value: 10589.792
                      }, {
                        name: 'Paraguay',
                        value: 6459.721
                      }, {
                        name: 'Qatar',
                        value: 1749.713
                      }, {
                        name: 'Romania',
                        value: 21861.476
                      }, {
                        name: 'Russia',
                        value: 21861.476
                      }, {
                        name: 'Rwanda',
                        value: 10836.732
                      }, {
                        name: 'Western Sahara',
                        value: 514.648
                      }, {
                        name: 'Saudi Arabia',
                        value: 27258.387
                      }, {
                        name: 'Sudan',
                        value: 35652.002
                      }, {
                        name: 'South Sudan',
                        value: 9940.929
                      }, {
                        name: 'Senegal',
                        value: 12950.564
                      }, {
                        name: 'Solomon Islands',
                        value: 526.447
                      }, {
                        name: 'Sierra Leone',
                        value: 5751.976
                      }, {
                        name: 'El Salvador',
                        value: 6218.195
                      }, {
                        name: 'Somaliland',
                        value: 9636.173
                      }, {
                        name: 'Somalia',
                        value: 9636.173
                      }, {
                        name: 'Republic of Serbia',
                        value: 3573.024
                      }, {
                        name: 'Suriname',
                        value: 524.96
                      }, {
                        name: 'Slovakia',
                        value: 5433.437
                      }, {
                        name: 'Slovenia',
                        value: 2054.232
                      }, {
                        name: 'Sweden',
                        value: 9382.297
                      }, {
                        name: 'Swaziland',
                        value: 1193.148
                      }, {
                        name: 'Syria',
                        value: 7830.534
                      }, {
                        name: 'Chad',
                        value: 11720.781
                      }, {
                        name: 'Togo',
                        value: 6306.014
                      }, {
                        name: 'Thailand',
                        value: 66402.316
                      }, {
                        name: 'Tajikistan',
                        value: 7627.326
                      }, {
                        name: 'Turkmenistan',
                        value: 5041.995
                      }, {
                        name: 'East Timor',
                        value: 10016.797
                      }, {
                        name: 'Trinidad and Tobago',
                        value: 1328.095
                      }, {
                        name: 'Tunisia',
                        value: 10631.83
                      }, {
                        name: 'Turkey',
                        value: 72137.546
                      }, {
                        name: 'United Republic of Tanzania',
                        value: 44973.33
                      }, {
                        name: 'Uganda',
                        value: 33987.213
                      }, {
                        name: 'Ukraine',
                        value: 46050.22
                      }, {
                        name: 'Uruguay',
                        value: 3371.982
                      }, {
                        name: 'United States of America',
                        value: 312247.116
                      }, {
                        name: 'Uzbekistan',
                        value: 27769.27
                      }, {
                        name: 'Venezuela',
                        value: 236.299
                      }, {
                        name: 'Vietnam',
                        value: 89047.397
                      }, {
                        name: 'Vanuatu',
                        value: 236.299
                      }, {
                        name: 'West Bank',
                        value: 13.565
                      }, {
                        name: 'Yemen',
                        value: 22763.008
                      }, {
                        name: 'South Africa',
                        value: 51452.352
                      }, {
                        name: 'Zambia',
                        value: 13216.985
                      }, {
                        name: 'Zimbabwe',
                        value: 13076.978
                      }]
                    }]
                  });
       
            }
       
        }  
       
       
    $(document).ready(function() {
                
        init_sparklines();
        init_flot_chart();
        init_sidebar();
        init_wysiwyg();
        init_InputMask();
        init_JQVmap();
        init_cropper();
        init_knob();
        init_IonRangeSlider();
        init_ColorPicker();
        init_TagsInput();
        init_parsley();
        init_daterangepicker();
        init_daterangepicker_right();
        init_daterangepicker_single_call();
        init_daterangepicker_reservation();
        init_SmartWizard();
        init_EasyPieChart();
        init_charts();
        init_echarts();
        init_morris_charts();
        init_skycons();
        init_select2();
        init_validator();
        init_DataTables();
        init_chart_doughnut();
        init_gauge();
        init_PNotify();
        init_starrr();
        init_calendar();
        init_compose();
        init_CustomNotification();
        init_autosize();
        init_autocomplete();
                
    }); 
    

