 <!--  
  // Following function shows alert message and focuses on to the object from where it came.
  function msgAlert(Obj,msg)  { alert(fnMessages(msg));	Obj.select(); Obj.focus();	return false;}
  //function msgAlert(Obj,msg)  { alert(msg);	Obj.select(); Obj.focus();	return false;  }
  function isEmail(Obj,msg) 
	{      
	        //chrReplace(Obj," ","")
			var str = Obj.value;
			var pass = 0;
			if(!fnCombination("-,_,.,@",str))	
				{ msgAlert(Obj,msg);return false;}			
			if (window.RegExp) {var tempStr = "a";var tempReg = new RegExp(tempStr);if (tempReg.test(tempStr)) pass = 1;}
			if (!pass) {return (str.indexOf(".") > 2) && (str.indexOf("@") > 3);}
			var RE1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
			var RE2 = new RegExp("^[a-zA-Z0-9\\.\\_\\-]*[a-zA-Z0-9]\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
			//var msg =  "Please enter a valid email address it should be in format \n                 kiran@iridiuminteractive.com"
			if(! (!RE1.test(str) && RE2.test(str)))	{msgAlert(Obj,msg);	Obj.select();Obj.focus();	return false; }
			return true 
	}
	
	function isStrNo(Obj,msg,spaces)  
	{ 
		var str = Obj.value;
		if (spaces=="n" || spaces=="N")	 RE = new RegExp("^[a-zA-Z0-9]*[a-zA-Z0-9]$"); 
		else  RE = new RegExp("^[a-zA-Z0-9\\ ]*[a-zA-Z0-9]$");  
		if (!RE.test(str)){msgAlert(Obj,msg);return false; }
		return true;
	 }
	function isUserName(Obj,msg)  
	{ 
		var str = Obj.value;
		var RE = new RegExp("^[a-zA-Z0-9\\_]*[a-zA-Z0-9]$"); 		
		if (!RE.test(str)){msgAlert(Obj,msg);return false; }
		return true;
	 }
function isURL(Obj,msg)
	{
	//var indX = Obj.value.lastIndexOf("."), len = parseInt(Obj.value.length-1);
   if(!fnCombination("-,_,.",Obj.value))	
      { msgAlert(Obj,msg);return false;}
   else if (Obj.value.substring(0,4) == "www." || Obj.value.substring(0,11) == "http://www.")
    {    
		var str =  Obj.value.substring(Obj.value.substring(0,4) == "www."?4:11,Obj.value.length)
		var RE2 = new RegExp("^(\\[?)[a-zA-Z0-9\\-\\_\\.]+\\.([a-zA-Z]{2,3})(\\]?)$"); //|[0-9]{1,3}
		if(! ( RE2.test(str)))	{msgAlert(Obj,msg);	Obj.select();Obj.focus();	return false; }      
	    return true	
	}
	else if (!isNoUrl(Obj,msg))
			 return false;
    return true;      
	} 
	function isNoUrl(Obj,msg){ var str = Obj.value, RE = /^(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})$/;	if(!RE.test(str)){ msgAlert(Obj,msg);return false;}	return true;} //  123.123.123.123

	function fnCombination(strCombi,strVal)
	{
	var arr = strCombi.split(",")
	for(i=0;i<arr.length;i++)
	 for(j=0;j<arr.length;j++) 
	  if(strVal.indexOf(arr[i]+arr[j])>-1 || strVal.indexOf(arr[j]) == 0 )
			return false 
	return true		
	}
	
	// CHECK FOR NUMERIC VALUE ELSE ALERT MESSAGE AND FOCUS ON THE SAME
	function checkNumeric(Obj,msg){
		var strValue = Obj.value;
		if(isNaN(strValue))
			 msgAlert(Obj,msg); 
		else
			return true;			 
	}				 
	
	
	function isString(Obj,msg) { var str = Obj.value, RE = new RegExp("^[a-zA-Z\\ ]*[a-zA-Z]$");    if (!RE.test(str)){ msgAlert(Obj,msg);      return false; }    return true  ;   }
	function isTeleNo(Obj,msg) { var str = Obj.value, RE = new RegExp("^[0-9\\-\\(\\)\\+\\ ]*[0-9]$");       if (!RE.test(str)){ msgAlert(Obj,msg);	return false;	 }return true;}
	function isPosNo(Obj,msg)  { var str = Obj.value, RE = new RegExp("^[0-9]*[0-9]$");         if (!RE.test(str)){ msgAlert(Obj,msg);return false ; }return true;}
	function isPosNoWoM(Obj)  { var str = Obj.value, RE = new RegExp("^[0-9]*[0-9]$");         if (!RE.test(str)) return false ; return true;}	
	function isNULL(Obj,msg)   { if (Obj.value=="" || Obj.value==" " ){ msgAlert(Obj,msg); return false ; }return true; }	
	function isNULLTrim(Obj,msg)   { trim(Obj);if (Obj.value==""){ msgAlert(Obj,msg); return false ; }return true; }
	function isNULL1Of2F1(Obj1,Obj2,msg)   
		{ 
			trim(Obj1);
			trim(Obj2);			
			if ((Obj1.value=="") && (Obj2.value==""))
			{ 
				msgAlert(Obj1,msg);
				return false ; 
			}
			return true; 
		}
	function isNULL1Of2F2(Obj1,Obj2,msg)   { trim(Obj1);trim(Obj2);if ((Obj1.value=="") && (Obj2.value=="")){ msgAlert(Obj2,msg); return false ; }return true; }
	function isNULLWoM(Obj)   { trim(Obj);if (Obj.value=="") return false; return true; }
	function chrReplace(Obj,Find,Replace) 	{ var str = Obj.value, Search = new RegExp(Find,"g");	 Obj.value = str.replace(Search,Replace); return true; }
	function Equal(Obj,str1,str2,msg)	{	if(str1!=str2)	{	  msgAlert(Obj,msg)	;	  return false;	}	return true;	}
	function fnTxtObjLen(Obj,Len,msg){	if(Obj.value.length<Len)	{	  msgAlert(Obj,msg)	;  return false		;}  return true;}
	function isTeleNoEHIRC(Obj,msg) { var str = Obj.value, RE = new RegExp("^[0-9\\ \\-\\,]*[0-9]$");       if (!RE.test(str)){ msgAlert(Obj,msg);	return false;	 }return true;}
	//////////////////trim
	function trimAll(Obj)
	{
	 for (i=0;i<Obj.elements.length;i++)
	    if (Obj.elements[i].type == "text" || Obj.elements[i].type == "textarea" )      
	            trim(Obj.elements[i])
	 return true;  
	}
	
	function trim(Obj)
	{
	if (Obj.value.charAt(0)==" " )
	  {
	    Obj.value = Obj.value.substring(1,Obj.value.length)
	    trim(Obj)
	  } 
	 else if (Obj.value.charAt(Obj.value.length-1)==" " )
	  {
	    Obj.value = Obj.value.substring(0,Obj.value.length-1)
	    
	  }  	    
	 return true 
	}
	
	/////////// Replace all ' and "  with html codes
	function replaceAll(Obj)
	{ 
	//	Obj=document.formName
	for (i=0;i<Obj.elements.length;i++)
	    if (Obj.elements[i].type == "text" || Obj.elements[i].type == "textarea" )      
	      {
	        	chrReplace(Obj.elements[i],"\"","&quot;")
	            chrReplace(Obj.elements[i],"'","&#39;")	
	            trim(Obj.elements[i])
    
          }	    
	  return true;  
	 }   
	
	
