function initialise_products_script() { if (!$('AJAX_CHILD_ELEMENT_APPENDER')) return; var body = $$('body')[0]; var back = Builder.node('div', {id: 'products_cart_background', className: 'products_cart_background'}); var curtain = Builder.node('div', {id: 'products_cart_curtain', className: 'products_cart_curtain'}); var div = Builder.node('div', {id: 'products_cart_div', className: 'products_cart_div'}, [ Builder.node('div', {id: 'products_cart_close_link', className: 'products_cart_content_small'}, [ Builder.node('strong', 'X'), Builder.node('span', ' close cart') ]), Builder.node('div', {id: 'products_cart_div_content'}) ]); //body.appendChild(curtain); //body.appendChild(back); //body.appendChild(div); // update, IE bug... $('AJAX_CHILD_ELEMENT_APPENDER').appendChild(curtain); $('AJAX_CHILD_ELEMENT_APPENDER').appendChild(back); $('AJAX_CHILD_ELEMENT_APPENDER').appendChild(div); $('products_cart_curtain').hide(); $('products_cart_background').hide(); $('products_cart_div').hide(); $('products_cart_background').setStyle({ backgroundImage:"url(http://incorporex.com/admin/modules/products/cart_top_tile.gif)", backgroundRepeat:"repeat-x" }); $('products_cart_background').observe('click', products_cart_minimise); $('products_cart_curtain').observe('click', products_cart_minimise); $('products_cart_close_link').observe('click', products_cart_minimise); } function products_cart_minimise() { new Effect.Fade('products_cart_curtain', {duration:0.3}); new Effect.Fade('products_cart_background', {duration:0.3}); $('products_cart_div').hide(); } function products_cart_maximise() { if ($('products_cart_background').style.display == "none") { $('products_cart_curtain').style.position = 'fixed'; new Effect.Appear('products_cart_curtain', {duration:0.3, from:0.0, to:0.90}); new Effect.Appear('products_cart_background', {duration:0.3, from:0.0, to:0.80}); } if ($('products_cart_div').style.display == "none") $('products_cart_div').show(); location.href = '#top_of_page'; } function products_cart_add_product(id) { // process parameters... var i=0; var allowed = true; var params = ""; while ($(id + '_parameter_' + i)) { var elem = $(id + '_parameter_' + i); if (elem.value == "") { if ($(id + '_parameter_label_' + i)) show_error_message_box("Please select a value for '"+ $(id + '_parameter_label_' + i).value +"'"); else show_error_message_box("Please ensure all product parameter options have been selected"); allowed = false; break; } else if ($(id + '_parameter_group_' + i)) { var grp_id = parseInt($(id + '_parameter_group_' + i).value); params += "&grp" + grp_id + "=" + elem.value; } i++; } if (allowed) { products_cart_maximise(); products_cart_show_loader(); new Ajax.Request("http://incorporex.com/admin/modules/products/ajax/add_to_cart.php?id=" + id + "&quantity=1" + params, {method: 'get', onComplete: function() { products_cart_show_products(); }}); } } function products_cart_increase_quantity(id) { products_cart_maximise(); products_cart_show_loader(); new Ajax.Request("http://incorporex.com/admin/modules/products/ajax/increase_quantity.php?id=" + id, {method: 'get', onComplete: function() { products_cart_show_products(); }}); } function products_cart_decrease_quantity(id) { products_cart_maximise(); products_cart_show_loader(); new Ajax.Request("http://incorporex.com/admin/modules/products/ajax/decrease_quantity.php?id=" + id, {method: 'get', onComplete: function() { products_cart_show_products(); }}); } function products_cart_show_loader() { var h = parseInt($$('body')[0].clientHeight); if(parseInt($$('body')[0].scrollHeight) > h) h = parseInt($$('body')[0].scrollHeight); h -= parseInt($('products_cart_div_content').offsetTop); h -= 10; //$('products_cart_div').setStyle({height: h + 'px'}); var HTML = ""; HTML += "
"; HTML += "cart  Your Cart
"; HTML += "
Loading...
"; HTML += "
"; $('products_cart_div_content').innerHTML = HTML; } function products_cart_show_products() { setTimeout(function() { new Ajax.Updater('products_cart_div_content', 'http://incorporex.com/admin/modules/products/ajax/get_cart_info.php', {method: 'get', evalScripts:true, onComplete: function() { //$('products_cart_div').setStyle({height: 'auto'}); //var h = parseInt($$('body')[0].clientHeight); //if(parseInt($$('body')[0].scrollHeight) > h) // h = parseInt($$('body')[0].scrollHeight); //$('products_cart_background').setStyle({height: h}); }}); }, 500); } function products_cart_show_your_cart() { products_cart_maximise(); products_cart_show_loader(); products_cart_show_products(); } function products_cart_remove_item(item_id) { products_cart_show_loader(); new Ajax.Request('http://incorporex.com/admin/modules/products/ajax/remove_item.php', {method:'get', parameters:{id:item_id}, onComplete:function() { products_cart_show_products(); }}); } function product_frontend_switch_thumbnail(id, image_id) { jQuery('#td_product_main_thumbnail').fadeTo(350, 0, function() { jQuery(this) .html('Loading...') .fadeTo(350, 1, function() { var img = new Image(); img.onLoad = product_frontend_switch_thumbnail_ajax(id, image_id); img.src = 'http://incorporex.com/admin/modules/products/get_product_thumbnail.php?id='+ id +'&image_id='+ image_id; }); }); } function product_frontend_switch_thumbnail_ajax(id, image_id) { jQuery('#td_product_main_thumbnail').fadeTo(350, 0, function() { jQuery(this).load('./admin/modules/products/ajax/get_product_main_thumbnail.php?id='+id+'&image_id='+image_id, function() { jQuery(this).fadeTo(350, 1); }); }); } function products_calculate_has_stock(id, select_element) { // process parameters... var i=0; var allowed = true; var params = ""; while ($(id + '_parameter_' + i)) { var elem = $(id + '_parameter_' + i); if ($(id + '_parameter_group_' + i)) { if (elem == select_element) products_load_parameter_colour(i, elem.value); var grp_id = parseInt($(id + '_parameter_group_' + i).value); params += "&grp" + grp_id + "=" + elem.value; } i++; } jQuery('#div_product_in_stock').html('Calculating stock...'); jQuery('#product_addtocart_button_' + id).fadeOut(200); new Ajax.Updater('div_product_in_stock', 'http://incorporex.com/admin/modules/products/ajax/has_stock.php?id=' + id + params, {method: 'get', onComplete:function() { var result = $('div_product_in_stock').innerHTML; if (result.toLowerCase().indexOf('green') >= 0) jQuery('#product_addtocart_button_' + id).fadeIn(200); //else //$('product_addtocart_button_' + id).style.visibility = 'hidden'; }}); } function products_load_parameter_colour(counter, option) { var span = jQuery('#div_colour_preview_'+counter); span.fadeOut(350, function() { jQuery(this) .html('loading...') .fadeIn(350, function() { jQuery.get('./admin/modules/products/ajax/get_option_colour.php?number='+ option, '', function(response) { span.fadeOut(350, function() { jQuery(this) .html(response) .fadeIn(350); }); }); }); }); } document.observe('dom:loaded', initialise_products_script);