// form validation function //
var substitueFlag = false;
// Regular Expressions //
	var nameRegex = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/;
	var messageRegex = new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim);
	var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
	var regPhone = /^\d{3}\-\d{3}\-\d{4}$/;
	var regDate = /(0[1-9]|1[012])\/(0[1-9]|[12][0-9]|3[01])\/([0-9]{2,4})/i;

 function validateContactUsForm(form) {

	var fullname = form.name.value;
	var email_address = form.email.value;
	var phone = form.phone.value;

	
	if(fullname == "") {
		inlineMsg('name','You must enter your name.',5);		
		return false;
	}
	if(!fullname.match(nameRegex)) {

		inlineMsg('name','You have entered an invalid name.',5);
		return false;
	}

		
	if(email_address == "") {
		inlineMsg('email','Please provide your email address.',5);
		return false;
	}
	if(!email_address.match(emailRegex)) {
		inlineMsg('email','You have entered an invalid email address.',5);
		return false;
	}
	if(phone == "") {
		inlineMsg('phone','Please provide your contact number.',5);
		return false;
	}

	
	
	

	return true;
	
} 

function validateTellafriendForm(form) {
var fieldCounter = form.addmore_counter.value;

var userName = form.ref_name1.value;
var userEmail = form.ref_address1.value;

	/*if(userName == "") {
		inlineMsg('user_name','You must enter your name.',5);
		return false;
	}
	if(!userName.match(nameRegex)) {
		inlineMsg('user_name','You have entered an invalid name.',5);
		return false;
	}
	if(userEmail == "") {
		inlineMsg('user_email','Please provide your email address.',5);
		return false;
	}
	if(!userEmail.match(emailRegex)) {
		inlineMsg('user_email','You have entered an invalid email address.',5);
		return false;
	}*/

	for(var i = 1; i <= fieldCounter; i++) {
		if(document.getElementById('ref_name'+i)!=null)
		var name = document.getElementById('ref_name'+i).value;
		if(document.getElementById('ref_address'+i)!=null)
		var email = document.getElementById('ref_address'+i).value;
		
		if(name == "") {
			inlineMsg('ref_name'+i,'You must enter your friend name.',5);
			return false;
		}
		if(!name.match(nameRegex)) {
			inlineMsg('ref_name'+i,'You have entered an invalid name.',5);
			return false;
		}
		if(email == "") {
			inlineMsg('ref_address'+i,'Please provide your friend\'s email address.',5);
			return false;
		}
		if(!email.match(emailRegex)) {
			inlineMsg('ref_address'+i,'You have entered an invalid email address.',5);
			return false;
		}
	}

var subject = form.subject.value;
var comments = form.comments.value;

	if(subject == "") {
		inlineMsg('subject','You must enter subject line.',5);
		return false;
	}
	
	if(comments == "") {
		inlineMsg('comments','You must enter your comments.',5);
		return false;
	}
	
	
	return true;
} 




