﻿col = 1;
nr=0;
current = -1;
sortorder = -1;

GenreArrayOnScreen = [];


Array.prototype.remove = function(from, to) {
  var rest = this.slice((to || from) + 1 || this.length);
  this.length = from < 0 ? this.length + from : from;
  return this.push.apply(this, rest);
};


if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}


function delete_iframe()
{
	node = document.getElementById('upload_target');
	node.parentNode.removeChild(node);
}

function smart_add()
{
var url=prompt("Spotify URL:","");
if (url==null || url==""){return(0)};
if ((url.length < 8) || (url.indexOf('spotify') == -1) || (url.indexOf('album') == -1)){
alert("Sorry, only album url's are suported right now. \n\nie:\nspotify:album:6tgMb6LEwb3yj7BdYy462y \nor:\nhttp://open.spotify.com/album/6tgMb6LEwb3yj7BdYy462y");
}
else {

	  

				for (var x=0; x<AlbumArray_backup.length; x++) 
				{
					if (!(AlbumArray_backup[x]==undefined))
					{
						if(AlbumArray_backup[x][3] == url)
						{
							alert("This album is already in your collection");
							return;
						}
					}
				}

covers = "load.gif";
artist = "";
genre = "[]";
sqlid = "999999";
title = "";
//AlbumArray.push(['', '', '', '', '', []]);
//id = AlbumArray.length;
//AlbumArray[id]=[sqlid, covers, title, url, artist, genre];
id = AlbumArray_backup.length;
AlbumArray_backup[id]=[sqlid, covers, title, url, artist, genre];
AlbumArray = AlbumArray_backup; 

sortorder=-1;
sort(sort_date);
//AlbumArray.reverse();


document.getElementById('status_div').innerHTML='<img src="/images/load.gif">';

var xmlhttp;
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {
  // code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
else
  {
  alert("Your browser does not support XMLHTTP!");
  }
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
  {

				for (var x=0; x<AlbumArray_backup.length; x++) 
				{
				if (!(AlbumArray_backup[x]==undefined))
				{
					if(AlbumArray_backup[x][3] == url)
					{
						the_album=x;
						break;

					}
				}
				}
				for (var x=0; x<AlbumArray.length; x++) 
				{
				if (!(AlbumArray[x]==undefined))
				{
					if(AlbumArray[x][3] == url)
					{
						the_album_onscreen=x;
						break;

					}
				}
				}
AlbumArray_backup[the_album] = xmlhttp.responseText.split('~');
AlbumArray[the_album_onscreen] = xmlhttp.responseText.split('~');

document.getElementById(the_album_onscreen).innerHTML='<img src="/covers/'+AlbumArray[the_album_onscreen][1]+'" width="111" height="109" border="0" class="album_cover"><a onClick="Play_Edit(\'creatediv\',1,\''+the_album_onscreen+'\');" onMouseOver="show_controls('+the_album_onscreen+',1);" onMouseOut="show_controls('+the_album_onscreen+',0);" class="image_href" title="'+AlbumArray[the_album_onscreen][4]+'-'+AlbumArray[the_album_onscreen][2]+'"></a><div class="inforuta" id="inforuta'+the_album_onscreen+'"></div>'; 
																									
document.getElementById('status_div').innerHTML='new album added'
//add_artists_list();
//document.getElementById(0).innerHTML='<img src="covers/hej.jpg">';
 }
}
xmlhttp.open("GET","/copyimage.php?url="+url+"&id=0",true);
xmlhttp.send(null);
}


}


function newAlbum()
{
if(!(check_albumform()==false)){
covers = document.getElementById('cover').src;
covers = GetFileName(covers);
document.getElementById('login').cover.value = covers;
url = document.getElementById('login').url.value;
artist = document.getElementById('login').artist.value;
genre = document.getElementById('login').genre.value;
id = document.getElementById('login').album_id.value;
sqlid = document.getElementById('login').sql_id.value;
title = document.getElementById('login').title.value;
AlbumArray[id]=[sqlid, covers, title, url, artist, AlbumArray[id][5]];
//AlbumArray.unshift([sqlid, covers, title, url, artist, [genre]]);
current = -1;
next();
next();

toggleBoxedit('creatediv',0,'new_created');
document.login.submit();
}
}


