jQuery.validator.addMethod("greaterThanContext", function(value, element, params) {
														  
												  	
	if (params['isStrict']) {
		return Number(value) > Number($(params['context']).val());		
	} else {
		return Number(value) >= Number($(params['context']).val());	
	}
   
}, $.format("greaterThanContext error"));

jQuery.validator.addMethod("identicalContext", function(value, element, param) {
					
	return value ==  $(param).val();   
}, $.format("greaterThanContext error"));


jQuery.validator.addMethod("arrayLengthGreaterThan", function(value, element, param) {
  return $(':selected', $(element)).size() > Number(param);   
}, $.format("arrayLengthGreaterThan error"));

jQuery.validator.addMethod("remoteContext", function(value, element, param) {
	if ( this.optional(element) )
		return "dependency-mismatch";
	
	var previous = this.previousValue(element);
	
	if (!this.settings.messages[element.name] )
		this.settings.messages[element.name] = {};
	//this.settings.messages[element.name].remoteContext = typeof previous.message == "function" ? previous.message(value) : previous.message;
	
	var url = param['url'];
	var contextKey = param['contextKey'];

	var contextName = $('#' + contextKey).attr('name');

	var contextValue= $('#' + contextKey).val();
	

	
	var values = value + '@@--@@' + contextValue ;
	if ( previous.old !== values ) {
		previous.old =  values
		var validator = this;
		this.startRequest(element);
		var data = {};
		data[element.name] = value;
		data[contextName] = contextValue;
		$.ajax({
			url: url,
			mode: "abort",
			port: "validate" + element.name,
			dataType: "json",
			data: data,
			success: function(response) {
				var valid = response === true;
				if ( valid ) {
					var submitted = validator.formSubmitted;
					validator.prepareElement(element);
					validator.formSubmitted = submitted;
					validator.successList.push(element);
					validator.showErrors();
				} else {
					var errors = {};
					errors[element.name] = previous.message = response || validator.defaultMessage( element, "remoteContext" );
					validator.showErrors(errors);
				}
				previous.valid = valid;
				validator.stopRequest(element, valid);
			}
		});
		return "pending";
	} else if( this.pending[element.name] ) {
		return "pending";
	}
	return previous.valid;
   
}, $.format("remoteContext Error"));


			




