var VERR = new Array();
var VEXT = new Array();
var VMSG = {
    isBlank    : 'cannot be blank',
    isEmail    : 'is not valid email',
	isName     : 'should be more that four characters, can contain only letters and numbers and space',
	isLogin    : 'should be more that 4 characters, can contain only letters, numbers, and underscores',
	isPassword : 'should be more than five characters, should not contain space',
    isNumber   : 'should be number[0-9]',
	isTime     : 'invalid time',
	isChecked  : 'Please select',
	isImage    : 'is not a image',
	isUrl      : 'is not a valid url',
	isGreater  : 'should be greater than',
	isLess     : 'should be less than',
	isEqual    : 'should be equals to',
	isNotequal : 'should not be equals to',
	isMobile   : 'is not valid',
	ifNotBlank : ''
};

function isMobile(val){	if (isNaN(val) || val.length != 10) { return false;	} else { return true; }}
function isBlank(val) {	var newval = val.replace(/^\s*|\s*$/g, '');	if(newval == "") return false; else return true;}
function isEmail(val) {	var newval = val.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);	if(newval == -1) return false; else return true;}
function isName(val) {if (val.length < 4) { return false; } else if(!val.match(/^[a-z0-9 ]+$/i)) { return false; } else { return true; }}
function isLogin(val) {	var illegalChars = /\W/; if (val.length < 4) { return false; } else if (illegalChars.test(val)) { return false; } else { return true; }}
function isPassword(val) { var illegalChars = /\s/;	if (val.length < 5) { return false;	} else if (illegalChars.test(val)) { return false; } else { return true; }}
function isChecked(obj,len){ if(!obj.length){ return true;} var flg = false; if(!len) { len = 1;} if(obj.find("input[type='checkbox']").length || obj.find("input[type='radio']").length) { if(obj.find("input:checked").length >= len){ flg = true; } }else{ flg=false; } 	return flg; }
function isNumber(val) {if(isNaN(val)) return false; else return true; }
function isTime(s){ if(s == null) return false;  if(s.indexOf(":") == -1) return false;  var spl = s.split(":");  return parseInt(spl[0], 10) < 24 && parseInt(spl[1], 10) < 60;}
function isImage(val){ if(val.match(/(?:gif|jpg|png|bmp)$/)) return true; else return false; }
function isGreater(val1,val2) {	if(val1 <= val2) return true; else return false; }
function isLess(val1,val2) { if(val1 >= val2) return true; else return false; }
function isEqual(val1,val2) { if(val1 == val2) return true; else return false; }
function ifNotBlank(val,str){ if(!isBlank(val)){}}
function callVfunc(func,elem){}
function validateForm(frm){	
	var flg = 0;
	var strV = frm.mxValidate.value;
	if(strV) {		
		VERR = jQuery.parseJSON($.URLDecode(strV));
		if(VEXT) {
			//VERR = $.merge(VERR,VEXT);
			for (var prop in VEXT) {
				if (VEXT.hasOwnProperty(prop)) {
					VERR[prop] = VEXT[prop];
				}
			}
		}
				
		$(frm).find('p').remove();
		$.each(VERR, function(elem, strFuns) {
			if(strFuns){
				var arrFuns = strFuns.split(",");
				var obj = $(frm).find("[name='"+elem+"']");
				$.each(arrFuns, function(k, vFunc) {
					//alert(elem+" : "+vFunc);
					if(vFunc){						
						var strF = vFunc.split(":");
						fun = window[strF[0]]
						if(fun) {
							if(strF[1]){
								var func = window[strF[0]];
								if (typeof func == "function"){
									var tObj = $("#"+elem+"-set");																		
									if(tObj.length) {
										obj = tObj;										
										if(!func(obj,strF[1])){
											flg++; var sMsg = "";
											if(strF[1] > 1){ sMsg = " "+strF[1]+" "; }
											var msg = $("<p class='e'>"+VMSG[strF[0]]+sMsg+" "+obj.attr("title")+"</p>").hide();					
											msg.appendTo(obj.parent()).slideDown();					
										}
										
									} else {
										var cObj = $(frm).find("[name='"+strF[1]+"']");
										if(cObj.length) {
											if(!func(obj.val(),cObj.val())){
												flg++;
												var msg = $('<p class="e">'+obj.attr("title")+" "+VMSG[strF[0]]+'</p>').hide();					
												msg.appendTo(obj.parent()).slideDown();					
											}
										}
									}
								}
							} else {								
								if(obj.length) {									
									if(!fun(obj.val())){
										flg++;									
										var msg = $('<p class="e">'+obj.attr("title")+" "+VMSG[vFunc]+'</p>').hide();					
										msg.appendTo(obj.parent()).slideDown();					
									}
								}
							}
						}										
					}
				});
			}
		});
	}
	if(flg == 0)
		return true;
	else
		return false;
}

function isUrl(val){
	if(/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(val)) {
	  return true;
	} else {
	  return false
	}
}
