function numbersonly(myfield, e, dec){
	var key;
	var keychar;
	if (window.event){
		key = window.event.keyCode;
	}else if (e){
		key = e.which;
	}else{
		return true;
	}
	keychar = String.fromCharCode(key);
	// control keys
	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ){
		return true;
	// numbers
	}else if ((("0123456789").indexOf(keychar) > -1)){
		return true;
	// decimal point jump
	}else if (dec && (keychar == ".")){	
		myfield.form.elements[dec].focus();
		return false;
	}else{
		return false;
	}
}

/* take a number and return it with the correct ending (st, nd, rd, th) */
function ordinalize(number){
		switch (parseInt(number) % 10) {
			case  1: return number + "st";
			case  2: return number + "nd";
			case  3: return number + "rd";
			default: return number + "th";
		}
	}

/* Original setClassName function - toggles the classname of a div based on a checkbox */
function setClassName(element){
	if(element.parentNode.className.indexOf('show') > 0){
		if(element.checked){
			element.parentNode.className = 'property_show';
		}else{
			element.parentNode.className += ' selected_thumbnail';
		}
	}else if(element.checked && element.parentNode.className.indexOf('selected') < 0) {
		element.parentNode.className += ' selected_thumbnail';
	} else {
		element.parentNode.className = element.parentNode.className.substring(0, element.parentNode.className.indexOf('selected') - 1);
	}
}

/* Extended setClassName function - toggles the classname of a div based on a checkbox however will
toggle between "originalClassname" and "originalClassname additionalClassName" rather than being hard coded */
function setClassNameEx( checkBox, originalClassName, additionalClassName, container ) {
	if(typeof container == 'undefined'){
		var container = checkBox.parentNode;
	}else{
		var container = $(container);
	}
	if( container.className.indexOf(originalClassName) >= 0 ) {
			container.className = checkBox.checked ?
				originalClassName + ' ' + additionalClassName : 
				originalClassName;
	}
}

function setSavePayment(box_count, area_amount, balance, credit){
	if(credit == 0){
		var field = 'invoice_total_plus';
	}else{
		var field = 'paid_amount';
	}
	var total = 0;
	for(i=0; i<box_count; i++){
		if($('commission_amount_' + i).value != ''){
			total += parseFloat($('commission_amount_' + i).value);
		}
	}
	$('percentage_photographer').value = total;
	$('percentage_area').value = Math.round((area_amount - parseFloat($('percentage_photographer').value)) * 100.0)/100.0;
	total += parseFloat($('percentage_area').value) + 
		parseFloat($('percentage_state').value) + 
		parseFloat($('percentage_master').value) + 
		parseFloat($('percentage_advertising').value) + 
		parseFloat($('percentage_magazine').value) + 
		parseFloat($('credited_amount').value);
	if(parseFloat(balance) > parseFloat($('payment_amount').value)){
		for(i=0; i<box_count; i++){
			$('commission_amount_' + i).disabled = true;
			$('commission_payee_id_' + i).disabled = true;
			$('commission_task_id_' + i).disabled = true;
		}
		$('commission_alert').innerHTML = 'Commissions cannot be set until invoice has been paid in full.';
		$('commission_alert').style.display = 'block';
		$('save_button').disabled = false;
	}
	else if(parseFloat($('repay_frame_amount').value) > 0){
		for(i=0; i<box_count; i++){
			$('commission_amount_' + i).readOnly = true;
		}
		$('commission_alert').innerHTML = 'Commission fields locked until Signboard Frame balance is paid off';
		$('commission_alert').style.display = 'block';
		$('save_button').disabled = false;
	}else{
		if(parseFloat(balance) == parseFloat($('payment_amount').value)){
			for(i=0; i<box_count; i++){
				$('commission_amount_' + i).disabled = false;
				$('commission_payee_id_' + i).disabled = false;
				$('commission_task_id_' + i).disabled = false;
			}
			$('commission_alert').style.display = 'none';
		}
		if(parseFloat($('percentage_photographer').value) > parseFloat(area_amount)){
			$('save_button').disabled = true;
			$('commission_alert').innerHTML = 'Photographer commission is too high.';
			$('commission_alert').style.display = 'block';
		}else if(parseFloat($('payment_amount').value) - parseFloat($('invoice_balance').value) > 0){
			$('save_button').disabled = true;
			$('commission_alert').innerHTML = 'Payment amount is greater than invoice balance - payment cannot be saved.';
			$('commission_alert').style.display = 'block';
		}else if(Math.round(parseFloat(total)*100.0)/100.0 == parseFloat($(field).value) && parseFloat($('payment_amount').value) - parseFloat($('invoice_balance').value) == 0){
			$('save_button').disabled = false;
			$('commission_alert').style.display = 'none';
		}else{
			$('save_button').disabled = true;
		}
	}
}