// JavaScript Document

/*



#----Notes-----------

Requirements: jquery 1.2.6 or later version.

This file required the following CSS, Add this to Your CSS File

<style type="text/css">
.redAllert{
background-color:#FFCC00;
border:1px solid #FF6600;
}

.greenAlert{
background-color:#99CC00;
border:1px solid #009900;
}
.valhint{ display:inline}
.valhint .hinttext{
display:none;
border:1px solid #FFCC00; 
background:#FFFF99;
color:#FF0000;
}

.valhint .msgimg{ display:none; left:0px; top:0px; padding:2px;
padding-left:20px;
height:20px;
width:30px;
}
.redAlertMsg{
background:url(images/wrong.gif) no-repeat  center left ;
color:#FF3333;
}

.greenAlertMsg{
background:url(images/ok.gif) no-repeat  center left ;
color:#006600;
padding:2px;
padding-left:40px;
}
</style>



#----End of Notes------
$(document).ready(function(){
	$("#lname").blur(function(){
	alert("me working");
	var callbackObj="#hintlname";
	var val=$("#fname").val();
	//data=validator(this,this.value,"charsonly")
	//data=validator(this,this.value,"isPasswd",val);
	var data=validator(this,this.value,"cmpDate",date1,this.value);
	instantval(this,data,callbackObj);
	
	});
	
	
	$("#gender").change(function(){
	alert("select me working");
	var callbackObj="#hintgender";
	alert(this.value);
	data=validator(this,this.value,"isBlank",1,10)
	instantval(this,data,callbackObj);
	});	

	
	
});


place this  inside the form:

id="hintlname" // must be unique 

<span  id="hintlname" class="valhint"><span class="msgimg"></span><span class="hinttext"> Type Your Message here</span></span>

#----- end of notes-----------------------------------------------------------------------------
*/

function instantval(obj,value,callbackObj) // This function is used to return the result in html objects
{
			// alert(value);
			 if(value=="" || value==false || value==undefined)
			 {
				// alert('Hi');
				$(obj).removeClass('greenAlert');
				$(obj).addClass('redAllert');
				$(callbackObj+" .msgimg").removeClass('greenAlertMsg');
				$(callbackObj+" .msgimg").addClass('redAlertMsg');
				$(callbackObj+" .msgimg").show();
				$(callbackObj+" .hinttext").fadeIn("slow");
				//obj.focus();
				
			 }
			 else
			 {
			 	 $(obj).removeClass('redAllert');
				 $(obj).addClass('greenAlert');
				 $(callbackObj+" .hinttext").hide();
				 $(callbackObj+" .msgimg").removeClass('redAlertMsg');
				 $(callbackObj+" .msgimg").html(" &nbsp;");
				 $(callbackObj+" .msgimg").addClass('greenAlertMsg');
				 $(callbackObj+" .msgimg").show();
				 
			 }
    
}


function validator(obj,value,type,mn,mx)
{
	value=trim(value," ");
	//alert("hi");
	if(type=="isEmail")// email validation
	{
 	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    if(reg.test(value) == false) 
		{
		//alert('Invalid Email Address');
		return false;
		}
	return true;
	}
	
	
	if(type=="isBlank")// required field validation.
	{
		//alert value=trim(value);
	//var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    if(value.length>=mn && value.length<=mx ) 
		{
			return true;
		}
		return false;
	}
	
	
	
	if(type=="isNumorNull")// Number Validation
	{
		
 	var reg = /^([0-9])+$/;
	if (value!="")
	{
		if(reg.test(value) == true && value.length>=mn && value.length<=mx) 
			{
			return true;
			}
		return false;
	}
	else
	{
		return false;
	}
	
	
	}
	
	
	if(type=="isNum")// Number Validation
	{
 	var reg = /^([0-9])+$/;
    if(reg.test(value) == true && value.length>=mn && value.length<=mx) 
		{
		return true;
		}
	return false;
	}

	
	if(type=="isDate")
	{
		
			var data=new Array();
			var data=value.split("-");
			var myDayStr =data[0];
			var myMonthStr =parseInt(data[1]-1);
			var myYearStr =data[2];
			var myMonth = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); 
			var myDateStr = myDayStr + ' ' + myMonth[myMonthStr] + ' ' + myYearStr;
			var myDate = new Date();
			if (mn==undefined||mn=="")
			{
			var curDate= new Date();
			var curYear= curDate.getFullYear();
			}else
			{
			var curYear=mn;
			}
			
			myDate.setFullYear( myYearStr, myMonthStr, myDayStr );
			
			if ( myDate.getMonth() != myMonthStr || myDate.getFullYear()>curYear)
			{
			  return false;
			} 
			else 
			{
			 return true;
			}
		
	}
	
	  
	  if(type=="cmpDate") 
	  {
		var fristDate;
			fristDate=mn;
		var SecondDate;
			SecondDate=mx;
		//alert("fristDate"+fristDate);
		//alert("SecondDate"+SecondDate);
	    var checkDate1=validator(obj,value,"isDate",mn);
		//alert(checkDate1);
	    var checkDate2=validator(obj,value,"isDate",mx);
		//alert(checkDate2);
			
		var Date1 = new Date(fristDate);
		var Date2 = new Date(SecondDate);
		fristDate  =  Math.floor(Date1.getTime());
		SecondDate =  Math.floor(Date2.getTime());
		
		//alert(fristDate);
		//alert(SecondDate);
		
		if (fristDate<=SecondDate && fristDate!="" && SecondDate!="" )
			{
			 return true;
			}
		return false;
	  }
	
	
	if (type=="isPasswd")
	{// alert(mn);
		var reg =value;
		//alert (reg);
		
		data= reg.search(mn);
		
		//alert(data);
		if(data==0 || value.length<=6 || value.length>=32) 
			{
				return false;
			}
			
				var fliter=/\s/i;
				if (fliter.test(value)==true)
					{
					//alert("found space"); 
					return false;
					}
					else
					{
					//alert("not found"); 
					return true;
					}
			return false;
	}
	
	
