/*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
	Page Name: validations.js
	Desc: Javascript validations
	Author: Amit Ahuja
	Date: November 21th 2007
	Modified or added some of the functions by Neeraj Garg (Web Development)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*/
function refine_date(dt){
	var temp = dt.split("/");
	var mm = temp[0];
	var dd = temp[1];
	if(mm.length==1){
		temp[0] = "0" + mm;
	}
	if(dd.length==1){
		temp[1] = "0" + dd;
	}
	return temp[0] + "/" + temp[1] + "/" + temp[2]; 	
}
function numericcheck(object,str)
{
	var value=object.value;
	
	var value1=object.value;
	x=0
	for(var i=0;i<value1.length;i++)
	{	
		if (value1.charAt(i)!=" ") { x=1 }
	
	} 
	if (x==0)
	{
		alert("Please enter numeric values for "+str+".");
		object.focus();
		object.select(); 
		return false;
	}
	if (isNaN(value)==true){
		alert("Please enter numeric values for "+str+".");
	object.focus();
	object.select();
	return false;
	}
	
	else return true;
}

function price(object,str)
{
	var value=object.value;
	if ( value<0 ){
	alert(str+" can not have negative values.");
	object.focus();
	object.select();
	return false;
	}

	if (value==0){
	alert(str+" can not be 0.");
	object.focus();
	object.select();
	return false;
	}
	
	else return true;
	
}
function totalprice(object,str)
{
	var value=object.value;
	if ( value<0 ){
	alert(str+" can not have negative values.");
	object.focus();
	object.select();
	return false;
	}

	else return true;
	
}

function formreset()
{
	theform.reset();
}
	
function empty(object,str)
{
	var value=object.value;
	
	if (value=="")
	 {
	 	//alert("null");
		alert("Please enter the "+str+".");
		object.focus();
		return false;
	 }
	str1=object.value;
	x=0
	for(var i=0;i<str1.length;i++)
	{	
		if (str1.charAt(i)!=" ") { x=1 }
	
	}
	if (x==0)
	{
		alert("Please enter the "+str+".");
		object.value=""
		object.focus();
		return false;
	}
	str1=object.value;
	x=0
	y=0
	len=str1.length;
	for(var i=0;i<str1.length;i++)
	{	
		if ((str1.charAt(i)=="\r") && (str1.charAt(i+1)=="\n")) { y++; }
	
	}
	if (y==(len/2))
	{
		alert("Please enter the "+str+".");
		object.value=""
		object.focus();
		return false;
	}
	
	 return true;
}

function emptyonly(object)
{
	var value=object.value;
	var flag = 0;
	if (value=="")
	 {
	 	
		flag++;
	 }
	str1=object.value;
	x=0
	for(var i=0;i<str1.length;i++)
	{	
		if (str1.charAt(i)!=" ") { x=1 }
	
	}
	if (x==0)
	{
		
		flag++;
	}
	str1=object.value;
	x=0
	y=0
	len=str1.length;
	for(var i=0;i<str1.length;i++)
	{	
		if ((str1.charAt(i)=="\r") && (str1.charAt(i+1)=="\n")) { y++; }
	
	}
	if (y==(len/2))
	{
		
		flag++;
	}
	if(flag>0){
	 return false;
	}else{
	 return true;
	}
}
function checkext1(obj){ //for podcast 
	var temp = obj.value;
			var pos = temp.indexOf(".");
			if(pos==""){
				pos = 0;
			}			
			var ext = temp.substr(pos,5);
			if(ext!=".mpg" && ext!=".mpeg" && ext!=".mov"){
				alert("Please enter Podcast filename with formats: .mpg, mpeg, .mov only");
				return false;
			}else{
				return true;
			}
}
function checkext2(obj){ //for display 
	var temp = obj.value;
			var pos = temp.indexOf(".");
			if(pos==""){
				pos = 0;
			}			
			var ext = temp.substr(pos,5);
			if(ext!=".flv"){
				alert("Please enter Display filename with format: .flv only\n(upload file through FTP in videos/flvs/ folder)");
				return false;
			}else{
				return true;
			}
}
function fckempty(object,str)
{
	var value=object.value;
	
	if (value=="")
	 {
	 	//alert("null");
		alert("Please verify the entered data for "+str+" before proceeding further.");
		object.focus();
		return false;
	 }
	str1=object.value;
	x=0
	for(var i=0;i<str1.length;i++)
	{	
		if (str1.charAt(i)!=" ") { x=1 }
	
	}
	if (x==0)
	{
		alert("Please verify the entered data for "+str+" before proceeding further.");
		object.value=""
		object.focus();
		return false;
	}
	str1=object.value;
	x=0
	y=0
	len=str1.length;
	for(var i=0;i<str1.length;i++)
	{	
		if ((str1.charAt(i)=="\r") && (str1.charAt(i+1)=="\n")) { y++; }
	
	}
	if (y==(len/2))
	{
		alert("Please verify the entered data for "+str+" before proceeding further.");
		object.value=""
		object.focus();
		return false;
	}
	
	 return true;
}
function emailcheck(object)
{
	if (!empty(object,"email"))
		return false;

	var email=object.value;
	var matcharray=email.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) 
	if(matcharray==null)
	{
		alert("Please enter valid email address.");
		object.focus();
		object.select();
		return false;
	}
	else 
	 return true
}	