function smart_edit()
{
if(!(check_albumform()==false))
{
covers = document.getElementById('cover').src;
covers = GetFileName(covers);
document.getElementById('login').cover.value = covers;
url = document.getElementById('login').url.value;

artist = document.getElementById('login').artist.value;
genre = document.getElementById('login').genre.value;
id = document.getElementById('login').album_id.value;
sqlid = document.getElementById('login').sql_id.value;
title = document.getElementById('login').title.value;

AlbumArray[id]=[sqlid, covers, title, url, artist, ""];
AlbumArray[id][5] = genre.split(',');

				for (var x=0; x<AlbumArray_backup.length; x++) 
				{
				if (!(AlbumArray_backup[x]==undefined))
				{
					if(AlbumArray_backup[x][0] == sqlid)
					{
						the_album=x;
						break;

					}
				}
				}

AlbumArray_backup[the_album]=[sqlid, covers, title, url, artist, ""];
AlbumArray_backup[the_album][5] = genre.split(',');
				
				
//add_artists_list();
				
toggleBoxedit('creatediv',0,-1);


document.getElementById('status_div').innerHTML='<img src="/images/load.gif">';
document.getElementById(id).innerHTML='<img src="/covers/'+covers+'" width="111" height="109" border="0" class="album_cover"><a onClick="Play_Edit(\'creatediv\',1,\''+id+'\');" onMouseOver="show_controls('+id+',1);" onMouseOut="show_controls('+id+',0);" class="image_href"></a><div class="inforuta" id="inforuta'+id+'"></div>';


var xmlhttp;
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {
  // code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
else
  {
  alert("Your browser does not support XMLHTTP!");
  }
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
  {
	//AlbumArray_backup[the_album] = xmlhttp.responseText.split('~');
	//document.getElementById(the_album_onscreen).innerHTML='<img src="covers/'+AlbumArray[the_album_onscreen][1]+'" width="111" height="109" border="0" class="album_cover"><a onClick="Play_Edit(\'creatediv\',1,\''+the_album_onscreen+'\');" onMouseOver="show_controls('+the_album_onscreen+',1);" onMouseOut="show_controls('+the_album_onscreen+',0);" class="image_href" title="'+AlbumArray[the_album_onscreen][4]+'-'+AlbumArray[the_album_onscreen][2]+'"></a><div class="inforuta" id="inforuta'+the_album_onscreen+'"></div>'; 																									
	document.getElementById('status_div').innerHTML='album edited'
 }
}
//xmlhttp.open("GET","ajaxedit.php?url='"+url+"'&sql_id="+sqlid+"&artist='"+artist+"'&title='"+title+"'&cover='"+covers+"'genre='"+genre+"'",true);
xmlhttp.open("GET","/ajax_edit.php?url="+url+"&sql_id="+sqlid+"&artist="+artist+"&title="+title+"&cover="+covers+"&genre="+genre+"&todo=edit",true);
xmlhttp.send(null); 
}
}

function EditAlbum()
{
if(!(check_albumform()==false)){
covers = document.getElementById('cover').src;
covers = GetFileName(covers);
document.getElementById('login').cover.value = covers;
url = document.getElementById('login').url.value;
artist = document.getElementById('login').artist.value;
genre = document.getElementById('login').genre.value;
id = document.getElementById('login').album_id.value;
sqlid = document.getElementById('login').sql_id.value;
title = document.getElementById('login').title.value;
AlbumArray[id]=[sqlid, covers, title, url, artist, AlbumArray[id][5]];
toggleBoxedit('creatediv',0);
//document.getElementById(id).innerHTML='<img src="covers/'+covers+'" width="111" height="109" border="0" class="album_cover"><a onClick="toggleBoxedit(\'creatediv\',1,\''+id+'\');" onMouseOver="show_controls('+id+',1);" onMouseOut="show_controls('+id+',0);" class="image_href"></a>';
document.getElementById(id).innerHTML='<img src="/covers/'+covers+'" width="111" height="109" border="0" class="album_cover"><a onClick="Play_Edit(\'creatediv\',1,\''+id+'\');" onMouseOver="show_controls('+id+',1);" onMouseOut="show_controls('+id+',0);" class="image_href"></a><div class="inforuta" id="inforuta'+id+'"></div>';
document.login.submit();
}
}

