// 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)

{

	

	var 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("."))<3)

	{

		valid="n";

	}

	if(xx.indexOf("@")<3)

	{

		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")

	{

		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 false;

	}

	return true;

}



//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.checked==false && t_obj2.checked==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);
		t_date1.focus();
		return 0;

	}

	return 1;

}

birthday = new Date(1978,2,11)



// 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);
		t_obj.focus();
		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;

		}

	}
	
var win = null;
function NewWindow(mypage,myname,w,h,scroll)
{
	LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
	TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
	settings ='height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',resizable=no'
	win = window.open(mypage,myname,settings);
}

function checkURL(t_obj,t_msg) 
{
	if (trimString(t_obj.value)=="")
		return 1;
	
	tvalue=t_obj.value;
			
	var urlregex = new RegExp("^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([0-9A-Za-z]+\.)");
	if(urlregex.test(tvalue))
	{
		return 1;
	}
	alert(t_msg);
	return 0;
}
function dateComparision2(from_date,to_date)
{
	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 - (1000 * 60 * 60 * 24 * 1)))
	{
		return 0;
	}
	return 1;
}