String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }

function diaryView(v) {
	createCookie("diaryview", v, 14);

	if (v == 0) {
		showDiary(0);
	}
	else if (v == 1) {
		showDiary(1);
		showDiaryText(0);	
	}
	else if (v == 2) {
		showDiary(1);
		showDiaryText(1);
		showCommentText(0)
	}
	else if (v == 3) {
		showDiary(1);
		showDiaryText(1);
		showCommentText(1)
	}
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function showOunces() {
	var ounces = document.getElementById("ounces");
	if (document.form1.weightunits.selectedIndex == 0)
		ounces.style.display = '';
	else
		ounces.style.display = 'none';
}

function synchGender(p) {
	var boy = document.getElementById("genderM");
	var boy2 = document.getElementById("gender2M");
	var girl = document.getElementById("genderF");
	var girl2 = document.getElementById("gender2F");
	if (p == "top") {
		boy = document.getElementById("gender2M");
		boy2 = document.getElementById("genderM");
		girl = document.getElementById("gender2F");
		girl2 = document.getElementById("genderF");
	}
	boy2.checked = boy.checked
	girl2.checked = girl.checked
}

function synchBirth(p) {
	if (!document.getElementById("type3").checked) return;
	
	var day1 = document.form1.birth_day;
	var month1 = document.form1.birth_month;
	var year1 = document.form1.birth_year;
	var day2 = document.form1.d;
	var month2 = document.form1.m;
	var year2 = document.form1.y;
	if (p == "top") {
		day1 = document.form1.d;
		month1 = document.form1.m;
		year1 = document.form1.y;
		day2 = document.form1.birth_day;
		month2 = document.form1.birth_month;
		year2 = document.form1.birth_year;
	}
	day2.value = day1.value;
	month2.selectedIndex = month1.selectedIndex;
	year2.value = year1.value;
}

function showDiary(t) {
	var d;
	if (t) {
		d = "";
	}
	else {
		d = "none";
	}
	var weeks = [ 0,1,2,3,4,5,6,7,8,9,10,11,12,16,20,24,28,32,36 ];
	
	for (var i = 0; i < weeks.length; i++) {
		var g = document.getElementById("diary"+weeks[i])
		if (g) g.style.display = d;
	}
}

function showDiaryText(t) {
	var d;
	if (t) {
		d = "";
	}
	else {
		d = "none";
	}
	var divs = document.getElementById("pregnancycalendar").getElementsByTagName("div");
	for (var i = 0; i < divs.length; i++) {
		var mydiv = divs[i];
		if (mydiv.className == "diarypost") {
			mydiv.style.display = d;
		}
	}
}

function showCommentText(t) {
	var d;
	if (t) {
		d = "";
	}
	else {
		d = "none";
	}
	var divs = document.getElementById("pregnancycalendar").getElementsByTagName("div");
	for (var i = 0; i < divs.length; i++) {
		var mydiv = divs[i];
		if (mydiv.className == "diarycomment") {
			mydiv.style.display = d;
		}
	}
}

function deletePost(id) {
	document.location = "/pregnancy-journal-deletepost.php?post="+id;
	return false;
}

function toggleAddEntry(id) {
	var m = document.getElementById("addentry"+id);
	var diarybox = document.getElementById("diarybox"+id);
	diarybox = diarybox.getElementsByTagName("DIV");
	diarybox = diarybox[0];
	var showentry = document.getElementById("showentry"+id);
	if (!m) return true;
	var d = document.getElementById("diary"+id);

	// Fix hidden diary
	if (d && d.style.display == 'none') {
		if (m && m.firstChild) m.removeChild(m.firstChild);
		document.getElementById('viewdiary0').checked = false;
		d.style.display = '';
	}

	if (id == -1) {
		if (m.style.display == '') {
			m.style.display = 'none';
		}
		else {
			m.style.display = '';
		}
	}
	else {
		if (m.firstChild) {
			m.removeChild(m.firstChild);
			if (diarybox && !showentry.firstChild) diarybox.style.display = 'none';
		} else {
			if (diarybox) diarybox.style.display = '';

			// Copy first item
			var firstRow = document.getElementById("addentry-1").firstChild;
			var newRow = firstRow.cloneNode(true);
			m.appendChild(newRow);

			for (var i = 0; i < newRow.week.options.length; i++) {
				if (newRow.week.options[i].value == id) {
					newRow.week.selectedIndex = i;	
				}
			}
			newRow.cancel.onclick = function () {toggleAddEntry(id);}
			var divs = newRow.getElementsByTagName('DIV');
			for (var i = 0; i < divs.length; i++) {
				if (divs[i].id == "weeks") {
					divs[i].style.display = 'none';
					break;	
				}
				if (divs[i].id == "quick_entries") {
					divs[i].style.display = 'none';
					break;	
				}
			}

		}
	}
	return false;
}

var sampleImage = null;
function toggleInlineEdit(id) {
	var m = document.getElementById("inlineedit"+id);
	if (!m) return true;
	var title = document.getElementById("post"+id);
	var titlediv = document.getElementById("diarytitle"+id);
	var textdiv = document.getElementById("textspan"+id);
	var postdiv = document.getElementById("box"+id);
	var date = document.getElementById("date"+id);
	var myweek = document.getElementById("weekdata"+id);
	if (myweek) myweek = myweek.value;
	var mydate = document.getElementById("datedata"+id);
	if (mydate) mydate = mydate.value;

	if (m.firstChild) {
		m.removeChild(m.firstChild);
		if (titlediv) titlediv.style.display = '';
		if (postdiv) postdiv.style.display = '';
	} else {
		if (titlediv) titlediv.style.display = 'none';
		if (postdiv) postdiv.style.display = 'none';

		// Copy first item
		var firstRow = document.getElementById("addentry-1").firstChild;
		var newRow = firstRow.cloneNode(true);
		m.appendChild(newRow);

		newRow.action.value = "edit";
		newRow.post.value = id;
		newRow.title.value = title.innerHTML;
		var text = textdiv.innerHTML;
		text = text.replace(/<br>/gi, '\n');
		text = text.replace(/&amp;/gi, '&');
		text = text.replace(/&gt;/gi, '>');
		text = text.replace(/&lt;/gi, '<');
		newRow.text.value = text;
		newRow.save.value = "Save";
		newRow.imagefile.onchange = function() {toggleImageCaption(id)};
		newRow.cancel.onclick = function () {toggleInlineEdit(id);}
		newRow.deletebutton.onclick = function () {return deletePost(id);}
		newRow.deletebutton.style.display = '';
		var divs = newRow.getElementsByTagName('DIV');
		var existingImage = document.getElementById('image'+id);
		var len = divs.length;
		for (var i = 0; i < len; i++) {
			if (!divs[i]) continue;
			if (divs[i].id == "mydate") {
				if (myweek != -1) {
					divs[i].parentNode.removeChild(divs[i]);
				}
				else {
					var inputs = divs[i].getElementsByTagName("INPUT");
					inputs[0].value = mydate;
				}
			}
			if (divs[i].id == "weeks") {
				if (myweek == -1) {
					divs[i].parentNode.removeChild(divs[i]);
				}
				else {
					var selects = divs[i].getElementsByTagName("SELECT");
					for (var j = 0; j < selects[0].options.length; j++) {
						if (selects[0].options[j].value == myweek) {
							selects[0].options[j].selected = true;
						}
					}
												
				}
			}
			if (divs[i].id == "sampleimage") {
				sampleImage = divs[i].firstChild;
				if (existingImage) sampleImage.src = existingImage.src;
			}
			if (divs[i].id == "editpicture") {
				if (existingImage) {
					divs[i].style.display = '';
				}
				else {
					divs[i].style.display = 'none';
				}
			}
			if (divs[i].id == "newpicture") {
				var trs = divs[i].getElementsByTagName('TR');
				for (var j = 0; j < trs.length; j++) {
					if (trs[j].id == "imagecaption-1") {
						trs[j].id = "imagecaption" + id;	
					}
				}
			}
		}

		var pub = newRow.elements["public"];

		if (document.getElementById("private"+id)) pub[1].checked = true;
		else pub[0].checked = true;
	}
	return false;
}

function toggleImageCaption(id) {
	var m = document.getElementById("imagecaption"+id);
	if (!m) return true;

	m.style.display = "";	
}

function toggleAddComment(id) {
	var m = document.getElementById("addcomment"+id);
	if (!m) return true;

	if (id == -1) {
		if (m.style.display == '') {
			m.style.display = 'none';
		}
		else {
			m.style.display = '';
		}
	}
	else {
		if (m.firstChild) {
			m.removeChild(m.firstChild);
		} else {
			// Copy first item
			var firstRow = document.getElementById("addcomment-1").firstChild;
			var newRow = firstRow.cloneNode(true);
			m.appendChild(newRow);
			newRow.post.value = id;
			var now = new Date();
			var img = newRow.getElementsByTagName("IMG");
			img = img[0];
			if(img) img.src = img.src + "&" + now.getTime();
		}
	}
	return false;
}

function togglePost(id) {
	var m = document.getElementById("box"+id);
	if (m) {
		if (m.style.display == '') {
			m.style.display = 'none';
			var n = document.getElementById('viewdiary2');
			if (n) n.checked = false;
		}
		else {
			m.style.display = '';
			var n = document.getElementById('viewdiary1');
			if (n) n.checked = false;
		}
	}
	return false;
}

function toggleComment(id) {
	var m = document.getElementById("comment"+id);
	var n = document.getElementById("box"+id);
	if (n && m && n.style.display == 'none') m.style.display = 'none';
	if (n) n.style.display = '';

	if (m) {
		if (m.style.display == '') {
			m.style.display = 'none';
			n = document.getElementById('viewdiary3');
			if (n) n.checked = false;
		}
		else {
			m.style.display = '';
			n = document.getElementById('viewdiary2');
			if (n) n.checked = false;

			if (!document.getElementById("addentry-1")) return false;

			var node = document.getElementById("togglecomment"+id);
			if (!node || node.style.fontWeight != "bold") return false;
	
			var xmlhttp = GetXmlHttp();
			if (!xmlhttp) return false;	

			xmlhttp.onreadystatechange = 
				function () {
					if (xmlhttp && xmlhttp.readyState==4) {
						node.style.fontWeight = '';
					}
				}
	
			xmlhttp.open("GET",'pregnancy-journal-markread.php?post='+id, true);
			xmlhttp.send("");
		}
	}
	return false;
}

function validateDiaryPost(n) {
	if (!n) return false;
	if (n.text.value == '' && (!n.quick || n.quick.value == '')) {
		alert("Please type a journal entry.");
		return false;
	}
	if (n.title.value == '') {
		alert("Please enter a title.");
		return false;
	}

	return true;
}

function validateMilestonePost(n) {
	return true;	
}

function doSelect(checked) {
	for(i=0; i<document.form1.elements.length; i++)
		if(document.form1.elements[i].type=="checkbox")
			document.form1.elements[i].checked=checked;
	var text1 = document.getElementById("selectText1");
	var text2 = document.getElementById("selectText2");
	if (checked) {
		if (text1) text1.innerHTML = "Deselect All";
		if (text2) text2.innerHTML = "Deselect All";
	}
	else {
		if (text1) text1.innerHTML = "Select All";
		if (text2) text2.innerHTML = "Select All";
	}
}

function validateComment(id) {
	var n = document.getElementById("addcomment"+id).firstChild;
	if (n.elements[0].value.trim() == "" || n.elements[1].value.trim() == "" || n.elements[2].value.trim() == "") {
		n.elements[3].disabled = true;
	}
	else {
		n.elements[3].disabled = false;
	}
}

function deleteXMLComment(post,id) {
	var node = document.getElementById("commentline"+id);
	if (!node) return;

	var xmlhttp = GetXmlHttp();
	if (!xmlhttp) return true;	

	xmlhttp.onreadystatechange = 
		function () {
			if (xmlhttp && xmlhttp.readyState==4) {
				node.parentNode.removeChild(node);
			}
		}

	xmlhttp.open("GET",'pregnancy-journal-comment.php?action=delete&post='+post+'&id='+id, true);
	xmlhttp.send("");
	
	return false;
}

function submitXMLComment(id) {
	var xmlhttp = GetXmlHttp();
	if (!xmlhttp) return true;	

	var n = document.getElementById("addcomment"+id).firstChild;
	var text = "submit=xml";
	text += "&text=" + n.elements[0].value;
	text += "&name=" + n.elements[1].value;
	defaultName = n.elements[1].value;
	text += "&keystring=" + n.elements[2].value;
	text += "&post=" + n.elements[4].value;
	
	
	xmlhttp.onreadystatechange = 
		function () {
			if (xmlhttp && xmlhttp.readyState==4) {
				var response = xmlhttp.responseText.split('\n', 5);
				var post = response[0];
				var id = response[1];
				var name = response[2];
				var date = response[3];
				var text = response[4];
				if (text) {
					n.parentNode.removeChild(n);
				} else {
					var now = new Date();
					n.elements[2].value = "";
					var img = n.getElementsByTagName("IMG");
					img = img[0];
					img.src = img.src + "&" + now.getTime();
				}
				var c = document.getElementById("comment"+post);
				if (c) {
					var message = "<div id='commentline" + id + "'><strong>" + name + " (" + date + ")</strong>: " + text;
					if (document.getElementById("addentry-1")) {
						message += " <a href='/pregnancy-journal-comment.php?action=delete&post="+post+"&id="+id+"' onclick='return deleteXMLComment("+post+","+id+")'><img src='/images/x.gif'></a>";
					}
					message += "</div>";
					c.innerHTML = message + c.innerHTML;
					if (c.style.display == 'none') c.style.display = '';
				}
			}
		}
	xmlhttp.open("POST",'pregnancy-journal-comment.php',true);
	xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xmlhttp.send(text);
	return false;
}

function GetXmlHttp() {  
	var xmlhttp = false;  
	if (window.XMLHttpRequest){  
		xmlhttp = new XMLHttpRequest();  
	}  
	else if (window.ActiveXObject)// code for IE  
	{  
		try  
		{  
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP")  
		} catch (e) {  
			try  
			{  
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")  
			} catch (E) {  
				xmlhttp=false;  
			}
		}  
	}  
	return xmlhttp;  
}  

function moremilestone(n) {
	var div = document.getElementById('milestone'+n);
	if (!div) return;
	div.style.maxHeight = '';
}

function lessmilestone(n) {
	var div = document.getElementById('milestone'+n);
	if (!div) return;
	div.style.maxHeight = '120px';
}

var oldMilestoneTable;
function toggleInlineMilestoneEdit(day) {
		
	var xmlhttp = GetXmlHttp();
	if (!xmlhttp) return true;	

	xmlhttp.onreadystatechange = 
		function () {
			if (xmlhttp && xmlhttp.readyState==4) {
				var response = xmlhttp.responseText;
				if (!response) return;

				var node = document.getElementById('mt'+day);
				if (!node) return;
				oldMilestoneTable = node.innerHTML;
				node.innerHTML = response;
			}
		}

	xmlhttp.open("GET",'/pregnancy-milestones-post-box.php?action=edit&post='+day,true);
	xmlhttp.send('');

	return false;	
}

function unToggleInlineMilestoneEdit(day) {
	var node = document.getElementById('mt'+day);
	if (!node) return false;
	node.innerHTML = oldMilestoneTable;
	return false;
}

