// Zip code functions

function checkZip(value, field) {
	var args = new Object();
	args.field = field;
	args.value = value;
	args.message = '';
	
	if(value.length == 5) {
		DWREngine._execute('/fuseblocks/zip_check.cfc', null, 'check', args, showZipResult);
	}
	unred(document.getElementById(field));
}

function showZipResult(result) {
	if(document.getElementById(result.field)) {
		document.getElementById(result.field).innerHTML = result.message;
	}
	if(result.success != "0") {
		if(document.profileform || document.startform || document.contactform) {
			document.getElementById('city').value = result.city;
			unred(document.getElementById('city'));
			document.getElementById('state').options[result.stateindex].selected = true;
			unred(document.getElementById('state'));
		} else if (document.regform || document.upgradeform) {
			document.getElementById('city').value = result.city;
			unred(document.getElementById('city'));
			document.getElementById('state').options[result.stateindex + 1].selected = true;
			unred(document.getElementById('state'));
		}
	}
}

//  NOT REALLY SURE WHY WE DO IT THIS WAY, BUT OK, PHOTO DELETION

function deletePhoto() {
	var args = new Object();
	DWREngine._execute('/fuseblocks/delete_advisor_photo.cfc', null, 'deleteAdvPhoto', args, deletePhotoResult);
}

function deletePhotoResult(result) {
	top.document.getElementById('photoDiv').innerHTML = result.message;
}

// FORM VALIDATION WHATNOT

function regIsEmail(fData) {
	var reg = new RegExp("^[_0-9a-zA-Z]+@[_0-9a-zA-Z]+[\.]{1}[0-9a-zA-Z]+[\.]?[0-9a-zA-Z]+$");
	return reg.test(fData);
}

function isEmpty(obj,msg,trigger) {
	if (obj.type != 'select-one' && obj.value == '') {
		obj.className = 'needs';
		if(trigger == 1) {
			alert('Please enter ' + msg + ' in the field provided.');
		}
		return true;
	} else {
		return false;
	}
}

function det() {
	var detlists = "numSOs,numSARs,numRES,valSOs,valSARs,valRES";
	var detarray = detlists.split(",");
	
	thing = 0;
	for(i=0; i<detarray.length; i++){
		if(document.getElementById(detarray[i]).value != ''){
			thing = 1;
		}
	}
	if (thing != 1) {
		for(i=0; i<detarray.length; i++){
			document.getElementById(detarray[i]).className="needs";
		}
		return false;
	} else {
		for(i=0; i<detarray.length; i++){
			document.getElementById(detarray[i]).className="content";
		}
		return true;
	}
}

function unred(obj) {
	if (obj.value != '') {
		obj.className="content";
	} else {
		obj.className="needs";
	}
}

function validate(formname) {
	var error = '';
	var fillin = '';
	if(document.getElementById(formname)) {
		var thing = document.getElementById(formname);
		if(formname == 'regform') {
			var listofields = "firstName,lastName,email,username,password,passconfirm,ccFName,ccLName,address,zipCode,city,state,ccNum,ccType,ccCode";
			var focal = 'firstName';
		} else if(formname == 'upgradeform') {
			var listofields = "ccFName,ccLName,address,zipCode,city,state,ccNum,ccType,ccCode";
			var focal = 'ccFName';
		} else if(formname == 'specregform') {
			var listofields = "firstName,lastName,email,username,password,passconfirm";
			var focal = 'firstName';
		} else if(formname == 'startform') {
			var listofields = "zip,city,typeID,serviceIDs,feeID,experience";
			var focal = 'zip';
		} else if(formname == 'contactform') {
			var listofields = "name,email,zip,city";
			var focal = 'name';
		} else if(formname == "profileform") {
			var listofields = "firstName,lastName,email,zip,city";
			var focal = 'firstname';
		}
		
		var valueArray = listofields.split(",");
				
		for(i=0;i<thing.elements.length;i++) {
			if(thing.elements[i].className != 'content noinput'){
				thing.elements[i].className="content";
			}
		}
		
		for(j=0; j<valueArray.length; j++){
			if(isEmpty(document.getElementById(valueArray[j]))) {
				error = 1;
			}
		}

		if(document.contactform) {
			if(!det()) {
				error = 1;
			}
		}
	
		if (error == 1) {
			fillin = 1;
		}
		
		if((document.contactform || document.startform) && !document.getElementById('disclaimer').checked) {
			error = 'Please read our terms of service and check the box that indicates you have done so.';
		}
		
		if((document.contactform || document.regform || document.specregform || document.profileform) && !regIsEmail(document.getElementById('email').value)) {
			document.getElementById('email').className="needs";
			error = 'Please enter a valid e-mail address.';
		}
	}
	
	if(error != '') {
		document.getElementById(focal).focus();
		if (error != 1) {
			alert(error);
		}
		if (fillin == 1){
			alert('Please fill in the required fields.');
		}
		return false;
	} else {
		return true;
	}
	
}

