


/****************************************************************************
 * getphoto 
 * function to update gift card on shopping cart page
 * update aug 8 2011 shawnj: 
 * - puts id in hidden field
 * - call page update to refresh cart
 *****************************************************************************/ 
function getphoto(e,i,site_url) {
    
    var url = site_url+'/shopping_cart/gift_card/';
    new Ajax.Updater(e, url, {
            method: 'post',
            parameters: {
                id:i.value
            },
            onSuccess: function(transport) {
                e.innerHTML = transport.responseText;                
                if(i.value != '') {
                    $('gift-card-add').addClassName('visible');
                } else {
                    $('gift-card-add').addClassName('invisible');
                }
            },
            onFailure: function() {
                e.innerHTML = 'Error!';
            }
        });
        
} // end getphoto()


function addGiftCard (i) {
    $('gc').value = i;    
    callUpdate();
}



function submitHeard(e, id, site_url)
{
    	var url = site_url+'/customers/heard/';
		new Ajax.Updater(e, url,
				{
					method: 'post',
                    parameters: 
					{
						val:e.value,
						id:id
					},
					onSuccess: function(transport)
					{
						e.innerHTML = transport.responseText;
					},
					onFailure: function()
					{
						e.innerHTML = 'Error!';
					}
				}
			);
}

function submitComment(e, id, site_url)
{
    	var url = site_url+'/customers/comment/';
		new Ajax.Updater(e, url,
				{
					method: 'post',
                    parameters: 
					{
						val:e.value,
						id:id
					},
					onSuccess: function(transport)
					{
						e.innerHTML = transport.responseText;
					},
					onFailure: function()
					{
						e.innerHTML = 'Error!';
					}
				}
			);
}


/******************************************************************************
 * getBillingRegion(i)
 * originally written by Bryan D early 2010
 * - fix for IE not updating innerHTML on select, allowing no regioncode on 
 *   checkout! shawn.jackson@webcanada.com oct 27 2010
 * - added puerto rico and APO codes to US list (SJ oct 2011)
 ******************************************************************************/
function getBillingRegion(i,site_url)
{
    var strOptions;
    var re = new RegExp("(\<select(.*?)\>)(.*?)(\<\/select\>)", "i");

    if (i=='CA') {
        
        strOptions= '<option value="">Select Billing Region</option><option value="52">Alberta</option><option value="53">British Columbia</option><option value="54">Manitoba</option><option value="55">New Brunswick</option><option value="56">Newfoundland</option><option value="58">Nova Scotia</option><option value="60">Ontario</option><option value="61">Prince Edward Island</option><option value="62">Quebec</option><option value="63">Saskatchewan</option>';
        $('blr').innerHTML = strOptions;
        
    } else if (i=='US') {
        
        strOptions = '<option value="">Select Billing Region</option><option value="1712">APO/FPO AA</option><option value="1710">APO/FPO AE</option><option value="1711">APO/FPO AP</option><option value="1">Alabama</option><option value="2">Alaska</option><option value="3">Arizona</option><option value="4">Arkansas</option><option value="5">California</option><option value="6">Colorado</option><option value="7">Connecticut</option><option value="8">Delaware</option><option value="9">District of Columbia</option><option value="10">Florida</option><option value="11">Georgia</option><option value="12">Hawaii</option><option value="13">Idaho</option><option value="14">Illinois</option><option value="15">Indiana</option><option value="16">Iowa</option><option value="17">Kansas</option><option value="18">Kentucky</option><option value="19">Louisiana</option><option value="20">Maine</option><option value="21">Maryland</option><option value="22">Massachusetts</option><option value="23">Michigan</option><option value="24">Minnesota</option><option value="25">Mississippi</option><option value="26">Missouri</option><option value="27">Montana</option><option value="28">Nebraska</option><option value="29">Nevada</option><option value="30">New Hampshire</option><option value="31">New Jersey</option><option value="32">New Mexico</option><option value="33">New York</option><option value="34">North Carolina</option><option value="35">North Dakota</option><option value="36">Ohio</option><option value="37">Oklahoma</option><option value="38">Oregon</option><option value="39">Pennsylvania</option><option value="1713">Puerto Rico</option><option value="40">Rhode Island</option><option value="41">South Carolina</option><option value="42">South Dakota</option><option value="43">Tennessee</option><option value="44">Texas</option><option value="45">Utah</option><option value="47">Virginia</option><option value="48">Washington</option><option value="50">Wisconsin</option><option value="51">Wyoming</option><option value="1712">APO/FPO AA</option><option value="1710">APO/FPO AE</option><option value="1711">APO/FPO AP</option>';
        $('blr').innerHTML = strOptions;
        
    } else {
        // no choice let's do the ajax'
        var url = site_url + '/customers/billing_region/';
        new Ajax.Updater('blr', url, {
					method: 'post',
                    parameters: {id:i},
            onSuccess: function(transport) {
						$('blr').innerHTML = transport.responseText;
					},
            onFailure: function() {
						$('blr').innerHTML = 'Error!';
					}
        });
        
				}
        
    
    //ie FIX:
    if($('blr').outerHTML) {
        $('blr').outerHTML = $('blr').outerHTML.replace(re, "$1"+strOptions+"$4");
}

} // end getBillingRegion()


