//main login function
var consol_helper = new Array(10);
var consol_helper_count = 0;
var consolPointer = 0;
var consoleMsg = new Object();
var consoleMsgUpdater;
var newPlaylist;

consoleMsg.save = "You have to save your playlist if you add new titles";



function loginUser() {

	var luser = $('l_user').value;
	var lpass = $('l_pass').value;
	
	
	var checkResponse = function(rq) {
		if(rq.responseText != 'wrong')
		{
			updateHTML('user_login_status', "Successful");
			$('user_login_status').style.color = "#090";
			$('username_input').style.backgroundImage = "url(Bilder/username_inputsuccess.png)";
			$('login_input').style.backgroundImage = "url(Bilder/password_inputsuccess.png)";
			
			var resetColors = function() {
				$('user_login_status').style.color = "";
			}
			
			Effect.Fade('loginFrame', {afterFinish: resetColors});
			if(loggedin == 0)
			{
				activateLoginFunctions(rq.responseText);
			}
			loggedin = 1;
			
		}
		else
		{
			$('user_login_status').style.color = "#CC0000";
			updateHTML('user_login_status', "Wrong password or username");
			$('username_input').style.backgroundImage = "url(Bilder/username_inputwrong.png)";
			$('login_input').style.backgroundImage = "url(Bilder/password_inputwrong.png)";
			
		}
	}
	
	var options = {
		method: 'post',
		onComplete: checkResponse,
		parameters: { username : luser, pass : lpass }
	};
	
	
	new Ajax.Request( 'login.php', options);
	
}

function activateLoginFunctions(uid) {
	var doOnClickLogout = function () {
		logout();
	}
	
	var getLoginButton = function() {
		$('loginButton').setAttribute("id", "logoutButton");
		$('logoutButton').onclick = doOnClickLogout;
		
		new Effect.Appear('logoutButton');
		
	}
	new Effect.Fade('loginButton', {afterFinish: getLoginButton});
	
	var checkResponse = function(rq) {
		userId = uid;
		
		//add an create new playlist field
		var selectPl = $('myplaylistSelect');
		
		
		//create submit button
		var loadBtn = document.createElement("div");
		loadBtn.setAttribute("id", "loadPlaylistBtn");
		var test = function () {
			loadPlaylist();
		}
		loadBtn.onclick = test;


		selectPl.parentNode.appendChild(loadBtn);
	
		var afterMyPlaylistFrame = function() {
			//show helper frame if first login ! 
			if (playlistNotEmpty() == 0) {
				new Draggable('howToFrame');
				var shakeMe = function () {
					Effect.Shake('howToFrame');
				}
				new Effect.Move ('howToFrame',{ x:100 , y: 100, mode: 'absolute', afterFinish: shakeMe});
			}
		}
		
		//make it visible
		Effect.Appear('myplaylist_frame', {afterFinish: afterMyPlaylistFrame} );
		
		
		
		Effect.Appear('konsole', {to: 0.8});
		Event.observe('konsole', 'mouseover', function() {
			//cancel all efects
			var queue = Effect.Queues.get('consoleScope');
			queue.each(function(effect) { effect.cancel(); });
			
			Effect.Appear('konsole', {duration: 0.5, queue: { position: 'end', scope: 'consoleScope'}});
		});
		Event.observe('konsole', 'mouseout', function() {
			//cancel all efects
			var queue = Effect.Queues.get('consoleScope');
			queue.each(function(effect) { effect.cancel(); });
			
			new Effect.Fade('konsole', {to: 0.8, duration: 0.5, queue: { position: 'end', scope: 'consoleScope'}});
		});
		new Draggable('konsole');
		
		var root = rq.responseXML.getElementsByTagName("clip");
		var title;
		var i;
		var j;
		var yid;
		var browser=navigator.appName;
		var titleCount;
		
		if (browser=="Microsoft Internet Explorer")
		{
			k = 0;
			l = 1;
		}
		else
		{
			k = 1;
			l = 3;
		}
		// fill our special data structur with informations
		for(i = 0; i<root.length; i++)
		{
			
			titleCount = 0;
			title = root[i].childNodes[k].firstChild.nodeValue;
			playlist[playlistCounter] = new Object();
			playlist[playlistCounter].title = title;
			for(j = k; j<root[i].childNodes[l].childNodes.length; j++)
			{
				if(root[i].childNodes[l].childNodes[j].firstChild)
				{
					yid = root[i].childNodes[l].childNodes[j].firstChild.nodeValue;
					playlist[playlistCounter][titleCount] = new Object();
					playlist[playlistCounter][titleCount] = yid ;

					titleCount++;
				}
			}
			playlistCounter++;
		}
		i = 0;
		var selectPl = $('myplaylistSelect');
		var createOptionField;

		
		// fill that in our input html field
		for(i; i<playlistCounter; i++)
		{
			optionField = document.createElement("option");
			optionField.appendChild(document.createTextNode(playlist[i].title));
			selectPl.appendChild(optionField);
		}
		
	}
	
	//load saved playlists
	var options = {
		method: 'post',
		onComplete: checkResponse,
		parameters: { userId : uid }
	};
	
	new Ajax.Request( 'php/getPlaylist.php', options);
	

	
	

}

