function switchCCFields() {
    if(document.registerfrm.paymentType){
	if (document.registerfrm.paymentType.value == 'paypal') {
	    document.getElementById('card_info').style.display = 'none';
	    document.getElementById('missing_and_invalid_fields').style.display = 'none';
	    document.getElementById('place_order_button').style.display = 'none';
	    $('place_order_button').setStyle("display:none");
	    document.getElementById('paypal_order_button').style.display = 'inline';
	} else {
	    document.getElementById('card_info').style.display = '';
	    document.getElementById('missing_and_invalid_fields').style.display = '';
	    $('place_order_button').setStyle("display:inline");
	    document.getElementById('place_order_button').style.display = 'inline';
	    document.getElementById('paypal_order_button').style.display = 'none';
	}
    }
}

function setAction(func) {
    frm = document.shoppingcart;
    frm.action.value = func;
    frm.submit();
}

function deleteItem(barcode_id,promotion) {
    if(promotion == 'PROMO' || promotion == 'Promo'){
	updateCartQuantityImpl(barcode_id,0,1);
    } else {
	var qtyDropdown = document.getElementById('qty_' + barcode_id);
	qtyDropdown.value = 0;
	updateCartQuantity(barcode_id);
    }
}

function adjustShippingMethod(cost, promoCode, user, time_entered) {
    overrideShipingCost(cost);
}

function number_format(a, b) {
    var c = '.';
    var d = ',';

    a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
    e = a + '';
    f = e.split('.');
    if (!f[0]) f[0] = '0';
    if (!f[1]) f[1] = '';
    if (f[1].length < b) {
        g = f[1];
        for (i = f[1].length + 1; i <= b; i++) {
            g += '0';
        }
        f[1] = g;
    }
    if (d != '' && f[0].length > 3) {
        h = f[0];
        f[0] = '';
        for (j = 3; j < h.length; j += 3) {
            i = h.slice(h.length - j, h.length - j + 3);
            f[0] = d + i + f[0] + '';
        }
        j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
        f[0] = j + f[0];
    }
    c = (b <= 0) ? '': c;
    return f[0] + c + f[1];
}

function getTotalPrice(cost, merchandise, tax, discount) {
    var total = parseFloat(cost) + parseFloat(merchandise) + parseFloat(tax) - parseFloat(discount);
    return number_format(total, 2);
}

function overrideShipingCost(cost) {
    var merchandise_source = document.getElementById('merchandise_source').innerHTML;
    var merchandise_target = document.getElementById('merchandise_target').innerHTML;

    var discountHtml = document.getElementById('discount');
    var cart_discount_html = document.getElementById('cart_discount');
    var taxHtml = document.getElementById('tax');
    var taxRateHtml = document.getElementById('taxRate');
    var tax = 0;
    var newTax = 0;
    var taxRate = 0;
    var discount = 0;

    if (taxHtml && taxHtml.innerHTML != '') {
        tax = taxHtml.innerHTML;
    }
    if (taxRateHtml && taxRateHtml.innerHTML != '') {
        taxRate = taxRateHtml.innerHTML;
    }

    if (discountHtml && discountHtml.innerHTML != '') {
        discount = discount + parseFloat(discountHtml.innerHTML);
    }

    if (cart_discount_html && cart_discount_html.innerHTML != '') {
        discount = discount + parseFloat(cart_discount_html.innerHTML);
    }
    if (tax != '' && taxRate > 0) {
        newTax = (parseFloat(cost) + parseFloat(merchandise_source) - parseFloat(discount)) * (parseFloat(taxRate));
        taxHtml.innerHTML = '$' + newTax.toFixed(2);
    }

    document.getElementById('shippingTotal').innerHTML = cost == "0.00" ? "FREE": '$' + cost;
    var totalPrice = getTotalPrice(cost, merchandise_source, newTax, discount);
    document.getElementById('total').innerHTML = '$' + totalPrice;
}

function stateDropdownChanged(stateDropdown, countryDropdownId, additionalChanges) {
    var canadianProvinces = new Array('AB','BC','MB','NB','NL','NT','NS','NU','ON','PE','SK','YT','QC');
    if(canadianProvinces.include(stateDropdown.value)) {
	$(countryDropdownId).value = "CAN";
	if(additionalChanges)
	    countryDropdownChanged();
    }
}

