
function searchFeeds(url) {
	$('feedresults').innerHTML = "Söker efter flöden <img src='/images/icons/ajax-loader.gif' style='vertical-align: middle'/>";
	new Ajax.Request('/ajax/searchFeeds.php',{
			parameters: '&url='+url,
			onSuccess: function(r) {
				var feeds = eval('('+r.responseText+')');
				renderFeedList(feeds);
			},
			onFailure: function(r) {
				alert("Kunde inte hämta data.");
			}
	});
	return false;
}

function removeFeedWatch(feedId) {
	new Ajax.Request('/ajax/watchFeed.php',{
			parameters: '&remove=1&feedId='+feedId,
			onSuccess: function(r) {
				$('feed_'+feedId).fade({duration: 0.35});
				$('feed_'+feedId).slideUp({duration: 0.35});
			},
			onFailure: function(r) {
				alert("Kunde inte hämta data.");
			}
	});
	return false;
}

function renderFeedList(feeds) {
	$('feedresults').innerHTML = "";
	if(feeds.length < 1) {
		$('feedresults').innerHTML = 'Kunde inte hitta några flöden.';
		return false;
	}
	var header = document.createElement('h2');
	header.innerHTML = 'Sökresultat';
	$('feedresults').appendChild(header);
	for(var i = 0;i<feeds.length;i++) {
		var feed = feeds[i];
		var container = document.createElement('div');
		var link = document.createElement('a');
		var sitelink = document.createElement('a');
		var watch = document.createElement('a');
		var type = document.createTextNode('från');
		var info = document.createElement('span');
		container.className = 'feed';
		link.className = 'feedlink';
		link.href = feed.url;
		link.innerHTML = feed.title;
		sitelink.className = 'extlink';
		sitelink.innerHTML = feed.sitename;
		sitelink.href = feed.siteurl;
		watch.className = 'feedwatch';
		if(feed.watched) {
			watch.innerHTML = 'Bevakas av dig';
			watch.className = 'watched feedwatch';
		} else {
			watch.href = 'javascript:void(0)';
			watch.innerHTML = 'Bevaka';
			watch.onclick = addToWatchList;
		}
		watch.rel = feed.url;
		watch.url = feed.siteurl;
		info.appendChild(type);
		info.className = 'feedinfo';
		container.appendChild(watch);
		container.appendChild(link);
		container.appendChild(info);
		container.appendChild(sitelink);
		container.style.display = 'none';
		$('feedresults').appendChild(container);
		$(container).slideDown({duration: 0.25,queue: { position: 'end', scope: 'resultscope2'}});
		$(container).appear({duration: 0.25,from:0, to:1, queue: { position: 'end', scope: 'resultscope'}});
	}
}

function addToWatchList() {
	var url = this.rel;
	var el = this;
	this.className = 'feedwatch working';
		new Ajax.Request('/ajax/watchFeed.php',{
			parameters: '&siteurl='+escape(this.url)+'&url='+escape(url),
			onSuccess: function(r) {
				//$('debug').value = r.responseText;
				el.parentNode.fade({duration: 0.35});
				el.parentNode.slideUp({duration: 0.35});
				el.innerHTML = 'Bevakas av dig';
				el.className = 'watched feedwatch';
			},
			onFailure: function(r) {
				alert(r.responseText);
				el.className = 'feedwatch';
			}
	});
}

function checkLogin(form) {
	if(form.email.value.length < 3) {
		alert("E-postadressen är för kort.");
		return false;
	}

	if(form.password.value.length < 6) {
		alert("Lösenordet är för kort.");
		return false;
	}

	return true;
}

function checkCredentials(form) {

	form.oldpassword.className = '';
	form.newpassword.className = '';
	form.newpasswordrep.className = '';
	$('credentialsError').style.display = 'none';

	if(form.oldpassword.value == form.newpassword.value) {
		$('credentialsError').style.display = 'block';
		form.oldpassword.className = 'error';
		form.newpassword.className = 'error';
		$('credentialsError').innerHTML = 'Ditt gamla och nya lösenord får inte vara lika.';
		return false;
	}

	if(form.newpassword.value != form.newpasswordrep.value) {
		$('credentialsError').style.display = 'block';
		form.newpassword.className = 'error';
		form.newpasswordrep.className = 'error';
		$('credentialsError').innerHTML = 'Lösenorden matchar inte varandra.';
		return false;
	}

	if(form.newpassword.value.length < 6) {
		$('credentialsError').style.display = 'block';
		form.newpassword.className = 'error';
		form.newpasswordrep.className = 'error';
		$('credentialsError').innerHTML = 'Ditt nya lösenord måste vara minst 6 tecken långt.';
		return false;
	}

}

