/*
// it is for form appliying form validations
**/
function validateForm(){
  if(!document.getElementsByTagName('form')) return false;
  var frms = document.getElementsByTagName('form');
  var frm;
  for(var i=0;frm = frms[i];i++){
    frm.onsubmit = function(e){
      var pfx = 'jsfv_';
      var e = e || event;
      var frm = e.srcElement || e.target;
      var els = frm.elements;
      var el, classes, klass,reg;
      var gcheck = new Object();
      for(var j=0; el = els[j];j++){
        classes = el.className.split(/ /);
        for(var k=0; klass = classes[k];k++){
          if(klass.search(pfx) != -1){
            klass = klass.substr(pfx.length);
            switch(klass){
              case 'blank':
                if(blank(el.value)){
                  if(el.previousSibling){
                  	  var fname = (el.previousSibling.nodeType == 3) ? (trim(el.previousSibling.nodeValue) != '')?el.previousSibling.nodeValue:' this field ':' this field ';
                  }else{
                  	  var fname = ' this field ';
                  }
                  alert(" sorry! "+ fname +" can't be blank");
                  el.focus();
                  return false;
                }
              break;
              case 'email':
                if(!checkEmail(el.value)){
                  alert("Please enter a valid email id");
                  el.focus();
                  return false;
                }
              break;
              case 'num':
                if(!checkNum(el.value)){
                  alert("Please enter a numeric value");
                  el.focus();
                  return false;
                }
              break;
              case 'float':
                if(!checkFloat(el.value)){
                  alert("Please enter a float value");
                  el.focus();
                  return false;
                }
              break;
              case 'numfloat':
                if(!checkNumFloat(el.value)){
                  alert("Please enter a float value");
                  el.focus();
                  return false;
                }
              break;
              case '0':
                if(parseInt(el.value) == 0){
                  alert("Please select a valid option");
                  el.focus();
                  return false;
                }
              break;
              case 'checked':
                if(!el.checked){
                  alert("Please select checkbox");
                  el.focus();
                  return false;
                }
              break;
              case 'gcheck':
               	if(!el.name.match(/[[]/)){
              		return ;
              	}
              	gcheck['active'] = true;
              	switch(el.type){
              		case 'radio':
              		case 'checkbox':
                    //alert(el.name);
              			//var elName = el.name.substring(0,el.name.indexOf('['));
              			var elName = el.name;
                    if(!gcheck[elName]){
                      gcheck[elName] = (el.checked)?true:false;
                    }
              			break;
              		case 'text':
              			if(blank(el.value))
              				gcheck[elName] = (gcheck[elName])?true:false;
              			else
              				gcheck[elName] = true;
              			break;
              	}
              break;
            }
          }
        };
      }
		if(gcheck.active){
			for(var i in gcheck){
				if(!gcheck[i]){
					alert("Please select at least one option.");
					return false;
				}
			}
		}
      return true;
    };
  }
}

function rtrim(s){
  s = s.replace(/\s+$/,'');
  return s;
}

function ltrim(s){
  s = s.replace(/^\s+/,'');
  return s;
}
function trim(s){
  s = s.replace(/^\s+/,'').replace(/\s+$/,'');
  return s;
}

function blank(s){
  return (trim(s) == '')?true:false;
}

function checkEmail(s){
  var re = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/;
  return (re.test(s))?true:false;
}

function checkNum(s){
  var re = /\D/;
  return (re.test(s))?false:true;
}

function checkFloat(s){
  var re = /[0-9]+(\.){1}[0-9]*/;
  return (re.test(s))?true:false;
}

function checkNumFloat(s){
  var re = /[0-9]+(\.){0,1}[0-9]*/;
  return (re.test(s))?true:false;
}


function addLoadEvent(func){
  var oldonload = window.onload;
  if(typeof oldonload != 'function'){
    window.onload = func;
  }else{
    window.onload = function(){
      oldonload();
      func();
    }
  }
}

/*
* valication code jsfv_blank   blank check
			 	  jsfv_email	email validation
			 	  jsfv_num		numeric check
			 	  jsfv_0		check for 0, used for combo selection
			 	  jsfv_gcheck	check's whether in a group of inputs any item selected or not.
*
*/

//~ addLoadEvent(validateForm);
