//Registration validation
function registration_Validation(form)
 {
  //alert(form);
  //return false;
  
  var theForm = document.registration;
  var first_name = form.first_name.value;
  var last_name=form.last_name.value;
  var address_1=form.address_1.value;
  var city=form.city.value;
  var state=form.state.value;
  var other_state=form.other_state.value;
  var postal=form.postal.value;
  var country=form.country.value;
  var email=form.email.value;
  var confirm_email=form.confirm_email.value;
  var country_code=form.country_code.value;
  var area_code=form.area_code.value;
  var number=form.number.value;
 // var extension=form.extension.value;
  var mob_country_code=form.mob_country_code.value;
  var mob_area_code=form.mob_area_code.value;
  var mob_number=form.mob_number.value;
  if(document.getElementById('npi_number'))
  var npi_number = form.npi_number.value;
  
  if(document.getElementById('credential_name'))
  var credential = form.credential_name.value;
  
  var dob="";
  //var dob=form.dob.value;
  var MM = form.month_birth.value;
  var DD = form.date_birth.value;
  var YYYY = form.year_birth.value;
  if(MM != "" && DD != "" && YYYY != "")
  {
  dob = MM+"/"+DD+"/"+YYYY;
  }
  form.dob.value = dob;	// setting into hidden variable for getting value in submit page
 
  var Male=form.Male.checked;
  var Female=form.Female.checked;
  var reg_username=form.reg_username.value;
  var reg_password=form.reg_password.value;
  var confirm_password=form.confirm_password.value;
  var hid_user_name_flag = form.hid_user_name_flag.value;
  var hid_email_must_check = form.email_validation_flag.value;
  var availability_checkbox2=form.availability_checkbox2.checked;  
  
  var myvars = new RegExp("^((0)|(1)|(2)|(3)|(4)|(5)|(6)|(7)|(8)|(9)|(-)|(\\()|(\\))|(\\.))+$","g");
  var emailcars=/^[a-zA-Z0-9._%-]+@[A-Z0-9a-z.-]+\.[A-Za-z]{2,4}$/;
  var uservars = new RegExp("^((0)|(1)|(2)|(3)|(4)|(5)|(6)|(7)|(8)|(9)|(_)|([a-zA-Z]))+$","g");
  var email = document.registration.email.value;
  var confirm_email = document.registration.confirm_email.value;
  var passwod = document.registration.reg_password.value;
  var password_conform = document.registration.confirm_password.value;
  var RegExPhone = new RegExp(/^\d\d\d-\d\d\d-\d\d\d\d$/);
  
    if(npi_number == "") 
	{
	 
	    inlineMsg('npi_number','Please enter your NPI #.',2);
	    return false;
	}
	
	
 	if(first_name == "") 
	{
	 
	    inlineMsg('first_name','Please enter your First Name.',2);
	    return false;
	}
     
    if(last_name == "") 
  	{

	    inlineMsg('last_name','Please enter your Last Name.',2);
	    return false;
  	}
  	
  	if(credential == "") 
	{
	 
	    inlineMsg('credential_name','Please enter your credential.',2);
	    return false;
	}
	
   if(address_1 == "") 
  	{
 	
	    inlineMsg('address_1','Please enter your Address.',2);
	    return false;
 	 }
     
     if(city=="")
     {
	     inlineMsg('city','Please enter your City.',2);
	     return false;
     }
     if(state=="")
     {
	    inlineMsg('state','Please select your State.',2);
	    return false;
     }
     
    /* if($('div_other_state').style.visibility=="visible" && $('div_other_state').style.display=="")
     {
			
	      if(other_state=="")
	      {
	      inlineMsg('other_state','Please enter Other State/Province.',2);
    	return false;
	      }
	         
      }
      */
    
     if(postal=="")
     {
	     inlineMsg('postal','Please enter your Zip/postal code.',2);
	     return false;
     }
     //zip postal code validation 
			
	var zipvars = new RegExp("^[0-9]{5}[-]?[0-9]{0,4}$","g");
	
	var zipRegExp  = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
	 
    if(postal.indexOf(' ') != -1)
    {
        inlineMsg('postal','Spaces are not allowed in zipcode.',2);
      	//alert("Please enter username");
     	return false;
    }
	else if(!(zipRegExp.test(postal)))
	{
		inlineMsg('postal','zip code format error. example: 12345-1234',2);
	    return false;
	
	}
	else if((!postal.match(zipvars)) )
    {
	    inlineMsg('postal','zip-code format error. example: 12345-1234',2);
	    return false;
 	}
 	
 	//END zip postal code validation 
  
     if(country=="")
     {
	     inlineMsg('country','Please select your Country.',2);
	     return false;
     }
          
     if(hid_email_must_check == "true" || email !="" || confirm_email !="")
     {
     	if(email=="")
     	{
	     	inlineMsg('email','Please enter your email.',2);
	     	return false;
     	}
     
     	if(!email.match(emailcars)) 
     	{
	    	inlineMsg('email','Please enter a valid email',2);
	    	return false;
 	 	}
     	if(confirm_email=="")
     	{
	     	inlineMsg('confirm_email','Please confirm your email.',2);
	     	return false;
     	}
     	else
     	{
     	if(!confirm_email.match(emailcars)) 
     	{
	    	inlineMsg('confirm_email','Please enter a valid email',2);
	    	return false;
 	 	}
     	if(confirm_email.match(email)==null)
      	{
       		inlineMsg('confirm_email','Email id doesnt match',2);
   	   		return false;
          
      	}
      	}
      }
      
    /* if(country_code=="")
     {
	     inlineMsg('country_code','Please enter Country code.',2);
	     return false;
     }
    if(country_code!="")
     {
     if(isNaN(country_code))
     {
     	inlineMsg('country_code','Please enter valid Country code.',2);
	    return false;
     	
     }
     
     }*/
     
      if(area_code=="")
     {
	     inlineMsg('area_code','Please enter Area code.',2);
	     return false;
     }
    if(area_code!="")
     {
     if(isNaN(area_code))
     {
     	inlineMsg('area_code','Please enter valid Area code.',2);
	    return false;
     	
     }
     
     }
     
     if(number=="")
     {
	     inlineMsg('number','Please enter Number.',2);
	     return false;
     }
    var number_expression=/^\d{3}-\d{4}$/; 
    if(number!="")
     {
      if(number.search(number_expression)==-1)
     	{
     	
    	inlineMsg('number','Please enter a valid number.',2);
    	return false;
     	}
     /*if(isNaN(number))
     {
     	inlineMsg('number','Please enter valid Number.',2);
	    return false;
     	
     }*/
     
     }
     
    
   /* if(extension!="")
     {
     if(isNaN(extension))
     {
     	inlineMsg('extension','Please enter valid Extension.',2);
	    return false;
     	
     }
     
     }*/
     
     //mobile phone validation
     
    /*if(mob_country_code!="")
     {
     if(isNaN(mob_country_code))
     {
     	inlineMsg('mob_country_code','Please enter valid Country code.',2);
	    return false;
     	
     }
     
     }*/
    if(mob_area_code!="")
     {
     if(isNaN(mob_area_code))
     {
     	inlineMsg('mob_area_code','Please enter valid Area code.',2);
	    return false;
     	
     }
     
     }

    if(mob_number!="")
     {
      if(mob_number.search(number_expression)==-1)
     	{
     	
    	inlineMsg('mob_number','Please enter a valid number.',2);
    	return false;
     	}
    /* if(isNaN(mob_number))
     {
     	inlineMsg('mob_number','Please enter valid Number.',2);
	    return false;
     	
     }*/
     
     }
     
    if(dob=="")
     		{
     		inlineMsg('year_birth','Please select valid Birth Date.',2);
	     	return false;
     		}
    if(!checkDOBFormat(dob))
  	{
  		return false;
  	}
       
    
    if(Male==false && Female ==false)
     {
	     inlineMsg('Male','Please select Gender.',2);
	     return false;
     }
          
     if(reg_username=="")
     {
	     inlineMsg('reg_username','Please enter User Name.',2);
	     return false;
     }
    
    if(hid_user_name_flag == 1)
	{
		inlineMsg('hid_user_name_flag','Username already exist.',2);
	    return false;
	}
	
	
	if((!reg_username.match(uservars)) || (reg_username.length < 3) || (reg_username.length > 20))
    {
	    inlineMsg('reg_username','Username not long enough!',2);
	    return false;
 	}
	
	 // Password Validation.............START
	
     if(reg_password=="")
     {
     	 inlineMsg('reg_password','Please enter Password',2);
   		 return false;
     }
     if(reg_password.length < 8 || reg_password.length > 16)
	 {
		
	 inlineMsg('reg_password','Password should be between 8 characters and 16 characters',2);
     return false;
	 }
	 
	/*
	if(!(reg_password.match('[a-z]')&&reg_password.match('[A-Z]')&&reg_password.match('[0-9]')))
	{
		
	inlineMsg('reg_password','Password must contain atleast one digit,one lower case and one upper case alphabet',2);
    return false;
	}
	*/
	
    if(!checkPassword(reg_password))
		{
		inlineMsg('reg_password','Password must have 8-16 characters (alphabets and numbers only). Must have at least one alphabet and at least one number.',2);
		return false;
		}
		
     if(confirm_password=="")
     {
       
       inlineMsg('confirm_password','Please enter Password',2);
    	return false;
       
     }
   
    
      if(password_conform.match(passwod)==null)
      {
      
      	inlineMsg('confirm_password','Password doesnt match',2);
    	return false;
           
       
      }

    if(availability_checkbox2==false)
      {
      
      	
	    inlineMsg('availability_checkbox2','You should agree to the  terms of service for successful registration',2);
    	return false; 
       
      }
    
     
    
   }
   
   
  //End of Registration validation //
  // 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) {
