function xmlhttpPost(strURL,qstring,redirect) {



    var xmlHttpReq = false;



    var self = this;



    if (window.XMLHttpRequest) {



        self.xmlHttpReq = new XMLHttpRequest();



    } else if (window.ActiveXObject) {



        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");



    }



    self.xmlHttpReq.open('POST', strURL, true);



    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');



    switch(redirect) {



		case "Sup":



			self.xmlHttpReq.onreadystatechange = handleSignup;



		break;



		case "Ser":



			self.xmlHttpReq.onreadystatechange = handleSearch;



		break;



		case "Edt":



			self.xmlHttpReq.onreadystatechange = handleEditProfile;



		break;



		case "Pho":



			self.xmlHttpReq.onreadystatechange = handlePhotoAlbum;



		break;



		case "Fnd":



			self.xmlHttpReq.onreadystatechange = handleMyFriends;



		break;



		case "Blg":



			self.xmlHttpReq.onreadystatechange = handleMyBlogs;



		break;



		case "Alb":



			self.xmlHttpReq.onreadystatechange = handleMyAlbum;



		break;



		case "Hpg":



			self.xmlHttpReq.onreadystatechange = handleHomePage;



		break;



		case "Gbk":



			self.xmlHttpReq.onreadystatechange = handleGuestBook;



		break;



		case "Grp":



			self.xmlHttpReq.onreadystatechange = handleGroups;



		break;

		

		case "GrpNme":



			self.xmlHttpReq.onreadystatechange = handleGroupsName;



		break;



		case "Mbd":



			self.xmlHttpReq.onreadystatechange = handleMessageBoard;



		break;

case "Agr":



			self.xmlHttpReq.onreadystatechange = handleAdminGroups;



		break;

	}



    self.xmlHttpReq.send(qstring);



}



function changeStates(Func) {



	var country = document.getElementById('cmbCountry'+Func).value;



	document.getElementById('dvState'+Func).innerHTML = "&nbsp;Refreshing States...";



	if(Func == "Sup") {



		document.getElementById('dvCity'+Func).innerHTML = "&nbsp;Refreshing Cities...";



		document.getElementById('btnSubmit').disabled = true;



	}



	var qstring = "type=state&countryCode="+country+"&fun="+Func;



	xmlhttpPost('ajax/changestates.php',qstring,Func);



}



function changeCities(Func) {



	var country = document.getElementById('cmbCountry'+Func).value;



	var state = document.getElementById('cmbState'+Func).value;



	document.getElementById('dvCity'+Func).innerHTML = "&nbsp;Refreshing Cities...";



	if(Func == "Sup") { 



		document.getElementById('btnSubmit').disabled = true;



	}



	var qstring = "type=city&countryCode="+country+"&stateCode="+state+"&fun="+Func;



	xmlhttpPost('ajax/changestates.php',qstring,Func);



}