function savePlaylist() {
	//check if tere exist any playlists
	if(playlistNotEmpty() == 1) {
		var browser=navigator.appName;
		var title = $('playlistUL');
		var selectPl = $('myplaylistSelect');
		var yttitles = '';
		
		//get the current index of the selected playlist
		for(var i = 0; i<selectPl.childNodes.length;i++)
		{
			if(selectPl.childNodes[i].selected)
				var target = i;
		}
		if (browser=="Microsoft Internet Explorer")
			var helper = target;
		else
			var helper = target;
		
		var i = 0;
		for(i; i<title.childNodes.length; i++)
		{
			yttitles += title.childNodes[i].getAttribute("ytid") + ";";
			playlist[helper][i] = new Object();
			playlist[helper][i] = title.childNodes[i].getAttribute("ytid") ;
			
		}
		addNewPlaylistToDb(helper, yttitles);
	}
}

function addNewPlaylistToDb(helper, yttitles) {
	var title = playlist[helper].title;
	
	if (title != "")
	{
		var options = {
			method: 'post',
			parameters: { yid : yttitles, pTi : title, uid: userId },
			onComplete: function(transport) {
			    if (200 == transport.status)
			      window.setTimeout("$('save_btn').style.backgroundImage = ''", 1000);
			      
			    //delete info message
			    deleteFromInfoPool(consoleMsg.save);
			     
			},
			onCreate: function(){
				$('save_btn').style.backgroundImage = "url(Bilder/save_works.gif)";
			}
		};
		
		
		new Ajax.Request( './php/savePlaylist.php', options);
	}
}

function editPlaylistTitle() {
	//check if tere exist any playlists
	if(playlistNotEmpty() == 1) {
		deactivateConsoleButtons();
		$('edit_btn').style.backgroundImage = "url(Bilder/edit_active.png)";
		var selectPl = $('myplaylistSelect');
		for(var i = 0; i<selectPl.childNodes.length;i++)
		{
			if(selectPl.childNodes[i].selected)
				var target = i;
		}
	
		var myCostumTitle = selectPl.childNodes[target].firstChild.nodeValue;
		
		var playlistFrame = $('myplaylist');
		var createInputField = document.createElement("input");
		createInputField.setAttribute("type", "text");
		createInputField.setAttribute("disabled", "yes");
	
		createInputField.setAttribute("id", "playlistEditInput");
	
		var makeWriteable = function() {
		
				createInputField.removeAttribute("disabled");
		}
		createInputField.onclick = makeWriteable;
		createInputField.style.display = "none";
		createInputField.value = myCostumTitle;
		
		//create submit button
		var okButton = document.createElement("div");
		okButton.setAttribute("id", "playlistEditOk");
		var test = function () {
			savePlaylistTitle(target,myCostumTitle);
		}
		okButton.onclick = test;
		okButton.style.display = "none";
		
		playlistFrame.appendChild(createInputField);
		playlistFrame.appendChild(okButton);
		
		Effect.Fade('myplaylist_frame', { queue: 'end' });
		Effect.Appear('playlistEditInput', { queue: 'end'});
		var subEffect = Effect.Appear('playlistEditOk', { queue: 'end', afterFinish: makeWriteable});
	}
}

