/*===============================================================
 * frontend.js 
 * 	- by Bok S. Choi(bchoi@computopia.com)
 *
 * License (http://www.opensource.org/licenses/mit-license.php)
 * Copyright (c) 2007 Computopia
 *===============================================================*/

function doFontSmall(linkobj) {
	if (hxj_GetCookie("fsize") != "") {
		hxj_SetCookie("fsize", "", -60);
		linkobj.href = window.location.href;
		return true;
	}
	
	return false;
}

function doFontLarge(linkobj) {
	if (hxj_GetCookie("fsize") == "") {
		hxj_SetCookie("fsize", "large");
		linkobj.href = window.location.href;
		return true;
	}
	
	return false;
}

function doSearchCalendar(widgetname, widgetid, query) {
	var strGen1 = new hxjStringBuilder(",");    
	var strGen2 = new hxjStringBuilder(","); 
	var strFlt = new hxjStringBuilder("&");     
	var divcatmap = hxj_FindObject("DIV_" + widgetid + "_CATMAP");
	var divevtmap = hxj_FindObject("DIV_" + widgetid + "_EVTMAP");
	var skeynode = hxj_FindObject("SKEY_" + widgetid);
		
    var skey = skeynode.value.trim();
    var fltcatid = "";
    var fltevttype = "";
    
	if (divcatmap != null) {
	    var inputs = divcatmap.getElementsByTagName("input");
	    for (var i = 0, j = 0; i < inputs.length; i++) {
			if (inputs[i].checked == true) 
			    strGen1.append(inputs[i].value);
	   	}
	   	
	   	fltcatid = strGen1.toString();
	   	if (fltcatid.length <= 0) {
	   		alert("Please select one or more categories you want to customize.");
    		return false;
	   	}
    }
    
    if (divevtmap != null) {
	    var inputs = divevtmap.getElementsByTagName("input");
	    for (var i = 0, j = 0; i < inputs.length; i++) {
			if (inputs[i].checked == true) 
			    strGen2.append(inputs[i].value);
	   	}
	   	
	   	fltevttype = strGen2.toString();
	   	if (fltevttype.length <= 0) {	
			alert("Please select one or more type of events you want to customize.");
	    	return false;
	    }
	}
   	    
    eval("_search_" + widgetid + "_Object.hide()");
    
    if (!hxj_IsNull(fltcatid))
    	strFlt.append("fltcatid=" + escape(fltcatid));    	
    if (!hxj_IsNull(fltevttype))
    	strFlt.append("fltevttype=" + escape(fltevttype));    
    if (!hxj_IsNull(skey))
    	strFlt.append("fltkey=" + escape(skey));
    
    var fltcal = strFlt.toString();
    if (!hxj_IsNull(fltcal))
    	query = query + "&fltcal=" + escape(fltcal);
    	
	hxj_DrawWidget(widgetname, widgetid, query);	
	return false;
}

function doResetCalendar(widgetname, widgetid, query) {
	eval("_search_" + widgetid + "_Object.hide()");
	hxj_DrawWidget(widgetname, widgetid, query);
	
	return false;
}

function doCheckLinksPassword(frm) {
	frm.catpwd.value = frm.catpwd.value.trim();
	if (frm.catpwd.value.length <= 0) {
		alert("Please enter a password.");
        frm.catpwd.focus();
        return false;
	}	
	
	if (frm.md5pwd.value != hex_md5(frm.catpwd.value)) {
		alert("Password does not match.");
        frm.catpwd.focus();
        return false;
	}
	
	// set a cookie for avoiding ask a password again
	var map = hxj_SplitStringMap(hxj_GetCookie("passlr"), ";");
	map.put(frm.categories.value, "1");
	hxj_SetCookie("passlr", map.toString(";"));
	
	if (frm.isformpost.value == "") {
		var div = hxj_FindObject(frm.categories.value);
		var dispstyle = div.getAttribute("dispstyle");
		
		var dom = hxj_ExecuteAjax(g_virtualPath + "/tool/index.do?widgetname=rescabinet&cmd=rander", "categories="+div.id+"&dispstyle="+dispstyle, false, true);
	    if (dom != null) {
	    	div.innerHTML = dom;   
	    }
	    
		return false;
	}
	
	return true;
}

