function popupWindowScroll(url,width,height) {
  window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=' + width + ',height=' + height + ',screenX=150,screenY=150,top=150,left=150')
}
var address_selected = 0;
var last_called_from = '';
function activateCheckoutAddress(address_id, run_remove, called_from, address_type) {
	var tracker = 1;
	while(document.getElementById('address_container_' + tracker)) {
		if(tracker == address_id) {
			document.getElementById('address_container_' + tracker).className = 'address_container address_container_active';
			document.getElementById('edit_address_' + tracker).src = '/images/checkout/edit_large_dark_bg.gif';
			document.getElementById('choose_address_' + tracker).checked = true;			
			if(document.getElementById('remove_address_' + tracker)) {
				document.getElementById('remove_address_' + tracker).style.display = 'none';
			}			
			if(address_type == 'delivery') {
				if(document.getElementById('address_status_message_billing_' + tracker).style.display == 'none') {
					document.getElementById('address_status_message_delivery_' + tracker).style.display = 'inline';
					document.getElementById('address_status_message_billing_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_blank_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_both_' + tracker).style.display = 'none';
					if(document.getElementById('billing_same_no')) {
						document.getElementById('billing_same_no').checked = true;
					}
				} else {
					document.getElementById('address_status_message_billing_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_blank_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_delivery_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_both_' + tracker).style.display = 'inline';
					if(document.getElementById('billing_same_yes')) {
						document.getElementById('billing_same_yes').checked = true;
					}
				}
			} else if(address_type == 'billing') {
				if(document.getElementById('address_status_message_delivery_' + tracker).style.display == 'none') {
					document.getElementById('address_status_message_delivery_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_billing_' + tracker).style.display = 'inline';
					document.getElementById('address_status_message_blank_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_both_' + tracker).style.display = 'none';
					if(document.getElementById('billing_same_no')) {
						document.getElementById('billing_same_no').checked = true;
					}
				} else {
					document.getElementById('address_status_message_billing_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_blank_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_delivery_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_both_' + tracker).style.display = 'inline';
					if(document.getElementById('billing_same_yes')) {
						document.getElementById('billing_same_yes').checked = true;
					}
				}
			}
			if(document.getElementById('first_name')) {
				if(run_remove == 'yes' && last_called_from != 'edit') {
					new Ajax.Updater('edit_address_div', '/checkout/ajax_calls/edit_address.php', {    parameters: { action_type: 'remove_address_form' }, method: 'post', evalScripts:true, onComplete:function(transport) { eval(transport.responseText); }    }); 
					document.getElementById('checkout_add_new_address').className = 'right_arrow';
				}				
			}
		} else {
			document.getElementById('address_container_' + tracker).className = 'address_container';
			document.getElementById('edit_address_' + tracker).src = '/images/checkout/edit_large.gif';
			document.getElementById('choose_address_' + tracker).checked = false;			
			if(address_type == 'delivery') {
				if(document.getElementById('address_status_message_delivery_' + tracker).style.display == 'inline') {
					document.getElementById('address_status_message_delivery_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_billing_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_blank_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_both_' + tracker).style.display = 'none';
				} else if(document.getElementById('address_status_message_both_' + tracker).style.display == 'inline') {
					document.getElementById('address_status_message_delivery_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_billing_' + tracker).style.display = 'inline';
					document.getElementById('address_status_message_blank_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_both_' + tracker).style.display = 'none';
				} else {					
					document.getElementById('address_status_message_billing_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_blank_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_delivery_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_both_' + tracker).style.display = 'none';
				}				
			} else if(address_type == 'billing') {
				if(document.getElementById('address_status_message_billing_' + tracker).style.display == 'inline') {
					document.getElementById('address_status_message_delivery_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_billing_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_blank_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_both_' + tracker).style.display = 'none';
				} else if(document.getElementById('address_status_message_both_' + tracker).style.display == 'inline') {
					document.getElementById('address_status_message_delivery_' + tracker).style.display = 'inline';
					document.getElementById('address_status_message_billing_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_blank_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_both_' + tracker).style.display = 'none';
				} else {					
					document.getElementById('address_status_message_billing_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_blank_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_delivery_' + tracker).style.display = 'none';
					document.getElementById('address_status_message_both_' + tracker).style.display = 'none';
				}				
			}			
			if(document.getElementById('remove_address_' + tracker)) {
				document.getElementById('remove_address_' + tracker).style.display = 'inline';
			}
		}
		tracker++;
	}	
	last_called_from = called_from;
}
function activateDeliveryMethod(delivery_method_id) {
	var tracker = 1;
	while(document.getElementById('delivery_' + tracker)) {
		if(tracker == delivery_method_id) {
			document.getElementById('delivery_' + tracker).className = 'delivery_method_container delivery_method_container_active';
			document.getElementById('delivery_radio_' + tracker).checked = true;
			
		} else {
			document.getElementById('delivery_' + tracker).className = 'delivery_method_container';
			document.getElementById('delivery_radio_' + tracker).checked = false;
		}
		tracker++;
	}	
}
function deactivateAddresses() {
	var tracker = 1;
	while(document.getElementById('choose_address_' + tracker)) {
		if(document.getElementById('choose_address_' + tracker).checked) {
			address_selected = tracker;
			document.getElementById('choose_address_' + tracker).checked = false;
			document.getElementById('address_container_' + tracker).className = 'address_container';			
		}
		tracker++;
	}
}
function reselectAddress() {
	if(address_selected > 0) {
		document.getElementById('choose_address_' + address_selected).checked = true;
		document.getElementById('address_container_' + address_selected).className = 'address_container address_container_active';
	} else {		
		var dont_really_care_anymore = 1;		
		while(!document.getElementById('choose_address_' + dont_really_care_anymore)) {
			dont_really_care_anymore++;
		}		
		document.getElementById('choose_address_' + dont_really_care_anymore).checked = true;
		document.getElementById('address_container_' + dont_really_care_anymore).className = 'address_container address_container_active';		
	}
}
function checkAddressPage() {
	var tracker = 1;
	var address_chosen = 0;
	var num_addresses = 0;
	var num_errors = 0;
	while(document.getElementById('choose_address_' + tracker)) {
		if(document.getElementById('choose_address_' + tracker).checked) {
			address_chosen = 1;
		}
		tracker++;
	}
	num_addresses = parseInt(tracker)-parseInt(1);
	if(document.getElementById('first_name')) {
		if(document.getElementById('first_name').value == '') {
			num_errors++;
		}
	}
	if(document.getElementById('last_name')) {
		if(document.getElementById('last_name').value == '') {
			num_errors++;
		}
	}
	if(document.getElementById('postcode')) {
		if(document.getElementById('postcode').value == '') {
			num_errors++;
		}
	}
	if(document.getElementById('street_address')) {
		if(document.getElementById('street_address').value == '') {
			num_errors++;
		}
	}
	if(document.getElementById('city')) {
		if(document.getElementById('city').value == '') {
			num_errors++;
		}
	}
	if(document.getElementById('phone')) {
		if(document.getElementById('phone').value == '') {
			num_errors++;
		}
	}	
	if(address_chosen == 0) {
		if(num_addresses > 0 && num_errors == 6) {
			alert('Please choose an address from your addressbook, or fill in all the required fields to add a new address!');
			return false;
		} else {
			if (document.getElementById('action_type'))
			{
				if (document.getElementById('action_type').value='create_address')
				{
					return true
				}
			}
			else
			{
				alert('Please choose an address from your addressbook, or fill in all the required fields to add a new address!');
				return false;
			}
		}		
	} else {
		return true;
	}	
	return true;
}
function toggleGiftwrapMessageBox(row_id) {
	if(document.getElementById('text_' + row_id).className == 'text giftwrap_message giftwrap_message_faded') {
		document.getElementById('text_' + row_id).disabled = false;
		document.getElementById('text_' + row_id).className = 'text giftwrap_message';
		document.getElementById('checkbox_' + row_id).checked = true;
		if(document.getElementById('giftwrap_subtotal')) {
			var value_so_far = parseFloat(document.getElementById('giftwrap_subtotal').innerHTML);
			value_so_far = parseFloat(parseFloat(value_so_far) + parseFloat(2.5));
			value_so_far = value_so_far.toFixed(2);		
			document.getElementById('giftwrap_subtotal').innerHTML = value_so_far;
		}
	} else {
		document.getElementById('text_' + row_id).className = 'text giftwrap_message giftwrap_message_faded';
		document.getElementById('text_' + row_id).disabled = true;
		document.getElementById('checkbox_' + row_id).checked = false;
		if(document.getElementById('giftwrap_subtotal')) {
			var value_so_far = parseFloat(document.getElementById('giftwrap_subtotal').innerHTML);
			value_so_far = parseFloat(parseFloat(value_so_far) - parseFloat(2.5));
			value_so_far = value_so_far.toFixed(2);		
			document.getElementById('giftwrap_subtotal').innerHTML = value_so_far;
		}
	}
}
function checkoutBounce(link_url) {
	document.getElementById('checkout_bounce').value = link_url; 
	document.getElementById('cart_quantity').submit();
}
function clearupGiftwrapMessages() {
	var gwfrm = document.getElementById("checkout_options_form"); 
	var ta = gwfrm.getElementsByTagName("textarea"); 
	for (var i = 0; i < ta.length; i++) {
		if(document.getElementById(ta[i].getAttribute("id")).value == 'Enter your message (max 200 characters)') {
			document.getElementById(ta[i].getAttribute("id")).value = '';
		}
	}	
}
function clearupDeliveryMessage() {
	if(document.getElementById('delivery_comments')) {
		if(document.getElementById('delivery_comments').value == '-- Enter your delivery instructions (max 50 characters) --') {
			document.getElementById('delivery_comments').value = '';
		}
	}
	clearupGiftwrapMessages();
}
function checkDeliveryMethod() {
	var chosen_method = 'no';
	var i = 1;
	while (document.getElementById('delivery_radio_'+i))
	{
		if (document.getElementById('delivery_radio_'+i).checked == true) chosen_method = 'yes';
		i++;
	}
	if (chosen_method == 'no')
	{
		alert('You must select a delivery method');
		return false;
	}
	return true;
}
function updateAddressStatusMessage() {	
	if(document.getElementById('billing_same_yes').checked) {		
		var i = 1;
		while(document.getElementById('address_status_message_delivery_' + i)) {			
			if(document.getElementById('address_status_message_delivery_' + i).style.display == 'inline') {				
				document.getElementById('address_status_message_delivery_' + i).style.display = 'none';
				document.getElementById('address_status_message_both_' + i).style.display = 'inline';				
			} else {
				document.getElementById('address_status_message_delivery_' + i).style.display = 'none';
				document.getElementById('address_status_message_billing_' + i).style.display = 'none';
			}			
			i++;			
		}		
	} else if(document.getElementById('billing_same_no').checked) {
		var i = 1;
		while(document.getElementById('address_status_message_both_' + i)) {			
			if(document.getElementById('address_status_message_both_' + i).style.display == 'inline') {				
				document.getElementById('address_status_message_delivery_' + i).style.display = 'inline';
				document.getElementById('address_status_message_both_' + i).style.display = 'none';				
			}			
			i++;			
		}		
	}	
}
function checkPAFForm() {
	var error = '';
	if(document.getElementById('address').value == '' && document.getElementById('action_use').checked) {
		error = error + ' - Please choose an address from the options, or click the option to search for a new postcode';
	} else if(document.getElementById('action_search_again').checked && document.getElementById('postcode').value == '') {
		error = error + ' - Please enter a new postcode to lookup';
	}
	if(error == '') {
		return true;
	} else {
		alert(error);
		return false;
	}
}
function toggleNewPostcode(mode) {
	
	if(mode == 0) {
		
		document.getElementById('new_postcode').style.display = 'none';
		
	} else {
	
		if(document.getElementById('action_search_again').checked) {
			document.getElementById('new_postcode').style.display = 'block';
			document.getElementById('postcode').focus();
		} else {
			if(document.getElementById('postcode').value == '') {
				document.getElementById('new_postcode').style.display = 'none';
			}
		}
		
	}
}
function checkMarketingForm() {
	var error = '';
	if(document.getElementById('hearUs').value == '') {
		error = error + ' - Please tell us how you heard of us';
	}
	if(error == '') {
		return true;
	} else {
		alert(error);
		return false;
	}
}
function checkManualAddressForm() {
	var error = '';
	if(document.getElementById('firstname').value == '') {
		error = error + ' - Please enter a first name of a person at this address';
	}
	if(document.getElementById('lastname').value == '') {
		error = error + ' - Please enter a surname of a person at this address';
	}
	if(document.getElementById('house_number').value == '') {
		error = error + ' - Please enter the house name or number for this address';
	}
	if(document.getElementById('street_address1').value == '') {
		error = error + ' - Please enter the first line of this address';
	}
	if(document.getElementById('city').value == '') {
		error = error + ' - Please enter the town or city for this address';
	}
	if(document.getElementById('postcode').value == '') {
		error = error + ' - Please enter the postcode for this address';
	}	
	if(error == '') {
		return true;
	} else {
		alert(error);
		return false;
	}
}
function focusAddress(address_container_id, toggle_radio) {
	var i = 1;
	
	while(document.getElementById('address_container_' + i)) {
		
			document.getElementById('address_container_' + i).className = 'address_container';
			if(toggle_radio == 1) {
				document.getElementById('choose_address_' + i).checked = false;
			}
			
		
		i++;
	}
	
	document.getElementById('address_container_' + address_container_id).className = 'address_container address_container_active';
	
	if(toggle_radio == 1) {
		document.getElementById('choose_address_' + address_container_id).checked = true;
	}
	
}
function toggleTitle() {
	if(document.getElementById('title').value == 'Other') {		
		document.getElementById('title_other_wrapper').style.display = 'inline';
		document.getElementById('title_other').focus();
	} else {
		document.getElementById('title_other_wrapper').style.display = 'none';
	}
}var selected;
//Function written by Darren Ross as part of the multiple giftwrap functionality. It is used to add/remove the giftwrap message text areas and drop-downs on the form depending on whether you click its corresponding checkbox.
function blocking(nr,state)
{
	if (document.layers)
	{
		//Other browsers
		if (state == null) 	vista = (document.layers[nr].display == 'none') ? 'block' : 'none';
		else vista = state;
		document.layers[nr].display = vista;
	}
	else if (document.all)
	{
		//Explorer code
		if (state == null) 	vista = (document.all[nr].style.display == 'none') ? 'block' : 'none';
		else vista = state;
		document.all[nr].style.display = vista;
	}
	else if (document.getElementById)
	{
		//Firefox code
		if (state == null) 	vista = (document.getElementById(nr).style.display == 'none') ? 'block' : 'none';
		else vista = state;
		document.getElementById(nr).style.display = vista;
	}
}
function getElement(psID) {
	if(document.all) {
		return document.all[psID];
	} else {
		return document.getElementById(psID);
	}
}
function changeCardType() {
    cardSelected = getElement('protx_direct_cc_type').options[getElement('protx_direct_cc_type').selectedIndex].value;
		if (cardSelected == 'SOLO' || cardSelected == 'SWITCH') blocking('protx_direct_cc_issue_div','block');
		else blocking('protx_direct_cc_issue_div','none');
		if (cardSelected == 'SWITCH') blocking('protx_direct_cc_start_div','block');
		else {
			blocking('protx_direct_cc_start_div','none');
			getElement('protx_direct_cc_start_month').selectedIndex = 0;
			getElement('protx_direct_cc_start_year').selectedIndex = 0;
		}

}

