	
	$(document).ready(function(){
	//sets when to validate a page submissiion and what to do on error:
		jQuery.validator.setDefaults({ 
			onsubmit: true,
			onkeyup: false,
			onclick: false,
			onfocusout: false,			
			errorPlacement: function(error, element) {}
		});	
	
		//set fieldsets 
		$('fieldset').each(function(index) {
		var headingouter = $('legend.outer', this).remove().text();
		if (headingouter!="")
			$('<h3></h3>').text(headingouter).prependTo(this);
		});
		$('fieldset fieldset').each(function(index) {
		var headinginner = $('legend.inner', this).remove().text();
		$('<h4></h4>').text(headinginner).prependTo(this);
		});
		
		var requiredFlag = '*';
		
		var requiredKey = $('input.required:first').next('span').text();
		requiredKey = requiredFlag + ' ' + requiredKey.replace(/^\((.+)\)$/,"$1");
		$('form :input').filter('.required')
		.prev('label').addClass('req-label');
		$('<p></p>')
		.addClass('field-keys')
		.append(requiredKey + '<br />')
		.insertBefore('.contact');
		$("span:contains('required')").text(requiredFlag);
		
		
		
		
		//validates if an item af a dropdown was not selected.
		jQuery.validator.addMethod("selector", function(value, elem) {	
			return elem.selectedIndex > 0 || false;
		}, ""	);	
		
		// for checkout/address.aspx:
		jQuery.validator.addMethod("expires", function() {
		result = false;
		var d= new Date($("#WcAddresses1_cboCCYear").val(), $("#WcAddresses1_cboCCMonth").val()-1,28);
		var today=new Date();
		if( d>today)
			result=true;
		return result;
			   			
			}, ""	);
		
		
		
		
		// for cart/default.aspx:
		jQuery.validator.addMethod("checkqty", function(value, elem) {
			result = false;
			
			var html=$.ajax({
			  url: "../ajax/checkqty.aspx",
			  data: {ID: $(elem).attr("id")},
			  async: false
			   }).responseText; 

			   if (value <= html)
					result=true;
			   else
			    {
					$(elem).next('div').remove();
					$(elem).val(html).after("<div>only " + html + " left</div>");
					result=false;
			    }
			    return result;
			   			 	
		}, ""	);
		
	});