function doInitResourceTab(tabber, tabidx) {
	var div = (tabidx != -1) ? tabber.tabs[tabidx].div : tabber;
	var dispstyle = hxj_SafeValue(div.getAttribute("dispstyle"), "");
	var hasicon = hxj_SafeValue(div.getAttribute("hasicon"), "");
	
	var dom = hxj_ExecuteAjax(g_virtualPath + "/tool/index.do?widgetname=rescabinet&cmd=rander", "categories="+div.id+"&dispstyle="+dispstyle+"&hasicon="+hasicon, false, true);
    if (dom != null) {
    	div.innerHTML = dom;   
    }
}

function doCheckFileCabinetPassword(frm) {
	frm.catpwd.value = frm.catpwd.value.trim();
	if (frm.catpwd.value.length <= 0) {
		alert("Please enter a password.");
        frm.catpwd.focus();
        return false;
	}	
	
	if (frm.md5pwd.value != hex_md5(frm.catpwd.value)) {
		alert("Password does not match.");
        frm.catpwd.focus();
        return false;
	}
	
	// set a cookie for avoiding ask a password again
	var map = hxj_SplitStringMap(hxj_GetCookie("passfm"), ";");
	map.put(frm.categories.value, "1");
	hxj_SetCookie("passfm", map.toString(";"));
	
	if (frm.isformpost.value == "") {
		var div = hxj_FindObject(frm.categories.value);
		var dispstyle = div.getAttribute("dispstyle");
		
		var dom = hxj_ExecuteAjax(g_virtualPath + "/tool/index.do?widgetname=filecabinet&cmd=rander", "categories="+div.id+"&dispstyle="+dispstyle, false, true);
	    if (dom != null) {
	    	div.innerHTML = dom;   
	    }
	    
		return false;
	}
	
	return true;
}

function doInitFileCabinetTab(tabber, tabidx) {
	var div = (tabidx != -1) ? tabber.tabs[tabidx].div : tabber;	
	var dispstyle = hxj_SafeValue(div.getAttribute("dispstyle"), "");
	var hasicon = hxj_SafeValue(div.getAttribute("hasicon"), "");

	var dom = hxj_ExecuteAjax(g_virtualPath + "/tool/index.do?widgetname=filecabinet&cmd=rander", "categories="+div.id+"&dispstyle="+dispstyle+"&hasicon="+hasicon, false, true);
    if (dom != null) {
    	div.innerHTML = dom;   
    }
}

// Reference from Chase Paymentech Orbital Gateway
function IsValidCardNo(sCardType, sCardNo) {
	//Step 1. Card Length Check
	if (sCardType == "AMEX") {
		if (sCardNo.length != 15)
			return false;
	}	
	else if (sCardType == "VISA") {
		if (sCardNo.length != 13 
				&& sCardNo.length != 16) {
			return false;
		}
	}
	else {
		if (sCardNo.length != 16) 
			return false;
	}	
	
	//Step 2. Card Prefix Check
	if (sCardType == "AMEX") {
		var sPrefix = sCardNo.substring(0, 2)
		if (sPrefix != "37" 
				&& sPrefix != "34") {
			return false;
		}
	}	
	else if (sCardType == "VISA") {
		var sPrefix = sCardNo.substring(0, 1)
		if (sPrefix != "4") 
			return false;
	}
	else if (sCardType == "Master") {
		var nPrefix = parseInt(sCardNo.substring(0, 2))
		switch (nPrefix) {
			case 36:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
				//OK valid prefix
				break;
			default:
				return false;
		}
	}
	else { //Discover	
		var nPrefix = parseInt(sCardNo.substring(0, 5))
		switch (nPrefix) {
			case 60110:
			case 60112:
			case 60113:
			case 60114:
			case 60119:
				//OK valid prefix
				break;
			default:
				nPrefix = parseInt(sCardNo.substring(0, 6))
				switch (nPrefix) {
					case 601174:
					case 601177:
					case 601178:
					case 601179:
						//OK valid prefix
						break;
					default:
						nPrefix = parseInt(sCardNo.substring(0, 3))
						if (nPrefix != 650)
							return false;
				}
		}
	}
		
	//Step3. MOD 10 Check Digit
	var sRevCardNo = "";
	var nCheck = 0, nSum = 0
	
	for (var i=sCardNo.length-1; i >= 0; i--) {
		sRevCardNo += sCardNo.charAt(i);
	}	

	for (var i=1; i < sRevCardNo.length; i++) {
		if ((i % 2) == 0) {
			nCheck = parseInt(sRevCardNo.charAt(i)) * 1
		}
		else {
			nCheck = parseInt(sRevCardNo.charAt(i)) * 2
		}
		
		if (nCheck >= 10) {
			var sCheck = nCheck + "";
			nCheck = parseInt(sCheck.charAt(0)) + parseInt(sCheck.charAt(1));
		}
		
		nSum += nCheck;
	}

	nCheck = nSum % 10;
	if (nCheck > 0)
		nCheck = 10 - nCheck;

	if (parseInt(sRevCardNo.charAt(0)) != nCheck)
		return false;

	return true;	
}