function rowOverEffect(object) {
  if (object.className == 'moduleRow') object.className = 'moduleRowOver';
}

function rowOutEffect(object) {
  if (object.className == 'moduleRowOver') object.className = 'moduleRow';
}
function selectRowEffectPayment(object, buttonSelect) {
  if (!selected) {
    if (document.getElementById) {
      selected = document.getElementById('defaultSelected');
    } else {
      selected = document.all['defaultSelected'];
    }
  }

  if (selected) selected.className = 'moduleRow';
  object.className = 'moduleRowSelected';
  selected = object;

// one button is not an array
  if (document.payment_choice.payment[0]) {
    document.payment_choice.payment[buttonSelect].checked=true;
  } else {
    document.payment_choice.payment.checked=true;
  }
}
function selectRowEffectDetails(object, buttonSelect) {
  if (!selected) {
    if (document.getElementById) {
      selected = document.getElementById('defaultSelected');
    } else {
      selected = document.all['defaultSelected'];
    }
  }

  if (selected) selected.className = 'moduleRow';
  object.className = 'moduleRowSelected';
  selected = object;

// one button is not an array
  if (document.checkout_address.shipping[0]) {
    document.checkout_address.shipping[buttonSelect].checked=true;
  } else {
    document.checkout_address.shipping.checked=true;
  }
}