function emailStringCheck(email)   // This will check valid string value (comma seprated values of emails)
{
	var to_address = email;
	
	address_arr = to_address.split(',');	
		
	for(var i=0; i< address_arr.length ; i++)
	{
		var email = trim(address_arr[i]);
		
		if(email != '')
		{
			var matcharray = email.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) 
		
			if(matcharray==null)
			{					
				alert(address_arr[i] + " address not recognised");
				return false;
			}
		}	
	}
}

function validateURL(myobject)
{
	
	var strURL = myobject.value;
	if (strURL!="")
	{
		var is_protocol_ok=strURL.indexOf('http://');
		var is_dot_ok=strURL.indexOf('.');
		if ((is_protocol_ok==-1) || (is_dot_ok==-1))
		{ 
		 alert("Please enter correct URL. \n http://www.test.com");
		 myobject.focus();
		 return false;
		}

	}
	return true;
}

function isvalidname(obj,msg)
{
	var chk="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-'0123456789. ";
	var str=obj.value;
	var allvalid=1;
	for (i = 0;i<str.length;  i++)
	 {
		ch = str.charAt(i);
		if(chk.indexOf(ch)==-1)
		{
			allvalid=0;
		}	
	}	
  if (allvalid==0)
  {
    alert(msg+" can not have special characters.");
    obj.focus();
	obj.select();
	return false;
  }
return true;
}



function onlyAlphabets(obj,msg)
{
	var chk="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-'. ";
	var str=obj.value;
	var allvalid=1;
	for (i = 0;i<str.length;  i++)
	 {
		ch = str.charAt(i);
		if(chk.indexOf(ch)==-1)
		{
			allvalid=0;
		}	
	}	
  if (allvalid==0)
  {
    alert(msg+" can have Alphabets Only.");
    obj.focus();
	obj.select();
	return false;
  }
return true;
}



function isvalidname2(obj,msg)
{
	var chk="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
	var str=obj.value;
	var allvalid=1;
	for (i = 0;i<str.length;  i++)
	 {
		ch = str.charAt(i);
		if(chk.indexOf(ch)==-1)
		{
			allvalid=0;
		}	
	}	
  if (allvalid==0)
  {
    alert(msg+" can not have special characters.");
    obj.focus();
	obj.select();
	return false;
  }
return true;
}


function isvalidname1(obj,msg)
{
	var chk="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-'0123456789.";
	var str=obj.value;
	var allvalid=1;
	for (i = 0;i<str.length;  i++)
	 {
		ch = str.charAt(i);
		if(chk.indexOf(ch)==-1)
		{
			allvalid=0;
		}	
	}	
  if (allvalid==0)
  {
    alert(msg+" can not have special characters.");
    obj.focus();
	obj.select();
	return false;
  }
return true;
}

function isvalidfilename(obj,msg)
{
	var chk="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-0123456789.";
	var str=obj.value;
	var allvalid=1;
	for (i = 0;i<str.length;  i++)
	 {
		ch = str.charAt(i);
		if(chk.indexOf(ch)==-1)
		{
			allvalid=0;
		}	
	}	
  if (allvalid==0)
  {
    alert(msg+" can not have special characters or spaces.");
    obj.focus();
	obj.select();
	return false;
  }
return true;
}

