// JavaScript Document
 /********************************************************
 Version		: ShimBi News Feeds (Ver. 1.0.0)
 Author  		: Kailash Kumawat
 Start Date 	: 03 - 07 -2006
 Last Modified 	: 03 - 07- 2006
 File Name 		: form_validation.js
 Purpose 		: form validation functions
 
 ********************************************************/
 
//check for blank
function isBlank(t_obj,t_msg)
{
	if (trimString(t_obj.value)=="")
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
	else
		return 1;
}


//check alphabets only
function isAlphabet(t_obj,t_msg)
{
	xx=t_obj.value;
	validchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
	for (i=0; i<xx.length; i++) 
	{
		badchar = xx.charAt(i);
		if (validchars.indexOf(badchar,0) == -1)
		{
			alert(t_msg);
			t_obj.focus();	
			return 0;
		}
	}
	return 1;
}
//check numbers only
function isNumber(t_obj,t_msg)
{
	xx=t_obj.value;
	validchars = "0123456789";
	for (i=0; i<xx.length; i++) 
	{
		badchar = xx.charAt(i);
		if (validchars.indexOf(badchar,0) == -1)
		{
			alert(t_msg);
			t_obj.focus();	
			return 0;
		}
	}
	return true;
}
//check money only
function isMoney(t_obj,t_msg)
{
	xx=t_obj.value;
	validchars = "0123456789.";
	valid="y";
	for (i=0; i<xx.length; i++) 
	{
		badchar = xx.charAt(i);
		if (validchars.indexOf(badchar,0) == -1)
		{
			valid="n";
			break;
		}
	}
	
	if(xx.indexOf(".",0)==0)
	{
		valid="n";
	}
	if(xx.indexOf(".",0)==xx.length-1)
	{
		valid="n";
	}
	
	dot_loc=xx.indexOf(".");
	if(xx.indexOf(".",dot_loc+1)>0)
	{
		valid="n";
	}
	if(valid=="n")
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
	return true;
}
//check numbers in password
function isNumberPassword(t_obj,t_msg)
{
	xx=t_obj.value;
	validchars = "0123456789";
	flag="n";
	for (i=0; i<xx.length; i++) 
	{
		badchar = xx.charAt(i);
		if (validchars.indexOf(badchar,0) != -1)
		{
			flag="y";
		}
	}
	if(flag=="n")
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
	return true;
}
//check numbers in password
function isStringPassword(t_obj,t_msg)
{
	xx=t_obj.value;
	validchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	flag="n";
	for (i=0; i<xx.length; i++) 
	{
		badchar = xx.charAt(i);
		if (validchars.indexOf(badchar,0) != -1)
		{
			flag="y";
		}
	}
	if(flag=="n")
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
	return true;
}


function isNumberPhone(t_obj,t_msg)
{
	xx=t_obj.value;
	validchars = "0123456789-+ ";
	for (i=0; i<xx.length; i++) 
	{
		badchar = xx.charAt(i);
		if (validchars.indexOf(badchar,0) == -1)
		{
			alert(t_msg);
			t_obj.focus();	
			return 0;
		}
	}
	return true;
}

//check string length
function checkLength(t_obj,t_length,t_msg)
{
	if(t_obj.value.length>t_length)
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
	else
		return 1;
}
function checkLength1(t_obj,t_length,t_msg)
{
	if(t_obj.value.length<t_length)
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
	else
		return 1;
}
//check string character range
function checkRange(t_obj,min_length,max_length,t_msg)
{
	if(parseFloat(t_obj.value.length)>=parseFloat(min_length) && parseFloat(t_obj.value.length)<=parseFloat(max_length))
		return 1;
	else
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
}
//check number range
function checkNumRange(t_obj,min_length,max_length,t_msg)
{
	if(parseFloat(t_obj.value)>=parseFloat(min_length) && parseFloat(t_obj.value)<=parseFloat(max_length))
		return 1;
	else
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
}