/////////////////////////Sorting by Column names////////////////////////
	function setDataType(cValue)
  {
    // THIS FUNCTION CONVERTS DATES AND NUMBERS FOR PROPER ARRAY
    // SORTING WHEN IN THE SORT FUNCTION
    var isDate = new Date(cValue);
    if (isDate == "NaN")
      {
        if (isNaN(cValue))
          {
            // THE VALUE IS A STRING, MAKE ALL CHARACTERS IN
            // STRING UPPER CASE TO ASSURE PROPER A-Z SORT
            cValue = cValue.toUpperCase();
            return cValue;
          }
        else
          {
            // VALUE IS A NUMBER, TO PREVENT STRING SORTING OF A NUMBER
            // ADD AN ADDITIONAL DIGIT THAT IS THE + TO THE LENGTH OF
            // THE NUMBER WHEN IT IS A STRING
            var myNum;
            myNum = String.fromCharCode(48 + cValue.length) + cValue;
            return myNum;
          }
        }
  else
      {
        // VALUE TO SORT IS A DATE, REMOVE ALL OF THE PUNCTUATION AND
        // AND RETURN THE STRING NUMBER
        //BUG - STRING AND NOT NUMERICAL SORT .....
        // ( 1 - 10 - 11 - 2 - 3 - 4 - 41 - 5  etc.)
        var myDate = new String();
        myDate = isDate.getFullYear() + " " ;
        myDate = myDate + isDate.getMonth() + " ";
        myDate = myDate + isDate.getDate(); + " ";
        myDate = myDate + isDate.getHours(); + " ";
        myDate = myDate + isDate.getMinutes(); + " ";
        myDate = myDate + isDate.getSeconds();
        //myDate = String.fromCharCode(48 + myDate.length) + myDate;
        return myDate ;
      }
  }
 /*
 Following function takes two text box objects and validates the date in it
 */
 function dateCompare(ObjTextDat1,ObjTextDat2)
 { 
	var Fdate = new Date(ObjTextDat1.value);
	var Sdate = new Date(ObjTextDat2.value); 
	
	alert(Fdate + Sdate)
	
	var Fval = Fdate.getTime();
	var Sval = Sdate.getTime();
	if (Sval<Fval)
	{
		alert("From date is greater than To date")
		ObjTextDat2.focus();
		return false;  
	}	
	else
	return true;    
}