function doChangePayMethod(itemid, method) {
    var cardnode = hxj_FindObject(itemid + "_Payment_Card");
    var ponumnode = hxj_FindObject(itemid + "_Payment_PONum");
    var checknode = hxj_FindObject(itemid + "_Payment_MoneyOrder");
    var addrnode = hxj_FindObject(itemid + "_Payment_Address");
            
    cardnode.style.display = "none";
    ponumnode.style.display = "none";
    checknode.style.display = "none";
    addrnode.style.display = "none";
    
    switch (method) {
        case "credit":
            cardnode.style.display = "block";
                    
        case "invoice":
            addrnode.style.display = "block";
            break;
        
        case "check":
            checknode.style.display = "block";
            break;
            
        case "ponum":
            ponumnode.style.display = "block";
            break;    
    }
}

function doSubmitFormGen(objForm, catid) {
	var inputs = objForm.getElementsByTagName("input");
	var arrCardNo = new hxjArray();
	
	for (var i = 0; i < inputs.length; i++) {
		var inp = inputs[i];
		var isrequired = inp.getAttribute("isrequired");
		var checkid = inp.getAttribute("checkhidden");
		var fieldname = inp.getAttribute("fieldname");		
		var inptype = inp.type.toLowerCase();
		var checkval = true;
		
		if (inptype == "submit"
				|| inptype == "button"
				|| inptype == "image"
				|| inptype == "hidden") {
			continue;
		}
					
		if (hxj_IsNull(fieldname))
			fieldname = "value";
		
		if (!hxj_IsNull(checkid)) {
	        var checknode = hxj_FindObject(checkid);
	        if (checknode != null) {
	            if (checknode.style.display == "none")
	                checkval = false;
	        }
	    }
		
		inp.value = inp.value.trim();
		if (checkval && isrequired == "1") {
			if (inptype == "checkbox"
					|| inptype == "radio") {
				var fieldid = inp.getAttribute("fieldid");
				var fieldobj = hxj_FindObject(fieldid);
				if (hxj_GetCheckCount(fieldobj) <= 0) {
					alert("Please choose a option");
					fieldobj.style.border = "1px solid #6F1A1F";
					return false;
				}				
			}
			else if (inp.value.length <= 0) {
				alert("Please enter a " + fieldname);
				inp.focus();
				return false;
			}			
		}
		
		if (checkval && inp.value.length > 0) {
			if (fieldname == "PhoneNo") {
				if (!_oV.IsPhone(inp.value)) {
					alert("Please enter a valid " + fieldname);
					inp.focus();
					return false;
				}
			}
			else if (fieldname == "Email") {
				if (!_oV.IsEmail(inp.value)) {
					alert("Please enter a valid " + fieldname);
					inp.focus();
					return false;
				}
			}
			else if (fieldname == "URL") {
				if (!_oV.IsURL(inp.value)) {
					alert("Please enter a valid " + fieldname);
					inp.focus();
					return false;
				}
			}
			else if (fieldname == "CardNo") {
			    if (inp.value.length < 13) {
            		alert("Please make sure your credit card number is correct.");
            		inp.focus();
            		return false;
            	}
            	
            	var cardtype = hxj_FindObject(inp.getAttribute("cardtypefield"));
            	if (!IsValidCardNo(cardtype[cardtype.selectedIndex].value, inp.value)) {
    				alert("Your credit card number or type is invalid.\r\nPlease verify your information.");
    				inp.focus();
    				return false;
    			}
    			
    			arrCardNo.push(inp); 
			}
			else if (fieldname == "CardCVN") {
			    var cardtype = hxj_FindObject(inp.getAttribute("cardtypefield"));
			    if (cardtype[cardtype.selectedIndex].value == "AMEX") {
            		if (inp.value.length != 4) {
            			alert("Please make sure your credit card verification number.\r\nThe number must be 4 digits.");
            			inp.focus();
            			return false;
            		}
            	}
            	else {
            		if (inp.value.length != 3) {
            			alert("Please make sure your credit card verification number.\r\nThe number must be 3 digits.");
            			inp.focus();
            			return false;
            		}
            	}
			}
		}
	}
	
	for (var i=0; i < arrCardNo.length; i++) {
	    var inp = arrCardNo[i];
	    if (inp != null) {
	        var inplast = hxj_FindObject(inp.name + "_last4");

	        inplast.value = "************" + inp.value.substring(inp.value.length-4);
	        inp.value = AES.Encrypt(inp.value, objForm.formid.value, 128);
	    }
	}
	
	if (hxj_IsNull(objForm.actionurl.value)) {
		objForm.action = g_virtualPath + "/" + catid + "/formsubmit";
	}
	else {
		objForm.action = objForm.actionurl.value;
	}

	return true;
}

