function TrimField(field)
{
	field.value=field.value.replace(/\r\n/g,' ')	
	while(field.value.charAt(0)==' ')
	{
		field.value= field.value.substring(1)
	}
	while(field.value.charAt(field.value.length-1) == ' ')
	{
		field.value = field.value.substring(0, (field.value.length-1))
	}
}

function containSpace(field)
{
	var spacePosition=field.value.indexOf(' ');
	if((spacePosition*1)<0)
	{
		return false;
	}
	else
	{
		return true;
	}
}

function textCounter(field, countfield, maxlimit)
{
	if (field.value.length > maxlimit) // if too long...trim it!
		field.value = field.value.substring(0, maxlimit);
	else
		countfield.value = maxlimit - field.value.length;
}

function checkFromDateToDate(fromDate,toDate)
{
		var tempFromDate = (fromDate).split('/');
		var tempToDate = (toDate).split('/');
		var FromDate = new Date(tempFromDate[2],(tempFromDate[1]-1),tempFromDate[0],0,0,0);
		var ToDate = new Date(tempToDate[2],(tempToDate[1]-1),tempToDate[0],0,0,0);
		
		if(FromDate >= ToDate)
		{
			return false;
		}
		else
		{
			return true;
		}
}

function isFieldEmpty(field)
{
	if(field.value.length == 0)
	{
		field.focus();
		return false;
	}
	return true;
}


function isValidFloat(field,msg) 
{
	if(field.value < 0)
	{
		alert(msg);
		field.select();
		return false
	}
	
	var valid="0123456789."

	for (var i=0; i<field.value.length; i++) {
		if (valid.indexOf(field.value.charAt(i)) < 0)
		{
			alert(msg);
			field.select();
			return false
		}
	}
	return true
}

function isValidInteger(field,msg) 
{
	if(field.value <= 0)
	{
		alert(msg);
		field.select();
		return false
	}	
	var valid="0123456789"

	for (var i=0; i<field.value.length; i++) {
		if (valid.indexOf(field.value.charAt(i)) < 0)
		 {
			alert(msg);
			field.select();
			return false
		}
	}
	return true
}


function isValidAlphabet(field,msg)
{   
	var Alphabetexp=/[^a-z ]/i
	if(Alphabetexp.test(field.value))
	{    
		alert(msg)
		field.select();
		return false
	}
	return true
}

function isValidAlphaNumerics(field)
{
	var wordexp=/[^a-z0-9,]/i 
	if(wordexp.test(field.value))
	{
		return false
	}
	return true

}

function isValidTelephoneNumber(field) 
{
	var valid="+0123456789- "

		for (var i=0; i<field.value.length; i++) {
			if (valid.indexOf(field.value.charAt(i)) < 0)
			 {
				return false
			}
		}
		return true
}//End of fnValidTelephoneNumber

