ns4 = (document.layers)? true:false;
ie4 = (document.all)? true:false;
function setType(obj,which){
	var frm = obj.form;
	ctrl_field = eval("frm.miscField"+which);
	ctrl_type = eval("frm.miscType"+which);
	ctrl_oper = eval("frm.miscOper"+which);
	ctrl_combo = eval("frm.miscValueCbo"+which);
	ctrl_text = eval("frm.miscValueTxt"+which);
	
	fldval = ctrl_field.options[ctrl_field.selectedIndex].value;
	fldtyp = left(right(ctrl_field.options[ctrl_field.selectedIndex].text,2),1);
	ctrl_type.value = fldtyp;
	if(fldtyp=="E" || fldtyp=="S"){
		document.getElementById("tdiv"+which).style.visibility = "hidden";
		ctrl_text.value = "";
		document.getElementById("cdiv"+which).style.visibility = "visible";
		resetCbo(frm,fldval,which);
	}
	else if(fldtyp=="Y"){
		document.getElementById("tdiv"+which).style.visibility = "hidden";
		ctrl_text.value = "";
		document.getElementById("cdiv"+which).style.visibility = "visible";
		x = ctrl_combo.options.length
		for (var i = 0; i <= x; i++){
			ctrl_combo.options[i] = null
		}
		ctrl_combo.options[0] = new Option("","")
		ctrl_combo.options[1] = new Option("Yes","1");
		ctrl_combo.options[2] = new Option("No","0")
		ctrl_combo.options.length = 3;
	}
	else {
		document.getElementById("cdiv"+which).style.visibility = "hidden";
		ctrl_combo.selectedIndex = -1;
		document.getElementById("tdiv"+which).style.visibility = "visible";
	}
}
function validate(obj,which){
	var frm = obj.form;
	ctrl_type = eval("frm.miscType"+which);
	ctrl_text = eval("frm.miscValueTxt"+which);
	if(ctrl_type.value != "T" && ctrl_type.value != "E"){
		return validatethis(ctrl_type.value, ctrl_text);
	}
}
function rerun_validation(obj){
	for(i=0; i < obj.elements.length; i++){
		fld = obj.elements[i];
		if(fld.onchange != null){
			validationtype = fld.onchange.toString();
			if(validationtype.indexOf("validatethis") >= 0){
				oktosubmit = false;
				fld.onchange();
				if(!oktosubmit) return false;
			}
		}
		else if(fld.onblur != null){
			validationtype = fld.onblur.toString();
			if(validationtype.indexOf("validatethis") >= 0){
				oktosubmit = false;
				fld.onblur();
				if(!oktosubmit) return false;
			}
		}
	}
	return true;
}
function validatethis(type, field){
	oktosubmit = true;
	msg1 = ""
	msg2 = ""
	if(type == "phone"){
		mask = "'999-999-9999 ??????'"
		msg1 = validatemask("999-999-9999 ??????", field.value)
		msg2 = validatemask("999-9999 ??????", field.value)
	}
	else if(type == "ssn"){
		mask = "'999-99-9999'"
		msg1 = validatemask("999-99-9999", field.value)
		msg2 = "x"
	}
	else if(type == "N"){
		if(!checknumber(field.value)){
			mask = "of a number, without words or punctuation."
			msg1 = "Invalid format"
			msg2 = "x"
		}
	}
	else if(type == "D"){
		if(!checkdate(field,'')){
		alert("Please enter a valid date");
		field.select();
		field.focus();
		oktosubmit = false;
		}
	}
	else if(type == "D-Past"){
		if(!checkdate(field,'past')){
		alert("Please enter a valid date");
		field.select();
		field.focus();
		oktosubmit = false;
		}
	}
	else if(type == "D-Future"){
		now = new Date();
		today = new Date(now.getFullYear(),now.getMonth(),now.getDate());
		if(!checkdate(field,'')){
		alert("Please enter a valid date");
		field.select();
		field.focus();
		oktosubmit = false;
		}
		else if(new Date(field.value) < today){
		alert("Please enter a valid date in the future");
		field.select();
		field.focus();
		oktosubmit = false;
		}
	}
	else if(type == "D-Future28"){
		now = new Date();
		today = new Date(now.getFullYear(),now.getMonth(),now.getDate()+28);
		if(!checkdate(field,'')){
		alert("Please enter a valid date");
		field.select();
		field.focus();
		oktosubmit = false;
		}
		else if(new Date(field.value) < today){
		alert("Please enter a valid date in the future");
		field.select();
		field.focus();
		oktosubmit = false;
		}
	}
	else if(type == "mm/dd/yyyy"){
		if(right(field.value,4).indexOf("/") > 0){
			alert("Please enter a valid date, 4 digit year");
			field.select();
			field.focus();
			oktosubmit = false;
		}
		else if(!checkdate(field,'past')){
			alert("Please enter a valid date");
			field.select();
			field.focus();
			oktosubmit = false;
		}
	}
	else if(type == "mm/yyyy"){
		if(date_mmyyyy(field) == false){
			mask = "MM/YYYY";
			msg1 = "Please enter a valid date";
			msg2 = "x";
		}
	}
	else if(type == "I"){
		if(checkinteger(field.value) == false){
		alert("Please enter a valid integer without commas")
		field.select();
		field.focus();
		oktosubmit = false;
		}
	}
	else if(type == "email"){
		var r = /^[\w\-%_\.]+@([\w\-]+\.)+\w{2,4}$/;
		if(field.value && !r.test( field.value )){
			alert("Please enter a valid e-mail address.")
			field.select();
			field.focus();
			return false;
		}
	}
	else if(type == "zip"){
		var r = /^(\d{5}|\d{5}-\d{4})$/;
		var r_cdn = /[A-Z]\d[A-Z][ ]\d[A-Z]\d/;

		if(field.value && !r.test( field.value ) && !r_cdn.test( field.value)){
			alert("Please enter a valid zip/postal code.");
			field.select();
			field.focus();
			return false;
		}
	}
	else if(type == "time"){
		if(!checktime(field.value)){
			field.select();
			field.focus();
			alert("Please enter a valid time, HH:MM AM/PM");
			oktosubmit = false;
		}
	}
	if(msg1 != "" && msg2 != ""){
		alert(msg1 +": Expecting entry in the form " + mask)
		field.select();
		field.focus();
		oktosubmit = false;
	}
	return oktosubmit;
}
function validatemask(mask, value){
	if(value.length == 0){
		return ""
	}
	for (var i=0; i <= Math.max(value.length,mask.length); i++){
		m = mask.substring(i,i+1);
		v = value.substring(i,i+1);
		if(m == "9"){
			if(outside(v, "0", "9")) return "Invalid format"
		}
		else if(m == "A"){
			if(outside(v.toUpperCase()), "A", "Z") return "Invalid format"
		}
		else if(m == "?"){
		}
		else if(m == " " && v == ""){
		}
		else {
			if(m != v) return "Invalid format"
		}
	}
	return "";
}
function outside(string, x, y){
	if(string < x || string > y) return true
	return false
}
function date_mmyyyy(field){
   	mmyyyy = field.value;
 	pos = mmyyyy.indexOf('/');
 	if(pos == 0 || pos != mmyyyy.lastIndexOf("/")){
		return false;
 	}
 	else {
		if(mmyyyy.substr(0,1) == "0"){
			m = mmyyyy.substr(1,1)
		}
		else if(pos == 2){
			m = mmyyyy.substr(0,2)
		}
		else {
			m = mmyyyy.substr(0,1)
		}
		if(parseInt(mmyyyy.substr(pos+1)) == 0){
  			y = parseInt(mmyyyy.substr(pos+2));
		}
		else {
  			y = parseInt(mmyyyy.substr(pos+1));
		}
		if(mmyyyy == ""){
			//ok
		}
	 	else if(m > 0 && m < 13 && y >= 1870 && y <= 2050){
			//ok
	 	}
	 	else if(m > 0 && m < 13 && y >= 1 && y <= 9){
	 		field.value = m.toString() + "/200" + y.toString();
	 	}
	 	else if(m > 0 && m < 13 && y >= 10 && y <= 20){
	 		field.value = m.toString() + "/20" + y.toString();
	 	}
	 	else {
			return false;
	 	}
	}
	return true;
}
function checkdate(obj,when){
//Returns true if value is a date format or is NULL
//otherwise returns false	

    if(obj.value.length == 0)
        return true;

	if(obj.value.length <= 5){
		today = new Date();
		yr = today.getYear();
		if(ns4) yr = yr + 1900;
		obj.value = obj.value +"/"+ yr;
	}
	else if(left(right(obj.value,3),1) == "/"){
		obj.value = left(obj.value,obj.value.length-2) + "20" + right(obj.value,2);
	}
	object_value = obj.value

    //Returns true if value is a date in the mm/dd/yyyy format
	isplit = object_value.indexOf('/');

	if(isplit == -1 || isplit == object_value.length || object_value.indexOf(" ") > 0)
		return false;

    sMonth = object_value.substring(0, isplit);
	isplit = object_value.indexOf('/', isplit + 1);

	if(isplit == -1 || (isplit + 1 ) == object_value.length)
		return false;
    sDay = object_value.substring((sMonth.length + 1), isplit);
	
	sYear = object_value.substring(isplit + 1);
	if(!checkinteger(sMonth)) //check month
		return false;
	else
	if(!checkrange(sMonth, 1, 12)) //check month
		return false;
	else
	if(!checkinteger(sYear)) //check year
		return false;
	else
	if(!checkrange(sYear, 0, 99) && !checkrange(sYear, 1800, 2040)) //check year
		return false;
	else
	if(!checkinteger(sDay) || sDay.length == 0 || sMonth.length == 0) //check day
		return false;
	else
	if(!checkday(sYear, sMonth, sDay)) // check day
		return false;
	else
	if(when == 'past' && new Date(object_value) > new Date())
		return false;
	else
		return true;
}
function checktime(object_value){
	if(object_value.length == 0)
		return true;

	isplit = object_value.indexOf(':');

	if(isplit == -1 || isplit == object_value.length)
		return false;

	sHour = object_value.substring(0, isplit);
	iminute = object_value.indexOf(':', isplit + 1);

	if(iminute == -1 || iminute == object_value.length)
		sMin = object_value.substring((sHour.length + 1));
	else
		sMin = object_value.substring((sHour.length + 1), iminute);

	period = object_value.substring(6);
	if("^am^pm^AM^PM^".indexOf(period) > 0){
		sMin = left(sMin,2);
	}
	else if(period.length > 0){
		return false;
	}
		
	if(!checkinteger(sHour))
		return false;
	else if(!checkrange(sHour, 0, 23))
		return false;

	if(!checkinteger(sMin))
		return false;
	else
	if(!checkrange(sMin, 0, 59))
		return false;

	if(iminute != -1)
	{
		sSec = object_value.substring(iminute + 1);
		if(!checkinteger(sSec))
			return false;
		else if(!checkrange(sSec, 0, 59))
			return false;	
	}
	return true;
}
function checkday(checkYear, checkMonth, checkDay){
	maxDay = 31;

	if(checkMonth == 4 || checkMonth == 6 ||
			checkMonth == 9 || checkMonth == 11)
		maxDay = 30;
	else
	if(checkMonth == 2)
	{
		if(checkYear % 4 > 0)
			maxDay =28;
		else
		if(checkYear % 100 == 0 && checkYear % 400 > 0)
			maxDay = 28;
		else
			maxDay = 29;
	}

	return checkrange(checkDay, 1, maxDay); //check day
}
function checkinteger(object_value){
    //Returns true if value is a number or is NULL
    //otherwise returns false	
    if(object_value.length == 0)
        return true;

    //Returns true if value is an integer defined as
    //   having an optional leading + or -.
    //   otherwise containing only the characters 0-9.
	var decimal_format = ".";
	var check_char;

    //The first character can be + -  blank or a digit.
	check_char = object_value.indexOf(decimal_format)
    //Was it a decimal?
    if(check_char < 0)
	return checknumber(object_value);
    else
	return false;
}
function checkrange(object_value, min_value, max_value){
    //if value is in range then return true else return false

    if(object_value.length == 0)
        return true;
    if(!checknumber(object_value)){
		return false;
	}
    else {
		return (numberrange((eval(object_value)), min_value, max_value));
	}
	
    //All tests passed, so...
    return true;
}
function numberrange(object_value, min_value, max_value){
    // check minimum
    if(min_value != null)
	{
        if(object_value < min_value)
		return false;
	}

    // check maximum
    if(max_value != null)
	{
	if(object_value > max_value)
		return false;
	}
	
    //All tests passed, so...
    return true;
}
function checknumber(object_value){
    //Returns true if value is a number or is NULL
	//otherwise returns false	
    if (object_value.length == 0)
	    return true;
	    
	var r = /^[\+\-]?[0-9]*[.]?[0-9]+$/;
	return r.test( object_value );
}

