/*(C) Chirag Ahmedabadi, ahmedabadi@gmail.com, www.php-india.net
Following are the keywords for validation

validateblank:-for checking of blanlk, tag should not be left blank

validatemail:-Checking for mail

validatedate:-Validation for date

HOW TO USE

pass parameter to function chkForm()

parameter should 

first parameter should be name of form eg 'myform'

second should be tag for which you wnat to do validation eg 'myinput'

third parameter is type of validaation u want to done eg "validatemail"

fourth is message test you want to show if error found

FOR DOING VALIDATION ON MORE THAT ONE THAG

same as about after finishing for first tag start same for second tag by puting comma and continu

same way more than one validation can be dont on same input tag

example 

<form name="myform" action="" method="post" onsubmit="chkForm('myform','myname','validatedate','Please Enter Correct Date','myname','validateblank','Please Enter Some Value')">

<script language language="javascript">
/* Follwoign code is being used to display roloever on script*/


//CHIRAG//

var mark_color 		= 	'#fdf5d2'//'#c1c1ff'
var current_row 	=	'#b7dbfe' //'#e8e8e8'
var OneRec = 'Please select atleast one record to proceed.';
function row_in(row)
{	
	row.style.cursor='hand';
	if( row.style.backgroundColor != mark_color )
		row.style.backgroundColor = current_row
}

function row_out(row)
{	
	if( row.style.backgroundColor != mark_color )
		row.style.backgroundColor = ''	
}

function setColor(row)
{	
	if( row.style.backgroundColor == current_row )
		row.style.backgroundColor = mark_color
	else if ( row.style.backgroundColor == mark_color )
		row.style.backgroundColor = current_row
}

//Functions working but not very effective hence commented by Hemal Nanavati on 19/05/05
/*
function checkAll(chk)
{
for (i = 0; i < chk.length; i++)
	chk[i].checked = true ;
}

function uncheckAll(chk)
{
for (i = 0; i < chk.length; i++)
	chk[i].checked = false ;
}
*/

var dtCh= "/";

var minYear=1995;

var maxYear=2010;


//Java Script for admin validation

//end of admin validation
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 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)

	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("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

	}

return true

}


function isValidDateInYYYYMMDD(fieldvalue)
{
	if (fieldvalue.length <= 0)
	{
		return true;
	}
	
	year = fieldvalue.substring(0,4);
	sep1 = fieldvalue.substring(4,5);
	month = fieldvalue.substring(5,7);
	sep2 = fieldvalue.substring(7,8);
	date = fieldvalue.substring(8,10);
		
	if (sep1 != '-')
		{ 
		alert('Invalid date.');
		return false; }
	if (sep1 != sep2)
		{	
		alert('Invalid date.');
		return false;}

	if (validateNumber(month) == false)
	{ 
		alert('Invalid date.');
		return false; }
	
	if (validateNumber(date) == false)
	{ 
		alert('Invalid date.');
		return false; }
	if (validateNumber(year) == false)
	{ 
		alert('Invalid date.');
		return false; }
	
	if (month == 0 && date == 0 && year == 0)
	{
		return true;
	}

		
	if (month == 0 || date == 0 || year == 0)
	{
		alert('Invalid date.');
		return false;
	}
	
	if (month > 12)
	{
		alert('Invalid Month.Month cannot be greater than 12');
		return false;
	}

	if (date > 31)
	{
		alert('Invalid Date.Date cannot be greater than 31');
		return false;
	}
	
	if (year > 2050 || year < 1950)
	{
		alert('Invalid Year value.');
		return false;
	}

	if (month == 4 || month == 6 || month == 9 || month == 11)
	{
		if (date > 30)
		{
			alert('Invalid date.');
			return false;
		}
	}
	
	if (month == 2)
	{
		if (date > 29)
		{
			alert('Invalid date.');
			return false;
		}
		
		if ( (year % 4) > 0)
		{
			if (date > 28)
			{
				alert('Invalid date.');
				return false;
			}
		}
	}
	
	return true;
}	



function validateNumber(fieldValue){

	if (fieldValue.length<1)
	{
		return true;
	}

	chk1="1234567890";

	for(i=0;i!=fieldValue.length;i++)
	{
		ch1=fieldValue.charAt(i);
		rtn1=chk1.indexOf(ch1);
		if(rtn1==-1)
		{
			return false;
			break;
		}
	}
	
	if (fieldValue.indexOf('.') > 0)
	{
		return false;
	}
	
	return true;
}

function validateFloatNumber(fieldValue)
{
	if (fieldValue.length<1)
	{
		return true;
	}
	chk1="1234567890.";
	for(i=0;i!=fieldValue.length;i++)
	{
		ch1=fieldValue.charAt(i);
		rtn1=chk1.indexOf(ch1);
		if(rtn1==-1)
		{
			return false;
			break;
		}
	}
	return true;
}

//end of date validation

//Code added by Hemal Nanavati on 19/05/05- starts here
//Left Trim function
function LTrim(strText)
{
	while (strText.substring(0,1) == ' ')
			strText = strText.substring(1, strText.length);
	return strText;
} 

//Right trim function
function RTrim(strText)
{
	while (strText.substring(strText.length-1,strText.length) == ' ')
			strText = strText.substring(0, strText.length-1);
	return strText;
}
	
//All Trim function	
function Trim(strText)
{
	return RTrim(LTrim(strText));
}

//Code added by Hemal Nanavati on 19/05/05- ends here

