String.prototype.trim = function()
{
    return this.replace(/^\s+|\s+$/g,'');
}

function CheckAll(blnCheck,itemname)
{

    var mychk=document.getElementsByName(itemname);
    var mychkall=document.getElementsByName(blnCheck);


    for (i=0;i<mychk.length;i++) 
    { 
        mychk[i].checked = mychkall[0].checked; 
    } 
}

function checkboxalertvalidation(objname,message,itemname,confirmmsg)
{
	with (objname)	
	{ 
		var len, idno;
		len = objname.length;
		var mychk=document.getElementsByName(itemname);
		for (i=0; i<mychk.length; i++)
		{
			if (mychk[i].checked == false) {}
			else
			{
				idno = 1;
			}
		}
		if (idno != 1)
		{
		  if (message!="")
		  {
			alert(message);
			//objname.focus();
			//objname.select();
		  }
			return false;
		}
			ret = confirm(confirmmsg);
			if (ret)
			{
				return true;
			}
			else
			{
				for (i=0; i<=len-1; i++)
				{
					objname[i].checked = false;
				}
				return false;
			}
			return true;
	}
}



/*---------------------------------------
generic function for delete 
----------------------------------------*/

function deletefunction(thisform,message,itemname)
{ 
	with (thisform)
	{
		if (thisform.length != 0)
		{
			if (checkboxalertvalidation(thisform,message,itemname,'Are you sure you want to delete selected record?')== false) return false;
			else
			return true;
		}
	}
}
function entrySelectfunction(thisform,message,itemname)
{ 
	with (thisform)
	{
		if (thisform.length != 0)
		{
			if (checkboxalertvalidation(thisform,message,itemname,'Are you sure you want to approve the entry?')== false) return false;
			else
			return true;
		}
	}
}
function isAlpha(objname)
{
	var numStr="1234567890-=\~!@#$%^&*()_+|?><:{},";
	var thisChar;
	var counter=0;
	var data = objname.value;
	for(var i=0; i < data.length; i++)
	{
		thisChar=data.substring(i,i+1);
		if(numStr.indexOf(thisChar)>=0) 
		{
		    objname.focus();
		    alert('Enter alphabetic characters only !');
		    return false;
		}
	}
    return true;
}

function checkInt(number,msgString)
{
        
        var num = Trim(number.value);
        if(number.value.length > 0 && num =="")
        {
            alert("Please enter only numeric value for " + msgString);
		    number.select();
            return false;
        }
        
	    if(isNaN(number.value - 0))
	    {
		    alert("Please enter only numeric value for " + msgString);
		    number.select();
		    return false;	
	    }
	    else
	    {
    	
		    if (number.value.indexOf('e') >= 0)
		    {
			    alert("Please enter only numeric value for " + msgString);
			    number.select();
			    return false;	
		    }
		    else
		    {
    		   
		        if(number.value<0)
		        {
		           alert("Please enter only numeric value for " + msgString);
			       number.select();
			       return false;	
		        }
    		    
			    if (number.value.indexOf('.') >= 0)
			    {
			    alert("Please enter only numeric value for " + msgString);
			    number.select();
			    return false;	
			    }
			    else
			    {
				    return true;
			    }

    			
		    }
	    }
	 
}

function isAlphaNumeric(objname)
{
	var numStr="-=\~!@#$%^&*()_+|?><:{},";
	var thisChar;
	var counter=0;
	var data = objname.value;
	for(var i=0; i < data.length; i++)
	{
		thisChar=data.substring(i,i+1);
		if(numStr.indexOf(thisChar)>=0) 
		{
		    objname.select();
		    alert('Enter alpha-numeric characters only !');
		    return false;
		}
	}
    return true;
}

function maxlenvalidation(objname,objmaxlen,message)
{
	with (objname)	
	{
		var len;
		len = objname.value.length;
		if (len > objmaxlen)
		{
		  if (message!="")
		  {
			alert(message);			
			objname.select();
		  }
			return false;
		}
	}
}
/*Added by Trupti for Checking File extension for Uploaded files*/