function savePlaylistTitle(target, oldTitle) {
	if ($('playlistEditInput').value != "" && playlistExistEdit($('playlistEditInput').value, oldTitle) == 0)
	{
		deactivateConsoleButtons();
		$('edit_btn').style.backgroundImage = "url(Bilder/edit_works.gif)";
		var delContent = function () {
			activateConsoleButtons();
			$('edit_btn').style.backgroundImage = "";
			inputVal.parentNode.removeChild(inputVal);
			inputOk.parentNode.removeChild(inputOk);
			
			$('myplaylistSelect').childNodes[target].firstChild.nodeValue = myCostumTitle;	
		}
		var inputVal = $('playlistEditInput');
		var inputOk = $('playlistEditOk');
		var myCostumTitle = inputVal.value;
		var browser=navigator.appName;
		var helper;
		if (browser=="Microsoft Internet Explorer")
				var helper = target;
		else
			var helper = target;
	
		//set this change in the data structur
		playlist[helper].title = myCostumTitle;
		
		//and in the db	
		var options = {
			method: 'post',
			parameters: { ot : oldTitle, nt : myCostumTitle, uid: userId }
		};
		
		
		new Ajax.Request( './php/editPlaylistTitle.php', options);
		
		
		Effect.Fade('playlistEditOk', { queue: 'end' });
		Effect.Fade('playlistEditInput', { queue: 'end', afterFinish: delContent});
		Effect.Appear('myplaylist_frame', { queue: 'end'});
	}
}

function delPlaylist() {
	
	//check if tere exist any playlists
	if(playlistNotEmpty() == 1) {
	
		deactivateConsoleButtons();
		
		var resetChanges = function () {
			var delContent = function() {
				activateConsoleButtons();
				$('deleteTitleDiv').parentNode.removeChild(	$('deleteTitleDiv'));
				$('yesOrNoDiv').parentNode.removeChild(	$('yesOrNoDiv'));
				$('confirmDelete').style.display = "none";
			
			}
			Effect.Fade('confirmDelete', { queue: 'end', afterFinish: delContent});
		
			
		}
		
		var delNow = function()
		{
			deleteNow(target, myCostumTitle);
		}
		
		var selectPl = $('myplaylistSelect');
		for(var i = 0; i<selectPl.childNodes.length;i++)
		{
			if(selectPl.childNodes[i].selected)
				var target = i;
		}
		var myCostumTitle = selectPl.childNodes[target].firstChild.nodeValue;
		
		var deleteFrame = $('confirmDelete');
		var deleteTitleDiv = document.createElement("div");
		
		var myTitleOutput = document.createElement("i");
		myTitleOutput.appendChild(document.createTextNode(myCostumTitle));
		deleteTitleDiv.setAttribute("id", "deleteTitleDiv");
		deleteTitleDiv.appendChild(document.createTextNode("This will delete "));
		deleteTitleDiv.appendChild(myTitleOutput);
		deleteTitleDiv.appendChild(document.createTextNode(" ! Continue?" ));
		deleteFrame.appendChild(deleteTitleDiv);
		var yesOrNoDiv = document.createElement("div");
		yesOrNoDiv.setAttribute("id", "yesOrNoDiv");
		var yesSpan = document.createElement("div");
		yesSpan.setAttribute("id", "deleteYesSpan");
		yesSpan.onclick = delNow;
		
		var noSpan = document.createElement("div");
		noSpan.setAttribute("id", "deleteNoSpan");
		
		noSpan.onclick = resetChanges;
		yesOrNoDiv.appendChild(yesSpan);
		yesOrNoDiv.appendChild(noSpan);
		
		
		deleteFrame.appendChild(yesOrNoDiv);
		Effect.Appear('confirmDelete', { queue: 'end'});
		new Draggable('confirmDelete');
	}

}