function chkForm (frm) 
{
	for (var i=1; i<chkForm.arguments.length; i++)
	{
		  fld=chkForm.arguments[i];
		  i++;
		  type=chkForm.arguments[i];
		   i++;
 		   txt=chkForm.arguments[i];
		   if(!document.forms[frm].elements[fld]){
		   	continue;
		   }
    	switch (type) 
		{
		     case 'validateblank' : 
			 {	       
				if(document.forms[frm].elements[fld].disabled){
					continue;
				}
				if(Trim(document.forms[frm].elements[fld].value) == "")
				{ 
					alert(txt);
					document.forms[frm].elements[fld].focus();
					return false;
				}
			 }
		     break;
			 case 'validateSelectmblank' :
			 {//This option can be used when we need to validate multi select list blank or not.
			 	imselflg=false;
			 	for(imsel=0;imsel<document.forms[frm].elements[fld].length;imsel++)
				{
					if(document.forms[frm].elements[fld].disabled)
						continue;
					if(document.forms[frm].elements[fld].options[imsel].selected && document.forms[frm].elements[fld].options[imsel].value!="")
					{
						imselflg=true;
						break; 
					}
				}
				if(imselflg==false)
				{
					alert(txt);
					return false;
				}
			 }
			 break;
			 case 'validateCheckboxblank' :
			 {//The function can be used if there are checkboxes with same name . ie. array of checkbox.
			 	imselflg=false;
				elem = document.getElementsByName(fld);
				for(imsel=0;imsel<elem.length;imsel++)
				{
					if(elem[imsel].disabled)
						continue;
					if(elem[imsel].checked)
					{
						imselflg=true;
						break;
					}
				}
				if(!imselflg)
				{
					alert(txt);
					return false;
				}
			 }
			 break;
			 case 'validateRadioblank' : 
			 {
				var a=1;
				for (j=0; j<document.forms[frm].elements[fld].length; j++) 
				{
					if (document.forms[frm].elements[fld][j].disabled){
						a=0;
						continue;
					}		
					if (document.forms[frm].elements[fld][j].checked) 
						a=0;
				}
				if(a==1)
				{
					alert(txt);
					return false;
				}	  
			  }
			  break;
			  case 'validatepass' : 
			  {
					var splitme=fld.split("_");
					var fld1=splitme[0];
					var fld2=splitme[1];
					var pass1=document.forms[frm].elements[fld1].value
					var pass2=document.forms[frm].elements[fld2].value
			
					if(pass2==null || pass2==null)
					{
						alert("To Verify Password Pass Both Fileds Name Concatenated with '_'");
						return false;
					}
					if(pass2!=pass1)
					{
						alert(txt);
						document.forms[frm].elements[fld1].focus();
						return false;
					}
				}
			   	break;
//password scripts ends here	 
     case 'validateemail' : 
	 {
			var emailstring = document.forms[frm].elements[fld].value;
			var ampIndex = emailstring.indexOf("@");
			var afterAmp = emailstring.substring((ampIndex + 1), emailstring.length);
				// find a dot in the portion of the string after the ampersand only
			var dotIndex = afterAmp.indexOf(".");
				// determine dot position in entire string (not just after amp portion)
			dotIndex = dotIndex + ampIndex + 1;
				// afterAmp will be portion of string from ampersand to dot
			afterAmp = emailstring.substring((ampIndex + 1), dotIndex);
				// afterDot will be portion of string from dot to end of string
			var afterDot = emailstring.substring((dotIndex + 1), emailstring.length);
			var beforeAmp = emailstring.substring(0,(ampIndex));
				//old regex did not allow subdomains and dots in names
				//var email_regex = /^[\w\d\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~]+(\.[\w\d\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~])*\@(((\w+[\w\d\-]*[\w\d]\.)+(\w+[\w\d\-]*[\w\d]))|((\d{1,3}\.){3}\d{1,3}))$/;
			var email_regex = /^\w(?:\w|-|\.(?!\.|@))*@\w(?:\w|-|\.(?!\.))*\.\w{2,3}/ 
				// index of -1 means "not found"
			if ((emailstring.indexOf("@") != "-1") &&
				(emailstring.length > 5) &&
				(afterAmp.length > 0) &&
				(beforeAmp.length > 1) &&
				(afterDot.length > 1) &&
				(email_regex.test(emailstring)) ) {				  
			} else {
					if (txt != '')
					{
						alert(txt);
					}
					else
					{
						alert("Please check your email address!");
					}
					document.forms[frm].elements[fld].focus();
					return false;
			}
	 }
	 break;
//Zip validation function starts here
     case 'validatezip' : 
	 {
		if ((document.forms[frm].elements[fld].value=="") || (document.forms[frm].elements[fld].value.length!=5)) 
		{
			alert(txt);
			document.forms[frm].elements[fld].focus();
			return false;
		}			
	 }
	 break;
	 case 'validateinteger' :
	 {
		if(!validateNumber(document.forms[frm].elements[fld].value))
		{
			alert(txt);
			document.forms[frm].elements[fld].focus();
			return false;
		}
		if(parseInt(document.forms[frm].elements[fld].value)<=0)
		{
			alert(txt);
			document.forms[frm].elements[fld].focus();
			return false;
		}
	 }
	 break;
     case 'validatedate' : 
	 {
	 	if (isValidDateInYYYYMMDD(document.forms[frm].elements[fld].value)==false)
		{
			document.forms[frm].elements[fld].focus();
			return false;
		}
	 }
	 case 'validatedatemmddyy' : 
	 {
	 	if (isValidDateInMMDDYYYY(document.forms[frm].elements[fld].value)==false)
		{
			document.forms[frm].elements[fld].focus();
			return false;
		}
	 }
	 break;
	 case 'validatequestionstring' :
	 {
		if(document.forms[frm].elements[fld].disabled)
			continue;
	 	if(document.forms[frm].elements[fld].value.length>0)
		 {
			 chk1 = "#^*+=|\~`{};<>\"\\";
			 chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
			 temptxt=" should start with alphabates or numbers. Only alphabates, numbers, :,(, ), [, ], /, -, @, , and _ are allowed";
			// txt =  txt+temptxt;
			 for(j=0;j!=document.forms[frm].elements[fld].value.length;j++)
			 {
				ch1= document.forms[frm].elements[fld].value.charAt(j);
				ch2= document.forms[frm].elements[fld].value.charAt(0);
				rtn1=chk1.indexOf(ch1);
				rtn3=chk3.indexOf(ch2);
				if(rtn3 < 0)
				{
					alert(txt);
					document.forms[frm].elements[fld].focus();
					return false;
					break;
				}
				else if(rtn1!=-1)
				{
					alert(txt);
					document.forms[frm].elements[fld].focus();
					return false;
					break;	
				}
			  }
		}

	 }
	 break;
	 // input string validations like '"\<>/?*&// specially for the query
	 case 'validateinputstring' :
	 {
		if(document.forms[frm].elements[fld].disabled)
			continue;
		 if(document.forms[frm].elements[fld].value.length>0)
		 {
			 chk1 = "#$%^*+=|\~`{};<>\'\"\\";
			 chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
			 temptxt=" should start with alphabates or numbers. Only alphabates, numbers, :,(, ), [, ], /, -, @, , and _ are allowed";
			// txt =  txt+temptxt;
			 for(j=0;j!=document.forms[frm].elements[fld].value.length;j++)
			 {
				ch1= document.forms[frm].elements[fld].value.charAt(j);
				ch2= document.forms[frm].elements[fld].value.charAt(0);
				rtn1=chk1.indexOf(ch1);
				rtn3=chk3.indexOf(ch2);
				if(rtn3 < 0)
				{
					alert(txt);
					document.forms[frm].elements[fld].focus();
					return false;
					break;
				}
				else if(rtn1!=-1)
				{
					alert(txt);
					document.forms[frm].elements[fld].focus();
					return false;
					break;	
				}
			  }
		}
	 } 
	 break;
	 case 'validateforquerystring' :	 
	 {
		 if(document.forms[frm].elements[fld].value.length>0)
		 {
			 chk1 = "#$%^*=|\~`{};<>?\'\"\@";
			 chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890()[]/-_,.:+";
			 temptxt=" should start with alphabates or numbers. Only alphabates, numbers, :,(, ), [, ], /,+, -, ,.,_ and , are allowed";
			 txt =  txt+temptxt;
			 for(j=0;j!=document.forms[frm].elements[fld].value.length;j++)
			 {
				ch1= document.forms[frm].elements[fld].value.charAt(j);
				ch2= document.forms[frm].elements[fld].value.charAt(0);
				rtn1=chk1.indexOf(ch1);
				rtn3=chk3.indexOf(ch2);
				if(rtn3 < 0)
				{
					alert(txt);
					document.forms[frm].elements[fld].focus();
					return false;
					break;
				}
				else if(rtn1!=-1)
				{
					alert(txt);
					document.forms[frm].elements[fld].focus();
					return false;
					break;	
				}
			 }
		  }
	  } 
	  break;
	//Checks URL Is Valid or not.
	 case 'validateurl' :
	 {
	 	var v = new RegExp(); 
    	v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$"); 
	    if (!v.test(document.forms[frm].elements[fld].value)) { 
	      	alert(txt); 
			document.forms[frm].elements[fld].focus();
        return false; 
	    } 
	 }
	 break;
	 // symbols validations like <>/?*&//	 
	 case 'validatesymbol' :
	 {
		 chk1 = "!@#$%^*+=|\~`{}[]:<>?,\'\"";
		 chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
		for(j=0;j!=document.forms[frm].elements[fld].value.length;j++)
		{
			ch1= document.forms[frm].elements[fld].value.charAt(j);
			ch2= document.forms[frm].elements[fld].value.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				alert(txt);
				document.forms[frm].elements[fld].focus();
				return false;
				break;
		 	}
			else if(rtn1!=-1)
			{
				alert(txt);
				document.forms[frm].elements[fld].focus();
				return false;
				break;	
			}
		}
	 } 
     break;
	 case 'validatenumber':
	 {
		if(document.forms[frm].elements[fld].disabled)
			continue;
		chk1="!@#$%^*()-+=|\~`{}[]: <>?/,abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		chk3="0123456789";
		for(k=0;k!=document.forms[frm].elements[fld].value.length;k++)
		{
			ch1= document.forms[frm].elements[fld].value.charAt(k);
			ch2= document.forms[frm].elements[fld].value.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				alert(txt);
				document.forms[frm].elements[fld].focus();
				return false;
				break;
		 	}
			else if(rtn1!=-1)
			{
				alert(txt); 
				document.forms[frm].elements[fld].focus();
				return false;
				break;	
			}
		 }
 	  }
	 break;
	 // validation for float number
	 case 'validateFloatNumber' :
	 {
		if (document.forms[frm].elements[fld].value.length<1)
		{
			return true;
		}
		chk1="1234567890.";
		for(j=0;j!=document.forms[frm].elements[fld].value.length;j++)
		{
			ch1=document.forms[frm].elements[fld].value.charAt(j);
			rtn1=chk1.indexOf(ch1);
			if(rtn1==-1)
			{
				alert(txt);
				document.forms[frm].elements[fld].focus();
				return false;
				break;
			}
		}
	 }
	 break;
// input string validations for only alphabets without considering case.
	 case 'validatealphanocase' :
	 {
			chk1 = "#$%^*-+=|\~`{};<>?\'\"\\1234567890:,./()[]@_";
		 	chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
			for(j=0;j!=document.forms[frm].elements[fld].value.length;j++)
			 {
				ch1= document.forms[frm].elements[fld].value.charAt(j);
				ch2= document.forms[frm].elements[fld].value.charAt(0);
				rtn1=chk1.indexOf(ch1);
				rtn3=chk3.indexOf(ch2);
				if(rtn3 < 0)
				{
					alert(txt);
					document.forms[frm].elements[fld].focus();
					return false;
					break;
		 		}
				else if(rtn1!=-1)
				{
					alert(txt);
					document.forms[frm].elements[fld].focus();
					return false;
					break;	
				}			
			}
	 } 
	 break;
	// input string validations for only small case alphabets
	 case 'validatealpha' :
	 {
		chk1 = "#$%^*-+=|\~`{};<>?\'\"\\ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890:,./()[]@_";
	 	chk3="abcdefghijklmnopqrstuvwxyz";
		for(j=0;j!=document.forms[frm].elements[fld].value.length;j++)
		{
			ch1= document.forms[frm].elements[fld].value.charAt(j);
			ch2= document.forms[frm].elements[fld].value.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				alert(txt);
				document.forms[frm].elements[fld].focus();
				return false;
				break;
		 	}
			else if(rtn1!=-1)
			{
				alert(txt);
				document.forms[frm].elements[fld].focus();
				return false;
				break;	
			}			
		}
 	} 
	break;
	case 'validateyear' :
	{
 		var fieldValue= document.forms[frm].elements[fld].value;
		if (fieldValue.length != 4 || fieldValue==0 || fieldValue<minYear || fieldValue>maxYear)
		{
			alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
			return false
			break;
		}
		if ((fieldValue.length!=4) || isNaN(fieldValue))
		{
			alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear);
			document.forms[frm].elements[fld].focus();
			return false;
			break;
		} 
 	}
	break;
	case 'validatealphanumeric' :
	{
		chk1 = "#$%^*-+=|\~`{};<>?\'\"\\ABCDEFGHIJKLMNOPQRSTUVWXYZ0:,./()[]@_";
	 	chk3="abcdefghijklmnopqrstuvwxyz123456789";
		for(j=0;j!=document.forms[frm].elements[fld].value.length;j++)
		{
			ch1= document.forms[frm].elements[fld].value.charAt(j);
			ch2= document.forms[frm].elements[fld].value.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				alert(txt);
				document.forms[frm].elements[fld].focus();
				return false;
				break;
		 	}
			else if(rtn1!=-1)
			{
				alert(txt);
				document.forms[frm].elements[fld].focus();
				return false;
				break;	
			}			
		}
 	} 
	break;
	case 'validatealphanumericnocase' :	
  	{	
		chk1 = "#$%^*-+=|\~`{};<>?\'\"\\:,./()[]@";
	 	chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
		for(j=0;j!=document.forms[frm].elements[fld].value.length;j++)
		 {
			ch1= document.forms[frm].elements[fld].value.charAt(j);
			ch2= document.forms[frm].elements[fld].value.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				alert(txt);
				document.forms[frm].elements[fld].focus();
				return false;
				break;
		 	}
			else if(rtn1!=-1)
			{
				alert(txt);
				document.forms[frm].elements[fld].focus();
				return false;
				break;	
			}			
		}
 	}
	break;
	case 'validatefilename' :	
	{
		chk1 = "#$%^*-+=|\~`{};<>?\'\"\\:,./()[]@";
 		chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";
		for(j=0;j!=document.forms[frm].elements[fld].value.length;j++)
		{
			ch1= document.forms[frm].elements[fld].value.charAt(j);
			ch2= document.forms[frm].elements[fld].value.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				alert(txt);
				document.forms[frm].elements[fld].focus();
				return false;
				break;
		 	}
			else if(rtn1!=-1)
			{
				alert(txt);
				document.forms[frm].elements[fld].focus();
				return false;
				break;	
			}			
		}
 	}  
	break;
	case 'validatepassword' :
	{ 
		if(document.forms[frm].elements[fld].value.length>0)
		{
			chk1 = " -+=|~{};<>?:,./()[]^\`\'\"\\";
			chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890#$%*@";

			for(j=0;j!=document.forms[frm].elements[fld].value.length;j++)
			{
				ch1= document.forms[frm].elements[fld].value.charAt(j);
				ch2= document.forms[frm].elements[fld].value.charAt(0);
				rtn1=chk1.indexOf(ch1);
				rtn3=chk3.indexOf(ch2);
				if(rtn3 < 0)
				{
					alert(txt);
					document.forms[frm].elements[fld].focus();			
					return false;
					break;
				}
				else if(rtn1!=-1)
				{			
					alert(txt);
					document.forms[frm].elements[fld].focus();
					return false;
					break;	
				}
			  }
		 }
		 else
		 {
		 	alert(txt);
			document.forms[frm].elements[fld].focus();
		 	return false;
			break;
		 }
	}
	break;
}
}
return true;
}
///////////////////following script for checking mail validation for chathostmail//////////
function checkmail(frm)
{ 
/*var fld = new Array(checkmail.arguments.length);
for (var i=0; i<checkmail.arguments.length; i++)
{
//alert(checkmail.arguments[i]);
 fld[i] = checkmail.arguments[i];
}
var frmname = fld[0];
var radio = fld[1];
var text = fld[2];
var subj= fld[3];
var mess = fld[4];
*/
	if (document.frmsendmail.usermail[1].checked)
	{   
		  if(document.frmsendmail.to.value.length<1)
		  {
		  alert("Enter the email address");
		  document.frmsendmail.to.focus();
		  return false;
		  }
		  else if((document.frmsendmail.to.value.indexOf("@")==-1) || (document.frmsendmail.to.value.indexOf(".")==-1) || (document.frmsendmail.to.value.length<=5) )
			{
			alert("Enter valid email address");
			document.frmsendmail.to.focus();
	     	return false;
			}
			else if(document.frmsendmail.subject.value.length<1)
			   {
			 alert("Please Enter Subject");
			 document.frmsendmail.subject.focus();
		     return false;
			 }
			 else if(document.frmsendmail.message.value.length<1)
			 {
			 alert("Please Enter Message");
			 document.frmsendmail.message.focus();
		     return false;
			 }
	}
	else if	((document.frmsendmail.usermail[0].checked))
	{ 
	 if(document.frmsendmail.subject.value.length<1)
	   {
	 alert("Please Enter Subject");
	 document.frmsendmail.subject.focus();
     return false;
	 }
	 else if(document.frmsendmail.message.value.length<1)
	 {
	 alert("Please Enter Message");
	 document.frmsendmail.message.focus();
     return false;
	 }
	} 
	//return false;
}

