﻿        function setFilterValue(filterValue,fieldname) {
			document.getElementById(fieldname).value = filterValue;
        }
        
        function CallFunctions(strfns)
        {
            var arryfns = new Array();
            arrayfns = strfns.split(',');
            var i=0;
            for(i=0;i<arrayfns.length;i++)
            {
                var correct = check(arrayfns[i]);
                if(correct=='stop')
                {
                  return false;
                }
            }
        }

        function check(str)
        {
            
            var arraystr = new Array();
            arraystr = str.split('|');
            var id = arraystr[1];
            var id2 = arraystr[2];
            
            switch(arraystr[0])
            {
                case "IsNumeric":
                    var ValidChars ="0123456789,$";
                    var controlid = "ctl00_phContent_" + id;
                    var IsNumber=true;
                    var returnid = 'go';
                    var Char;
                    sText = document.getElementById(controlid).value;
                    for (i = 0; i < sText.length && IsNumber == true; i++) 
                      { 
                          Char = sText.charAt(i); 
                          if (ValidChars.indexOf(Char) == -1) 
                             {
                                IsNumber = false;
                                alert('Only numbers should be entered in this field.');
                                document.getElementById(controlid).select();
                                returnid = 'stop';
                             }
                      }
                      
                   if(!IsNumber)
                   {
                        return returnid;
                   }
                  break;
                   
               case "IsZipCode": 
                    var ValidChars ="0123456789-";
                    var controlid = "ctl00_phContent_" + id;
                    var IsZip=true;
                    var returnid = 'go';
                    var Char;
                    sText = document.getElementById(controlid).value;
                    for (i = 0; i < sText.length && IsZip == true; i++) 
                      { 
                          Char = sText.charAt(i); 
                          if (ValidChars.indexOf(Char) == -1) 
                             {
                                IsZip = false;
                                alert('Zipcode can contain only numbers and \' - \'.');
                                document.getElementById(controlid).select();
                                returnid = 'stop';
                             }
                      }
                      
                   if(!IsZip)
                   {
                        return returnid;
                   }
                   break;
                   
                 case "IsDate":
                   // Declaring valid date character, minimum year and maximum year
                    var controlid = "ctl00_phContent_" + id;
                    var returnid = 'go';
                    
                    var dt=document.getElementById(controlid);
                    if(dt.value!='')
                    {
                        if (isDate(dt.value)=='stop')
                        {
                            dt.select();
                            returnid = 'stop';
                        }
                    }
                    return returnid;     
                    break;
                    
                case "IsYear":
                   var id3 = arraystr[3]; 
                   DisableTextBoxForRadioButton(id,id2,id3);
                   // Declaring valid date character, minimum year and maximum year
                    var controlid = "ctl00_phContent_" + id;
                    var returnid = 'go';
                    
                    var dt=document.getElementById(controlid);
                    if(dt.value!='')
                    {
                        if (isYear(dt.value)=='stop')
                        {
                            dt.select();
                            returnid = 'stop';
                        }
                    }
                    return returnid; 
                    break;
                
                 case "DisableTextBoxForRadioButton":
                    var id3 = arraystr[3]; 
                    DisableTextBoxForRadioButton(id,id2,id3);
                    break;
                
                 case "IsYr":
                   var id3 = arraystr[3]; 
                   // Declaring valid date character, minimum year and maximum year
                    var controlid = "ctl00_phContent_" + id;
                    var returnid = 'go';
                    
                    var dt=document.getElementById(controlid);
                    if(dt.value!='')
                    {
                        if (isYear(dt.value)=='stop')
                        {
                            dt.select();
                            returnid = 'stop';
                        }
                    }
                    return returnid; 
                    break;
                    
                case "DisableTextbox":
                       var id3 = arraystr[3]; 
                       //alert(id+'-'+id2+'-'+id3); 
                       DisableTextBox(id,id2,id3);
                       break;
               
                case "PopulateFromTwin":
                       //this is just used because all the javascript functions are called on page load
                       //alert('Hi');
                       break;        
                    
                case "DisableorEnableChild":
                    break;
                
                case "Alert":
                    alert('Rendered On Page Load');    
                    
                 }//end os switch case
        }

        function DisableorEnableChild(pid,strchild,txtreq)
        {
            rblid = "ctl00_phContent_" + pid;
            var arrycid = new Array();
            arrycid = strchild.split(',');
            var options = document.getElementById(rblid).getElementsByTagName('input');
            for(i=0;i<options.length;i++)
            {
                var opt = options[i];
                if(opt.checked)
                {
                    //alert(opt.value);
                    for(var i=0;i<arrycid.length;i++)
                    {
                        if(arrycid[i]!='')
                        {
                            var child =  "ctl00_phContent_" + arrycid[i];
                            if(opt.value != txtreq)
                            {
                                document.getElementById(child).value='';
                                document.getElementById(child).disabled=true;
                            }
                            else if(opt.value == txtreq)
                            {
                               document.getElementById(child).disabled=false;
                            }
                        } 
                   }
                }
            }
        }

        function DisableTextBoxForRadioButton(id,id2,id3)
        {
           rblid = "ctl00_phContent_" + id3; 
           txtid = "ctl00_phContent_" + id;
           //alert(rblid+','+txtid);
           var options = document.getElementById(rblid).getElementsByTagName('input');
            for(i=0;i<options.length;i++)
            {
                var opt = options[i];
                if(opt.checked)
                {
                    //alert(opt.value);
                    //alert(txtid);
                    if(opt.value != id2)
                    {
                        document.getElementById(txtid).value='';
                        document.getElementById(txtid).disabled=true;
                    }

                    else if(opt.value == id2)
                    {
                       document.getElementById(txtid).disabled=false;
                    } 
                }
            }
           
           
        }

        function DisableTextBox(id,id2,id3)
        {
           ddlid = "ctl00_phContent_" + id3; 
           txtid = "ctl00_phContent_" + id;
           //alert(ddlid+','+txtid);
           var selectedvalue = document.getElementById(ddlid);
           if(selectedvalue.value != id2)
            {
                //alert(txtid);
                document.getElementById(txtid).value="";
                document.getElementById(txtid).disabled=true;
            }

            else if(selectedvalue.value == id2)
                {
                   document.getElementById(txtid).disabled=false;
                } 
        }

        function isYear(dtStr)
        {
            var dtCh= "/";
            var minYear=1800;
            var maxYear=2100;
            var pos1=dtStr.indexOf(dtCh)
            var pos2=dtStr.indexOf(dtCh,pos1+1)
            var strYear=dtStr.substring(pos2+1)
            strYr=strYear
            for (var i = 1; i <= 3; i++) 
            {
                if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
            }
            year=parseInt(strYr)
            if (strYear.length != 4 || year==0 || year<minYear || year>maxYear)
            {
                alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
                return 'stop';
            }
            if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
            {
                alert("Please enter a valid date")
                return 'stop';
            }
            return 'go';
        }

        function isDate(dtStr)
        {
            var dtCh= "/";
            var minYear=1800;
            var maxYear=2100;
            var daysInMonth = DaysArray(12)
            var pos1=dtStr.indexOf(dtCh)
            var pos2=dtStr.indexOf(dtCh,pos1+1)
            var strMonth=dtStr.substring(0,pos1)
            var strDay=dtStr.substring(pos1+1,pos2)
            var strYear=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 'stop';
            }
            if (strMonth.length<1 || month<1 || month>12)
            {
                alert("Please enter a valid month")
                return 'stop';
            }
            if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
            {
                alert("Please enter a valid day")
                return 'stop';
            }
            if (strYear.length != 4 || year==0 || year<minYear || year>maxYear)
            {
                alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
                return 'stop';
            }
            if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
            {
                alert("Please enter a valid date")
                return 'stop';
            }
            return 'go';
        }

        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 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 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 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 'stop';
            }
            // All characters are numbers.
            return 'stop';;
        }

        function PopulateFromTwin(rid,ids,txtreq)
        {
          //alert(ids);
          var arraychild = new Array();
          arraychild = ids.split(',');
          var rbid = "ctl00_phContent_" + rid;
          var options = document.getElementById(rbid).getElementsByTagName('input');
          for(var j=0;j<options.length;j++)
          {
              var opt = options[j];
              if(opt.checked)
              {
                  for(var i=0;i<arraychild.length;i++)
                  {
                      var childid = "ctl00_phContent_" + arraychild[i]; 
                      var twinid = "ctl00_phContent_twin" + arraychild[i];
                      if(opt.value == '1')
                        {
                          document.getElementById(childid).value = document.getElementById(twinid).value;
                        }
                      else
                        {
                          //if(document.getElementById(childid)
                          document.getElementById(childid).value ='';
                        } 
                  } 
              }
          }
            
        }