function validateRegistrationForm(form) {

	var name= form.name.value;
  	var street_address = form.street_address.value;
	var city = form.city.value;
	var state = form.state.value;
	var zipcode = form.zipcode.value;
	var home_phone = form.home_phone.value;
	var felonyYes = form.felonyYes;
	var felonyNo = form.felonyNo;
	var misdemeanorYes = form.misdemeanorYes;
	var misdemeanorNo = form.misdemeanorNo;
	var ref=form.ref.value;
	var ref_other=form.ref_other.value;
	var home_phone=form.home_phone.value;
	var email=form.email.value;
	var emergency_name=form.emergency_name.value;
	var emergency_phone=form.emergency_phone.value;
	var supervisor1=form.supervisor1.value;
	var supervisor_phone1=form.supervisor_phone1.value;
	var supervisor2=form.supervisor2.value;
	var supervisor_phone2=form.supervisor_phone2.value;
	var school_city=form.school_city.value;
	var college_city=form.college_city.value;
	var other_city=form.other_city.value;
	var addmore_counter = form.addmore_counter.value;
	var agree=""
	for (var i=0; i < form.agree.length; i++)
   		{
   		if (form.agree[i].checked)
      		{
      		agree = form.agree[i].value;
      		}
   		}
  	
		
	if(name == "") {
		inlineMsg('name','Provide first name.',5);
		return false;
	}else if(!name.match(nameRegex)) {
	inlineMsg('name','You have entered an invalid  name.',5);
		return false;
	}
	
	if(street_address == "") {
		inlineMsg('street_address','Fill the street address field.',5);
		return false;
	}
	if(city == "") {
		inlineMsg('city','Provide your city.',5);
		return false;
	}else if(!city.match(nameRegex)) {
		inlineMsg('city','You have entered an invalid  city name.',5);
		return false;
	}
	if(state == "") {
	    inlineMsg('state','Provide your state.',5);
	    return false;
	} else if(!state.match(nameRegex)) {
	    inlineMsg('state','You have entered an invalid  state name.',5);
	    return false;
	}
	if(zipcode == "") {
		inlineMsg('zipcode','Provide your zipcode.',5);
		return false;
	}
	if(home_phone == "") {
		inlineMsg('home_phone','Provide your Home Phone.',5);
		return false;
	}
	if(felonyYes.checked || felonyNo.checked)
	{
	}else
	{
		inlineMsg('felonyNo','Please select one Option.',5);
		return false;	
	}
	if(misdemeanorYes.checked || misdemeanorNo.checked)
	{
	}else
	{
		inlineMsg('misdemeanorNo','Please select one Option.',5);
		return false;	
	}
	/*else if(!cell.match(regPhone)){
			inlineMsg('cell','You have entered an invalid cell number.',5);
	return false;
	}*/
	
	/*if(ref_name1 == ""){
			inlineMsg('ref_name1','Provide first reference name.',5);
	return false;
	}
	if(ref_name2 == ""){
			inlineMsg('ref_name2','Provide second reference name.',5);
	return false;
	}
	if(ref_name3 == ""){
			inlineMsg('ref_name3','Provide third reference name.',5);
	return false;
	}*/
	
	/*if(!home_phone.match(regPhone)){
			inlineMsg('home_phone','You have entered an invalid cell number.',5);
	return false;
	}*/
	
	
	/*if(!emergency_phone.match(regPhone)){
			inlineMsg('emergency_phone','You have entered an invalid phone number.',5);
	return false;
	}*/
	/*if(!supervisor_phone1.match(regPhone)){
			inlineMsg('supervisor_phone1','You have entered an invalid phone number.',5);
	return false;
	}*/
	/*if(!supervisor_phone2.match(regPhone)){
			inlineMsg('supervisor_phone2','You have entered an invalid phone number.',5);
	return false;
	}*/
	
	if(!email==""){
		if(!email.match(emailRegex)){
			inlineMsg('email','You have entered an invalid email address.',5);
			return false;
			}
	}
	if(!emergency_name==""){
		if(!emergency_name.match(nameRegex)){
			inlineMsg('emergency_name','You have entered an invalid name.',5);
			return false;
		}
	}
	if(!school_city=="") {
		if(!school_city.match(nameRegex)) {
			inlineMsg('school_city','You have entered an invalid ciyt/state name.',5);
			return false;
		}
	}
	if(!college_city=="") {
		if(!college_city.match(nameRegex)) {
			inlineMsg('college_city','You have entered an invalid ciyt/state name.',5);
			return false;
		}
	}
	if(!other_city=="") {
		if(!other_city.match(nameRegex)) {
			inlineMsg('other_city','You have entered an invalid ciyt/state name.',5);
			return false;
		}
	}
	
	if(!supervisor1==""){
		if(!supervisor1.match(nameRegex)){
			inlineMsg('supervisor1','You have entered an invalid name.',5);
			return false;
		}
	}
	if(!supervisor2=="") {
		if(!supervisor2.match(nameRegex)){
			inlineMsg('supervisor2','You have entered an invalid name.',5);
			return false;
		}
	}
	if(ref_other==""){
		inlineMsg('ref_other','Please Specify the "Reffered By" selection.',5);
		return false;
	}
	
	for(var j=1; j<=addmore_counter; j++){
		var ref_name = document.getElementById('ref_name'+j).value;
		var ref_phone=document.getElementById('ref_phone'+j).value;
		if(ref_name == "") {
			inlineMsg('ref_name'+j,'Provide name.',5);
			return false;
		}else if(!ref_name.match(nameRegex)) {
			inlineMsg('ref_name'+j,'You have entered an invalid  name.',5);
			return false;
		}
		if(ref_phone == "") {
			inlineMsg('ref_phone'+j,'Provide phone number.',5);
			return false;
		}
		
		
	}
	
	
	
	
	if(agree==""){
		inlineMsg('agree1','Select agree or disagree ',5);
		return false;
	
	}else if(agree=="No"){
		inlineMsg('agree1','Form will not be submitted if disagreed. ',5);
		return false;
	
		}
		
		
//	if(pemail_address == "") {
//		inlineMsg('pemail_address','You must provide your email address.',5);
//		return false;
//	}
	//if(!pemail_address.match(emailRegex)) {
//		inlineMsg('pemail_address','You have entered an invalid email address.',5);
//		return false;
//	}
//	if(services_category == 0) {
//		inlineMsg('services_category','You have to select services category.',5);
//		return false;
//	}
//	if(form.plan_category_id != undefined)
//	if(plan_category_id == 0) {
//		inlineMsg('plan_category_id','You have to select plan category.',5);
//		return false;
//	}
//	if(form.plan_id != undefined)
//	if(plan_id == 0) {
//		inlineMsg('plan_id','You have to select plan.',5);
//		return false;
//	}
//	if(subject == '') {
//		inlineMsg('subject','Please provide subject line.',5);
//		return false;
	//}
	else
		return true;
}
		