//All in One for FILETYPES
function TestFileType(forM,fileTypes,data){

	//Split the whole string to get the FILENAME with EXTENSION
	var dataArr=data.split("\\")
	var strFileName=dataArr[dataArr.length-1].split(".")
	//alert(strFileName.length);
	//chk for dot exists
	if(strFileName.length<2){
		alert("Select Proper " +forM+ " Type");
	 	return false;
	}
	
	//Get the filename & Extension
	var fileName=strFileName[0].toUpperCase()
	var extension=strFileName[1].toUpperCase()
	
	//Check for filename is valid/not
	var charstr="ABCDEFGHIJKLMNOPQRSTUVWXYZ._-0123456789 "
	for(var i=0; i < fileName.length; i++){
		thisChar=fileName.substring(i,i+1);
		if(charstr.indexOf(thisChar)<0){
			alert("Select Proper " +forM+" Type\n[Special character not allowed in the FILE NAME]");
			return false;
		}
	}
	//
	
	//Check for extension is valid/not
	var extArr=fileTypes.split("/")
	var intFound=0;
	for(ln=0;ln<extArr.length;ln++){
		if(extArr[ln]==extension){
			intFound=1;	break;
		}
	}
	if(!intFound){
		alert("Select Proper Image Type\n["+ fileTypes +" only Allowed]")
	 	return false;
	}
	
//If everything fine RETURN TRUE;
return true;
}
////



function IsFileImage(data){
	if(!TestFileType('Image','GIF/JPG/BMP',data)){
		return false;
	}
return true;
}
//End IsFileImage


function IsDocType(data){
	if(!TestFileType('Document','DOC/RTF',data)){
		return false;
	}
return true;
}
//End IsFileImage

function emptyvalidation(objname, message)
{
  with(objname)
  {
    var enterval = value;
	var enterval1 = enterval.replace(/ /gi,'');
	if (enterval == '' || enterval == null || enterval1 == '' || enterval1 == null)
	{
	  if (message!="")
	  {
	    alert(message);		
		objname.select();
	  }
	    return false;
    }
	  else
	  {
	    return true;
	  }
	}
	
	
} 
//commom function for dropdown select
function dropdownvalidation (objname, message)
{
  with (objname)
  {
    var enterval = objname.options[objname.selectedIndex].value;
	if (enterval <= 0)
	{
	  if (message!="")
	  {
	    alert(message);
		objname.focus();
	  }
	    return false;
    }
	  else
	  {
	    return true;
	  }
	}
} 

//commom function for empty multiselect box
function emptyselectvalidation(objname,message)
{
	with (objname)
	{
		if(objname.selectedIndex == "-1")
		{
			if (message!="")
			{
				alert(message);
				objname.focus();
			}
			return false;
		}
		else
		{
			return true;
		}
	}
}

// Email Validation

function EmailValidation(objectname)
{
	
	with(objectname)
{
	emailStr=objectname.value;
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) 
	{
		alert("Not a valid Email format");
		objectname.select();
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null) 
	{
	    // user is not valid
	    alert("Not a valid Email format.");
	   objectname.select();
	    return false
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null)
	{
	  for (var i=1;i<=4;i++) 
	  {
	    if (IPArray[i]>255) 
	    {
		   alert("Not a valid Email format.");
		   objectname.select();
		   return false;
		}
	  }
	    return true
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null) 
	{
		alert("Not a valid Email format.");
		objectname.select();
		return false
	}
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 ||  domArr[domArr.length-1].length>3) 
	{
	   alert("Not a valid Email format.");
	   objectname.select();
	   return false
	}
	if (len<2)
	{
	   alert("Not a valid Email format.");
	   objectname.select();
	   return false
	}
}
    return true	
}



//This function is used validating the description entered by the user.
function descriptionvalidation(objname, message, maxlen)
{
  with (objname)
  {
    enterval = value.length;
    if(enterval <= maxlen)
    {
	    enterval1 = value;
	    quote = 0;
	    if(value.indexOf("'")>-1) quote = 1;
	    if (enterval != 0)
	    {

	      for (i=0;i<enterval;i++)
	      {
	        characterval = value.substring(i,i+1);
		    re=/[a-z,A-Z,0-9,' ','.','(',')']/g;
		    str=enterval1.replace(re,'');

		    if(value.indexOf("/")>-1 || value.indexOf('"')>-1 )
		     {
			    str="";
		     }
    		
    		
		    if(str.length>0 || (quote==1))
		    {
		      if (message!="")
		      {
		        alert(message);			    
			    objname.select();
		      }
		      return false;
		    }
	      }
	  }
	  else
	  {
    	 alert('Please enter '+ maxlen +' characters for Description.');	     
	     objname.select();
	  }
	}
	return true;
  }
} 
function CheckEmpty(objName,caption)
{
    if(Trim(objName.value) == "")
    {
        alert('Please enter '+caption);
        objName.select();
        return false;
    }
    else
    {
        return true;
    }
}
function isRequired(names,captions)
{
/*
 Two parameter 
 First Parameter is ^ seperated Objects name like - txtName^txtAddress 
 Second Parameter is ^ seperated Captions for messgae  - Name^Contact Infomation
*/
	//alert("in isRequired");
	
		var nam = names.split("^");
		var cap = captions.split("^");
		var frm = document.forms[0];
		var msg="";
		var strVal="";
		var msg1 =""
		for (intform=0;intform < nam.length;intform++)
		{
			//alert("in isRequire");
			if(document.getElementById(nam[intform]).type == "select-one")
			{
			//alert("in select-one");
				if(document.getElementById(nam[intform]).selectedIndex <= 0 )
				{
					if (msg != "")
					msg = msg  + ","
					msg = msg  + cap[intform] 
				
				}
			}
			else if((document.getElementById(nam[intform]).type == "text") ||(document.getElementById(nam[intform]).type == "password"))
			{
				//alert("in text");
			    strVal=document.getElementById(nam[intform]).value;
			    strVal=Trim(strVal);
			    //alert(strVal=="")
				if (strVal == "" )
				{
					if (msg != "") 
					msg = msg  + ","
					msg = msg  + cap[intform];
					//alert("msg");
					//alert(msg);
				}
			}
			else if(document.getElementById(nam[intform]).value == "")
			{				
				//alert ("Please enter the value for " + captions);
				if (msg != "") 
					msg = msg  + ","
					msg = msg  + cap[intform] ;
			}
			
			
			msg1 = isMultipleRequire(nam[intform],cap[intform]);
				
			if(msg1 !="")
			{
				msg = msg + "," + msg1
			}
			else{
			msg = msg;
			}
		
			
		}
		if (msg== "")
		{
			return true;
		}
		else
		{
			//alert ("Please enter the value for " + msg);
			alert ("Please enter/select the value for " + msg);
			return false;
		}		
	}
	