function validateControl(fieldName,fieldLabel,fieldType) {



	var fieldValue = fieldName.value;



	switch(fieldType) {



		case "text":



			if (fieldValue.length < 1) {



				alert(fieldLabel+" Required");



				fieldName.focus();



				return false;



			}



		break;



		case "dropdown":



			if (fieldValue = 0) {



				alert(fieldLabel+" Required");



				fieldName.focus();



				return false;



			}



		break;



		case "email":



			if (fieldValue.length < 1) {



				alert(fieldLabel+" Required");



				fieldName.focus();



				return false;



			} else {



				if(!checkEmail(fieldName))



					return false;



			}



		break;



		case "number":



			var valid = "0123456789";



			var ok = "yes";



			var temp;



			for (var i=0; i<fieldName.value.length; i++) {



				temp = "" + fieldName.value.substring(i, i+1);



				if (valid.indexOf(temp) == "-1") ok = "no";



			}



			if (ok == "no") {



				alert("Only numbers are accepted in "+fieldLabel+" field");



				fieldName.focus();



				return false;



		   }



		break;



		case "reqnumber":



			if (fieldValue.length < 1) {



				alert(fieldLabel+" Required");



				fieldName.focus();



				return false;



			} else {



				var valid = "0123456789";



				var ok = "yes";



				var temp;



				for (var i=0; i<fieldName.value.length; i++) {



					temp = "" + fieldName.value.substring(i, i+1);



					if (valid.indexOf(temp) == "-1") ok = "no";



				}



				if (ok == "no") {



					alert("Only numbers are accepted in "+fieldLabel+" field");



					fieldName.focus();



					return false;



			   }



			}



		break;



		case "password":



			if (fieldValue.length < 1) {



				alert(fieldLabel+" Required");



				fieldName.focus();



				return false;



			} else {



				var ok = "yes";



				var minLength = 6;



				var maxLength = 12;



				var valid = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";



				var temp;



				var error = "";



				var pw = fieldName.value;



				var length = fieldName.value.length;



				for (var j=0; j<length; j++) {



					temp = "" + pw.substring(j, j+1);



					if (valid.indexOf(temp) == "-1") ok = "no";



				}



				if (length != 0 && (length < minLength || length > maxLength)) { ok = "no"; }



				if (ok != "yes") {



					alert("Please enter a valid Password");



					fieldName.focus();



					return false;



				}



			}



		break;



		case "file":



			if (fieldValue.length > 1) {



				allowSubmit = false;



				extArray = reqExists;



				while (fieldValue.indexOf("\\") != -1)



				fieldValue = fieldValue.slice(fieldValue.indexOf("\\") + 1);



				var ext = fieldValue.slice(fieldValue.indexOf(".")).toLowerCase();



				for (var i = 0; i < extArray.length; i++) {



					if (extArray[i] == ext) { allowSubmit = true; break; }



				}



				if (allowSubmit == false) {



					alert("Invalid File Type");



					fieldName.focus();



					return false;



				}



			}



		break;

		case "url":

			if (fieldValue.length < 1) {

				alert(fieldLabel+" Required");

				fieldName.focus();

				return false;

			} else {

				var ok = "yes";

				var minLength = 6;

				var maxLength = 12;

				var valid = "abcdefghijklmnopqrstuvwxyz0123456789";

				var temp;

				var error = "";

				var pw = fieldName.value;

				var length = fieldName.value.length;

				for (var j=0; j<length; j++) {

					temp = "" + pw.substring(j, j+1);

					if (valid.indexOf(temp) == "-1") ok = "no";

				}

				if (ok != "yes") {

					alert("Please enter a valid URL");

					fieldName.focus();

					return false;

				}

			}

		break;



	}



	return true;



}



function checkEmail(object) {



	var emailStr = object.value;



	var emailPat=/^(.+)@(.+)$/



	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"



	var validChars="\[^\\s" + specialChars + "\]"



	var quotedUser="(\"[^\"]*\")"



	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/



	var atom=validChars + '+'



	var word="(" + atom + "|" + quotedUser + ")"



	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")



	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")



	var matchArray=emailStr.match(emailPat)



	if(emailStr.length < 1) {



		return true;



	}



	if (matchArray==null) {



		alert("Please enter a valid email address")



		object.focus();



		return false



	}



	var user=matchArray[1]



	var domain=matchArray[2]



	if (user.match(userPat)==null) {



		alert("The username doesn't seem to be valid.")



		object.focus();



		return false



	}



	var IPArray=domain.match(ipDomainPat)



	if (IPArray!=null) {



		  for (var i=1;i<=4;i++) {



			if (IPArray[i]>255) {



				alert("Destination IP address is invalid!")



				object.focus();



			return false



			}



		}



		return true



	}



	var domainArray=domain.match(domainPat)



	if (domainArray==null) {



		alert("The domain name doesn't seem to be valid.")



		object.focus();



		return false



	}



	var atomPat=new RegExp(atom,"g")



	var domArr=domain.match(atomPat)



	var len=domArr.length



	if (domArr[domArr.length-1].length<2 || 



    	domArr[domArr.length-1].length>3) {



   		alert("The address must end in a three-letter domain, or two letter country.")



		object.focus();



   		return false



	}



	if (len<2) {



		var errStr="This address is missing a hostname!"



   		alert(errStr)



		object.focus();



   		return false



	}



	return true;



}



function confirmLink(message) {



	var is_confirmed = confirm(message);



    return is_confirmed;



}