function doSubmitPoll(frm, ownerid, widgetid) {
	var ansid = hxj_GetCheckValue(frm);
	if (!ansid) {
		alert('Please choose an answer first!');
		return false;
	}
	
	var answer = "";
	if (ansid == "other") {
		answer = frm.other.value.trim();
		if (answer.length <= 0) {
			alert('Please enter your own answer!');
			frm.other.focus();
			return false;
		}		
	}
	
	hxj_DrawWidget('poll', widgetid, 'catid='+ ownerid + '&cmd=vote&ansid='+ansid+'&answer='+escape(answer));
	return false;
}

function doEnableAnonymousAlertBtn(btnid, checked) {
	var sendbtn = hxj_FindObject(btnid);
	if (sendbtn != null)
		sendbtn.disabled = (checked == true) ? false : true;	
}

function doSubmitAnonymousAlert(frm) {
	frm.where.value = frm.where.value.trim();
	if (frm.where.value.length <= 0) {
		alert("Please enter a location.");	
		frm.where.focus();
		return false;
	}
	
	frm.acttime.value = frm.acttime.value.trim();
	if (frm.acttime.value.length <= 0) {
		alert("Please enter a Date/Time of Action.");	
		frm.acttime.focus();
		return false;
	}
		
	frm.content.value = frm.content.value.trim();
	if (frm.content.value.length <= 0) {
		alert("Please enter a description.");	
		frm.content.focus();
		return false;
	}
	
	if (frm.ispwd.value == "1") {
		frm.apwd.value = frm.apwd.value.trim();
		if (frm.apwd.value.length <= 0) {
			alert("Please enter a District Sending Password.");	
			frm.apwd.focus();
			return false;
		}
		
		if (frm.mdpwd.value != hex_md5(frm.apwd.value)) {
			alert("Password does not match! Please enter a District Sending Password again.");	
			frm.apwd.focus();
			return false;
		}		
	}
	
	frm.action = g_virtualPath + "/tool/index.do?module=alerts&cmd=save";
	return true;
}

