var OneTouch = {
	currSelectedOptions: null,
                   currentSec: 3,
                   	
	init: function(){
               
	},
	
	onTabClick: function(){
		$.post(AppData.url + AppData.pageId + '/getOnSaleOneTouchOptions',{}, function(options){
                      //if no OT, show message
                        if(options  === null){ //if empty object
                            PlatformNav.noTradesMsg();
                            return;
                        }
			var listBox = Home.container.find('#oneTouchList');
			OneTouch.currSelectedOptions = new Array();
        $.each(options, function(i, option){
				if(option.unitsLeft !== undefined){
					option.unitsLeft = parseInt(option.unitsLeft);
					if(option.unitsLeft == 0) return true; //eqvivalent to  'continue'
					else var unitsAvail = option.unitsLeft;
				}
				else{
					var unitsAvail = parseInt(option.maxUnits);
				}
				
				var className = '';
				if(i == 0) var className = 'first';
				var box = Home.container.find('li#oneTouchBoxTemplate').clone();
				box.attr({id: ''})
				   .removeClass('hidden')
				   .addClass(className)
				   .appendTo(listBox);
				
				  box.find('div.assetName').text(option.assetName)
				  	 .end()
				  	 .find('td.endSaleTime').text(option.endSaleTimeFormatted)
				  	 .end()
				  	 .find('td.endTradeTime').text(option.endTradeTimeFormatted)
				  	 .end()
				  	 .find('span.unitPrice, span.unitPriceTotal').text(option.unitPrice + AppData.accountCurrency)
				  	 .end()
				  	 .find('p.goalRate').text(option.goalRate)
				  	 .end()
				  	 .find('p.profit').text(option.profit + '%')
				  	 .end()
				  	 .find('td.endTradeTime').text(option.endTradeTimeFormatted)
				  	 .end()
				  	 .find('td.oneTouchPayout').text(OneTouch.calculatePayout(option.profit, option.unitPrice, 1) + AppData.accountCurrency)
				  	 .end()
				  	 .find('input[name="oneTouchOptionId"]').val(option.id)
				  	 .end()
				  	 .find('div.oneTouchGraph').attr({optionId : option.id})
				  	 .end()
				  	 .find('div.actionMoreContainer .GEdit').attr('id', 'home-actiomoregedit-private' +'-' + i)
				  	 .end()
				  	 .find('div.actionContainer input.oneTouchApply').click(OneTouch.showAprroval)
				  	 .end()
                                                                                               .find('#approveOneTouch').bind('click',OneTouch.onApproveClick)
                                                                                               .end()
                                                                                               .find('#cancelOneTouch').bind('click', OneTouch.onCancelClick)	
                                                                                               .end()
				  	 .find('input.popupClose').click(Position.closePopup)
				  	 .end()
				  	 .find('input.oneTouchMore').click(OneTouch.onBuyMore)
				  	 .end()
				  	 .find('div.popup input[name="email"]').focus(General.onFocusEmail).blur(General.onBlurEmail)
				  	 .end()
					 .find('div.popup input[name="passwordFake"]').bind('focus', {container: 'div.popup '}, General.onFocusPassword)
					 .end()
					 .find('div.popup  input[name="password"]').bind('blur', {container: 'div.popup '}, General.onBlurPassword)
					 .end()
					 .find('div.optionDirection, p.goalRate, input.oneTouchApply').addClass(option.direction + 'Direction');

				  var unitsSelect = box.find('td.selectTd select');
				  unitsSelect.attr({id: 'unitsSelect' + i});
				  for(var counter = 1; counter < unitsAvail + 1; counter++){
				  	  $('<option>').val(counter)
				  	  			   .text(counter)	
				  	  			   .appendTo(unitsSelect);
				  }
				  unitsSelect.selectbox({
						inputClass: 'selectboxUnits',
						containerClass: 'selectboxUnitsWrapper',
						scrollBar: true,
						chainTitle: false,
						onChange: OneTouch.changeUnitsNumber
					})
					
				OneTouch.currSelectedOptions.push(option);

			});
			Graphs.loadOneTouchGraphs();
			listBox.removeClass('hidden');
			if(AppData.isAdmin){
				GEdit.create( {container : listBox.find('div.actionMoreContainer .GEdit'),
	                           toolbarContainer : $('#GEditToolbarContainer')
	                        });
	            GEdit.create( {container : listBox.find('div.actionEndContainer .GEdit'),
	                           toolbarContainer : $('#GEditToolbarContainer')
	                        });
			}
		}, 'json');
	},
	
	changeUnitsNumber: function(numberOfUnits, name, element){
		numberOfUnits = parseInt(numberOfUnits);
		var box = element.parents('li');
		var profit = parseInt(box.find('p.profit').text());
		var unitPrice = parseInt(box.find('span.unitPrice').text());
		var payout = parseInt(OneTouch.calculatePayout(profit, unitPrice, numberOfUnits));
		
		box.find('td.oneTouchPayout').text(payout +  AppData.accountCurrency)
		   .end()
		   .find('span.numberOfUnits').text(numberOfUnits)
		   .end()
		   .find('span.unitPriceTotal').text((unitPrice * numberOfUnits) + AppData.accountCurrency);
	},
	
	calculatePayout: function(profit, unitPrice,  numberOfUnits){
		
		return Math.round(numberOfUnits * unitPrice * (profit/100 + 1));
	},
	showAprroval: function(event){
                        var box = $(event.target).parents('li');
        if(!AppData.isLoggedIn)  box.find('div.popup').removeClass('hidden').find('div.popupTitle span').text(AppData.langHome.loginPopupTitle).end().end().find('div#notLoggedIn').removeClass('hidden');
        else{
            OneTouch.currentSec=3
            var currentBalance = parseInt($('#currentBalance').text());
            var Positionamount = parseInt(box.find('span.unitPriceTotal').text());
            if (currentBalance<Positionamount) Position.showPopup(box, AppData.langHome.insufficientFundsErrorPopupTitle,  AppData.langHome.insufficientFundsIsErrorPopupMessage, '', true);
              else {
            var amount = box.find('span.unitPriceTotal').text();
            var assetName= box.find('.assetName').text();
            var endTradeTime= box.find('table.actionTop .endTradeTime').text();
            var goalRate= box.find('.goalRate').text();
                                      
                                     
            box.find('#approvalAssetName_OneTouch').text(assetName);
            box.find('#approvalExpirationDate_OneTouch').text(endTradeTime);
            box.find('#approvalRate_OneTouch').text(goalRate);
            box.find('#approvalInvestment_OneTouch').text(amount);
            box.find('#approvalCountdown_OneTouch').html('00:00:0'+OneTouch.currentSec);
            box.find('div.actionContainer').addClass('hidden')
            box.find('div.actionApprovalContainer').removeClass('hidden')
                                                                   
            var timer = setInterval(function(){
                if (OneTouch.currentSec == null)  clearInterval(timer);
                OneTouch.currentSec = parseInt(OneTouch.currentSec)-1;
                box.find('#approvalCountdown_OneTouch').html('00:00:0'+OneTouch.currentSec);
                /* timeout */
                if (OneTouch.currentSec<=0){
                    clearInterval(timer);
                    OneTouch.hideAprroval(box);
                }
            }, 1000);
        }
        }
    },
    hideAprroval: function(box){
        OneTouch.newPositionMade(box,true);
        box.find('div.actionApprovalContainer').addClass('hidden')                                                   
    },
    onApproveClick: function(event){                            
        OneTouch.currentSec=0;                                   
    },
    onCancelClick: function(event){
        var box = $(event.target).parents('li');
        OneTouch.currentSec=null;      
        box.find('div.actionApprovalContainer').addClass('hidden')     
        box.find('div.actionContainer').removeClass('hidden');   
    },        
	newPositionMade: function(box, approval){
                                      if (approval){
		var numberUnits = box.find('div.selectboxUnitsWrapper ul li.selected').text();
		var optionId = box.find('input[name="oneTouchOptionId"]').val();    
		$.post(AppData.url + AppData.pageId + '/insertOneTouchPosition',{numberUnits: numberUnits, optionId: optionId}, function(data){
			if (typeof data == 'number') {//data is a number of units that left fo current option
				//Update balance
				var currentBalance = parseInt($('#currentBalance').text());
				var amount = parseInt(box.find('span.unitPriceTotal').text());
				$('#currentBalance').text(currentBalance - amount);
				if(data > 0){
					var indexes = data - 1;
					   box.find('div.actionMoreContainer').removeClass('hidden')
					   .end()
					   .find('div.selectboxUnitsWrapper ul li:gt(' + indexes + ')').remove()
					   .end()
					   .find('div.selectboxUnitsWrapper  ul li:eq(0)').click()
					   .end()
					  
				}
				else{//data ==0
					box.find('div.actionEndContainer').removeClass('hidden');
				}
			}
			else {//Error accurd 
				switch(data){//data is an error key
					case 'notLoggedIn':
						box.find('div.popup').removeClass('hidden')
											 .find('div.popupTitle span')
											 	.text(AppData.langHome.loginPopupTitle)
											 	.end()
											 .end()
										 	.find('div#notLoggedIn')
										 		.removeClass('hidden');
								  		break;
					case 'optionIsClosed':
							Position.showPopup(box, AppData.langHome.optionIsClosedErrorPopupTitle,  AppData.langHome.optionIsClosedErrorPopupMessage, '', false);
							break;
					case 'insufficientFunds':
						Position.showPopup(box, AppData.langHome.insufficientFundsErrorPopupTitle,  AppData.langHome.insufficientFundsIsErrorPopupMessage, '', true);
							break;
					case 'allUnitsWasted':
						Position.showPopup(box, AppData.langHome.allUnitsWastedTitle,  AppData.langHome.allUnitsWasted, '', false);
							break;
					case 'suspended':
						 Position.showPopup(box, AppData.langHome.optionSuspendedPopupTitle,  AppData.langHome.optionSuspendedPopupMessage, '', false);
						 break;
				}
							
				
						
			}
							
		}, 'json')
                }
	OneTouch.currentSec=3;
    MyPositions.oneTouchPositions();
	},
	
	onBuyMore: function(event){
		var box = $(event.target).parents('li');
		box.find('div.actionMoreContainer').addClass('hidden')
		   .end()
		   .find('div.actionContainer').removeClass('hidden')		   
	},
	
	
	updateClock: function(){
		
		if(OneTouch.currSelectedOptions != null){
		
         $.each(OneTouch.currSelectedOptions, function(boxNum, option){
         	
            var deferenceTime = ((option.endSaleTimeSeconds*1000 + AppData.timeZoneOffset) - General.dateTime.getTime());
            var timeLeft = OneTouch.convertMsToTime(deferenceTime);
           	timeLeft = timeLeft.split(':');
            Home.container.find('ul#oneTouchList')
            			  .children('li:eq(' + boxNum +')')
            			  .find('div.endTradeTime')
            			  .text(timeLeft[1] + ' h ' + timeLeft[2] + ' min ' + timeLeft[3] + ' sec');
         });
		}
	}, 
	
	convertMsToTime: function(ms){
		
		
		var sec = Math.floor(ms/1000)
		ms = ms % 1000
		t = OneTouch.three(ms)
		
		var min = Math.floor(sec/60)
		sec = sec % 60
		t = OneTouch.two(sec) + ":" + t
		
		var hr = Math.floor(min/60)
		min = min % 60
		t = OneTouch.two(min) + ":" + t
		
		var day = Math.floor(hr/60)
		hr = hr % 60
		t = OneTouch.two(hr) + ":" + t
		t = day + ":" + t
		
		return t;
	},
	 
	two: function(x){
		return ((x > 9) ? "" : "0") + x
	},
	
	three: function(x){
		return (( x > 99) ? "" : "0") + (( x > 9) ? "" : "0" ) + x

	},
         hideOptions: function(){
                PlatformNav.container.find('ul#oneTouchList').find('li').remove();

        }


}

