function CheckFreeTrial(Trial)
{
	return Trial?Trial:confirm("There can only be one risk-free trial per customer. Adding this new risk-free trial offer to your shopping cart, will automatically replace the original offer you selected.");
}
// Validate form on keyup and submit
$(function () {
	var USStates = [
	        		{ value: 'AL' , name: 'Alabama' },
	        		{ value: 'AK' , name: 'Alaska' },
	        		{ value: 'AS' , name: 'American Samoa' },
	        		{ value: 'AZ' , name: 'Arizona' },
	        		{ value: 'AR' , name: 'Arkansas' },
	        		{ value: 'AE' , name: 'Armed Forces Africa' },
	        		{ value: 'AA' , name: 'Armed Forces Americas' },
	        		{ value: 'AP' , name: 'Armed Forces Pacific' },
	        		{ value: 'CA' , name: 'California' },
	        		{ value: 'CO' , name: 'Colorado' },
	        		{ value: 'CT' , name: 'Connecticut' },
	        		{ value: 'DE' , name: 'Delaware' },
	        		{ value: 'DC' , name: 'District Of Columbia' },
	        		{ value: 'FM' , name: 'Federated States Of Mi...' },
	        		{ value: 'FL' , name: 'Florida' },
	        		{ value: 'GA' , name: 'Georgia' },
	        		{ value: 'GU' , name: 'Guam' },
	        		{ value: 'HI' , name: 'Hawaii' },
	        		{ value: 'ID' , name: 'Idaho' },
	        		{ value: 'IL' , name: 'Illinois' },
	        		{ value: 'IN' , name: 'Indiana' },
	        		{ value: 'IA' , name: 'Iowa' },
	        		{ value: 'KS' , name: 'Kansas' },
	        		{ value: 'KY' , name: 'Kentucky' },
	        		{ value: 'LA' , name: 'Louisiana' },
	        		{ value: 'ME' , name: 'Maine' },
	        		{ value: 'MH' , name: 'Marshall Islands' },
	        		{ value: 'MD' , name: 'Maryland' },
	        		{ value: 'MA' , name: 'Massachusetts' },
	        		{ value: 'MI' , name: 'Michigan' },
	        		{ value: 'MN' , name: 'Minnesota' },
	        		{ value: 'MS' , name: 'Mississippi' },
	        		{ value: 'MO' , name: 'Missouri' },
	        		{ value: 'MT' , name: 'Montana' },
	        		{ value: 'NE' , name: 'Nebraska' },
	        		{ value: 'NV' , name: 'Nevada' },
	        		{ value: 'NH' , name: 'New Hampshire' },
	        		{ value: 'NJ' , name: 'New Jersey' },
	        		{ value: 'NM' , name: 'New Mexico' },
	        		{ value: 'NY' , name: 'New York' },
	        		{ value: 'NC' , name: 'North Carolina' },
	        		{ value: 'ND' , name: 'North Dakota' },
	        		{ value: 'MP' , name: 'Northern Mariana Islan...' },
	        		{ value: 'OH' , name: 'Ohio' },
	        		{ value: 'OK' , name: 'Oklahoma' },
	        		{ value: 'OR' , name: 'Oregon' },
	        		{ value: 'PW' , name: 'Palau' },
	        		{ value: 'PA' , name: 'Pennsylvania' },
	        		{ value: 'PR' , name: 'Puerto Rico' },
	        		{ value: 'RI' , name: 'Rhode Island' },
	        		{ value: 'SC' , name: 'South Carolina' },
	        		{ value: 'SC' , name: 'South Dakota' },
	        		{ value: 'TN' , name: 'Tennessee' },
	        		{ value: 'TX' , name: 'Texas' },
	        		{ value: 'UT' , name: 'Utah' },
	        		{ value: 'VT' , name: 'Vermont' },
	        		{ value: 'VI' , name: 'Virgin Islands' },
	        		{ value: 'VA' , name: 'Virginia' },
	        		{ value: 'WA' , name: 'Washington' },
	        		{ value: 'WV' , name: 'West Virginia' },
	        		{ value: 'WI' , name: 'Wisconsin' },
	        		{ value: 'WY' , name: 'Wyoming' }
	        	];
	        	
	        	var CAStates = [
	        		{ value: 'AB' , name: 'Alberta' },
	        		{ value: 'BC' , name: 'British Columbia' },
	        		{ value: 'MB' , name: 'Manitoba' },
	        		{ value: 'NB' , name: 'New Brunswick' },
	        		{ value: 'NF' , name: 'Newfoundland' },
	        		{ value: 'NT' , name: 'Northwest Territories' },
	        		{ value: 'NS' , name: 'Nova Scotia' },
	        		{ value: 'NU' , name: 'Nunavut' },
	        		{ value: 'ON' , name: 'Ontario' },
	        		{ value: 'PE' , name: 'Prince Edward Island' },
	        		{ value: 'QC' , name: 'Quebec' },
	        		{ value: 'SK' , name: 'Saskatchewan' },
	        		{ value: 'YT' , name: 'Yukon' }
	        	];
	        	
	        	var UKProvinces =  {
	        	    England: [
	        	      {value: 'Avon', name: 'Avon'},
	        	      {value: 'Bedfordshire', name: 'Bedfordshire'},
	        	      {value: 'Berkshire', name: 'Berkshire'},
	        	      {value: 'Buckinghamshire', name: 'Buckinghamshire'},
	        	      {value: 'Cambridgeshire', name: 'Cambridgeshire'},
	        	      {value: 'Cheshire', name: 'Cheshire'},
	        	      {value: 'Cleveland', name: 'Cleveland'},
	        	      {value: 'Cornwall', name: 'Cornwall'},
	        	      {value: 'Cumbria', name: 'Cumbria'},
	        	      {value: 'Derbyshire', name: 'Derbyshire'},
	        	      {value: 'Devon', name: 'Devon'},
	        	      {value: 'Dorset', name: 'Dorset'},
	        	      {value: 'Durham', name: 'Durham'},
	        	      {value: 'East Sussex', name: 'East Sussex'},
	        	      {value: 'Essex', name: 'Essex'},
	        	      {value: 'Gloucestershire', name: 'Gloucestershire'},
	        	      {value: 'Hampshire', name: 'Hampshire'},
	        	      {value: 'Herefordshire', name: 'Herefordshire'},
	        	      {value: 'Hertfordshire', name: 'Hertfordshire'},
	        	      {value: 'IOM', name: 'Isle of Man'},
	        	      {value: 'Isle of Wight', name: 'Isle of Wight'},
	        	      {value: 'Kent', name: 'Kent'},
	        	      {value: 'Lancashire', name: 'Lancashire'},
	        	      {value: 'Leicestershire', name: 'Leicestershire'},
	        	      {value: 'Lincolnshire', name: 'Lincolnshire'},
	        	      {value: 'London', name: 'London'},
	        	      {value: 'Merseyside', name: 'Merseyside'},
	        	      {value: 'Middlesex', name: 'Middlesex'},
	        	      {value: 'Norfolk', name: 'Norfolk'},
	        	      {value: 'Northamptonshire', name: 'Northamptonshire'},
	        	      {value: 'Northumberland', name: 'Northumberland'},
	        	      {value: 'North Humberside', name: 'North Humberside'},
	        	      {value: 'North Yorkshire', name: 'North Yorkshire'},
	        	      {value: 'Nottinghamshire', name: 'Nottinghamshire'},
	        	      {value: 'OOxfordshireXF', name: 'Oxfordshire'},
	        	      {value: 'Rutland', name: 'Rutland'},
	        	      {value: 'Shropshire', name: 'Shropshire'},
	        	      {value: 'Somerset', name: 'Somerset'},
	        	      {value: 'South Humberside', name: 'South Humberside'},
	        	      {value: 'South Yorkshire', name: 'South Yorkshire'},
	        	      {value: 'Staffordshire', name: 'Staffordshire'},
	        	      {value: 'Suffolk', name: 'Suffolk'},
	        	      {value: 'Surrey', name: 'Surrey'},
	        	      {value: 'Tyne and Wear', name: 'Tyne and Wear'},
	        	      {value: 'Warwickshire', name: 'Warwickshire'},
	        	      {value: 'West Midlands', name: 'West Midlands'},
	        	      {value: 'West Sussex', name: 'West Sussex'},
	        	      {value: 'West Yorkshire', name: 'West Yorkshire'},
	        	      {value: 'Wiltshire', name: 'Wiltshire'},
	        	      {value: 'Worcestershire', name: 'Worcestershire'}
	        	  ],
	        	  Wales: [
	        	      {value: 'Clwyd', name: 'Clwyd'},
	        	      {value: 'Dyfed', name: 'Dyfed'},
	        	      {value: 'Gwent', name: 'Gwent'},
	        	      {value: 'Gwynedd', name: 'Gwynedd'},
	        	      {value: 'Mid Glamorgan', name: 'Mid Glamorgan'},
	        	      {value: 'Powys', name: 'Powys'},
	        	      {value: 'South Glamorgan', name: 'South Glamorgan'},
	        	      {value: 'West Glamorgan', name: 'West Glamorgan'}
	        	  ],
	        	  Scotland: [
	        	      {value: 'Aberdeenshire', name: 'Aberdeenshire'},
	        	      {value: 'Angus', name: 'Angus'},
	        	      {value: 'Argyll', name: 'Argyll'},
	        	      {value: 'Ayrshire', name: 'Ayrshire'},
	        	      {value: 'Banffshire', name: 'Banffshire'},
	        	      {value: 'Berwickshire', name: 'Berwickshire'},
	        	      {value: 'Bute', name: 'Bute'},
	        	      {value: 'Caithness', name: 'Caithness'},
	        	      {value: 'Clackmannanshire', name: 'Clackmannanshire'},
	        	      {value: 'Dumfriesshire', name: 'Dumfriesshire'},
	        	      {value: 'Dunbartonshire', name: 'Dunbartonshire'},
	        	      {value: 'East Lothian', name: 'East Lothian'},
	        	      {value: 'Fife', name: 'Fife'},
	        	      {value: 'Inverness-shire', name: 'Inverness-shire'},
	        	      {value: 'Kincardineshire', name: 'Kincardineshire'},
	        	      {value: 'Kinross-shire', name: 'Kinross-shire'},
	        	      {value: 'Kirkcudbrightshire', name: 'Kirkcudbrightshire'},
	        	      {value: 'Lanarkshire', name: 'Lanarkshire'},
	        	      {value: 'Midlothian', name: 'Midlothian'},
	        	      {value: 'Moray', name: 'Moray'},
	        	      {value: 'Nairnshire', name: 'Nairnshire'},
	        	      {value: 'Orkney', name: 'Orkney'},
	        	      {value: 'Peeblesshire', name: 'Peeblesshire'},
	        	      {value: 'Perthshire', name: 'Perthshire'},
	        	      {value: 'Renfrewshire', name: 'Renfrewshire'},
	        	      {value: 'Ross-shire', name: 'Ross-shire'},
	        	      {value: 'Roxburghshire', name: 'Roxburghshire'},
	        	      {value: 'Selkirkshire', name: 'Selkirkshire'},
	        	      {value: 'Shetland', name: 'Shetland'},
	        	      {value: 'Stirlingshire', name: 'Stirlingshire'},
	        	      {value: 'Sutherland', name: 'Sutherland'},
	        	      {value: 'West Lothian', name: 'West Lothian'},
	        	      {value: 'Wigtownshire', name: 'Wigtownshire'}
	        	  ],
	        	  'Northern Ireland': [
	        	      {value: 'Antrim', name: 'Antrim'},
	        	      {value: 'Armagh', name: 'Armagh'},
	        	      {value: 'Down', name: 'Down'},
	        	      {value: 'Fermanagh', name: 'Fermanagh'},
	        	      {value: 'Londonderry', name: 'Londonderry'},
	        	      {value: 'Tyrone', name: 'Tyrone'}
	        	  ]
	};
	
    jQuery.validator.addMethod(
            "zip",
            function(value, element) {
                return this.optional(element) || (/^[0-9A-Z]+$/i.test(element.value));
            },
            "Zip code is invalid"
    );
    
    jQuery.validator.addMethod(
            "phoneFormat",
            function(value, element) {
                return this.optional(element) || (/^\+*[-0-9\ \(\)]+$/.test(element.value));
            },
            "Phone is invalid"
    );

    $("#shipinfo").validate({

        rules: {

            shipFirstname: {
                required: true
            }

            ,shipLastname: {
                required: true
            }

            ,shipAddress1: {
                required: true
            }

            ,shipCity: {
                required: true
            }

            ,shipState: {
                required: function () {return $('#shipCountry').val() in {'CA':'', 'US':'', 'UK':''}}
            }

            ,shipZip: {
                required: true
                ,zip :true
            }

            ,shipPhone: {
                required: true
                ,phoneFormat: true
            }


            ,shipEmail: {
                required: true,
                email: true
            }

        }

        ,messages: {

            shipFirstname: {
                required: '<img src="/img/error.gif" hspace="2" title="This field is required"><br><span style="color: red">This field is required</span>'
            }

            ,shipLastname: {
                required: '<img src="/img/error.gif" hspace="2" title="This field is required"><br><span style="color: red">This field is required</span>'
            }

            ,shipAddress1: {
                required: '<img src="/img/error.gif" hspace="2" title="This field is required"><br><span style="color: red">This field is required</span>'
            }

            ,shipCity: {
                required: '<img src="/img/error.gif" hspace="2" title="This field is required"><br><span style="color: red">This field is required</span>'
            }

            ,shipState: {
                required: '<img src="/img/error.gif" hspace="2" title="This field is required"><br><span style="color: red">This field is required</span>'
            }

            ,shipZip: {
                required: '<img src="/img/error.gif" hspace="2" title="This field is required"><br><span style="color: red">This field is required</span>'
                ,zip :'<img src="/img/error.gif" hspace="2" title="Zip code is invalid"><br><span style="color: red">Zip code is invalid</span>'
            }

            ,shipPhone: {
                required: '<img src="/img/error.gif" hspace="2" title="This field is required"><br><span style="color: red">This field is required</span>'
                ,phoneFormat: '<img src="/img/error.gif" hspace="2" title="The phone format is wrong"><br><span style="color: red">The phone format is wrong</span>'
            }

            ,shipEmail: {
                required: '<img src="/img/error.gif" hspace="2" title="This field is required"><br><span style="color: red">This field is required</span>',
                email: '<img src="/img/error.gif" hspace="2" title="E-mail is not valid"><br><span style="color: red">E-mail is not valid</span>'
            }

        }

    });
    
    $('#shipCountry').change(function(){
		var tmp = $('#shipState option:selected').val();
		var currentCountry = $(this).val();
		
		var options = '';
		var cnt;
		
		if (currentCountry == 'CA') {
			$('#shipState').replaceWith('<select name="shipState" id="shipState" class="select1"></select>');
			for (cnt = 0; cnt<CAStates.length; ++cnt)
			{
				options = options + '<option value="'+CAStates[cnt].value+'" {if $billState eq "'+CAStates[cnt].value+'"} selected{/if}>'+CAStates[cnt].name+'</option>' ;
			}
			$('#labelShipState').html('State*');
			$('#shipState').html(options);
		} else if (currentCountry == 'US'){
			$('#shipState').replaceWith('<select name="shipState" id="shipState" class="select1"></select>');
			for (cnt = 0; cnt<USStates.length; ++cnt)
			{
				options = options + '<option value="'+USStates[cnt].value+'" {if $billState eq "'+USStates[cnt].value+'"} selected{/if}>'+USStates[cnt].name+'</option>' ;
			}
			$('#labelShipState').html('State*');
			$('#shipState').html(options);
		} else if (currentCountry == 'UK'){
			$('#shipState').replaceWith('<select name="shipState" id="shipState" class="select1"></select>');
			for (province in UKProvinces)
			{
				options = options + '<optgroup label="' + province + '">';
				for (cnt = 0; cnt<UKProvinces[province].length; ++cnt)
				{
					options = options + '<option value="'+UKProvinces[province][cnt].value+'" {if $billState eq "'+UKProvinces[province][cnt].value+'"} selected{/if}>'+UKProvinces[province][cnt].name+'</option>' ;
				}
				options = options + '</optgroup>';
			}
			$('#labelShipState').html('Province*');
			$('#shipState').html(options);
		} else {
			$('#labelShipState').html('State/Province');
			$('#shipState').replaceWith('<input type="text" value="" name="shipState" id="shipState" class="input1">');
		}
		$('select#shipState option[value="' + tmp + '"]').attr('selected','selected');
	});
    
    $('#shipCountry').change();
});