function doSaveReunion(host_id) {
	var frm = document.reunionForm;	
    var content = getWysiwyg("content").getHTML();
	var selnode = hxj_FindObject("SELECT_Files");  
	
	frm.title.value = frm.title.value.trim();
    if (frm.title.value.length <= 0) {
    	alert("Please enter the title of the reunion.");
        frm.title.focus();
        return false;    	
    }
    
	frm.clsyear.value = frm.clsyear.value.trim();
    if (frm.clsyear.value.length <= 0) {
    	alert("Please enter the class of year.");
        frm.clsyear.focus();
        return false;    	
    }
    
	frm.address.value = frm.address.value.trim();
    if (frm.address.value.length <= 0) {
    	alert("Please enter the address of the location.");
        frm.address.focus();
        return false;    	
    }
    
	frm.author.value = frm.author.value.trim();
    if (frm.author.value.length <= 0) {
    	alert("Please enter the author.");
        frm.author.focus();
        return false;    	
    }
    
	frm.authoremail.value = frm.authoremail.value.trim();
    frm.authoremail.value = frm.authoremail.value.toLowerCase();
    if (frm.authoremail.value.length <= 0
            || !_oV.IsEmail(frm.authoremail.value)) {
        alert("Email address is invalid format, please make sure email address.");
        frm.authoremail.focus();
        return false;
    }
    
    frm.authorphone.value = frm.authorphone.value.trim();
    if (frm.authorphone.value.length <= 0) {
    	alert("Please enter a phone number.");
        frm.authoremail.focus();
        return false;    	
    }
    
    for (var i = 0; i < selnode.options.length; i++) {
        var text = selnode.options[i].text;        
        var val = selnode.options[i].value;        
        var which = val.substr(0, val.indexOf(':'));
        var value = val.substr(val.indexOf(':')+1);
        
        if (which == "T") {
            frm.save_files.value += text;
            frm.save_files.value += ":";
            frm.save_files.value += value;
            frm.save_files.value += ";";
        }
    }
    
    frm.content.value = content.replaceAll("/temp/", "/" + host_id + "/filestore/");
    frm.target = "";
    frm.action = g_virtualPath + "/tool/index.do?module=alumni&task=reunion&cmd=save";
    frm.submit();
}

function doSaveSubscribe(frm) {
	if (frm.isrecvnews.checked == true) {
        if (hxj_GetCheckCount(hxj_FindObject("DIV_RecvNews")) <= 0) {
            alert("Please select one or more categories you want to receive news or events.");
            return false;
        }    
    }
    
    if (frm.isrecvalert != null
    		&& frm.isrecvalert.checked == true) {
        var alertdiv = hxj_FindObject("DIV_RecvAlert");
        
        if (hxj_GetCheckElementCount(alertdiv) > 0
	            && hxj_GetCheckCount(alertdiv) <= 0) {
	        alert("Please select one or more categories you want to receive emergency announcement.");	        
            return false;
        } 
        
        frm.ememail.value = frm.ememail.value.trim();
        frm.ememail.value = frm.ememail.value.toLowerCase();
        if (frm.ememail.value.length > 0
                && !_oV.IsEmail(frm.ememail.value)) {
            alert("Email address is invalid format, please make sure email address.");
            return false;
        }
        
        frm.emcell.value = frm.emcell.value.trim();
        if (frm.emcell.value.length > 0
                && !_oV.IsPhone(frm.emcell.value)) {
            alert("Please enter a valid cell phone number and provider.");
            return false;
        }
    }
    
    frm.action = g_virtualPath + "/tool/index.do?module=members&task=regist&cmd=subscribe";
    frm.submit();		
}

function doSearchStaffDir(frm, widgetid, page) {
	if (page != null)
		frm.pgstaff.value = page;
	
	hxj_DrawWidget("staffsearch", widgetid, hxj_BuildParamByForm(frm, "&", true));
	return false;
}

function doResetStaffDir(widgetid) {
    var frm = hxj_FindObject("FORM_" + widgetid);
    
    frm.pgstaff.value = 0;
    frm.skey.value = "";
    
    if (frm.slocid != null)
        frm.slocid.selectedIndex = 0;
    if (frm.sdepart != null)
        frm.sdepart.selectedIndex = 0;
    if (frm.stitle != null)
        frm.stitle.selectedIndex = 0;
        
    hxj_DrawWidget("staffsearch", widgetid, hxj_BuildParamByForm(frm, "&", true));
	return false;
}

function doSearchMemberDir(frm, widgetid, page) {
	if (page != null)
		frm.pgmember.value = page;
	
	hxj_DrawWidget("membersearch", widgetid, hxj_BuildParamByForm(frm, "&", true));
	return false;
}

function doResetMemberDir(widgetid) {
    var frm = hxj_FindObject("FORM_" + widgetid);
    
    frm.pgmember.value = 0;
    frm.fname.value = "";
    frm.lname.value = "";
    
    if (frm.sgrpid != null)
        frm.sgrpid.selectedIndex = 0;
        
    hxj_DrawWidget("membersearch", widgetid, hxj_BuildParamByForm(frm, "&", true));
	return false;
}

function doSearchAlumniDir(frm, widgetid, page) {
	if (page != null)
		frm.pgalumni.value = page;
	
	hxj_DrawWidget("alumnidir", widgetid, hxj_BuildParamByForm(frm, "&", true));
	return false;
}