function hideSpecialOffer(ordernum,barcode_id,price,section_id){
    if(section_id == 2){
	$('bt_65965').disabled=true;
	$('bt_70033').disabled=true;
	$('bt_65967').disabled=true;
	$('bt_65966').disabled=true;
	
    }else{
	$('bt_49107').disabled=true;
    }
    $('no_thanks_button').disabled=true;
    
    var page = document.getElementById('main-nobg');
    var selectElement = document.getElementById('qty');
    var qty = 1;
    if( selectElement != null ) {
	qty = selectElement.options[selectElement.selectedIndex].value;
	if((qty == 'Quantity'|| qty == '')&& barcode_id != ''){
	    $('alert').show();
	    $('bt_49107').disabled=false;
	    $('no_thanks_button').disabled=false;
	    return false;
	}
    } 

    var url = '/ajax_requests/checkout_receipt_with_special_offer.php?ordernum=' + ordernum + '&barcode_id=' + barcode_id + '&price=' +price+ '&qty=' +qty;
    new Ajax.Updater(page, url, {asynchronous: true,
				 evalScripts: true,
				 onLoading: function(){$('special_offer_spiner_loading').show();
						       $('special-offer-products').setStyle("opacity:0.6;filter: alpha(opacity = 50);");                                                                              if (navigator.appName == "Microsoft Internet Explorer"){
							   $('special_offer_fm').setStyle("opacity:0.6;filter: alpha(opacity = 50);");
						       }},
				 onComplete: function(){if(barcode_id != ''){
				                           Omniture.trackAddSpecialOfferToCart(barcode_id,ordernum,qty);
				                       }
				 }
				});
}

function updatePoBoxes(){
    var countryDropdown = document.getElementsByName('country')[0];
    var countryName = countryDropdown[countryDropdown.selectedIndex].value;
    var address1 = document.getElementById('f-street');
    var address2 = document.getElementById('f-apartment');
    var po_box_message = document.getElementById('po_box_message');
    var po_box_message2 = document.getElementById('po_box_message2');

    var error = (address1.value.toLowerCase().match("box") && countryName != 'CAN' && countryName != 'USA') ? 1 : 0;
    var url = '/ajax_requests/po_box_international_message.php?fieldname=' + address1.name + '&address1=' + address1.value + '&error=' + error + '&country_name=' + countryName + '&page=' + (window.location.href.indexOf('checkout_billing.php') != -1 ? 'billing' : 'shipping');
    new Ajax.Updater(po_box_message, url, {asynchronous: true,evalScripts: true});

    error = (address2.value.toLowerCase().match("box") && countryName != 'CAN' && countryName != 'USA') ? 1 : 0;
    url = '/ajax_requests/po_box_international_message.php?fieldname=' + address2.name + '&address2=' + address2.value + '&error=' + error + '&country_name=' + countryName + '&page=' + (window.location.href.indexOf('checkout_billing.php') != -1 ? 'billing' : 'shipping');
    new Ajax.Updater(po_box_message2, url, {asynchronous: true,evalScripts: true});
}

function deleteFromshoppingCartPaypalError(){
    var po_box_message = $('paypal_error_clear');
    var url = '/ajax_requests/po_box_international_message.php?paypal_error=clear';
    new Ajax.Updater(po_box_message, url, {asynchronous: true,evalScripts: true});
}

function countryDropdownChanged() {
    var countryDropdown = document.getElementsByName('country')[0];
    var countryName = countryDropdown[countryDropdown.selectedIndex].value;
    var div = document.getElementById('shipping_address_checkbox_div');
    var title = document.getElementById('h2-header');
    var countryLabel = document.getElementById('label-state');
    var phone = document.getElementById('f-tel');
    var phoneLabel = document.getElementById('label-phone');
    
    updatePoBoxes();
    
    if (countryName == 'USA') {
	phoneLabel.className = "";
        phoneLabel.style.color = "#333333";
	phoneLabel.innerHTML = 'Phone <small>(optional)</small>';
    } else {
        phoneLabel.className = "req";
        phoneLabel.innerHTML = 'Phone';
        if (phone.value != "") {
	    phoneLabel.style.color = "#333333";
	    phoneLabel.className = "";
        }
    }
     
    if (countryName != 'USA' && countryName != 'CAN') {
        checkbox = document.getElementById('f-use_shipping_address');
        if (checkbox) {
            checkbox.checked = true;
        }
        if (div) {
            div.style.visibility = 'hidden';
        }
	title.innerHTML = 'Billing & Shipping Information';
        countryLabel.className = "";
    } else {
        if (div) {
            div.style.visibility = 'visible';
        }
        title.innerHTML = 'Billing Information';
        countryLabel.className = "req";
    }
}

function updateShoppingBagCount() {
    var numItems = getValueFromCookie('num_items_in_cart');
    var currentPage = location.href;

    if (numItems == 0 || currentPage.indexOf('checkout_receipt.php') > 0) {
	var quantity = '0 items';
    } else {
	var quantity =  numItems + ' item' + (numItems != 1 ? 's': '');
    }
    $('shopping-bag-count').innerHTML = quantity;
}

function isCartPage() {
    if (location.href.indexOf('cart') == -1) {
        return "0";
    } else {
        return "1";
    }
}

function isCheckoutPayment() {
    if (location.href.indexOf('checkout_payment') == -1) {
        return "0";
    } else {
        return "1";
    }
}

function isCartEmpty() {
    var selects = $$('select.select_dropdown');
    for (var i = 0; i < selects.length; i++) {
        if ($F(selects[i]) != 0) {
            return false;
        }
    }
    return true;
}

