var http_request = false;

function try_XMLHttpRequest() {
	if ( window.XMLHttpRequest ) {// Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if ( http_request.overrideMimeType ) http_request.overrideMimeType('text/plain');
	}
	else if ( window.ActiveXObject ) { // IE
		try 
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {}
		}
	}
}

function login()
{
	vUName = document.getElementById("sliding_login_uname").value;
	vPWord = document.getElementById("sliding_login_pword").value;
	vRemember = document.getElementById("sliding_login_rememberme").value;
	vURL = "includes/login.php?mode=login&uname=" + vUName + "&pword=" + vPWord + "&remember=" + vRemember;
	try_XMLHttpRequest();
	if ( !http_request ) {
		if ( document.getElementById("sliding_login_error01") ) document.getElementById("sliding_login_error01").innerHTML = "Unable to connect to database.";
		return false;
	}
	http_request.onreadystatechange = function() {
		if ( http_request.readyState == 4 ) {
			if ( http_request.status == 200 ) {
				vResults = http_request.responseText;
				if ( vResults != 'Your login is incorrect.' ) {
					aResults = vResults.split('|');
					if ( aResults.length > 2 ) {
						document.cookie='u='+aResults[1]+'; expires'+aResults[2];
					}
					else if ( aResults.length > 1 ) {
						document.cookie='u='+aResults[1];
					}
					window.location = aResults[0];
				}
				else {
					if ( document.getElementById("sliding_login_error01") ) {
						document.getElementById("sliding_login_box_status01").style.display = 'none';
						document.getElementById("sliding_login_box_error01").style.display = 'block';
						document.getElementById("sliding_login_error01").innerHTML = http_request.responseText;
					}
				}
			}
			else if ( http_request.status == 500 ) {
				if ( document.getElementById("sliding_login_error01") ) {
					document.getElementById("sliding_login_box_status01").style.display = 'none';
					document.getElementById("sliding_login_box_error01").style.display = 'block';
					document.getElementById("sliding_login_error01").innerHTML = http_request.responseText;
				}
			}
			else {
				if ( document.getElementById("sliding_login_error01") ) {
					document.getElementById("sliding_login_box_status01").style.display = 'none';
					document.getElementById("sliding_login_box_error01").style.display = 'block';
					document.getElementById("sliding_login_error01").innerHTML = http_request.responseText;
				}
			}
		}
		else {
			 //document.getElementById("sliding_login_error01").removeClass().addClass('messagebox').text('Validating....').fadeIn(1000);
			document.getElementById("sliding_login_box_error01").style.display = 'none';
			document.getElementById("sliding_login_box_status01").style.display = 'block';
			document.getElementById("sliding_login_status01").innerHTML = "Checking...";
		}
	}
	http_request.open('POST', vURL, true);
	http_request.send(vURL);
}

function event_create_ajax(vName) {
	vURL = "events_control.php?area=new&mode=add&name=" + vName;
	try_XMLHttpRequest();
	if ( !http_request ) {
		if ( document.getElementById("error_balloon") ) {
			document.getElementById("error_balloon_content").innerHTML = "Unable to connect to database.";
			set_balloon(document.getElementById("event_name"),document.getElementById("error_balloon"));
		}
		return false;
	}
	http_request.onreadystatechange = function() {
		if ( http_request.readyState == 4 ) {
			if ( http_request.status == 200 ) {
				vResults = http_request.responseText;
				if ( vResults ) {
					window.location = 'events.php?area=edit&id_event=' + vResults;
				}
				else {
					if ( document.getElementById("error_balloon") ) {
						document.getElementById("error_balloon_content").innerHTML = "Unable to save event to database.";
						set_balloon(document.getElementById("event_name"),document.getElementById("error_balloon"));
					}
				}
			}
			else if ( http_request.status == 500 ) {
				if ( document.getElementById("error_balloon") ) {
					document.getElementById("error_balloon_content").innerHTML = http_request.responseText;
					set_balloon(document.getElementById("event_name"),document.getElementById("error_balloon"));
				}
			}
			else {
				if ( document.getElementById("error_balloon") ) {
					document.getElementById("error_balloon_content").innerHTML = http_request.responseText;
					set_balloon(document.getElementById("event_name"),document.getElementById("error_balloon"));
				}
			}
		}
		else {
			
		}
	}
	http_request.open('POST', vURL, true);
	http_request.send(vURL);
}

function field_required(Obj) {
	if ( !Obj.value ) { /* Only bother to check if value is empty */
		var class_array = Obj.className.split(" ");
		for ( i=0;i<class_array.length;i++ ) {
			if ( class_array[i] == "required" && !Obj.value ) {
				return true;
			}
		}
	}
}