function doSaveAlumni() {
	var frm = document.alumniForm;
	
	if (frm.classyear.value.length < 4) {
        alert("Please enter the 4 digits year you graduated.");
        frm.classyear.focus();
        return false;
    }
    
    frm.firstname.value = frm.firstname.value.trim();
    if (frm.firstname.value.length <= 0) {
        alert("Please enter a first name.");
        frm.firstname.focus();
        return false;
    }
    
    frm.lastname.value = frm.lastname.value.trim();
    if (frm.lastname.value.length <= 0) {
        alert("Please enter a last name.");
        frm.lastname.focus();
        return false;
    }

	frm.action = g_virtualPath + "/tool/index.do?module=alumni&cmd=save";
    frm.submit();		
}

function doToggleTree(linkobj, treeid) {
	var divnode = hxj_FindObject(treeid);
    var imgnode = linkobj.firstChild;
    
    if (divnode.style.display == "none") {
    	divnode.style.display = "block";
        imgnode.src = _SVR_ + "/images/icon_minus.gif";
    }
    else {
    	divnode.style.display = "none";
        imgnode.src = _SVR_ + "/images/icon_plus.gif";
    }
}

function doToggleFileTreeWidget(linkobj, treeid, catid) {
    var divnode = hxj_FindObject(treeid);
    var imgnode = linkobj.firstChild;
    
    if (divnode.style.display == "none") {
        divnode.style.display = "block";
        imgnode.src = _SVR_ + "/images/icon_minus.gif";
        
        if (!divnode.isloaded) {
            var dom = hxj_ExecuteAjax(g_virtualPath + "/tool/index.do?widgetname=filetree&cmd=tree", "catid="+catid, false, true);
            if (dom == null)
                return false;
                
            divnode.innerHTML = dom;        
            divnode.isloaded = true;
        }
    }
    else {
        divnode.style.display = "none";
        imgnode.src = _SVR_ + "/images/icon_plus.gif";
    }    
}

function doCheckLoginForm(frm) {
    frm.email.value = frm.email.value.trim();
    frm.passwd.value = frm.passwd.value.trim();
    
	if (frm.email.value.length <= 0
	        || !_oV.IsEmail(frm.email.value)) {
		alert("Please enter a valid email address.");
		frm.email.focus();
		return false;
	}
	
	if (frm.passwd.value == "") {
		alert("Please enter the password.");
		frm.passwd.focus();
		return false;
	}
	
	frm.email.value = frm.email.value.toLowerCase();
	frm.md5pwd.value = hex_md5(frm.passwd.value);
	frm.passwd.value = "";
	frm.action = g_virtualPath + "/tool/index.do?module=members&task=login&cmd=logon";
	
	return true;
}

function doCheckSignup() {	
	var frm = document.loginForm;
	
	if (frm.email.value.length <= 0
	        || !_oV.IsEmail(frm.email.value)) {
		alert("We will send you a email to help you register your information.\r\nPlease enter a valid email address.");
		frm.email.focus();
		return false;	
	}

    frm.email.value = frm.email.value.toLowerCase();
	frm.action = g_virtualPath + "/tool/index.do?module=members&task=regist&cmd=sendregist";
	frm.submit();
	
	return false;
}

function doCheckPassword(frm) {	
	if (frm.email.value.length <= 0
	        || !_oV.IsEmail(frm.email.value)) {
		alert("Please enter a valid email address.");
		frm.email.focus();
		return false;	
	}

    frm.email.value = frm.email.value.toLowerCase();
	frm.action = g_virtualPath + "/tool/index.do?module=members&task=regist&cmd=sendpasswd";
	frm.submit();
	
	return false;
}

function doCheckOnlineGiving(frm) {
	if (frm.donor_name.value.length <= 0) {
		alert("Please enter a donor's name.");
		frm.donor_name.focus();
		return false;
	}
		
	if (frm.item_number.value.length <= 0) {
		alert("Please enter the reason of your contribution.");
		frm.item_number.focus();
		return false;
	}
	
	if (frm.amount.value.length <= 0) {
		alert("Please enter the amount of your contribution.");
		frm.amount.focus();
		return false;
	}
	
	frm.custom.value = escape("dn=" + frm.donor_name.value);
	
	return true;
}