function DeleteAlbum_(id)
{
	//if(confirm('Delete this?\n'+document.getElementById('login').artist.value+' - '+document.getElementById('login').title.value+'?'))
	id = document.getElementById('login').album_id.value;
	if(confirm('Delete this?\n'+AlbumArray[id][4]+' - '+AlbumArray[id][2]+'?'))
	{
	document.getElementById('status_div').innerHTML='<img src="images/load.gif">'
	node = document.getElementById('login').album_id.value;
	node = document.getElementById(node);
	node.parentNode.removeChild(node);
	document.getElementById('login').todo.value = 'delete';
	id = document.getElementById('login').album_id.value;
	sql_id = document.getElementById('login').sql_id.value;
	covern = document.getElementById('login').cover.value;
	toggleBoxedit('creatediv',0);
	AlbumArray.splice(id,1,undefined);
	//AlbumArray_backup.splice(id,1,undefined);


var xmlhttp;
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {
  // code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
else
  {
  alert("Your browser does not support XMLHTTP!");
  }
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
  {
//alert(xmlhttp.responseText);
document.getElementById('status_div').innerHTML='deleted from server'
 }
}
xmlhttp.open("GET","/ajax_delete.php?todo=delete&cover="+covern+"&sql_id="+sql_id,true);
xmlhttp.send(null);

	}
}

function DeleteAlbum(id)
{
	if(confirm('Delete this?\n'+AlbumArray[id][4]+' - '+AlbumArray[id][2]+'?'))
	{
	document.getElementById('status_div').innerHTML='<img src="/images/load.gif">'
	node = document.getElementById(id);
	node.parentNode.removeChild(node);
	sql_id = AlbumArray[id][0];
	covern = AlbumArray[id][1];

	
				for (var x=0; x<AlbumArray_backup.length; x++) 
				{
				if (!(AlbumArray_backup[x]==undefined))
				{
					if(AlbumArray_backup[x][0] == sql_id)
					{
						the_album=x;
						break;
					}
				}
				}
				
AlbumArray.splice(id,1,undefined);
AlbumArray_backup.splice(the_album,1,undefined);

var xmlhttp;
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {
  // code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
else
  {
  alert("Your browser does not support XMLHTTP!");
  }
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
  {
//alert(xmlhttp.responseText);
document.getElementById('status_div').innerHTML='deleted from server'
 }
}
xmlhttp.open("GET","/ajax_delete.php?todo=delete&cover="+covern+"&sql_id="+sql_id,true);
xmlhttp.send(null);

	}
}


function new_genre_list(id,x)
{
mydiv = document.createElement("div");
formen = document.getElementById('album_genre_list');
mytext = document.createElement("a");
mytext.style.cursor = "pointer";
mytext.innerHTML='&nbsp;del<br><br>'
mytext.onclick = new Function("deassign_genre(this);");
myselect=document.createElement("select");
myselect.className="small";
genrearray_tmp = [];

myselect.onchange = function() 
{ 
genrearray_tmp = [];
formen = document.getElementById('album_genre_list');
for(i=0; i<formen.elements.length; i++)
{
genrearray_tmp.push(formen.elements[i].value);
}
document.getElementById('login').genre.value = genrearray_tmp;
}

for(i=0; i<formen.elements.length; i++)
{
genrearray_tmp.push(formen.elements[i].value);
}
document.getElementById('login').genre.value = genrearray_tmp;

mydiv.appendChild(myselect); 
mydiv.appendChild(mytext); 
formen.appendChild(mydiv); 
add_genres_list(myselect,id)
}

function deassign_genre(node)
{
sel = node.parentNode;
sel.parentNode.removeChild(sel);
genrearray_tmp = [];
for(i=0; i<formen.elements.length; i++)
{
genrearray_tmp.push(formen.elements[i].value);
}
document.getElementById('login').genre.value = genrearray_tmp;
}

function updatesellist(id)
{
var x=0;
for (var i=0; i<AlbumArray[id][5].length; i++) {

	if(!(GenreArray[AlbumArray[id][5][i]] == undefined))
	{
	new_genre_list(AlbumArray[id][5][i],x);
	x++;
	}
}
}