function deleteNow(target, oldTitle) {
	$('confirmDelete').style.backgroundImage = "url(Bilder/deletelist_bg_active.gif)";
	var browser=navigator.appName;
	
	var selectPl = $('myplaylistSelect');
	selectPl.removeChild(selectPl.childNodes[target]);
	if (browser!="Microsoft Internet Explorer")
		var playPoint = target;
	else
		var playPoint = target-1;
	
	if(browser == "Microsoft Internet Explorer")
		repairPlaylistFromEmptyElement(target);
	else
		repairPlaylistFromEmptyElement(target-1);
	//del from db
	var options = {
		method: 'post',
		parameters: { ot : oldTitle, uid: userId },
		onComplete: function(transport) {
		    if (200 == transport.status) {
		     clearPlaylist();
		     window.setTimeout("Effect.Fade('confirmDelete', { queue: 'end', afterFinish: delContent});",1000);
		    }
		}
	};
	
	
	new Ajax.Request( './php/delPlaylist.php', options);
	
	
	delContent = function() {
		$('deleteTitleDiv').parentNode.removeChild(	$('deleteTitleDiv'));
		$('yesOrNoDiv').parentNode.removeChild(	$('yesOrNoDiv'));
		$('confirmDelete').style.display = "none";
		activateConsoleButtons();
		$('confirmDelete').style.backgroundImage = "";
	}
	
}

function repairPlaylistFromEmptyElement(id) {

	var nextId = id+1;
	if(playlist[nextId])
	{
		playlist[id] = playlist[nextId];
		repairPlaylistFromEmptyElement(nextId);
	}
	else
	{
		playlist[id] = null;
	}
}	

function newPlaylist() {
	deactivateConsoleButtons();
	var playlistFrame = $('myplaylist');
	
	//set button visted
	$('new_btn').style.backgroundImage = "url(Bilder/new_active.png)";
	
	var createInputField = document.createElement("input");
	createInputField.setAttribute("type", "text");
	createInputField.setAttribute("disabled", "yes");
	createInputField.setAttribute("id", "playlistNewInput");

	var makeWriteable = function() {
	
			createInputField.removeAttribute("disabled");
	}
	createInputField.onclick = makeWriteable;
	createInputField.style.display = "none";
	createInputField.value = "New Playlist...";
	
	//create submit button
	var okButton = document.createElement("div");
	okButton.setAttribute("id", "playlistNewOk");
	var test = function () {
		createNewPlaylist($('playlistNewInput').value);
	}
	okButton.onclick = test;
	okButton.style.display = "none";
	
	playlistFrame.appendChild(createInputField);
	playlistFrame.appendChild(okButton);
	
	Effect.Fade('myplaylist_frame', { queue: 'end' });
	Effect.Appear('playlistNewInput', { queue: 'end'});
	var subEffect = Effect.Appear('playlistNewOk', { queue: 'end', afterFinish: makeWriteable});

	
}
function createNewPlaylist(target) {
	
	if ($('playlistNewInput').value != "" && playlistExist($('playlistNewInput').value) == 0)
	{
		
		
		$('new_btn').style.backgroundImage = "url(Bilder/new_works.gif)";
		//delete old playlist
		if (playlistNotEmpty() == 1)
			clearPlaylist();
		
		// add ti select field...
		var selectPl = $('myplaylistSelect');
		var optionField = document.createElement("option");
		optionField.appendChild(document.createTextNode(target));
		selectPl.appendChild(optionField);
		selectPl.lastChild.selected=true;
		
		//add it to the structure
		playlist[playlistCounter] = new Object();
		playlist[playlistCounter].title = target;
		playlistCounter++;
		
		
		var delContent = function() {
			var inputVal = $('playlistNewInput');
			var inputOk = $('playlistNewOk');
		
			inputVal.parentNode.removeChild(inputVal);
			inputOk.parentNode.removeChild(inputOk);
			
		}
		
		var modifyButtons = function() {
			$('new_btn').style.backgroundImage = "";
			activateConsoleButtons();
		}
		
		Effect.Fade('playlistNewOk', { queue: 'end' });
		Effect.Fade('playlistNewInput', { queue: 'end', afterFinish: delContent});
		Effect.Appear('myplaylist_frame', { queue: 'end', afterFinish: modifyButtons});
	}
		
}

function getNewPlaylistIndex() {
	var i = 0;
	while(playlist[i]){
		i++
	}
	return i;
}
function countPlaylistTitle(id) {
	var i = 0;

	while(playlist[id][i]){
		i++
	}
	return i;
}

