var xrequest = getXMLHttp();
var is = new BrowserCheck();
var strings = new Array();
var parts = new Array();
var langs = new Array();
var sexs = new Array();
var files = new Array();
var lang_to_out_ru = new Array();
var lang_to_out_en = new Array();
var lang_ru = new Array();
var lang_en = new Array();
var flag = true;

var page = 0;
var max_on_page = 15;

xrequest.open("GET", "../db/flist.txt", true);
xrequest.onreadystatechange = handlerFunction;
xrequest.send(null);


var timeout = setTimeout( function(){ xrequest.abort();}, 10000);





function getXMLHttp() {
  var XMLHttp = null;
  if (window.XMLHttpRequest) {
    try {
      XMLHttp = new XMLHttpRequest();
    } catch (e) { }
  } else if (window.ActiveXObject) {
    try {
      XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) { }
    }
  }
  return XMLHttp;
}

function handlerFunction() {
  //if (xrequest.readyState == 4)
   if (xrequest.readyState != 4) 
     return  clearTimeout(timeout)

   if (xrequest.status == 200 && xrequest.readyState == 4)
  {
    result = xrequest.responseText;
    create_arrays(result);
    //(is.VER5) ? lang_options(use_lng) : true;
    //lang_options(use_lng);
  }
}


function replace_string(txt,cut_str,paste_str)
{
   var f=0;
   var ht='';

   ht = ht + txt;
   f = ht.indexOf(cut_str);
 
   while (f !=- 1)
   {
   //?OEE AEU AOIAA?IOU A?AO OEA?UOO?U IIA??IIE
     f = ht.indexOf(cut_str);
     if (f > 0)
     {
       ht = ht.substr(0,f) + paste_str + ht.substr(f+cut_str.length);
     };
   };
   return ht
};

function create_arrays(result)
{
  strings = result.split('\n');
  for (i = 0; i < strings.length; i++)
  {
    parts = strings[i].split('_');
    var n = replace_string(parts[1], ' ', '_');
    files.push(n + '_' + parts[4] + '_' + parts[5] + '.mp3');
    langs.push(parts[1]);
    sexs.push(parts[4]);

    flag = true;
    for (j = 0; j < lang_to_out_ru.length; j++)
    {
      if (lang_to_out_ru[j].toUpperCase() == parts[3].toUpperCase())
        flag = false;
    }

    if (flag)
    {
      lang_to_out_ru.push(parts[3]);
      lang_ru.push(parts[1]);
    }

    flag = true;
    for (j = 0; j < lang_to_out_en.length; j++)
    {
      if (lang_to_out_en[j].toUpperCase() == parts[2].toUpperCase())
        flag = false;
    }

    if (flag)
    {
      lang_to_out_en.push(parts[2]);
      lang_en.push(parts[1]);
    }
  }
}

function BrowserCheck()
{
  var b = navigator.appName;

  if (b == "Netscape") this.b = "NS";
    else if (b == "Microsoft Internet Explorer") this.b = "IE";
      else this.b = b;

  this.v = parseInt(navigator.appVersion);
  this.NS = (this.b == "NS" && this.v>=4);
  this.NS4 = (this.b == "NS" && this.v == 4);
  this.NS5 = (this.b == "NS" && this.v == 5);
  this.IE = (this.b == "IE" && this.v>=4);
  this.IE4 = (navigator.userAgent.indexOf('MSIE 4')>0);
  this.IE5 = (navigator.userAgent.indexOf('MSIE 5')>0);
  if (this.IE5 || this.NS5)
    this.VER5 = true;
  if (this.IE4 || this.NS4)
    this.VER4 = true;

  this.OLD = (! this.VER5 && ! this.VER4) ? true : false;
  this.min = (this.NS||this.IE);
}

