﻿/* Function for trimming a String */
function trim ( str1 )
{
    if ( str1 == null )
        return "";
	
    var str = new String ( str1 )
    if ( str.length == 0 )
        return ""
    var i = 0;
    for ( ;i < str.length; i++ )
    {
        var ch = str.charAt (i);
        if ( !(ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t' ) )
	        break;
    }
    str = str.substring ( i );
    i = str.length - 1;
    for ( ;i >= 0; i-- )
    {
        var ch = str.charAt (i);
        if ( !(ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t' ) )
	        break;
    }
    str = str.substring ( 0, ++i );
    return str
}

/* FUNCTION TO CHECK FOR COMMON WORDS */
function checkWord(cw)
{
    var words
    var str = "";
	
    var keyword = new String ( document.forms[0].keysearch.value ).toLowerCase ();
    var flag = false;
	
    //Removal of special characters
    var spKeys = new Array ( 31 );
    var spStr = new String ( "~,`,!,@,#,$,%,^,&,*,(,),-,_,+,=,<,>,.,?,/,[,],{,},|,\\,:,;" );
    spKeys = spStr.split ( "," );
    spKeys [30] = ",";
    var xflag = true;
    for ( var p = 0; p < keyword.length; p++ )
    {
	    var spCh = keyword.charAt ( p );
	    xflag = true;
	    for ( var z = 0; z < spKeys.length; z++ )
	    {
		    if ( spCh == spKeys [z] )
		    {
			    xflag = false;
			    break;
		    }
	    }
	    if ( xflag )
		    str = str + spCh;
	    else
		    str = str + " ";
    }
    keyword = trim ( str );
    //alert ( str );
    str = "";
	
    //Removal of spaces
    for ( var i = 0; i < keyword.length; i++ )
    {
	    var ch = keyword.charAt ( i );
	    if ( ch != " "  )
	    {
		    str = str + ch;
		    flag = true;
	    }else if ( ch == " " && flag )
	    {
		    str = str + " ";
		    flag = false;
	    }
    }
    keyword = str;
    str = "";
	
    cw = cw.toLowerCase ();
    words = cw.split("#");
    var keywords = keyword.split ( " " );
    var x = 0;
	
    for ( var j = 0; j < keywords.length; j++ )
    {
	    for ( var k = 0; k < words.length; k++ )
	    {
		    if ( trim ( keywords[j] ) == words[k] )
		    {
			    if ( str.indexOf ( "-->" + words [k] + "\n" ) == -1 ) 
			    {
				    str = str + "   -->" + words [k] + "\n";
			    }
			    x++;
		    }
	    }
    }
    //alert ( "x --> keywods.length :" + x + " --> " + keywords.length );
    //alert ( "str.length -->" + str.length );
	
    if ( x == keywords.length )  // All the words are comman words
    {
	    alert ( "The following word(s) are common\n" + str + "and are not included in your search." );
	    return false;
    }else if ( str.length != 0 )
    {
	    alert ( "the following word(s) are common\n" + str + "and are not included in your search." );
	    return true;
    }else
    {
	    return true;
    }
}

/* Function to validate individual database search */
function allValidate(comword)
{
    //var form = window.document.fdrsearch;
    var form = window.document.forms[0];
    
    if (trim(form.keysearch.value) == "" && trim(form.keylocation.value) == "")
    {
        alert("Please Enter Keyword or Location");
        return false;
    }
	
    if ( trim ( form.keysearch.value ) != "" )
    {
        return checkWord(comword);
    }
}

/* Function to validate news search field */
function newsValidate(comword)
{
    var form = window.document.forms[0];
    //var state = form.state.value;
	
    if (trim(form.keysearch.value) == "")
    {
	    //alert("Please Enter Keyword");
	    //return false;
    }
	
    if ( trim ( form.keysearch.value ) != "" )
    {
	    return checkWord(comword);
    }
}

/* Function to validate the Email */
function checkEmail ( email, str )
{
    var cut, len, form
    form=window.document.regform;
    len = email.length
    var tmp1 = email.substring ( email.lastIndexOf ( "." )+1 );
    var tmp2 = email.substring ( 0, email.indexOf ( "@" ) );
    var tmp3 = email.substring (email.indexOf ( "@" )+1 )
    var x;
    var tmp4 = email.substring ( ( x = email.indexOf ( '@' ) ) + 1, email.indexOf ( '.', x ) )
    var flag = false;
		
    if ((cut = email.indexOf ('@')) == -1 || email.indexOf ('.') == -1 || tmp3.indexOf('.') == -1 || tmp4.length == 0)
    {
        return str + " is not Valid\n";	
    }					
    else if (email.substring (++cut, len).indexOf ('@') != -1)
    {
        return str + " shouldn't contain more than one @ Symbols \n";
    }
    // Checking for minimum two characters after "." and before "@"
    else if ( tmp1.length < 2  || tmp2.length < 2 )
    {
        return str + " is not Valid \n";
    }
    tmp2 = tmp2.toLowerCase();
    for (var i=0; i<tmp2.length; i++)
    {
        if ( (tmp2.charAt(i) >= 'a' && tmp2.charAt(i) <= 'z') || (tmp2.charAt(i) >= '0' && tmp2.charAt(i) <= '9') )
        {
	        flag = true;
	        break;
        }
    }
    if (flag == false)
    {
        return str + " is not Valid \n";
    }
    //form.txtHidEmail.value=tmp3
    return "";
}

function checkEmail1( email ) 
{
    var str  = trim(email);
    var sInd = str.indexOf(" ");
    var ind  = str.indexOf("@");
    var lind = str.lastIndexOf("@");		
    var dot  = str.lastIndexOf(".");
    var len  = str.length - 2;	
    var quo  = str.indexOf("'");

    if ( sInd > 0   || 
	     ind < 1    || ind != lind || 
	     dot < ind  || dot >= len ||
	     str.charAt(ind-1) == '.' ||
	     str.charAt(ind+1)	== '.' ||
	     quo > -1
	    ) 
	{
	    return false;	
	}
    return true;
}

function isEmailValid ( str1 )
{
	var cut, len
	len = str1.length
	var tmp1 = str1.substring ( str1.lastIndexOf ( "." )+1 );
	var tmp2 = str1.substring ( 0, str1.indexOf ( "@" ) );
	var tmp3 = str1.substring (str1.indexOf ( "@" )+1 )
	var x;
	var tmp4 = str1.substring ( ( x = str1.indexOf ( '@' ) ) + 1, str1.indexOf ( '.', x ) )
	var flag = false;
		
	if ( trim(str1).length == 0)
	{
		return false;
	}
		
	if ((cut = str1.indexOf ('@')) == -1 || str1.indexOf ('.') == -1 || tmp3.indexOf('.') == -1 || tmp4.length == 0)
	{
		return false;
	}					
	else if (str1.substring (++cut, len).indexOf ('@') != -1)
	{
		return false;
	}
	// Checking for minimum two characters after "." and before "@"
	else if ( tmp1.length < 2  || tmp2.length < 2 )
	{
		return false;
	}
	tmp2 = tmp2.toLowerCase();
	for (var i=0; i<tmp2.length; i++)
	{
		if ( (tmp2.charAt(i) >= 'a' && tmp2.charAt(i) <= 'z') || (tmp2.charAt(i) >= '0' && tmp2.charAt(i) <= '9') )
		{
			flag = true;
			break;
		}
	}
	if (flag == false)
	{
		return false;
	}
	return true;
}

function isDate ( day, month, year )
{
	if( ! ( isPosInteger ( day ) && isPosInteger ( month ) && isPosInteger ( year ) ) )
	{
		return false
	}
	
	if ( new String ( year ).length <= 3 )
		return false;
	
	day = parseInt ( day, 10 )
	year = parseInt ( year, 10 )
	
	if ( ( day <= 0 && day > 31 ) || year <= 1800 )
		return false
		

	switch ( parseInt ( month, 10 ) )
	{
		case 1	:
							if ( !( (day > 0) && (day <= 31) ) )
								return false;
							break;
		case 2	:   
							if ( ( year % 4 == 0 ) && ( year % 100 != 0 ) || ( year % 400 == 0 ) )
							{
								if ( !( day > 0 && day <= 29 ) )
									return false
							}
							else
								if ( !( day > 0 && day <= 28 ) )
									return false;
							break;
		case 3	:	    
							if ( !( day > 0 && day <= 31 ) )
								return false
							break;
		case 4	:
							if ( !( day > 0 && day <= 30 ) )
								return false
							break;
		case 5	:    
							if ( !( day > 0 && day <= 31 ) )
								return false
							break;
		case 6	:    
							if ( !( day > 0 && day <= 30 ) )
								return false
							break;
		case 7	: 
							if ( !( day > 0 && day <= 31 ) )
								return false
							break;
		case 8	:	
							if ( !( day > 0 && day <= 31 ) )
								return false
							break;
		case 9	:
							if ( !( day > 0 && day <= 30 ) )
								return false
							break;	
		case 10	: 
							if ( !( day > 0 && day <= 31 ) )
								return false
							break;	
		case 11	: 
							if ( !( day > 0 && day <= 30 ) )
								return false
							break;	
		case 12	:
							if ( !( day > 0 && day <= 31 ) )
								return false
							break;
		default	:
							return false;
	}
	
	return true;
}

function isPosInteger ( num1 )
{
	var num = new String ( num1 );
	if ( num == null || isNaN ( num ) ) return false;
	if ( trim ( num ).length == 0 )
		return false
		
	for ( var i = 0; i < num.length; i++ )
	{
		var ch = num.charAt (i);
		if ( ch < "0" || ch > "9" )
			return false;
	}
	return true
}

function isInteger ( num )
{
	if ( trim ( num ).length == 0 )
		return false
		
	for ( var i = 0; i < num.length; i++ )
	{
		var ch = num.charAt (i);
		if ( i == 0 && ch == "-" )
		{
			continue;
		}
		if ( ch < "0" || ch > "9" ) 
		{
			return false
		}
	}
	return true
}

function isNumber ( num )
{
	if ( trim ( num ).length == 0 )
		return false
		
	for ( var i = 0; i < num.length; i++ )
	{
		oneDecimal = false;
		
		for ( var i = 0; i < num.length; i++ )
		{
			var ch = num.charAt (i);
			if ( i == 0 && ch == "-" )
			{
				continue;
			}
			if ( ch == "." && !oneDecimal )
			{
				oneDecimal = true;
				continue;
			}
			if ( ch < "0" || ch > "9" )
			{
				return false
			}
		}
		return true
	}
}


// To remove more than one space from a sentence...
function normalize ( key )
{
	var str = new String ();
	var flag = false;
	for ( var i = 0; i < key.length; i++ )
	{
		var ch = key.charAt ( i );
		if ( ch != " "  )
		{
			str = str + ch;		
			flag = true;
		}else if ( ch == " " && flag )
		{
			str = str + " ";
			flag = false;
		}
	}
	return str;
}