//check email
function isEmail(t_obj,t_msg,type)
{
	var xx;
	if (type==1)
		xx=t_obj;
	else
		xx=t_obj.value;
	
	validchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.@_-";
	var valid="y";
	for (i=0; i<xx.length; i++) 
	{
		badchar = xx.charAt(i);
		if (validchars.indexOf(badchar,0) == -1)
		{
			valid="n";	
			break;
		}
	}
	if ((xx.indexOf("@") == -1) || (xx.indexOf(".") == -1))
	{
		valid="n";
	}
	at_loc=xx.indexOf("@");
	dot_loc=xx.indexOf(".");
	if(xx.indexOf("@",at_loc+1)>0)
	{
		valid="n";
	}
	if( xx.substr(at_loc+1,1) == "." || xx.substr(at_loc-1,1) == "." )
	{
		valid="n";
	}
	if (parseInt(xx.indexOf(".",parseInt(xx.indexOf("@"))))==-1)
	{
		valid="n";
	}
	if(countChar(xx,'@',0,xx.length-1)!=1)
	{
		valid="n";
	}
	if( (xx.length - xx.lastIndexOf("."))<1)
	{
		valid="n";
	}
	if(xx.indexOf("@")<1)
	{
		valid="n";
	}
	if(xx.indexOf("-")==0 ||xx.indexOf("_")==0)
	{
		valid="n";
	}
	if(xx.lastIndexOf("-")== xx.length-1 ||xx.lastIndexOf("_")== xx.length-1)
	{
		valid="n";
	}
	if(valid=="n")
	{
		if (type!=1)
		{
			alert(t_msg);
			t_obj.focus();	
		}
		return 0;
	}
	return 1;
}
function countChar(t_str,t_char,start_index,end_index)
{
	var count=0;
	for(i=parseInt(start_index);i<parseInt(end_index);i++)
	{
		if(t_str.indexOf(t_char,i)!=-1)
		{
			count++;
			i=t_str.indexOf(t_char,i) ;
		}
	}
	return count;
}
//check alphanumeric
function isAlphaNumeric(t_obj,t_extra,t_msg)
{
	xx=t_obj.value;
	validchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"+t_extra;
	for (i=0; i<xx.length; i++) 
	{
		badchar = xx.charAt(i);
		if (validchars.indexOf(badchar,0) == -1)
		{
			alert(t_msg);
			t_obj.focus();	
			return 0;
		}
	}
	return 1;
}
//check url
function isURL(t_obj,t_msg) 
{
	xx=t_obj.value;
	if (xx.indexOf("http://",0) == -1) 
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
	validchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_./";
	for (i=0; i<xx.length; i++) 
	{
		badchar = xx.charAt(i);
		if (validchars.indexOf(badchar,0) == -1)
		{
			alert(t_msg);
			t_obj.focus();	
			return 0;
		}
	}
	return 1;
}

//string comparision
//type 1 case sensitive
//type 2 case in-sensitive
function stringComparision(t_obj1,t_obj2,t_type,t_msg)
{
	if(t_type==1)
	{
		var val=(t_obj1.value==t_obj2.value);
		if(val==false)
		{
			alert(t_msg);
			t_obj2.focus();
			return 0;
		}
	}
	if(t_type==2)
	{
		var val=(t_obj1.value.toLowerCase()==t_obj2.value.toLowerCase());
		if(val==false)
		{
			alert(t_msg);
			t_obj2.focus();
			return 0;
		}
	}
	return 1;
}

