var xmlHttp,xmlHttp2;
var doSync;

sfFocus = function() {
   var sfEls = document.getElementsByTagName("INPUT");
   for (var i=0; i<sfEls.length; i++) {
		if (sfEls[i].type != "checkbox" && ! sfEls[i].readOnly) {
      sfEls[i].onfocus=function() {
         this.className+=" sffocus";
      }
      sfEls[i].onblur=function() {
         this.className=this.className.replace(new RegExp(" sffocus\\b"), "");
      }
		}
   }
}

	if (window.attachEvent) window.attachEvent("onload", sfFocus);

	function IsNumeric(sText)
	{
	   var ValidChars = "0123456789.";
	   var IsNumber=true;
	   var Char;


	   for (i = 0; i < sText.length && IsNumber == true; i++) {
	      Char = sText.charAt(i);
	      if (ValidChars.indexOf(Char) == -1)
	         IsNumber = false;
	   }
	   return IsNumber;

	}

	function validate_email (email) {
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		return reg.test(email);
	}

	function set_amount(field_var) {
		var inp_name = field_var.name.replace(/amt_sel_/,"");
		var inp_fld = document.getElementById("loan_amount[" + inp_name + "]");
		inp_fld.value = field_var.value;
		update_fieldval(inp_fld, inp_name);
	}

	function update_fieldval (field_var,id) {
		var inp_fld = document.getElementById("clients_id[" + id + "]");
		field_var.style.color = "black";
		if (! IsNumeric(field_var.value)) {
			alert("Please enter a valid number");
			field_var.value="0";
			field_var.style.color="red";
			field_var.focus();
		} else {
			var cc = document.getElementById("removed_" + id);
			if (cc.value != 1) {
				var loan_bal = document.getElementById("loan_balance[" + id + "]").value * 1.0;
				var loan_amt = field_var.value * 1;
				if (loan_amt > loan_bal) {
					alert("Please enter an amount less than or equal to the loan balance");
					field_var.style.color = "red";
					field_var.focus();
				}
			}
		}
		update_total();
		update_client(id,inp_fld.value);
	}
	function update_total() {
		var total_amount = 0;
		var x=document.getElementById("selected_loans");
		for (var i=0;i<x.length;i++) {
			var field_name = x.elements[i].name;
			if (field_name.substr(0,11) == "loan_amount") {
				total_amount = total_amount + (x.elements[i].value * 1);
			}
		}
		/*
		var field_var=document.getElementById("donation_amount");
		field_var.style.color = "black";
		if (! IsNumeric(field_var.value)) {
			alert("Please enter a valid number");
			field_var.value="0";
			field_var.style.color = "red";
			field_var.focus();
			return;
		}
		var donation_amt = field_var.value * 1;
		if (donation_amt > 0) {
			total_amount = total_amount + donation_amt;
			field_var.value = donation_amt.toFixed(2);
		}
		*/
		document.getElementById("total_amount").value = '$ ' + total_amount.toFixed(2);
		/*
		var reinvest = document.getElementById("reinvest");
		if (reinvest != null)
			if (document.getElementById("reinvest").checked)
				reinvest_balance();
		*/
	}
	
	function reinvest_balance() {
		if (document.getElementById("reinvest").checked) {
			var balance_amt = document.getElementById("balance_amt").value * 1;
			var total_amount = document.getElementById("total_amount").value * 1;
			if (balance_amt < total_amount) {
				total_amount = (total_amount - balance_amt).toFixed(2);
				balance_amt = 0;
			} else {
				balance_amt = (balance_amt - total_amount).toFixed(2);
				total_amount = 0;
			}
			document.getElementById("total_amount").value = total_amount * 1.00;
			document.getElementById("new_balance").value = balance_amt;
		} else {
			var balance_amt = document.getElementById("balance_amt").value;
			document.getElementById("new_balance").value = balance_amt;
			update_total();
		}
	}

	function add_donation (field_var) {
		if (! IsNumeric(field_var.value)) {
			alert("Please enter a valid number");
			field_var.value="0";
			field_var.style.color = "red";
			field_var.focus();
		}
		var donation_amt = field_var.value * 1;
		if (donation_amt > 0) {
			field_var.value = donation_amt.toFixed(2);
			var total_amt =  document.getElementById("original_total").value * 1.0;
			total_amt += donation_amt;
			document.getElementById("total_amount").value = total_amt.toFixed(2);
		}
	}
