/*script.js -- Created by Wolfpaws for weresource.org*/ 
/* Modified by WolfFriend */

// Comment handling for news page
function quoteNewsComment(cid) {
	if (cid=="") {
		return;
	}

	// Use AJAX to get comment text and poster:
	if (window.XMLHttpRequest) {	// For IE7+, FF, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
	
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				tb = document.getElementById('new_comment');
				tb.value = xmlhttp.responseText+"\n";
				tb.scrollIntoView(true);
			}
			else if (xmlhttp.readyState == 4 && xmlhttp.status == 404) {
				alert("AJAX error: 404 not found");
			}
		}
	
		xmlhttp.open("GET", "/ajax/getNewsComment?cid="+cid+"&t="+Math.random(), true);
		xmlhttp.send();
	}
	else {
		alert("Your browser does not support AJAX.");
	}
}

function editNewsComment(cid) {
	if (cid=="") {
		return;
	}
	
	// Swap to in-line edit box
	commentbox = document.getElementById("news_comment_textbox"+cid);
	footerbox = document.getElementById("news_comment_footerbox"+cid);
	commenteditbox = document.getElementById("news_comment_editbox"+cid);
	commentbox.style.display = 'none';
	footerbox.style.display = 'none';
	commenteditbox.style.display = 'block';
}

function doCancelEditComment(cid) {
	if (cid=="") {
		return;
	}
	
	// Swap to in-line edit box
	commentbox = document.getElementById("news_comment_textbox"+cid);
	footerbox = document.getElementById("news_comment_footerbox"+cid);
	commenteditbox = document.getElementById("news_comment_editbox"+cid);
	commentbox.style.display = 'block';
	footerbox.style.display = 'block';
	commenteditbox.style.display = 'none';
}

function doEditComment(cid) {
	// Use AJAX to get comment text and poster:
	if (window.XMLHttpRequest) {	// For IE7+, FF, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
	
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				postText = xmlhttp.responseText;
				commentbox = document.getElementById("news_comment_textbox"+cid);
				fotterbox = document.getElementById("news_comment_footerbox"+cid);
				commenteditbox = document.getElementById("news_comment_editbox"+cid);
				commenttextbox = document.getElementById("comment_text_content"+cid);
				commenttextbox.innerHTML = postText;
				commenttextarea = document.getElementById('news_comment_edit_textarea'+cid);
				commenttextarea.innerHTML = postText;
				commentbox.style.display = 'block';
				footerbox.style.display = 'block';
				commenteditbox.style.display = 'none';
			}
			else if (xmlhttp.readyState == 4 && xmlhttp.status == 404) {
				alert("AJAX error: 404 not found");
			}
		}
		editedtext = document.getElementById('news_comment_edit_textarea'+cid).value;
		
		xmlhttp.open("POST", "/ajax/editNewsComment?cid="+cid+"&t="+Math.random(), true);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.send("text="+editedtext);
	}
	else {
		alert("Your browser does not support AJAX.");
	}
}

function deleteNewsComment(cid) {
	if (confirm("Are you sure you want to delete this comment?")) {
		if (window.XMLHttpRequest) {
			xmlhttp = new XMLHttpRequest();
	
			xmlhttp.onreadystatechange=function() {
				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
					if (xmlhttp.responseText == "OK") {
						commentbox = document.getElementById("news_comment"+cid);
						commentbox.style.display = "none";
					}
					else {
						alert("Could not delete comment\n"+xmlhttp.responseText);
					}
				}
				else if (xmlhttp.readyState == 4 && xmlhttp.status == 404) {
					alert("AJAX error: 404 not found");
				}
			}
		
			xmlhttp.open("GET", "/ajax/deleteNewsComment?cid="+cid+"&t="+Math.random(), true);
			xmlhttp.send();
		}
	}
}

