//<![CDATA[
var inDate;
var warnCount = 0;
function validate(id) {
	
	var msgText = "";

	document.getElementById(id + "_name").value = trim(document.getElementById(id + "_name").value);
    if (document.getElementById(id + "_name").value == "") {
  	  msgText = msgText + "Please enter your name" + "\n";
    }
  
	document.getElementById(id + "_title").value = trim(document.getElementById(id + "_title").value);

	document.getElementById(id + "_company").value = trim(document.getElementById(id + "_company").value);
    if (document.getElementById(id + "_company").value == "") {
  	  msgText = msgText + "Please enter your company name" + "\n";
    }
  
	document.getElementById(id + "_email").value = trim(document.getElementById(id + "_email").value);
	if (!validateEmail(document.getElementById(id + "_email").value)) {
  	  msgText = msgText + "Please enter a valid email address" + "\n";
	}

	document.getElementById(id + "_address").value = trim(document.getElementById(id + "_address").value);
    if (document.getElementById(id + "_address").value == "") {
  	  msgText = msgText + "Please enter your street address" + "\n";
    }
  
	document.getElementById(id + "_city").value = trim(document.getElementById(id + "_city").value);
    if (document.getElementById(id + "_city").value == "") {
  	  msgText = msgText + "Please enter your city" + "\n";
    }
  
	document.getElementById(id + "_state").value = trim(document.getElementById(id + "_state").value);
    if (document.getElementById(id + "_state").value == "") {
  	  msgText = msgText + "Please enter your state" + "\n";
    }
  
	document.getElementById(id + "_zip").value = trim(document.getElementById(id + "_zip").value);
    if (document.getElementById(id + "_zip").value == "") {
  	  msgText = msgText + "Please enter your zip code" + "\n";
    }
  
	document.getElementById(id + "_phone").value = trim(document.getElementById(id + "_phone").value);
    if (document.getElementById(id + "_phone").value == "") {
  	  msgText = msgText + "Please enter your phone number" + "\n";
    }
  
	document.getElementById(id + "_fax").value = trim(document.getElementById(id + "_fax").value);

    if (document.getElementById(id + "_ddlContact").value == "99") {
  	  msgText = msgText + "Please select a contact" + "\n";
    }
  
	document.getElementById(id + "_comments").value = trim(document.getElementById(id + "_comments").value);
    if (document.getElementById(id + "_comments").value == "") {
  	  msgText = msgText + "Please enter your comments" + "\n";
    }

    if (msgText > "") {
  	  alert (msgText);
      return false;
    }
      
  return true;
  
}

function validatePatientFeedback() {

	inDate = trim(document.getElementById("cu2_pfVisitDate").value);
	inDate = inDate.replace(/-/g,"/")

	if (isDate(inDate)==false){
	    document.getElementById("cu2_pfVisitDate").value = inDate;
	    //alert ("inDate = " + inDate);
		return false
	}
	
	document.getElementById("cu2_pfVisitDate").value = inDate;
	//alert ("inDate = " + inDate);

    if (document.getElementById("cu2_pfCenterState").value == "0") {
  	  alert ("Please choose a medical center state");
  	  return false;
    }

    if (document.getElementById("cu2_pfCenterID").value == "0") {
  	  alert ("Please choose a medical center");
  	  return false;
    }

  return true;
}

function validateEmployerFeedback() {

    if (document.getElementById("cu2_efCenterState").value != "0" && document.getElementById("cu2_efCenterID").value == "0") {
  	  alert ("Please choose a medical center for the state that was selected");
  	  return false;
    }
    
    if (document.getElementById("cu2_efName").value == "" && document.getElementById("cu2_efCompany").value == "" && document.getElementById("cu2_efPhone").value == "" && document.getElementById("cu2_efEmail").value == "") {
  	  if (warnCount == 0) {
  	    warnCount++;
  	    alert ("We welcome all input and would like to have your contact info in order to address the issue(s) that you are making us aware of.  May we have your contact info?");
  	    return false;
  	  }  
    }

  return true;
}