/******************************************************************************
 * getShippingRegion(i)
 * originally written by Bryan D early 2010
 * - fix for IE not updating innerHTML on select, allowing no regioncode on 
 *   checkout! shawn.jackson@webcanada.com oct 27 2010
 * - added puerto rico and APO codes to US list (SJ oct 2011)
 ******************************************************************************/
function getShippingRegion(i,site_url)
{
    var strOptions;
    var re = new RegExp("(\<select(.*?)\>)(.*?)(\<\/select\>)", "i");

    if (i=='CA') {
        
        strOptions = '<option value="">Select Shipping Region</option><option value="52">Alberta</option><option value="53">British Columbia</option><option value="54">Manitoba</option><option value="55">New Brunswick</option><option value="56">Newfoundland</option><option value="58">Nova Scotia</option><option value="60">Ontario</option><option value="61">Prince Edward Island</option><option value="62">Quebec</option><option value="63">Saskatchewan</option>';
        $('slr').innerHTML = strOptions;
        
    } else if (i=='US') {
        
        strOptions = '<option value="">Select Shipping Region</option><option value="1712">APO/FPO AA</option><option value="1710">APO/FPO AE</option><option value="1711">APO/FPO AP</option><option value="1">Alabama</option><option value="2">Alaska</option><option value="3">Arizona</option><option value="4">Arkansas</option><option value="5">California</option><option value="6">Colorado</option><option value="7">Connecticut</option><option value="8">Delaware</option><option value="9">District of Columbia</option><option value="10">Florida</option><option value="11">Georgia</option><option value="12">Hawaii</option><option value="13">Idaho</option><option value="14">Illinois</option><option value="15">Indiana</option><option value="16">Iowa</option><option value="17">Kansas</option><option value="18">Kentucky</option><option value="19">Louisiana</option><option value="20">Maine</option><option value="21">Maryland</option><option value="22">Massachusetts</option><option value="23">Michigan</option><option value="24">Minnesota</option><option value="25">Mississippi</option><option value="26">Missouri</option><option value="27">Montana</option><option value="28">Nebraska</option><option value="29">Nevada</option><option value="30">New Hampshire</option><option value="31">New Jersey</option><option value="32">New Mexico</option><option value="33">New York</option><option value="34">North Carolina</option><option value="35">North Dakota</option><option value="36">Ohio</option><option value="37">Oklahoma</option><option value="38">Oregon</option><option value="39">Pennsylvania</option><option value="1713">Puerto Rico</option><option value="40">Rhode Island</option><option value="41">South Carolina</option><option value="42">South Dakota</option><option value="43">Tennessee</option><option value="44">Texas</option><option value="45">Utah</option><option value="47">Virginia</option><option value="48">Washington</option><option value="50">Wisconsin</option><option value="51">Wyoming</option>';
        $('slr').innerHTML = strOptions;
        
    } else {
        
        // no choice lets do the ajax
                var url = site_url+'/customers/shipping_region/';
        new Ajax.Updater('slr', url, {
					method: 'post',
                    parameters: {id:i},
            onSuccess: function(transport) {
						$('slr').innerHTML = transport.responseText;
					},
            onFailure: function() {
						$('slr').innerHTML = 'Error!';
					}
        });
        
				}
    
    //ie FIX:
    if($('slr').outerHTML) {
        $('slr').outerHTML = $('slr').outerHTML.replace(re, "$1"+strOptions+"$4");
    }

} // end getShippingRegion()
    

/******************************************************************************
 * disableShipping()
 * shawnj july 2011 
 * use billing checkbox 
 ******************************************************************************/
function disableShipping(y) {
    
	var shipping = $$('.shipping');
    if(y.checked == true) {
        for(i=0;i<shipping.length;i++){
            if(shipping[i].disabled == false) { 
                shipping[i].disabled = true 
		}
	}
        
    } else {
        for(i = 0; i < shipping.length; i++) {
            if(shipping[i].disabled == true) { 
                shipping[i].disabled = false 
		}
	}
    }
        //internationalShipping();

} // end disableShipping()

function checkValue(e) {
	var i = parseInt(e.value);
	if(i>1)
	{
            e.value = 1;
	} 
}


function checkCartValue(e) {
	var i = parseInt(e.value);
	if (i > 1) {
            e.value = 1;
	} else if (i == 0) {
            callUpdate();
        }
}

function checkWrap(q,e)
{
	var q = $(q);
	if(parseInt(e.value)>parseInt(q.value)) {
            e.value = q.value;	
	}
        callUpdate();
}

function openWrap(q,w,e) {
	var q = $(q);
	var w = $(w);
	if(e.checked==true) {
		w.disabled = false;
		w.value	= q.value;	
	}

	if(e.checked==false) {
		w.disabled = true;
		w.value	= 0;	
	}
        
        callUpdate();
}



function updateCheckout() {
	var mf = $('cartForm');
	mf.action = mf.action+'checkout/';
        mf.submit();
}

function checkInputProdQty(i) {
    if(parseInt(i.value) < 0) {
        i.value = (i.value)*(-1); 
    }
}

function checkCartInputProdQty(i) {
    if(parseInt(i.value)<0) {
        i.value = (i.value)*(-1); 
    }
    callUpdate();
}



function removeProduct(prodid) {
    $('qty_'+prodid).value = '0';
    callUpdate();
}
function removeWrap(prodid) {
    $('wrap_'+prodid).value = '0';
    callUpdate();
}

function callUpdate() {
    $('loading').addClassName('visible');
    document.cartForm.submit();    
}