function loadPlaylist() {
	//check if tere exist any playlists
	if(playlistNotEmpty() == 1) {
	
		$('loadPlaylistBtn').style.backgroundImage = "url(Bilder/load_btn_activ.gif)";
		var playlistUL = $('playlistUL');
		var browser=navigator.appName;
		var selectPl = $('myplaylistSelect');
		for(var i = 0; i<selectPl.childNodes.length;i++)
		{
			if(selectPl.childNodes[i].selected)
				var target = i;
		}	
		if (browser=="Microsoft Internet Explorer")
		{
			var o = 0;
			var helper = target;
		}
		else
		{
			var o=1;
			var helper = target;
		}
		var sendString = '';
		for(i = 0; i<countPlaylistTitle(helper); i++)
		{
			sendString += playlist[helper][i] + ";";	
		}
		
		if (browser=="Microsoft Internet Explorer")
		{
			 if(playlistUL.childNodes[0])
			 	var bBug = true;
			 else
			 	var bBug = false;
		}
		else
		{
			if(playlistUL.childNodes[0])
			 	var bBug = true;
			 else
			 	var bBug = false;
		}
		// clear playlist
		if(bBug)
		{
			clearPlaylist();
		}
		
		var checkResponse = function(rq) {
			$('loadPlaylistBtn').style.backgroundImage = "";
			var root = rq.responseXML.getElementsByTagName("clip");
			var title;
			var duration;
			var i;
			var j;
			var yid;
			var browser=navigator.appName;
			var titleCount;
			var myli;
			var titleDivLi;
			var deleteDivLi;
			var durationDivLi;
			var deletButtnSpan;
			var delTitleFunc;
			var myTime;
			var mins;
			var seks;
			var dblClickTitleFunc;
	
			
			if (browser=="Microsoft Internet Explorer")
			{
				k = 0;
				l = 1;
			}
			else
			{
				k = 0;
				l = 3;
			}
			// fill our special data structur with informations
			for(i = 0; i<root.length; i++)
			{
				
				title = root[i].childNodes[k+1].firstChild.nodeValue;
				duration = root[i].childNodes[k+2].firstChild.nodeValue;
				yid = root[i].childNodes[k].firstChild.nodeValue;
				delTitleFunc = "delTitleFromPlaylist('"+yid+"');";
				dblClickTitleFunc = "playTitlebyId('"+yid+"');";
				
				
				myli = document.createElement("li");
				myli.setAttribute("id", yid);
				myli.setAttribute("ytid", yid);
				myli.ondblclick = new Function(dblClickTitleFunc);
						
						
				var titleDivLi = document.createElement("div");
			
				titleDivLi.setAttribute("id", "playlistTitleDiv");
													
				titleDivLi.appendChild(document.createTextNode(prepareTitle(title,titleMaxLength)));
	
				deleteDivLi = document.createElement("div");
				deleteDivLi.setAttribute("id", "deleteDiv");
				deleteButtnSpan = document.createElement("span");
				deleteButtnSpan.onclick = new Function(delTitleFunc);
				deleteButtnSpan.setAttribute("id", "delete");
				
				
				deleteDivLi.appendChild(deleteButtnSpan);
				
				durationDivLi = document.createElement("div");
				durationDivLi.setAttribute("id", "playlistDurationDiv");
				mins = Math.floor(duration/60);
			    seks = Math.floor(duration-(mins*60));
			    if(seks <10)
			    	durationDivLi.appendChild(document.createTextNode(mins + ":"+ "0" + seks));
			    else
			    	durationDivLi.appendChild(document.createTextNode(mins + ":" + seks));
				
				
				myli.appendChild(titleDivLi);
				myli.appendChild(deleteDivLi);
				myli.appendChild(durationDivLi);
				setopacity(myli,0);
				
				
				// create a light up from 0% to 100 %
				new Effect.Opacity(myli, { from: 0.0, to: 1.0, duration: 0.5 });
				
				playlistUL.appendChild(myli);
				
				
			}
			
			Sortable.create(playlistUL,
			{
				scroll: "playlist_bg"
			}
			
		);
		//show how much title are loaded...
		$('infoPlaylist').firstChild.innerHTML = root.length;
		new Effect.Appear('infoPlaylist');
		window.setTimeout("Effect.Fade('infoPlaylist');", 3000);
			
		
		}
		
		var options = {
			method: 'post',
			onComplete: checkResponse,
			parameters: { id : sendString}
		};
		
		new Ajax.Request( 'getVideoInfos.php', options);
	}
}