//confirm delete
function confirmDelete()
{

	if(!confirm("Do you really want to delete it?"))
	{
		return false;
	}

}
//confirm Logout
function confirmLogout()
{

	if(!confirm("Do you want to logout?"))
	{
		return false;
	}

}
//remove spaces from start and end
function trimString (str) 
{
  str = this != window? this : str;
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

//date comparision
function dateComparision(from_date,to_date,t_msg)
{
	var t_dt=from_date.split("-");
	var dt1=new Date(t_dt[2],t_dt[1],t_dt[0]);
	t_dt=to_date.split("-");
	var dt2=new Date(t_dt[2],t_dt[1],t_dt[0]);
	if (dt1<dt2)
	{
		alert(t_msg);
		return 0;
	}
	return 1;
}

//check time
function isTime(tt)
{
	if(tt.value!="")
	{
		if(tt.value.indexOf(":")==-1)
		{
			alert("Please fill time in correct format(hh:mm)");
			tt.focus();
			return;
		}
		tt1=tt.value.split(":");
		if (parseInt(tt1[0])>=24)
		{
			alert("Hour cannot be greater then 23");
			tt.focus();
			return;
		}
		if (parseInt(tt1[1])>=60)
		{
			alert("Minute cannot be greater then 59");
			tt.focus();
			return;
		}
	}	
}

var photo_str="jpg jpeg gif";

function isPhoto(t_obj,t_msg)
{
	var t_photo=t_obj.value;
	if(t_photo=="")
	{
		return 1;
	}
	if(t_photo.lastIndexOf(".")==-1)
	{
		alert(t_msg);
		return 0;
	}
	var ext=t_photo.substr(t_photo.lastIndexOf(".")+1);
	if (photo_str.indexOf(ext.toLowerCase())==-1)
	{
		alert(t_msg);
		return 0;
	}
	return 1;
}


//check webpage name
function isWebPagename(t_obj,t_msg)
{
	xx=t_obj.value;
	validchars = "abcdefghijklmnopqrstuvwxyz0123456789-_";
	for (i=0; i<xx.length; i++) 
	{
		badchar = xx.charAt(i);
		if (validchars.indexOf(badchar,0) == -1)
		{
			alert(t_msg);
			t_obj.focus();	
			return 0;
		}
	}
	return 1;
}

//check user name
function isUsername(t_obj,t_msg)
{
	xx=t_obj.value;
	validchars = "abcdefghijklmnopqrstuvwxyz0123456789";
	for (i=0; i<xx.length; i++) 
	{
		badchar = xx.charAt(i);
		if (validchars.indexOf(badchar,0) == -1)
		{
			alert(t_msg);
			t_obj.focus();	
			return 0;
		}
	}
	return 1;
}

//check alphabet + extra characters
function isAlphabetExtra(t_obj,t_extra,t_msg)
{
	xx=t_obj.value;
	validchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"+t_extra;
	for (i=0; i<xx.length; i++) 
	{
		badchar = xx.charAt(i);
		if (validchars.indexOf(badchar,0) == -1)
		{
			alert(t_msg);
			t_obj.focus();	
			return 0;
		}
	}
	return 1;
}


//check for home
function isHome(t_obj,t_msg)
{
	str=trimString(t_obj.value);
	
	if (str.toLowerCase() == "home" || str.toLowerCase() == "news" || str.toLowerCase() == "feedback")
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
	else
		return 1;
}

//check for index page and temlate page
function ispageexists(t_obj,t_msg)
{
	str=trimString(t_obj.value);
	
	if (str.toLowerCase() == "index" || str.toLowerCase() == "template" || str.toLowerCase() == "customerror" || str.toLowerCase() == "sitemap" )
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
	else
		return 1;
}

//check radio buttons
function isRadioSel(t_obj1,t_obj2,t_msg)
{
	if(t_obj1.status==false && t_obj2.status==false)
	{
		alert(t_msg);
		return 0;
	}
	return 1;
}

/*
// Date (yyyy/mm/dd)
function isDate(object_value,t_msg) 
{
	isplit = object_value.indexOf('/');
	
	sYear = object_value.substring(0, isplit);
	
	isplit = object_value.indexOf('/', isplit + 1);
	
	sMonth = object_value.substring((sYear.length + 1), isplit);
	
	sDay = object_value.substring(isplit + 1);

	if (EW_checkday(sYear, sMonth, sDay)==0)
	{
		alert(t_msg);
		return 0;
	}
	else
		return 1;
}
*/

function compareDate(t_date1,t_date2,t_msg)
{
	date1_arr=t_date1.value.split("/");
	date2_arr=t_date2.value.split("/");
	date1=new Date(date1_arr[2],date1_arr[1],date1_arr[0]);
	date2=new Date(date2_arr[2],date2_arr[1],date2_arr[0]);
	if(date2<date1)
	{
		alert(t_msg);
		return 0;
	}
	return 1;
}
birthday = new Date(1978,2,11)

// Date (dd/mm/yyyy)
function isDate_value(t_obj,t_msg) 
{
	object_value=t_obj;
	isplit = object_value.split('/');
	if (isplit.length!=3)
	{
		alert(t_msg);
		return 0;
	}
	
	if(EW_checkeurodate(object_value))
	{
		return 1;
	}
	else
	{
		alert(t_msg);
		return 0;
	}
}

// Date (dd/mm/yyyy)
function isDate(t_obj,t_msg) 
{
	object_value=t_obj.value
	if(EW_checkeurodate(object_value))
	{
		return 1;
	}
	else
	{
		alert(t_msg);
		return 0;
	}
}

// Date (dd/mm/yyyy)
function EW_checkeurodate(object_value) {
	if (object_value.length == 0)
	  return true;
	
	isplit = object_value.indexOf('/');
	
	if (isplit == -1)	{
		isplit = object_value.indexOf('.');
	}
	
	if (isplit == -1 || isplit == object_value.length)
		return false;
	
	sDay = object_value.substring(0, isplit);
	
	monthSplit = isplit + 1;
	
	isplit = object_value.indexOf('/', monthSplit);
	
	if (isplit == -1)	{
		isplit = object_value.indexOf('.', monthSplit);
	}
	
	if (isplit == -1 ||  (isplit + 1 )  == object_value.length)
		return false;
	
	sMonth = object_value.substring((sDay.length + 1), isplit);
	
	isep = object_value.indexOf(' ', isplit + 1); 
	if (isep == -1) {
		sYear = object_value.substring(isplit + 1);
	} else {
		sYear = object_value.substring(isplit + 1, isep);
		sTime = object_value.substring(isep + 1);
		if (!EW_checktime(sTime))
			return false; 
	}
	
	if (!EW_checkinteger(sMonth)) 
		return false;
	else if (!EW_checkrange(sMonth, 1, 12)) 
		return false;
	else if (!EW_checkinteger(sYear)) 
		return false;
	else if (!EW_checkrange(sYear, 0, null)) 
		return false;
	else if (!EW_checkinteger(sDay)) 
		return false;
	else if (!EW_checkday(sYear, sMonth, sDay)) 
		return false;
	else
		return true;
}

function EW_checkday(checkYear, checkMonth, checkDay) {
	maxDay = 31;
	
	if (checkMonth == 4 || checkMonth == 6 ||	checkMonth == 9 || checkMonth == 11) {
		maxDay = 30;
	} else if (checkMonth == 2)	{
		if (checkYear % 4 > 0)
			maxDay =28;
		else if (checkYear % 100 == 0 && checkYear % 400 > 0)
			maxDay = 28;
		else
			maxDay = 29;
	}
	
	return EW_checkrange(checkDay, 1, maxDay); 
}

function EW_checkinteger(object_value) {
	if (object_value.length == 0)
		return true;
	
	var decimal_format = ".";
	var check_char;
	
	check_char = object_value.indexOf(decimal_format);
	if (check_char < 1)
		return EW_checknumber(object_value);
	else
		return false;
}

function EW_numberrange(object_value, min_value, max_value) {
	if (min_value != null) {
		if (object_value < min_value)
			return false;
	}
	
	if (max_value != null) {
		if (object_value > max_value)
			return false;
	}
	
	return true;
}

function EW_checknumber(object_value) {
	if (object_value.length == 0)
		return true;
	
	var start_format = " .+-0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;
	
	check_char = start_format.indexOf(object_value.charAt(0));
	if (check_char == 1)
		decimal = true;
	else if (check_char < 1)
		return false;
	 
	for (var i = 1; i < object_value.length; i++)	{
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0) {
			return false;
		} else if (check_char == 1)	{
			if (decimal)
				return false;
			else
				decimal = true;
		} else if (check_char == 0) {
			if (decimal || digits)	
			trailing_blank = true;
		}	else if (trailing_blank) { 
			return false;
		} else {
			digits = true;
		}
	}	
	
	return true;
}
function EW_checkrange(object_value, min_value, max_value) {
	if (object_value.length == 0)
		return true;
	
	if (!EW_checknumber(object_value))
		return false;
	else
		return (EW_numberrange((eval(object_value)), min_value, max_value));	
	
	return true;
}
function EW_checktime(object_value) {
	if (object_value.length == 0)
		return true;
	
	isplit = object_value.indexOf(':');
	
	if (isplit == -1 || isplit == object_value.length)
		return false;
	
	sHour = object_value.substring(0, isplit);
	iminute = object_value.indexOf(':', isplit + 1);
	
	if (iminute == -1 || iminute == object_value.length)
		sMin = object_value.substring((sHour.length + 1));
	else
		sMin = object_value.substring((sHour.length + 1), iminute);
	
	if (!EW_checkinteger(sHour))
		return false;
	else if (!EW_checkrange(sHour, 0, 23)) 
		return false;
	
	if (!EW_checkinteger(sMin))
		return false;
	else if (!EW_checkrange(sMin, 0, 59))
		return false;
	
	if (iminute != -1) {
		sSec = object_value.substring(iminute + 1);		
		if (!EW_checkinteger(sSec))
			return false;
		else if (!EW_checkrange(sSec, 0, 59))
			return false;	
	}
	
	return true;
}
function IsMatch(str)
	{
		mystring = str;
		if (mystring.match(/^\d+$|^\d+\.\d{1,4}$/ ) ) 
		{
			return 1;
		}
		else
		{
			return 0;
		}
	}
	
function replaceAll( str, searchTerm, replaceWith, ignoreCase )
	{
	var regex = "/"+searchTerm+"/g";
	if( ignoreCase ) regex += "i";
	
	return str.replace( eval(regex), replaceWith );
	}
	
//leading 0 befor 0-9 numbers
//num=number and count=no of 0
function zeroPad(num,count)
{
var numZeropad = num + '';
while(numZeropad.length < count) {
numZeropad = "0" + numZeropad;
}
return numZeropad;
}

	
