function moveDown(id) {
	var pid = $('pid').value;

	var line = $('sl' + id);
	var nextline = line.getNext();
	if (!nextline) // can't go beyound the last line
		return;
	var myXhr = new XHR({method: 'post', onSuccess: function() {
					//alert(myXhr.response);
					var r = myXhr.response;
					if (r && r.text) {
						var st = Json.evaluate(r.text);
						if ("ok" == st.status) {
							var removed = nextline.remove();
							line.parentNode.insertBefore(removed, line);
						}
					}
				} // end onSuccess
			});
	myXhr.send('/move_slide', "d=down&pid=" + pid + "&sid=" + id);
}

function moveUp(id) {
	var pid = $('pid').value;
	var line = $('sl' + id);
	var prev = line.getPrevious();
	if (!prev)
		return;
	
	var myXhr = new XHR({method: 'post', onSuccess: function() {
					var r = myXhr.response;
					if (r && r.text) {
						var st = Json.evaluate(r.text);
						if ("ok" == st.status) {
							var removed = line.remove();
							prev.parentNode.insertBefore(removed, prev);
						}
					}
				} // end onSuccess
			});
	myXhr.send('/move_slide', "d=up&pid=" + pid + "&sid=" + id);
}

function show_slide_controls(id) {
	var d = $('sth_' + id);
	if (d) {
		//d.style.visibility = 'visible';
		d.style.display = 'block';
	}
}
function hide_slide_controls(id) {
	var d = $('sth_' + id);
	if (d) {
		//d.style.visibility = 'hidden';
		d.style.display = 'none';
	}
}

function remove_slide(id) {
	if (!confirm('Click [OK] to remove this slide.'))
		return false;
	var pid = $('pid').value;
	var myXhr = new XHR({method: 'post', onSuccess: function() {
					var r = myXhr.response;
					if (r && r.text) {
						var st = Json.evaluate(r.text);
						if ("ok" == st.status) {
							var line = $('sl' + id);
							line.remove();
							//document.location.reload();
						}
					}
				} // end onSuccess
			});
	myXhr.send('/delete_slide', "pid=" + pid + "&sid=" + id);
	return false;
}

function toggle_presentations() {
	$('plist').style.display = $('plist').style.display == 'block'
														? 'none'
														: 'block';
}

function set_default(pid) {
	//toggle_presentations();
	//alert(pid);
	var s = $('presentations');
	if (pid == '') {
		//alert(s.selectedIndex);
		var o = s.options;
		for (var i = 0; i < o.length; i++) {
			if (o[i].getAttribute('default') == 1) {
				s.selectedIndex = i;
				return;
			}
		}
	} else if (pid == 'add') {
		//alert('add');
		$('presentations').disabled = true;
		$('userpresentation').style.display = 'none';
		$('addpresentation').style.display = 'block';
		
		return;
	} else {
		//alert(pid);
	}

	var f = new Element('form', {
				method : 'post',
				action : '/my_presentations.html'
			});
	var i = new Element('input', {
				type : 'hidden',
				value : pid,
				name : 'default'
			});
	var r = new Element('input', {
				type : 'hidden',
				value : document.location.href,
				name : 'referer'
			});
	// add i,r to the form
	i.inject(f);
	r.inject(f);

	f.inject($(document.body));
	f.submit();
}

function cancelAddPresentation() {
	var s = $('presentations');
	s.disabled = false;
	$('presentationname').value = '';
	$('userpresentation').style.display = 'block';
	$('addpresentation').style.display = 'none';
	
	var o = s.options;
	for (var i = 0; i < o.length; i++) {
		if (o[i].getAttribute('default') == 1) {
			s.selectedIndex = i;
			break;
		}
	}
}

function addPresentation() {
	var title = $('presentationname').value;
	if (!title) return;
	
	var f = new Element('form', {
				method : 'post',
				action : '/add_presentation.html'
			});
	var i = new Element('input', {
				type : 'hidden',
				value : title,
				name : 'title'
			});
	
	var r = new Element('input', {
				type : 'hidden',
				value : document.location.href,
				name : 'referer'
			});
	// add i,r to the form
	i.inject(f);
	r.inject(f);

	f.inject($(document.body));
	f.submit();
}

function addSlide(aid, name, thumb) {
	var myXhr = new XHR({method: 'post', onSuccess: function() {
			var r = myXhr.response;
			if (r && r.text) {
				var status = Json.evaluate(r.text);
				if ( "ok" == status.status) {
					if (document.location.href.match(/view\/-\d+/))
						document.location.href = '/view/-/' + atid + '/';
					else
						document.location.reload();
				}
				else if (status.status.match(/not auth/)) {
					$("status").innerHTML 
						= 'You are not authenticated!';
					return;
				}
			}
		} // end onSuccess
	});
	myXhr.send('/add_slide', "id=" + aid);
}

function updateSlide() {
	var title = $('slidename_e').value;
	var desc  = $('description_e').value;
	
	if (title == '') {
		$("status").innerHTML = 'Title is missing';
	}
	
	var myXhr = new XHR({method: 'post', onSuccess: function() {
			var r = myXhr.response;
			if (r && r.text) {
				//alert(r.text);
				var status = Json.evaluate(r.text);
				if ( "ok" == status.status) {
					if (!atid)
						atid = "0/" + sid + "/";
					try {
						document.location.href = '/view/-/' + atid + '/' + escape(title);
					} catch (e) {}
					return;
				}
				else if (status.status.match(/not auth/)) {
					$("status").innerHTML 
						= '<span style="color: red">You are not authenticated!</span>';
					return;
				}
			}
		} // end onSuccess
	});
	//alert("sid=" + sid + '&title=' + escape(title) + '&desc=' + escape(desc));
	myXhr.send('/edit_slide', "sid=" + sid + '&title=' + escape(title) + '&text=' + escape(desc));
}

function markModified(id, off) {
	var prow = $('prow' + id);
	var color = 'red';
	if (off)
		color = 'black';
	if (!prow || prow.style.color == color)
		return;
	prow.style.color = color;
	$('title' + id).style.color = color;
	try {
		var ta = prow.getElementsByTagName('textarea');
		for (var i in ta) {
			ta[i].style.color = color;
		}
	} catch (e) {}

	if (off)
		$('updbtn' + id).style.display = 'none';
	else
		$('updbtn' + id).style.display = 'block';
}

function updateP(pid) {
	var title = $('title' + pid).value;
	var desc  = $('desc' + pid).value;

	if (title == '') {
		alert('Title is missing');
		return;
	}

	var myXhr = new XHR({method: 'post', onSuccess: function() {
			var r = myXhr.response;
			if (r && r.text) {
				var status = Json.evaluate(r.text);
				if ( "ok" == status.status) {
					markModified(pid, 1);
					return;
				}
				else if (status.status.match(/not auth/)) {
					$("status").innerHTML 
						= '<span style="color: red">You are not authenticated!</span>';
					return;
				}
			}
		} // end onSuccess
	});

	myXhr.send('/edit_presentation', "pid=" + pid + '&title=' + escape(title) + '&text=' + escape(desc));

}