function isValidEmail(email) {
 var emailFlag=true;
    if (email==null) {
        
            emailFlag= false;
      }
    if (email.length==0) {  
        
            emailFlag= false;
        
    }
       
    email1=email;
    email=email.value;

    if (! allValidChars(email)) {  // check to make sure all characters are valid
        emailFlag= false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
         emailFlag= false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
         emailFlag= false;
    } else if (email.indexOf("@") == email.length) {		 // @ must not be the last character;
         emailFlag= false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
		emailFlag= false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
		 
		 emailFlag= false;
    }
    if(!emailFlag)
    {
    	alert("Please enter valid email address");
    	email1.select();
    }
    return emailFlag;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

function isValidDate(field)
{
	var idDay=field.value.indexOf('/')
	var day=field.value.substr(0, idDay)
	var strTemp=field.value.substr(idDay+1)
	var idMonth=strTemp.indexOf('/')
	var month=strTemp.substr(0, idMonth)
	var year=strTemp.substr(idMonth+1, 4)

	var msg="Only integer values and / is allowed in date field in DD/MM/YYYY format"
	var numberexp=/[^0-9]/
	if(numberexp.test(day) || numberexp.test(month) || numberexp.test(year))
	{
		alert(msg)
		return false
	}

	if(day < 1 || day >31    )
	{
		alert("Invalid day! Please enter valid date in DD/MM/YYYY format")
		return false
	}
	if( month < 1 || month >12 )
	{
		alert("Invalid month! Please enter valid date in DD/MM/YYYY format")
		return false
	}
	if( year  < 1 || year.length!=4)
	{
		alert("Invalid year! Please enter valid date in DD/MM/YYYY format")
		return false
	}
	return true
}

function isValidTime(hour,minute,second) 
{
	
	if (hour < 0  || hour > 837) 
	{
		alert("Hour must be between 0 and 838");
		return false;
	}
	
	if (minute < 0 || minute > 59) 
	{
		alert ("Minute must be between 0 and 59.");
		return false;
	}

	if (second < 0 || second > 59) 
	{
		alert ("Second must be between 0 and 59.");
		return false;
	}
	return true;
}
//  End -->

function isValidMultipleIds(emails)
{	
	var mail=""
    emails= emails.substring(0,emails.length-1);
	 
     if( emails.indexOf(',')>=0)
	{ 
	    emails=emails+",";
		for(i=0;i<emails.length;i++)
		{ 
		   	if(emails.substring(i,i+1)!=",")
	    	  	mail=mail+emails.substring(i,i+1);
		  	else
			{
				  if(!isValidEmail(mail)) 
				  {
		      		 return false;
     			  }
			 		mail="";
		  	}
		
		}
	}
	else
	{
		  if(!isValidEmail(emails)) 
		  {
		   	 return false;
     	  }
	 }
	
	return true;
}

function isValidTime(fieldValue)
{
	var index=fieldValue.indexOf(':')
	if(index==0)
	{
		alert("Invalid Time");
		return false;
	}
	var valid="0123456789:"
	for (var i=0; i<fieldValue.length; i++) 
	{
		if (valid.indexOf(fieldValue.charAt(i)) < 0)
		 {
			alert("Invalid Time");
			return false
		}
	}
	var time=fieldValue.split(":");
	if(time.length==2)
	{
		if(time[0]>12 || time[0]<1 || time[0]=='')
		{
			alert("Invalid Hour");
			return false;
		}
		
		if(time[1]>59 || time[1]<0 || time[1]=='')
		{
			alert("Invalid Minite");
			return false;
		}
	}
	if(time.length==1)
	{
		if(time[0]>12 || time[0]<1 || time[0]=='')
		{
			alert("Invalid Hour");
			return false;
		}		
	}
	return true;
}

function checkFromTimeToTime(fromTime,toTime)
{
	
	var tempFromTime=fromTime.split(":");
	var tempToTime=toTime.split(":");
	var fromHour='';
	var toHour='';
	var fromMin='';
	var toMin='';
	if(tempFromTime.length==2)
	{
		if(tempFromTime[1].length==1)
		{
			fromHour=tempFromTime[0]+'0'+tempFromTime[1];		
		}
		else
		{
			fromHour=tempFromTime[0]+tempFromTime[1];	
		}
	}
	else
	{
		fromHour=tempFromTime[0]+'00';	
	}
	if(tempToTime.length==2)
	{
		if(tempToTime[1].length==1)
		{
			toHour=tempToTime[0]+'0'+tempToTime[1];		
		}
		else
		{
			toHour=tempToTime[0]+tempToTime[1];	
		}
	}
	else
	{
		toHour=tempToTime[0]+'00';	
	}
	if((fromHour*1)>(toHour*1))
	{
		alert(" Start time should be less than End time");
		return false;
	}
	return true;
}

function trim(str)
{  
	var formName=document.forms[0];
	while(str.charAt(0) == (" ") )
	 {  
		str = str.substring(1);
	 }
	 while(str.charAt(str.length-1) == " " )
	 {  
		 str = str.substring(0,str.length-1);
	 }
	return str;
}


/* This function is written by Veerendra Deshpande On 12 Aug 2008
 * Purpose : To select All and De Select All of Check Box
 * 
 */

function selectOrDeselectAll(mainCheckBox,subCheckBox)
{
	var collection=eval("document.forms[1].job");		
	if(collection.length>1)
	{	
		if(document.forms[1].selectAll.checked==true)
		{
			for (i=0;i<collection.length;i++)
			{
				if(!collection[i].disabled)
				{
					collection[i].checked=true;
				}
			}
		}
		else
		{
			for (i=0;i<collection.length;i++)
			{
				if(!collection[i].disabled)
				{
					collection[i].checked=false;
				}
			}
		}
	}
	else
	{
		if(document.forms[1].selectAll.checked==true)
		{
			document.forms[1].job.checked=true;
		}
		else
		{
			document.forms[1].job.checked=false;
		}
	}
}

function loginIdCheck(val)
{
	var wordexp=/[^a-z0-9._]/i 
	for(var i=0; i < val.length; i++)
	{
		if(wordexp.test(val.charAt(i)))
		{
			return false
		}		
	}
	return true;
}	
/* This function written by Veerendra on 22nd Aug 2008
 * Purpose : Change the checked or uncheked row color 
 * Parameter Description :
 * 
 *  "Field"	: checked or uncheked checkbox name
 *  "row"	: checked or uncheked row Referance
 *  "id"	: checked or uncheked row number
 * 	
 * 
 */

function changeRowColor(field,row,id) 
{
	var url="";
	if(field.checked) /* Check passed field checked or not */
	{
	  	row[id+1].style.backgroundColor="#E7E8B0";  /* If it is checked change color */
  	}
  	else
  	{
	  	if(((id+1)%2)==0)	/* If it is not checked.ckeck uncheked checkbox is even row or odd */
	  	{
	  		row[id+1].style.backgroundColor="#EDECE8"; /* change to even color row */
  		}
  		else
  		{
  			row[id+1].style.backgroundColor="#fff"; /* change to odd color row */
  		}
  	}
}

/* This function written by Veerendra on 22nd Aug 2008
 * Purpose : To ckecked or unchecked all check box with Change the checked or uncheked row color 
 * Parameter Description :
 * 
 *  "checkBoxArray"	: Array of checkbox name(if it is multiple)
 *  "selectAllCheckBox"	: selectAllCheckBox
 *  "rows"	: table rows Referance
 * 	
 * 
 */

function selectOrDeselectAll(checkBoxArray,selectAllCheckBox,rows)
{
	var collection=eval(checkBoxArray);	
	if(collection.length>1)
	{	
		if(selectAllCheckBox.checked)
		{
			for (i=0;i<collection.length;i++)
			{
				if(!collection[i].disabled)
				{
					collection[i].checked=true;
					changeRowColor(checkBoxArray[i],rows,i);
				}
			}
		}
		else
		{
			for (i=0;i<collection.length;i++)
			{
				if(!collection[i].disabled)
				{
					collection[i].checked=false;
					changeRowColor(checkBoxArray[i],rows,i);
				}
			}
		}
	}
	else
	{
		if(selectAllCheckBox.checked)
		{
			if (!checkBoxArray.disabled) 
			{
				checkBoxArray.checked = true;
				changeRowColor(checkBoxArray, rows, 0);
			}
		}
		else
		{
			if (!checkBoxArray.disabled) 
			{
				checkBoxArray.checked = false;
				changeRowColor(checkBoxArray, rows, 0);
			}
		}
	}
}

function addOrRemoveEmailDetails(url)
{
      	 
	if (window.XMLHttpRequest)
	{
 		xmlHttp = new XMLHttpRequest();
  		try 
  		{
  			xmlHttp.open("GET", url, true); //was get
  		} 
  		catch (e) 
  		{
     		alert("Sorry Cannot connect to server");
  		}
			xmlHttp.send(null);
	} 
	else if (window.ActiveXObject) 
	{      
  		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
 		if (xmlHttp) 
 		{
			try 
	  		{
	  			xmlHttp.open("GET", url, true); //was get
	  		} 
	  		catch (e) 
	  		{
	     		alert("Sorry Cannot connect to server");
	  		}
	        xmlHttp.send();
    	}
    }
}

function isValidEmailId(emailValue)
{
	var str = emailValue.value;
	var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(str)) 
		return true;
	else 
	{
		alert("Please enter a valid email address!")
		emailValue.select();
		return false;
		
	}
}

