
//shortcuts
var $D = YAHOO.util.Dom;
var $ = $D.get;

function yellowFade(el){(new YAHOO.util.ColorAnim(el,{backgroundColor:{from:'#ffff99',to:'#ffffff'}},3.0)).animate();}

function Add2Cart(product_name,type_key,type_value,size_key,size_value) {
	// alert(product_name);
	// return false;
	
    // myArray = options_array.split(",");
    var charityElement = $('charity');
    // charityElement.name = 'product_options['+options_class+']';
    // $('add_to_cart').amount.value = '1';
    // $('add_to_cart').productid.value = productid;


	var typeElement = $('p_type');
	var sizeElement = $('p_size');
	
	typeElement.name = 'product_options['+type_key+']';
	sizeElement.name = 'product_options['+size_key+']';
	
	typeElement.value = type_value;
	sizeElement.value = size_value;

    var optionCounter;
    for (optionCounter = 0; optionCounter < charityElement.length; optionCounter++) {
        // if(optionCounter != 0) {
        //     var new_count = optionCounter - 1;
        //     charityElement.options[optionCounter].value = myArray[new_count];
        // }
        if(charityElement.options[optionCounter].selected){
            if(optionCounter == 0){
                alert('Please choose a charity');
            }
            else {
                add_to_cart(product_name);
            }
        }
    }
}

var update_cart = function(cart) {

    var thisForm = $('cartform');
    
    var strBody = "";

    var handleSuccess = function(o){
        if(o.responseText !== undefined){
            strBody += o.responseText;
            YAHOO.shop.container.panel1.setBody( strBody );
            YAHOO.widget.Overlay.windowResizeEvent.fire();
            update_mini_cart();
        }
    }
    
    var handleFailure = function(o){
        if(o.responseText !== undefined){
            errorString = "ERROR: Unable to update cart!\r\n\r\n";
            errorString += "Transaction id: " + o.tId + "\r\n";
            errorString += "HTTP status: " + o.status + "\r\n";
            errorString += "Status code message: " + o.statusText + "\r\n";
            alert(errorString);
        }
    }
    
    var callback = {
      success:handleSuccess,
      failure:handleFailure
    };
    
    YAHOO.util.Connect.setForm('cartform');
    YAHOO.shop.container.panel1.setBody("<div style=\"text-align:center;margin-bottom:15px;\"><h3>Updating your Shopping Cart ...</h3><h4>Please wait</h4><div style=\"padding:8px;\"><img src=\"/images/waiting.gif\" /></div></div>");
    YAHOO.shop.container.panel1.show();
	if(cart) {
		YAHOO.util.Connect.asyncRequest('POST','/shop/cart_stage.php?x=1', callback);
	}
	else {
		YAHOO.util.Connect.asyncRequest('POST','/shop/cart_stage.php', callback);
	}

}

var update_mini_cart = function() {
	
	if($('mini_cart')) {
    
	    var strBody = "";
    
	    var handleSuccess = function(o){
	        if(o.responseText !== undefined){
	            strBody += o.responseText;
				if(strBody == 0){
					$().innerHTML = 'Items: <em>0</em> &nbsp;Subtotal: <em>$0.00</em>';
				}
				else {
					$('mini_cart').innerHTML = strBody;
				}
	        }
	    }
    
	    var handleFailure = function(o){
	        if(o.responseText !== undefined){
	            errorString = "ERROR: Unable to update mini cart!\r\n\r\n";
	            errorString += "Transaction id: " + o.tId + "\r\n";
	            errorString += "HTTP status: " + o.status + "\r\n";
	            errorString += "Status code message: " + o.statusText + "\r\n";
	            alert(errorString);
	        }
	    }
    
	    var callback = {
	      success:handleSuccess,
	      failure:handleFailure
	    };
    
	    YAHOO.util.Connect.asyncRequest('GET', '/shop/minicart_stage.php', callback);
	
	}
    
}