function smart_add_genre()
{
var url=prompt("Genre name:","");
if (url==null || url==""){
alert("You need to type a new genre name...");
}
else {
				for (var x=0; x<GenreArray.length; x++) 
				{
					if (!(GenreArray[x]==undefined))
					{
						if(GenreArray[x][0].toLowerCase() == url.toLowerCase())
						{
							alert("You already got a genre with that name");
							return;
						}
					}
				}

document.getElementById('status_div').innerHTML='<img src="/images/load.gif">';

//	GenreArray.push(url);
//	add_genres_list();

var xmlhttp;
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {
  // code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
else
  {
  alert("Your browser does not support XMLHTTP!");
  }
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
	{
	arr = xmlhttp.responseText.split('~');
	GenreArray[arr[0]] = arr[1].split(',');									
	add_genres_list();
	document.getElementById('status_div').innerHTML='new genre added'
	}
}

xmlhttp.open("GET","/ajax_add_genre.php?todo_genre=new&genrename="+url,true);

xmlhttp.send(null);
}


}


function Add_Genre()
{
var name=prompt("Genre name:","");
if (name!=null && name!="")
  {

	GenreArray.push(name);
//	write_genres(name, (GenreArray.length-1))
	add_genres_list(document.genre_list.genres);

	var objframe=document.getElementById("upload_target");
	objframe.src="/add_album.php?todo_genre=new&genrename="+name; 

  }
}

function stopUpload(success, cover){
	if (success == 1){
	document.getElementById('cover').src = "/covers/" + cover;
	}
	else {
	document.getElementById('cover').src = "/images/spotify_hover.png";
      }
      return true;
}


function cancel_new()
{
//AlbumArray.pop();
toggleBoxedit('creatediv',0);
}


function GetFileName(path)
{ 
var pos =path.lastIndexOf( path.charAt( path.indexOf(":")+1) ); 
var filename = path.substring( pos+1);
return filename
}


function GetGenreIndex(path)
{ 
return path.substring(6);
}


function clearnodes() { 
/* 	var cell = document.getElementById("album_tag_container"); 
	if ( cell.hasChildNodes() )
	{
	while ( cell.childNodes.length >= 1 )
	{
	removenode(cell.firstChild, 1);  
	} 
	} */
	
	var cell = document.getElementById("album_genre_list"); 
	if ( cell.hasChildNodes() )
	{
	while ( cell.childNodes.length >= 1 )
	{
	cell.removeChild(cell.firstChild);
	} 
	}
	
}


function upload() {
document.getElementById('cover').src = "/images/loading.gif";
document.getElementById('FORM').submit();
}

function toggleBoxedit(szDivID, iState, id) // 1 visible, 0 hidden
{

	if(iState==1)
	{
	divmask=new maskpanel();  
	divmask.show(); 
	}
	else
	{
	divmask.hide();  
	}
	
	 if(document.layers)	   //NN4+
    {
	document.layers[szDivID].visibility = iState ? "show" : "hide";

    }
	else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
	var obj = document.getElementById(szDivID);
        obj.style.visibility = iState ? "visible" : "hidden";
    }
    else if(document.all)	// IE 4
    {
        document.all[szDivID].style.visibility = iState ? "visible" : "hidden";
    }



	if(id>=0)
	{
		document.getElementById('cover').src = "/covers/" + AlbumArray[id][1];
		document.getElementById('login').url.value = AlbumArray[id][3];
		document.getElementById('login').artist.value = AlbumArray[id][4];
		document.getElementById('login').title.value = AlbumArray[id][2];
		document.getElementById('login').genre.value = AlbumArray[id][5];
		document.getElementById('login').album_id.value = id;
		document.getElementById('login').sql_id.value = AlbumArray[id][0];
		document.getElementById('login').genre.value = "";
		clearnodes();
		updatesellist(id);
		
	//	genrearray_tmp = [];
		


		state=0;
	}
	else if(id<=-2)
	{

		document.getElementById('cover').src = "/covers/blankcdr.jpg";
		document.getElementById('login').url.value = "";
		document.getElementById('login').artist.value = "";
		document.getElementById('login').title.value = "";
		document.getElementById('login').album_id.value = "";
		AlbumArray.push(['', '', '', '', '', []]);
		document.getElementById('login').album_id.value = AlbumArray.length-1;
		state=1;
	
	}
		covers = document.getElementById('cover').src;
		covers = GetFileName(covers);
		document.getElementById('login').cover.value = covers;
		show_buttons(iState, state);
 
}

