// 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 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;
}
//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;
}
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;
	}
	return true;
}
//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[3]="bmp";
photo_arr[4]="tiff";
photo_arr[5]="png";
*/
//var photo_str="jpg jpeg gif";
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);
		//t_obj1.focus();	
		return 0;
	}
	return 1;
}


// Date (yyyy-mm-dd)
function isDate(object_value,t_msg) 
{
	isplit = object_value.indexOf('-');
	if (isplit == -1)	
	{
		alert(t_msg);
		return 0;
	}
	sYear = object_value.substring(0, isplit);
	
	isplit = object_value.indexOf('-', isplit + 1);
	if (isplit == -1)	
	{
		alert(t_msg);
		return 0;
	}
	
	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;
			  }
		
}

//new code for 'en'  Email

function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail ID")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail ID")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }


if (str.substring(lstr-1,lstr)==dot)
{
	alert("Invalid E-mail ID")
    return false
}		 
		 

 		 return true					
	}


//new code for 'jp'  Email

function jcheck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("dAhX𐳂͂ĉB")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("dAhX𐳂͂ĉB")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("dAhX𐳂͂ĉB")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("dAhX𐳂͂ĉB")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("dAhX𐳂͂ĉB")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("dAhX𐳂͂ĉB")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("dAhX𐳂͂ĉB")
		    return false
		 }
if (str.substring(lstr-1,lstr)==dot)
{
	alert("dAhX𐳂͂ĉB")
    return false
}		 

 		 return true					
	}

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

//check money
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(countChar(xx,'.',0,xx.length-1)>1)
	{
		valid="n";
	}
	if ((xx.indexOf(".") == 0) || (xx.indexOf(".") == (xx.length-1) ))
	{
		valid="n";
	}
	if(valid=="n")
	{
		alert(t_msg);
		t_obj.focus();	
		return 0;
	}
	return 1;
}