function validateEmail(email)
{ 
	var emailstring = email;
	var ampIndex = emailstring.indexOf("@");
	var afterAmp = emailstring.substring((ampIndex + 1), emailstring.length);
	// find a dot in the portion of the string after the ampersand only
	var dotIndex = afterAmp.indexOf(".");
	// determine dot position in entire string (not just after amp portion)
	dotIndex = dotIndex + ampIndex + 1;
	// afterAmp will be portion of string from ampersand to dot
	afterAmp = emailstring.substring((ampIndex + 1), dotIndex);
	// afterDot will be portion of string from dot to end of string
	var afterDot = emailstring.substring((dotIndex + 1), emailstring.length);
	var beforeAmp = emailstring.substring(0,(ampIndex));
	//old regex did not allow subdomains and dots in names
	//var email_regex = /^[\w\d\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~]+(\.[\w\d\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~])*\@(((\w+[\w\d\-]*[\w\d]\.)+(\w+[\w\d\-]*[\w\d]))|((\d{1,3}\.){3}\d{1,3}))$/;
	var email_regex = /^\w(?:\w|-|\.(?!\.|@))*@\w(?:\w|-|\.(?!\.))*\.\w{2,3}/ 
	var myRegEx=/@/gi;
	matchArr= emailstring.match(myRegEx);
	if(matchArr!=null){
		if(matchArr.length!=1){
			return false;
		}
	}else{
		return false;
	}
	// index of -1 means "not found"
	if ((emailstring.indexOf("@") != "-1") && (emailstring.length > 5) && (afterAmp.length > 0) && (beforeAmp.length > 1) && (afterDot.length > 1) && (email_regex.test(emailstring)))
	{
		return true;
	}
	else
	{
		return false;
	}
}

