
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
    var i;
    for (i = 0; i < s.length; i++){
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
    var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
    // February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
    for (var i = 1; i <= n; i++) {
        this[i] = 31
        if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
        if (i==2) {this[i] = 29}
   }
   return this
}

function isDate(dtStr){
    var daysInMonth = DaysArray(12)
    var pos1=dtStr.indexOf(dtCh)
    var pos2=dtStr.indexOf(dtCh,pos1+1)
    var strYear =dtStr.substring(0,pos1)
    var strMonth=dtStr.substring(pos1+1,pos2)
    var strDay=dtStr.substring(pos2+1)
    strYr=strYear
    if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
    if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
    for (var i = 1; i <= 3; i++) {
        if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
    }
    month=parseInt(strMonth)
    day=parseInt(strDay)
    year=parseInt(strYr)
    if (pos1==-1 || pos2==-1){
        alert("The date format should be : mm/dd/yyyy")
        return false
    }
    if (strMonth.length<1 || month<1 || month>12){
        alert("Please enter a valid month")
        return false
    }
    if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
        alert("Please enter a valid day")
        return false
    }
    if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
        alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
        return false
    }
    if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
        alert("Please enter a valid date")
        return false
    }
return true
}

function ValidateForm(){
    var dt=document.frmSample.txtDate
    if (isDate(dt.value)==false){
        dt.focus()
        return false
    }
    return true
 }


function ValidationDate(dd,mm,yy)
{
month = mm.value;
day = dd.value;
year = yy.value;
// check month range
        if (month < 1 || month > 12)
        {
            alert("Month must be between 1 and 12.");
            mm.focus();
            return false;
        }
        if (day < 1 || day > 31)
        {
            alert("Day must be between 1 and 31.");
            dd.focus();
            return false;
        }
        if ((month==4 || month==6 || month==9 || month==11) && day==31)
        {
            alert("Month "+month+" doesn't have 31 days!")
            mm.focus();
            return false;
        }
        if (month == 2) // check for february 29th
        {
            var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
            if (day>29 || (day==29 && !isleap))
            {
                alert("February " + year + " doesn't have " + day + " days!");
                mm.focus();
                return false;
            }
        }
        return true;
    }
