не работает. смотрите
http://test.katalliana.org/ru/intern...la-stulya.html
это страница со сравнением (чтобы Вам долго не ковыряться по всему сайту). когда добавляешь товар в сравнение - под списком товаров и перед модулем "Последние поступления" (внизу странички) появляется модуль сравнения. в данном случае окошко отображается в левом верхнем углу (текст - 123456), товары в сравнение не добавляются, модуль не появляется.
вот на этом сайте можете глянуть как выглядит сравнение
http://testshop.katalliana.org/ru/in...la-stulya.html
на всякий случай прикрепляю полный код скрипта
function removeByElement(arrayName,arrayElement) {
for(var i=0; i<arrayName.length;i++) {
if(arrayName[i]==arrayElement) arrayName.splice(i,1);
}
}
function CompareProduct(el, type_id) {
var Product_ID = el.name;
Product_ID = Product_ID.replace("compare_","");
//alert("ДО: productID="+Product_ID+" ProductsInCart.length="+ProductsInCart.length);
if (el.checked && CompareTypeID != -1 && type_id!=CompareTypeID) {
alert("Hельзя сравнивать товары разного типа");
return false;
}
else if (el.checked && ProductsInCart.length>=MaxProductToCompare) {
alert("Нельзя сравнивать более " + MaxProductToCompare + " продуктов одновременно");
return false;
}
else if (el.checked) {
CompareTypeID = type_id;
AddCompare(Product_ID);
}
else RemoveCompare(Product_ID);
//alert("ПОСЛЕ: productID="+Product_ID+" ProductsInCart.length="+ProductsInCart.length);
return true;
}
function AddCompare(product) {
ProductsInCart.push(product);вы
var frm= $("frmProductCompare");
frm.product_id.value=product;
frm.func.value="comparisonAdd";
//frm.page.value = "shop.comparison_short";
handleUpdateCompare(frm);
$( "#dialog" ).dialog();
}
function RemoveCompare(product) {
//alert(product);
removeByElement(ProductsInCart,product);
if (ProductsInCart.length<=0) CompareTypeID=-1;
//alert(ProductsInCart.length);
//alert(ProductsInCart[0]);
var frm= $("frmProductCompare");
frm.product_id.value=product;
frm.func.value="comparisonDelete";
handleUpdateCompare(frm);
}
//для удаления из сравнения на странице сравнения
function RemoveComparePage(product) {
//alert(product);
removeByElement(ProductsInCart,product);
var page;
if (ProductsInCart.length<=0){ CompareTypeID=-1; page = "shop.browse";}
else page = "shop.compare";
//alert(ProductsInCart.length);
var frm= $("frmProductCompare");
frm.product_id.value=product;
frm.func.value="comparisonDelete";
frm.page.value=page;
frm.compare_type.value = CompareTypeID;
frm.submit();
}
function ClearCompare() {
var el;
for(var i=0;i<ProductsInCart.length;i++){
//alert(ProductsInCart[i]);
el= $("compare_cart_"+ProductsInCart[i]);
if (el && el.checked) el.checked=false;
}
ProductsInCart=[];
//alert(ProductsInCart.length);
CompareTypeID=-1;
var frm= $("frmProductCompare");
frm.func.value="comparisonClear";
handleUpdateCompare(frm);
}
//Очистка на странице сравнения
function ClearComparePage() {
var el;
for(var i=0;i<ProductsInCart.length;i++){
//alert(ProductsInCart[i]);
el= $("compare_cart_"+ProductsInCart[i]);
if (el && el.checked) el.checked=false;
}
ProductsInCart=[];
//alert(ProductsInCart.length);
CompareTypeID=-1;
var frm= $("frmProductCompare");
frm.func.value="comparisonClear";
frm.page.value="shop.browse";
frm.submit();
}
/*function handleUpdateCompare( frm ) {
var callback = function(responseText) {
updateComparison()
//$("Compare_Thumb_Container").innerHTML=responseText;
ToggleCompareCheck(false);
}
var opt = {
method: "post",
data: frm,
onComplete: callback,
evalScripts: true
}
ToggleCompareCheck(true);
new Ajax(frm.action, opt).request();
}*/
//function updateComparison() {
/*
function handleUpdateCompare( frm ) {
alert(frm.func.value);
var callbackCart = function(responseText) {
carts = $$( '.vmComparisonModule' );
if( carts ) {
try {
for (var i=0; i<carts.length; i++){
carts[i].innerHTML = responseText;
color = carts[i].getStyle( 'color' );
bgcolor = carts[i].getStyle( 'background-color' );
if( bgcolor == 'transparent' ) {
// If the current element has no background color, it is transparent.
// We can't make a highlight without knowing about the real background color,
// so let's loop up to the next parent that has a BG Color
parent = carts[i].getParent();
while( parent && bgcolor == 'transparent' ) {
bgcolor = parent.getStyle( 'background-color' );
parent = parent.getParent();
}
}
var fxc = new Fx.Style(carts[i], 'color', {duration: 1000});
var fxbgc = new Fx.Style(carts[i], 'background-color', {duration: 1000});
fxc.start( '#222', color );
fxbgc.start( '#fff68f', bgcolor );
//if( parent ) {
// setTimeout( "carts[" + i + "].setStyle( 'background-color', 'transparent' )", 1000 );
//}
}
} catch(e) {}
}
ToggleCompareCheck(false);
}
//option = { method: 'POST', onComplete: callbackCart }
var frm1 = { only_page:1,
page: frm.page.value,
category_id: frm.category_id.value,
product_id: frm.product_id.value,
func: "comparisonAdd",
compare_type: frm.compare_type.value,
Itemid: frm.Itemid.value,
option: frm.option.value
}
var opt = {
method: "post",
data: frm1,
//data: { only_page:1, option: "com_virtuemart", page: frm.page.value },
onComplete: callbackCart,
evalScripts: true
//?page=shop.comparison_short
}
ToggleCompareCheck(true);
new Ajax('http://joom15/index2.php?page=shop.comparison_short', opt).request();
}
*/
function handleUpdateCompare( frm ) {
var callback = function(responseText) {
updateComparison()
//$("Compare_Thumb_Container").innerHTML=responseText;
ToggleCompareCheck(false);
}
var opt = {
method: "post",
data: frm,
onComplete: callback,
evalScripts: true
}
ToggleCompareCheck(true);
new Ajax(frm.action, opt).request();
}
function updateComparison() {
var callbackCart = function(responseText) {
carts = $$( '.vmComparisonModule' );
if( carts ) {
try {
for (var i=0; i<carts.length; i++){
carts[i].innerHTML = responseText;
color = carts[i].getStyle( 'color' );
bgcolor = carts[i].getStyle( 'background-color' );
if( bgcolor == 'transparent' ) {
// If the current element has no background color, it is transparent.
// We can't make a highlight without knowing about the real background color,
// so let's loop up to the next parent that has a BG Color
parent = carts[i].getParent();
while( parent && bgcolor == 'transparent' ) {
bgcolor = parent.getStyle( 'background-color' );
parent = parent.getParent();
}
}
var fxc = new Fx.Style(carts[i], 'color', {duration: 1000});
var fxbgc = new Fx.Style(carts[i], 'background-color', {duration: 1000});
fxc.start( '#222', color );
fxbgc.start( '#fff68f', bgcolor );
if( parent ) {
setTimeout( "carts[" + i + "].setStyle( 'background-color', 'transparent' )", 1000 );
}
}
} catch(e) {}
}
}
option = { method: 'POST', onComplete: callbackCart }
new Ajax('index2.php?only_page=1&page=shop.comparison_short&option=com_virtuemart', option).request();
}
function ToggleCompareCheck(disabled) {
var a = $$(".compare_checkbox");
for (i=0; i<a.length; i++) a[i].disabled=disabled;
}
function RemoveCompareCheck(product) {
var el= $("compare_cart_"+product);
if (el && el.checked) el.checked=false;
RemoveCompare(product+'');
}
function handleGoToCompare() {
if (!ProductsInCart || ProductsInCart.length<2) {
alert("You must select 2 or more products to compare!");
return;
}
var frm= $("frmProductCompare");
frm.page.value="shop.compare";
frm.compare_type.value = CompareTypeID;
frm.func.value="";
frm.submit();
}
function GoToCatalog() {
var frm= $("frmProductCompare");
if(frm.category_id.value>0)
frm.page.value="shop.browse";
else frm.page.value="";
frm.func.value="";
frm.submit();
}