//Following lines of code are added by Hemal Nanavati on 19/05/05
//This are the functions commonly used on all the list pages
//List page javascript functions Starts here
//*****************************************************************


// input string validations for only small case alphabets
 function validatealpha(alphastring)
 {
 
	chk1 = "#$%^*-+=|\~`{};<>?\'\"\\ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890:,./()[]@_&~";
 	chk3="abcdefghijklmnopqrstuvwxyz";
		for(j=0;j!=alphastring.length;j++)
		 {
			ch1= alphastring.charAt(j);
			ch2= alphastring.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				return false;
				break;
		 	}
			else if(rtn1!=-1)
			{
				return false;
				break;	
			}			
		}
	return true;
 } 
function validate(frm,sAction,msg)
{	
	var validflag = false;
	var x;
	for (i=0;i<document.forms[frm].elements.length;i++)
	{
		if (document.forms[frm].elements[i].id == 'chk' && document.forms[frm].elements[i].checked)
		{
			validflag = true;
			break;
		}
	}
	if (validflag == false)
	{
		alert(OneRec);
		void(0);
		return false;
	}
	else
	{
		if(msg!="")
			x = confirm(msg);	
		else
			x=true;	
	}	
	if (x)
	{
		document.forms[frm].act.value = sAction;
		document.forms[frm].submit();
		return true;
	}
	else
		return false;
}
function chk_uncheck(frm,chk){

	if(document.forms[frm].chkall.checked == true){
		checkAll(frm,chk);
	} else {
		uncheckAll(frm,chk)
	}
return true;
}
function checkAll(frm,chkname)
{
     var docF=document.forms[frm];
     
     for(var i=0;i<docF.elements.length;i++)
     {
          if(docF.elements[i].name==chkname && docF.elements[i].type=="checkbox")
               docF.elements[i].checked=true;
     }
	 return true;
}
function uncheckAll(frm,chkname)
{
     var docF=document.forms[frm];
     for(var i=0;i<docF.elements.length;i++)
     {
          if(docF.elements[i].name==chkname && docF.elements[i].type=="checkbox")
               docF.elements[i].checked=false;
     }
	 return true;
}
//Added By Jigar Dave
function checkState(frm,chkname)
{
	var flg=true;
	var docF=document.forms[frm];
    for(var i=0;i<docF.elements.length;i++)
    {
       if(docF.elements[i].name==chkname && docF.elements[i].type=="checkbox")
		{
	  		if(docF.elements[i].checked==false)
			{
				flg=false;
				break;
			}	
		 }			
     }
	 docF.chkall.checked = flg;
	 return true;
}