function Trim(sInString) 
{
    //alert("in trim");
   //alert(sInString);
  sInString = sInString.replace( /^\s+/g, "" );// strip leading
  return sInString.replace( /\s+$/g, "" );// strip trailing
}

function isMultipleRequire(object,caption)
{	
	var msg2 = ""
	
	if(document.forms[0].elements[object].length>0){
		if((document.forms[0].elements[object][0].type=="radio")){
		var i;
				for(i =0; i< document.forms[0].elements[object].length;i++){
					
					if(document.forms[0].elements[object][i].checked == true){
						break;
					}
				
				}
		
			if(i == document.forms[0].elements[object].length){
			
			msg2 = caption
			}
		}
	}
	return msg2
}
function CheckListBoxSelection(objName)
{
    //alert("in LstBox");
    var LstBox = document.getElementById(objName);
    var SelectedItems="";
    var count=0;
    for(var i=0; i<LstBox.options.length; i++)
    {
        if(LstBox.options[i].selected == true)
        {
            SelectedItems = SelectedItems + LstBox.options[i].value + ", ";
            //alert(SelectedItems);
            count++;
            
        }        
    }
    //alert("count = " + count);
        if(count>1)
        {
            if(SelectedItems.indexOf("1") >= 0)
            {
                alert("Invalid selection of Areas Of Interest. You need not select any other Interest if you select \"All\".");
                return false;
            }
            else 
                return true;
        }
        else if(count == 0)
        {
            alert("Please select atleast one Area of Interest.");
            return false;
        }
        else
            return true;
}
/*function checkFax2313(strVal, objName, caption)
{   
    if(Trim(strVal) != "")
    {
        if(Trim(strVal).length >0 && Trim(strVal).length < 10)
        {
            alert("Please enter valid number in " + caption +" Format:xxx xxx xxxx");
            objName.select();
            return false;
        }
        else(strVal.length == 0)
        {
            return true;
        } 
    }
    else
    {
        return true;
    }
}*/
function checkTeleFax(strVal, objName, caption, Len)
{
    var strvalue = Trim(strVal);
    if(strvalue.length > 0 && strvalue.length < Len)
    {
        alert("Please enter valid number in " + caption + ". Format:xxx xxx xxxx");
            objName.select();
            return false;
    }
    else
    {
        return true;
    }
    
}

function checkFax(objFax1,fax1val,objFax2,fax2val,objFax3,fax3val,caption)
{    
    var check = false;
    if(fax1val.length > 0 || fax2val.length > 0 || fax3val.length > 0)
    {
       check = true; 
    }
    if(check)
    {
        if(Trim(fax1val) == "")
        {
            alert("Please enter valid number in " + caption + ". Format:xxx xxx xxxx");
            objFax1.select();
            return false;
        }
        if(Trim(fax2val) == "")
        {
            alert("Please enter valid number in " + caption + ". Format:xxx xxx xxxx");
            objFax2.select();
            return false;
        }
        if(Trim(fax3val) == "")
        {
            alert("Please enter valid number in " + caption + ". Format:xxx xxx xxxx");
            objFax3.select();
            return false;
        }
    }
    return true;
}