/*
 Following function takes two text box object and compares with todate. If text box date is < 
 current date then it will display message. 
 */
 function curDateCompare(Obj,msg)
 { 
	var Fdate = new Date(Obj.value);
	var currentDate = new Date(); 
	
	
	
	var Fval = Fdate.getTime();
	var Sval = currentDate.getTime();
	
	if (Sval>Fval)
	{
		msgAlert(Obj,msg);
		return false; 
		
	}	
	else
	return true;    
}  

 function curDateCompareLess(Obj,msg)
 { 
	var Fdate = new Date(Obj.value);
	var currentDate = new Date(); 
	
	
	
	var Fval = Fdate.getTime();
	var Sval = currentDate.getTime();
	
	if (Sval<Fval)
	{
		msgAlert(Obj,msg);
		return false; 
		
	}	
	else
	return true;    
} 
// Compares an Year Value to be in the Range from Date of Birth Year to Current Year 
  function CompareYearRange(MIN_AGE,Dobyr,obj,msg)
  {   
    var val=parseInt(obj.value);
	var now = new Date();
	var curYear =now.getYear();
	var FromYr=Dobyr
	//alert("Curyear ="+curYear+"\nFromYr ="+FromYr+"\n Value = " + val);	
	if (MIN_AGE-14 >= val - FromYr)
	//if ((val<FromYr) || (val>curYear))
	{
		msgAlert(obj,msg);
		return false;
	}
	return true;	
  }
  
/*Following function  returns age
     usage: var i= getAge(d) */  
  function getAge(d)
  {              
      
      var d2=d.value;
      var d1 = new Date(d2);
      var now = new Date();  // Current Date
     
      //var x1= d1.getTime();
      //var x2= now.getTime();
      
      //alert("x1= " + x1 + "\nx2=" +x2);
      var y1 =d1.getYear();
      var y2 =now.getYear()
      //alert("y1= " + y1 + "\ny2=" +y2);
      if (y1<2000)
        { y1=y1+1900;
        }
        
      //if (x1<=x2)
      //{ 
      var diff = y2 - y1;
      //alert(diff);
         return diff;
      //}
       
      //else
      //{ return -1;}
            
 }  
 
 
 function fnCompareDateWithNow(sdt)
 {
 var today = new Date();
 var sdate=sdt;
 alert(sdate-today);
 }
 
 function fnSelectCombo (cmbObj,msg)
 {
    if (cmbObj.selectedIndex == 0){ alert(fnMessages(msg)); cmbObj.focus();	return false; }				
	return true     
 }

function fnGetTodaysDate()
	{	var dt=new Date();
	    s=dt.getDate();
	    var m=dt.getMonth();	    
	    var strMon='';
	    switch (m+1)
	    {
	     
			case 1: strMon='January';break;
			case 2: strMon='February';break;
			case 3: strMon='March';break;
			case 4: strMon='April';break;
			case 5: strMon='May';break;
			case 6: strMon='June';break;
			case 7: strMon='July';break;
			case 8: strMon='August';break;
			case 9: strMon='September';break;
			case 10: strMon='October';break;
			case 11: strMon='November';break;
			case 12: strMon='December';break;
	    }
	    
	    s=s+' '+strMon;
	    s=s+', '+dt.getYear();	    
		//var s='Today Date';
		return s;
	}