/**
    FUNTION SELECTALL CHECK BOXES
    **/
    function SelectAll(frm) {
     //alert(frm.selectall.checked);
       if(frm.selectall.checked == true) {
         for(i=0;i<frm.elements.length;i++) {
           if((frm.elements[i].type == "checkbox") && (frm.elements[i].name != "selectall")) {
             frm.elements[i].checked = true;
           } // if statement
         } // for loop
       }
       else if(frm.selectall.checked == false) {
          for(i=0;i<frm.elements.length;i++) {
             if((frm.elements[i].type == "checkbox") && (frm.elements[i].name != "selectall")) {
               frm.elements[i].checked = false;
             } // if statement
          } // for loop
       } // if - else - if condition
    } // closing the function SelectAll()

    /**
     FUNCTION VALIDDATES
    **/
    function ValidDates(dd1, mm1, yyyy1, dd2, mm2, yyyy2, msg) {

     xFlag = 0;
      if((DateValidation(dd1,mm1,yyyy1,'null') == 0) || (DateValidation(dd2,mm2,yyyy2,'null') == 0))
        xFlag = 1;
     if(xFlag==1)
     {
       return 0
     }

        if(xFlag == 0) {
            var ddd1 = new Number(dd1.value) ;
            var mmm1 = new Number(mm1.value) - 1;
            var yyy1 = new Number(yyyy1.value);

            var ddd2 = new Number(dd2.value) ;
            var mmm2 = new Number(mm2.value) - 1;
            var yyy2 = new Number(yyyy2.value);

            var dObj1 = new Date(yyy1,mmm1,ddd1,0,0,0,0);
            var dObj2 = new Date(yyy2,mmm2,ddd2,0,0,0,0);

            if(dObj1 > dObj2) {
                alert(msg);
                dd1.focus();
                return 0;
            }
        }
        else
            return 1;

    } // closing the function ValidDates()

        function dval(yyy,mmm,ddd) {

          var dObj = new Date(yyy,mmm,ddd,0,0,0,0);

          var dd = dObj.getDate();
          var mm = dObj.getMonth();
          var yy = dObj.getFullYear();

          if((dd == ddd) && (yy == yyy) && (mm == mmm)) {
            return true;
          }
          else {
            return false;
          }

        } // closing the function dval()

    /**
     FUNCTION DATEVALIDATION(dd,mm,yy,msg)
     **/
    function DateValidation(dd, mm, yy, msg) {


     if(NumValidation(dd,'Date','','num') == 0)
     return 0;

     if(NumValidation(mm,'Month','','num') == 0)
     return 0;

     if(NumValidation(yy,'Year','','num') == 0)
     return 0;

     d = parseInt(dd.value);
     m = parseInt(mm.value);
    y = parseInt(yy.value);

     if(m > 12 || m == 0) {
        alert("Invalid month selected for " + msg);
        mm.focus();
        return 0;
     }
     else {

     var vDays = [ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
     var flag = 0;
     if(m == 2) {
        if(isLeapYear(y)) {
          if( d > 29 || d < 1 ) {
           flag = 0;
          }
          else {
           flag = 1;
          }
        }
        else if( d > vDays[m] || d < 1 ) {
         flag = 0;
        }
        else {
             flag = 1;
        }
     }
     else {
        if( d > vDays[m] || d < 1 ) {
         flag = 0;
        }
        else {
         flag = 1;
        }
     }
     }
     if(flag == 0) {

        alert("Invalid day selected for " + msg);

        dd.focus();
        return 0;
     }
     else {
        return 1;
     }
          } // closing the function DateValidation()

    function isLeapYear(y) {
     if( y % 4 == 0) {
        if( y % 100 == 0 ) {
             if( y % 400 == 0) {
                  return true;
             }
             else {
                  return false;
             }
        }
        else {
            return true;
        }
     }
     else {
        return false;
     }
    } // closing the function isLeapYear()

    /**
     FUNCTION PASSVALIDATION(element1,element2)
     **/

    function PassValidation(Element1,Element2) {

        if(Element1.value != Element2.value) {
            alert("Retype password doesn't match");
            Element2.focus();
            return 0;
        }
        else
            return 1;

    } // closing the function PassValidation()

    /**
     FUNCTION Reorderlevel(Element1,Element2)
     **/
    function Reorderlevel(Element1,Element2)
    {
        if(parseInt(Element1.value) < parseInt(Element2.value))
        {
            alert ("ReOrder Level should be less than Quantity Available");
            Element2.focus();

            return 0;
        }
    }
    /**
     FUNCTION SELECTVALIDATION(element,message)
     **/

   function SelectValidation(Element,Message) {

        if(Element.value == "0") {
            alert("Please select "+Message+" from the list");
            Element.focus();
            return 0;
        }

    }

    /**
     FUNCTION EMAILVALIDATION(element)
     **/

    function EmailValidation(Element)
    {
        Flag  = 1;
        count = 0;

        var alp = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_@.-";

        if(Element.value.length > 0)
        {
            for (var i=0; i<Element.value.length; i++)
            {
                temp = Element.value.substring(i, i+1);

                if (alp.indexOf(temp) == -1)
                {
                    Flag = 0;
                }
            } // closing the for loop
        }
        else
        {
            Flag = 0;
        }

        for(var i=0; i <= Element.value.length; i++)
        {
            if(Element.value.charAt(0)=='@')
            {
                Flag = 0;
                break;
            }

            if(Element.value.charAt(Element.value.length-1)=='@')
            {
                Flag = 0;
                break;
            }
            if(Element.value.charAt(i)=='@')
            {
                count = count + 1;

                if(count>1)
                {
                    Flag = 0;
                    break;
                }

                if((Element.value.charAt(i-1)=='.') || (Element.value.charAt(i+1)=='.'))
                {
                    Flag = 0;
                    break;
                }

            }
            if(Element.value.indexOf('@')==-1)
            {
                Flag = 0;
                break;
            }
            if(Element.value.charAt(0)=='.')
            {
                Flag = 0;
                break;
            }
            if(Element.value.indexOf('.')==-1)
            {
                Flag = 0;
                break;
            }
          } //closing the for loop

            ////////////////modified here added this loop//////////////////////
            for(var i=0; i <= Element.value.length-1; i++)
            {
            if((Element.value.charAt(i-1)=='.') && (Element.value.charAt(i)=='.'))
                {
                    Flag = 0;
                    break;
                }
            }
            ///////////////modification completed////////////////////

            if(Element.value.charAt(Element.value.length-1) == '.')
            Flag = 0;

        if(Flag != 1)
        {
            alert("Invalid Email-Id");
            Element.focus();
            return 0;
        }
        else
            return 1;
    }
    /**
     FUNCTION NUMVALIDATION(element,message,spl,onlynum)
     **/
    function NumValidation(Element, MessageLen0, spl, OnlyNum)
    {
        if(MessageLen0.length != 0)
        {
            if(isBlank(Element.value) || Element.value.length == 0)
            {
                alert("Please enter the "+ MessageLen0);
                Element.focus();
                return 0;
            }
        }

        if(OnlyNum == "num")
        {
            if(isNaN(Element.value))
            {
                alert("Please enter only Numeric Data");
                Element.focus();
                return 0;
            }
            if(parseInt(Element.value) < 0)
            {
                alert("Negative values are not allowed for this field.");
                Element.focus();
                return 0;
            }
        }

        if(spl == "spl" && OnlyNum != "num")
        {
            if(SplNumbers(Element) == 0)
            return 0;
        }

    } // closing the function NumValidation()

    /**
     FUNCTION GENVALIDATION(element.message1,message2,spl)
     **/

    function GenValidation(Element,MessageLen0,MessageLen4,spl) {

        if(MessageLen0.length != 0)
        {
            if(Element.value.length == 0)
            {
                alert("Please enter the "+ MessageLen0);
                Element.focus();
                return 0;
            }
            else if(isBlank(Element.value))
            {
                alert("Please enter the "+ MessageLen0);
                Element.focus();
                return 0;
            }
        }

        /*if(MessageLen4.length != 0)
        {
            if(Element.value.length < 4)
            {
                alert( MessageLen4 + " should be more than 4 characters");
                Element.focus();
                return 0;
            } // closing the if - else condtion for if(MessageLen4.length != 0)
        }*/

        if(spl == "spl")
        {
            if(SplCharacters(Element) == 0)
            return 0;
        }
        else if(spl == "space")
        {
            if(SplCharactersSpace(Element) == 0)
            return 0;
        }
    } // closing the function GenValidation()


    /**
     FUNCTION SPLCHARACTERS(element)
     **/

    function SplCharacters(Val) {

        var alp = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";

        for (var i=0;i<Val.value.length;i++){
            temp=Val.value.substring(i,i+1);
            if (alp.indexOf(temp)==-1){
                alert("No special characters \nValid entries are [a-z][A-Z][0-9][ _ ]");
                Val.focus();
                return 0;
            }
        } // closing the for loop

    } // closing the function SplCharacters()

    /**
     FUNCTION SPLCHARACTERS(element)
     **/

    function SplCharactersSpace(Val)
    {
        var alp = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ";

        for (var i=0;i<Val.value.length;i++){
            temp=Val.value.substring(i,i+1);
            if (alp.indexOf(temp)==-1){
                alert("No special characters \nValid entries are [a-z][A-Z][0-9][ space ]");
                Val.focus();
                return 0;
            }
        } // closing the for loop
    } // closing the function SplCharactersSpace()

    /**
     FUNCTION SPLNUMBERS(element)
     **/

    function SplNumbers(Val)
    {
        var alp = "0123456789+-";

        for (var i=0;i<Val.value.length;i++){
            temp=Val.value.substring(i,i+1);
            if (alp.indexOf(temp)==-1){
                alert("No special characters \nValid entries are [0-9][ + - ]");
                Val.focus();
                return 0;
            }
        } // closing the for loop

    } // closing the function SplNumbers()


    /**
     FUNCTION FOR CHECKING THE FIELD CONTAINS BLANK VALUES ISBLANK(Element.value)
     **/
    //To check if trim(value) is blank
function isBlank(txt, minlen)
{
    /*
        This fucntion can be used to check if a given text contains only spaces or 0 in length.

        INPUT: Text [txt]
                    Minimum Length [minlen] optional
                    Indicates that the text should be atleast 'minlen' in length

        OUTPUT: returns true if blank else false
    */

    if( txt.length == getCountOf('\n', txt) )
    {
        /*
            This condition avoids the entry of just newlines in text areas.
        */
        return true;
    }

    if( txt.length == getCountOf(' ', txt) || txt.length == 0 )
    {
        return true;
    }
    else if( minlen > 0 )
    {
        if( txt.length < minlen )
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    else
    {
        return false;
    }
}

    //This can be used for any character validation.
    //For example in a valid date the count of - or / should not be more than 2
    //Likewise in a valid numer there should be only one .
    function getCountOf(vChr, txt)
    {
        var i = 0;
        var iCount = 0;

        for( i=0; i < txt.length; i++ )
        {
            if( txt.charAt(i) == vChr )
            {
                iCount++;
            }
        }
        return iCount;
    }

    function getSelectedIndex(radgroup)
    {
        /* Returns back the id of selected radio button in a radio button group  */
        var j = -1;

        for( i=0; i < radgroup.length; i++ )
        {
            if( radgroup[i].checked )
            {
                j = i;
            }
        }
        return j;
    }

    /**
     FUNCTION TEXTAREAVALIDATION(element,message,len)
     **/

    function TextareaValidation(elem,msg,len) {

           if(elem.value.length > 0)
           {
            if(isBlank(elem.value))
            {
                alert("Please enter the value");
                elem.focus();
                return 0;
            }else if(elem.value.length > len)
            {
                alert(msg+" should not exceed "+len+" characters");
                elem.focus();
                return 0;
            }
           }

    } // closing the function TextareaValidation()

    function checkInCharSet(txt, charset)
    {
        /*
            This function checks if the characters in a given text are part of a given character set.

            INPUT:    Text ti be verified [txt]
                        String of character that forms the reference [charset]

            OUTPUT: Returns true if all of the characters in txt are part of charset, else false.

            USAGE:
                        for example:

                            checkInCharSet( "guru", "aeiouAEIOU" ) this fucntion returns false as "guru" contains 'g' and 'r'
                            whcih are not part of "aeiouAEIOU".

                            checkInCharSet( "abC", "abcdefABCDEF" ) this statement returns true as all "abC" contains characters
                            that are present in "abcdefABCDEF"
        */

        var b = true;

        for(i = 0; i < txt.length; i++ )
        {
            if( charset.indexOf(txt.charAt(i)) == -1 )
            {
                b = false;
            }
        }

        return b;
    }

    function isValidDate(dd, mm, yy)
    {
        /*
            This fucntion can be used for date validations.

            INPUT:    Day in numeric format [d]
                        Month in numeric format [m]
                        4 digit year [y]

            OUTPUT: Returns true if the date is valid else false.

            USAGE:
                        isValidDate( 1, 4, 2001 )    - Returns true

                        isValidDate( 1, 13, 2002 )    - Returns false coz month is > 12

                        isValidDate( 30, 2, 2001)    - Returns false coz Feb will never have 30th
        */

        var d = parseInt(dd);
        var m = parseInt(mm);
        var y = parseInt(yy);

        if( isNaN(d) || isNaN(m) || isNaN(y) )
            return false;

        if( d <= 0 || m <= 0 || y <=0 )
            return false;

        if( d > 31 || m > 12 )
            return false;

        if( y < 1000 || y > 9999 )
            return false;

        var vDays = [ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];

        if( m == 2 )
        {
            if( isLeapYear(y) )
            {
                if( d > 29 || d < 1 )
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
            else if( d > vDays[m] || d < 1 )
            {
                return false;
            }
            else
            {
                return true;
            }
        }
        else if( d > vDays[m] || d < 1 )
        {
            return false;
        }
        else
        {
            return true;
        }
    }

<!-- Begin
// var Message="www.Jewster.com";
var Message=" ";
var place=1;
function scrollIn()
{
    window.status=Message.substring(0, place);
    if (place >= Message.length)
    {
        place=1;
        window.setTimeout("scrollOut()",500);
    }
    else
    {
        place++;
        window.setTimeout("scrollIn()",200);
    }
}
function scrollOut()
{
    window.status=Message.substring(place, Message.length);
    if (place >= Message.length)
    {
        place=1;
        window.setTimeout("scrollIn()", 300);
    }
    else
    {
        place++;
        window.setTimeout("scrollOut()", 200);
    }
}
// End -->
// scrollIn() ;
        /**
    FUNCTION ROUNDNUMBER(element)
    **/
    function RoundNumber(Val)
    {
        var alp = "0123456789";
        for (var i=0;i<Val.value.length;i++){
            temp=Val.value.substring(i,i+1);
            if (alp.indexOf(temp)==-1){
                alert("Invalid Quantity Entered.");
                Val.focus();
                return 0;
            }
        } // closing the for loop
    } // closing the function RoundNumber()