//Rent Functions
var preLd = new Image();
preLd.src='../fisheye/icons/loading_icon.gif';

function gid(id) { return document.getElementById(id); }

function initAjax() {
	if (window.XMLHttpRequest) return new XMLHttpRequest();
	else if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
}

function toggleDiv(which,elem) {
	var allDivs = document.getElementsByName('main');
	for(i=0;i<allDivs.length;i++) {
		allDivs[i].style.display="none";
	}
	gid(which).style.display="";
	var tabs = gid('tabs').getElementsByTagName('a');
	for(i=0;i<tabs.length;i++) tabs[i].className="";
	elem.className="active";
}

function check(which,elem) {
	if(elem.value!="") {
		gid("checkbox_"+which).checked=true;
		gid("checkbox_"+which).disabled=true;
	}
	else {
		gid("checkbox_"+which).checked=false;
		gid("checkbox_"+which).disabled=false;
	}
}

function changeInfo(formName,uId) {
	var row = gid('row_'+uId);
	var url="rentFunctions.php?changeInfo";
	var elements = document.forms[formName].elements;
	for(i=0;i<elements.length;i++) {
		if(elements[i].type=="button" || elements[i].value=="") continue;
		if(elements[i].name=="email") {
			var emailFilter=/^.+@.+$/;
			if (!(emailFilter.test(elements[i].value))) { 
       			gid(formName+'_status').innerHTML='<span style="color:red;">Please enter a valid email address</span>';
				return;
			}	
		}
		url+="&"+elements[i].name+"="+elements[i].value;
	}
	url+="&num="+row.getAttribute("name").substring(2,row.getAttribute("name").length);
	var myAjax = initAjax();
	myAjax.open("GET",url,true);
	myAjax.onreadystatechange=function() {
		if(myAjax.readyState=="complete" || myAjax.readyState==4) {
			gid(formName+'_status').innerHTML='<span style="color:green;">Info successfully changed</span>';
			row.innerHTML=myAjax.responseText;
		}
	}
	myAjax.send(null);
}

function resetForm(form) {
	var con = confirm("Are you sure you want to reset this form?");
	if(con) document.forms[form].reset();
}

function toggleRow(pId) {
	var rarr = gid("arrowR_"+pId);
	var darr = gid("arrowD_"+pId);
	toggleArrows(rarr,darr);
	gid("info_"+pId).style.display = (gid("info_"+pId).style.display=="none")?"":"none";
}

function toggleArrows(rarr,darr) {
	if(darr.style.display=="none") {
		darr.style.display="";
		rarr.style.display="none";
	}
	else {
		darr.style.display="none";
		rarr.style.display="";
	}
}

function togglePaidDepts(id) {
	var rarr = gid("user"+id+"_mydebts_arrowR");
	var darr = gid("user"+id+"_mydebts_arrowD");
	toggleArrows(rarr,darr);
	var rows = gid('paymentTable').getElementsByTagName('tr');
	for(i=0;i<rows.length;i++) {
		if(rows[i].className=="oldpayment") {
			rows[i].style.display = (rows[i].style.display=="none")?"":"none";
		}
	}
}

function togglePayments(id) {
	var rarr = gid("user"+id+"_payments_arrowR");
	var darr = gid("user"+id+"_payments_arrowD");
	toggleArrows(rarr,darr);
	var rowcount=0;
	while(row=gid("user"+id+"_"+rowcount+"_payment")) {
		row.style.display = (row.style.display=="none")?"":"none";
		rowcount++;
	}
}

function toggleAllPayments() {
	var rows = gid('userTable').getElementsByTagName('tr');
	for(i=0;i<rows.length;i++) {
		if(rows[i].id.indexOf("row_")!=-1) {
			var id = rows[i].id.substring(4,rows[i].id.length);
			togglePayments(id);
		}
	}
}

function loadUserPayments(pId) {
	var myAjax = initAjax();
	var url="rentFunctions.php?getStatus&pId="+pId;
	myAjax.open("GET",url,true);
	myAjax.onreadystatechange=function() {
		var test;
		if(myAjax.readyState==4 || myAjax.readyState=="complete") {
			var pairs = myAjax.responseText.split("?^?");
			for(i=0;i<pairs.length;i++) {
				test = pairs[i].split("!*!");
				document.getElementById("u_"+test[0]).innerHTML=test[1];
			}
		}
	}
	myAjax.send(null);
	gid('userTable').scrollIntoView();
}

