var j = Class.extend({
	//input validations
	date : function (e) { var obj = (core.browser=="ie") ? window.event.srcElement : e.target; if (!valid.isDate(obj.value)) obj.value = ""; },
	time : function (e) { var obj = (core.browser=="ie") ? window.event.srcElement : e.target; if (!valid.isTime(obj.value)) obj.value = ""; },
	//common functions
	isTime : function(e) {
		
	},
	isDate : function(_a) { var _g = "."; var _c=1900; var _d=2500; var _b = new Array(); for (var i = 1; i <= 12; i++) { _b[i] = 31; if (i==4 || i==6 || i==9 || i==11) {_b[i] = 30}; if (i==2) {_b[i] = 29}; }; var _e=_a.indexOf(_g); var _f=_a.indexOf(_g,_e+1); var _j = _a.substring(_e+1,_f); var _i = _a.substring(0,_e); var _m = _a.substring(_f+1); _k=_m; if (_i.charAt(0)=="0" && _i.length>1) _i=_i.substring(1); if (_j.charAt(0)=="0" && _j.length>1) _j=_j.substring(1); for (var i = 1; i <= 3; i++) { if (_k.charAt(0)=="0" && _k.length>1) _k=_k.substring(1); }; month=parseInt(_j); day=parseInt(_i); _h=parseInt(_k); if (_e==-1 || _f==-1){ return false; }; if ((_j.length<1) || (month<1) || (month>12)) { return false; };  if ((_i.length<1) || (day<1) || (day>31) || ((month==2) && (day>(((_h % 4 == 0) && ( (!(_h % 100 == 0)) || (_h % 400 == 0))) ? 29 : 28 ))) || (day > _b[month])) { return false; }; if ((_m.length != 4) || (_h==0) || (_h<_c) || (_h>_d)) { return false; } ; if (_a.indexOf(_g,_f+1)!=-1 || valid.isNumeric(this.stripChars(_a, _g))==false) { return false; }; return true; },
	stripChars : function(s, bag) { var i; var _a = ""; for (i = 0; i < s.length; i++) { var c = s.charAt(i); if (bag.indexOf(c) == -1) _a += c; }; return _a; },
	isNumeric : function(_a) { var _d = "0123456789"; var _c; var _b = true; if (_a.length == 0) return false; for (i = 0; i < _a.length && _b == true; i++) { _c = _a.charAt(i); if (_d.indexOf(_c) == -1) { _b = false; }; }; return _b; },
	isEmail : function(str) { if ((str == null) || (str == "")) { return false; };
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}
	
		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}
	
		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
			return false
		}
	
		 if (str.indexOf(at,(lat+1))!=-1){
			return false
		 }
	
		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
			return false
		 }
	
		 if (str.indexOf(dot,(lat+2))==-1){
			return false
		 }
		
		 if (str.indexOf(" ")!=-1){
			return false
		 }
	
		 return true
	},
	
	isBlank : function(str) {
		if (str == "") return true;
		for (var i=0; i<str.length; i++) {
			if (str[i] != " ") return false;
		}
		return true;
	},
	
	isLessThan : function (identifier, str) {
		if (parseInt(identifier)>parseInt(str)) {
			return true;
		}
		return false;
	},
	
	isMoreThan : function (identifier, str) {
		if (parseInt(identifier)<parseInt(str)) {
			return true;
		}
		return false;
	},
	
	isGreaterDate : function(x,y){
	    var datevalue1 = x;
	    var datevalue2 =  y;
	
	    var day1=datevalue1.substring(0,2);
	    var month1=datevalue1.substring(3,6);
	    var year1=datevalue1.substring(7,11);
	
	    var day2=datevalue2.substring(0,2);
	    var month2=datevalue2.substring(3,6);
	    var year2=datevalue2.substring(7,11);
	
	    month1=parseInt(month1,10)-1;
	    month2=parseInt(month2,10)-1;
	
	    var d1=new Date(year1,month1,day1);
	    var d2=new Date(year2,month2,day2);
	
	    if(d1>d2) {
	        return true;
	    } else {
	        return false;
	    }
	}
});

var valid = new j();