function GetParam( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return 0;
  else
    return results[1];
}

function select_year_element()
{
  return document.getElementById('selyear');
}

function createOption(objSelect,newValue,newText,selected){

var objOption = document.createElement("option");
objOption.text = newText
objOption.value = newValue
if(selected)
         objOption.setAttribute('selected',1);
if(document.all && !window.opera)
  {objSelect.add(objOption);}
 else
  {objSelect.add(objOption, null);};

}

function CloseNomInCat(nomid,catid) {
  var element=document.getElementById('nom_b_'+nomid+'_'+catid);
  if(element!=null)
  {
	element.style.display='none';
  } 

  element=document.getElementById('nom_t_'+nomid+'_'+catid);
  if(element!=null)
  {
	element.style.backgroundColor='#ffffff';
	element.style.color='#000000';	
  }
}

function OpenNomInCat(nomid,catid) {
  var element=document.getElementById('nom_b_'+nomid+'_'+catid);
  if(element!=null)
  {
	element.style.display='block';
	element.style.backgroundColor='#19BDD8';
  }
  element=document.getElementById('nom_t_'+nomid+'_'+catid);
  if(element!=null)
  {

	element.style.backgroundColor='#ffffff';
	element.style.color='#FF3F0B';
  }
}

function SelectNomInCat(nomid,catid)
{
   var i;
   for(i=noms.length-1;i>=0;i--)
     CloseNomInCat(noms[i].id,catid);

  OpenNomInCat(nomid,catid);
}


function CloseNomCategory(catid) {
  var element=document.getElementById('cat_b_'+catid);
  if(element!=null)
  {
	element.style.display='none';
  } 

  element=document.getElementById('cat_t_'+catid);
  if(element!=null)
  {
	element.style.backgroundColor='#ffffff';
	element.style.color='#000000';	
  }
}

function OpenNomCategory(catid) {
  var element=document.getElementById('cat_b_'+catid);
  if(element!=null)
  {
	element.style.display='block';
	element.style.backgroundColor='#19BDD8';
  }
  element=document.getElementById('cat_t_'+catid);
  if(element!=null)
  {

	element.style.backgroundColor='#ffffff';
	element.style.color='#FF3F0B';
  }
}

function SelectNomCategory(catid)
{
   var i;
   for(i=categ.length-1;i>=0;i--)
     CloseNomCategory(categ[i].id);

  OpenNomCategory(catid);  
  SelectNomInCat(0,catid);
}

function test_nominant()
{
 var url =  window.location.href; 
 if(url.indexOf('shownom')>=0)
         return true;

 if(url.indexOf('hidenom')>=0)
         return false;

 var id   = GetParam('id');

 if(id<=0)
         return false;

 var year = GetParam('year');
 if(year<=0)
 {
   for(i=nominants.length-1;i>=0;i--)
      if(nominants[i].year > year)
           year = nominants[i].year;
 }

 if(url.indexOf('spect')>=0)
 {
    for(i=nominants.length-1;i>=0;i--)
      if(nominants[i].spect == id && nominants[i].year==year)
          return true;
 } 

 if(url.indexOf('pers')>=0)
 {
    for(i=nominants.length-1;i>=0;i--)
      if(nominants[i].who == id && nominants[i].year==year)
          return true;
 } 

 return false;
}

function category_by_id(cid)
{
 var i ;
 for(i=categ.length-1;i>=0;i--)
  if(categ[i].id==cid)
    return categ[i].name;

 return '';
}

function nom_by_id(cid)
{
 var i ;
 for(i=noms.length-1;i>=0;i--)
  if(noms[i].id==cid)
    return noms[i].name;

 return '';
}