// START OF MESSAGE SCRIPT //

var MSGTIMER = 20;
var MSGSPEED = 5;
var MSGOFFSET = 3;
var MSGHIDE = 3;

// build out the divs, set attributes and call the fade function //
function inlineMsg(target,string,autohide) {
  var msg;
  var msgcontent;
  if(!document.getElementById('msg')) {
    msg = document.createElement('div');
    msg.id = 'msg';
  	msgcontent = document.createElement('div');
    msgcontent.id = 'msgcontent';
    document.body.appendChild(msg);
    msg.appendChild(msgcontent);
    msg.style.filter = 'alpha(opacity=0)';
    msg.style.opacity = 0;
    msg.alpha = 0;
  } else {
    msg = document.getElementById('msg');
    msgcontent = document.getElementById('msgcontent');
  }
  msgcontent.innerHTML = string;
  msg.style.display = 'block';
  var msgheight = msg.offsetHeight;
  var targetdiv = document.getElementById(target);
  targetdiv.focus();
  var targetheight = targetdiv.offsetHeight;
  var targetwidth = targetdiv.offsetWidth;
  var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
  var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSET;
  msg.style.top = topposition + 'px';
  msg.style.left = leftposition + 'px';
  clearInterval(msg.timer);
  msg.timer = setInterval("fadeMsg(1)", MSGTIMER);
  if(!autohide) {
    autohide = MSGHIDE;  
  }
  window.setTimeout("hideMsg()", (autohide * 1000));
}

// hide the form alert //
function hideMsg(msg) {
  var msg = document.getElementById('msg');
  if(!msg.timer) {
    msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
  }
}
function isInteger(s)
{
      var i;
		s = s.toString();
      for (i = 0; i < s.length; i++)
      {
         var c = s.charAt(i);
         if (isNaN(c)) 
	   {
		//alert("Given value is not a number");
		return false;
	   }
      }
      return true;
}

// face the message box //
function fadeMsg(flag) {
  if(flag == null) {
    flag = 1;
  }
  var msg = document.getElementById('msg');
  var value;
  if(flag == 1) {
    value = msg.alpha + MSGSPEED;
  } else {
    value = msg.alpha - MSGSPEED;
  }
  msg.alpha = value;
  msg.style.opacity = (value / 100);
  msg.style.filter = 'alpha(opacity=' + value + ')';
  if(value >= 99) {
    clearInterval(msg.timer);
    msg.timer = null;
  } else if(value <= 1) {
    msg.style.display = "none";
    clearInterval(msg.timer);
  }
}

// calculate the position of the element in relation to the left of the browser //
function leftPosition(target) {
  var left = 0;
  if(target.offsetParent) {
    while(1) {
      left += target.offsetLeft;
      if(!target.offsetParent) {
        break;
      }
      target = target.offsetParent;
    }
  } else if(target.x) {
    left += target.x;
  }
  return left;
}

// calculate the position of the element in relation to the top of the browser window //
function topPosition(target) {
  var top = 0;
  if(target.offsetParent) {
    while(1) {
      top += target.offsetTop;
      if(!target.offsetParent) {
        break;
      }
      target = target.offsetParent;
    }
  } else if(target.y) {
    top += target.y;
  }
  return top;
}

// preload the arrow //
if(document.images) {
	
	arrow = new Image(7,80); 
  	arrow.src = "images/msg_arrow.gif"; 
	}