var add_to_cart = function(product_name) {
	
	// var validated = FormValidation();
	var validated = true;
	
	if(validated) {
    
	    var strBody = "";

	    var handleSuccess = function(o){
	        if(o.responseText !== undefined){
	            strBody += o.responseText;
	            YAHOO.shop.container.panel1.setBody( strBody );
	            YAHOO.widget.Overlay.windowResizeEvent.fire();
	            update_mini_cart();
	        }
	    }
    
	    var handleFailure = function(o){
	        if(o.responseText !== undefined){
	            errorString = "ERROR: Unable to add to cart!\r\n\r\n";
	            errorString += "Transaction id: " + o.tId + "\r\n";
	            errorString += "HTTP status: " + o.status + "\r\n";
	            errorString += "Status code message: " + o.statusText + "\r\n";
	            alert(errorString);
	        }
	    }
    
	    var callback = {
	      success:handleSuccess,
	      failure:handleFailure
	    };
    
	    YAHOO.shop.container.panel1.setBody("<div style=\"text-align:center;margin-bottom:15px;\"><h3>Adding</h3><h3>\""+product_name+"\"</h3><h3>to your shopping cart ...</h3><h4>Please wait</h4><div style=\"padding:8px;\"><img src=\"/images/waiting.gif\" /></div></div>");
	    YAHOO.shop.container.panel1.show();
	    YAHOO.util.Connect.setForm('orderform');
	    YAHOO.util.Connect.asyncRequest('POST','/shop/cart_stage.php', callback);
	
	}

}

var remove_from_cart = function(product_name,productindex,cart) {
    if(confirm('Remove "'+product_name+'" from your shopping cart?')) {
        var strBody = "";
        var removeURL = '?mode=delete&productindex='+productindex;
        
        var handleSuccess = function(o){
            if(o.responseText !== undefined){
                strBody += o.responseText;
                YAHOO.shop.container.panel1.setBody( strBody );
                YAHOO.widget.Overlay.windowResizeEvent.fire();
                update_mini_cart();
            }
        }
        
        var handleFailure = function(o){
            if(o.responseText !== undefined){
                errorString = "ERROR: Unable to remove product from cart!\r\n\r\n";
                errorString += "Transaction id: " + o.tId + "\r\n";
                errorString += "HTTP status: " + o.status + "\r\n";
                errorString += "Status code message: " + o.statusText + "\r\n";
                alert(errorString);
            }
        }
        
        var callback = {
          success:handleSuccess,
          failure:handleFailure
        };
        
        YAHOO.shop.container.panel1.setBody("<div style=\"text-align:center;margin-bottom:15px;\"><h3>Removing</h3><h3>\""+product_name+"\"</h3><h3>from your shopping cart ...</h3><h4>Please wait</h4><div style=\"padding:8px;\"><img src=\"/images/waiting.gif\" /></div></div>");
        YAHOO.shop.container.panel1.show();
        if(cart) {
			YAHOO.util.Connect.asyncRequest('GET','/shop/cart_stage.php'+removeURL+'&x=1', callback);
		}
		else {
			YAHOO.util.Connect.asyncRequest('GET','/shop/cart_stage.php'+removeURL, callback);
		}
    }
}