function fill_nominations(year)
{
   var id = GetParam('id');
   if(id<=0)
         return false;


   var element= document.getElementById('nominaciya');
   if(element!=null)
   {
    var i;
    var fnoms=Array(); 
    var snomInd=-1;
    var nomin='';   
    for(i=nominants.length-1;i>=0;i--)
      if(nominants[i].spect == id && nominants[i].year==year)
      {
        var t = nominants[i].nom;

        if(nominants[i].who==0 && t>0)
        {
		snomInd = i;
        }
        else if(nominants[i].who>0 && t<0)
	{
        	fnoms[fnoms.length] = i;
        }
      }
    if(snomInd>=0)
      nomin='Номинация: ' + category_by_id(nominants[snomInd].cat) + ', '+ nom_by_id(nominants[snomInd].nom)+'<br>';

    //fnoms.sort(function(a,b){return b - a});
    for(i=fnoms.length-1;i>=0;i--)
    {
        var dat = nominants[fnoms[i]]
	nomin = nomin + 'лучшая ' + nom_by_id(dat.nom) + ' <a href="pers.php?id='+dat.who+
		'&year='+dat.year+'&cat='+dat.cat+'&nom='+dat.nom+'">'+ dat.name+'</a><br>';
    }
     element.innerHTML = nomin;
   }
  
   var element= document.getElementById('p_nominaciya');
   if(element!=null)
   {
    var i;
    var fnoms=Array(); 
    var nomin='';   
    for(i=nominants.length-1;i>=0;i--)
      if(nominants[i].who == id && nominants[i].year==year && nominants[i].nom<0)
	{
        	fnoms[fnoms.length] = i;
        }

    //fnoms.sort(function(a,b){return b - a});
    for(i=fnoms.length-1;i>=0;i--)
    {
        var dat = nominants[fnoms[i]]
	nomin = nomin + 'лучшая ' + nom_by_id(dat.nom) + ' спектакль <a href="spect.php?id='+dat.spect+
		'&year='+dat.year+'&cat='+dat.cat+'&nom='+dat.nom+'">'+ dat.sspect+'</a><br>';
    }
     element.innerHTML = nomin;
   }

}

function year_list()
{
  var objSelect=select_year_element();  

  var i,j;
  var years=Array();
  var year=GetParam('year');
  var syear=0;
 
  if(!test_nominant())
  {
	objSelect.parentNode.removeChild(objSelect);
        return;
  }

  for(i=nominants.length-1;i>=0;i--)
  {	
    var  y = nominants[i].year;
    for(j=years.length-1;j>=0;j--)
        if(years[j]==y)
                break;
    if(j<0 && y>0)
	years[years.length]=y;
  }
  years.sort(function(a,b){return b - a});
  nc = years.length;

  for(i=0;i<nc;i++)
  {
   var selected=year==years[i];
   createOption(objSelect,years[i],years[i]+1994,selected);
   if(selected)
	 syear = i;
  }

  objSelect.onchange= function(){categ_for_year(this.options[this.selectedIndex].value)};    

 
  categ_for_year(years[syear]);

  var cat=GetParam('cat');
  if(cat>0)
  {
	SelectNomCategory(cat);
        var nom=GetParam('nom');
        if(nom!=0)
	   SelectNomInCat(nom,cat);

  }
}

function categ_for_year(year)
{
  var i,j;
  var catID=Array();
  var catInd=Array();


  for(i=nominants.length-1;i>=0;i--)
  if(nominants[i].year==year)
  {	
    var  y = nominants[i].cat;
    for(j=catID.length-1;j>=0;j--)
        if(catID[j]==y)
                break;

    if(j<0 && y!=0)
    {
      catID[catID.length]=y;
      for(j=categ.length-1;j>=0;j--)
        if(categ[j].id==y)
        {
		catInd[catInd.length]=j;		
		break;
        }
    }  
  }

  catInd.sort(function(a,b){return a - b});
  var nc = catInd.length;

  var element = document.getElementById('mytable');
  element.removeChild(element.lastChild);

  var tab=document.createElement('table');
  tab.setAttribute('id','nomtable');
  var tbo=document.createElement('tbody');


  var div;
  var row;
  var cell;


  for(i=0;i<nc;i++)
  {
   //document.write(categ[catInd[i]].name+'<br>');
   row  = document.createElement('tr');
   cell = document.createElement('td');
   cell.setAttribute('id','cat_t_'+categ[catInd[i]].id);
   cell.onclick=function(){SelectNomCategory(this.getAttribute('id').substring(6));};

   div =  document.createElement('div');
   div.setAttribute('class','sub_menu');
   
   div.innerHTML=categ[catInd[i]].name;
   cell.appendChild(div);
   row.appendChild(cell);
   tbo.appendChild(row);   

   row  = document.createElement('tr');
   cell = document.createElement('td');
   cell.setAttribute('id','cat_b_'+categ[catInd[i]].id);
   div =  document.createElement('div');
   div.setAttribute('class','sub_menu_in');

   nom_for_year_cat(div,year,categ[catInd[i]].id);

   cell.appendChild(div);
   row.appendChild(cell);
   tbo.appendChild(row);   


  }

  tab.appendChild(tbo);
  element.appendChild(tab); 
  SelectNomCategory(0);
  fill_nominations(year);
}