function maxcheck (field, maxlen)
{
	 if (field.value.length > maxlen)
	 {
		  alert ("Field length exceeded!\nAllowed: "+maxlen+" characters,\nEntered: "+field.value.length+" characters.");
		  field.focus();
		  return  false;
	 }
	 return true;
}

function textCounter(field,maxlimit) 
{
	if (field.value.length > maxlimit) 
	field.value = field.value.substring(0, maxlimit);
}


/*function imagecheck(field)
{
	
	var a=field.value;
		if(a!="")
		{
			array=a.split("\\");
			len=array.length;
			filename=array[len-1];
			array1=filename.split("."); 
			if(array1[1]!="jpg" && array1[1]!="JPG" && array1[1]!="JPEG" && array1[1]!="jpeg" && array1[1]!="gif" && array1[1]!="GIF")
			{
				alert("Files with extensions .jpg, .jpeg, .gif can only be uploaded.");//.gif,
				field.focus();
				return false;
			 }		
	     		
		}
		return true;
}*/

function imagecheck(field)
{
	
	var a=field.value;
		if(a!="")
		{
			array=a.split("\\");
			len=array.length;
			filename=array[len-1];
			array1=filename.split("."); 
			var cnt=array1.length;
			var indexLastDot=cnt-1;
			if(array1[indexLastDot]!="jpg" && array1[indexLastDot]!="JPG" && array1[indexLastDot]!="JPEG" && array1[indexLastDot]!="jpeg" && array1[indexLastDot]!="gif" && array1[indexLastDot]!="GIF" && array1[indexLastDot]!="png" && array1[indexLastDot]!="PNG")
			{
				alert("Files with extensions jpeg, png and gif can only be uploaded.");//.gif,
				field.focus();
				return false;
			 }		
	     		
		}
		return true;
}

function fileextension2(field)
{
	var a=field.value;
//	alert(a)
		if(a!="")
		{
			array=a.split("\\");
			len=array.length;
			filename=array[len-1];
			array1=filename.split(".");
//			alert(array1[1]);
//			if(array1[1]!="swf" )
			if(array1[1]!="htm" && array1[1]!="html")
			{
				alert("Files with extensions .htm or .html can only be uploaded.");//.gif,
				field.focus();
				return false;
			 }		
	     		
		}
		return true;
}
function pdfcheck(field)
{
	var a=field.value;
		if(a!="")
		{
			array=a.split("\\");
			len=array.length;
			filename=array[len-1];
			array1=filename.split(".");
			if(array1[1]!="pdf" && array1[1]!="PDF")
			{
				alert("Files with extensions .pdf can only be uploaded.");
				field.focus();
				return false;
			 }			     		
		}
		return true;
}

function yearcheck(number) { 
 if (number < 1000)
 {
  number = number + 2000;
 }
 
 return number; 
}

function datecheck(dyObj,mnthObj,yrObj)
{
	var month=parseInt(mnthObj.options[mnthObj.selectedIndex].value);
	var days=parseInt(dyObj.options[dyObj.selectedIndex].value);
	var year=parseInt(yrObj.options[yrObj.selectedIndex].value);
	month = month -1;
    var test = new Date(year,month,days);
	ayear=yearcheck(test.getYear());
	amonth=	test.getMonth();
	aday=test.getDate();
   
   if ( (yearcheck(test.getYear()) == year) && (month == test.getMonth()) && (days == test.getDate()) )
    {
		//return true;
	}
    else
	{
		alert("Please enter a valid date.");
		dyObj.focus();
		return false;
	}
	
return true;

}

function selectbox(object,str,val)
{
	var value=object.options[object.selectedIndex].value;
	if (value==val)
	{
		alert("Please select the "+str+".");
		object.focus();
		return false;
	}else return true;

}

function isvalidpass(obj,msg)
{
	var chk="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
	var str=obj.value;
	var allvalid=1;
	for (i = 0;i<str.length;  i++)
	 {
		ch = str.charAt(i);
		if(chk.indexOf(ch)==-1)
		{
			allvalid=0;
		}	
	}	
  if (allvalid==0)
  {
    alert(msg+" cannot have spaces and special characters.");
    obj.focus();
	obj.select();
	return false;
  }
return true;
}


