function endsWith(str, suffix) { return str.indexOf(suffix, str.length - suffix.length) !== -1; } var ajx = { request: function(params) { jQuery.ajax({ data: params.data, error: function(data, status, request) { if (params.error!=undefined) { params.error(data, status, request); } else { // ajx.defaultError(data, status, request); } }, success: function(data, status, request) { if (data.length>=4 && data.substring(0,4)=='err:') { // ajx.displayErrorMessage(data.substring(4)); params.error(data.substring(4), status, request); } else { params.success(data, status, request); } }, type: 'POST', url: params.url }); }, defaultError: function(data, status, request) { // }, displayErrorMessage: function(msg) { // } } $(document).keydown(function(event){ if (event == null) { // ie keycode = window.event.keyCode; } else { // mozilla keycode = event.which; } if(keycode == 27){ // escape, close box, esc } }); var mst = new Object(); mst.initFunction = undefined; mst.init = function() { $('#searchField').focusin(function() { if ($(this).val()=='Поиск') $(this).val(''); $(this).addClass('searchActive'); $(this).removeClass('searchDisabled'); }); $('#searchField').focusout(function() { if ($(this).val()=='' ) { $(this).val('Поиск'); $(this).addClass('searchDisabled'); $(this).removeClass('searchActive'); } }); $('.actionLnk').hover( function () { $(this).addClass('actionLnkSelected'); }, function () { $(this).removeClass('actionLnkSelected'); } ); $('.actionLnk2').hover( function () { $(this).addClass('actionLnkSelected2'); }, function () { $(this).removeClass('actionLnkSelected2'); } ); $('.actionLnk3').hover( function () { $(this).addClass('actionLnkSelected3'); }, function () { $(this).removeClass('actionLnkSelected3'); } ); $(".fancybox").fancybox({ openEffect : 'elastic', closeEffect : 'elastic', minWidth: 50, helpers : { title: { type: 'inside' } }, beforeShow: function () { /* Disable right click */ $.fancybox.wrap.bind("contextmenu", function (e) { return false; }); } }); $(".contactLnk").click(function() { mst.openContactForm(); }) mst.preload([ 'http://cc.i-master.com.ua/img/btn_l_over.png', 'http://cc.i-master.com.ua/img/btn_c_over.png', 'http://cc.i-master.com.ua/img/btn_r_over.png', 'http://cc.i-master.com.ua/img/pg_yl_left.png', 'http://cc.i-master.com.ua/img/pg_yl_mid.png', 'http://cc.i-master.com.ua/img/pg_yl_right.png', 'http://cc.i-master.com.ua/img/pg_next_sel.png', 'http://cc.i-master.com.ua/img/pg_prev_sel.png' ]); if (mst.initFunction!=undefined) { mst.initFunction(); } }; mst.preload = function(arrayOfImages) { $(arrayOfImages).each(function(){ $('')[0].src = this; }); } mst.slidePosition=0; mst.slideTotal = 0; mst.slideWidth = 210; mst.slideInit = function(total) { $('#slideLeft').click(function() { mst.slideLeft(); }); $('#slideRight').click(function() { mst.slideRight(); }); mst.slideTotal = total; var pos = Math.floor(($('#otherItemsMain').height()-$('#slideLeft').height())/2); $('#slideLeft').css('top', pos+'px').hide(); $('#slideRight').css('top', pos+'px'); var size = mst.getSliderSize(); if (mst.slideTotal<=size) { $('#slideRight').hide(); } } mst.slideLeft = function() { var size = mst.getSliderSize(); var prevPosition = mst.slidePosition; mst.slidePosition-=size; if (mst.slidePosition<0) { mst.slidePosition = 0; } var diff = Math.abs(prevPosition-mst.slidePosition); $('#otherItemsSlider').animate({left: -(mst.slidePosition*mst.slideWidth)+'px'}, diff*200, 'swing'); mst.redrawSliders(); } mst.slideRight = function() { var size = mst.getSliderSize(); var prevPosition = mst.slidePosition; mst.slidePosition+=size; if (mst.slidePosition>(mst.slideTotal-size)) { mst.slidePosition = mst.slideTotal-size; } var diff = Math.abs(prevPosition-mst.slidePosition); $('#otherItemsSlider').animate({left: -(mst.slidePosition*mst.slideWidth)+'px'}, diff*200, 'swing'); mst.redrawSliders(); } mst.getSliderSize=function() { var width = $('#otherItemsSlider').parent().width(); var size = Math.floor(width / mst.slideWidth); return size; } mst.redrawSliders=function() { var size = mst.getSliderSize(); if (mst.slidePosition==0) { $('#slideLeft').hide(); } else { $('#slideLeft').show(); } if (mst.slidePosition==(mst.slideTotal-size)) { $('#slideRight').hide(); } else { $('#slideRight').show(); } } mst.openContactForm=function(type, itemName, id) { $('#formError').hide(); $('#contactName').val(''); $('#contactInfo').val(''); if ('callBack'==type) { $('#contactQuestion').val('Я не смог дозвониться Вам.\rПожалуйста, свяжитесь со мной.'); } else if ('discount'==type && itemName!=undefined) { $('#contactQuestion').val('Добрый день,\r\rМеня интересует "'+itemName+'" (Код: '+id+').\rСообщите мне когда у Вас будут скидки или акции на этот товар.\r\rСпасибо.'); } else if ('question'==type && itemName!=undefined) { $('#contactQuestion').val('Добрый день,\r\rУ меня есть вопрос про "'+itemName+'" (Код: '+id+').\r<<О чем Вы хотели спросить?>>\r\rСпасибо.'); } else { $('#contactQuestion').val(''); } $( "#contactForm" ).dialog({ resizable: false, modal: true, width: 600, buttons: { "Отправить запрос": function() { mst.sendContactForm(); } } }); } mst.sendContactForm = function() { var name = $('#contactName').val(); var contacts = $('#contactInfo').val(); var question = $('#contactQuestion').val(); if (name=='' || contacts=='' || question=='') { $('#formError').show(); } else { mst.displayWaitWindow(); ajx.request({ data: {name: name, contacts: contacts, question: question}, success: function(data, status, request) { $("#contactForm").dialog("close"); $("#waitWindow").dialog({ beforeClose: function( event, ui ) {} }).dialog("close"); mst.displayOkWindow(); }, error: function(data, status, request) { $("#contactForm").dialog("close"); $("#waitWindow").dialog({ beforeClose: function( event, ui ) {} }).dialog("close"); mst.displayErrorWindow(); }, url: '/ajax/sendContactForm/' }); } } mst.displayWaitWindow=function() { $( "#waitWindow" ).dialog({ resizable: false, modal: true, height: 80, width: 340, beforeClose: function( event, ui ) {return false;} }); } mst.displayOkWindow=function() { $( "#okWindow" ).dialog({ resizable: false, modal: true, height: 160, width: 440, buttons: { "Закрыть": function() { $( this ).dialog( "close" ); } } }); } mst.displayErrorWindow=function() { $( "#errorWindow" ).dialog({ resizable: false, modal: true, height: 160, width: 440, buttons: { "Закрыть": function() { $( this ).dialog( "close" ); } } }); } mst.addToFavorites=function(id) { ajx.request({ data: {itemId: id}, success: function(data, status, request) { if (data!='') { $('#favCount').html(data); $('#itemActionLnk'+id).text('в избранном').addClass('actionLnk2').click(function(){window.location='/favorites.html';}); } }, error: function(data, status, request) { }, url: '/ajax/addToFavorites/' }); } mst.removeFromFavorites=function(id) { $('#itemRow_'+id+'_1').animate({opacity: 0}, 500, function() { $('#itemRow_'+id+'_1').hide(); if ($('#favTable').find('tr:visible').length==1) { $('#favNoItems').show(); }; }); $('#itemRow_'+id+'_2').animate({opacity: 0}, 500, function() { $('#itemRow_'+id+'_2').hide(); if ($('#favTable').find('tr:visible').length==1) { $('#favNoItems').show(); }; }); ajx.request({ data: {itemId: id}, success: function(data, status, request) { if (data!='') { $('#favCount').html(data); } }, error: function(data, status, request) { }, url: '/ajax/removeFromFavorites/' }); } mst.buy=function(id) { $('#buyItemId').val(id); $('#buyForm').submit(); } mst.recalculateBasket = function(nextPage) { $('#nextPage').val(nextPage); $('#basketForm').submit(); } mst.makeOrder = function() { if (mst.validOrder()) { // submit form $('#orderForm').submit(); } else { // show error } } mst.validOrder = function() { var valid = true; $('#fioLabel').removeClass('errColor'); $('#telLabel').removeClass('errColor'); $('#emailLabel').removeClass('errColor'); if ($('#fio').val()=='') { $('#fioLabel').addClass('errColor'); valid = false; } if (($('#tel').val()=='' && $('#email').val()=='') || ($('#email').val()!='' && !mst.validEmail($('#email').val()))) { $('#telLabel').addClass('errColor'); $('#emailLabel').addClass('errColor'); valid = false; } return valid; } mst.validEmail = function(val) { if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(val)) { return true; } return false; }