function checkSettings(form) {

	var validRegExp = /^[^@]+@[^@]+.[a-z]{2,}$/i;
	form.email.className = '';
	form.username.className = '';

	if(form.email.value.search(validRegExp) == -1) {
		form.email.className = 'error';
		$('settingsError').innerHTML = 'E-postadressen är inte giltig.';
		$('settingsError').style.display = 'block';
		return false;
	}

	if(form.username.value == "") {
		form.username.className = 'error';
		$('settingsError').innerHTML = 'Användarnamn får inte vara tomt.';
		$('settingsError').style.display = 'block';
		return false;
	}

}

function checkRegister(form) {

	var validRegExp = /^[^@]+@[^@]+.[a-z]{2,}$/i;

	form.password.className = '';
	form.passwordrep.className = '';
	form.email.className = '';
	form.username.className = '';

	if(form.email.value.search(validRegExp) == -1) {
		form.email.className = 'error';
		$('registerError').innerHTML = 'E-postadressen är inte giltig.';
		$('registerError').style.display = 'block';
		return false;
	}

	if(form.username.value == "") {
		form.username.className = 'error';
		$('registerError').innerHTML = 'Användarnamn får inte vara tomt.';
		$('registerError').style.display = 'block';
		return false;
	}

	if(form.password.value != form.passwordrep.value) {
		$('registerError').style.display = 'block';
		form.password.className = 'error';
		form.passwordrep.className = 'error';
		$('registerError').innerHTML = 'Lösenorden matchar inte varandra.';
		return false;
	}

	if(form.password.value.length < 6) {
		$('registerError').style.display = 'block';
		form.password.className = 'error';
		form.passwordrep.className = 'error';
		$('registerError').innerHTML = 'Ditt nya lösenord måste vara minst 6 tecken långt.';
		return false;
	}

}

function checkEmail(element) {
	new Ajax.Request('/ajax/checkEmail.php',{
		parameters: '&email='+element.value,
		onSuccess: function(r) {
			if(r.responseText == "1") {
				element.form.email.className = '';
			} else {
				element.form.email.className = 'error';
				$('registerError').innerHTML = 'E-postadressen är redan registrerad.';
				$('registerError').style.display = 'block';
			}
		},
		onFailure: function(r) {
			alert("Kunde inte hämta data.");
		}
	});
}

function moveFeed(feedId,direction) {
	new Ajax.Request('/ajax/my.php',{
		parameters: '&do=moveFeed&feedId='+feedId+'&direction='+direction,
		onSuccess: function(r) {
			if(r.responseText == "1") {
				var el = $('feed_'+feedId);
				try {
					if(direction == 'up') {
						el.parentNode.insertBefore(el,el.previous());
					} else {
						el.parentNode.insertBefore(el,el.next().next());
					}
				} catch(e) {

				}
			}
		},
		onFailure: function(r) {
			alert("Kunde inte utföra åtgärden.");
		}
	});
}

function postBlogComment(blogId,el) {
	try {
		if(el.content.value == "") {
			el.content.className = "error";
			return false;
		} else {
			el.content.className = "";
		}
		new Ajax.Request('/ajax/postComment.php',{
			parameters: '&do=postComment&blogId='+blogId+'&'+el.serialize(),
			onSuccess: function(r) {
				if($('comments').firstDescendant().nodeName == "P")
					$('comments').innerHTML = "";
				var data = eval('('+r.responseText+')');
				var li = document.createElement("li");
				li.className = "comment";
				var span = document.createElement("span");
				span.className = "small subtle";
				span.innerHTML = data.pubDate+' av '+data.username+'<br/>';
				var content = document.createElement("span");
				content.innerHTML = data.content;
				li.appendChild(span);
				li.appendChild(content);
				li.style.display = 'none';
				$('comments').appendChild(li);
				$(li).slideDown({duration: 0.25});
				$(li).appear({duration: 0.5,from:0, to:1});
				el.content.value = "";
			},
			onFailure: function(r) {
				alert(r.responseText);
			}
		});
	} catch(e) {
		alert(e);
	}
	return false;
}
