\!/ KyuuKazami \!/

Path : /home/kohli/public_html/assets/admin/demo/
Upload :
Current File : /home/kohli/public_html/assets/admin/demo/demo-formcomponents.js

// -------------------------------
// Demos: Form Components
// -------------------------------

$(function() {

    //FSEditor
    //$(".fullscreen").fseditor({maxHeight: 500});

     // iPhone like button Toggle (uncommented because already activated in demo.js)
     // $('.toggle').toggles({on:true});

    // Autogrow Textarea
    $('textarea.autosize').autosize({append: "\n"});

    //Typeahead for Autocomplete
    $('.example-countries.typeahead').typeahead({
      name: 'countries',
      prefetch: 'assets/demo/countries.json',
      limit: 10
    });

    //Color Picker
    $('.cpicker').colorpicker();


    //Bootstrap Date Picker
    $('#datepicker,#datepicker2,#datepicker3').datepicker();
    $('#datepicker-pastdisabled').datepicker({startDate: "today"});
    $('#datepicker-startview1').datepicker({startView: 1});
    //http://eternicode.github.io/bootstrap-datepicker/


    //jQueryUI Time Picker
    $('#timepicker1,#timepicker3').timepicker();
    $("#timepicker2").timepicker({
        showPeriod: true,
        showLeadingZero: true
    });
    $('#timepickerbtn2').click(function () {
        $('#timepicker2').timepicker("show");
    });
    $("#timepicker4").timepicker({
       hours: { starts: 6, ends: 19 },
       minutes: { interval: 15 },
       rows: 3,
       showPeriodLabels: true,
       minuteText: 'Min'
    });


    // Date Range Picker
    $(document).ready(function() {
        $('#daterangepicker1').daterangepicker();
    });

    $('#daterangepicker2').daterangepicker(
        {
          ranges: {
             'Today': [moment(), moment()],
             'Yesterday': [moment().subtract('days', 1), moment().subtract('days', 1)],
             'Last 7 Days': [moment().subtract('days', 6), moment()],
             'Last 30 Days': [moment().subtract('days', 29), moment()],
             'This Month': [moment().startOf('month'), moment().endOf('month')],
             'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]
          },
          opens: 'left',
          startDate: moment().subtract('days', 29),
          endDate: moment()
        },
        function(start, end) {
            $('#daterangepicker2 span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
        }
    );

    $('#daterangepicker3').daterangepicker({ timePicker: true, timePickerIncrement: 30, format: 'MM/DD/YYYY h:mm A' });



    //Tokenfield

    $('#tokenfield-jQUI').tokenfield({
      autocomplete: {
        source: ['red','blue','green','yellow','violet','brown','purple','black','white'],
        delay: 100
      },
      showAutocompleteOnFocus: true
    });

    $('#tokenfield-typeahead').tokenfield({
      typeahead: {
        name: 'tags',
        local: ['red','blue','green','yellow','violet','brown','purple','black','white'],
      }
    });

    $('#tokenfield-email')
      .on('beforeCreateToken', function (e) {
        var token = e.token.value.split('|')
        e.token.value = token[1] || token[0]
        e.token.label = token[1] ? token[0] + ' (' + token[1] + ')' : token[0]
      })
      .on('afterCreateToken', function (e) {
        // Über-simplistic e-mail validation
        var re = /\S+@\S+\.\S+/
        var valid = re.test(e.token.value)
        if (!valid) {
          $(e.relatedTarget).addClass('invalid')
        }
      })
      .on('beforeEditToken', function (e) {
        if (e.token.label !== e.token.value) {
          var label = e.token.label.split(' (')
          e.token.value = label[0] + '|' + e.token.value
        }
      })
      .on('removeToken', function (e) {
        alert('Token removed! Token value was: ' + e.token.value)
      })
      .on('preventDuplicateToken', function (e) {
        alert('Duplicate detected! Token value is: ' + e.token.value)
      })
      .tokenfield();

    //SELECT2

    //For detailed documentation, see: http://ivaynberg.github.io/select2/index.html

    //Populate all select boxes with from select#source
    var opts=$("#source").html(), opts2="<option></option>"+opts;
    $("select.populate").each(function() { var e=$(this); e.html(e.hasClass("placeholder")?opts2:opts); });

    //select2
    
    $(".chosen-select").select2({width: 'resolve'});
    $("#e1,#e2").select2({width: 'resolve'});

    $("#e3").select2({
            minimumInputLength: 2,
            width: 'resolve'
        });

    $("#e5").select2({
        minimumInputLength: 1,
        width: 'resolve',
        query: function (query) {
            var data = {results: []}, i, j, s;
            for (i = 1; i < 5; i++) {
                s = "";
                for (j = 0; j < i; j++) {s = s + query.term;}
                data.results.push({id: query.term + i, text: s});
            }
            query.callback(data);
        }
    });

    $("#e12").select2({width: "resolve", tags:["red", "white", "purple", "orange", "yellow"]});


    $("#e9").select2({width: 'resolve'});


    //Rotten Tomatoes Infinite Scroll + Remote Data example
    $("#e7").select2({
        placeholder: "Search for a movie",
        minimumInputLength: 3,
        width: 'resolve',
        ajax: {
            url: "http://api.rottentomatoes.com/api/public/v1.0/movies.json",
            dataType: 'jsonp',
            quietMillis: 100,
            data: function (term, page) { // page is the one-based page number tracked by Select2
                return {
                    q: term, //search term
                    page_limit: 10, // page size
                    page: page, // page number
                    apikey: "q7jnbsc56ysdyvvbeanghegk" // please do not use so this example keeps working
                };
            },
            results: function (data, page) {
                var more = (page * 10) < data.total; // whether or not there are more results available

                // notice we return the value of more so Select2 knows if more results can be loaded
                return {results: data.movies, more: more};
            }
        },
        formatResult: movieFormatResult,
        formatSelection: movieFormatSelection,
        dropdownCssClass: "bigdrop", // apply css that makes the dropdown taller
        escapeMarkup: function (m) { return m; } // we do not want to escape markup since we are displaying html in results
    });


  //MULTISELECT2

  // For detailed documentatin, see: loudev.com

$('#multi-select2').multiSelect();

$('#multi-select').multiSelect({
  selectableHeader: "<input type='text' class='form-control' style='margin-bottom: 10px;'  autocomplete='off' placeholder='Filter entries...'>",
  selectionHeader: "<input type='text' class='form-control' style='margin-bottom: 10px;' autocomplete='off' placeholder='Filter entries...'>",
  afterInit: function(ms){
    var that = this,
        $selectableSearch = that.$selectableUl.prev(),
        $selectionSearch = that.$selectionUl.prev(),
        selectableSearchString = '#'+that.$container.attr('id')+' .ms-elem-selectable:not(.ms-selected)',
        selectionSearchString = '#'+that.$container.attr('id')+' .ms-elem-selection.ms-selected';

    that.qs1 = $selectableSearch.quicksearch(selectableSearchString)
    .on('keydown', function(e){
      if (e.which === 40){
        that.$selectableUl.focus();
        return false;
      }
    });

    that.qs2 = $selectionSearch.quicksearch(selectionSearchString)
    .on('keydown', function(e){
      if (e.which == 40){
        that.$selectionUl.focus();
        return false;
      }
    });
  },
  afterSelect: function(){
    this.qs1.cache();
    this.qs2.cache();
  },
  afterDeselect: function(){
    this.qs1.cache();
    this.qs2.cache();
  }
  });


});








function movieFormatResult(movie) {
        var markup = "<table class='movie-result'><tr>";
        if (movie.posters !== undefined && movie.posters.thumbnail !== undefined) {
            markup += "<td class='movie-image'><img src='" + movie.posters.thumbnail + "'/></td>";
        }
        markup += "<td class='movie-info'><div class='movie-title'>" + movie.title + "</div>";
        if (movie.critics_consensus !== undefined) {
            markup += "<div class='movie-synopsis'>" + movie.critics_consensus + "</div>";
        }
        else if (movie.synopsis !== undefined) {
            markup += "<div class='movie-synopsis'>" + movie.synopsis + "</div>";
        }
        markup += "</td></tr></table>"
        return markup;
    }

    function movieFormatSelection(movie) {
        return movie.title;
    }

@KyuuKazami