function sel(page)
{
   var str = new Array();

   lang_elem = (is.VER5) ? document.getElementById('lang_sel') : (is.NS) ? document.layers['lang_sel'] : document.getElementById('lang_sel');
   sex_elem = (is.VER5) ? document.getElementById('sex') : (is.NS) ? document.layers['sex'] : document.getElementById('sex');
   elem = (is.VER5) ? document.getElementById('list') : (is.NS) ? document.layers['list'] : document.getElementById('list');
   s = '<table border=\"0\" id=\"playlist\">';

   for(i = 0; i < langs.length; i++)
   {
      if ((langs[i].toUpperCase() == lang_elem.value.toUpperCase() || lang_elem.value == '') && (sexs[i].toUpperCase() == sex_elem.value.toUpperCase() || sex_elem.value == ''))
         str.push('<tr><td><div id=\'player' + i + '\'>play</div></td><td style=\'padding-left: 15px;\'><a href=\"/mp3/' + files[i] + '\">' + files[i] + '</a></td></tr>');
   }

    var  pages = str.length / max_on_page;

    if (Math.round(pages) > pages)
       pages = Math.round(pages);

    var start = page * max_on_page;

    if (str.length > start + max_on_page)
        var finish = start + max_on_page;
    else
        var finish = str.length;

   for (i = start; i < finish; i++)
      s = s + str[i];

    s = s + '</table>';



   if ((pages != 1) && (pages > 30))
    {
       s = s + '<br/><b>Страницы:</b> ';

       for (i = 0; i < pages - 1; i++)
       {
           if (page == i)
             s = s + '<span style=\"color: red;\"> ' + (i + 1) + ' </span>&nbsp;';
           else
             s = s + '<span style=\"cursor: pointer;\" OnClick=\"sel(' + i + ')\"><u>' + (i + 1) + '</u></span>&nbsp;';
      }

   }
else
    {
       s = s + '<br/><br/><b>Страницы:</b> ';

       for (i = 0; i < pages - 1; i++)
       {
           if (page == i)
             s = s + '<span style=\"color: red;\"> ' + (i + 1) + ' </span>&nbsp;';
           else
             s = s + '<span style=\"cursor: pointer;\" OnClick=\"sel(' + i + ')\"><u>' + (i + 1) + '</u></span>&nbsp;';

      }

   }

    elem.innerHTML = s;

  for(i = 0; i < langs.length; i++)
  {
    if ((langs[i].toUpperCase() == lang_elem.value.toUpperCase() || lang_elem.value == '') && (sexs[i].toUpperCase() == sex_elem.value.toUpperCase() || sex_elem.value == '') && ((is.VER5) ? document.getElementById('player' + i) : (is.NS) ? document.layers['player' + i] : document.getElementById('player' + i)))
    {
      var so = new SWFObject('/mediaplayer.swf', 'line', '17', '20', '7');	
      so.addVariable('file','/mp3/' + files[i]);	
      so.addVariable('autostart','false');	
      so.addVariable('height','20');	
      so.addVariable('showvolume','false');	
      so.addVariable('width','17');	
      so.write('player' + i);
    }
  }

}



function lang_options(lng)
{
  
  lang_elem = (is.VER5) ? document.getElementById('lang_sel') : (is.NS) ? document.layers['lang_sel'] : document.getElementById('lang_sel');
  if (lng == 'ru')
    for (i = 0; i < lang_to_out_ru.length; i++)
    {
      //lang_elem.options[lang_elem.options.length] = new Option(lang_to_out_ru[i], lang_ru[i]);
      lang_elem.options.length = lang_elem.options.length + 1;
      lang_elem.options[lang_elem.options.length - 1].text = lang_to_out_ru[i];
      lang_elem.options[lang_elem.options.length - 1].value = lang_ru[i];
    }

  if (lng == 'en')
  {
    for (i = 0; i < lang_to_out_en.length; i++)
    {
      //lang_elem.options[lang_elem.options.length] = new Option(lang_to_out_ru[i], lang_ru[i]);
      lang_elem.options.length = lang_elem.options.length + 1;
      lang_elem.options[lang_elem.options.length - 1].text = lang_to_out_en[i];
      lang_elem.options[lang_elem.options.length - 1].value = lang_ru[i];
    }
  }
}