function checkForm(formname) {



	var error = "";



	for (i=0;i<formname.length;i++) {



		var tempobj=formname.elements[i];







		if (tempobj.id.substring(0,3)=="req") {



			if (tempobj.value=='') {



				var fieldlabel=tempobj.id.substring(4,20);



				fieldlabel=replaceChars(fieldlabel);



				error += "\n- "+fieldlabel+" field empty";



         	}



      	}



	}



	if (error != "") {



		error ="Request denied due to following errors\n" +



		"_____________________________\n" +



		error + "\n_____________________________" +



		"\nPlease re-enter and submit again!";



		alert(error);



		return false;



	}



	return true;



}



function replaceChars(entry) {



	out = "_"; // replace this



	add = " "; // with this



	temp = "" + entry; // temporary holder



	while (temp.indexOf(out)>-1) {



		pos= temp.indexOf(out);



		temp = "" + (temp.substring(0, pos) + add + 



		temp.substring((pos + out.length), temp.length));



	}



	return temp;



}



function checkdate(objName) {



	var datefield = objName;



	if (chkdate(objName) == false) {



		datefield.select();



		alert("That date is invalid.  Please try again.");



		datefield.focus();



		return false;



	} else {



		return true;



   }



}



function chkdate(objName) {



	var strDatestyle = "US";



	var strDate;



	var strDateArray;



	var strDay;



	var strMonth;



	var strYear;



	var intday;



	var intMonth;



	var intYear;



	var booFound = false;



	var datefield = objName;



	var strSeparatorArray = new Array("-"," ","/",".");



	var intElementNr;



	var err = 0;



	var strMonthArray = new Array(12);



	strMonthArray[0] = "Jan";



	strMonthArray[1] = "Feb";



	strMonthArray[2] = "Mar";



	strMonthArray[3] = "Apr";



	strMonthArray[4] = "May";



	strMonthArray[5] = "Jun";



	strMonthArray[6] = "Jul";



	strMonthArray[7] = "Aug";



	strMonthArray[8] = "Sep";



	strMonthArray[9] = "Oct";



	strMonthArray[10] = "Nov";



	strMonthArray[11] = "Dec";



	strDate = datefield.value;



	if (strDate.length < 1) {



		return true;



	}



	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {



		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {



			strDateArray = strDate.split(strSeparatorArray[intElementNr]);



			if (strDateArray.length != 3) {



				err = 1;



				return false;



			} else {



				strDay = strDateArray[0];



				strMonth = strDateArray[1];



				strYear = strDateArray[2];



			}



			booFound = true;



	   }



	}



	if (booFound == false) {



		if (strDate.length>5) {



			strDay = strDate.substr(0, 2);



			strMonth = strDate.substr(2, 2);



			strYear = strDate.substr(4);



	   }



	}



	if (strYear.length == 2) {



		strYear = '20' + strYear;



	}



	if (strDatestyle == "US") {



		strTemp = strDay;



		strDay = strMonth;



		strMonth = strTemp;



	}



	intday = parseInt(strDay, 10);



	if (isNaN(intday)) {



		err = 2;



		return false;



	}



	intMonth = parseInt(strMonth, 10);



	if (isNaN(intMonth)) {



		for (i = 0;i<12;i++) {



			if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {



				intMonth = i+1;



				strMonth = strMonthArray[i];



				i = 12;



			 }



		}



		if (isNaN(intMonth)) {



			err = 3;



			return false;



	   }



	}



	intYear = parseInt(strYear, 10);



	if (isNaN(intYear)) {



		err = 4;



		return false;



	}



	if (intMonth>12 || intMonth<1) {



		err = 5;



		return false;



	}



	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {



		err = 6;



		return false;



	}



	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {



		err = 7;



		return false;



	}



	if (intMonth == 2) {



		if (intday < 1) {



			err = 8;



			return false;



		}



		if (LeapYear(intYear) == true) {



			if (intday > 29) {



				err = 9;



				return false;



			}



		} else {



			if (intday > 28) {



				err = 10;



				return false;



			}



		}



	}



	datefield.value = intMonth + "/" + intday+"/" + strYear;



	return true;



}



function LeapYear(intYear) {



	if (intYear % 100 == 0) {



		if (intYear % 400 == 0) {



			return true;



		}



	} else {



		if ((intYear % 4) == 0) {



			return true;



		}



	}



	return false;



}