function doublequotes (obj,msg)
{
	var chk="\"";
	var str=obj.value;
	var allvalid=1;

	for (i = 0;i<str.length;  i++)
	 {
		ch = str.charAt(i);
		if(chk.indexOf(ch)!=-1)
		{
			allvalid=0;
		}	
	}	
	if (allvalid==0)
	  {
		alert(msg+" cant have double quotes.");
		obj.focus();
		obj.select();
		return false;
	  }
return true;
}

function isvalidphone(obj,msg)
{
	var chk="0123456789";
	var str=obj.value;
	var allvalid=1;
	for (i = 0;i<str.length;  i++)
	 {
		ch = str.charAt(i);
		if(chk.indexOf(ch)==-1)
		{
			allvalid=0;
		}	
	}	
  if (allvalid==0)
  {
    alert(msg);
    obj.focus();
	obj.select();
	return false;
  }
return true;
}
function validate (field, maxlen)
{
	if (field.value.length > maxlen)
	{
		alert("Maximum characters allowed are "+maxlen+". Entered are "+field.value.length+" characters.");
		field.focus();
		return  false;
	}
	return true;
}

function checkbox(frm, flag)
{
  //alert(aa);
  if(flag == 1)
    var len=frm.elements.length -1 ;
  else
	var len=frm.elements.length;
  var ret=false;
 
  for(var i=0;i<len;i++)
  {
   //alert(frm.elements[i].type);
   //alert(frm.elements[i].name);
   if(frm.elements[i].type=="checkbox")
   {
    if(frm.elements[i].checked==true)
     ret=true;
   }
  }
 
  if(ret==false)
   alert("Please make at least one selection.");
  return ret;
 }


function onlyspace(object,str)
{
var str1=object.value;
			str2="";	
	for(var i=0;i<str1.length;i++)
	{	
		if ((str1.charAt(i)!="\r")&&(str1.charAt(i)!="\n")&&(str1.charAt(i)!=" ")) 
		{ 
			str2=str2+str1.charAt(i);		
		}
		
	}
	if (str2=="")
	{
	alert(str)
	object.focus();
	object.value=""
	return false;	
	}

	return true;
}

function phoneCheck(object , focus_field)
{
	var x = object.value;
	//var regexp=/^(\d{3}-\d{3}-\d{4}|\d{10}|\(\d{3}\)\d{3}-\d{4}|\d{6}|\d{7}|\d{8})$/;
	regexp=/^(\+\d{2}-\d{10}|\+\d{12}|\+\d{2}-\d{5}-\d{5}|\d{10}|\d{11})$/;
	if(!(regexp.test(x)))
	{
		var msg = "";
		msg = "Please enter the correct phone number";
		msg = msg +  "\n The correct forms are : ";
//		msg = msg + "\n xxx-xxx-xxxx";
//		msg = msg + "\n (xxx)xxx-xxxx";
//		msg = msg + "\n xxxxxxxxxx (10 digited Mobile no)";
//		msg = msg + "\n xxxxxx (6 digits no)";
//		msg = msg + "\n xxxxxxx (7 digits no)";
//		msg = msg + "\n xxxxxxxx (8 digits no)";

		msg = msg + "\n +xx-xxxxxxxxxx";
		msg = msg + "\n +xxxxxxxxxx";
		msg = msg + "\n +xx-xxxxx-xxxxx ";
		msg = msg + "\n xxxxxxxxxx (10 digits no)";
		msg = msg + "\n xxxxxxxxxxx (11 digits no)";
		

		alert(msg);
		focus_field.focus();
		return false;
	}
	else{
	return true;}
}

function confirmdelete(theform,startElement,endElement,message)
{
	var flag=0;
	for(i=startElement;i<theform.length-endElement;i=i+1)		  //confirmation message for delete
	{
		if(theform.elements[i].checked==true)
		{
			 flag=1;
			 if (confirm("Are you sure you want to "+message+" this record(s)?"))
				return true;
			else
				return false;
		}	
	}	
	if(flag==0)	
	{
		alert("Please select the checkbox before pressing the "+message+" button.");
		return false;
	}
}

