  function createXmlHttpRequestObject() {
           //var xmlHttp;
           try {
             xmlHttp = new XMLHttpRequest();
           }
           catch(e) {
             var XmlHttpVersions = new Array ("MSXML2.XMLHTTP.6.0",
                                              "MSXML2.XMLHTTP.5.0",
                                              "MSXML2.XMLHTTP.4.0",
                                              "MSXML2.XMLHTTP.3.0",
                                              "MSXML2.XMLHTTP",
                                              "Microsoft.XMLHTTP");
             for (var i = 0; i < XmlHttpVersions.length && !xmlHttp; i++) {
               try {
                 xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
               }
               catch(e) {}
             }
           }

           if (xmlHttp) return xmlHttp;
  }

  var xmlHttp = createXmlHttpRequestObject();
  var showErrors = false;
  var cache = new Array();
  var key = 0;
  var key2 = 0;
  var active = 0;
  var total = 0;
  var drop_active = 1;
  var last_activity = 0;
  var total_height = 0;
  var hght = 250;
  var timeID = '';
  var time2ID = '';

  var countryID;//Select Country Item - ID
  var element2N1;//other_cities - ID
  var element2N2;//other_city - ID
  var element2N3;//city_id - ID
  var element2N4;
  var element2N5;
  var element2N6;
  var serverAddress2N3;
  //NEW MESSAGE
    var cure_user_id;
    var message_count = 0;
    var active_user = '';
    var tmp = '';
    var tmp2 = '';
  //NEW MESSAGE
  var resset_param = '';

  function capture(element1,country,element2,serverAddress,element3,element4,element5,element6,resset) {
           element2N1 = element1;
           element2N2 = element2;
           element2N3 = element3;
           element2N4 = element4;
           element2N5 = element5;
           element2N6 = element6;
           serverAddress2N3 = serverAddress;
           resset_param = resset;

           countryID = country;
           if (navigator.appName!= "Mozilla") {
             document.onkeyup=capturekey
             document.onkeydown=capturekey2
           } else {
             document.myForm.getElementById(element2N1).addEventListener("keyup",capturekey,true);
             document.myForm.getElementById(element2N1).addEventListener("keydown",capturekey2,true);
           }
  }

  function capturekey(e) {
           var foo = new Date; // Generic JS date object
           var unixtime_ms = foo.getTime();

           key = (typeof event!='undefined')?window.event.keyCode:e.keyCode;
           var x = ',9,16,17,18,19,20,27,35,33,34,36,37,39,45,38,40,13,';

           if ((key == 46) || (key == 8) || (key == 16)) drop_active = 1;
           if (x.indexOf(','+key+',') == -1 && (unixtime_ms - last_activity) >= 500) type_city(key);

           var er = 0;

           if (obligatory == '2' && total < 1) er = 1;
           if (key == 13 && document.getElementById(element2N1).value != '' && !er) controls('13');
           last_activity = unixtime_ms;
  }

  function capturekey2(e) {
           key2 = (typeof event!='undefined')?window.event.keyCode:e.keyCode;
           if (document.getElementById(element2N1).value == '') last_activity = 0;

           if (key2 == 40 || key2 == 38) {
             if (total > 0) {
               controls(key2);
               if (time2ID == '') time2ID = window.setTimeout('interval();',400);
             }
           }
           if (key2 == 33 || key2 == 34) {
             if (total > 0) controls(key2);
           }
  }

  function handleRequestStateChange_dr_list_cities() {
           if (xmlHttp.readyState == 4) {
             if (xmlHttp.status == 200) {
               try {
                 readResponse_dr_list_cities();
               }
               catch(e) {
                 //displayError(e.toString());
               }
             } else {
               //displayError(xmlHttp.statusText);
             }
           }
  }

  function dr_list_cities_list(inputValue, inputValue2) {
           if (xmlHttp) {
             if (inputValue && inputValue2) {
               cache.push('a=' + inputValue + '&b=' + inputValue2);
             }
             try {
               if ((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) && cache.length > 0) {
                 var cacheEntry = cache.shift();
                 //var serverAddress = 'js/php/drop_cities.php';
                 xmlHttp.open("POST", serverAddress2N3, true);
                 xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                 xmlHttp.onreadystatechange = handleRequestStateChange_dr_list_cities;
                 xmlHttp.send(cacheEntry);
               }
             }
             catch(e) {
               //displayError(e.toString());
             }
           }
  }

  function readResponse_dr_list_cities() {
           TxtDoc = xmlHttp.responseText;
           TxtDoc = decodeURIComponent(TxtDoc);
           var arr = returnData(TxtDoc, 1);
           result = arr[0];
           result_count = arr[1];
           var arr = returnData(TxtDoc, 2);

           if (result == 'OK') {

             var sel;
             var res;
             active = 0;
             total = result_count;
             //*******************SELECT OPTION
               if (drop_type == 'general') {
                 sel = '<iframe scrolling="no" frameborder="0" class="drop_container" style="width:181px;">';
                 sel = sel + '</iframe>';
                 sel = sel + '<div class="drop_list" style="width:180px;" id="drop_list">';
               }
             //*******************SELECT OPTION
             //*******************NEW MESSAGE
               if (drop_type == 'new_message') {
                 sel = '<iframe scrolling="no" frameborder="0" class="drop_container" style="width:344px;">';
                 sel = sel + '</iframe>';
                 sel = sel + '<div class="drop_list" style="width:343px;" id="drop_list">';
               }
             //*******************NEW MESSAGE

             var r = new RegExp(document.getElementById(element2N1).value, 'i');
             var len = document.getElementById(element2N1).value.length;

             if (result_count == 0) drop_active = 0;

             for (var i=0;i<result_count;i++) {
               var arr2 = returnData(arr[0], 1);
               result_id = arr2[0];
               result_value = arr2[1];
               result_value_2 = arr2[2];
               sel = sel + '<div class="drop_list_cell" id="drop_list_item_'+i+'">';

               //*******************NEW MESSAGE
                 if (drop_type == 'new_message') {
                   result_value_3 = arr2[3];
                   result_value_4 = arr2[4];
                   result_value_5 = arr2[5];

                   var user_photo;
                   if (result_value_4 == '.') user_photo = 'default';
                   else user_photo = result_value_4;

                   sel = sel + '<input type="hidden" id='+ element2N3 +'p'+i+' value='+user_photo+'>';
                   sel = sel + '<input type="hidden" id='+ element2N3 +'s'+i+' value='+result_value_5+'>';

                   sel = sel + '<a href=javascript:show_friend('+ result_id +',\''+user_photo+'\',\''+result_value_5+'\',\''+encodeURIComponent(result_value)+'\') class="drop_list_hover" onmouseout="this.style.backgroundColor = \'#fff\'" onmouseover="this.style.backgroundColor = \'#d9e0ea\'" id='+ element2N3 +'a' + i + '>';//
                 }
               arr.shift();
               //*******************NEW MESSAGE

               //*******************SELECT OPTION
                 if (drop_type == 'general') {
                   sel = sel + '<a href=javascript:select_item('+ result_id +','+i+') class="drop_list_hover" onmouseout="this.style.backgroundColor = \'#fff\'" onmouseover="this.style.backgroundColor = \'#d9e0ea\'" id='+ element2N3 +'a' + i + '>';//
                 }
               //*******************SELECT OPTION
               sel = sel + '<input type="hidden" id='+ element2N3 +'d'+i+' value='+result_id+'>';
               sel = sel + '<input type="hidden" id='+ element2N3 +'v'+i+' value="'+result_value+'">';

               res = result_value.substr(0,len);
               result_value = result_value.replace(r,'<strong class="drop_select_leter">'+ res +'</strong>');
               sel = sel + result_value + '<br/>';

               if (result_value_2 != '.') sel = sel + '<font class="font_light" style="font-size:10px;line-height:1;">' + result_value_2 + '</font>';

               //*******************NEW MESSAGE
                 if (drop_type == 'new_message') {
                   if (result_value_3 != '.') sel = sel + ' <font class="font_light" style="font-size:10px;line-height:1;">' + result_value_3 + '</font>';
                 }
               //*******************NEW MESSAGE

               sel = sel + '</a>';
               sel = sel + '</div>';

               st = '';
             }
             sel = sel + '</div>';

             if (result_count != 0 && document.getElementById(element2N1).value.length != 0) {
               document.getElementById(element2N2).innerHTML = sel;
               document.getElementById(element2N2).style.display = 'block';
               document.getElementById(element2N3 + 'a0').style.backgroundColor = '#d9e0ea';
             } else {
               document.getElementById(element2N2).style.display = 'none';
             }
           }
             document.getElementById(element2N1).className = 'inp_text';
  }

  function drop_listing_cities(n,n2) {
           n = ltrim(n);
           if (n != '') dr_list_cities_list(n, n2);
           else {
             document.getElementById(element2N1).className = 'inp_text';
             document.getElementById(element2N2).style.display = 'none';
           }
  }

  function type_city(key) {
           if (drop_active == 1) {
             document.getElementById(element2N1).className = 'inp_text_loader';

             //*******************SELECT OPTION
               if (drop_type == 'general')  drop_listing_cities(document.getElementById(element2N1).value,document.getElementById(countryID+"_2").options[document.getElementById(element2N1).value,document.getElementById(countryID+"_2").selectedIndex].value);
             //*******************SELECT OPTION
             //*******************NEW MESSAGE
               if (drop_type == 'new_message') drop_listing_cities(document.getElementById(element2N1).value, cure_user_id);
             //*******************NEW MESSAGE
           }
  }

  function select_item(id,j) {
             if (drop_type == 'general') {
               for (var i=0;i<document.getElementById(element2N3+'_2').options.length;i++) {
                 if (document.getElementById(element2N3+'_2').options[i].value == id) {
                   document.getElementById(element2N3+'_2').options[i].selected = true;
                   var vr = id;
                   var ok = 1;
                 }
               }
               if (ok != 1) {
                 if (document.getElementById(element2N2).style.display == 'block') {
                   var optn = document.createElement("OPTION");

                   optn.text = document.getElementById(element2N3 + 'v' + j).value;
                   optn.value = vr = id;
                   optn.style.color='black';
                   optn.selected = true;
                   document.getElementById(element2N3+'_2').options.add(optn);
                 }
               }
             }
           fhide(vr);
  }

  function controls(key) {
           if (key == 40) {
             if (total > 0) {
               var objDiv = document.getElementById('drop_list');
               var hdrop_list_item = document.getElementById('drop_list_item_'+active).scrollHeight;

               if ((active + 2) * hdrop_list_item >= hght) objDiv.scrollTop = objDiv.scrollTop + hdrop_list_item;
               document.getElementById(element2N3 +'a'+active).style.backgroundColor = '#fff';
               active = active + 1;
               if (active >= total) {
                 active = 0;
                 objDiv.scrollTop = 0;
               }
               document.getElementById(element2N3 +'a' + active).style.backgroundColor = '#d9e0ea';
             }
             document.getElementById(element2N1).className = 'inp_text';
           } else if (key == 38) {
             if (total > 0) {
               var objDiv = document.getElementById('drop_list');
               var hdrop_list_item = document.getElementById('drop_list_item_'+active).scrollHeight;

               if ((active - 1) * hdrop_list_item <= (objDiv.scrollHeight - hght)) objDiv.scrollTop = objDiv.scrollTop - hdrop_list_item;
               document.getElementById(element2N3 +'a'+active).style.backgroundColor = '#fff';
               active = active - 1;
               if (active == -1) {
                 active = total - 1;
                 objDiv.scrollTop = objDiv.scrollHeight;
               }
               document.getElementById(element2N3 +'a' + active).style.backgroundColor = '#d9e0ea';
             }
             document.getElementById(element2N1).className = 'inp_text';
           } else if (key == 33) {
             if (total > 0) {
               var objDiv = document.getElementById('drop_list');
               //var hdrop_list_item = document.getElementById('drop_list_item').scrollHeight;

               document.getElementById(element2N3 +'a'+active).style.backgroundColor = '#fff';
               active = 0;
               objDiv.scrollTop = 0;
               document.getElementById(element2N3 +'a' + active).style.backgroundColor = '#d9e0ea';
             }
           } else if (key == 34) {
             if (total > 0) {
               var objDiv = document.getElementById('drop_list');
               //var hdrop_list_item = document.getElementById('drop_list_item').scrollHeight;

               document.getElementById(element2N3 +'a'+active).style.backgroundColor = '#fff';
               active = total - 1;
               objDiv.scrollTop = objDiv.scrollHeight;
               document.getElementById(element2N3 +'a' + active).style.backgroundColor = '#d9e0ea';
             }
           } else if (key == 13) {
             //*******************SELECT OPTION
               if (drop_type == 'general') {
                 var vr;
                 if (document.getElementById(element2N2).style.display == 'block') {
                   var id = document.getElementById(element2N3 + 'd' + active).value;

                   for (var i=0;i<document.getElementById(element2N3+'_2').options.length;i++) {
                     if (document.getElementById(element2N3+'_2').options[i].value == id) {
                       document.getElementById(element2N3+'_2').options[i].selected = true;
                       var ok = 1;
                       vr = id;
                     }
                   }
                 }

                 if (ok != 1) {
                   var optn = document.createElement("OPTION");
                   if (document.getElementById(element2N2).style.display == 'block') {
                     optn.text =  document.getElementById(element2N3 + 'v' + active).value;
                     optn.value = vr = document.getElementById(element2N3 + 'd' + active).value;
                   } else {
                     optn.text = document.getElementById(element2N1).value;
                     optn.value = 'new_' + document.getElementById(element2N1).value;
                     vr = '0';
                   }
                   optn.style.color='black';
                   optn.selected = true;
                   document.getElementById(element2N3+'_2').options.add(optn);
                 }

                 //Hide Block
                 fhide(vr);
               }
             //*******************SELECT OPTION
             //*******************NEW MESSAGE
               if (drop_type == 'new_message') {
                 var id = document.getElementById(element2N3 + 'd' + active).value;
                 var photo = document.getElementById(element2N3 + 'p' + active).value;
                 var status = document.getElementById(element2N3 + 's' + active).value;
                 var name = document.getElementById(element2N3 + 'v' + active).value;

                 show_friend(id,photo,status,name);
               }
             //*******************NEW MESSAGE
           }
  }

  function fhide(vr) {
           //*******************SELECT OPTION
             if (drop_type == 'general') {
               reset_textbox(element2N5);
               reset_textbox(element2N4);
             }
           //*******************SELECT OPTION
           reset_textbox(element2N2);
           document.getElementById(element2N1).value = '';
           document.getElementById(element2N1).className = 'inp_text';

           //*******************SELECT OPTION
             if (drop_type == 'general') {
               if (element2N6 != '0') eval(element2N6+"("+vr+",'"+resset_param+"');");
             }
           //*******************SELECT OPTION
  }

  function interval() {
           if (timeID == '') timeID = window.setInterval('controls(' + key2 +');', 40);
  }

  function cleartimeout() {
           if (time2ID != '') window.clearTimeout(time2ID);
           if (timeID != '')  window.clearInterval(timeID);
           timeID = time2ID = '';
  }

  function show_friend(id,photo,status,name) {
           if (document.getElementById(element2N2).style.display == 'block') {
             //Hide Block
             fhide(0);
             if (tmp == '') tmp = ',';
             if (tmp.indexOf(','+id+',') == -1) {
               tmp += id + ',';

               var sel = classname = '';
               message_count++;
               document.getElementById('message_count').value = message_count;

               if (active_user != '') document.getElementById('ato_'+ active_user).className = '';
               active_user = message_count;


               sel = sel + '<div id="dv_'+ message_count +'" onclick="face_change(\''+message_count+'\',\''+photo+'\',\''+status+'\',\''+id+'\');">';
               sel = sel + '<a href="#" id="ato_'+ message_count +'" class="">';
               sel = sel + '<input type="hidden" name="to_'+ message_count +'" id="to_'+ message_count +'" value="'+ id +'">';
               sel = sel + '<span class="mi1">';
               sel = sel + '<span class="mi2">';
               sel = sel + '<span class="mi3">';
               sel = sel + '<span class="mi4">';
               sel = sel + '<span onmouseover="this.className=\'x_hover\';" onmouseout="this.className=\'x\'" class="x" onclick="hide_user(\''+message_count+'\',\''+id+'\');">X</span>';
               sel = sel + name;
               sel = sel + '</span>';
               sel = sel + '</span>';
               sel = sel + '</span>';
               sel = sel + '</span>';
               sel = sel + '</a>';
               sel = sel + '</div>';

               document.getElementById(element2N5).innerHTML += sel;
               document.getElementById('ato_'+ message_count).className = 'selected';

               if (photo == 'default') photo = site_url + 'images/' + user_no_photo;
               else photo = site_url + user_photo_path + photo;

               document.getElementById('user_photo_link').href = site_url + 'profile/' + id;
               if (photo != document.getElementById('user_photo_img').src) document.getElementById('user_photo_img').src = photo;
               document.getElementById('user_photo_status').innerHTML = status;
             }
             document.getElementById(element2N1).focus();
           }
  }

  function face_change(message_count2,photo,status,id) {
           if (tmp2.indexOf(','+message_count2+',') == -1) {
             document.getElementById('ato_'+ active_user).className = '';
             document.getElementById('ato_'+ message_count2).className = 'selected';
             active_user = message_count2;

             if (photo == 'default') photo = site_url + 'images/' + user_no_photo;
             else photo = site_url + user_photo_path + photo;

             document.getElementById('user_photo_link').href = site_url + 'profile/' + id;
             if (photo != document.getElementById('user_photo_img').src) document.getElementById('user_photo_img').src = photo;
             document.getElementById('user_photo_status').innerHTML = status;
           }
  }

  function hide_user(message_count2,id) {
           if (tmp2 == '') tmp2 = ',';
           tmp2 += message_count2 + ',';

           var keysearch = ','+id+',';
           var pos = tmp.indexOf(keysearch);

           tmp = tmp.substr(0,pos) + ',' + tmp.substr(pos+keysearch.length);

           var tmp3 = message_count;
           while (tmp3 > -1) {
             if (tmp2.indexOf(','+tmp3+',') == -1) {
               document.getElementById('user_photo_img').src = site_url + 'images/' + user_no_photo;
               document.getElementById('user_photo_link').href = '#';
               document.getElementById('user_photo_status').innerHTML = '';

               if (active_user != '') document.getElementById('ato_'+ active_user).className = '';
               active_user = tmp3;

               if (active_user == 0) active_user = '';
               break;
             }
             tmp3--;
           }
           document.getElementById('dv_' + message_count2).innerHTML = '';
  }