
$(function(){

 $(".jform[@id^='jform_']").submit(function () {

  return check_submit(this.id);
 } );

});



function check_submit(form_id)
{
  
  var e = "";
  $("#"+form_id+"_error").hide();
  
  $("input[@id^='"+form_id+"_']").each(function(i){
     
     var rules = eval(base64_decode($("#"+$(this).attr("id")+"_rules").text()));
    
     for (var i in rules)
     {
      
      if (typeof(window['jform_check_'+rules[i]['type']]) != "undefined")
      {
       var n = window['jform_check_'+rules[i]['type']]($("#"+$(this).attr("id")).val(),rules[i]['params'],form_id);
       if (!n)
        e+=rules[i]['error']+"<br>";
      }
     }
     
     
  });
  
  if (e)
  {
    $("#"+form_id+"_error").html(e);
    $("#"+form_id+"_error").show();
    return false;
  } else
    return true;
}

window['jform_check_is_int'] = function(value)
{
 var y=parseInt(value); 
 if (isNaN(y)) return false; 
 return value==y && value.toString()==y.toString(); 
}

window['jform_check_is_float'] = function(value)
{
  if(isNaN(value) || value.indexOf(".")<0){
     return false;
   } else {
      if(parseFloat(value)) {
              return true;
          } else {
              return false;
          }
   }
}


window['jform_check_min'] = function(value, param)
{
 if (value >= param)
  return true;
   else
    return false;
}

window['jform_check_max'] = function(value, param)
{
 if (value <= param)
  return true;
   else
    return false;
}

window['jform_check_min_length'] = function(value, param)
{
 if (value.length >= param)
  return true;
   else
    return false;
}

window['jform_check_max_length'] = function(value, param)
{
 if (value.length <= param)
  return true;
   else
    return false;
}

window['jform_check_is_email'] = function(param)
{
  var emailPattern = new RegExp(/^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/);
  return(emailPattern.test(param));
}

window['jform_check_same_as'] = function(value, param, form_id)
{
  if (document.getElementById(form_id+'_element_'+param).value == value)
   return true;
    else
     return false;
}












function base64_decode( data ) {
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, dec = "", tmp_arr = [];
 
    if (!data) {
        return data;
    }
 
    data += '';
 
    do {  // unpack four hexets into three octets using index points in b64
        h1 = b64.indexOf(data.charAt(i++));
        h2 = b64.indexOf(data.charAt(i++));
        h3 = b64.indexOf(data.charAt(i++));
        h4 = b64.indexOf(data.charAt(i++));
 
        bits = h1<<18 | h2<<12 | h3<<6 | h4;
 
        o1 = bits>>16 & 0xff;
        o2 = bits>>8 & 0xff;
        o3 = bits & 0xff;
 
        if (h3 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1);
        } else if (h4 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1, o2);
        } else {
            tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
        }
    } while (i < data.length);
 
    dec = tmp_arr.join('');
    dec = this.utf8_decode(dec);
 
    return dec;
}


function utf8_decode ( str_data ) {

    var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0;
    
    str_data += '';
    
    while ( i < str_data.length ) {
        c1 = str_data.charCodeAt(i);
        if (c1 < 128) {
            tmp_arr[ac++] = String.fromCharCode(c1);
            i++;
        } else if ((c1 > 191) && (c1 < 224)) {
            c2 = str_data.charCodeAt(i+1);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
            i += 2;
        } else {
            c2 = str_data.charCodeAt(i+1);
            c3 = str_data.charCodeAt(i+2);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }
    }
 
    return tmp_arr.join('');
}