//End of add by chirag for toll tip
//Individual Function added by Jigar
function chkBlk(objVal)
{
	if(objVal*255 == "")
		return true;
	return false;	
}

function chkInputString(objval)
{
	if(objval.length>0)
	{
		chk1 = "#^*=|\~`{};\"\\";
		chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890$%";
		for(j=0;j!=objval.length;j++)
		{
			ch1= objval.charAt(j);
			ch2= objval.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				return false;
				break;
			}
			else if(rtn1!=-1)
			{
				return false;
					break;	
			}
		  }
	 }
	 else
	 {
	 	return false;
	 }
	 return true;
}
function validatePassword(objval)
{
	if(objval.length>0)
	{
		chk1 = " -+=|~{};<>?:,./()[]^\`\'\"\\";
		chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890#$%*@";
		for(j=0;j!=objval.length;j++)
		{
			ch1= objval.charAt(j);
			ch2= objval.charAt(0);
			rtn1=chk1.indexOf(ch1);
			rtn3=chk3.indexOf(ch2);
			if(rtn3 < 0)
			{
				return false;
				break;
			}
			else if(rtn1!=-1)
			{
				return false;
					break;	
			}
		  }
	 }
	 else
	 {
	 	return false;
	 }
	 return true;
}

//function checks Username for 6-8 chars, only alphanumeric chars allowed for Username.

function CheckUsername(formname,username){
var user = document.forms[formname].elements[username];

	if( (user.value.length<6) || (user.value.length>8))
	{
		alert(USERLENGTH);
		user.focus();
		return false;
	}

	if(!chkForm(formname,username,'validatealphanumericnocase',USERNAMEMSG))
	{
		return false;
	}

return true;	
}

//function checks password for 6-8 chars, only alphanumeric chars with special chars like #$%*@ are allowed for password.
function CheckPassword(formname, password){
var pass = document.forms[formname].elements[password];

	if( (pass.value.length<6) || (pass.value.length>8))
	{
		alert(PASSLENGTH);
		pass.focus();
		return false;
	}	
	if(!validatePassword(pass.value))	
	{
		alert(PASSWORDMSG);
		pass.focus();
		return false;
	}	
return true;	
}

function isValidDateInMMDDYYYY(fieldvalue)
{
	if (fieldvalue.length <= 0)
	{
		return true;
	}
	
	month = fieldvalue.substring(0,2);
	sep1 = fieldvalue.substring(2,3);
	date = fieldvalue.substring(3,5);
	sep2 = fieldvalue.substring(5,6);
	year = fieldvalue.substring(6);
	if (sep1 != '/')
		{ 
		alert('Invalid date formate. It should be MM/DD/YYYY');
		return false; }
	if (sep1 != sep2)
		{	
		alert('Invalid date.');
		return false;}

	if (validateNumber(month) == false)
	{ 
		alert('Invalid date.');
		return false; }
	
	if (validateNumber(date) == false)
	{ 
		alert('Invalid date.');
		return false; }
	if (validateNumber(year) == false)
	{ 
		alert('Invalid date.');
		return false; }
	
	if (month == 0 && date == 0 && year == 0)
	{
		return true;
	}

		
	if (month == 0 || date == 0 || year == 0)
	{
		alert('Invalid date.');
		return false;
	}
	
	if (month > 12)
	{
		alert('Invalid Month. Month cannot be greater than 12');
		return false;
	}

	if (date > 31)
	{
		alert('Invalid Date. Date cannot be greater than 31');
		return false;
	}
	if (year > 2036 || year < 1970)
	{
		alert('Invalid Year value.');
		return false;
	}

	if (month == 4 || month == 6 || month == 9 || month == 11)
	{
		if (date > 30)
		{
			alert('Invalid date.');
			return false;
		}
	}
	
	if (month == 2)
	{
		if (date > 29)
		{
			alert('Invalid date.');
			return false;
		}
		
		if ( (year % 4) > 0)
		{
			if (date > 28)
			{
				alert('Invalid date.');
				return false;
			}
		}
	}
	
	return true;
}	
//Function for Top Rank Move First, Last,Up and down,
function moveUp(objNm)
{
	var shuffleArr=new Array();
	var valueArr = new Array();
	var valconArr = new Array();
	elem=document.getElementsByName(objNm);
	elemNm = objNm.substr(0,objNm.indexOf('['))+"__h[]";
	elem1=document.getElementsByName(elemNm)
	optionArr = elem[0].options;
	if(elem[0].value=="")
	{
		alert("Please select option to move up.");
		return false;
	}
	selInd = elem[0].selectedIndex;
	if(selInd>0)
	{
		opcount=0;
		for(opAr=0;opAr<selInd-1;opAr++)
		{
			shuffleArr[opAr]=optionArr[opAr].text;
			valconArr=optionArr[opAr].value.split(":");
			valueArr[opAr]=valconArr[0];
			opcount++;
		}
		shuffleArr[opcount]=optionArr[opcount+1].text;
		valconArr=optionArr[opcount+1].value.split(":");
		valueArr[opcount]=valconArr[0];
		shuffleArr[opcount+1]=optionArr[opcount].text;
		valconArr=optionArr[opcount].value.split(":");
		valueArr[opcount+1]=valconArr[0];
		for(opAr=(opcount+2);opAr<optionArr.length;opAr++)
		{
			shuffleArr[opAr]=optionArr[opAr].text;
			valconArr=optionArr[opAr].value.split(":");
			valueArr[opAr]=valconArr[0];
		}
		elem[0].options.length=0;
		for(k=0;k<shuffleArr.length;k++)
		{
			elem[0].options.length=elem[0].options.length+1;
			elem[0].options[k].text = shuffleArr[k];
			elem[0].options[k].value = valueArr[k] + ":" + (k+1);
			elem1[k].value=valueArr[k] + ":" + (k+1)+ ":" + shuffleArr[k];
		}
		elem[0].selectedIndex=selInd-1;
	}	
}
function moveDown(objNm)
{
	var shuffleArr = new Array();
	var valueArr = new Array();
	var valconArr = new Array();
	elem = document.getElementsByName(objNm);
	elemNm = objNm.substr(0,objNm.indexOf('['))+"__h[]";
	elem1=document.getElementsByName(elemNm)
	optionArr = elem[0].options;
	if(elem[0].value=="")
	{
		alert("Please select option to move down.");
		return false;
	}
	selInd = elem[0].selectedIndex;
	if(selInd<(elem[0].length-1))
	{
		opcount=0;
		for(opAr=0;opAr<selInd;opAr++)
		{
			shuffleArr[opAr]=optionArr[opAr].text;
			valconArr=optionArr[opAr].value.split(":");
			valueArr[opAr]=valconArr[0];
			opcount++;
		}
		shuffleArr[opcount]=optionArr[selInd+1].text;
		valconArr=optionArr[selInd+1].value.split(":");
		valueArr[opcount]=valconArr[0];
		shuffleArr[opcount+1]=optionArr[selInd].text;
		valconArr=optionArr[selInd].value.split(":");
		valueArr[opcount+1]=valconArr[0];
		for(opAr=(selInd+2);opAr<optionArr.length;opAr++)
		{
			shuffleArr[opAr]=optionArr[opAr].text;
			valconArr=optionArr[opAr].value.split(":");
			valueArr[opAr]=valconArr[0];
		}
		elem[0].options.length=0;
		for(k=0;k<shuffleArr.length;k++)
		{
			elem[0].options.length=elem[0].options.length+1;
			elem[0].options[k].text = shuffleArr[k];
			elem[0].options[k].value = valueArr[k] + ":" + (k+1);
			elem1[k].value=valueArr[k] + ":" + (k+1)+ ":" + shuffleArr[k];
		}
		elem[0].selectedIndex=selInd+1;
	}
}	
function moveTop(objNm)
{
	var shuffleArr = new Array();
	var valueArr = new Array();
	var valconArr = new Array();
	elem = document.getElementsByName(objNm);
	elemNm = objNm.substr(0,objNm.indexOf('['))+"__h[]";
	elem1=document.getElementsByName(elemNm)
	optionArr = elem[0].options;
	if(elem[0].value=="")
	{
		alert("Please select option to move top.");
		return false;
	}
	selInd = elem[0].selectedIndex;
	shuffleArr[0] = optionArr[selInd].text;
	valconArr = optionArr[selInd].value.split(":");
	valueArr[0]=valconArr[0];
	opcount=1;
	for(opAr=0;opAr<elem[0].length;opAr++)
	{
		if(opAr!=selInd)
		{
			shuffleArr[opcount]=optionArr[opAr].text;
			valconArr=optionArr[opAr].value.split(":");
			valueArr[opcount]=valconArr[0];
			opcount++;
		}
	}
	elem[0].options.length=0;
	for(k=0;k<shuffleArr.length;k++)
	{
		elem[0].options.length=elem[0].options.length+1;
		elem[0].options[k].text = shuffleArr[k];
		elem[0].options[k].value = valueArr[k] + ":" + (k+1);
		elem1[k].value=valueArr[k] + ":" + (k+1)+ ":" + shuffleArr[k];
	}
	elem[0].selectedIndex=0;
}
function moveLast(objNm)
{
	var shuffleArr = new Array();
	var valueArr = new Array();
	var valconArr = new Array();
	elem = document.getElementsByName(objNm);
	elemNm = objNm.substr(0,objNm.indexOf('['))+"__h[]";
	elem1=document.getElementsByName(elemNm)
	optionArr = elem[0].options;
	if(elem[0].value=="")
	{
		alert("Please select option to move last.");
		return false;
	}
	selInd = elem[0].selectedIndex;
	opcount=0;
	for(opAr=0;opAr<elem[0].length;opAr++)
	{
		if(opAr!=selInd)
		{
			shuffleArr[opcount]=optionArr[opAr].text;
			valconArr=optionArr[opAr].value.split(":");
			valueArr[opcount]=valconArr[0];
			opcount++;
		}
	}
	shuffleArr[opcount]=optionArr[selInd].text;
	valconArr=optionArr[selInd].value.split(":");
	valueArr[opcount]=valconArr[0];
	elem[0].options.length=0;
	for(k=0;k<shuffleArr.length;k++)
	{
		elem[0].options.length=elem[0].options.length+1;
		elem[0].options[k].text = shuffleArr[k];
		elem[0].options[k].value = valueArr[k] + ":" + (k+1);
		elem1[k].value=valueArr[k] + ":" + (k+1)+ ":" + shuffleArr[k];
	}
	elem[0].selectedIndex=(elem[0].length-1);
}


