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://www.luxy.co.za/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_group_' + i)) { var group = $(id + '_parameter_group_' + i); var elem = $(id + '_parameter_' + group.value); 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://www.luxy.co.za/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://www.luxy.co.za/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://www.luxy.co.za/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://www.luxy.co.za/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://www.luxy.co.za/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://www.luxy.co.za/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) { elem = jQuery(select_element); var row = elem.parent().parent(); var table = row.parent(); row.nextAll().remove(); var params = {}; params.id = id; params.current = elem.attr('id'); table.find("select").each(function() { var local_elem = jQuery(this); params[local_elem.attr('id')] = local_elem.val(); }); jQuery.get ( "./admin/modules/products/ajax/frontend_get_dropdown.php", params, function(data) { if (data && data !== null && data !== undefined) { var new_html = jQuery(data); new_html.hide().appendTo(table); new_html.fadeIn(350); } } ); /* // 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); jQuery.ajax( { type: 'GET', url: 'http://www.luxy.co.za/admin/modules/products/ajax/has_stock.php?id=' + id + params, dataType: 'text', success: function(data) { if (data.toLowerCase().indexOf('green') >= 0) { jQuery('#product_nostock_div').fadeOut(200, function() { if (!jQuery('#product_addtocart_button_' + id).is(':visible')) jQuery('#product_addtocart_button_' + id).fadeIn(200); }); } else { if (jQuery('#product_nostock_div').length < 1) { var nostockdiv = jQuery('
'); nostockdiv.attr('id', 'product_nostock_div'); nostockdiv.css('padding', '10px'); nostockdiv.html('No Stock Available'); jQuery('#product_addtocart_button_' + id).parent().prepend(nostockdiv); nostockdiv.hide(); } jQuery('#product_addtocart_button_' + id).fadeOut(200, function(){jQuery('#product_nostock_div').fadeIn(200);}); } } }); /* new Ajax.Updater('div_product_in_stock', 'http://www.luxy.co.za/admin/modules/products/ajax/has_stock.php?id=' + id + params, {method: 'get', onSuccess:function() { var result = $('div_product_in_stock').innerHTML; if (id == 155) alert(result); 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 .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);