/*
 * checkfields 1.0 
 *
 * 2009  Kruglu
 */

function checkfields(form_type) {
        if (form_type == 'login') {
          // alert(form_type);
          var form = document.getElementsByTagName('input');
          var isValid = true;
          for (var i=0; i < form.length; i++) {
                // Process only Login input fields
                var regfilter=/^login/i ;
                if (regfilter.test(form[i].name)) {
                  // if (form[i].name && !form[i].value && form[i].type != 'hidden') {
                  //      alert("set to false form_name");
                  //      isValid = false;
                  // }
                  // alert(form[i].name);
                  if( form[i].name == 'loginpassword' ) {
                    var ret = checkPassword(form[i].value);
                    if (ret == 'password_empty') {
                      var errname = 'password_empty';
                      isValid = false;
                    }
                  } else if ( form[i].name == 'loginemail') {
                    var ret = checkEmail(form[i].value);
                    if (ret == 'email_invalid') {
                      var errname = 'email_invalid';
                      isValid = false;
                    } else if ( ret == 'email_empty') {
                      var errname = 'email_invalid';
                      isValid = false;
                    }
                  }
                }
          }
          if (!isValid) {
              if(errname == 'password_empty') {
                // alert('Missing required field');
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Password: Missing Required Field:</font></div>";
                div_element.innerHTML=str_error;
              } else  if (errname == 'email_invalid') {
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Email Invalid</font></div>";
                div_element.innerHTML=str_error;
                form[1].value = '';
                form[2].value = '';
              }
          }
          return isValid;
        } else if (form_type == 'register') {
          // alert("register");
          // console.log("register");
          var form = document.getElementsByTagName('input');
          var isValid = true;
          for (var i=0; i < form.length; i++) {
                // Process only Register input fields
                var regfilter=/^reg/i ;
                if (regfilter.test(form[i].name)) {
                  // alert("lets print only the reg inputs");
                  // alert(form[i].name);
                  if (form[i].name && !form[i].value && form[i].type != 'hidden') {
                    isValid = false;
                  }
                  if( form[i].name == 'regpassword1' ) {
                    var ret = checkPassword(form[i].value);
                    if (ret == 'password_empty') {
                      var errname = 'password_empty';
                      isValid = false;
                    }
                  } else if ( form[i].name == 'regpassword2') {
                    var ret = checkPasswords(form[i].value,form[8].value);
                    if (ret == 'password_empty') {
                      var errname = 'password_empty';
                      isValid = false;
                    } else if (ret == 'password_nomatch') {
                      var errname = 'password_nomatch';
                      isValid = false;
                    }
                  } else if ( form[i].name == 'regemail') {
                    var ret = checkEmail(form[i].value);
                    if (ret == 'email_invalid') {
                      var errname = 'email_invalid';
                      isValid = false;
                    } else if ( ret == 'email_empty') {
                      var errname = 'email_invalid';
                      isValid = false;
                    }
                  } else if ( form[i].name == 'regnick_name') {
                      var ret = checkempty(form[i].value);
                      if (ret == 'field_empty') {
                        var errname = 'invalid';
                        isValid = false;
                      }
                  } else if ( form[i].name == 'regmobile') {
                      var ret = checkMobile(form[i].value);
                      if (ret[0] == 'mobile_empty') {
                        var errname = 'invalid';
                        isValid = false;
                      } else if ( ret[0] == 'mobile_invalid') {
                        var errname = 'mobile_invalid';
                        isValid = false;
                      } else if ( ret[0] == 'mobile_length') {
                        var errname = 'mobile_length';
                        isValid = false;
                      } else if ( ret[0] == 'mobile_length10') {
                        // form[i].value = "1" + form[i].value;
                        form[i].value = "1" + ret[1];
                      } else if ( ret[0] == 'mobile_lengthok') {
                        form[i].value = ret[1];
                      }
                  } else if ( form[i].name == 'regtoscheck') {
                      var ret = checktos(form[i].checked);
                      if (ret == 'tos_notchecked') {
                        var errname = 'tos_notchecked';
                        isValid = false;
                      }
                  }
                }

          }
          if (!isValid) {
              if(errname == 'password_empty') {
                var div_element=document.getElementById('regerror_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Password: Missing Required Field:</font></div>";
                div_element.innerHTML=str_error;
              } else  if (errname == 'email_invalid') {
                var div_element=document.getElementById('regerror_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Email Invalid</font></div>";
                div_element.innerHTML=str_error;
                form[8].value = '';
                form[9].value = '';
              } else if (errname == 'invalid') {
                var div_element=document.getElementById('regerror_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Missing Required Field.</font></div>";
                div_element.innerHTML=str_error;
                form[8].value = '';
                form[9].value = '';
              } else if (errname == 'tos_notchecked') {
                var div_element=document.getElementById('regerror_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Must Agree to Terms.</font></div>";
                div_element.innerHTML=str_error;
                form[8].value = '';
                form[9].value = '';
              } else if (errname == 'mobile_invalid') {
                var div_element=document.getElementById('regerror_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Mobile Invalid.</font></div>";
                div_element.innerHTML=str_error;
                form[8].value = '';
                form[9].value = '';
              } else if (errname == 'mobile_length') {
                var div_element=document.getElementById('regerror_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Mobile Number Length Invalid.</font></div>";
                div_element.innerHTML=str_error;
                form[8].value = '';
                form[9].value = '';
              } else if (errname == 'password_nomatch') {
                var div_element=document.getElementById('regerror_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Passwords do not match.</font></div>";
                div_element.innerHTML=str_error;
                form[8].value = '';
                form[9].value = '';
              }
          }
          return isValid;
        } else if (form_type == 'creategroup') {
          //alert(form_type);
          var isValid = true;
          var form1 = document.getElementsByTagName('select');
          for (var i=0; i < form1.length; i++) {
                // Process only select fields
                if ( form1[i].name == 'crgrouptype') {
                    if (form1[i].selectedIndex == 0) {
                      var errname = 'select_invalid';
                      isValid = false;
                    }
                }
          }
          var form = document.getElementsByTagName('input');
          for (var i=0; i < form.length; i++) {
                // Process only create group input fields
                var regfilter=/^crgroup_name/i ;
                if (regfilter.test(form[i].name)) {
                  //alert(form[i].name);
                  if( form[i].name == 'crgroup_name' ) {
                  //alert(form[i].value);
                    var ret = checkGroupName(form[i].value);
                    if (ret == 'field_empty') {
                      var errname = 'field_empty';
                      isValid = false;
                    }
                  }
                }
          }
          if (!isValid) {
              if(errname == 'field_empty') {
                // alert('Missing required field');
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Missing Required Field:</font></div>";
                div_element.innerHTML=str_error;
              } else  if (errname == 'select_invalid') {
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Please Select Group Type</font></div>";
                div_element.innerHTML=str_error;
              }
          }
          return isValid;
        } else if (form_type == 'message') {
          // alert(form_type);
          var isValid = true;
          var form = document.getElementsByTagName('textarea');
          for (var i=0; i < form.length; i++) {
            if( form[i].name == 'message' ) {
              var ret = checkMessage(form[i].value);
              if (ret == 'field_empty') {
                var errname = 'field_empty';
                isValid = false;
              }
            }
          }
          if (!isValid) {
              if(errname == 'field_empty') {
                //alert('Message Cannot be empty');
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Message cannot be empty.</font></div>";
                div_element.innerHTML=str_error;
              } else  if (errname == 'message_invalid') {
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Message Invalid.</font></div>";
                div_element.innerHTML=str_error;
              }
          }
          return isValid;
        } else if (form_type == 'remove') {
          //alert(form_type);
          var isValid = true;
          var form = document.getElementsByTagName('select');
          for (var i=0; i < form.length; i++) {
            if( form[i].name == 'rmuser_id' ) {
              var ret = checkMessage(form[i].value);
              if (ret == 'field_empty') {
                var errname = 'field_empty';
                isValid = false;
              }
            }
          }
          if (!isValid) {
              if(errname == 'field_empty') {
                //alert('Message Cannot be empty');
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Selection cannot be empty.</font></div>";
                div_element.innerHTML=str_error;
              } else  if (errname == 'message_invalid') {
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Selection Invalid.</font></div>";
                div_element.innerHTML=str_error;
              }
          }
          return isValid;
        } else if (form_type == 'leave') {
          // alert(form_type);
          var isValid = true;
          var form = document.getElementsByTagName('select');
          for (var i=0; i < form.length; i++) {
            if( form[i].name == 'newadmin_id' ) {
              var ret = checkMessage(form[i].value);
              if (ret == 'field_empty') {
                var errname = 'field_empty';
                isValid = false;
              }
            }
          }
          if (!isValid) {
              if(errname == 'field_empty') {
                //alert('Message Cannot be empty');
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Selection cannot be empty.</font></div>";
                div_element.innerHTML=str_error;
              } else  if (errname == 'message_invalid') {
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Selection Invalid.</font></div>";
                div_element.innerHTML=str_error;
              }
          }
          return isValid;
        } else if (form_type == 'permchange') {
          // alert(form_type);
          var isValid = true;
          var form = document.getElementsByTagName('select');
          for (var i=0; i < form.length; i++) {
            if( form[i].value == 'Change role' ) {
              var errname = 'field_default';
              isValid = false;
            }
          }
          if (!isValid) {
              if(errname == 'field_empty') {
                //alert('Message Cannot be empty');
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Selection cannot be empty.</font></div>";
                div_element.innerHTML=str_error;
              } else  if (errname == 'field_default') {
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">No Role selected.</font></div>";
                div_element.innerHTML=str_error;
              }
          }
          return isValid;
        } else if (form_type == 'permapply') {
          // alert(form_type);
          var isValid = true;
          var form = document.getElementsByTagName('select');
          for (var i=0; i < form.length; i++) {
            if( form[i].value == 'bulk' ) {
              var errname = 'field_default';
              isValid = false;
            }
          }
          if (!isValid) {
              if(errname == 'field_empty') {
                //alert('Message Cannot be empty');
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Selection cannot be empty.</font></div>";
                div_element.innerHTML=str_error;
              } else  if (errname == 'field_default') {
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">No Bulk Action selected.</font></div>";
                div_element.innerHTML=str_error;
              }
          }
          return isValid;
        } else if (form_type == 'profileinfo') {
          // alert(form_type);
          var form = document.getElementsByTagName('input');
          var isValid = true;
          for (var i=0; i < form.length; i++) {
                if( form[i].name == 'nickname' ) {
                    var ret = checkMessage(form[i].value);
                    if (ret == 'field_empty') {
                      var errname = 'field_empty';
                      isValid = false;
                    }
                } else if( form[i].name == 'email2') {
                    var ret = checkEmail(form[i].value);
                    if (ret == 'email_invalid') {
                        var errname = 'email_invalid';
                        isValid = false;
                    }
                } else if( form[i].name == 'code') {
                    var ret = checkMessage(form[i].value);
                    if (ret == 'field_empty') {
                      var errname = 'field_empty';
                      isValid = false;
                    }
                } else if( form[i].name == 'additional_mobile') {
                      var ret = checkMobile(form[i].value);
                      if (ret[0] == 'mobile_empty') {
                        var errname = 'field_empty';
                        isValid = false;
                      } else if ( ret[0] == 'mobile_invalid') {
                        var errname = 'mobile_invalid';
                        isValid = false;
                      } else if ( ret[0] == 'mobile_length') {
                        var errname = 'mobile_invalid';
                        isValid = false;
                      } else if ( ret[0] == 'mobile_length10') {
                        form[i].value = "1" + ret[1];
                      } else if ( ret[0] == 'mobile_lengthok') {
                        form[i].value = ret[1];
                      }
                } else if( form[i].name == 'newpassword') {
                    var ret = checkPasswords(form[i].value,form[2].value);
                    if (ret == 'password_empty') {
                      var errname = 'field_empty';
                      isValid = false;
                    } else if (ret == 'password_nomatch') {
                      var errname = 'password_nomatch';
                      isValid = false;
                    }
                }
          }
          if (!isValid) {
              if(errname == 'field_empty') {
                // alert('Missing required field');
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Missing Required Field:</font></div>";
                div_element.innerHTML=str_error;
              } else  if (errname == 'field_invalid') {
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Field Invalid</font></div>";
                div_element.innerHTML=str_error;
                form[1].value = '';
                form[2].value = '';
              } else  if (errname == 'email_invalid') {
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Email Invalid</font></div>";
                div_element.innerHTML=str_error;
              } else  if (errname == 'mobile_invalid') {
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Mobile Invalid</font></div>";
                div_element.innerHTML=str_error;
              } else  if (errname == 'password_nomatch') {
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Passwords do not match.</font></div>";
                div_element.innerHTML=str_error;
                form[1].value = '';
                form[2].value = '';
              }
          }
          return isValid;
        } else if (form_type == 'resetpwd') {
          // alert(form_type);
          var form = document.getElementsByTagName('input');
          var isValid = true;
          for (var i=0; i < form.length; i++) {
            if( form[i].name == 'newpassword' ) {
              var ret = checkPasswords(form[i].value,form[1].value);
              if (ret == 'password_empty') {
                var errname = 'field_empty';
                isValid = false;
              } else if (ret == 'password_nomatch') {
                var errname = 'password_nomatch';
                isValid = false;
              }
            }
          }
          if (!isValid) {
              if(errname == 'field_empty') {
                // alert('Missing required field');
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Missing Required Field:</font></div>";
                div_element.innerHTML=str_error;
              } else  if (errname == 'password_nomatch') {
                var div_element=document.getElementById('error_full');
                var str_error="<div id=\"error\"><font face=\"arial\" color=\"red\">Passwords do not match.</font></div>";
                div_element.innerHTML=str_error;
                form[0].value = '';
                form[1].value = '';
              }
          }
          return isValid;
        }
}


function checkMessage(p1) {
        if (p1 == "") {
          var errname = 'field_empty';
          return errname;
        }

}

function checkGroupName(p1) {
        if (p1 == "") {
          var errname = 'field_empty';
          return errname;
        }

}

function checkMobile(str) {
        // alert("checkMobile");
        // alert(str);
        if (str == "") {
          var errname = 'mobile_empty';
          return [errname,str];
        }
        var stripped = str.replace(/[\(\)\.\-\ ]/g, '');
        //strip out acceptable non-numeric characters
        if (isNaN(parseInt(stripped))) {
          var errname = 'mobile_invalid';
          return [errname,stripped];
        }

        if (stripped.length == 11) {
          var filter=/^1/i ;
          if (!filter.test(stripped)) {
            // mobile does not start with a 1
            var errname = 'mobile_length';
            return [errname,stripped];
          } else {
            var errname = 'mobile_lengthok';
            return [errname,stripped];
          }
        } else if (stripped.length > 11) {
          var errname = 'mobile_length';
          return [errname,stripped];
        } else if (stripped.length == 10) {
          var errname = 'mobile_length10';
          return [errname,stripped];
        } else if (stripped.length < 10) {
          var errname = 'mobile_length';
          return [errname,stripped];
        }
}

function checktos(p1) {
        if (!p1) {
          var errname = 'tos_notchecked';
          return errname;
        }

}

function checkempty(p1) {
        if (p1 == "") {
          var errname = 'field_empty';
          return errname;
        }

}

function checkPassword(p1) {
        // alert('checkpassword');
        if (p1 == "") {
          var errname = 'password_empty';
          return errname;
        }

}

function checkPasswords(p2,p1) {
        // alert("checkPasswords");
        if (p2 == "") {
          var errname = 'password_empty';
          return errname;
        }

        if (p1 && (p1 != p2)) {
          // alert('Passwords do not match');
          var errname = 'password_nomatch';
          return errname;
        }

}


function checkEmail(str) {
        // alert("function checkEmail");
        var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i ;
        if (str == "") {
          var errname = 'email_empty';
          return errname;
        }

        if (!filter.test(str)) {
           var errname = 'email_invalid';
           return errname;
        } else {
           var errname = 'email_valid';
           return errname;
        }
}