function isValidDate(month, day, year, isLaterDate)
{
  // depending on the year, calculate the number of days in the month
  var daysInMonth;
  if (year % 4 == 0)      // LEAP YEAR 
    daysInMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  else
    daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

  // first, check the incoming month and year are valid. 
  if (!month || !day || !year)          return false;
  if (1 > month || month > 12)          return false;
  if (year < 0)                         return false;
  if (1 > day || day > daysInMonth[month-1]) return false;

  // if required, verify the incoming date is not LATER than the current date.
  if (isLaterDate)
  {
    // get current date
    var today = new Date();
    var currMonth = today.getMonth() + 1; // since returns 0-11
    var currDay   = today.getDate();
    var currYear  = today.getFullYear();

    // zero-pad today's month & day
    if (String(currMonth).length == 1)  currMonth = "0" + currMonth;
    if (String(currDay).length == 1)  currDay   = "0" + currDay;    
    var currDate = String(currYear) + String(currMonth) + String(currDay);

    // zero-pad incoming month & day
    if (String(month).length == 1)  month = "0" + month;
    if (String(day).length == 1)  day   = "0" + day;
    incomingDate = String(year) + String(month) + String(day);

//    alert(Number(incomingDate));
//    alert(Number(currDate));	
    
    if (Number(currDate) > Number(incomingDate))       // Changed to check that entered date is earlier than today
    {
    	//alert(Number(currDate));
	    //alert(Number(incomingDate));	
    	return false;
    }
      
  }
  
  return true;
}

function dateDifference(stmonth, stday, styear, endmonth, endday, endyear)
{
    // zero-pad today's month & day
    if (String(stmonth).length == 1)  stmonth = "0" + stmonth;
    if (String(stday).length == 1)  stday   = "0" + stday;    
    var stDate = String(styear) + String(stmonth) + String(stday);

    // zero-pad incoming month & day
    if (String(endmonth).length == 1)  endmonth = "0" + endmonth;
    if (String(endday).length == 1)  endday   = "0" + endday;
    endDate = String(endyear) + String(endmonth) + String(endday);

    if (Number(endDate) < Number(stDate))       // Changed to check that entered date is earlier than today
      return false;
	else
    	return true;
}

function getDateDifference(month, day, year)
{
    var today = new Date();
    var currMonth = today.getMonth() + 1; // since returns 0-11
    var currDay   = today.getDate();
    var currYear  = today.getFullYear();

    // zero-pad today's month & day
    if (String(currMonth).length == 1)  currMonth = "0" + currMonth;
    if (String(currDay).length == 1)  currDay   = "0" + currDay;    
    var currDate = String(currYear) + String(currMonth) + String(currDay);

    // zero-pad incoming month & day
    if (String(month).length == 1)  month = "0" + month;
    if (String(day).length == 1)  day   = "0" + day;
    incomingDate = String(year) + String(month) + String(day);
    
    //alert(Number(currDate));
    //alert(Number(incomingDate));	
    
    var diff = Number(incomingDate) - Number(currDate);
   // alert(diff);
    return diff;

//    if (Number(endDate) < Number(stDate))       // Changed to check that entered date is earlier than today
//      return false;
//	else
//    	return true;
}

function validateRadio(fieldobj) 
{
	var len = fieldobj.length;
	var flag = false;
	for (var i=0; i < len; i++)
    {
	   //alert(fieldobj[i].checked);
	   if (fieldobj[i].checked)
       {
      		flag = true;
      		break;
       }
    }
	
   // alert(flag);
    if(flag == true)
    	return true;
    else if (flag == false)
    	return false;   
}

function chkAnyOneSelected(formname , checkboxname)
{
	// We are using prototype in this function. So, please include prototype in header before using this function.
	
	var selected_check = Form.getInputs(formname, "checkbox", checkboxname).findAll(function(item) { return item.checked;}).pluck("value");    
			
	if(selected_check == '')
	{
		return false;
	}
}

function jsCalendarDateCheck(object , focus_field)
{
	var x = object.value;
	var regexp=/^(\d{4}-\d{2}-\d{2})$/;
	
	if(!(regexp.test(x)))
	{
		var msg = "";
		msg = "Please enter the valid date";
		alert(msg);
		focus_field.focus();
		return false;
	}
	return true;
}