// Stats engine stuff
function doinctp() {
	var v = document.getElementById("tp").disabled;
	document.getElementById("tp").disabled = !v;
}
function doincage() {
	var v0 = document.getElementById("age_lower").disabled;
	var v1 = document.getElementById("age_higher").disabled;
	document.getElementById("age_lower").disabled = !v0;
	document.getElementById("age_higher").disabled = !v1;
}
function doincgi() {
	var v = document.getElementById("gi").disabled;
	document.getElementById("gi").disabled = !v;
	
}
function doincso() {
	var v = document.getElementById("so").disabled;
	document.getElementById("so").disabled = !v;
}

function initStatsSelect() {
	document.getElementById("stats_select").value = "SELECT m.id AS member_id, (YEAR(CURDATE()) - YEAR(FROM_UNIXTIME(m.dob, '%Y-%m-%d'))) - (RIGHT(CURDATE(), 5) < RIGHT(FROM_UNIXTIME(m.dob, '%Y-%m-%d'), 5)) AS age FROM stats_responses sr, members m WHERE age>=13 AND age<=99 REPLACEME ORDER BY m.username DESC";
}

function doAgeStat() {
	var sql = document.getElementById("stats_select");
	var age_lower = document.getElementById("age_lower").value;
	var age_higher = document.getElementById("age_higher").value;
	if (age_lower > age_higher) {
		alert("Invalid age range: "+age_lower+" > "+age_higher+"\nFirst age must be less than or equal to second age!");
		document.getElementById("search_button").disabled = true;
	}
	else {
		document.getElementById("search_button").disabled = false;
		var re = new RegExp("age>=[0-9][0-9]? AND age<=[1-9][0-9]+");
		var replacement = 'age>='+document.getElementById("age_lower").value+' AND age<='+document.getElementById("age_higher").value;
		sql.value = sql.value.replace(re, replacement);
	}
}

function doBool0() {
	var b0 = document.getElementById("bool0");
	if (b0.value != 0) {
		var s0 = document.getElementById("cat1");
		s0.disabled = false;
		var s0_2 = document.getElementById("cat1_part2");
		s0_2.disabled = false;
		var b1 = document.getElementById("bool1");
		b1.disabled = false;
	}
	else {
		var s0 = document.getElementById("cat1");
		s0.disabled = true;
		var s0_2 = document.getElementById("cat1_part2");
		s0_2.disabled = true;
		var b1 = document.getElementById("bool1");
		b1.disabled = true;
		b1.value = 0;
		var b2 = document.getElementById("bool2");
		b2.disabled = true;
		b2.value = 0;
		var s1 = document.getElementById("cat2");
		s1.disabled = true;
		var s1_2 = document.getElementById("cat2_part2");
		s1_2.disabled = true;
		var s2 = document.getElementById("cat3");
		s2.disabled = true;
		var s2_2 = document.getElementById("cat3_part2");
		s2_2.disabled = true;
	}
}

function doCat1() {
	
}

function doCat1Part2() {
	
}

function doBool1() {
	var b1 = document.getElementById("bool1");
	if (b1.value != 0) {
		var s1 = document.getElementById("cat2");
		s1.disabled = false;
		var s1_2 = document.getElementById("cat2_part2");
		s1_2.disabled = false;
		var b2 = document.getElementById("bool2");
		b2.disabled = false;
	}
	else {
		var s1 = document.getElementById("cat2");
		s1.disabled = true;
		var s1_2 = document.getElementById("cat2_part2");
		s1_2.disabled = true;
		var b2 = document.getElementById("bool2");
		b2.disabled = true;
		b2.value = 0;
		var s2 = document.getElementById("cat3");
		s2.disabled = true;
		var s2_2 = document.getElementById("cat3_part2");
		s2_2.disabled = true;
	}
}

function doCat2() {

}

function doCat2Part2() {

}