function submitfrm() {
id = document.getElementById('login').album_id.value;
AlbumArray[id][5] = document.getElementById('login').genre.value;

}


function removeDuplicateElement(arrayName)
      {
        var newArray=new Array();
        label:for(var i=0; i<arrayName.length;i++ )
        {  
          for(var j=0; j<newArray.length;j++ )
          {
            if(newArray[j]==arrayName[i]) 
            continue label;
          }
          newArray[newArray.length] = arrayName[i];
        }
        return newArray;
      }

function utf8_encode ( string ) {
    // Encodes an ISO-8859-1 string to UTF-8  
    // 
    // version: 812.316
    // discuss at: http://phpjs.org/functions/utf8_encode
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: sowberry
    // +    tweaked by: Jack
    // +   bugfixed by: Onno Marsman
    // +   improved by: Yves Sucaet
    // +   bugfixed by: Onno Marsman
    // *     example 1: utf8_encode('Tom van Mikes');
    // *     returns 1: 'Tom van Mikes'
    string = (string+'').replace(/\r\n/g, "\n").replace(/\r/g, "\n");

    var utftext = "";
    var start, end;
    var stringl = 0;

    start = end = 0;
    stringl = string.length;
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;

        if (c1 < 128) {
            end++;
        } else if((c1 > 127) && (c1 < 2048)) {
            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc != null) {
            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
    }

    if (end > start) {
        utftext += string.substring(start, string.length);
    }

    return utftext;
}


function file(fichier)
     {
     if(window.XMLHttpRequest) // FIREFOX
          xhr_object = new XMLHttpRequest();
     else if(window.ActiveXObject) // IE
          xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
     else
          return(false);
     xhr_object.open("GET", fichier, false);
     xhr_object.send(null);
     if(xhr_object.readyState == 4) return(xhr_object.responseText);
     else return(false);
     } 


function check_loginform(){
  if (document.signup.new_user.value.length < 4){
    alert("Please enter a name with at least 4 characters.")
      return false}

  if (document.signup.new_password.value.length < 4){
    alert("Please enter at least 4 characters for your password.")
  return false}

  if ((document.signup.new_email.value.length < 9) || (document.signup.new_email.value.indexOf('@') == -1) || (document.signup.new_email.value.indexOf('.') == -1)){

    alert("Please enter a valid email address like you@domain.com")
  return false}
  
  
texte = file('/verifylogin.php?name='+escape(document.signup.new_user.value));
if(texte == 1)
{
alert("Sorry, this username is already taken.");
return false;
}
else if(texte == 2)
{

}
else
{
alert("error\nTry again");
return false;
}

}



function check_albumform(){
  if ((document.login.url.value.length < 8) || (document.login.url.value.indexOf('spotify') == -1) || (document.login.url.value.indexOf(':') == -1)){

    alert("Please enter a valid spotify URL like spotify:album:0hQO....");
      return false}
}

function sort_artist(a,b) {
	a = a[4];
	b = b[4];
	return a == b ? 0 : (a < b ? -1 : 1)
}

function sort_title(a,b) {
	a = a[2];
	b = b[2];
	return a == b ? 0 : (a < b ? -1 : 1)
}

function sort_date(a,b) {
	a = a[0];
	b = b[0];
	return a - b;
}

function sort(val)
	{
	sortorder = sortorder*-1;
	AlbumArray.sort(val);
	AlbumArray_backup.sort(val);
//	alert(sortorder);
	
	if(sortorder==1)
	{
	//alert("reversed");
	//AlbumArray.reverse();
	AlbumArray_backup.reverse();
	}

	current = -1;
	next();
	next();

}