function isValidImage(imagePath)
{
	var imgExtensions = /^.+\.(jpg|jpeg|gif|png)$/i;
	if (imagePath.search(imgExtensions) != -1) 
	{
		return true;
	}
	return false;
}

function isValidImageSize(imagePath)
{
	newImg = new Image();
	newImg.src = imagePath;
	alert(newImg.src);
	var height = newImg.width;
	var width = newImg.offsetWidth;
	alert ('The image size is '+width+'*'+height);
	return true;
}

function isDateValueValid(dayField,monthField,yearField)
{
	var day=dayField.value*1;
	var month=monthField.value*1;
	var year=yearField.value*1;
	if(dayField.value=='')
	{
		dayField.focus();
		return false;
	}
	if(monthField.value=='')
	{
		monthField.focus();
		return false;
	}
	if(yearField.value=='')
	{
		yearField.focus();
		return false;
	}
	if(month==2)
	{
		if((year%4)==0)
		{
			if(day>29)
			{
				alert("Invalid Date");
				dayField.focus();
				return false;
			}
		}
		else
		{
			if(day>28)
			{
				alert("Invalid Date");
				dayField.focus();
				return false;
			}
		}
	}
	else if(month==4 || month==6 || month==9 || month==11)
	{
		if(day>30)
		{
			alert("Invalid Date");
			dayField.focus();
			return false;
		}
	}
	return true
}

