
function CheckRequiredFields(frm, msg){
    var allOK = true;
    for(i=0;i<frm.elements.length;i++){
        
        var elem = frm.elements[i];
        var req = elem.getAttribute("required");
        //alert(elem.getAttribute('type'));
        var reqif = elem.getAttribute("requiredif");
        if(req == 'true'){
            
            if(elem.getAttribute("type") == 'radio'){
                value = getCheckedValue(frm.elements[elem.name]);
            } else if(elem.getAttribute("type") == 'checkbox'){
                value = elem.checked;
			} else if(elem.tagName.toLowerCase() == 'select'){
				value = elem.options[elem.selectedIndex].innerHTML;
            } else{
                value = elem.value;
            }

            if(trim(value) == '' || value == null){
                if(frm.elements[i].className.indexOf("required") == -1){
                    frm.elements[i].className += ' required';
                }
                allOK = false;
            }else{
                if(elem.className.indexOf("required") != -1){
                    elem.className = trim(elem.className.replace(/required/, ''));
                }
            }
        }
        else if(reqif){
            var arr = reqif.split('=');
            var el = frm.elements[arr[0]];
            var v1 = arr[1];
            
            if(el[0] && el[0].type == 'radio'){
                v2 = getCheckedValue(el);
            }else{
                v2 = el.value;
            }
            
            if(v1 == v2){
               if(elem.value == "") {
                    if(elem.className.indexOf("required") == -1){
                        elem.className += ' required';
                    }
                    allOK = false;
               }
               else {
                   elem.className = trim(elem.className.replace(/required/, ''));
               }   
            }else{
                if(elem.className.indexOf("required") != -1){
                    elem.className = trim(elem.className.replace(/required/, ''));
                }
            }
        }
        if(elem.getAttribute("isdate") == 'true'){
            if(isDate(trim(elem.value))){
                if(elem.className.indexOf("required") != -1){
                    elem.className = trim(elem.className.replace(/required/, ''));
                }
            }else{
                if(elem.className.indexOf("required") == -1){
                    elem.className += ' required';
                }
                allOK = false;
            }
        }
    }
    if(allOK){
        return true;
    }else{
        alert(msg);
        return false;
    }
}
function isDate(sDate) {
    var re = /^\d{1,2}\-\d{1,2}\-(?:\d{2}|\d{4})$/
    if (re.test(sDate)) {
        var dArr = sDate.split("-");
        if(dArr[2].length == 2) {
            dArr[2] = "20" + dArr[2];
        }
        var d = new Date();
        d.setFullYear(parseInt(dArr[2]), parseInt(dArr[1]) - 1, parseInt(dArr[0]));
        return d.getDate() == dArr[0] && d.getMonth() + 1 == dArr[1] && d.getFullYear() == dArr[2];
        }
    else {
        return false;
    }
}
function toDate(sDate) {
   var re = /^\d{1,2}\-\d{1,2}\-\d{4}$/
   if (re.test(sDate)) {
      var dArr = sDate.split("-");
      if(dArr[2].length == 2) {
          dArr[2] = "20" + dArr[2];
      }
      var d = new Date();
      d.setFullYear(parseInt(dArr[2]), parseInt(dArr[1]) - 1, parseInt(dArr[0]));
      return d;
   }
   else {
      return false;
   }
}

function trim(str)
{
    if(!str || typeof str != 'string')
        return str;

    return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
}
function getCheckedValue(radioObj) {
    if(!radioObj)
        return "";
    var radioLength = radioObj.length;
    if(radioLength == undefined)
        if(radioObj.checked)
            return radioObj.value;
        else
            return "";
    for(var i = 0; i < radioLength; i++) {
        if(radioObj[i].checked) {
            return radioObj[i].value;
        }
    }
    return "";
}