function showartist_new(artist)
{
	if(!(artist=="" || artist=="Select Artist" || artist=="All Artists"))
	{
	artist = artist.replace(/ /g, "")
	AlbumArray = [];
			for (var y=0; y<AlbumArray_backup.length; y++) 
			{
				if(!(AlbumArray_backup[y]==undefined))
				{
					if(!(AlbumArray_backup[y][4]==undefined))
					{
							if(AlbumArray_backup[y][4].replace(/ /g, "") == artist)
							{
								AlbumArray.push(AlbumArray_backup[y]);
							}
					}
				}
			}
	sel = document.artist_list.artists;
	sel.options[0] = new Option("All Artists","");
	} 
	else 
	{
	AlbumArray = AlbumArray_backup; 
	}
	
	
	sel = document.genre_list.genres
	sel.selectedIndex = 0; 
	
//clear_all_columns()
current = -1;
next();
next();
//alert(artist);
}

function showgenre_new(genren)
{
//alert(genren);
	if(!(genren=="Select Genre" || genren==""))
	{
	AlbumArray = [];
			for (var y=0; y<AlbumArray_backup.length; y++) 
			{
				if(!(AlbumArray_backup[y]==undefined))
				{
					if(!(AlbumArray_backup[y][5]==undefined))
					{
					for (var x=0; x<AlbumArray_backup[y][5].length; x++) 
					{
							if(AlbumArray_backup[y][5][x] == genren)
							{
								AlbumArray.push(AlbumArray_backup[y]);
							}
						}
					}
				}
			}
	sel = document.genre_list.genres;
	sel.options[0] = new Option("All Genres","");
	} else 
	{
	AlbumArray = AlbumArray_backup;
	}


sel = document.artist_list.artists
sel.selectedIndex = 0; 

current = -1;
next();
next();

}

function add_genres_list(node,id)
{
var x = 0;
gen_array_tmp = [];

	if(node) {var sel = node} else {var sel = document.genre_list.genres};

			sel.options.length = 0;
			sel.options[sel.length] = new Option("Select Genre",""); 
			sel.options[sel.length] = new Option("",""); 

	for (var i=0; i<GenreArray.length; i++) {
		if (!(GenreArray[i]==undefined))
		{
		sel.options[sel.length] = new Option(GenreArray[i],i);  
			if(id==i) {
			sel.selectedIndex = x+2;
			}
		x++;
		}
	}
genrearray_tmp=[];
formen = document.getElementById('album_genre_list');
for(i=0; i<formen.elements.length; i++)
{
genrearray_tmp.push(formen.elements[i].value);
}
document.getElementById('login').genre.value = genrearray_tmp;

if(!(node)){add_artists_list()};
}

function add_artists_list()
{

			var sel = document.artist_list.artists;
			sel.options.length = 0;
			sel.options[sel.length] = new Option("Select Artist",""); 
			sel.options[sel.length] = new Option("",""); 

			tmparray = AlbumArray_backup;
			tmparray.sort(sort_artist);
		var newArray=new Array();
		label:for(var i=0; i<tmparray.length; i++) {
		if (!(tmparray[i]==undefined))
		{
		for(var j=0; j<newArray.length;j++ )
          {
            if(newArray[j].replace(/ /g, "")==tmparray[i][4].replace(/ /g, "")) 
            continue label;
          }
		  newArray[newArray.length] = tmparray[i][4];
			var sel = document.artist_list.artists;
			sel.options[sel.length] = new Option(tmparray[i][4],i);  
			sel.selectedIndex = 0; 
		}
	}
}