function changeLoginToRegister() {
	$('user_login_status').innerHTML = "";
	Event.stopObserving('regist_btn', 'mouseover');
	Event.stopObserving('lostpw_btn', 'mouseover');
	var browser=navigator.appName;
	var logf = $('loginFrame');
	if (browser=="Microsoft Internet Explorer")
		var k = 0;
	else
		var k = 1 ;
	
	//clear value
	$('l_user').value = "";
	$('l_pass').value = "";
	
	
	//logf.childNodes[k].childNodes[0].nodeValue = "Register";
	//$('l_btn').value = "Register now !";
	//$('click2RegText').style.display = "none";
	var regNowFunc = function() {
		registerNow();
	}
	$('regist_btn').removeAttribute("onclick");
	$('regist_btn').onclick = regNowFunc;
	$('regist_btn').setAttribute("id", "submit_btn");
	$('submit_btn').setAttribute("class", "submit_btn");
	
	$('lostpw_btn').setAttribute("id", "cancel_btn");
	$('cancel_btn').setAttribute("class", "cancel_btn");
	
	//cancel function
	var myCancelFunc = function() { changeRegisterToLogin();}
	
	$('cancel_btn').onclick = myCancelFunc;
	
	var myTr = document.createElement("tr");
	var myTdField = document.createElement("td");
	
	var myInput = document.createElement("input");
	var myDiv = document.createElement("div");
	
	myTdField.setAttribute("id", "login_email");
	myInput.setAttribute("type", "text");
	myInput.setAttribute("name", "email");
	myInput.setAttribute("id", "l_email");
	
	var myPassTextTr = document.createElement("tr");
	var myPassTextTd = document.createElement("td");
	var myPassTextDiv = document.createElement("div");
	myPassTextDiv.setAttribute("id", "pass_head");
	myPassTextDiv.appendChild(document.createTextNode("Email:"));
	
	myPassTextTd.appendChild(myPassTextDiv);
	myPassTextTr.appendChild(myPassTextTd);
	
	myDiv.appendChild(myInput);
	myTdField.appendChild(myDiv);
	myTr.appendChild(myTdField);
		
	$('info_table').childNodes[k].appendChild(myPassTextTr);
	$('info_table').childNodes[k].appendChild(myTr);
	
	$('login_btn').style.display = "none";
	
	//change bg
	$('loginFrame').style.backgroundImage = "url(Bilder/register_bg.png)";
	$('loginFrame').style.height = "201px";
	$('submit_btn').style.marginLeft = "23px";
	
	
	//info messages
	Event.observe('submit_btn', 'mouseover', function() {
	$('user_login_status').innerHTML = "You don't need to check your mailbox";
	$('user_login_status').style.marginTop = "7px";
	});
	Event.observe('submit_btn', 'mouseout', function() {
	$('user_login_status').innerHTML = "You don't need to check your mailbox";
	$('user_login_status').style.marginTop = "7px";
	});
		Event.observe('cancel_btn', 'mouseover', function() {
	$('user_login_status').innerHTML = "You don't need to check your mailbox";
	$('user_login_status').style.marginTop = "7px";
	});
	Event.observe('cancel_btn', 'mouseout', function() {
	$('user_login_status').innerHTML = "You don't need to check your mailbox";
	$('user_login_status').style.marginTop = "7px";
	});
	
	
	var validUsernameFunc = function() {
		
		var luser = $('l_user').value;
		if(!((validUsername(luser) && luser.length > 4 )))
		{
			$('username_input').style.backgroundImage = "url(Bilder/username_inputwrong.png)";
		}
		else
		{
			$('username_input').style.backgroundImage = "url(Bilder/username_inputsuccess.png)";
		}
	}

	var validPassFunc = function() {
		
		var lpass = $('l_pass').value;
		if( lpass.length <4)
		{

			$('login_input').style.backgroundImage = "url(Bilder/password_inputwrong.png)";
		}
		else
		{
			$('login_input').style.backgroundImage = "url(Bilder/password_inputsuccess.png)";
		}
	}
	
	var validMailFunc = function() {
		var lmail = $('l_email').value;
		if(!validEmail(lmail))
		{
			$('login_email').style.backgroundImage = "url(Bilder/email_inputwrong.png)";
		}
		else
		{
			$('login_email').style.backgroundImage = "url(Bilder/email_inputsuccess.png)";
		}
	}
	
	//add validator
	$('l_user').onkeyup = validUsernameFunc;
	$('l_pass').onkeyup = validPassFunc;
	$('l_email').onkeyup = validMailFunc;
	
}