if(type=="confirm")
	{
		if(value==mn)
		{
		return true;
		}
		return false;	
	}
	
if (type=="charsonly")
	{
		//alert(mx);
		
	
		var fliter=/^([a-zA-Z\. '-]+)+$/;
		//alert (value);
		value=trim(value," ");
		if(value!="")
		{
		if (fliter.test(value)==true && value.length>=mn && value.length<=mx)
			{
				return true;
			}
		else
			{
				return false;				
			}
		}
		else
		{
		return false;	
		}
		
		
	}	
	
if (type=="charsonlyornull")
	{
		//alert(mx);
		var fliter=/^([a-zA-Z\. '-]+)+$/;
		value=trim(value," ");
		if(value!="")
		{
		if (fliter.test(value)==true && value.length>=mn && value.length<=mx)
			{
				return true;
			}
		else
			{
				return false;				
			}
		}
		else
		{
		return true;	
		}
	}	
	
	
	
if (type=="nowild")
	{
		//alert(mx);
		var fliter=/^([a-zA-Z0-9\. '-]+)+$/;
		value=trim(value," ");
		if(value!="")
		{
		if (fliter.test(value)==true && value.length>=mn && value.length<=mx)
			{
				return true;
			}
		else
			{
				return false;				
			}
		}
		
		else
		{
		return false;	
		}
	}	
		
	
	if (type=="nowildornull")
	{
		//alert(mx);
		var fliter=/^([a-zA-Z0-9\. '-]+)+$/;
		value=trim(value," ");
		if(value!="")
		{
		if (fliter.test(value)==true && value.length>=mn && value.length<=mx)
			{
				return true;
			}
		else
			{
				return false;				
			}
		}
		else
		{
			return true;
		}
	}	


 }
 
 
function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}



function TestFileType(OBj,file,fileTypes) 
		{
		var fileName =file;
		//alert (fileName);
		if (fileName!="") 
		{
			dots = fileName.split(".")
			//get the part AFTER the LAST period.
			fileType = "." + dots[dots.length-1];
			if (fileTypes.join(".").indexOf(fileType) != -1 )
			{
				return true;
			}
			else
			{
				return false;
			}
					
		}
		else 
		{
			return false;
		}
		
		
		return false;
		
}



function check_length(OBJ,minLen,maxLen, counter)
{
var objval=OBJ.value;
	objval=trim(objval," ");

//alert (objval);
if (objval.length <=minLen || objval.length >= maxLen) {
// Alert message if maximum limit is reached.
// If required Alert can be removed.
// Reached the Maximum length so trim the textarea
objval=objval.substring(0, maxLen);
return false;
}
else
{ // Maximum length not reached so update the value of my_text counter
//alert(counter);
$(counter).html(maxLen - objval.length);
return true;
}
}


function check_length_Null(OBJ,maxLen, counter)
{
var objval=OBJ.value;
	objval=trim(objval," ");

//alert (objval);
if (objval.length >= maxLen) {
// Alert message if maximum limit is reached.
// If required Alert can be removed.
// Reached the Maximum length so trim the textarea
objval=objval.substring(0, maxLen);
return false;
}
else
{ // Maximum length not reached so update the value of my_text counter
//alert(counter);
$(counter).html(maxLen - objval.length);
return true;
}
}