function CheckTelephonepresent(objName1, objName2, objName3)
{
    if(objName1.value == "" || objName2.value == "" || objName3.value == "")
    {
        alert("Please enter Telephone No.");
        if(objName3.value == "")
            objName3.select();
        if(objName2.value == "")
            objName2.select();
        if(objName1.value == "")
            objName1.select();
        return false;
    }    
    else
        return true;
}

function CheckMultilineTextMaxLength(TxtBx, maxLength, cap)
{	
    
    if(TxtBx.value.length > maxLength)
	{
		//TxtBx.value = TxtBx.value.substr(0,maxLength);
		alert("Text out of limit in "+cap+". Max limit is "+ maxLength +" characters.");
		TxtBx.select();
		return false;
	}
	else
	    return true;
}

//function isValidURL(url){ 
//    if(url != "")
//    {
//        //alert("hi");
//        var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/; 
//        if(RegExp.test(url)){ 
//            return true; 
//        }else{ 
//            alert("Enter valid WebSite");
//            return false; 
//        } 
//    }
//    else
//        return true;
//}
function isValidURL(objname)
{ 
    var val = objname.value;
    if(Trim(val) != "")
    {
        var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/; 
        //((http|ftp|https)+\:)\/\/([\w-]+\.)+(/[\w- ./?%&=]*)?;
        //var RegExp = /^[http-ftp-https]:\/\/([\w-]+\.)+(/[\w- ./?%&=]*)?$/;
        if(RegExp.test(val))
        { 
            return true; 
        }
        else
        { 
            alert('Please enter valid website URL. Format:http:// or https:// or ftp://');
            objname.select();
            return false; 
        }
    }
    else
    {
        return true;
    }   
}
    
function CheckCharacterValidation(strobj,strcap,strreexp)
{ 
    if(strobj.value != "")     
    {
        var reValid= new RegExp(strreexp); 
        
        try
            {    
                if (reValid.test(strobj.value))
                {	                  
                      return true;
                }
                else
                { 
                        // Please remove alert from here and place the alerts right in the pages.                  
                      alert('Please enter alpha-numeric characters for '+strcap);
                      strobj.select();
                      return false;
                }
            }   
            catch(err)
            {
                alert(err);
                return false;
            }   
     } 
     else
        return true;
}

function validateState(objtxtState,objddlCountry)
{
//    if(objddlState.disabled==true)
//    {
//      if(objtxtstate.value=='')
//      {
//         alert('Please Enter State');
//         objtxtstate.select();
//         return false;
//      }  
//      if(objtxtstate.value!='')
//      {    
//          if(!(/^[a-zA-Z]*$/).test(objtxtstate.value))
//          {
//             alert('State should not contain special characters');
//             objtxtstate.select();
//             return false;
//          }
//          return true;         
//      }
//    }
//    else
//    {
//      if(objddlState.options[objddlState.selectedIndex].value<=0)
//      {
//        alert('Please Select State');       
//		objddlState.focus();
//		return false;
//      }
//      else
//          return true;
//    }
  
    if(objddlCountry.options[objddlCountry.selectedIndex].value!='United States')
    {    
          if(objtxtState.value.trim()!='')
          {    
              if(!(/^[a-zA-Z]*$/).test(objtxtState.value.trim()))
              {
                 alert('State should not contain special characters');
                 objtxtState.select();
                 return false;
              }
              return true;         
          }
          else
            return true;   
    }
    else
       return true;      
}
function ValidateTitle(objTitle)
{
   if(objTitle.value.trim()!='')
   {
       if(CheckCharacterValidation(objTitle,'Title', /^[A-Za-z0-9\s]+$/))
       {
          return true;
       }
       else
       {
          return false;
       }
   }
   else
   {
       return true;
   }
}

function ValidateCompanyName(objCompnayName)
{
   if(objCompnayName.value.trim()!='')
   {
       if(CheckCharacterValidation(objCompnayName,'Company Name', /^[A-Za-z0-9\s]+$/))
       {
          return true;
       }
       else
       {
          return false;
       }
   }
   else
   {
       return true;
   }
}

function ValidateCity(objCity)
{
   if(objCity.value.trim()!='')
   {
       if(CheckCharacterValidation(objCity,'City', /^[A-Za-z0-9\s\']+$/))
       {
          return true;
       }
       else
       {
          return false;
       }
   }
   else
   {
       return true;
   }
}

function ValidateFax(objName)
{
      if(objName.value.trim()!='')
      {
         if(checkInt(objName, 'Fax'))
         {
            objName.select();
            return true;
         }
         else
         {
           return false;
         }
      } 
      else
      {
          return true;
      }        
}