function checkmail(obj) {
	if(regIsEmail(obj.value)) {
		taken(obj);
		return true;
	} else {
		obj.className = 'needs';
		alert('The email address you have entered is invalid.');
		return false;
	}
}

function taken(field) {
	var args = new Object();
	args.field = field.name;
	args.value = field.value;
	if (field.name != 'promo') {
		DWREngine._execute('/fuseblocks/taken.cfc', null, 'check', args, feedback);
	} else {
		if (field.value != "") { 
			DWREngine._execute('/fuseblocks/taken.cfc', null, 'promo', args, feedbackpromo);
		} else {
			reseter();
			document.getElementById('promofeedback').innerHTML = '';	
			document.getElementById('promo').className = 'content';
		}
	}
}

function feedback(result) {
	document.getElementById(result.resfield).innerHTML = result.message;
	if(result.message !=""){
		document.getElementById(result.field).className="needs";
	}
}

function feedbackpromo(result) {
	document.getElementById(result.resfield).innerHTML = result.message;
	if(result.message == '') {
		if(document.getElementById('basic')) {
			var basicamt = 195 - result.discount;
			basicamt = Math.max(0,basicamt);
			document.getElementById('basic').value = basicamt;
			document.getElementById('basicdesc').innerHTML = '<strike>$195</strike> $' + basicamt;
		}
		if(document.getElementById('enhanced')) {
			var enhancedamt = 295 - result.discount;
			enhancedamt = Math.max(0,enhancedamt);
			document.getElementById('enhanced').value = enhancedamt;
			document.getElementById('enhanceddesc').innerHTML = '<strike>$295</strike> $' + enhancedamt;
		}
		var eliteamt = 495 - result.discount;
		eliteamt = Math.max(0,eliteamt);
		document.getElementById('elite').value = eliteamt;
		document.getElementById('elitedesc').innerHTML = '<strike>$495</strike> $' + eliteamt;
	} else {
		reseter();
	}
}

function reseter() {
	if (document.getElementById('basic')) {
		document.getElementById('basic').value = 195;
		document.getElementById('basicdesc').innerHTML = '$195 ';
	}
	if (document.getElementById('enhanced')){
		document.getElementById('enhanced').value = 295;
		document.getElementById('enhanceddesc').innerHTML = '$295 ';
	}
	document.getElementById('elite').value = 495;
	document.getElementById('elitedesc').innerHTML = '$495 ';
}

// sidenav functions

function dropem(div) {
	if (document.getElementById(div).style.display == 'block') {
		document.getElementById(div).style.display = 'none';
	} else {
		document.getElementById(div).style.display = 'block';
	}
}

function submitit() {
	document.getElementById('matchform').submit();
}

function graystate() {
	var alertness = document.sidenavform['state'].selectedIndex;
	if (alertness != 0) {
		// gray out zip and radius dropdown
		document.sidenavform['zip'].disabled = true;
		document.sidenavform['radius'].disabled = true;
	} else {
		document.sidenavform['zip'].disabled = false;
		document.sidenavform['radius'].disabled = false;
	}
}

function grayzip() {
	var zipper = document.sidenavform['zip'].value;
	if (zipper != '') {
		// gray out state
		document.sidenavform['state'].disabled = true;
	} else {
		document.sidenavform['state'].disabled = false;
	}
}

// **************************************************************************
//   SUNDRY OTHER FUNCTIONS OF DUBIOUS WORTH (I KID, YOU ARE BOTH BEAUTIFUL)

function count(field, limit, spanname) {
	if(field.value.length >= limit) {
		field.value = field.value.substring(0, limit - 1); // Suppress the keystroke
	}
	// Update the message at the bottom of the field
	document.getElementById(spanname).innerHTML = field.value.length;
}

function resetForm(formid) {
	if(document.getElementById(formid)) {
		formobj = document.getElementById(formid);
		for(i=0;i<formobj.elements.length;i++) {
			that = formobj.elements[i];
			if (that.type != 'reset' || 'submit') {
				if (that.type == 'text') {
					that.value = "";
				} else if (that.type == 'select-one') {
					if (that.name == 'radius') {
						that.selectedIndex = 1;
					} else {
						that.selectedIndex = 0;
					}
				}
			}
		}	
	}
	graystate();
	grayzip();
	return false;
}

function divsel(name,amou) {
	document.getElementById(name).checked = true;
	if(name == 'enhanced') {
		name = 'enh';
	}
	rad(name + 'div',amou);
}

function rad(divname,amoun) {
	if (document.getElementById('basicdiv')){
		document.getElementById('basicdiv').className = 'divunsel';
	}

	document.getElementById('enhdiv').className = 'divunsel';
	document.getElementById('elitediv').className = 'divunsel';
	
	document.getElementById(divname).className = 'divselected';
	document.getElementById('amtbase').value = amoun;
}