function check_loan_list() {
	var page_name = document.getElementById("page_name").value;
	if (page_name == "pay_01") return true;
	if (page_name == "pay_02") return true;
	var id = 1;
	var loans=0;
	var okay = true;
	var cc = document.getElementById("removed_" + id);
	while (cc != null) {
		removed = cc.value;
		if (removed == 0) {
			loans += 1;
			var dd = document.getElementById("loan_amount[" + id + "]");
			var thisAmt = dd.value;
			if (thisAmt == "") {
				alert("Please enter a loan amount");
				dd.focus();
				return false;
			}
			if (! IsNumeric(thisAmt)) {
				alert("Please enter a valid amount");
				dd.value = 0;
				dd.focus();
				return false;
			}
			thisAmt = thisAmt * 1;
			if (thisAmt == 0) {
				alert("Please enter a loan amount");
				dd.focus();
				return false;
			}
		}
		id +=1;
		cc = document.getElementById("removed_" + id);
	}
	if (loans == 0) {
		alert("You have not selected any loans yet.\n\rIf you are trying to make a donation,\n\rplease go to the home page and click on Donate Now.");
		return false;
	}
	return true;
}
function remove_client(id,client_id,session_name,session_value) {
	var cc = document.getElementById("removed_" + id);
	cc.value = 1;
	var dd = document.getElementById("client_" + id);
	dd.style.display='none';
	var dd = document.getElementById("loan_amount[" + id + "]");
	dd.value = 0;
	var dd = document.getElementById("list_delete[" + id + "]");
	dd.value = client_id;
	update_fieldval(dd,id);
	xmlHttp2=GetXmlHttpObject();
	if (xmlHttp2==null) {
		alert ("002: Unable to get information!");
		return;
	} 
   var url="h3o_call.php";
   url=url+"?clients_id="+client_id;
	url=url+"&action=list_delete";
   url=url+"&sid="+Math.random();
	url=url+ "&" + session_name +"="+session_value;
	// alert(url);
   xmlHttp2.onreadystatechange=client_deleted
   xmlHttp2.open("GET",url,doSync)
   xmlHttp2.send(null);
}
function client_deleted() {
   if (xmlHttp2.readyState==4 || xmlHttp2.readyState=="complete") {
   }
}
function update_client(id,client_id) {
	var cc = document.getElementById("removed_" + id);
	if (cc.value != 1) {
		var dd = document.getElementById("loan_amount[" + id + "]");
		xmlHttp2=GetXmlHttpObject();
		if (xmlHttp2==null) {
			alert ("002: Unable to get information!");
			return;
		} 
		var session_name = document.getElementById("session_name").value;
		var session_id = document.getElementById("session_id").value;
	   var url="h3o_call.php";
	   url=url+"?clients_id="+client_id;
		url=url+"&action=list_update";
		url=url+"&loan_amount="+dd.value;
	   url=url+"&sid="+Math.random();
		url=url+ "&" + session_name +"="+session_id;
		// alert(url);
	   xmlHttp2.onreadystatechange=client_updated
	   xmlHttp2.open("GET",url,doSync)
	   xmlHttp2.send(null);
	}
}
function client_updated() {
   if (xmlHttp2.readyState==4 || xmlHttp2.readyState=="complete") {
		// alert(xmlHttp2.responseText);
   }
}
function check_logged_in(session_name,session_value) {
	var pp=document.getElementById("progress_box");
	pp.style.display="";
	xmlHttp2=GetXmlHttpObject();
	if (xmlHttp2==null) {
		alert ("002: Unable to get information!");
		return;
	} 
   var url="h3o_call.php";
	url=url+"?action=check_login";
   url=url+"&sid="+Math.random();
	url=url+ "&" + session_name +"="+session_value;
	// alert(url);
   xmlHttp2.onreadystatechange=check_logged;
   xmlHttp2.open("GET",url,doSync)
   xmlHttp2.send(null);
}
function check_logged () {
   if (xmlHttp2.readyState==4 || xmlHttp2.readyState=="complete") {
		var pp=document.getElementById("progress_box");
		pp.style.display="none";
		var i = xmlHttp2.responseText;
		// alert(i);
		if (i == 0) {
			// var c = document.getElementById("saved_donation");
			// c.value = document.getElementById("donation_amount").value;
			var b=document.getElementById("login_box");
			b.style.display="";
			document.getElementById("email_address").focus();
		} else {
			var formVar = document.getElementById("selected_loans");
			formVar.submit();
		}
   }
}
function check_name (session_name,session_value) {
	var fldVar = document.getElementById("nick_name");
	var fieldVal = fldVar.value;
	if (fieldVal == "") return;
	xmlHttp2=GetXmlHttpObject();
	if (xmlHttp2==null) {
		alert ("002: Unable to get information!");
		return;
	} 
   var url="h3o_call.php";
	url=url+"?action=check_name";
	url=url+"&name=" + fieldVal;
	url=url+ "&" + session_name +"="+session_value;
   url=url+"&sid="+Math.random();
	url=url+ "&" + session_name +"="+session_value;
	// alert(url);
   xmlHttp2.onreadystatechange=name_checked
   xmlHttp2.open("GET",url,doSync)
   xmlHttp2.send(null);
}
function name_checked () {
   if (xmlHttp2.readyState==4 || xmlHttp2.readyState=="complete") {
		var i = xmlHttp2.responseText;
		// alert(i);
		if (i == 0) {
		} else {
			alert("Sorry, that name is taken");
		}
   }
}
function validate_registration (frm_var) {
	if (frm_var.h3o_firstname.value == "") {
		alert("Please enter your first name");
		frm_var.h3o_firstname.focus();
		return false;
	}	
	if (frm_var.h3o_lastname.value == "") {
		alert("Please enter your last name");
		frm_var.h3o_lastname.focus();
		return false;
	}	
	if (frm_var.email_address.value == "") {
		alert("Please enter your email address");
		frm_var.email_address.focus();
		return false;
	}
	if (! validate_email(frm_var.email_address.value)) {
		alert("The email address is not in the valid format.");
		frm_var.email_address.focus();
		return false;
	}
	if (frm_var.password.value == "") {
		alert("Please enter your password");
		frm_var.password.focus();
		return false;
	}
	if (frm_var.confirm_password.value == "") {
		alert("Your passwords do not match");
		frm_var.confirm_password.focus();
		return false;
	}
	if (frm_var.confirm_password.value != frm_var.password.value) {
		alert("Your passwords do not match");
		frm_var.password.focus();
		return false;
	}
	if (frm_var.security_code.value == "") {
		alert("Please enter the security code from the image displayed");
		frm_var.security_code.focus();
		return false;
	}
	if (! frm_var.h3o_confirm.checked) {
		alert("You must read and accept h3o Terms and Conditions");
		frm_var.h3o_confirm.focus();
		return false;
	}
	return true;
}
function validate_profile(frm_var) {
	if (frm_var.new_password.value != "" || frm_var.confirm_password.value != "") {
		if (frm_var.password.value == "") {
			alert("You must enter your current password");
			frm_var.password.focus();
			return false;
		}
		if (frm_var.confirm_password.value != frm_var.new_password.value) {
			alert("Your passwords do not match");
			frm_var.confirm_password.focus();
			return false;
		}
	}
	if (frm_var.street_address.value == "") {
		alert("Please enter your street address");
		frm_var.street_address.focus();
		return false;
	}
	if (frm_var.address_city.value == "") {
		alert("Please enter your city name");
		frm_var.address_city.focus();
		return false;
	}
	if (frm_var.address_state.value == "") {
		alert("Please enter your state/province name");
		frm_var.address_state.focus();
		return false;
	}
	if (frm_var.postcode.value == "") {
		alert("Please enter your post/zip code");
		frm_var.postcode.focus();
		return false;
	}
	if (frm_var.country.value == "") {
		alert("Please select your country");
		frm_var.country.focus();
		return false;
	}
	return true;
}
function validate_user_info (frm_var) {
	if (frm_var.email_address.value == "") {
		alert("Please enter your email address");
		frm_var.email_address.focus();
		return false;
	}
	if (frm_var.password.value == "") {
		alert("Please enter your password");
		frm_var.password.focus();
		return false;
	}
	var pp=document.getElementById("login_box");
	pp.style.display="none";
	var pp=document.getElementById("progress_box");
	pp.style.display="";
   frm_var.target = "submit_target";
	return true;
}
function forgot_password() {
	var frm_var = document.getElementById("login_form");
	if (frm_var.email_address.value == "") {
		alert("Please enter your email address");
		frm_var.email_address.focus();
		return;
	}
	frm_var.action = frm_var.action + "&forgot=1";
	frm_var.submit();
	// alert(frm_var.action);
	return;
}
function cancel_login() {
	var pp=document.getElementById("login_box");
	pp.style.display="none";
}
function logme_in (session_name,session_value) {
	var pp=document.getElementById("progress_box");
	pp.style.display="";
	xmlHttp2=GetXmlHttpObject();
	if (xmlHttp2==null) {
		alert ("002: Unable to get information!");
		return;
	} 
   var url="h3o_login.php";
	url=url+"?action=process";
   url=url+"&sid="+Math.random();
	url=url+ "&" + session_name +"="+session_value;
	// alert(url);
   xmlHttp2.onreadystatechange=me_logged
   xmlHttp2.open("GET",url,doSync)
   xmlHttp2.send(null);
}
function me_logged() {
   if (xmlHttp2.readyState==4 || xmlHttp2.readyState=="complete") {
		var pp=document.getElementById("progress_box");
		pp.style.display="none";
		var i = xmlHttp2.responseText;
		if (i == 0) {
			var b=document.getElementById("login_box");
			document.getElementById("login_id").focus();
		}
   }
}
function get_clients (num) {
	// Get a number of random clients
	xmlHttp2=GetXmlHttpObject();
	if (xmlHttp2==null) {
		alert ("get_client: Unable to get information!");
		return;
	} 
	var url="h3o_call.php";
	url=url+"?action=h3o_get_clients";
	url=url+"&num="+num;
	url=url+"&sid="+Math.random();
	// alert(url);
	xmlHttp2.onreadystatechange=got_clients
	xmlHttp2.open("GET",url,doSync)
	xmlHttp2.send(null);
}
function got_clients() {
   if (xmlHttp2.readyState==4 || xmlHttp2.readyState=="complete") {
		// alert(xmlHttp2.responseText);
		var b = document.getElementById("random_clients");
		b.innerHTML = xmlHttp2.responseText;
   }
}
function GetXmlHttpObject() {
var xmlHttp=null;
try {
	// Firefox, Opera 8.0+, Safari
	xmlHttp=new XMLHttpRequest();
	doSync = true;
} catch (e) {
	//Internet Explorer
	try {
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		doSync = false;
	} catch (e) {
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		doSync = false;
	}
}
return xmlHttp;
}
function loan_now() {
/*
	var clients_id=getURLParameter("clients_id");
	if (clients_id != "")
		h3o_goto ('h3o_client.php');
	else
		h3o_goto("h3o_loans.php");
	h3o_goto("h3o_loans_confirm.php");
		*/
	h3o_goto("h3o_paypal_payment.php");
}
function getURLParameter( name ) {  
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");  
	var regexS = "[\\?&]"+name+"=([^&#]*)";  
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );  
	if ( results == null )
		return "";  
	else
		return results[1];
}
function tep_session_param() {
	return '?osCsid='+h3oSid;
}
function h3o_href_link (link) {
	var urls = window.location.href.split('?');
	if (urls[1]) {
		var args = urls[1].split('=');
		if (args[1])
			return (link + "?" + urls[1]);
		else
			return (link);
	} else
		return (link);
}
function h3o_goto (link) {
	window.location.href = h3o_href_link (link);
}
function h3o_position (divName,x,y) {
	var b=document.getElementById(divName);
	var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body;
	var dsocleft=document.all? iebody.scrollLeft : pageXOffset;
	var dsoctop=document.all? iebody.scrollTop : pageYOffset;
	if (document.all||document.getElementById) {
		b.style.left=parseInt(dsocleft)+x+"px";
		b.style.top=dsoctop+y+"px";
	}
}
function h3o_help(link_name) {
	var link = "/help/" + link_name + ".html";
	var help_win = window.open(link,'h3o_help','resizable=1,scrollbars=1,left=50,top=50,width=800,height=600');
	if (help_win) {
		if (help_win.closed) {
			alert("A popup blocker closed the help window.\n\rPlase press the Ctrl key before clicking on the link.");
		} else {
			help_win.focus();
		}
	} else {
		alert("A popup blocker closed the help window.\n\rPlase press the Ctrl key before clicking on the link.");
	}
}
function validate_balance(fldVar,loan_balance) {
	var balance = loan_balance * 1.0;
	if (fldVar.value > balance) {
		alert("Please select an amount less than or equal the remaining loan balance");
		fldVar.value = 0;
		fldVar.style.color="red";
	}
}
function add_to_list(client_id, id) {
	var fldVar = document.getElementById("loan_amount" + id);
	var loan_amount = fldVar.value * 1.0;
	if (loan_amount == 0) {
		alert("Please select an amount to loan.\nYou will be able to change it later.");
		fldVar.focus();
		fldVar.style.color="red";
		return;
	}
	var progressImage = document.getElementById("progress_image" + id);
	progressImage.innerHTML='<img src="images/h3o/progress_kit.gif"/>Adding...';
	progressImage.style.display="";
	// Ready to fire it off.
	var params = "my_id=" + id + "&clients_id=" + client_id + "&loan_amount=" + loan_amount;
	h3o_call("h3o_add_client",params,added_toList,id);
}
function added_toList(responseText, id) {
	getSelectedClients(responseText);
	var p = document.getElementById("progress_image" + id);
	p.innerHTML='Added to your list';
	// p.style.display="none";
	var fldVar = document.getElementById("add_button" + id);
	fldVar.style.display="none";
	var fldVar = document.getElementById("added_button" + id);
	fldVar.style.display="";
}
function getSelectedClients (client_json) {
		// JSON Evaluation
		var b = document.getElementById("loan_list");
		b.innerHTML = "<i>None selected</i>";
		if (client_json.length==0) return;
		try {
		eval(client_json);
		var c = "";
		for (var i=0; i < client_info.clients.length; i++) {
			// alert(client_info.clients[i].client_name);
			c+='<div class="row" style="clear:both; width:100%;"><span class="client">';
			var client_link='h3o_client.php' + tep_session_param();
			c+='<a href="'+ client_link + '&clients_id=' + client_info.clients[i].clients_id + '">';
			if (client_info.clients[i].client_name.length > 20)
				c +=client_info.clients[i].client_name.substr(0,16) + "...";
			else
				c +=client_info.clients[i].client_name;
			c+='</a>';
			c+='</span><span class="loan_amount">';
			c+=client_info.clients[i].loan_amount;
			c+='</span></div>';
		}
		if (client_info.clients.length > 0) {
			c+='<div class="row" style="clear:both; width:100%;border-top:1px solid #000;"><span class="client total"><strong>Total Loan Amount:';
			c+='</span><span class="loan_amount total">' + client_info.total_amount;
			c+='<strong></span></div>';
			b.innerHTML = c;
			var pn = document.getElementById("pay_now");
			pn.style.display="";
		}
		} catch (e) {}
}
function h3o_client_loan () {
	var fld_var = document.getElementById("loan_select");
	if (fld_var.value == 0) {
		alert('Please select an amount to loan');
		fld_var.focus();
		return;
	}
	var loan_amount = fld_var.value;
	document.getElementById("loan_amount").value = loan_amount;
	document.loan_form.submit();
}
function process_donation () {
	var frmVar = document.getElementById("_xclick");
	frmVar.action = h3o_href_link("h3o_donation.php");
	frmVar.submit();
}
function upload_picture() {
   var frm1 = document.getElementById("upload_photo");
   frm1.target = "upload_target";
   frm1.submit();
}
function validate_address (form_var) {
	var request_amt = document.getElementById("request_amt").value;
	if (request_amt == "" || request_amt == 0) {
		alert("Please enter an amount to refund");
		document.getElementById("request_amt").focus();
		return false;
	}
	if (! IsNumeric(request_amt)) {
		alert("Please enter a valid amount to refund");
		document.getElementById("request_amt").focus();
		return false;
	}
	if (document.getElementById("street_address").value == "") {
		alert("Please enter your street address");
		document.getElementById("street_address").focus();
		return false;
	}
	if (document.getElementById("address_city").value == "") {
		alert("Please enter your city");
		document.getElementById("address_city").focus();
		return false;
	}
	if (document.getElementById("address_state").value == "") {
		alert("Please enter your state/province");
		document.getElementById("address_state").focus();
		return false;
	}	
	if (document.getElementById("postcode").value == "") {
		alert("Please enter your zip/postcode");
		document.getElementById("postcode").focus();
		return false;
	}	
	return true;
}
function cancel_confirm (link) {
	if (confirm("Are you sure you want to cancel this request?")) {
		location.href = link;
	}
	return false;
}
function h3o_call (method,parms,callback,parm) {
	xmlHttp2=GetXmlHttpObject();
	if (xmlHttp2==null) {
		alert ("get_client: Unable to get information!");
		return;
	}
	var url="h3o_call.php";
	url=url+"?action=" + method;
	url=url+"&osCsid=" + h3oSid;
	url=url+ '&' + parms;
	url=url+"&sid="+Math.random();
	xmlHttp2.onreadystatechange=h3o_echo;
	if (callback) {
		xmlHttp2.onreadystatechange=function () {
			if (xmlHttp2.readyState==4 || xmlHttp2.readyState=="complete") {
				// alert(xmlHttp2.responseText);
				callback(xmlHttp2.responseText,parm);
			}
		}
	}
	xmlHttp2.open("GET",url,doSync)
	xmlHttp2.send(null);
}
function h3o_echo () {
   if (xmlHttp2.readyState==4 || xmlHttp2.readyState=="complete") {
		alert(xmlHttp2.responseText);
   }
}
function show_h3o_help(ele) {
	var id = document.getElementById(ele);
	if (id != null) {
		h3o_position(ele,220,200);
		changeOpac(0,ele);
		id.style.display="";
		opacity(ele,0,100,500);
	}
}
function hide_h3o_help(ele) {
	var id = document.getElementById(ele);
	if (id) {
		opacity(ele,100,0,300);
		id.style.display='none';
	}
}