function doBool2() {
	var b2 = document.getElementById("bool2");
	if (b2.value != 0) {
		var s2 = document.getElementById("cat3");
		s2.disabled = false;
		var s1_2 = document.getElementById("cat3_part2");
		s1_2.disabled = false;
	}
	else {
		var s2 = document.getElementById("cat3");
		s2.disabled = true;
		var s2_2 = document.getElementById("cat3_part2");
		s2_2.disabled = true;
	}
}

function doCat3() {

}

function doCat3Part2() {

}

// Avatar stuff
function uploadAvatarWindow() {
	window.open('my?upload', '_blank', 'height=250, width=400', 'false');
}

function displayAvatar(avurl) {
	var avatar = new Image();
	avatar.src = avurl;
	var d1 = opener.document.getElementById('avataron');
	var d2 = opener.document.getElementById('avataroff');
	d1.style.display = 'block';
	d2.style.display = 'none';
	opener.document.avatarimg.src = avatar.src;
}

//Tabulator switching for profile
function profileSwitch(tab) {
	a = new Array('therian', 'general', 'forum', 'friends');
	for (x = 0; x < 3; x++) {
		e = document.getElementById('profilenav' + String(x));
		d = document.getElementById(a[x]);
		
		if (x == tab) {
			e.className = 'profileTopNav profileTopNavSelected';
			d.style.display = 'block';
		} else {
			e.className = 'profileTopNav';
			d.style.display = 'none';
		}
	}
	
	e = document.getElementById('profilenav3');
	d = document.getElementById(a[3]);
	if (3 == tab) {
		e.className = 'profileTopNavLast profileTopNavLastSelected';
		d.style.display = 'block';
	} else {
		e.className = 'profileTopNavLast';
		d.style.display = 'none'
	}
}

//Tabulator switching for stats
function statsSwitch(tab) {
	a = new Array('statShift', 'statGender', 'statOrient', 'statAge', 'statTherio');
	for (x = 0; x < 4; x++) {
		e = document.getElementById('statnav' + String(x));
		d = document.getElementById(a[x]);
		
		if (x == tab) {
			e.className = 'mynav mynav_selected';
			d.style.display = 'block';
		} else {
			e.className = 'mynav';
			d.style.display = 'none';
		}
	}
	
	e = document.getElementById('statnav4');
	d = document.getElementById(a[4]);
	if ( 4 == tab) {
		e.className = 'mynav mynav_last mynav_selected';
		d.style.display = 'block';
	} else {
		e.className = 'mynav mynav_last';
		d.style.display = 'none';
	}
}

//Tabulator switching for my preferences
function mySwitch(tab) {
	a = new Array('myBasic', 'myTherio', 'myRelation', 'myShifting', 'myForum', 'myPrivacy', 'myBio');
	for (x = 0; x < 6; x++ ) {
		e = document.getElementById('mynav' + String(x));
		d = document.getElementById(a[x]);
		
		if (x == tab) {
			e.className = 'mynav mynav_selected';
			d.style.display = 'block';
		} else {
			e.className = 'mynav';
			d.style.display = 'none';
		}
	}
	
	e = document.getElementById('mynav6');
	d = document.getElementById(a[6]);
	if ( 6 == tab) {
		e.className = 'mynav mynav_last mynav_selected';
		d.style.display = 'block';
	} else {
		e.className = 'mynav mynav_last';
		d.style.display = 'none';
	}
}

function addTherio() {
	pt = document.getElementById('phenotypes');
	tl = document.getElementById('mytheriolist');
	ntl = document.createElement('li');
	ntl.style.paddingBottom = '4px';
	ntl.id = 'tt' + String(++ myTherioNum);
	ntl.name = '' + String(pt.options[pt.selectedIndex].value);
	ntl.innerHTML = "<input type=\"hidden\" name=\"theriotypes[]\" value=\"" + pt.options[pt.selectedIndex].value + "\" /><span class=\"myremove\"><a href=\"javascript:delTherio('tt"+myTherioNum+"')\">[x]</a></span> " + pt.options[pt.selectedIndex].text + "<input style=\"clear:right;float:right\" type=\"radio\" name=\"primarytherio\" value=\""+pt.options[pt.selectedIndex].value+"\" />";
	
	tl.appendChild(ntl);
    
    // Check primary theriotype thingy
    var prim = document.getElementsByName("primarytherio");
    var checked = false;
	for (i = 0; i < prim.length; i=i+1) {
		if (prim[i].checked == true) {
			checked = true;
		}
	}
    if (checked == false) {
        prim[0].checked = true;
    }
}