function changeRegisterToLogin() {
	$('user_login_status').innerHTML = "";
	Event.stopObserving('submit_btn', 'mouseover');
	Event.stopObserving('cancel_btn', 'mouseover');

	
	var browser=navigator.appName;
	var logf = $('loginFrame');
	if (browser=="Microsoft Internet Explorer")
		var k = 0;
	else
		var k = 1 ;
	
	$('info_table').childNodes[k].removeChild($('info_table').childNodes[k].lastChild);
	$('info_table').childNodes[k].removeChild($('info_table').childNodes[k].lastChild);
	
	
	//logf.childNodes[k].childNodes[0].nodeValue = "Register";
	//$('l_btn').value = "Register now !";
	//$('click2RegText').style.display = "none";
	var regNowFunc = function() {
		changeLoginToRegister();
	}
	var loginNowFunc = function() {
		loginUser();
	}
	$('submit_btn').removeAttribute("onclick");
	$('submit_btn').onclick = loginNowFunc;
	$('submit_btn').setAttribute("id", "regist_btn");
	$('regist_btn').setAttribute("class", "regist_btn");
	$('regist_btn').onclick = regNowFunc;
	
	$('cancel_btn').setAttribute("id", "lostpw_btn");
	$('lostpw_btn').setAttribute("class", "lostpw_btn");
	$('lostpw_btn').onclick = null;
	
	//$('login_email').parentNode.previousSibling.removeChild($('login_email').parentNode.previousSibling.firstChild);
	//$('login_email').parentNode.removeChild($('login_email'));
	
	
	$('login_btn').style.display = "block";
	
	//change bg
	$('loginFrame').style.backgroundImage = "url(Bilder/login_bg.png)";
	$('loginFrame').style.height = "180px";
	$('regist_btn').style.marginLeft = "7px";
	
	Event.observe('regist_btn', 'mouseover', function() {
	$('user_login_status').innerHTML = "Register to save your playlist takes only a few seconds";
	});
	Event.observe('regist_btn', 'mouseout', function() {
	$('user_login_status').innerHTML = "";
	});
		Event.observe('lostpw_btn', 'mouseover', function() {
	$('user_login_status').innerHTML = "Enter your username and press this button to get an email with your new password";
	});
	Event.observe('lostpw_btn', 'mouseout', function() {
	$('user_login_status').innerHTML = "";
	});
	
	
	//del validator
	$('l_user').onkeyup = "";
	$('l_pass').onkeyup = "";
	
}

function registerNow() {
	
	var luser = $('l_user').value;
	var lpass = $('l_pass').value;
	var lmail = $('l_email').value;
	
	var problem = false;
	
	//username must have more than 3 letters
	if(!((validUsername(luser) && luser.length > 4 )))
	{
		
		problem = true;
	}
	
	//email validator
	if(!validEmail(lmail))
	{
		problem = true;
	}
	
	//password must have more then 5 chars
	if(lpass.length <4)
	{
		problem = true;
		
	}
	
	if(problem == true)
	{
		
	}
	else
	{
		var changeToLogin = function() { changeRegisterToLogin(); }
		
		var checkResponse = function(rq) {
			
			if(rq.responseText != "exist")
			{
				updateHTML('user_login_status', "Successful");
				Effect.Fade('loginFrame', {afterFinish: changeToLogin});
				
			}
			else
			{
				updateHTML('user_login_status', "This username still exist");
				$('username_input').style.backgroundImage = "url(Bilder/username_inputwrong.png)";
			}
		}
		
		var options = {
			method: 'post',
			onComplete: checkResponse,
			parameters: { username : luser, pass : lpass, mail: lmail }
		};
		
		
		new Ajax.Request( './php/register.php', options);
	}
}