function nom_for_year_cat(element,year,cat)
{
  var i,j;
  var nomID=Array();
  var nomInd=Array();


  for(i=nominants.length-1;i>=0;i--)
  if(nominants[i].year==year && nominants[i].cat==cat)
  {	
    var  y = nominants[i].nom;
    for(j=nomID.length-1;j>=0;j--)
        if(nomID[j]==y)
                break;

    if(j<0 && y!=0)
    {
      nomID[nomID.length]=y;
      for(j=noms.length-1;j>=0;j--)
        if(noms[j].id==y)
        {
		nomInd[nomInd.length]=j;		
		break;
        }
    }  
  }

  nomInd.sort(function(a,b){return a - b});
  var nc = nomInd.length;

  var div;
  var row;
  var cell;

  var tab=document.createElement('table');
  var tbo=document.createElement('tbody');

  for(i=0;i<nc;i++)
  {
   //document.write('>'+noms[nomInd[i]].name+'<br>');
   row  = document.createElement('tr');
   cell = document.createElement('td');
   cell.setAttribute('id','nom_t_'+noms[nomInd[i]].id+'_'+cat);
   cell.onclick=function(){ids=this.getAttribute('id').split('_');SelectNomInCat(ids[2],ids[3])};

   div =  document.createElement('div');
   div.innerHTML=noms[nomInd[i]].name;
   cell.appendChild(div);
   row.appendChild(cell);
   tbo.appendChild(row);   

   row  = document.createElement('tr');
   cell = document.createElement('td');   
   cell.setAttribute('id','nom_b_'+noms[nomInd[i]].id+'_'+cat);

   div =  document.createElement('div');
   item_for_year_cat_nom(div,year,cat,noms[nomInd[i]].id);
   cell.appendChild(div);

   row.appendChild(cell);
   tbo.appendChild(row);   
  }

  tab.appendChild(tbo);
  element.appendChild(tab);

}

function item_for_year_cat_nom(element,year,cat,nom)
{
  var i,j;
  var itemInd=Array();

  for(i=nominants.length-1;i>=0;i--)
  if(nominants[i].year==year && nominants[i].cat==cat && nominants[i].nom==nom)
  {	
    itemInd[itemInd.length]=i;  
  }

  itemInd.sort(function(a,b){
        var aname=nominants[a].name;
        var bname=nominants[b].name;
        var aspect=nominants[a].sspect;
        var bspect=nominants[b].sspect;

	return nominants[a].who>0 && nominants[b].who>0 ? (aname<bname?-1:(aname>bname?1:0)) : 
					           ((aspect<bspect?-1:(aspect>bspect?1:0))); }
  );

  var nc = itemInd.length;

  lines='';
  for(i=0;i<nc;i++)
  {
   var line='';
   var pid=nominants[itemInd[i]].who;
   var sid=nominants[itemInd[i]].spect;

   var suff='&year='+year+'&nom='+nom+'&cat='+cat; 

   if(pid>0)
   {
     line='<a href="pers.php?id='+pid+suff+'" class="white">'+nominants[itemInd[i]].name+'</a>';
     if(sid>0)
      line=line+', ';
   }
                        	
   if(sid>0)
   {
     line= line+'<a href="spect.php?id='+sid+suff+'" class="white">'+nominants[itemInd[i]].sspect+'</a>';
   }

   //document.write('>>'+line+'<br>');
   lines=lines+line+'<br>';
  }
  element.innerHTML = lines;
}
