%PDF- %PDF-
| Direktori : /home1/lightco1/luminero.com.au/components/com_virtuemart/assets/js/ |
| Current File : //home1/lightco1/luminero.com.au/components/com_virtuemart/assets/js/cvfind.js |
/**
* cvfind.js: Find product by dropdown
*
* @package VirtueMart
* @subpackage Javascript Library
* @author Max Milbers
* @copyright Copyright (c) 2014-16 VirtueMart Team. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
*/
if (typeof Virtuemart === "undefined")
Virtuemart = {};
Virtuemart.findContainers = function(event){
var runs= 0, maxruns = 20;
//We ensure with this, to get the right product, if more than one is displayed
var container = jQuery(event.currentTarget);
while(!container.hasClass('product-field-display') && runs<=maxruns){
container = container.parent();
runs++;
}
if(runs>maxruns){
console.log('CV: Could not find parent container product-field-display');
return false;
}
Virtuemart.container = container;
runs=0;
var cl = 'product-container';
var byL = Virtuemart.containerSelector;
Virtuemart.containerSelector = '.'+cl;
while(!Virtuemart.container.hasClass(cl) && runs<=maxruns){
Virtuemart.container = Virtuemart.container.parent();
runs++;
}
if(runs>maxruns){
Virtuemart.container = container;
Virtuemart.containerSelector = byL;
cl = Virtuemart.containerSelector.substring(1);
runs = 0;
while(!Virtuemart.container.hasClass(cl) && runs<=maxruns){
Virtuemart.container = Virtuemart.container.parent();
runs++;
}
if(runs>maxruns){
console.log('CV: Could not find product-container '+byL,container);
return false;
}
}
return container;
}
Virtuemart.cvFind = function(event) {
event.preventDefault();
var selection = [];
var container = Virtuemart.findContainers(event);
//console.log('my new ajax container ',Virtuemart.container);
var found = false;
//We check first if it is a radio
jQuery(container).find('.cvselection:checked').each(function() {
selection[selection.length] = jQuery(this).val();
found = true;
});
if(!found){
jQuery(container).find('.cvselection').each(function() {
selection[selection.length] = jQuery(this).val();
});
}
var index=0, i2=0, hitcount=0;
//to ensure that an url is set, set the url of first product
jQuery(this).prop('url',event.data.variants[0][0]);
for (runs = 0; runs < selection.length; index++) {
for (index = 0; index < event.data.variants.length; index++) {
hitcount = 0;
for (i2 = 0; i2 <= selection.length; i2++) {
if(selection[i2]==event.data.variants[index][i2+1]){
hitcount++;
if(hitcount == (selection.length-runs)){
var url = event.data.variants[index][0].replace(/amp;/g, '');
jQuery(this).attr('url',url);
jQuery(this).val(url);
if(jQuery(this).attr('reload')){
Virtuemart.isUpdatingContent = true;
window.top.location.href = url;
return false;
}
//console.log('CV: return url '+url);
return url;
}
} else {
break;
}
}
}
runs++;
//console.log('CV: Could not find product for selection '+runs);
}
return false;
};
Virtuemart.avFind = function(event) {
event.preventDefault();
var container = Virtuemart.findContainers(event);
//console.log('my new ajax container ',Virtuemart.container);
url = false;
found = false;
//We check first if it is a radio
jQuery(container).find('.avselection:checked').each(function() {
found = true;
url = jQuery(this).attr('url');
if (typeof url === typeof undefined || url === false) {
url = jQuery(this).val();
}
jQuery(this).val(url);
});
if(!found){
jQuery(container).find('.avselection').each(function() {
url = jQuery(this).attr('url');
if (typeof url === typeof undefined || url === false) {
url = jQuery(this).val();
}
jQuery(this).val(url);
});
}
return url;
};