/* Author: Ankita Bhavsar
Description: This Javacsript code is for common js validations
*/

// Return false & add red dotted border style , error message for particular fields
function retFalse(frmObject,errMsg)
{
	var re = "validation-failed";
	if(!frmObject.className.match(re))
	{
		frmObject.className = frmObject.className+" validation-failed";
	}
	
	document.getElementById(frmObject.name+"Err").innerHTML = "<br />"+errMsg;
	frmObject.focus();

}

// Return true & remove red dotted border style , remove error message for particular fields
function  retTrue(frmObject)
{	
	frmObject.className = frmObject.className.replace("validation-failed","");
	document.getElementById(frmObject.name+"Err").innerHTML = "";
}

//validate the non empty text field in the form.
function empty(frmObject)
{
	var str = frmObject.value.trim();
	var re = /.+/;
	if(!str.match(re))
	{

		frmObject.focus();
		return false;
	}
	return true;
}

//validate the non empty text field in the form.
function minlength(frmObject,strchar,field)
{
	var str = frmObject.value.trim();
	if(str.length < strchar)
	{
		min_length_msg = min_length_message.replace("{CHAR}", strchar);
		min_length_msg = min_length_msg.replace("{FIELD}", field);

		frmObject.focus();
		return false;
	}
	return true;
}

//validate the non empty text field in the form.
function maxlength(frmObject,strchar,field)
{
	var str = frmObject.value.trim();
	if(str.length > strchar)
	{
		max_length_msg = max_length_message.replace("{CHAR}", strchar);
		max_length_msg = max_length_msg.replace("{FIELD}", field);

		frmObject.focus();
		return false;
	}
	return true;
}

//Alphabatic characters and blank space are allow by this validator function.
function alpha(frmObject)
{
	frmObject.value = frmObject.value.trim();
	var str= frmObject.value;
	var re = /^[A-Za-z\s]*$/;
	if (! str.match(re))
	{		
		frmObject.focus();
		return false;
	}
	return true;
}

//Alphabatic characters, comma and blank space are allow by this validator function.
function alphaComma(frmObject)
{
	frmObject.value = frmObject.value.trim();
	var str= frmObject.value;
	var re = /^[A-Za-z\,\s]*$/;
	if (! str.match(re))
	{		
		frmObject.focus();
		return false;
	}
	return true;
}

//Alphabatic characters, comma and blank space are allow by this validator function.
function alphaNumComma(frmObject)
{
	frmObject.value = frmObject.value.trim();
	var str= frmObject.value;
	var re = /^[A-Za-z0-9\,\s]*$/;
	if (! str.match(re))
	{
		frmObject.focus();
		return false;
	}
	return true;
}

//Alphabetic and numeric values are allowed by alphanumeric function.
function alphaNumeric(frmObject)
{
	frmObject.value = frmObject.value.trim();
	var str= frmObject.value;
	var re = /^[A-Za-z0-9\s]*$/;
	if (! str.match(re))
	{
		
		frmObject.focus();
		return false;
	}
	return true;
}
function alphaAndNum(value)
{
  var re = /^(?=.*[A-Za-z])(?=.*[0-9])(?!.*[^A-Za-z0-9])(?!.*\s).{6,15}$/;

  if ( !re.test(value) )         
  {                   
     return false;          
  }
  return true;
}

//intNumber function is used for the numeric value either integer or decimal.
// if you have pass digit = 0 then it is round to zero decimal value if value > 0 then round for that decimal point.
function intNumber(frmObject,digit)
{
	frmObject.value = frmObject.value.trim();
	var str= frmObject.value;
	if( digit == 0 )
	{
		var re = /^[0-9]*$/;
	}
	else
	{
		var re = /^[0-9\.]*$/;
	}
	if (! str.match(re))
	{	
		frmObject.focus();
		return false;
	}
	if (digit > 0 )
	{
		var pos = frmObject.value.indexOf(".");
		var len = frmObject.value.length;
		var place = parseInt(len) - (parseInt(pos)+1);
		if(place != digit)
		{		
			frmObject.focus();
			return false;
		}
	}
	return true;
}
//To check value is numeric
function IsNumeric(sText)
{
   
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char; 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 	  
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }
   //To check value is numeric
function IsInt(sText)
{
   
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char; 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 	  
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }
   
//To check number is float or not
function isFloat(value){
   if(isNaN(value) || value.indexOf(".")<0){
     return false;
   } else {
      if(parseFloat(value)) {
              return true;
          } else {
              return false;
          }
   }
}


//validate the emailaddress.
function emailValidation(frmObject)
{	
	var str = frmObject.value;
	var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
	if (!str.match(re))
	{
		frmObject.focus();
		return false;
	}
	return true;
}

