sa_catalog_page_size = 99;
var stepperTimerId;
var snackTimerId;
jQuery(window).load(function(){
var allSelects = jQuery(".js_sa_select"); for (var i=0;i
'+txt+'
'; jQuery( "#sa_snackbar" ).addClass("show"); jQuery( "#sa_snackbar" ).html(txt); snackTimerId = delayAndCall(3000, function(){jQuery( "#sa_snackbar" ).removeClass("show")}); }else if(ico=="loaded"){ txt=''+txt+'
'; jQuery( "#sa_snackbar" ).addClass("show"); jQuery( "#sa_snackbar" ).html(txt); snackTimerId = delayAndCall(3000, function(){jQuery( "#sa_snackbar" ).removeClass("show")}); }else if(ico=="alert"){ txt=''+txt+'
'; jQuery( "#sa_snackbar" ).addClass("show"); jQuery( "#sa_snackbar" ).html(txt); snackTimerId = delayAndCall(3000, function(){jQuery( "#sa_snackbar" ).removeClass("show")}); }else if(ico=="fine"){ txt=''+txt+'
Вы можете продолжить покупки, либо перейти к оформлению заказа.';
sa_site_notes(content);
korzina_setCount(response);
}
function initQtyShopStepper(){
jQuery( ".sa_stepper" ).stepper({
labels: {
up: "",
down: ""
}
})
jQuery('.js_sa_shopcart_stepper').bind('change spinstop', function() {
//
clearTimeout(stepperTimerId);
var _this = jQuery(this);
console.log(_this.val()+"; "+_this.data("value-id"));
stepperTimerId=delayAndCall(300,function(){
sa_snackbar("Корзина сейчас обновится","loading");
console.log("Вызов из initQtyShopStepper");
updateBasket(_this.data("value-id"),_this.val())
})
});
}
function updateBasket(id,qty/*,size,color*/) {
jQuery.ajax({
type: "POST",
url: "/services.json?action=updateBasket",
data: {
id: id,
/*size: size,
color: color,*/
qty: qty
}
}).done(function( serverAnswer ) {
var responseObj = JSON.parse(serverAnswer );
if(responseObj && responseObj.result /*&& responseObj.result.size>0*/){
korzina_setCount(responseObj.result.size);
loadHTMLBasket(function(content){
jQuery('.sa_shopping_html').html(content);
sa_snackbar("Корзина обновлена","loaded");
initQtyShopStepper();
});
if(responseObj.result.size==0){
document.location.href='/shopcart';
}
//alert("Товар добавлен в корзину!");
}else{
korzina_setCount(responseObj.result.size);
//loadHTMLBasket(function(content){jQuery('.sa_shopping_html).html(content)});
//alert("Ошибка добавления товара в корзину!");
}
});
};
function PingSession(){
var a = jQuery.get("/null.php");
}
function viewTypeCatalogLink(need_type){
var url = jQuery.url();
var params= url.param();
var out_urls=[];
if(url.param('type')=="block"){
delete params.type;
}else{
out_urls.push("type=block");
}
for(var index in params){
if(index!=""){
out_urls.push(index+"="+encodeURIComponent(params[index]));
}
}
if(out_urls.length){
document.location.href=url.attr('path')+"?"+out_urls.join("&");
}else{
document.location.href=url.attr('path');
}
}
function removeFilter(){
var action_fields=["developer","tags"];
//var url = jQuery.url();
var url = $.url();
var params= url.param();
delete params.action;
delete params.page;
action_fields.map(function(n) {
delete params[n];
});
var recursiveEncoded = jQuery.param( params );
document.location.href=(recursiveEncoded) ? url.attr('path')+"?"+recursiveEncoded : url.attr('path');
}
function filterCatalog(variable, value){
var action_fields=["developer","tags"];
//var url = jQuery.url();
var url = $.url();
var params= url.param();
delete params.page;
if(value==""){
delete params[variable];
delete action_fields[action_fields.indexOf(variable)]
var intersect = action_fields.filter(function(n) { //удалить action если других св-в не осталось
return (params[n])? true : false;
});
if(intersect.length==0){
delete params.action; //filter
}
var recursiveEncoded = jQuery.param( params );
document.location.href=(recursiveEncoded) ? url.attr('path')+"?"+recursiveEncoded : url.attr('path');
return;
}else{
params.action = (!params.action) ? "filter" : params.action;
params[variable]=value;
var recursiveEncoded = jQuery.param( params );
document.location.href=(recursiveEncoded) ? url.attr('path')+"?"+recursiveEncoded : url.attr('path');
return;
}
}
function sortCatalogLink(sortAs){
var url = jQuery.url();
var params= url.param();
if(url.param('sort')){
delete params.sort;
}
var out_urls=[]; //составление нового адреса
for(var index in params){
if(index!=""){
out_urls.push(index+"="+encodeURIComponent(params[index]));
}
}
if(sortAs!=""){
out_urls.push("sort="+sortAs);
}
if(out_urls.length){ //если были параметры
document.location.href=url.attr('path')+"?"+out_urls.join("&");
}else{ //если параметров нет
document.location.href=url.attr('path');
}
}
function viewPSCatalogLink(ps){
var url = jQuery.url();
var params= url.param();
delete params.page;
if(url.param('ps')){
delete params.ps;
}
var out_urls=[]; //составление нового адреса
for(var index in params){
if(index!=""){
out_urls.push(index+"="+encodeURIComponent(params[index]));
}
}
if(ps!=sa_catalog_page_size){ //GetConfig("catalog_page_size")
out_urls.push("ps="+ps);
}
if(out_urls.length){ //если были параметры
document.location.href=url.attr('path')+"?"+out_urls.join("&");
}else{ //если параметров нет
document.location.href=url.attr('path');
}
}
function in_array(needle, haystack, strict) { // Checks if a value exists in an array
var found = false, key, strict = !!strict;
for (key in haystack) {
if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
found = true;
break;
}
}
return found;
}
function array_diff(a1, a2) {
var a = [], diff = [];
for (var i = 0; i < a1.length; i++) {
a[a1[i]] = true;
}
for (var i = 0; i < a2.length; i++) {
if (a[a2[i]]) {
delete a[a2[i]];
} else {
a[a2[i]] = true;
}
}
for (var k in a) {
diff.push(k);
}
return diff;
};
function sa_autocomplete(jQueryObj, initObj){
jQueryObj.autocomplete({
autoFocus:true,
minLength: initObj.minLength,
source: function(request, response ) {
jQuery.getJSON(
initObj.url,
request,
function( data, status, xhr ){
response( data );
});
},
response: function( event, ui ) {
//console.log( "sa_script response event: "+event.type +"; " + ui.item +"; "+jQueryObj.val() +"; ui.content[0]=="+ui.content[0]);
jQueryObj.data("first",ui.content[0])
jQueryObj.data("selected",false)
},
focus: function( event, ui) {
//log( "focus: " + ui.item.label );
},
select: function( event, ui ) {
//log( "select: " + ui.item.label );
jQueryObj.data("selected",true)
initObj.onSelectFunc(ui.item);
},
change: function( event, ui ) {
//console.log( "sa_script change event: "+event.type +" " + ui.item +" "+jQueryObj.val());
},
keyup: function( event, ui ) {
//console.log( "sa_script keyup event: "+event.type +" " + ui.item +" "+jQueryObj.val());
},
click: function( event, ui ) {
//console.log( "sa_script click event: "+event.type +" " + ui.item +" "+jQueryObj.val());
}
}).blur(function(a,b){
//log("source: "+jQueryObj.data("aaa"));
if(!jQueryObj.data("selected") && jQueryObj.data("first") ){
jQueryObj.val(jQueryObj.data("first").value)
initObj.onSelectFunc(jQueryObj.data("first"));
}
}).change(function(event, ui){
//console.log( "ADVANCED sa_script change event: "+jQueryObj.val());
if(jQueryObj.data("selected")!=true){
console.log( "Поле autocomplete-ui изменено без реального выбора: "+jQueryObj.val());
jQuery.getJSON( initObj.url, { term: jQueryObj.val() } )
.done(function( json ) {
jQueryObj.data("first",json[0]);
jQueryObj.data("selected",true);
initObj.onSelectFunc(jQueryObj.data("first"));
})
.fail(function( jqxhr, textStatus, error ) {
var err = textStatus + ", " + error;
console.log( "Request Failed: " + err );
});
}
});
return jQueryObj;
}
function arrayToHash(sourceArray,byColumn){
var o={};
for(var i=0; i