function delTherio(elem) {
	e = document.getElementById(elem);
	e.innerHTML = '';
	e.style.display='none';
    // Check primary theriotype thingy
    var prim = document.getElementsByName("primarytherio");
    var checked = false;
	for (i = 0; i < prim.length; i=i+1) {
		if (prim[i].checked == true) {
			checked = true;
		}
	}
    if (checked == false) {
        prim[0].checked = true;
    }
}

function saveChanges() {
	e = document.getElementById('mypost');
	e.submit();
}

function deleteMsg(msgId) {
	if (confirm("Do you want to delete this message?")) {
		document.location.href="/messages/d/" + msgId; 
	}
}

function flagMsg(msgId, subj) {
	if (confirm("Do you want to notify the administrators about this message?")) {
		alert("You agree")
	} else {
		alert ("You do not agree")
	};
}

function openMessage(msgId, elem, maxelem) {
	for (var x = 0; x <= maxelem; x++) {
		msgClose(x);
		e = document.getElementById('msgid' + x);
		e.className = 'msgClosed';
	}
	
	curelem = document.getElementById('msgid' + elem);
	curelem.className = 'msgOpen';
	curelemcnt = document.getElementById('msgid' + elem + 'cnt');
	curelemcnt.style.display='block';
}

function closeAll(maxelem) {
	for (var x = 0; x <= maxelem; x++) {
		msgClose(x);
		e = document.getElementById('msgid' + x);
		e.className = 'msgClosed';
	}
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

function msgReply(msgId, elem, maxelem, ruserId, rootid) {
	var curelem = document.getElementById('msgreply');
	var subj = document.getElementById('msgsubj' + elem).innerHTML.trim();
	var user = document.getElementById('msguser' + elem).innerHTML;
	curelem.innerHTML = '\
		<div style="width:585px;margin:0; padding:5px; ">\
		<form method="post" action="/messages">\
		<div style="float:right;font-size:9px">[<a href="javascript:closeReply('+elem+')">close</a>]</div>\
		<br style="clear:both;" />\
		<div class="msgUsrLink">Reply to: '+ user +'</div>\
		<div>Subject: <input type="text" name="subject" style="border:1px solid black;width:195px;font-size:9px;" value="Re: '+ subj +'" /></div>\
		<input type="hidden" name="userid" value="'+ruserId+'">\
		<input type="hidden" name="root_imid" value="'+rootid+'">\
		<input type="hidden" name="parent" value="'+msgId+'">\
		<br />\
		<div>Message:</div>\
		<div><textarea name="message" rows="7" cols="50" style="border:1px solid black;width:585px;" ></textarea></div>\
		<br />\
		<br style="clear:both;" />\
		<div style="float:right; padding-right:5px; padding-bottom:10px;"><input type="submit" value="Send message" /></div>\
		</form></div>';
	curelem.style.display='block';
}

function closeReply(elem) {
	var el = document.getElementById('msgreply');
	el.style.display='none';
	el.innerHTML = '';
}

function finder_theriotype() {
	e = document.getElementById('phenotypes');
	if (e.value > 0)
		window.location.href = '/finder/theriotype/' + e.value;
}

// For adding users in the admin email page
function add_recipient() {
	//alert("Add a user to the To: field");
	curr = document.getElementById("tofield").value;
	if (curr == "") {
		document.getElementById("tofield").value += document.getElementById("addrecipient").value;
	}
	else {
		document.getElementById("tofield").value += "; " + document.getElementById("addrecipient").value;
	}
}