function fnMessages(msgNo)
	{
	
	switch (msgNo)
	 {
	    
	        
		//User Details:
			case	100:	return	"Please enter a valid user name !\nValid characters are A-Z,a-z,0-9,_" ;break;
			case	101:	return	"User name should have minimum of 6 characters !" ;break;
			case	102:	return	"Please enter a valid password !" ;break;
			case	103:	return	"Password should have minimum of 6 characters !" ;break;
			case	104:	return 	"Please enter your confirm password !" ;break;
			case	105:	return	"Confirm password should have minimum of 6 characters !" ;break;
			case	106:	return	"Your password and confirm password are not same !" ;break;
			case	107:	return	"Please reply the answer to your hint question !" ;break;
			case	108:	return	"Please select your date of birth !" ;break;
			case	109:	return	"Please enter your user name !" ;break;
			case	110:	return	"Please enter your regestration number !" ;break;						
			case	111:	return	"Please enter your login ID !" ;break;												
			case	112:	return	"Please enter your old password !" ;break;												
			case	113:	return	"Username should have minimum of 5 characters !" ;break;
			case	114:	return	"Password should have minimum of 4 characters !" ;break;
			case	115:	return	"Please enter password !\nValid characters are A-Z,a-z,0-9,_" ;break;
			case	116:	return	"Please enter your last name !" ;break;
			case	117:	return	"Please enter your first name !" ;break;
			case	118:	return	"Please enter your city name !" ;break;
			case	119:	return	"Please enter your state !" ;break;
			case	120:	return	"Please enter valid Pin/Zip code !" ;break;
			case	121:	return	"Please enter valid Telephone Number !" ;break;
			case	122:	return	"Please enter your first name !" ;break;
			case	123:	return	"Please enter your valid user name !" ;break;
			case	124:	return	"Login ID / User Id should be minimum of 6 Characters !" ;break;
			case	125:	return	"Please retype your password !" ;break;
			case	126:	return	"Your password and retype password are not same !" ;break;
			case	127:	return	"Please enter valid password\nPassword should accept only alphanumeric !" ;break;
		//Company:
			case	200:	return 	"Please enter your company name !" ;break;
			case	201:	return 	"Please enter a contact person name !" ;break;
			case	202:	return 	"Please enter your contact title !" ;break;
			case	203:	return	"Please enter your department name !" ;break;
			case	204:	return	"Please enter value for the field !"; break;
			case	205:	return	"Please select your date of birth !"; break;
			case	206:	return	"Please select the next date !"; break;
			case	207:	return	"Please select a date on which you would like to seek an appointment !"; break;
			case	208:	return	"Please select the expiry date !"; break;
			case	209:	return 	"Please enter the contact person designation !" ;break;
			case	210:	return 	"Please enter the contact person phone no !" ;break;
		//Address:
			case	300:	return	"Please enter your address !" ;break;
			case	301:	return 	"Please enter your city name !" ;break;
			case	302:	return	"Please enter your state !" ;break;
			case	303:	return	"Please enter country name !" ;break;
			case	304:	return	"Please enter Zip/Postal code of your city !" ;break;
            case	305:	return	"Please Enter valid Residence Phone No !" ;break;
            case	306:	return	"Please enter your valid office phone no !" ;break;
            case	307:	return	"Please Enter your valid mobile phone no !" ;break;
            case	308:	return 	"Please enter patient city !" ;break;
            case	309:	return 	"Please enter  your city information !" ;break;
		//Web:
			case	400:	return	"Please enter a valid email address !" ;break;
			case	401:	return	"Please enter the website URL !" ;break;
			case	402:	return	"Please enter a valid URL !" ;break;
		//Drop Down:
		
			case	500:	return	"Please select from drop down !" ;break;
			case	501:	return	"Please select  your country !" ;break;
			case	502:	return	"Please select a state !" ;break;			
			case	503:	return	"Please select a hint question !" ;break;
			case    504:    return	"Please select  your gender/sex !"	 ;break;
			case    505:    return  "Please select your nationality !";break;
			case	506:	return	"Please select your city name !" ;break;
			case	507:	return	"Please enter answer for you hint question that will be used when you forget password ! \n Choose a answer that only you know and that has nothing to do with your password !"; break;
		//Person Name:
			case	600:	return	"Please enter your first name !"	 ;break;
			case	601:	return	"Please enter your middle name !"	 ;break;
			case	602:	return	"Please enter your last name !"	 ;break;
			case	603:	return	"Please enter your name !"	 ;break;		
			case	604:	return	"Please enter your father's Name !"	 ;break;
			case    605:	return	"Please enter patient's name !"	 ;break;
			case    606:	return	"Please enter your name !"	 ;break;
			case    607:	return	"Please enter patient's address !"	 ;break;
	        case    608:	return	"Please enter your address !"	 ;break;
	        case    609:	return	"Please enter your relation with Patient !"	 ;break;
	        case    610:	return	"Please enter a title !"	 ;break;
	        case    611:	return	"Please enter  your message !"	 ;break;	        
	        case	612:	return	"Please enter father's/husband's name !"	 ;break;
	    // Question & Answer
	        case	651:	return	"Please enter your question !";break;	        
	        case	652:	return	"Please enter your answer !";break;
	        case	653:	return	"Please enter a subject for the question you would like to post !";break;
	        case	654:	return	"Please enter your question description !";break;
	        case	655:	return	"Please enter the description !";break;
		//Communication:
			case	700:	return	"Please enter your telephone number !" ;break;
			case	701:	return	"Please enter your fax number !" ;break;
			case	702:	return	"Please enter mobile number !" ;break;
			case	703:	return	"Please enter a valid telephone number !" ;break;
			case	704:	return	"Please enter a valid mobile no/pager no !" ;break;
			case	705:	return	"Mobile No/Pager No should have minimum of 10 digits !" ;break;
			case	706:	return	"Mobile No should have minimum of 10 digits !" ;break;
		
		//List Boxes:
			case	800:	return ;break;
		//Optional
			case	900:	return ;break;
			

		//Numeric check:	
			case	901:	return	"Please enter a valid Number !" ;break;
			case	902:	return	"Please enter a positive Number !" ;break;
			case	903:	return	"Please enter a valid Year of Passing !" ;break;
		//Miscellanious
			case	1001:	return	"Please enter a valid Degree Name !" ;break;
			case	1002:	return	"Please enter a Collage Name !" ;break;
			case	1003:	return	"Please enter your designation !" ;break;
			case	1004:	return	"Please enter your Institution Name !" ;break;
			case	1005:	return	"Please enter years or months of your work experiance !" ;break;
			case	1006:	return	"Please enter Correct Number of Months" ;break;
			case	1007:	return	"Please enter your medical council registration number !" ;break;
			case	1008:	return	"Please enter the information about state of medical council !" ;break;
			case	1009:	return	"Please select your marital status !" ;break;
			case	1010:	return	"Please enter your present position !" ;break;
			case	1011:	return	"Please enter your hospital phone number !" ;break;
			case	1012:	return	"Please enter your hospital timings !" ;break;
			case	1013:	return	"Please enter your hospital telephones no !" ;break;
			case	1014:	return	"Appointment date must be greater than current date !" ;break;
			case	1015:	return	"Please select a valid date !\n(Selected Date must be less than current date)" ;break;
			case	1016:	return	"Please enter a valid IPD No !\n(IPD No is Numeric)" ;break;
			case	1017:	return	"Expire date must be greater than current date !" ;break;
			case	1018:	return	"Please enter a valid credit card name !" ;break;
			case	1019:	return	"Please enter a valid credit card number !" ;break;
			case	1020:	return	"Please select a credit card type !" ;break;
			case	1021:	return	"Please select expiry date of your credit card !" ;break;
			case	1022:	return	"Expiry date of credit card must be greater than current date !" ;break;
			case	1023:	return	"Please enter valid amount to pay against the amount payable !" ;break;
			case	1024:	return	"Please enter Answer to the above Question or attatch an Archive !" ;break;
			case	1025:	return	"The IPD number you have entered is invalid ! \nPlease confirm the number and retype the same !" ;break;
			case	1026:	return	"Please enter publication request message !" ;break;
			case	1027:	return	"Please enter patient details !" ;break;
			case	1028:	return	"Please enter First Name / Last Name of a Doctor !" ;break;
			case	1029:	return	"Please enter hospital name !" ;break;
			case	1030:	return	"Please enter short name !" ;break;
			case	1031:	return	"Please enter the doctor code !" ;break;
			
	    default :
			return "Message not defined for - " + msgNo ;break;
		break  
	    
	 }
	}
//--> 