//Alphanumeric with special character values are allowed by this function.
function alphaNumericSpecial(frmObject)
{
	frmObject.value = frmObject.value.trim();
	var str= frmObject.value;
	var re = /^[A-Za-z0-9\!\@\(')\#\$\%\^\&\*\(\)\_\+\-\~\?\>\<\,\.\`\s]*$/;
	if (! str.match(re))
	{	
		frmObject.select();
		return false;
	}
	return true;
}

// Validate Username with particular rejex patteren
function validUserName(frmObject)
{
	frmObject.value = frmObject.value.trim();
	var str= frmObject.value;
	var re = /^[A-Za-z0-9\_\.\-]*$/;
	if (! str.match(re))
	{
		
		frmObject.select();
		return false;
	}
	return true;
}

// validate page url in the form.
function validPageUrl(frmObject)
{
	
    frmObject.value = frmObject.value.trim();
	var str= frmObject.value;
	var re = /^[A-Za-z0-9\_\-]*$/;
	if (! str.match(re))
	{
		frmObject.select();
		return false;
	}
	return true;
}


//Alphanumeric with special character values are allowed by this function.
function validPassword(frmObject)
{
	frmObject.value = frmObject.value.trim();
	var str= frmObject.value;
	var re = /^[A-Za-z0-9\!\@\#\$\%\^\&\*\(\)\_\+\-\~\?\>\<\,\.\`]*$/;
	if (! str.match(re))
	{
		/*alert(lang[7]);frmObject.focus();*/
		frmObject.select();
		return false;
	}
	return true;
}

//trim function truncat the leadin and trailing space of string.
String.prototype.trim = function() { a = this.replace(/^\s+/, ''); return a.replace(/\s+$/, ''); };

//Telehpone function allow numeric value from 0 to 9 and few character like -,+,(,) and blank space.
function telephone(frmObject)
{
	frmObject.value = frmObject.value.trim();
	var str = frmObject.value;
	var re = /^[0-9\-\+\(\)\s]*$/;
	if(! str.match(re))
	{		
		frmObject.focus();
		return false;
	}
	return true;
}
function checkTelephone(frmObject)
{
	frmObject.value = frmObject.value.trim();
	var str = frmObject.value;
	var re = /^[0-9\-\.\+\(\)\s]*$/;
	if(! str.match(re))
	{		
		frmObject.focus();
		return false;
	}
	return true;
}

//checkCC function validate the 16 digit credit card number with format like XXXX XXXX XXXX XXXX
function checkCC(frmObject)
{
	frmObject.value = frmObject.value.trim();
	var str = frmObject.value;
	var re = /^\d{4} ?\d{4} ?\d{4} ?\d{4}$/;
	if(!str.match(re))
	{
		frmObject.focus();
		return false;
	}
	return true;
}

//checkCC4 function validate the 4 digit credit card number with format like XXXX
function checkCC4(frmObject)
{
	frmObject.value = frmObject.value.trim();
	var str = frmObject.value;
	var re = /^\d{4}$/;
	if(!str.match(re))
	{
		/*alert(lang[10]);  */
		frmObject.focus();
		return false;
	}
	return true;
}

function checkUrl(frmObject)
{
	frmObject.value = frmObject.value.trim();
	
	newarray = frmObject.value.split(".");
	
	if(newarray[0].trim() != "www")
	{
		return false;
	}

	var str = "http://" + frmObject.value;
	var v = new RegExp();
	v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
	if (!v.test(str))
	{
		alert("Please Enter valid URL format");
		
		frmObject.focus();

		return false;
	}
	return true;
}
// Trim all, left & right both
function trimAll(sString) //trimall function
{
	while (sString.substring(0,1) == ' ')
	{
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

/**
compare(frmObject1, frmObject2)
Compare two different field value
**/

function compare(frmObject1, frmObject2)
{
	if(frmObject1.value != frmObject2.value)
	{
		return false;

	}
	return true;
}

/*
focusFirstElement()
Focus the first element of the first main form of the page
*/
function focusFirstElement()
{
	var numberOfForms = document.forms.length;

	if(numberOfForms>0)
	{
		for(var i=0;i<numberOfForms;i++)
		{

			if(document.forms[i].name != "searchForm")
			{
				for(var j=0;j<document.getElementById(document.forms[i].name).elements.length;j++)
				{
					var fieldType = document.getElementById(document.forms[i].name).elements[j].type;

					if(fieldType != "hidden" && fieldType != "submit")
					{
						document.getElementById(document.forms[i].name).elements[j].focus();
						break;
					}

				}
			}
		}
	}
}

// Check all checkbox
function checkall(form)
{
	for (var i=0;i<form.elements.length;i++) 
	{
	    var e = form.elements[i];
	    if ((e.name != 'main') && (e.type=='checkbox')) 
	    {
	    	if(form.main.checked == true)
			{
			   e.checked = true;
			}
			else
			{
				e.checked = false;
			}
		}
	  }


	
}

// Checkbox checked count
function checkCount(form)
{
	
	  var TotalOn = 0;
	  
	  for (var i=0;i<form.elements.length;i++) {
	    var e = form.elements[i];
	    if ((e.name != 'main') && (e.type=='checkbox')) {
	     
	      if (e.checked) {
	       TotalOn++;
	      }
	    }
	  }
	  
	  return TotalOn;
}

function textboxCount(form,name)
{		  
	  var TotalOn = 0;	  
	  for (var i=0;i<form.elements.length;i++) {
	    var e = form.elements[i];
	    if ((e.id == 'item_approvedqty') && (e.type=='text')) {		
	     if (e.value != "") {
	       TotalOn++;
	      }
	    }
	  }
	  
	  return TotalOn;
}

function textboxValueCount(form,name)
{		  
	  var TotalOn = 0;	  
	  for (var i=0;i<form.elements.length;i++) {
	    var e = form.elements[i];
	    if ((e.id == 'item_approvedqty') && (e.type=='text')) {		
	     if ((e.value != "") && (!IsInt(e.value))) {
	       TotalOn++;
	      }
	    }
	  }	  
	  return TotalOn;
}

/*function reqqty_textboxCount(form,countRows)
{		  
	  var flag = 0;	
	  var emptyVal = 0;
	  var invalid = 0;
	  for (var i=0;i<form.elements.length;i++) {
	    var e = form.elements[i];
	    if ((e.id == 'item_qtyreq') && (e.type=='text')) {		
	     if (e.value == "") 
		  {      
		   emptyVal++;
	      }		  
		  else if ((e.value != "") && (!IsInt(e.value))) 
		  {
		    invalid++;  
		  }
	    }
	  }	
	  
	  if(invalid > 0)
	  flag = 1;
	  else if(countRows == emptyVal)
	  flag = 1;
	  //alert("empty="+emptyVal + " invalid=" + invalid);
	 	 
	return flag;
}*/
function reqqty_textboxCount(form,countRows) 
{
	var emptyVal = 0;
	var flag = 0;
    var invalid = 0;
	for(i=0;i<countRows;i++) 
	{
		var itemVal = parseInt(document.frm_viewalldonation.itemid[i].value);
		//alert(itemVal);
		var item_qtyreq = "item_qtyreq-"+itemVal;
		//alert(" qty ="+item_qtyreq +" value = "+document.getElementById(item_qtyreq).value);
		//item_qtyreq-1
		 // item_qtyreq-1
		//alert(document.getElementById(item_qtyreq).value);
		if(document.getElementById(item_qtyreq).value == "")
		{
			emptyVal++;
		}
		/*if((document.getElementById(item_qtyreq).value != "") && (!IsInt(document.getElementById(item_qtyreq).value)))
		{
			invalid++;
		}*/
    }
	//alert(" invalid = "+invalid +" empty = "+emptyVal);
	//return false;
	if(countRows == emptyVal)
	  flag = 1;
	else if(invalid > 0)
	  flag = 1;
		
	return flag;
}


// Check one checkbox
function checkOne(form)
{
	 var TotalBoxes = 0;
	 
	 for (var i=0;i<form.elements.length;i++) 
	{
	    var e = form.elements[i];
	    if ((e.name != 'main') && (e.type=='checkbox')) 
	    {
	    	TotalBoxes++;
		}
	  }
	 
	 var TotalOn = checkCount(form);
	  
	  if (TotalBoxes == TotalOn) {
	    form.main.checked=true;
	  }
	  else {
	   form.main.checked=false;
	  }
}

// Make status active for all checked records
function Active(form, id)
{
	var count = checkCount(form, id);
	if(count>0)
	{
		if(confirm(ERR['confirm']['active']))
		{
			form.mode.value="active";
			form.submit();
		}
		else
		return false;
	}
	else
	{
		alert(ERR['select']['active']);
		return false;
	}
}

// Make status inactive for all checked records
function Inactive(form, id)
{
	var count = checkCount(form, id);
	if(count > 0)
	{
		if(confirm(ERR['confirm']['inactive']))
		{
			form.mode.value="inactive";

			form.submit();
		}
		else
		return false;
	}
	else
	{
		alert(ERR['select']['inactive']);
		return false;
	}
}


// Delete all checked records
function Delete(form, id)
{
	var count = checkCount(form, id);

	if(count>0)
	{
		if(confirm(ERR['confirm']['delete']))
		{
			form.mode.value = "delete";

			form.submit();
		}
		else
		return false;
	}
	else
	{
		alert(ERR['select']['delete']);
		return false;
	}
}

// Delete selected One 
function deleteOne(url)
{
	if(url)
	{
		if(confirm(ERR['confirm']['delete']))
		{
			window.location=url;
		}
		else
		return false;
	}
}

// Search form validation - Admin Panel
function searchRecord(form)
{
	var voption = form.voption;
	var keyword = form.keyword;

	if(!empty(voption))
	{
		alert(ERR['search']['voption']);
		form.voption.focus();
		return false;
	}

	if(!empty(keyword))
	{
		alert(ERR['search']['keyword']);
		form.keyword.focus();
		return false;
	}

	form.mode.value="search";

	form.submit();
}

// Search form validation - Frontend
function validSearch()
{
	vsearch_text = document.getElementById('search_text');
	if(!empty(vsearch_text))
	{
		alert(ERR['search']['vsearch_text']);
		document.getElementById('search_text').focus();
		return false;
	}
}