function showgenre(use, genren, node)
{
	if(node)
	{
	showgenre_edit(genren,1,node)
	node.onclick = null;
	}

	if(!(use==0))
	{
	GenreArrayOnScreen.push(genren);
	eval("node.onclick = function() { showgenre(0,"+genren+",this) }");
	node.style.backgroundPosition = "0px -20px";
	node.childNodes[0].style.backgroundPosition = "100% -20px";
	} 
	else 
	{
	GenreArrayOnScreen.remove(GenreArrayOnScreen.indexOf(genren));
	if(node)
	{
	showgenre_edit(genren,0,node)
	node.style.backgroundPosition = "0px 0px";
	node.childNodes[0].style.backgroundPosition = "100% 0px";
	eval("node.onclick = function() { showgenre(1,"+genren+",this) }");
	}
	}

	
	AlbumArray = [];


		for (var z=0; z<GenreArrayOnScreen.length; z++) 
		{
			for (var y=0; y<AlbumArray_backup.length; y++) 
			{
				if(!(AlbumArray_backup[y]==undefined))
				{
				for (var x=0; x<AlbumArray_backup[y][5].length; x++) 
				{
					if(AlbumArray_backup[y][5][x] == GenreArrayOnScreen[z])
					{
						if(AlbumArray.indexOf(AlbumArray_backup[y]) == -1)
						{
						AlbumArray.push(AlbumArray_backup[y]);
						}
					}
				}
				}
			}
		}

	
	if(GenreArrayOnScreen.length ==0){AlbumArray = AlbumArray_backup};

clear_all_columns()
current = -1;
next();
next();
}


function prev()
{
	animate_left(-720,-1440);
	n = document.getElementById('album_container_wide');
	var kids = n.childNodes; 
	var numkids = kids.length;

		for (var i=numkids-1; i>0; i--) {
		var removed = kids[i].nodeType;
		var c = n.removeChild(kids[i]); 
		n.appendChild(c); 
		n.insertBefore(c,n.firstChild);
			if(removed == 1)
			{
			break;
			}
	}
	update_content(c.id, 0);
}

function next()
{
	animate_right(-720,0);
    n = document.getElementById('album_container_wide');
    var kids = n.childNodes; 
    var numkids = kids.length;

	for (var i=0; i<numkids; i++) {
	var removed = kids[i].nodeType;
        var c = n.removeChild(kids[i]); 
        n.appendChild(c); 
	if(removed == 1)
	{
	break;
	}
    }
	update_content(c.id, 1);
}


var maskpanel=function()
{
    this.divobj;
    this.show=function()
    {
      if(!document.getElementById("xdivmasking"))
      {
          var divEle=document.createElement('div');
          divEle.setAttribute("id","xdivmasking");
          document.body.appendChild(divEle);
          var divSty=document.getElementById("xdivmasking").style;
          divSty.position="absolute"; divSty.top="0px"; divSty.left="0px";
          divSty.zIndex="90"; divSty.opacity=".70";divSty.backgroundColor="#fff";
          divSty.filter="alpha(opacity=70)";
       }

       this.divobj=document.getElementById("xdivmasking"); 
       var dsh=document.documentElement.scrollHeight;
       var dch=document.documentElement.clientHeight;
       var dsw=document.documentElement.scrollWidth;
       var dcw=document.documentElement.clientWidth;
       
       var bdh=(dsh>dch)?dsh:dch;
       var bdw=(dsw>dcw)?dsw:dcw;

	this.divobj.style.height=this.divobj.style.height=bdh+'px';
	this.divobj.style.width=this.divobj.style.width=bdw+'px';  
	this.divobj.style.display=this.divobj.style.display="block";
	this.divobj.style.zIndex="95";
	};

    this.hide=function()
    {
        this.divobj.style.display="none";
    };
}


function clear_all_columns()
{
    n = document.getElementById('album_container_wide');
    var kids = n.childNodes; 
    var numkids = kids.length;

	for (var i=0; i<numkids; i++) 
	{
	var smallerkids = kids[i].childNodes;
	var numsmallerkids = smallerkids.length

		while ( kids[i].childNodes.length >= 1 )
		{
			kids[i].removeChild(kids[i].firstChild);
		}
	}
}


function update_content(node, direction)
{
	node = document.getElementById(node);
	if ( node.hasChildNodes() )
	{
	while ( node.childNodes.length >= 1 )
	{
	node.removeChild(node.firstChild);
	} 
	}
	add_covers(node.id, direction)
	//document.getElementById('inforuta').value = node.id;
	//document.getElementById('col1_val').value = nr;
	//document.getElementById('col2_val').value = nr;
	//document.getElementById('col3_val').value = nr;
}


function animate_right(left, current) 
{
obj = document.getElementById('album_container_wide');

	if (current >= left+72) {
	i = current - 72;
	obj.style.left= i+'px';
	}

	if (current >= left+72) {
	var t = window.setTimeout("animate_right("+left+", "+i+")",1);
	} 
	else 
	{ 
	obj.style.left = left; 
	}
}