function field_update(Obj,vTable,vFType,id) {
	alert("Name = " + Obj.name + " | ID = " + Obj.id);
	if ( Obj.name ) {
		vURL = "ajax_general.php?area=update&id=" + id + "&table=" + vTable + "&ftype=" + vFType + "&field=" + Obj.name + "&value=" + escape(Obj.value);
		if ( field_required(Obj) ) {
			if ( document.getElementById("error_balloon") ) {
				document.getElementById("error_balloon_content").innerHTML = "This is a required field and cannot be left empty.";
				alert(Obj.id);
				set_balloon(document.getElementById(Obj.id),document.getElementById("error_balloon"));
			}
		}
		else {
			try_XMLHttpRequest();
			if ( !http_request ) {
				if ( document.getElementById("error_balloon") ) {
					document.getElementById("error_balloon_content").innerHTML = "Unable to connect to database.";
					set_balloon(document.getElementById(Obj.id),document.getElementById("error_balloon"));
				}
			}
			else {
				http_request.onreadystatechange = function() {
					if ( http_request.readyState == 4 ) {
						if ( http_request.status == 200 ) {
							vResults = http_request.responseText;
							if ( !vResults ) {
								//alert("Done.");
							}
							else {
								if ( document.getElementById("error_balloon") ) {
									document.getElementById("error_balloon_content").innerHTML = http_request.responseText;
									set_balloon(document.getElementById(Obj.id),document.getElementById("error_balloon"));
								}
							}
						}
						else if ( http_request.status == 500 ) {
							if ( document.getElementById("error_balloon") ) {
								document.getElementById("error_balloon_content").innerHTML = http_request.responseText;
								set_balloon(document.getElementById(Obj.id),document.getElementById("error_balloon"));
							}
						}
						else {
							if ( document.getElementById("error_balloon") ) {
								document.getElementById("error_balloon_content").innerHTML = http_request.responseText;
								set_balloon(document.getElementById(Obj.id),document.getElementById("error_balloon"));
							}
						}
					}
					else {
						
					}
				}
				http_request.open('POST', vURL, true);
				http_request.send(vURL);
			}
		}
		/*
		for (var key in aObj)
			alert(key + ': ' + aObj[key]);
		*/
	}
}

var bAuto_Complete = false;

function auto_complete(vInput, vID, vSearch_Filter, vID_Event) {
	filter = vSearch_Filter.value;

	if ( vID_Event == null || vID_Event == "null" ) {
		vID_Event = "noevent";
	}

	if ( vInput != "" ) {
		try_XMLHttpRequest();
		if ( !http_request ) {
			alert("Sorry, no ajax support!");
		}
		else {
			var url = "includes/auto_complete.php";
			url = url + "?input=" + vInput;
			url = url + "&id=" + vID;
			url = url + "&fby=" + filter;
			url = url + "&id_event=" + vID_Event;
			url = url + "&rid" + Math.random();
			http_request.onreadystatechange = stateChanged;
			http_request.open("GET", url, true);
			http_request.send(null);
		}
	} else {
		document.getElementById('auto_complete_box').style.display = "none";
		bAuto_Complete = false;
	}
}

function stateChanged() {
	if ( http_request.readyState == 4 ) {
		var dd = document.getElementById('auto_complete_box');
		if ( bAuto_Complete == false ) {
			/*
			dd = document.createElement('div');
			dd.setAttribute('id',"auto_complete_box");
			dd.className="auto_complete_box";
			
			dd.innerHTML = http_request.responseText;
			document.body.appendChild(dd);
			*/
			dd.style.display = "block";
			dd.style.position = "absolute";
			dd.style.zIndex = 100;
			dd.innerHTML = http_request.responseText;
			bAuto_Complete = true;
		} else {
			dd.innerHTML = http_request.responseText;
		}
		
		if ( http_request.responseText == "!null!norecord!" ) {
			dd.style.display = "none";
			bAuto_Complete = false;
		}
	}
}