function updateCartQuantity(barcode_id) {
    var price_select = document.getElementById('qty_' + barcode_id);
    var qty = parseInt(price_select.options[price_select.selectedIndex].value);
    if (barcode_id.indexOf('_') == -1) {
        if (document.getElementById('qty_' + barcode_id + '_PROMO')) {
            var price_select2 = document.getElementById('qty_' + barcode_id + '_PROMO');
            qty += parseInt(price_select2.options[price_select2.selectedIndex].value);
        }
    } else {
        if (document.getElementById('qty_' + barcode_id)) {
            var tmp_barcode = new Array();
            tmp_barcode = barcode_id.split('_');
            var price_select2 = document.getElementById('qty_' + tmp_barcode[0]);
            qty += parseInt(price_select2.options[price_select2.selectedIndex].value);
        }

    }
    updateCartQuantityImpl(barcode_id,qty,0);
}
    
function updateCartQuantityImpl(barcode_id,qty,promotion){

    if (isCartEmpty()) {
        var target = 'main-nobg';
        var onLoadFunc = function(request) {};
        var onCompleteFunc = function(request) {
            updateShoppingBagCount();
        };
    } else {
        var target = 'shopping_cart_table_wrapper';
        var spinner_id = 'update_spinner_' + barcode_id;
        var onLoadFunc = function(request) {
            Element.show(spinner_id)
//	    shadeGoogleCheckoutButton();
        };
        var onCompleteFunc = function(request) {
            updateShoppingBagCount();
            reloadShippingTypes();
	    updateGoogleCheckoutButton();
	    var a = $('merchandise_source').childNodes;	
	    $('paymentAmountID').value = a[0].nodeValue;
	    showRemovedItemsPopup();
        };
    }
    var url = 'ajax_requests/update_cart_quantity.php?barcode_id=' + barcode_id + '&qty=' + qty + '&cart=' + isCartPage()+'&promotion='+promotion;
    new Ajax.Updater(target, url, {
        onLoading: onLoadFunc,
        onComplete: onCompleteFunc,
        asynchronous: true,
        evalScripts: true
    });
}

function reloadShippingTypes() {
    var target = 'shipping_type';
    var url = 'ajax_requests/update_shipping_type.php';
    new Ajax.Updater(target, url, {
        asynchronous: true,
        evalScripts: true
    });
}

function shadeGoogleCheckoutButton() {
var googleButton = document.getElementById('google_checkout_button');
googleButton.src = googleButton.src.replace('google_checkout.gif','google_checkout_greyscale.gif');
googleButton.disabled = true;
}
function updateGoogleCheckoutButton() {
    var target = 'google-button';
    var url = 'ajax_requests/update_google_checkout_button.php';
    new Ajax.Updater(target, url, {
	asynchronous: true,
	evalScripts: true
    });    
}

function updateShippingMethodInCart(shipping_method_id) {
    var url = 'ajax_requests/update_shipping_method_in_cart.php';
    var pars = 'shipping_method_id=' + shipping_method_id;
    var myAjax = new Ajax.Request(url, {
        method: 'post',
        postBody: pars
    });
}

function updateNewsletterValue(t){
    var field = $('mailinglist');
    if(field){
	if(t.checked){
	    field.value = 1;
	}else{
	    field.value = 0;
	}
    }
}

function showPaypalErrorMessage(creditCard,paypalOFFSrc){
    if(getURLParam('e') === 't'){
	if(creditCard == "1"){
	    var error_message = $('paypal-error-message');
	    var paypal_form = $('paypal_form');
	    var paypal_image_off = $('paypal_image_off');
	    var or_button = $('or_button');
	    var cart_buttons = $('cart-buttons');
	    if(error_message && paypal_form){
		paypal_form.hide();
		error_message.show();
		error_message.setStyle("padding-bottom:10px;padding-right:16px;text-align:right;width:360px;");
		cart_buttons.setStyle("bottom:-65px;");
		or_button.src = or_button.src.replace(or_button.src,paypalOFFSrc);
		or_button.setStyle("margin:0 0 0 129px;");
	    }
	}else{
	    reloadCountryPaymentMethod("Y");
	}
    }
}

function showPaypalErrorMessageAndChangeStyle(){
    $$('div.cart-buttons')[0].setStyle("bottom:-65px;position:absolute;right:40px;text-align:right;");
    $$('div.paypal-error-message')[0].show();
}

function showRemovedItemsPopup() {
	var popupContent = $('removed_items_popup_content');
	if (popupContent != null ) {
	        AjaxPopup.showInlinePopup('removed_items_popup_content', 560, 0, '', 40);
		popupContent.remove(popupContent);
	}
}

function deleteMagazine(){
    document.getElementById('magazine_promo').style.display='none';
    new Ajax.Updater('magazine_promo', 'ajax_requests/delete_magazine.php', {asynchronous: true,evalScripts: true});
}

