var submitAttempted = false;

$(document).ready(function() {
	$('.hoverable').bind('mouseover', function() {
		$(this).addClass('hover');
	});
	
	$('.hoverable').bind('mouseout', function() {
		$(this).removeClass('hover');
	});
	
	$('#uploadform').bind('submit', function() {
		submitAttempted = true;
		if (formCheck()) {
			return true;
		} else {
			alert('Please correct the highlighted fields.');
			return false;
		}
	});
	
	
	
	
	
	
	
	
	
	
	
	
	
	$.get('rest/categories.php', function(data) {
		fillSelectBox($('#primary_category'), data);
	});
	
	$('#primary_category').bind('change', function() {
		var value = $('option:selected', this).val();
		
		if (value != '') {
			$.get('rest/categories.php', { 'parent_id': value }, function(data) {
				if ($('//category', data).length > 0) {
					fillSelectBox($('#secondary_category'), data);
					$('#secondary_category_container').show();
				} else {
					$('#secondary_category_container').hide();
				}
			});
		}
		else {
			$('#secondary_category_container').hide();
		}
	});
	
	$('.selectTable INPUT[@type="checkbox"]').bind('change', selectRowClicked);
	$('#primary_image').bind('change', function() {
		if (!validateImage)
			alert('Please choose a valid image of the following types: .jpg, .png, .jpeg, .gif');
	});
	
	$(':text').bind('blur', triggerFormCheck);
	$('SELECT, :radio, :checkbox, :file').bind('change', triggerFormCheck);
	
	calculateCommission();
});

function fillSelectBox(box, data) {
	$(box).clearOptions();
	
	var options = [];
	options[options.length] = { value : '', text : 'Please select' };
	
	$('//category', data).each(function() {
		options[options.length] = { value : $(this).attr('id'), text : $(this).attr('name') };
	});
	
	for (var i = 0; i < options.length; i++) {
		$(box).addOption(options[i]);
	}
}

function selectRowClicked(e) {
	var checkbox = e.target;
	var row = $(checkbox).parents('TR').get(0);
	
	if (checkbox.checked) {
		$(row).addClass('selected');
		$('.contextual', row).each(function() {
			this.disabled = false;
		});
	}
	else {
		$(row).removeClass('selected');
		
		$('.contextual', row).each(function() {
			this.disabled = true;
			this.checked = false;
		});
	}
}

function getFieldLabel(field) {
	var fieldID = $(field).attr('id');
	var label = $('LABEL[@for=' + fieldID + ']').get(0);
	
	return label;
}

function validateImage() {
	return $.formValidation.validateImageFile($('#primary_image').val());
}

function triggerFormCheck() {
	if (submitAttempted) {
		formCheck();
	}
}

function markFieldInvalid(field) {
	$(field).addClass('invalidInput');
	$(getFieldLabel(field)).addClass('invalidInput');
}

function markFieldValid(field) {
	$(field).removeClass('invalidInput');
	$(getFieldLabel(field)).removeClass('invalidInput');
}

function formCheck() {
	var valid = $('form').validateFields(
		{
			onInvalid : markFieldInvalid,
			onValid : markFieldValid
		}
	);
	if ($('input.accepted').filter("INPUT[@checked]").length == 0) {
		$('#lblPaymentMethods').addClass('invalidInput');
		valid = false;
	} else {
		$('#lblPaymentMethods').removeClass('invalidInput');
	}
	
	if ($('input[@name="preferred"]').filter('INPUT[@checked]').length == 0) {
		$('#lblPreferredPayment').addClass('invalidInput');
		valid = false;
	} else {
		$('#lblPreferredPayment').removeClass('invalidInput');
	}
	
	if ($('input.new_used').filter("INPUT[@checked]").length == 0) {
		$('#lblNewUsed').addClass('invalidInput');
		valid = false;
	} else {
		$('#lblNewUsed').removeClass('invalidInput');
	}

	if ($('input#pickupOnly').attr('checked')) {
	
	} else {
//	if ($('input#pickupOnly').not(':checked')) {
		if ($('input.shipping_type').filter("INPUT[@checked]").length == 0) {
			$('#lblShippingType').addClass('invalidInput');
			valid = false;
		} else {
			$('#lblShippingType').removeClass('invalidInput');
		}
	} 

	
	if(!valid)
		$(':input').filter('.invalidInput').slice(0,1).focus();
	
	return valid;
}

function calculateCommission() {
	var amt = $('#price').val();
	var commission = $('#commission').val();
	var computed = 0.0;
	
	if ($.formValidation.validatePrice(amt) && $.formValidation.validatePercentage(commission)) {
		computed = parseFloat(amt) * (parseFloat(commission) / 100.0);
	}
	
	$('#computed').text(roundOff(computed, 2).toString());
}

function roundOff(num, places) {
	return CurrencyFormatted(num) 
}

function CurrencyFormatted(amount) {
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}