function animate_left(left, current) 
{
obj = document.getElementById('album_container_wide');

	if (current <= left-72) {
	i = current + 72;
	obj.style.left= i+'px';
	}

	if (current <= left-72) {
	var t = window.setTimeout("animate_left("+left+", "+i+")",1);
	} 
	else 
	{ 
	obj.style.left = left; 
	}
}



function hlp(iState)
{

  	if(iState==1)
	{
	divmask=new maskpanel();  
	divmask.show(); 
	}
	else
	{
	divmask.hide();  
	}  

	document.getElementById("help").style.visibility = iState ? "visible" : "hidden"; 
	document.getElementById("hlp_add_lbm").style.visibility = iState ? "visible" : "hidden";
	document.getElementById("hlp_add_gnr").style.visibility = iState ? "visible" : "hidden";
	document.getElementById("hlp_shw_gnr").style.visibility = iState ? "visible" : "hidden";
	document.getElementById("hlp_srt").style.visibility = iState ? "visible" : "hidden";
	
	  divobj=document.getElementById("help"); 
       var dsh=document.documentElement.scrollHeight;
       var dch=document.documentElement.clientHeight;
       var dsw=document.documentElement.scrollWidth;
       var dcw=document.documentElement.clientWidth;
       
       var bdh=(dsh>dch)?dsh:dch;
       var bdw=(dsw>dcw)?dsw:dcw;

	divobj.style.left=divobj.style.left=(bdw/2-450)+'px';  

	
}

function show_buttons(iState, state)
{
	if(state==0)
	{
	document.getElementById("btn_cancel").style.visibility = iState ? "visible" : "hidden";
	document.getElementById("btn_delete").style.visibility = "hidden";
	document.getElementById("btn_edit").style.visibility = iState ? "visible" : "hidden";
	//document.getElementById('btn_delete').style.visibility = "hidden";

	document.getElementById('btn_cancel_new').style.visibility = "hidden";
	document.getElementById('btn_new').style.visibility = "hidden";

	document.getElementById('login').todo.value = 'edit';
	}

	if(state==1)
	{
	document.getElementById('btn_cancel_new').style.visibility = iState ? "visible" : "hidden";
	document.getElementById('btn_new').style.visibility = iState ? "visible" : "hidden";

	document.getElementById('btn_cancel').style.visibility = "hidden";
	document.getElementById('btn_delete').style.visibility = "hidden";
	document.getElementById('btn_edit').style.visibility = "hidden";

	document.getElementById('login').todo.value = 'new';
	}
}



function show_controls(id, iState)
{

if (iState==1)
{
document.getElementById(id).childNodes[0].style.left = "0px";
document.getElementById(id).childNodes[0].style.top = "1px";
}
else{
document.getElementById(id).childNodes[0].style.left = "1px";
document.getElementById(id).childNodes[0].style.top = "2px";
}
}


function hide(what)
{
what.style.visibility="hidden";
}




function add_covers(column, direction)
{
itemamount = 24;

	if(direction==1)
	{
		itemamount = 0;
		current++;
		for (var i=current*24; i<=((current+1)*24)-1; i++) {
			if (!(AlbumArray[i]==undefined))
			{
			create_divven(AlbumArray[i][1], AlbumArray[i][0], i, column);
			itemamount++;
			}
		}
	}



	if(direction==0)
	{
		current--;
		var count = 0;
		for (var i=(current-2)*24; i<=((current-1)*24)-1; i++) {
			if (!(AlbumArray[i]==undefined))
			{
			create_divven(AlbumArray[i][1], AlbumArray[i][0], i, column);
			itemamount++;
			}
		}
	}


	//document.getElementById('inforuta_count').value = current;

	if(itemamount==0)
	{
	var divSty=document.getElementById("next").style;
	divSty.visibility="hidden";
	} 
	else
	{
	var divSty=document.getElementById("next").style;
	divSty.visibility="visible";
	}

	if(current<=1)
	{
	var divSty=document.getElementById("prev").style;
	divSty.visibility="hidden";
	} 
	else
	{
	var divSty=document.getElementById("prev").style;
	divSty.visibility="visible";
	}
	
}

