// Javacsript Document 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; 
}

// Alphabatic characters, comma and blank space are allow by this validator function.
function alphaNumCommaFortag(frmObject) 
{ 
	frmObject.value = frmObject.value.trim(); 
	var str= frmObject.value; 
	var re = /^[A-Za-z0-9\,]*$/; 
	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; 
}

// 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; 
} 
 
// 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;
}

// Alphanumeric with special character values are allowed by this function.
function validateTitle(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 video alias & category alias field 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)) 
	{ 
		
		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; 
}

//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)) 
	{  	
		frmObject.focus();
		return false; 
	} 	
	return true; 
}

// Url validation
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)) 
	{
		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;
					}	
					
				}
			}
			
			return false;
		}
	}
}


// Check all checkbox
function checkall(flag, 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;
}


// 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)
{
	var count = checkCount(form);
	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)
{
	var count = checkCount(form);
	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)
{
	var count = checkCount(form);
	
	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 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;
	}
}

// Add Marque tag to category
function addMarque(cat_li_id, cat_id , cat_title)
{
	document.getElementById(cat_li_id).innerHTML = "<a href='"+host_url+"video/category/"+cat_id+"'> <marquee>"+cat_title+"</marquee> </a>" ;
	
}


// Remove Marque tag from category
function removeMarque(cat_li_id, cat_id , cat_title)
{
	document.getElementById(cat_li_id).innerHTML = "<a href='"+host_url+"video/category/"+cat_id+"'>"+cat_title+"</a>" ;
}

//Validate URLs
function isUrl(s) 
{
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(s);
}