function validateBusinessAcquisition() {

	var msgText = "";
	
    if (document.getElementById("cu2_acqName").value == "") {
  	  msgText = msgText + "Please enter the Practice Name" + "\n";
    }

    if (document.getElementById("cu2_acqAddress").value == "") {
  	  msgText = msgText + "Please enter the Practice Address" + "\n";
    }
    
    if (document.getElementById("cu2_acqOwner").value == "") {
  	  msgText = msgText + "Please enter the Practice Owner" + "\n";
    }
    
    if (document.getElementById("cu2_acqRepresentative").value == "") {
  	  msgText = msgText + "Please enter the name of the person completing this form" + "\n";
    }
    
    if (!document.getElementById("cu2_rbNo").checked && !document.getElementById("cu2_rbYes").checked){  	  
      msgText = msgText + "Please click whether the practice owner is a physician" + "\n";
    }

    if (document.getElementById("cu2_acqEmail").value == "") {
  	  msgText = msgText + "Please enter an Email Address" + "\n";
    }

    if (document.getElementById("cu2_acqEmail").value != "") {
	  if (!validateEmail(document.getElementById("cu2_acqEmail").value)) {
  	    msgText = msgText + "Please enter a valid Email Address" + "\n";
	  }
	}

    if (document.getElementById("cu2_acqPhone").value == "") {
  	  msgText = msgText + "Please enter a Phone Number" + "\n";
    }

    if (!document.getElementById("cu2_rbPhone").checked && !document.getElementById("cu2_rbEmail").checked){  	  
      msgText = msgText + "Please click preferred method of contact" + "\n";
    }

    if (msgText > "") {
  	  alert (msgText);
      return false;
    }
      
  return true;

}
function trim(inputString) {
  if (typeof inputString != "string") return inputString;
    return inputString
      //clear leading spaces and empty lines
      .replace(/^(\s|\n|\r)*((.|\n|\r)*?)(\s|\n|\r)*$/g,"$2")

      //take consecutive spaces down to one
      .replace(/(\s(?!(\n|\r))(?=\s))+/g,"")

      //take consecutive lines breaks down to one
      .replace(/(\n|\r)+/g,"\n\r")

      //remove spacing at the beginning of a line
      .replace(/(\n|\r)\s/g,"$1")

      //remove spacing at the end of a line
      .replace(/\s(\n|\r)/g,"$1");

} 

function validateEmail(email) {
	//DEFINE INVALID CHARACTERS

	invalidChars = " /:,;"

	//TEST FOR CONTENT

	if (email == "") {
		return false
	}

	//TEST FOR INVALID CHARACTERS

	for (i=0; i<invalidChars.length; i++){
	badChar = invalidChars.charAt(i)
		if (email.indexOf(badChar, 0) != -1){
			return false
		}
	}

	//TEST FOR UNIQUE @ CHARACTER

	atPos = email.indexOf("@",1)
	if (atPos == -1){
		return false
	}

	if (email.indexOf("@",atPos+1) != -1){
		return false
	}

	//TEST FOR DOT

	dotPos = email.indexOf(".",atPos)
	if (dotPos <= 0) {
		return false
	}

	if (dotPos+3 > email.length){
		return false
	}

	return true
}

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var dtCh= "/";
	var minYear=1900;
	var maxYear=2100;
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	if (strYear.length == 2) strYear="20" + strYear
	if (strYear.length == 1) strYear="200" + strYear
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("Please enter a valid date. The date format should be : mm/dd/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Please enter a valid date")
		return false
	}
	
	inDate = strMonth + "/" + strDay + "/" + strYr;
	return true
}


function ismaxlength(obj){
var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
if (obj.getAttribute && obj.value.length>mlength)
obj.value=obj.value.substring(0,mlength)
}
//]]>