//alert(document.getElementById('target'));
  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 * 4000));
}

// hide the form alert //
function hideMsg(msg) {
  var msg = document.getElementById('msg');
  if(!msg.timer) {
    msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
  }
}

// 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.png"; 
  //alert(arrow.src);
}
  
 
  function ShowOtherSate()
  {
		var state=document.getElementById('state').value;
		//alert(state);
		if(state=='XX')
		{ 
			document.getElementById('div_other_state').style.visibility="visible";
			document.getElementById('div_other_state').style.display="";
			document.getElementById('other_state').value="";
			
		}
		else
		{
			document.getElementById('div_other_state').style.visibility="hidden";
			document.getElementById('div_other_state').style.display="none";
		}
  }
  
  function checkUserNameExistOnBlur(from)
  {

	
	
    var reg_username   = document.getElementById('reg_username').value;
   
    var flag_user_name = 0;
    
    var uservars = new RegExp("^((0)|(1)|(2)|(3)|(4)|(5)|(6)|(7)|(8)|(9)|(_)|([a-zA-Z]))+$","g");

    if((!reg_username.match(uservars)) || (reg_username.length < 3) || (reg_username.length > 20))
    {
    inlineMsg('reg_username','Username not long enough!',2);
    document.getElementById('reg_username').value="";
    //$('reg_username').focus();
    return false;
 	}
    
    else
    {
    if(from=='doctor')
	{
	
	var doc_user_id=document.getElementById('doc_user_id').value;
	//alert(doc_user_id);
	var url = "AjaxUserNameAvail.php";
	var pars = "user_name="+ document.getElementById('reg_username').value+"&uid="+doc_user_id;
	}
	else
	{
	
    var url = "AjaxUserNameExist.php";
    var pars = "user_name="+ document.getElementById('reg_username').value;
    }
    
  	var pars = pars;
  	$.ajax({
				url: 'AjaxUserNameExist.php',
				type: 'GET',
				data: pars,
				success: function(ret){
				showResponseUser(ret);
				}
				});
  	/*
  	var myAjax = new Ajax.Request(url,
		{
			method: 'get',
			parameters: pars,
			//asynchronous: false,
			onComplete: showResponseUser
		});
		*/
 	}
    }//end checkUserNameExistOnBlur
 
  function showResponseUser(req)
  {
   	//var res = req.responseText;
   	var res = req;
   	//alert(res);
   	var user_name   = document.getElementById('reg_username').value;
   	if(user_name !="")
   	{
   	if(res == 1)
  	{
  	 document.getElementById('hid_user_name_flag').value = 1;
   	 document.getElementById('div_user_avail').style.visibility='visible';
     document.getElementById('div_user_avail').style.display='';
     document.getElementById('div_user_avail').style.color='#FF0000';
     document.getElementById('div_user_avail').innerHTML=user_name+" Already Exists";
     document.getElementById('reg_username').value="";
  	 document.getElementById('reg_username').focus();
     }
     else
     {
     document.getElementById('hid_user_name_flag').value = 0;
     document.getElementById('div_user_avail').style.visibility='visible';
     document.getElementById('div_user_avail').style.display='';
     document.getElementById('div_user_avail').style.color='#009900';
     document.getElementById('div_user_avail').innerHTML=user_name+" Available";
     }
     }
   	
   }
  
  function getPhoneCode()
  {
  
  var url = "AjaxPhoneCode.php";
    
  	var pars = "country_code="+ document.getElementById('country');
  	//alert(pars);
  	var myAjax = new Ajax.Request(url,
		{
			method: 'get',
			parameters: pars,
			//asynchronous: false,
			onComplete: showResponsePhoneCode
		});
		//return;
 	}
    
 
  function showResponsePhoneCode(req)
  {
   	var res = req.responseText;
   	//alert(res);
   
     document.getElementById('country_code').value=res;
     document.getElementById('mob_country_code').value=res;
  	
   	
   }
   
   function checkValidDateBirth(inpDate)
{

	//inpDate = "dob";
	
	var strDate= document.getElementById(inpDate).value;
	
	//alert(strDate);	

	//alert(strDate.split("/"));	

	var dFields = strDate.split("/",3);
	
	var theForm = document.registration;
	var RegExDate1 = new RegExp(/^\d\d(\/)\d\d(\/)\d\d\d\d$/);
	var RegExDate2 = new RegExp(/^\d(\/)\d(\/)\d\d\d\d$/);
	var RegExDate3 = new RegExp(/^\d\d(\/)\d(\/)\d\d\d\d$/);
	var RegExDate4 = new RegExp(/^\d(\/)\d\d(\/)\d\d\d\d$/);
	
	//Phone number validation
	if (document.getElementById('dob').value != "" && document.getElementById('dob').value != "click to open")
	{

	var date_val1=RegExDate1.test(theForm['dob'].value);
	var date_val2=RegExDate2.test(theForm['dob'].value);
	var date_val3=RegExDate3.test(theForm['dob'].value);
	var date_val4=RegExDate4.test(theForm['dob'].value);
	
	
	if(date_val1==false)
	{
		if(date_val2==false)
	{
		if(date_val3==false)
	{
		if(date_val4==false)
	{
		document.getElementById(inpDate).value = "";
	
		inlineMsg('dob','Please enter a valid Date',2);
 		return false;
 		
	}
	}
	}
	
	}
	
	}
	
	//var checkValue = checkDate(inpDate);
	//if(checkValue != 1)
	//alert(checkValue);
	
	if(dFields[0] > 12)
	{
		
	document.getElementById('dob').value="";
	inlineMsg('dob','Please enter a valid Month',2);
 	 return false;
		
	}
	if(dFields[1] > 31)
	{
	document.getElementById('dob').value="";
	inlineMsg('dob','Please enter a valid Day',2);
 	 return false;
		
	}
	if(dFields[2] > 3000 || dFields[2] < 1900)
	{
		
	document.getElementById('dob').value="";
	inlineMsg('dob','Please enter a valid Year',2);
 	return false;
		
	}
	
	

}

/****************************************************************************/
//Added by mereena on 12/03/2009

function setTabToPhone(inpField)
{

var inpFieldValue=document.getElementById(inpField).value;

if(inpField=='area_code')
{
if(document.getElementById('number').value=="")
{
if(inpFieldValue.length == 3)
{
document.getElementById('number').focus();
}
}
}
if(inpField=='mob_area_code')
{
if(document.getElementById('mob_number').value=="")
{
if(inpFieldValue.length == 3)
{
document.getElementById('mob_number').focus();
}
}
}
}



/**************************************************************************/
  
