(function($) {
;({
	'sysparam' : {
		'version': '1.0'
		, 'null': null
	}
	
	, 'init_TicketForm': function() {
		$('#ticketForm').submit(function(event) {
			if ($.isBlank(this.name.value)) {
				event.preventDefault();
				alert('Please enter your name!');
				this.name.focus();
				return;
			}
			if ($.isBlank(this.email.value)) {
				event.preventDefault();
				alert('Please enter your e-mail address!');
				this.email.focus();
				return;
			}
			if (!$.isEmail(this.email.value)) {
				event.preventDefault();
				alert('The e-mail address you entered is not valid!');
				this.email.focus();
				return;
			}
			if ($.isBlank(this.phone.value)) {
				event.preventDefault();
				alert('Please enter your phone number!');
				this.phone.focus();
				return;
			}
			if (!$.isPhone(this.phone.value)) {
				event.preventDefault();
				alert('The phone number you entered is not valid!');
				this.phone.focus();
				return;
			}
			if (!$.isBlank(this.phone_ext.value) && !isNum(this.phone_ext.value)) {
				event.preventDefault();
				alert('The phone ext number you entered is not valid!');
				this.phone_ext.focus();
				return;
			}
			if ($.isBlank(this.serailnumber.value)) {
				event.preventDefault();
				alert('Please enter your serial number!');
				this.serailnumber.focus();
				return;
			}
			if (this.topicId.selectedIndex == 0) {
				event.preventDefault();
				alert('Please select your Help Topic!');
				this.serailnumber.focus();
				return;
			}
			if ($.isBlank(this.subject.value)) {
				event.preventDefault();
				alert('Please enter your help subject!');
				this.subject.focus();
				return;
			}
			if (this.operationsyateme.selectedIndex == 0) {
				event.preventDefault();
				alert('Please select your Operating System!');
				this.operationsyateme.focus();
				return;
			}
			if (this.securityinformation.selectedIndex == 0) {
				event.preventDefault();
				alert('Please select your Security Information!');
				this.securityinformation.focus();
				return;
			}
			if ($.isBlank(this.message.value)) {
				event.preventDefault();
				alert('Please enter your message!');
				this.message.focus();
				return;
			}
		});
	}
	
	, 'init_ContactForm': function() {
		$('#contactForm').submit(function(event) {
			if ($.isBlank(this.name.value)) {
				event.preventDefault();
				alert('Please enter your name!');
				this.name.focus();
				return;
			}
			if ($.isBlank(this.email.value)) {
				event.preventDefault();
				alert('Please enter your e-mail address!');
				this.email.focus();
				return;
			}
			if (!$.isEmail(this.email.value)) {
				event.preventDefault();
				alert('The e-mail address you entered is not valid!');
				this.email.focus();
				return;
			}
			if ($.isBlank(this.message.value)) {
				event.preventDefault();
				alert('Please enter your message!');
				this.message.focus();
				return;
			}
			if ($.isBlank(this.nos.value)) {
				event.preventDefault();
				alert('Please enter your answer!');
				this.nos.focus();
				return;
			}
		});
	}
	
	, 'init_UpgradeForm': function() {
		if ($('#upgradeForm').length == 0) {
			return;
		}
		$('#upgradeForm').submit(function(event) {
			if ($('input[name=paypal]:checked').val() == '0') {
				if ($.isBlank(this.fullname.value)) {
					event.preventDefault();
					alert('Please enter your card holder name!');
					this.fullname.focus();
					return;
				}
				if ($.isBlank(this.email.value)) {
					event.preventDefault();
					alert('Please enter your e-mail address!');
					this.email.focus();
					return;
				}
				if (!$.isEmail(this.email.value)) {
					event.preventDefault();
					alert('The e-mail address you entered is not valid!');
					this.email.focus();
					return;
				}
				if ($.isBlank(this.credit_card_number.value)) {
					event.preventDefault();
					alert('Please enter your credit card number!');
					this.credit_card_number.focus();
					return;
				}
				if (this.credit_card_number.value.length < 10) {
					event.preventDefault();
					alert(this.credit_card_number.value + ' is not a valid credit card number!');
					this.credit_card_number.focus();
					return;
				}
				if ($.isBlank(this.cvv.value)) {
					event.preventDefault();
					alert('Please enter your cvv number!');
					this.cvv.focus();
					return;
				}
				if (this.cvv.value.length < 3) {
					event.preventDefault();
					alert(this.cvv.value + ' is not a valid cvv number!');
					this.cvv.focus();
					return;
				}
			}
		});
		
		$('#ccvInfo').click(function(event) {
			event.preventDefault();
			openPopup($(this).attr('href'), 'ccvInfo', '550','620','yes');
		});
		
		function openPopup(url, winName, w, h, scroll){
			var left = (screen.width) ? (screen.width-w)/2 : 0;
			var top = (screen.height) ? (screen.height-h)/2 : 0;
			var settings = 'height='+h+',width='+w+',top='+top+',left='+left+',scrollbars='+scroll+',resizable';
			win = window.open(url, winName, settings);
		}
		
		// add tooltips
		$('a.moreInfo').tooltip({ 
			'track': true
			, 'delay': 0
			, 'showURL': false
			, 'showBody': " - "
			, 'bodyHandler': function() {
				var html = this.tooltipText;
				var content = this.tooltipText.split('-');
				if (content.length != 2) {
					return '';
				}
				if (content[0].indexOf('DuplicateFinder') != -1) {
					html = '<h3>' + content[0] + '</h3><div class="dfBox">' + content[1] + '</div>';
				} else if (content[0].indexOf('Duplicate Photo Finder') != -1) {
					html = '<h3>' + content[0] + '</h3><div class="dpfBox">' + content[1] + '</div>';
				}
				return html;
			}
			, 'fade': 250 
		});
		
		// calculate price
		$('#upgradeForm input[type=radio], #upgradeForm input[type=checkbox]').change(function(event) {
			updateBasketTotal();
		});
		
		function updateBasketTotal() {
			var quantity = $('#upgradeForm input[name=quantity]:checked').val();
			var price_map1 = $('#upgradeForm input[name=price_map1]').val().split(';');
			var price_map2 = $('#upgradeForm input[name=price_map2]').val().split(';');
			var price = 0;
			if ($('#upgradeForm input[name=twoyear]:checked').length == 1) {
				switch (quantity) {
					case '3':
						price = Number(price_map2[1]);
						break;
					case '5':
						price = Number(price_map2[2]);
						break;
					case '10':
						price = Number(price_map2[3]);
						break;
					default:
						price = Number(price_map2[0]);
						break;
				}
			} else {
				switch (quantity) {
					case '3':
						price = Number(price_map1[1]);
						break;
					case '5':
						price = Number(price_map1[2]);
						break;
					case '10':
						price = Number(price_map1[3]);
						break;
					default:
						price = Number(price_map1[0]);
						break;
				}
			}
			
			if ($('#upgradeForm input[name=dpf]:checked').length == 1) {
				price += 14.95;
			}
			price = Math.round(price * 100) / 100;
			$('#totalPrice').text(price);
		}
		updateBasketTotal();
	}
	
	, 'init_VersionHistory': function() {
		$('.toggleHistory a').click(function(event) {
			event.preventDefault();
			if ($(this).text().indexOf('Show') != -1) {
				$(this).text('Hide version history').parent().next('div').stop(true, true).slideDown(500);
			} else {
				$(this).text('Show version history').parent().next('div').stop(true, true).slideUp(500);
			}
		});
	}
	
	, 'initialize': function() {
		var site = this;
		$(document).ready(function() {
			$.each(site, function(fn_name, fn) {
				if (String(fn_name).indexOf('init_') == 0) {
					try {
						(site[fn_name])();
					} catch (err) {};
				}
			});
		});
	}
}).initialize();

})(jQuery);