//Added By Jigar Dave to Enable Question.
function enableRelation(obj){
	selVal = new Array();
	selVal = obj.value.split(":");
	queArray=new Array();
	enableType=enableRelation.arguments[1];
	k=0;
	switch(enableType){
		case 'radiooption' :{
			for(var i=2;i<enableRelation.arguments.length;i++){
				if(selVal[0]==enableRelation.arguments[i]){
					i++;
					tag_elem=document.getElementById(enableRelation.arguments[i]);
					elem = document.getElementsByName(tag_elem.name)
					for(j=0;j<elem.length;j++){
						elem[j].disabled=false;
					}
				}else{
					i++;
					tag_elem=document.getElementById();
					a111=(document.getElementById(enableRelation.arguments[i]))?"true":"false";
					elem = document.getElementsByName(tag_elem.name);
					if(!in_array(queArray,enableRelation.arguments[i])){
						for(j=0;j<elem.length;j++){
							elem[j].disabled=true;
						}
					}	
				}
				if(!in_array(queArray,enableRelation.arguments[i]))	{
					queArray[k]=enableRelation.arguments[i];
				}
			}
		 }
		 break;	
	 }	
}



function in_array(arrObj,arrayval){
  var flag=false;
  for(inarr=0;inarr<arrObj.length;inarr++){
 	 if(arrObj[inarr]==arrayval){
	 	flag=true;
		break;
	 }  	
  }	
  return flag;
}
function subCurrentForm(frm,mod,op){
	frm.action="?mod="+mod+"&op="+op;
	frm.submit();
}
//Show Answer Trigger
function subBranching(obj,surveyquestionID,opVal){
	var flg=false;
	var OptValue=new Array();
	var opValArr=new Array();
	var optionalArr= new Array();
	if(obj.value!=""){
		OptValue=obj.value.split(":");
		if(opVal.indexOf(",")!=-1){
			var opValArr=opVal.split(",");
			if(in_array(opValArr,OptValue[0])){
				flg=true;
			}
		}else{
			if(OptValue[0]==opVal){
				flg=true;
			}
		}
		if(flg){
			document.getElementById('quePara').value=surveyquestionID;
			document.getElementById('grpPara').value=OptValue[0];
			document.getElementById('setbranch').value='yes';
			document.getElementById('setanstrig').value='no';
		}else{
			document.getElementById('quePara').value="";
			document.getElementById('grpPara').value="";
			document.getElementById('setbranch').value='no';
		}
		if(document.getElementById('quePara').value=="" || (document.getElementById('quePara').value==surveyquestionID)){
			document.getElementById('dumquePara').value=surveyquestionID;
			document.getElementById('dumgrpPara').value=OptValue[0];
		}	
	}
}
function subAnswerTrigger(obj,surveyquestionID,opVal){
	if(arguments[3]!=1){
		var flg=false;
		var OptValue=new Array();
		var opValArr=new Array();
		var msgArr = new Array();
		var optionalArr= new Array();
		if(obj.value!=""){
			OptValue=obj.value.split(":");
			if(opVal.indexOf(",")!=-1){
				var opValArr=opVal.split(",");
				if(in_array(opValArr,OptValue[0])){
					flg=true;
				}
			}else{
				if(OptValue[0]==opVal){
					flg=true;
				}
			}
			if(flg){
				optionalArr=answeroption['Q'+surveyquestionID].split(",");
				msgArr= answermsg['Q'+surveyquestionID].split("~");
				var conf=true;
				if(opVal.indexOf(",")!=-1){
				 _key=array_search(opValArr,OptValue[0]);
				 if(optionalArr[_key]=='yes'){
				 	//conf = confirm(msgArr[_key]);
					showDHTMLAlert(msgArr[_key]," Yes "," No ","Please Confirm");
				 }else{
				 	document.getElementById('quePara').value=surveyquestionID;
					document.getElementById('grpPara').value=OptValue[0];
					document.getElementById('setbranch').value='yes';
					document.getElementById('setanstrig').value='no';
				 }
			}else{
			  if(answeroption['Q'+surveyquestionID]=='yes'){
			  	//conf=confirm(msg);
				showDHTMLAlert(answermsg['Q'+surveyquestionID]," Yes "," No ","Please Confirm");
			  }else{
			 	document.getElementById('quePara').value=surveyquestionID;
				document.getElementById('grpPara').value=OptValue[0];
				document.getElementById('setanstrig').value='yes';
				document.getElementById('setanstrig').value='no';
			 }	
			}
				queelem=document.getElementById('quePara');
				//alert(queelem.value)
				if(queelem.value=="" || (queelem.value==surveyquestionID)){
					document.getElementById('dumquePara').value=surveyquestionID;
					document.getElementById('dumgrpPara').value=OptValue[0];
					//alert("Inside");
				}	
			}	
		}	
	}
	return false;
}
function array_search(myArray,_val){
  for(ser=0;ser<myArray.length;ser++){
  	if(myArray[ser]==_val){
		return ser;
		break;
	}
 }
}

