﻿var inputChar;
var inptField;
function facebooklistSMS(elem, list, complete, ajax, height, IsSMS) {
    
    function addHiddenInput(value) {
        var inputSMS = document.createElement('input');
        $(inputSMS).attr({ 'type': 'hidden', 'name': (elem.attr('id') + '[]'), 'id': (elem.attr('id') + '[]'), 'value': value });
        return inputSMS;
    }

    function getChar(e) {

        if (window.event) {
            keynum = e.keyCode;
        } else if (e.which) {
            keynum = e.which;
        }
        if (keynum == 8)
            return '';

        return String.fromCharCode(keynum);
    }
    function addItem(item, preadded) {
       
        var title = item.html().replace(/<em>/gi, '').replace(/<\/em>/gi, '');
        var value = (item.attr('title') && item.attr('title') != -1 ? item.attr('title') : title);
        var liSMS = document.createElement('li');
        var txtSMS = document.createTextNode(title);
        var acloseSMS = document.createElement('input');
        var inputSMS = addHiddenInput(value);
        
        var selectedValsSMS = $("#hdnSelectedSMS")[0].value;
        if(selectedValsSMS.indexOf($(item)[0].title)<0)
        {
        selectedValsSMS = selectedValsSMS + $(item)[0].title + ',';
        $("#hdnSelectedSMS")[0].value = selectedValsSMS;
        var SelectedNamesSMS = $("#hdnSelectedNameSMS")[0].value;
        SelectedNamesSMS = SelectedNamesSMS + $(item)[0].innerHTML + ',';
        $("#hdnSelectedNameSMS")[0].value = SelectedNamesSMS; 
        
        $(liSMS).attr({ 'title': value, 'class': 'bit-box' });
        $(liSMS).prepend(txtSMS);
        $(acloseSMS).attr({ 'class': 'RmvAutContact', 'type': 'button', 'value': 'x' });
        liSMS.appendChild(acloseSMS);
        liSMS.appendChild(inputSMS);
        holderSMS.appendChild(liSMS);
        $(acloseSMS).click(function() {
            var selectedValsSMS = $("#hdnSelectedSMS")[0].value;
            $("#hdnSelectedSMS")[0].value = selectedValsSMS.toString().replace($(this).parent('li')[0].title + ',', '');
            var selectednamesSMS = $("#hdnSelectedNameSMS")[0].value;
            selectednamesSMS = selectednamesSMS.toString().replace(title + ',', '');

            $("#hdnSelectedNameSMS")[0].value = selectednamesSMS;
            $(this).parent('li').fadeOut('fast', function() {
                $(this).remove();
                inputChar = "";
            });
            return false;
        });
        }
        if (!preadded) {
            holderSMS.removeChild(document.getElementById('annoninput'));
            addInput();
        }
        $('.defaultSMS').show();
        
        feed.hide();
       
    } var friendsCount = 2;
    var tempHeight = height;
    function addItemFeed(data, input) {
        feed.children('li[fckb=2]').remove();
        friendsCount = 2;
    for(i=1;i<data.length;i++)
    {
          var val=data[i];
            val = val.split(';');
            if (val[0].toString().toLowerCase().indexOf(input.toString().toLowerCase()) == 0) {
               
                var liSMS = document.createElement('li');
                
                $(liSMS).attr({ 'title': val[1], 'fckb': '2' });
                $(liSMS).html(val[0].toString().toLowerCase().replace(input, '<em>' + input + '</em>'));
                feed.append(liSMS);
                friendsCount = friendsCount + 1;
            }

        }
        if (friendsCount < 10)
            height = friendsCount;
        else
            height = tempHeight;
        feed.css({ 'height': (height * 23) + 'px', 'overflow-y': 'scroll' });
 }
    function addTextItemFeed(value) {
       
        feed.children('li[fckb=1]').remove();
        feed.children('li[fckb=3]').remove();
        if (value != "") {
            var li = document.createElement('li');
            $(li).attr({ 'title': value, 'fckb': '1', 'class': 'auto-focus' });
            $(li).html(value);
             feed.prepend(li);

         }
        
        var ListcloseSMS = document.createElement('input');
        $(ListcloseSMS).attr({ 'class': 'RmvAutContact close-acomp', 'type': 'button','style':'margin:3px 0 0 0' });
        var li2 = document.createElement('li');
        $(li2).attr({ 'fckb': '3' });
        if (value == "")
            $(li2).attr({ 'class': 'auto-focus' });
            li2.appendChild(ListcloseSMS);
            feed.prepend(li2);
    }
    function bindEvents() {
        feed.children('li').hover(
              function() {

                  feed.children('li').attr("class", "");
                  $(this).attr("class", "auto-focus");
                  $("#hdnHoveredSMS")[0].value = $(this)[0].value;
              },
              function() {

              }
        );
        feed.children('li').unbind('click');
        feed.children('li').click(function() {
            if ($(this)[0].innerHTML != "" && $(this)[0].innerHTML != inputChar) {
                if ($("#hdnSelectedSMS")[0].value.indexOf($(this)[0].title) == -1)
                    addItem($(this));
                else
                {
                    holderSMS.removeChild(document.getElementById('annoninput'));
            addInput();
                }
                    
            }
            else {
               
                inptField[0].value = "";
            }
            complete.hide();
        });
       
    } 
    var IntCount = 0;
    function addInput() {
        var liSMS = document.createElement('li');
        var inputSMS = document.createElement('input');
        $(liSMS).attr({ 'class': 'bit-input', 'id': 'annoninput' });
        $(inputSMS).attr({ 'type': 'text', 'class': 'maininput' });
        liSMS.appendChild(inputSMS);
        inptField = $(inputSMS);
        holderSMS.appendChild(liSMS);
        $(liSMS).click(function() {

            complete.fadeIn('fast');
        });
        $(liSMS).keypress(function(event) {

            if (event.keyCode == 13) {
                
                if ($("#hdnHoveredSMS")[0].value != "") {
                    var SelectedItem = feed.find(".auto-focus");
                    if ($(SelectedItem)[0].innerHTML != "" && $(SelectedItem)[0].innerHTML != inputChar)
                        if ($("#hdnSelectedSMS")[0].value.indexOf($(SelectedItem)[0].title) == -1)
                        addItem($(SelectedItem));
                    complete.hide();
                }
            }
        });
        $(liSMS).keyup(function(event) {

            if (event.keyCode == 40) {
                var SelectedItem = feed.find(".auto-focus");
                if ($(SelectedItem).length > 0) {
                    $(SelectedItem).attr("class", "");
                    if ($(SelectedItem).next().length > 0) {
                        $(SelectedItem).next().attr("class", "auto-focus");
                        $("#hdnHoveredSMS")[0].value = $(SelectedItem).next()[0].value;
                    }
                    else {
                        if ($(SelectedItem).prevAll().length > 0) {
                            $($(SelectedItem).prevAll()[$(SelectedItem).prevAll().length - 1]).attr("class", "auto-focus");
                            $("#hdnHoveredSMS")[0].value = $(SelectedItem).prevAll()[$(SelectedItem).prevAll().length - 1].value;
                        }
                    }

                }
            }
            else
                if (event.keyCode == 38) {
                var SelectedItem = feed.find(".auto-focus");
                if ($(SelectedItem).length > 0) {
                    if ($(SelectedItem).prev().length > 0 && $(SelectedItem).prev()[0].innerHTML != "") {
                        $(SelectedItem).attr("class", "");
                        $(SelectedItem).prev().attr("class", "auto-focus");
                        $("#hdnHoveredSMS")[0].value = $(SelectedItem).prev()[0].value;
                    }

                }
            }
            else if (event.keyCode == 27) {

                feed.hide();
            }
            else {

                var HasInt = TestIntVal($(inputSMS).val());

                var etext = $(inputSMS).val();
                inputChar = etext;
                addTextItemFeed(etext);

                addItemFeed(friendsDataModified, etext);
                if (HasInt) {
                    if ($(inputSMS)[0].value.length == 10) {
                        if ($(inputSMS)[0].value.toString().charAt(0) == "0" && $(inputSMS)[0].value.toString().charAt(1) == "1") {
                            var SelectedItem = feed.find(".auto-focus");
                             addItem(SelectedItem);
                            complete.hide();

                        }
                    }
                    else if ($(inputSMS)[0].value.length > 10) {
                        alert('مسموح فقط بادخال ارقام موبيل');
                        $(inputSMS)[0].value = "";
                    }
                }
                bindEvents();
                if (IsSMS)
                    $('.defaultSMS').hide();
                else
                    $('.default').hide();
                feed.show();


            }

        });
    }
var Intchars="0123456789"
    function TestIntVal(txtVal) {
        
            if (Intchars.indexOf(txtVal.charAt(txtVal.length-1), 0) > -1) {
                IntCount = IntCount + 1;
                return true;
            }
            else
                return false;

        }
       
    var friendsData;
    var friendsDataModified = new Array();
    if (ajax) {
        $.post(ajax, function(data) {
            friendsData = $(data).find("#divFriends")[0].innerHTML;
            friendsData = friendsData.split(',');
            for (i = 1; i < friendsData.length - 1; i++) {
                friendsDataModified[i] = friendsData[i];
            }
        });
    }
    if (typeof (elem) != 'object') elem = $(elem);
    if (typeof (list) != 'object') list = $(list);
    if (typeof (complete) != 'object') complete = $(complete);
    var feed;
    if (IsSMS)
        feed = $('#feedSMS');
    else
        feed = $('#feed');

   
    var holderSMS = document.createElement('ul');
    elem.css('display', 'none');
    $(holderSMS).attr('class', 'holder');

    if (list && list.children('li').length) {
        $.each(list.children('li'), function(i, val) {
            addItem($(list.children('li')[i]), 1);
        });
    }
    addInput();
  
    elem.before(holderSMS);

}