function closeLoginDiv() {
	if($('login_email'))
	{
		var changeToLogin = function() { changeRegisterToLogin(); }
		new Effect.Fade('loginFrame', {afterFinish: changeToLogin});
	}
	else
	{
	
	new Effect.Fade('loginFrame');
	}
}

function deactivateConsoleButtons() {
	
	$('new_btn').onclick = "";
	$('save_btn').onclick = "";
	$('edit_btn').onclick = "";
	$('delete_konsole_btn').onclick = "";  
}
function activateConsoleButtons() {
	
	var newFunc = function () {
			newPlaylist();
	}
	var saveFunc = function () {
			savePlaylist();
	}
	var editFunc = function () {
			editPlaylistTitle();
	}
	var delFunc = function () {
			delPlaylist();
	}
	
	$('new_btn').onclick = newFunc;
	$('save_btn').onclick = saveFunc;
	$('edit_btn').onclick = editFunc;
	$('delete_konsole_btn').onclick = delFunc;  
}

function printInfoMsg() {
	if (consol_helper_count != 0 ) 
	{
		//print the message
		$('user_helper_text').innerHTML = consol_helper[consolPointer];
		new Effect.Appear('user_helper_text');
		//delete after 5 secs...
		window.setTimeout("Effect.Fade('user_helper_text');", 5000);

		//add pointer.... check 
		if ((consolPointer+1)>=consol_helper_count)
			consolPointer = 0;
		else
			consolPointer++;
	}
}
/*
   save = You have to save your Playlist if you add a new title
*/
function checkInfoPool(text) {
	
	var i;
	var res;
	
	for ( i = 0; i<=consol_helper_count; i++)
	{
		if(consol_helper[i] == text)
		{
			return 1;
		}
	}
	
	return 0;
}

function addInfoPool(text)
{
	var myFunc = function (pe) {
		consoleMsgUpdater = pe;
		printInfoMsg();
	}
	
	if (consol_helper_count<11)
	{
		consol_helper[consol_helper_count] = text;
		consol_helper_count++;
	}
	
	//activate on first start
	if (consol_helper_count == 1)
	{
		new PeriodicalExecuter(myFunc, 15);
	}
	
}

function deleteFromInfoPool(text) {
	var i;
	var res;
	
	for ( i = 0; i<=consol_helper_count; i++)
	{
		if(consol_helper[i] == text)
		{
			consol_helper[i] = consol_helper[(consol_helper_count-1)];
			consol_helper_count--;
			if(consol_helper_count == 0)
			{
				consoleMsgUpdater.stop();
			}
		}
	}
}

function playlistNotEmpty() {
	if($('myplaylistSelect').childNodes.length != 0)
		return 1;
	else
		return 0;
}

function playlistExist(s) {
	var i;
	for(i = 0; i<($('myplaylistSelect').childNodes.length); i++)
	{
		if ($('myplaylistSelect').childNodes[i].firstChild.nodeValue == s)
			return 1;
	}
	return 0;
}

function playlistExistEdit(s, oldTitle) {
	var i;
	
	// oldtitle can be 1 time insert
	
	for(i = 0; i<($('myplaylistSelect').childNodes.length); i++)
	{
		if (($('myplaylistSelect').childNodes[i].firstChild.nodeValue == s) && s != oldTitle)
		{
			return 1;
		}
	}
	return 0;
}

function logout() {
	loggedin = 0;
	playlist = null;
	playlist = new Object();
	playlistCounter = 0;
	
	while($('myplaylistSelect').hasChildNodes())
	{
		$('myplaylistSelect').removeChild($('myplaylistSelect').firstChild);
	}
	
	doOnClickLogin = function() {
		getLogin();
	}
	
	
	var getLoginButton = function() {
		$('logoutButton').setAttribute("id", "loginButton");
		$('loginButton').onclick = doOnClickLogin;
		new Effect.Appear('loginButton');
		
	}
	new Effect.Fade('logoutButton', {afterFinish: getLoginButton});
	
	//make it invisible
	Effect.Fade('myplaylist_frame');
	Effect.Fade('konsole');
	

	
	

}

function closeHowToDiv() {
	new Effect.Fade('howToFrame');
}