function changeButton(frm){
	if(frm.contactID.value == 0){
		frm.saveContact.value = "Add a New Contact";
	}
	else {
		frm.saveContact.value = "Edit This Contact";
	}
}
function setgender(obj,fieldname){
	getitem = document.getElementById(fieldname + "gender");
	if(obj.options[obj.selectedIndex].value == "Mr"){
		getitem.selectedIndex = 1;
	}
	else if(obj.options[obj.selectedIndex].value.substring(0,1) == "M"){
		getitem.selectedIndex = 2;
	}
	getitem = document.getElementById(fieldname + "first");
	getitem.focus();
}
function fieldChecked(field){
	x = 0;
	for (i=0; i<field.length; i++){
		if(field[i].checked){
			x = x + 1;
		}
	}
	return x;
}
function div_resize(){
	w = document.body.clientWidth;
	h = document.body.clientHeight;
	d = document.getElementById("scroll");
	if(document.location.href.indexOf("couns_list") > 0){
		d.style.width = w-17;
		if(h > 93){
			d.style.height = h-93;
		}
	}
	else if(document.location.href.indexOf("refer_list") > 0){
		d.style.width = w-17;
		if(h > 230){
			d.style.height = h-230;
		}
		else {
			d.style.height = 10;
		}
	}
	else if(document.location.href.indexOf("agenc_list") > 0){
		d.style.width = w-17;
		if(h > 130){
			d.style.height = h-130;
		}
	}
	else if(document.location.href.indexOf("report") > 0){
		if(h > 130){
			d.style.height = h-130;
		}
	}
}
function left(txt,num){
	return txt.substr(0,num);
}
function right(txt,num){
	len = txt.length;
	return txt.substr(len-num,num);
}
function hide_scrollbars(){
	if(document.getElementById("scroll")){
		document.getElementById("scroll").style.overflow = "visible";
		document.getElementById("scroll").style.width = "100%";
		document.getElementById("scroll").style.height = "100%";
	}
	if(document.getElementById("scroll2")){
		document.getElementById("scroll2").style.overflow = "visible";
	}
	if(document.getElementById("scroll3")){
		document.getElementById("scroll3").style.overflow = "visible";
	}
	if(document.getElementById("scroll4")){
		document.getElementById("scroll4").style.overflow = "visible";
	}
	document.getElementById("hide_scrollbars").innerHTML = "";
}
function get_checked_value(obj){
	if(typeof(obj) == "undefined"){
		return 0;
	}
	else if(typeof(obj.length) == "undefined"){
		if(typeof(obj.value) == "string" && obj.checked){
			return obj.value;
		}
		else {
			return 0;
		}
	}
	else {
		for(i=0;i<obj.length;i++){
			if(obj[i].checked){
				return obj[i].value;
			}
		}
	}
	return 0;
}
function set_dropdown(obj,code){
	if(typeof(code) == "string"){
		code = code.toUpperCase();
	}
	for(i=0;i<obj.length;i++){
		if(obj.options[i].value.toUpperCase() == code){
			obj.selectedIndex = i;
			break;
		}
	}
}
function require(fld){
	with(document.getElementById("lbl_" + fld)){
		className = "require";
		innerHTML = "*" + innerHTML;
	}
}
function getcontent(what,param){
	contactmethod = what;
	$.getJSON("template/getcontent.cfm?r="+Math.random()+"&what="+what+"&"+param,
		function(data){
			fields = data.columnlist.split(",");
			opt = data.data;
			for(k=0;k<fields.length;k++){
				if(fields[k] != "agency_id" && fields[k] != "intemediary_id"){
					if(",role_type".indexOf(fields[k]) > 0){
						set_dropdown(document.Counselors.elements["p"+fields[k]],opt[fields[k]]);
					}
					else if(",date_updated".indexOf(fields[k]) < 0) {
						document.Counselors.elements["p"+fields[k]].value = opt[fields[k]];
					}
				}
			}
			document.getElementById("btn_unlink").style.display="";
			document.getElementById("contact_label").innerHTML = "<img src='images/edit.gif' alt='Edit' align='absbottom'> Edit Contact";
		}
	);
}
function submitcontent(what,data){
	contactmethod = what;
	
	$.post("template/submitcontent.cfm?r="+Math.random()+"&what="+what,
  		data,
  		function(response){
			response = eval('(' + response + ')');
			if(contactmethod=="addperson"){
				opt = response.data;
				if(opt){
					if(opt["id"] > 0){
						frm = document.Counselors;
						tb = document.getElementById("tbody_linked");
						var newTR = document.createElement('tr');
						var newTD = document.createElement('td');
						newTD.innerHTML = "<a href='javascript:linkedit("+opt["id"]+");'><img src='images/edit.gif' alt='Edit' align='absbottom'></a> " + frm.plast_name.value +", "+ frm.pfirst_name.value +"; "+ frm.prole_type.options[frm.prole_type.selectedIndex].text;
						newTD.colSpan = 4;
						newTR.appendChild(newTD);
						newTR.id = "tr_"+opt["id"];
						tb.appendChild(newTR);
					}
				}
				resetfields();
			}
			else if(contactmethod=="saveperson"){
				opt = response.data;
				if(opt){
					if(opt["id"] > 0){
						span = document.getElementById("data_"+opt["link_id"]);
						span.innerHTML = opt["text"];
						//newTD.innerHTML = "<a href='javascript:linkedit("+opt["id"]+");'><img src='images/edit.gif' alt='Edit' align='absbottom'></a> " + frm.plast_name.value +", "+ frm.pfirst_name.value +"; "+ frm.prole_type.options[frm.prole_type.selectedIndex].text;
					}
				}
				resetfields();
			}
			else if(contactmethod=="unlinkperson"){
				opt = response.data;
				resetfields();
				document.getElementById("tr_"+opt["link_id"]).style.display="none";
			}
			else if(contactmethod=="linkperson"){
				opt = response.data;
				if(opt){
					if(opt["link_id"] > 0){
						frm = document.Counselors;
						tb = document.getElementById("tbody_linked");
						var newTR = document.createElement('tr');
						var newTD = document.createElement('td');
						newTD.innerHTML = "<a href='javascript:linkedit("+opt["link_id"]+");'><img src='images/edit.gif' alt='Edit' align='absbottom'></a> " + opt["last_name"] +", "+ opt["first_name"] +"; "+ opt["description"];
						newTD.colSpan = 4;
						newTR.appendChild(newTD);
						newTR.id = "tr_"+opt["link_id"];
						tb.appendChild(newTR);
						document.Counselors.link.selectedIndex = null;
					}
				}
				resetfields();
			}
		}
	);
}

