var scc_jquery = jQuery;
jQuery.noConflict(true);
function showError ( message ) {
if( ! message ) {
scc_jquery("#scs_cartmessages").css('display','none') ;
} else {
scc_jquery("#scs_cartmessages_content").html( message );
scc_jquery("#scs_cartmessages").css('display','block') ;
// Animates to ensure the visibility of the error message
scc_jquery('html, body').animate( {scrollTop: scc_jquery("#scs_cartmessages").offset().top - 10 }, 500);
}
}
// Returns the version of Internet Explorer or a -1 (indicating the use of another browser).
function getInternetExplorerVersion()
{
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}
function checkIE6Version()
{
var ver = getInternetExplorerVersion();
if ( ver > -1 )
{
if ( ver < 7.0 )
{
return true;
}
}
return false;
}
// Show the visual hint for the user to wait for the ajax to be finished
function show_spinner(){
scc_jquery('img#ajax_waiting_spinner').css('display', 'block');
}
// Hides the visual hint once the ajax query has been processed
function hide_spinner(){
scc_jquery('img#ajax_waiting_spinner').css('display', 'none');
}
function updateCartValues ( ) {
// clone the form data and add the format=json
var fc = scc_jquery("form.cart").clone( true );
scc_jquery( "#extrashipid", fc ).val( scc_jquery("#extrashipid").val() )
scc_jquery( "#taxlocid", fc ).val( scc_jquery("#taxlocid").val() )
fc.append('')
.append('');
// Shows the spinner as visual hint to the user that something is being processed.
show_spinner();
// do the async request and update the fields
scc_jquery.post( scc_jquery("form.cart").attr("action"),
fc.serialize(),
function( data ) {
// update the cart
showError( data.message );
scc_jquery("#cart_total").html( data.currencysymbol + data.total );
scc_jquery("#cart_subtotal").html( data.currencysymbol + data.subtotal )
scc_jquery("#cart_shipping_total").html( data.currencysymbol + data.shippingtotal )
// Hides the taxes in case they are empty
if( data.taxes == '0.00' ) {
scc_jquery("#cart_taxes_total_label").html( '' )
scc_jquery("#cart_taxes_total").html( '' )
} else {
scc_jquery("#cart_taxes_total_label").html( 'Estimated Taxes:' )
scc_jquery("#cart_taxes_total").html( data.currencysymbol + data.taxes )
}
for( var li in data.lineitems ) {
var sel = "#product_subtotal_" + data.lineitems[li].cid;
scc_jquery( sel ).html( data.currencysymbol + data.lineitems[li].subtotal )
}
// Hides the spinner as visual hint to the user that something is being processed.
hide_spinner();
},
"json" );
}
// for the cart and product pages
scc_jquery(document).ready(
function() {
// Adds to the dom the spinner element. It will be hided until an ajax request is handled
//scc_jquery(function(){
// var spinner = scc_jquery('
');
// spinner.css({ display: 'none', position: 'fixed', top:'50%', left:'50%' });
// scc_jquery('body').append(spinner);
//});
// get fresh data after changes
scc_jquery("#extrashipid, #taxlocid, div.scs_cart_quantity_input_wrapper>input").bind("change",
function(e) { updateCartValues(); }
);
// add some validation on input fields for cart page
scc_jquery("form.cart input[type='text']").bind("keyup",
function(e) {
// validate all input fields
var elms = scc_jquery("form.cart input[type='text']");
var valid = true;
for( i = 0; i < elms.length; i++ ) {
valid = (elms[i].value.search(/[^0-9 ]/) == -1);
if( ! valid ) {
showError("Only numbers are allowed in the Quantity field(s).");
scc_jquery("form.cart input[type='submit']").attr("disabled","disabled");
break;
}
}
if( valid ) {
showError("");
}
}
);
// quantity validation for product page
scc_jquery("input[name='quantity']").bind("keyup",
function(e) {
if( this.value.search(/[^0-9 ]/) != -1) {
showError("Only numbers are allowed in a Quantity field.");
scc_jquery("input.scs_addtocart[type='submit']").attr("disabled","disabled");
} else {
showError("");
scc_jquery("input.scs_addtocart[type='submit']").attr("disabled","");
}
}
);
// Checks if the IE6 is running
if( checkIE6Version() )
{
scc_jquery("body").prepend("
Hey! You appear to be using Internet Explorer 6. You really should upgrade to a newer browser, your experience on the Web will be much better.