var args = arguments[0] || {}; var APP = require("core"); var fieldsIdentical; var checkOn = false; var currentCard; var currentCardType; var errorBlock = false; var paymentCardType = false; var nextBtnEnabled = false; var cardTypes = APP.settingsManager.cardTypes; var rm = require("resourceManager"); $.init = function() { // $.Loading.hide(); $.NavigationBar.setBackgroundGradient('#619029', '#547d23'); $.NavigationBar.setTitle('Выберите тип Вашей карты'); $.NavigationBar.showBack(function(_event) { APP.removeChild(false); $.textField.blur(); $.textFieldRepeat.blur(); }); $.addClass($.textField, 'firstInput'); $.addClass($.textFieldRepeat, 'secondInput'); $.showErrorBlock(false); $.checkBtn.value = "false"; //$.nextBtn.enabled = false; fieldsIdentical = false; $.inputBox.visible = false; // при переходе на страницу убрать сообщение с ошибкой $.showErrorBlock(false); // Ti.API.info("card types:" ,cardTypes); $.createCardsList(); // $.cardRegWrapper.top = OS_IOS ? '85dp' : '75dp'; //$.licenseTextWrapper.width = APP.Device.width - 57 + 'dp';//20+17+20 - its are paddings // $.Wrapper.addEventListener('viewRemoveChild', function() { // Ti.API.info('!!! clear'); // $.typeCard.removeAllChildren(); // $.separateLine.removeAllChildren(); // $.inputBox.removeAllChildren(); // $.firstBox.removeAllChildren(); // // $.cardRegWrapper.removeAllChildren(); // // $.Wrapper.removeAllChildren(); // $.destroy(); // }); }; $.linkText1.addEventListener('click', function(){ $.textField.blur(); $.textFieldRepeat.blur(); APP.addChild('termsAndConditions', { title: 'Правила и Условия', page: 'conditions' }); }); $.linkText2.addEventListener('click', function(){ $.textField.blur(); $.textFieldRepeat.blur(); APP.addChild('termsAndConditions', { title: 'Правила соблюдения конфиденциальности', page: 'privacy' }); }); Ti.App.addEventListener('systemAndroidBack', function(){ $.createCardsList(); }); Ti.App.addEventListener('backToCardReg', function(){ $.createCardsList(); }); $.textField.addEventListener('change', function(_event){ // проверка символа $.checkSymbol(_event.value.substr(_event.value.length-1), $.textField); $.checkBtnState(); }); $.textFieldRepeat.addEventListener('change', function(_event) { // проверка символа $.checkSymbol(_event.value.substr(_event.value.length-1), $.textFieldRepeat); $.checkBtnState(); }); $.checkSymbol = function(symbol, inputField){ if(/^(\d*)$/.test(symbol)) { return; } else { inputField.value = inputField.value.substr(0, inputField.value.length-1); } }; var newPos = 0; var lastPos = 0; var cardCounter = -1; var cardItemWidth = Ti.Platform.displayCaps.platformWidth * 240 / APP.Device.width; // show input fields for cards (not for invite card) // $.typeCard.addEventListener('swipe', function(_event){ // if (_event.direction == 'left' && pos < cardItemWidth * (cardTypes.length)){ // cardCounter++; // pos+=cardItemWidth; // // $.typeCard.setContentOffset({x:pos,y:0}, true); // } else if(_event.direction == 'right' && pos > cardItemWidth - 1){ // cardCounter--; // pos-=cardItemWidth; // // $.typeCard.setContentOffset({x:pos,y:0}, true); // } // Ti.API.info('!!! swipe!!!'); // $.showCardAbility(cardCounter); // }); $.typeCard.addEventListener('scrollend', function (_event) { $.showCardAbility(_event.currentPage); }); $.showCardAbility = function(counter){ if (counter === 0) { $.inputBox.visible = false; $.firstBox.visible = true; } else { $.firstBox.visible = false; $.inputBox.visible = true; currentCard = cardTypes[counter].cardClass; currentCardType = cardTypes[counter].id; Ti.API.info('currentCard', currentCard, '\ncurrentCardType', currentCardType); switch (currentCard) { case 'av': case 'other': paymentCardType = false; $.textFieldRepeat.visible = true; $.textFieldRepeatWrapper.height = '42dp'; $.infoCard.text = 'Введите номер Вашей карты и проверьте Ваши марки'; break; case 'paymentCard': paymentCardType = true; $.textFieldRepeat.visible = false; $.textFieldRepeatWrapper.height = '0dp'; $.infoCard.text = 'Введите последние 8 цифр номера Вашей карты и проверьте Ваши марки'; } } $.showErrorBlock(false); }; $.createCardsList = function() { var views = []; var aboutCard = Ti.UI.createView({ globalSwipe:false, layout: 'vertical', width: 240, left: (APP.Device.width - 240)/2, right: '0dp' }); aboutCard.add(Ti.UI.createImageView({ globalSwipe:false, image: '/images/swipe_for_choose.png', height: OS_IOS ? "137dp" : '150dp', width: OS_IOS ? '206dp' : '215dp' })); views.push(aboutCard); aboutCard = null; for (var i = 0; i < cardTypes.length; i++) { var cardItem = Ti.UI.createView({ globalSwipe:false, id: 'view' + cardTypes[i].id + '-' + cardTypes[i].cardClass, layout: 'vertical', width: 240, left: '0dp', right: i == cardTypes.length-1 ? (APP.Device.width - 240)/2 : '0dp' }); cardItem.add(Ti.UI.createImageView({ globalSwipe:false, image: rm.parseAssetUrl(cardTypes[i].imageFileName), height: OS_IOS ? "137dp" : '150dp', width: OS_IOS ? '206dp' : '215dp' })); cardItem.add(Ti.UI.createLabel({ globalSwipe:false, text: cardTypes[i].title, top: '5dp', color:'#000', font:{ fontSize: '14dp', fontFamily: OS_IOS ? 'GillSans-Light' : "gill_sans_cyr_mt_light" } })); views.push(cardItem); // $.typeCard.add(cardItem); cardItem = null; } // var views = []; // for (var i = 0; i < 10; i++){ // var cardItem = Ti.UI.createView({ // layout: 'vertical' // }); // var view = Ti.UI.createView({ // height: OS_IOS ? "137dp" : '150dp', // width: OS_IOS ? '206dp' : '215dp' // }); // view.backgroundColor = (i%2) ? "#ff0" : "#00f"; // cardItem.add(view); // views.push(cardItem); // } $.typeCard.views = views; }; $.checkTextField = function() { if (/^(\d*)$/.test($.textField.value) && $.textField.value.length >= 5 && paymentCardType) { // если банковская карта $.showErrorBlock(false); } else if(/^(\d*)$/.test($.textField.value) && $.textField.value.length >= 4 && !paymentCardType) { // если не банковская карта $.showErrorBlock(false); } else { $.showErrorBlock(true, 'Проверьте введенный номер карты'); } }; $.textField.addEventListener('focus', function() { $.showErrorBlock(false); }); $.textFieldRepeat.addEventListener('focus', function() { $.showErrorBlock(false); }); $.showErrorBlock = function(_visible, _text) { if (_visible){ errorBlock = true; //error } else { errorBlock = false;//normal state } $.errorLabel.visible = _visible; $.errorLabel.height = !_visible ? '0dp' : '35dp'; $.errorLabel.bottom = !_visible ? '5dp' : '10dp'; if (_text) { $.errorLabel.text = _text; } $.textField.borderColor = !_visible ? "#ccc" : "#cc1543"; $.textFieldRepeat.borderColor = !_visible ? "#ccc" : "#cc1543"; $.exclamation1.visible = _visible; $.exclamation2.visible = _visible; fieldsIdentical = !_visible; }; // Show/hide error message $.checkIdentFields = function() { if (paymentCardType) return true; if ($.textFieldRepeat.value === $.textField.value && $.textField.value.length >= 0) { $.showErrorBlock(false); return true; } else { $.showErrorBlock(true, 'Введенные номера карт не совпадают'); return false; } }; $.checkBtn.on = function() { this.backgroundImage = "/images/checkbox_checked_30.png"; this.value = "true"; }; $.checkBtn.off = function() { this.backgroundImage = "/images/checkbox_unchecked.png"; this.value = "false"; }; $.checkBtn.addEventListener('click', function(event) { $.textField.blur(); $.textFieldRepeat.blur(); if (event.source.value === "false") { event.source.on(); checkOn = true; } else { event.source.off(); checkOn = false; } $.checkBtnState(); }); $.checkBtnState = function(){ if(!errorBlock && checkOn) { nextBtnEnabled = true; $.nextBtn.backgroundGradient = { type: "linear", startPoint: {x: '50%', y: '0%'}, endPoint: {x: '50%', y: '100%'}, colors: [{ color: '#90ce4a', offset: 0.0}, { color: '#88bf3f', offset: 1.0 }] }; } else { nextBtnEnabled = false; $.nextBtn.backgroundGradient = { type: "linear", startPoint: {x: '50%', y: '0%'}, endPoint: {x: '50%', y: '100%'}, colors: [{ color: '#bce292', offset: 0.0}, { color: '#b8d98c', offset: 1.0 }] }; } }; $.nextBtn.addEventListener('click', function(event) { $.textField.blur(); $.textFieldRepeat.blur(); if ($.checkIdentFields()){ $.checkTextField(); } $.checkBtnState(); if (!nextBtnEnabled) return; if (currentCard === 'av') { if (!fieldsIdentical) { return; } // TODO: проверка на совпадение полей // Все проверки сделать тут, кроме ответа с сервера APP.addChild('select_card', { currentCardType: currentCardType, cardNo: $.textField.value }); } else if (currentCard == 'paymentCard' || currentCard == 'other') { // показать Прелоадер APP.openLoading(); var req = { cardNo: $.textField.value, typeCard: currentCard, cardType: currentCardType }; APP.userManager.login(req, function(res) { if (res.err == true) { // скрыть Прелоадер APP.closeLoading(); $.showErrorBlock(true, res.msg && res.msg.error && res.msg.error.message ? res.msg.error.message : 'Нет связи с сервером'); Ti.API.info('незалогинен'); } else { APP.removeChild(); APP.closeLoading(); APP.handleNavigation(0); } }); } }); $.Wrapper.addEventListener('click', function(_event) { if (!((_event.source.classes && _event.source.classes[0] === 'firstInput') || (_event.source.classes && _event.source.classes[0] === 'secondInput'))) { $.textField.blur(); $.textFieldRepeat.blur(); $.cardRegWrapper.scrollTo(0, 0); } }); Ti.App.addEventListener('download_finished', function() { $.textField.blur(); $.textFieldRepeat.blur(); }); Ti.App.addEventListener('selectCardError', function(_event) { $.showErrorBlock(true, _event.errorMessage); }); $.init();