var go_to_gCheckout = function() {

    var strBody = "";
    var whatPage = document.location.href;
    var checkoutURL = '/shop/cart_stage.php?mode=gcheckout&whatPage='+whatPage;
    
    var handleSuccess = function(o){
        if(o.responseText !== undefined){
            strBody += o.responseText;
            if(strBody == "ERROR_CART_EMPTY") {
                YAHOO.shop.container.panel1.hide();
                errorString = "ERROR: Unable to redirect to Google for checkout!\r\n\r\n";
                errorString += "You're shopping cart has expired or is empty\r\n";
                update_mini_cart();
                setTimeout("alert(errorString)", 500);
            }
            else {
                document.location.href = strBody;
            }
        }
    }
    
    var handleFailure = function(o){
        if(o.responseText !== undefined){
            errorString = "ERROR: Unable to redirect to Google for checkout!\r\n\r\n";
            errorString += "Transaction id: " + o.tId + "\r\n";
            errorString += "HTTP status: " + o.status + "\r\n";
            errorString += "Status code message: " + o.statusText + "\r\n";
            alert(errorString);
        }
    }
    
    var callback = {
      success:handleSuccess,
      failure:handleFailure
    };
    
    YAHOO.shop.container.panel1.setBody("<div style=\"text-align:center;margin-bottom:15px;\"><h3>Sending your order to Google Checkout ...</h3><h4>Please wait</h4><div style=\"padding:8px;\"><img src=\"/images/waiting.gif\" /></div></div>");
    YAHOO.shop.container.panel1.show();
    YAHOO.util.Connect.asyncRequest('GET', checkoutURL, callback);

}

var view_cart = function(cart) {
	if(cart) {
		ShowCart(1);
	}
	else {
		ShowCart();
	}
	update_mini_cart();
}


var ShowCart = function(cart) {
    
    var strBody = "";
    
    YAHOO.shop.container.panel1.setBody( "<div id=\"container\"></div>" );
    
    var handleSuccess = function(o){
        if(o.responseText !== undefined){
            strBody += o.responseText;
            YAHOO.shop.container.panel1.setBody( strBody );
            YAHOO.widget.Overlay.windowResizeEvent.fire();
        }
    }

    var handleFailure = function(o){
        if(o.responseText !== undefined){
            div.innerHTML = "<li>Transaction id: " + o.tId + "</li>";
            div.innerHTML += "<li>HTTP status: " + o.status + "</li>";
            div.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
        }
    }

    var callback = {
        success:handleSuccess,
        failure:handleFailure
    };
    
	if(cart) {
		YAHOO.util.Connect.asyncRequest('GET', '/shop/cart_stage.php?x=1', callback);
	}
	else {
		YAHOO.util.Connect.asyncRequest('GET', '/shop/cart_stage.php', callback);
	}
    YAHOO.shop.container.panel1.setBody("<div style=\"text-align:center;margin-bottom:15px;\"><h3>Loading Shopping Cart ...</h3><h4>Please wait</h4><div style=\"padding:8px;\"><img src=\"/images/waiting.gif\" /></div></div>");
    YAHOO.shop.container.panel1.show();
    
}



var view_cart_onload = function() {
    ShowCart();
    update_mini_cart();
}

var view_cart_thanks = function() {
    ShowCartThanks();
}


var ShowCartThanks = function() {
    
    var strBody = "";
    
    YAHOO.shop.container.panel1.setBody( "<div id=\"container\"></div>" );
    
    var handleSuccess = function(o){
        if(o.responseText !== undefined){
            strBody += o.responseText;
            YAHOO.shop.container.panel1.setBody( strBody );
            YAHOO.widget.Overlay.windowResizeEvent.fire();
        }
    }

    var handleFailure = function(o){
        if(o.responseText !== undefined){
            div.innerHTML = "<li>Transaction id: " + o.tId + "</li>";
            div.innerHTML += "<li>HTTP status: " + o.status + "</li>";
            div.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
        }
    }

    var callback = {
        success:handleSuccess,
        failure:handleFailure
    };
    
    YAHOO.util.Connect.asyncRequest('GET', '/shop/cart_stage.php?thanks=1', callback);
    YAHOO.shop.container.panel1.setBody("<div style=\"text-align:center;margin-bottom:15px;\"><h3>Loading Shopping Cart ...</h3><h4>Please wait</h4><div style=\"padding:8px;\"><img src=\"/images/waiting.gif\" /></div></div>");
    YAHOO.shop.container.panel1.show();
    
}


function intlOrder() {
    $('cartform').action = '/international.php';
    $('cartform').submit();
}

var check_for_cart = function() {
	var found = $('x');
	if(found){
		window.location.reload();
	}
}