//Show Help
function show_help(QueID,boxtitle,flg){
	mouseYpos = document.getElementById('ypos').value;
	mouseXpos = document.getElementById('xpos').value;
	div_elem = document.getElementById('help_win');
	div_elem.style.display="";
	helptxt=(flg==0)?QuehelText['Q'+QueID]:QueDetailText['Q'+QueID];
	if(helptxt.indexOf('|')!=-1){
		helpArr=helptxt.split('|');
		helptxt=helpArr.join(' ');
	}	
	document.getElementById('help_txt').innerHTML = helptxt;
	document.getElementById('boxtitle').innerHTML=boxtitle;
	height_div = div_elem.offsetHeight;
	width_div = div_elem.offsetWidth;
	top1 = (parseInt(mouseYpos)-20)-height_div;
	left1 = (parseInt(mouseXpos)+30)-(width_div);
	if((left1+width_div)>screen.width){
		overlap=((left1+width_div)-screen.width);
		left1-=overlap;
	}
	if((top1+height_div)>screen.height){
		overlap=(top1+height_div)-screen.height;
		top1-=overlap;
	}
	if(top1<0)		top1=0;
	if(left1<0) left1=0;
	div_elem.style.top = top1;
	div_elem.style.left=left1;
	hideSelect(left1,top1,(top1+height_div),(left1+width_div),'hide');
}
function closeDiv(){
	div_elem = document.getElementById('help_win');
	height_div = div_elem.offsetHeight;
	width_div = div_elem.offsetWidth;
	top1 = (parseInt(mouseYpos)-20)-height_div;
	left1 = (parseInt(mouseXpos)+30)-(width_div);
	if((left1+width_div)>screen.width){
		overlap=((left1+width_div)-screen.width);
		left1-=overlap;
	}
	if((top1+height_div)>screen.height){
		overlap=(top1+height_div)-screen.height;
		top1-=overlap;
	}
	if(top1<0)		top1=0;
	if(left1<0) left1=0;
	div_elem.style.top = top1;
	div_elem.style.left=left1;
	hideSelect(left1,top1,(top1+height_div),(left1+width_div),'show');
	div_elem.style.display="none";
}
//Function To Hide select in Internet Explorer which are under the area of currently Active Div, Layer.
//Author : Jigar Dave.

function hideSelect(_left,_top,_rbottom,_rleft,act){
//_left = Div Left Post.(x)
//_top = Div Top Post.(y)
//_rbottom = Div Bottom Pos.(x1)
//_rleft=Div Right Pos.(y1)
	elem=document.getElementsByTagName('select');
	for(sel=0;sel<elem.length;sel++){
		left1=DL_GetElementLeft(elem[sel]); // Element Left Pos(x)
		top1=DL_GetElementTop(elem[sel]); //Element Top Pos.(y)
		rleft1=left1+elem[sel].offsetWidth;// Element Right Pos.(x1)
		rbottom=top1+elem[sel].offsetHeight;//Elemetn Bottom Pos.(y1)
		//if(((element_rightPos>_left && element_rightPos<_rleft) && (element_TopPos>_top && element_TopPos<_rtop)) || ((elementLeftPos>_left && elementLeftPos<_rleft)&&(elementTopPos>_top && elementTopPos<_rtop))){
	if(((left1>=_left && left1<=_rleft) && (top1>=_top && top1<=_rbottom)) || ((rleft1>=_left && rleft1<=_rleft) && (top1>=_top && top1<=_rbottom)) || ((left1>=_left && left1<=_rleft) && (rbottom>=_top && rbottom<=_rbottom)) ||((rleft1>=_left && rleft1<=_rleft) && (rbottom>=_top && rbottom<=_rbottom))){
			if(act=='hide'){
				elem[sel].style.visibility='hidden';
			}else if(act=='show'){
				elem[sel].style.visibility='visible';
			}
		}	
	}
	
}
function DL_GetElementLeft(eElement)
{
    var nLeftPos = eElement.offsetLeft;          // initialize var to store calculations
    var eParElement = eElement.offsetParent;     // identify first offset parent element  
    while (eParElement != null){                  // move up through element hierarchy
        nLeftPos += eParElement.offsetLeft;      // appending left offset of each parent
        eParElement = eParElement.offsetParent;  // until no more offset parents exist
    }
    return nLeftPos;                             // return the number calculated
}
function DL_GetElementTop(eElement)
{
    var nTopPos = eElement.offsetTop;            // initialize var to store calculations
    var eParElement = eElement.offsetParent;     // identify first offset parent element  
    while (eParElement != null){				// move up through element hierarchy
        nTopPos += eParElement.offsetTop;       // appending top offset of each parent
        eParElement = eParElement.offsetParent;  // until no more offset parents exist
    }
    return nTopPos;                              // return the number calculated
}