function loadUserStatus(elem,pId) {
	var uId = elem.id.substring(2,elem.id.length);
	var url = "rentFunctions.php?getStatus&pId="+pId+"&userID="+uId;
	elem.innerHTML='...';
	var myAjax=initAjax();
	myAjax.open("GET",url,true);
	myAjax.onreadystatechange=function() {
		if(myAjax.readyState==4 || myAjax.readyState=="complete") elem.innerHTML=myAjax.responseText;	
	}
	myAjax.send(null);
}

function checkAll(outerDiv,elem) {
	if(elem.checked==true) which=true;
	else which=false;
	var elements = gid(outerDiv).getElementsByTagName('input');
	for(i=0;i<elements.length;i++) {
		if(elements[i].type!="checkbox" || elements[i].name=="checkall") continue;
		elements[i].checked=which;	
	}
}

function pay(pId,elem) {
	var url="rentFunctions.php?pay="+pId;
	elem.src="http://www.efishdesign.com/fisheye/icons/loading_icon.gif";
	var myAjax = initAjax();
	myAjax.open("GET",url,true);
	myAjax.onreadystatechange=function() {
		if(myAjax.readyState==4 || myAjax.readyState=="complete") {
			elem.parentNode.parentNode.className="oldpayment";	
			elem.src="accept.png";
			gid('title_'+pId).innerHTML+=myAjax.responseText;
			updateHowMuchIOwe();
		}
	}
	myAjax.send(null);
}

function updateHowMuchIOwe() {
	var url="rentFunctions.php?howmuchIowe";
	stdAjax(url,'howmuchIowe');
}

function checkForDuplicates(val,field,groupID) {
	var url = "rentFunctions.php?check&val="+val+"&field="+field+"&groupID="+groupID;
	var myAjax = initAjax();
	myAjax.open("GET",url,true);
	var a;
	myAjax.onreadystatechange=function() {
		if(myAjax.readyState==4 || myAjax.readyState=="complete") {
			if(myAjax.responseText!="") {
					gid('newPayment_status').innerHTML=myAjax.responseText;
					a=true;
			}
			else {
				gid('newPayment_status').innerHTML="";
				a=false;
			}
		}
	}
	myAjax.send(null);
	return a;
}

function refreshWhoOwesMe() {
	gid('whoOwesMe').innerHTML='<img src="http://www.efishdesign.com/fisheye/icons/loading_icon.gif"> Loading content...';
	var url = "rentFunctions.php?whoOwesMe";
	stdAjax(url,'whoOwesMe');
}

function refreshPaymentList(group) {
	gid('paymentsDiv').innerHTML='<img src="http://www.efishdesign.com/fisheye/icons/loading_icon.gif"> Loading content...';
	var url = "rentFunctions.php?refreshPaymentList&groupID="+group;
	stdAjax(url,'paymentsDiv');
}

function sendReminder(pId,uId,elem) {
	var url="rentFunctions.php?sendReminder&pId="+pId+"&uId="+uId;
	var theparent = elem.parentNode;
	theparent.innerHTML='<span style="color:#999;">Sending...</span>';
	var myAjax=initAjax();
	myAjax.open("GET",url,true);
	myAjax.onreadystatechange=function() {
		if(myAjax.readyState==4 || myAjax.readyState=="complete") theparent.innerHTML='<span style="color:green;">Sent!</span>';	
	}
	myAjax.send(null);
}

function sendGroupReminder(pId,elem) {
	var url="rentFunctions.php?sendReminder&pId="+pId;
	var theparent = elem.parentNode;
	theparent.innerHTML='<span style="color:#999;">Sending...</span>';
	var myAjax=initAjax();
	myAjax.open("GET",url,true);
	myAjax.onreadystatechange=function() {
		if(myAjax.readyState==4 || myAjax.readyState=="complete") theparent.innerHTML='<span style="color:green;">Sent!</span>';	
	}
	myAjax.send(null);
}