function isValidFromAndToDate(startDayField,startMonthField,startYearField,endDayField,endMonthField,endYearField,alertMessage)
{
	var startDay=startDayField.value*1;
	var startMonth=startMonthField.value*1;
	var startYear=startYearField.value*1;
	if(!isDateValueValid(startDayField,startMonthField,startYearField))
	{
		return false;
	}
	
	var endDay=endDayField.value*1;
	var endMonth=endMonthField.value*1;
	var endYear=endYearField.value*1;
	if(!isDateValueValid(endDayField,endMonthField,endYearField))
	{
		return false;
	}
	if(startYear>endYear)
	{
		alert(alertMessage);
		return false;
	}
	else if(startYear==endYear)
	{
		if(startMonth>endMonth)
		{
			alert(alertMessage);
			return false;
		}
		else if(startMonth==endMonth)
		{
			
			if(startDay>endDay)
			{
				alert(alertMessage);
				return false;
			}
		}
	}
	return true
}

function isValidImage(imagePath)
{
	if((imagePath != "") && (imagePath.length >0))
	{
		var result = true;
		var i=imagePath.indexOf(".");
		var v=imagePath.substring(i);
		if(((v!=".jpg")&&(v!=".Jpg")&&(v!=".jPg")&&(v!=".jpG")&&(v!=".jPG")&&(v!=".JPG")&&(v!=".Jpg")) &&
		    ((v!=".gif")&&(v!=".Gif")&&(v!=".gIf")&&(v!=".giF")&&(v!=".gIF")&&(v!=".GIF")&&(v!=".Gif")) &&
		    ((v!=".png")&&(v!=".Png")&&(v!=".pNg")&&(v!=".pnG")&&(v!=".pNG")&&(v!=".PNG")&&(v!=".Png")) )
		{
			alert("We support .JPG, .PNG, and .GIF image formats.Your file-type is " + v);
			result = false;
		}
	}
	return result;
}


