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

//

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;
}
//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 mail
var emailfilter=/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/ ;

function checkmail(t_obj,t_msg){
var returnval=emailfilter.test(t_obj.value)
	if (returnval==false)
	{
		alert(t_msg);
		t_obj.focus();
	}
return returnval
}


//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;
}
function isEmail1(t_obj,t_msg) 
{
	xx=t_obj.value;
	if (xx.search("/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/") != -1)
		return 1;
	else
	{
		
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
}

//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) 
{
	if (t_obj.value.indexOf("http://",0) == -1) 
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
	else
		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)
{
	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]);
	alert(dt1)
	if (dt1>dt2)
	{
		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_arr=new Array();
photo_arr[0]="jpg";
photo_arr[1]="jpeg";
photo_arr[2]="gif";
photo_arr[2]="swf";
/*photo_arr[3]="bmp";
photo_arr[4]="tiff";
photo_arr[5]="png";
*/
var photo_str="jpg jpeg gif";
var photoflash_str="jpg jpeg gif swf";

function isPhotoFlash(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 (photoflash_str.indexOf(ext.toLowerCase())==-1)
	{
		alert(t_msg);
		return 0;
	}
	return 1;
}

function isPhoto(t_obj,t_msg)
{
	var t_photo=trimString(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);
		//t_obj1.focus();	
		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 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;
	}
	
	if(checkDay>maxDay)
		return 0;
	else
		return 1;
}

function checkdate(checkYear, checkMonth, checkDay,today_date,t_msg) 
{
	var t_dt=today_date.split("/");
	var dt_today=new Date(t_dt[0],t_dt[1],t_dt[2]);
	var dt_check_in=new Date(checkYear, checkMonth, checkDay);
		if (dt_check_in<dt_today)
		  {
				alert(t_msg);
				return 0;
		  }else
		  {
			  return 1;
			  }
		
}

function check_zip(t_obj,t_msg)
{
	var objRegExp  = /^\d{3}\-\d{4}$/;
	xx1=t_obj.value;
	if (objRegExp.test(xx1)==false)
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
	else
		return 1;
}

function check_phone(t_obj,t_msg)
{
	var objRegExp  = /^\d{3}\-\d{4}-\d{4}$/;
	xx2=t_obj.value;
	if (objRegExp.test(xx2)==false)
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
	else
		return 1;
}
//misllenious functions
function isAlien(a) {
   return isObject(a) && typeof a.constructor != 'function';
}
function isArray(a) {
    return isObject(a) && a.constructor == Array;
}
function isBoolean(a) {
    return typeof a == 'boolean';
}
function isEmpty(o) {
    var i, v;
    if (isObject(o)) {
        for (i in o) {
            v = o[i];
            if (isUndefined(v) && isFunction(v)) {
                return false;
            }
        }
    }
    return true;
}
function isFunction(a) {
    return typeof a == 'function';
}
function isNull(a) {
    return a === null;
}
/*
function isNumber(a) {
    return typeof a == 'number' && isFinite(a);
}
*/
function isObject(a) {
    return (a && typeof a == 'object') || isFunction(a);
}
function isString(a) {
    return typeof a == 'string';
}
function isUndefined(a) {
    return typeof a == 'undefined';
} 