function attemptSavePayment(group) {
	var form1 = document.forms['newPayment'];
	var stat = gid('newPayment_status');
	if(form1.name.value=="") stat.innerHTML="Error: Payment name cannot be blank";
	else {
		var inputs = gid('userForm').getElementsByTagName('input');
		var errorFound=false;
		if(form1.amount.value=="") {
			for(i=0;i<inputs.length;i++) {
				if(inputs[i].type=="checkbox" && inputs[i].checked==true) {
					if(inputs[i+1].value=="") {
						errorFound=true;
						break;
					}
				}
			}
		}
		if(errorFound) {
				stat.innerHTML="Error: Amount cannot be blank if there are blank entries in the members table";
				return;
		}
		var am=0;
		for(i=0;i<inputs.length;i++) {
			if(inputs[i].type=="checkbox") continue;
			if(inputs[i].value!="") am = am + parseFloat(inputs[i].value);
		}
		if(am>form1.amount.value && form1.amount.value!="") {
				stat.innerHTML="Error: amounts specified in table exceed total amount ($"+am+" > $"+form1.amount.value+")";
				return;
		}
		else {
			var newnotes = form1.notes.value.replace(/\n/g,'<br>');
			newnotes = newnotes.replace(/&/g,"and");
			var url="rentFunctions.php?addPayment&groupID="+group+"&type="+form1.type.value+"&name="+form1.name.value+"&freq="+form1.frequency.value+"&amount="+form1.amount.value+"&notes="+newnotes;
			for(i=0;i<inputs.length;i++) {
				if(inputs[i].type=="checkbox" && inputs[i].checked==true && inputs[i].name!="checkall") {
					var theid = inputs[i].id.substring(9,inputs[i].id.length);
					var val = gid('amount_'	+theid).value;
					url+="&"+inputs[i].value+"="+val;
				}
			}
			var myAjax = initAjax();
			myAjax.open("GET",url,true);
			gid('loading').innerHTML='<img src="http://www.efishdesign.com/fisheye/icons/loading_icon.gif">';
			gid('newPayment_submit_button').disabled=true;
			myAjax.onreadystatechange=function() {
				if(myAjax.readyState==4 || myAjax.readyState=="complete") {
					gid('loading').innerHTML="";
					gid('newPayment_submit_button').disabled=false;
					stat.innerHTML='<span style="color:green;">Payment successfully entered.</span>';
					if(form1.type.value=="Group") refreshPaymentList(group);
					if(form1.type.value=="Personal") refreshWhoOwesMe();
					form1.reset();
					gid('newPayment_status').innerHTML="";
				}
			}
			myAjax.send(null);
		}
	}
}

function toggle(id) {
	gid(id).style.display = (gid(id).style.display=="none")?"":"none";	
}

function stdAjax(url,id) {
	var myAjax = initAjax();
	myAjax.open("GET",url,true);
	myAjax.onreadystatechange=function() {
		if(myAjax.readyState==4 || myAjax.readyState=="complete") {	
			gid(id).innerHTML=myAjax.responseText;
		}
	}
	myAjax.send(null);
}

function loadPage(page,id) {
	gid(id).style.display="";
	gid(id).innerHTML='<img src="http://www.efishdesign.com/fisheye/icons/loading_icon.gif"> Loading content...';
	gid(id).scrollIntoView();
	var myAjax=initAjax();
	myAjax.open("GET",page,true);
	myAjax.onreadystatechange=function() {
		if(myAjax.readyState==4 || myAjax.readyState=="complete") {	
			gid(id).innerHTML=myAjax.responseText;
			gid(id).scrollIntoView();
		}
	}
	myAjax.send(null);
}

function edit(name,elem,id) {
	var oldHTML=elem.innerHTML;
	if(oldHTML.indexOf('<input')!=-1) return;
	elem.innerHTML='<input type="text" userID='+id+' name="'+name+'" value="'+elem.innerHTML+'" onblur="save(this,\''+oldHTML+'\')">';
	elem.childNodes[0].focus();
}

function save(elem,oldHTML) {
	var field = elem.getAttribute("name");
	var userID = elem.getAttribute("userID");
	var val = elem.value;
	elem.parentNode.innerHTML=val;
	if(oldHTML!=val) {
		var url="rentFunctions.php?saveField&field="+field+"&val="+val+"&uId="+userID;
		var myAjax = initAjax();
		myAjax.open("GET",url,true);
		myAjax.send(null);
	}
}

function sendPassword(formName) {
	var email = document.forms[formName].email.value;
	var button = document.forms[formName].passwordbutton;
	button.value="Sending...";
	gid('login_status').innerHTML='<img src="http://www.efishdesign.com/fisheye/icons/loading_icon.gif">';
	var url = "rentFunctions.php?sendPassword&to="+email;
	var myAjax=initAjax();
	myAjax.open("GET",url,true);
	myAjax.onreadystatechange=function() {
		if(myAjax.readyState==4 || myAjax.readyState=="complete") {
			gid('login_status').innerHTML=myAjax.responseText;
			button.value="Send!";
			document.forms[formName].reset();
		}
	}
	myAjax.send(null);
}

function togglePassword() {
	var pass = gid('sendPassword');
	var login = gid('loginDiv');
	if(pass.style.display=="none") {
		pass.style.display="";
		login.style.display="none";
	}
	else {
		pass.style.display="none";
		login.style.display="";
	}
}