function confirmLink(message) {



	var is_confirmed = confirm(message);



    return is_confirmed;



}



function emailCheck(object,frm) {



	var emailStr = object.value;



	var emailPat=/^(.+)@(.+)$/



	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"



	var validChars="\[^\\s" + specialChars + "\]"



	var quotedUser="(\"[^\"]*\")"



	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/



	var atom=validChars + '+'



	var word="(" + atom + "|" + quotedUser + ")"



	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")



	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")



	var matchArray=emailStr.match(emailPat)



	if(emailStr.length < 1) {



		return true;



	}



	if (matchArray==null) {



		alert("Email address seems incorrect (check @ and s)")



		frm.object.select()



		frm.object.focus()



		



		return false;



	}



	var user=matchArray[1]



	var domain=matchArray[2]



	if (user.match(userPat)==null) {



		alert("The username doesn't seem to be valid.")



		object.focus();



		return false



	}



	var IPArray=domain.match(ipDomainPat)



	if (IPArray!=null) {



		  for (var i=1;i<=4;i++) {



			if (IPArray[i]>255) {



				alert("Destination IP address is invalid!")



				object.focus();



			return false



			}



		}



		return true



	}



	var domainArray=domain.match(domainPat)



	if (domainArray==null) {



		alert("The domain name doesn't seem to be valid.")



		object.focus();



		return false



	}



	var atomPat=new RegExp(atom,"g")



	var domArr=domain.match(atomPat)



	var len=domArr.length



	if (domArr[domArr.length-1].length<2 || 



    	domArr[domArr.length-1].length>3) {



   		alert("The address must end in a three-letter domain, or two letter country.")



		object.focus();



   		return false



	}



	if (len<2) {



		var errStr="This address is missing a hostname!"



   		alert(errStr)



		object.focus();



   		return false



	}



	return true;



}



function formatInput(object) {



	var string = object.value;



	filteredValues = "#$%^&*<>?";



	var i;



	var returnString = "";



	for (i = 0; i < string.length; i++) {



		var c = string.charAt(i);



		if (filteredValues.indexOf(c) == -1) returnString += c;



	}



	string = returnString;



	var returnString = "", flag = 0;



	for (i = 0; i < string.length; i++) {



		if (string.charAt(i) != " ") {



			returnString += string.charAt(i);



			flag = 0;



		} else {



			if(flag == 0) {



				returnString+= " ";



				flag = 1;



      		}



   		}



	}



	string = returnString;



	while(''+string.charAt(0)==' ')string=string.substring(1,string.length);



	while(''+string.charAt(string.length-1)==' ')string=string.substring(0,string.length-1);



	object.value = string;



}



function valNumber(field) {



	var valid = "0123456789"



	var ok = "yes";



	var temp;



	for (var i=0; i<field.value.length; i++) {



		temp = "" + field.value.substring(i, i+1);



		if (valid.indexOf(temp) == "-1") ok = "no";



	}



	if (ok == "no") {



		alert("Only numbers are accepted!");



		field.focus();



		field.select();



   }



}



extArray = new Array(".gif", ".jpg", ".png");



function LimitAttach(form, field) {



	allowSubmit = false;



	var file = field.value;



	if (!file) return;



	while (file.indexOf("\\") != -1)



	file = file.slice(file.indexOf("\\") + 1);



	ext = file.slice(file.indexOf(".")).toLowerCase();



	for (var i = 0; i < extArray.length; i++) {



		if (extArray[i] == ext) { allowSubmit = true; break; }



	}



	if (allowSubmit == false) {



		alert("Invalid File Type");



		field.focus();



		field.select();



	}



}



function checkPhoto(fieldName) {



	var fieldValue = fieldName.value;



	allowSubmit = false;



	extArray = new Array(".jpg",".gif",".png",".jpeg");



	while (fieldValue.indexOf("\\") != -1)



	fieldValue = fieldValue.slice(fieldValue.indexOf("\\") + 1);



	var ext = fieldValue.slice(fieldValue.indexOf(".")).toLowerCase();



	for (var i = 0; i < extArray.length; i++) {



		if (extArray[i] == ext) { allowSubmit = true; break; }



	}



	if (allowSubmit == false) {



		alert("Invalid File Type");



		fieldName.focus();



		return false;



	}



	return true;



}