var a = 0;
var w = 0;
var fr0 = parent.frames[0].document.forms[0];
var fr1 = parent.frames[1].document;
var notReq;


function allFields(fields) {

   notReq = fields;

   for (x=0; x<fr1.forms[0].elements.length; ++x) {

      var e = fr1.forms[0].elements[x];

      if (e.name == 'Name') {
         checkLength(2,20,'str');
         //if (a == 0) {setValue(3, e.value);}
      }
      else if (e.name == 'E-Mail' && e.value != '') {
         if (e.value.indexOf('@') == -1 || e.value.indexOf('.') == -1) {
            alert ('Invalid E-Mail address');
            ++a;
            break;
         }
         //setValue(4, e.value);
      }
      else if (e.name == 'SMS' && !e.checked){
         notReq += ' Mobile'
      }
      else if (e.name == 'Mobile') {
         checkLength(11,13,'num');
      }

 
      if (e.type == 'radio') {continue;}

      if (a != 0) {break;}

      if (e.value == '' || w == 0) {//either they entered nothing or all special chars
         if (notReq.indexOf(e.name) != -1) {//nothing but not required fine
            continue;
         }
         else {//nothing but|or special chars then unfine
            e.focus();
            alert ('You did not enter any ' + e.name);
            ++a;
            break;
         }
      }
   }

   if (a == 0) {fr1.forms[0].submit();}
   else        {a = 0;}



}

function specialCase(e, message) {
  e.focus();
  alert(message);
}

function setValue(fno, val) {fr0.elements[fno].value = val;}

function checkLength(min, max, type) {

   var e, fl, nl, rA, rB;
   e = parent.frames[1].document.forms[0].elements[x];

   //alert(w + notReq.indexOf(e.name) + ' ' + e.name +' '+ e.value +' '+  e.type +' '+ e.checked + ' ' + notReq);

   //if (notReq.indexOf(e.name) == -1) { //if Req then check

      if (e.value.length < min) {
         if (e.value != '') {
            e.focus();
            alert ('Your ' + e.name + ' is too short');
            ++a;
         }
      }
      else if (e.value.length > max) {
         if (e.value != '') {
            e.focus();
            alert (e.name + ' exceeds the maximum required number of input to qualify as valid');
            ++a;
         }
      }
      else {
  
         if (type == 'str') {
            e.value = e.value.toLowerCase();
            fl = e.value.charAt(0).toUpperCase();
            nl = e.value.substring(1, e.value.length);
            rA = 97;
            rB = 122;
         }
         else if (type == 'num') {
            rA = 48;
            rB = 57;
         }
         else {
            rA = 32;
            rB = 126;
         }

         for (y=0; y<e.value.length; ++y) {

            if (w == 0) {//see that not all are special chars
               if (e.value.charCodeAt(y) >= rA && e.value.charCodeAt(y) <= rB) {
                  ++w;
               }
            }

            if (e.value.charCodeAt(y) < rA || e.value.charCodeAt(y) > rB) {//special chars check for all
   
               if (e.value.charAt(y) == ',' || e.value.charAt(y) == ' ' || e.value.charCodeAt(y) == 10 || e.value.charCodeAt(y) == 13) {
                  continue;
               }
               else if (type == 'num') {
                  if (e.value.charAt(y) == '.') {
                     continue;
                  }
               }
               else if (type == 'str'){
                  //place valid exception[s] here
               }
               else if (type == 'xxx') {
                  //place valid exception[s] here
                   }

               //character is not special
               alert ('Invalid ' + e.name + '  Character  "' + e.value.charAt(y) + '"');
               e.focus();
               ++a;
               break;
            }
         }

         if (a == 0 && type == 'str') {e.value = fl+nl;}

      }
   //}
}

function getValues() {

   for (x=0; x<fr1.forms[0].elements.length; ++x) {

      var e = fr1.forms[0].elements[x];

   }
}

function clearField(field) {
	fr1.forms[0].elements[field].value='';
    fr1.forms[0].elements[field].focus();
}

function resetForm() {
	fr1.forms[0].reset();
}