function showDHTMLAlert(msg,btn1text,btn2text,boxtitle){
	div_elem = document.getElementById('alert_win');
	div_elem.style.display="";
	allArr=msg.split('|');
	msg = allArr.join(" ");
	document.getElementById('alert_txt').innerHTML = msg;
	document.getElementById('alerttitle').innerHTML=boxtitle;
	height_div = div_elem.offsetHeight;
	width_div = div_elem.offsetWidth;
	top1 = (screen.height/2)-(height_div)/2;
	left1 = (screen.width/2)-(width_div)/2;
	if(top1<0)		top1=0;
	if(left1<0) left1=0;
	div_elem.style.top = top1;
	div_elem.style.left=left1;
	hideSelect(left1,top1,(top1+height_div),(left1+width_div),'hide');
	document.getElementById('yesbut').value=btn1text;
	document.getElementById('nobut').value=btn2text;
}
function closeAlert(){
	div_elem = document.getElementById('alert_win');
	height_div = div_elem.offsetHeight;
	width_div = div_elem.offsetWidth;
	top1 = parseFloat(div_elem.style.top.substring(0,div_elem.style.top.indexOf("px")));
	left1 = parseFloat(div_elem.style.left.substring(0,div_elem.style.left.indexOf("px")));
	hideSelect(left1,top1,(top1+height_div),(left1+width_div),'show');
	div_elem.style.display="none";
}
function fireYesEvent(){
	closeAlert();
	//alert("setiing val");
	if((document.getElementById('quePara').value==document.getElementById('dumquePara').value) || document.getElementById('quePara').value==""){
		document.getElementById('quePara').value=document.getElementById('dumquePara').value;
		document.getElementById('grpPara').value=document.getElementById('dumgrpPara').value;
		//alert(document.getElementById('quePara').value);
		document.getElementById('setanstrig').value='yes';
	}
	return true;
}
function fireNoEvent(){
	closeAlert();
	if(document.getElementById('quePara').value==document.getElementById('dumquePara').value){
	//	alert("setiing null");
		document.getElementById('quePara').value="";
		document.getElementById('grpPara').value="";
		document.form1.anstrigqueid.value="";
		document.form1.anstrigopid.value="";
		document.getElementById('setanstrig').value='no';
	}	
	return false;
}
function fireTriggerOnSubmit(){
	if(document.getElementById('setanstrig').value=='yes'){
		document.form1.anstrigqueid.value=document.getElementById('quePara').value;
		document.form1.anstrigopid.value=document.getElementById('grpPara').value;
		document.form1.answertrigger.value="answertrigger";
		document.form1.act.value="triggered";
	}
	return true;
}
function fireBranchingOnSubmit(){
	if(document.getElementById('setbranch').value=='yes'){
		elem=document.getElementsByName("Q"+document.getElementById('quePara').value);
		if(elem.length>0){
			document.form1.anstrigqueid.value=document.getElementById('quePara').value;
			document.form1.anstrigopid.value=document.getElementById('grpPara').value;
			document.form1.branch.value="branching";
			document.form1.act.value="branching";
		}else{
			document.getElementById('quePara').value="";
			document.getElementById('grpPara').value="";
			document.form1.branch.value="";
			document.form1.act.value="";
			document.form1.anstrigqueid.value="";
			document.form1.anstrigopid.value="";
		}	
	}
	return true;
}
function showFullImage(imgURL,title1){
	a =	window.open("","","fullscreen=no,toolbar=no,status=no,menubar=no,scrollbars=yes,resizable=yes,directories=no,location=no,width=800,height=400,left=50,top=100");
	a.document.write("<head><title>"+title1+"</title></head>");
	a.document.write("<body>");
	a.document.write("<table border=\"0\" cellspacing=1 align=\"center\">");
	a.document.write("<tr><td align=\"center\" valign=\"top\">");
	a.document.write("<img src=\""+imgURL+"\"");
	a.document.write("</td></tr>");
	a.document.write("<tr><td align=\"center\">");
	a.document.write("<a href=\"#\" onClick=\"javascript:window.close();\"><font face=\"verdana\" size=\"1\">Close Window</font></a>");
	a.document.write("</td></tr></table>");
	
}
function validateOptionValue(fieldValue)
{
	if (fieldValue.length<1){
		return false;
	}
	if(fieldValue<=0){
		return false;
	}
	chk1="1234567890.";
	for(iopval=0;iopval!=fieldValue.length;iopval++)
	{
		ch1=fieldValue.charAt(iopval);
		rtn1=chk1.indexOf(ch1);
		if(rtn1==-1)
		{
			return false;
			break;
		}
	}
	return true;
}
function hideSelectAttrib(_left,_top,_rbottom,_rleft,Attrib,val){
//_left = Div Left Post.(x)
//_top = Div Top Post.(y)
//_rbottom = Div Bottom Pos.(x1)
//_rleft=Div Right Pos.(y1)
	elem=document.getElementsByTagName('select');
	for(sel=0;sel<elem.length;sel++){
		left1=DL_GetElementLeft(elem[sel]); // Element Left Pos(x)
		top1=DL_GetElementTop(elem[sel]); //Element Top Pos.(y)
		rleft1=left1+elem[sel].offsetWidth;// Element Right Pos.(x1)
		rbottom=top1+elem[sel].offsetHeight;//Elemetn Bottom Pos.(y1)
		//if(((element_rightPos>_left && element_rightPos<_rleft) && (element_TopPos>_top && element_TopPos<_rtop)) || ((elementLeftPos>_left && elementLeftPos<_rleft)&&(elementTopPos>_top && elementTopPos<_rtop))){
		if(((left1>=_left && left1<=_rleft) && (top1>=_top && top1<=_rbottom)) || ((rleft1>=_left && rleft1<=_rleft) && (top1>=_top && top1<=_rbottom)) || ((left1>=_left && left1<=_rleft) && (rbottom>=_top && rbottom<=_rbottom)) ||((rleft1>=_left && rleft1<=_rleft) && (rbottom>=_top && rbottom<=_rbottom))){
			eval('elem[sel].style.'+Attrib+"='"+val+"'");
		}	
	}
}

function getElementByValue(elemName,_val){
	alert('here');
/*	elemArr=document.getElementsByName(elemName);
	for(i=0;i<elemArr.length;i++){
		alert(elemArr[i].value;
	}*/
}
function removeBackground(){
	elem=document.getElementsByName('questiontable1');
	for(i=0;i<elem.length;i++){
		elem[i].style.backgroundColor="#ffffff";
	}
}

function findBrowser(){
	if(navigator.appName=="Opera"){
		return "opera";
	}else if(navigator.appName=="Microsoft Internet Explorer"){
		return "msie";
	}else if(navigator.appName=="Netscape"){
		if(navigator.userAgent.indexOf("Firefox")!=-1){
			return "firefox";
		}else if(navigator.userAgent.indexOf("Netscape")!=-1){
			return "netscape";
		}else{
			return "mozilla";
		}
	}
}