function set_paid(vSetting, vID, vGroup, vInvoice) {
	if ( vSetting != "" ) {
//		vType = document.getElementById("type_paid").value;
//		vComments = document.getElementById("comments").value;
		
		vType = document.getElementById("type_paid").value;
		vComments = document.getElementById("comments").value;
		vCheckNumber = document.getElementById("check_number").value;
		
		try_XMLHttpRequest();
		if ( !http_request ) {
			alert("Sorry, no ajax support!");
		}
		else {
			vURL = "ajax_general.php?area=invoice&set=" + vSetting + "&id=" + vID + "&gr=" + vGroup + "&inv=" + vInvoice + "&type_paid=" + vType + "&comments=" + vComments + "&check_number=" + vCheckNumber + "&rid" + Math.random();
			http_request.onreadystatechange = function() {
				if ( http_request.readyState == 4 ) {
					if ( http_request.status == 200 ) {
						vResults = http_request.responseText;
						if ( !vResults ) {
							var id_array = vID.split(",");
							for ( i=0;i<id_array.length;i++ ) {
								if ( vSetting == "y" ) {
									document.getElementById("td_paid_"+id_array[i]).style.backgroundColor = "#ccffcc";
									document.getElementById("icon_paid_"+id_array[i]).style.backgroundColor = "#ccffcc";
									document.getElementById("td_desc_"+id_array[i]).style.backgroundColor = "#ccffcc";
									document.getElementById("td_amt_"+id_array[i]).style.backgroundColor = "#ccffcc";
									//document.getElementById("td_paid_"+id_array[i]).innerHTML = "Paid";
									document.getElementById("icon_paid_"+id_array[i]).innerHTML = "<a href=\"javascript:void(0);\" onClick=\"set_paid('n', '"+id_array[i]+"', '', '');\"><img src=\"themes/ezwe/icon_set_not_paid.png\" width=\"32\" height=\"32\" alt=\"Set As Not Paid\" title=\"Set As Not Paid\" border=\"0\"></a>";
								}
								if ( vSetting == "n" ) {
									document.getElementById("td_paid_"+id_array[i]).style.backgroundColor = "#ffffff";
									document.getElementById("icon_paid_"+id_array[i]).style.backgroundColor = "#ffffff";
									document.getElementById("td_desc_"+id_array[i]).style.backgroundColor = "#ffffff";
									document.getElementById("td_amt_"+id_array[i]).style.backgroundColor = "#ffffff";
									//document.getElementById("td_paid_"+id_array[i]).innerHTML = "Not Paid";
									document.getElementById("icon_paid_"+id_array[i]).innerHTML = "<a href=\"javascript:void(0);\" onClick=\"set_paid('y', '"+id_array[i]+"', '', '');\"><img src=\"themes/ezwe/icon_set_paid.png\" width=\"32\" height=\"32\" alt=\"Set As Paid\" title=\"Set As Paid\" border=\"0\"></a>";
								}
							}
						}
						else {
							alert(vResults);
							//if ( document.getElementById("error_balloon") ) {
							//	document.getElementById("error_balloon_content").innerHTML = http_request.responseText;
							//	set_balloon(document.getElementById(Obj.id),document.getElementById("error_balloon"));
							//}
						}
					}
					else if ( http_request.status == 500 ) {
						alert(http_request.responseText);
						//if ( document.getElementById("error_balloon") ) {
						//	document.getElementById("error_balloon_content").innerHTML = http_request.responseText;
						//	set_balloon(document.getElementById(Obj.id),document.getElementById("error_balloon"));
						//}
					}
					else {
						alert(http_request.responseText);
						//if ( document.getElementById("error_balloon") ) {
						//	document.getElementById("error_balloon_content").innerHTML = http_request.responseText;
						//	set_balloon(document.getElementById(Obj.id),document.getElementById("error_balloon"));
						//}
					}
				}
				else {
					
				}
			}
			http_request.open('POST', vURL, true);
			http_request.send(vURL);
		}
	}
}

/**
 * Sends invoice information to the specified e-mail address
 * @param vInvoice_Number 	The number of the invoice to mail out
 * @return
 */
function send_invoice( vInvoice_Number ) {
	
	var answer = confirm("Press OK to send an e-mail to the group leader with their total amount paid and current balance due or you can Cancel.");
	if ( answer ) {
	
		if ( vInvoice_Number != "" ) {
			try_XMLHttpRequest();
			
			if ( !http_request ) {
				alert("Sorry, no ajax support!");
			}
			else {
				vURL = "ajax_general.php?area=invoice";
				vURL = vURL + "&mode=mail_invoice";
				vURL = vURL + "&invoice_number=" + vInvoice_Number;
				vURL = vURL + "&rid" + Math.random();
				
				http_request.onreadystatechange = function() {
					if ( http_request.readyState == 4 ) {
						if ( http_request.status == 200 ) {
							vResults = http_request.responseText;
							
							if ( vResults ) {
								//	alert(vResults);
								document.getElementById('mail_notification').innerHTML = vResults;
							}
						}
					}
				}
				
				http_request.open('POST', vURL, true);
				http_request.send(vURL);
			}
		}
	}
	else {
		
	}
}