var OneTouch = {
	currSelectedOptions: null,
	
	init: function(){
	 	
	},
	
	onTabClick: function(){
		Home.container.find('ul#oneTouchList').find('li').remove();
		$.post(AppData.url + AppData.pageId + '/getOnSaleOneTouchOptions',{}, function(options){
			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({title: option.assetId + '_' + option.goalRate + '_' + option.direction})
				  	 .end()
				  	 .find('div.actionMoreContainer .GEdit').attr('id', 'home-actiomoregedit-private' +'-' + i)
				  	 .end()
				  	 .find('div.actionContainer input.oneTouchApply').click(OneTouch.newPositionMade)
				  	 .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(265, 140);
			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));
	},
	
	newPositionMade: function(event){
		var box = $(event.target).parents('li');
		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.actionContainer').addClass('hidden')
					   .end()
					   .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.actionContainer').addClass('hidden')
					   .end()
					   .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')
						
	},
	
	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){
         	
            if (AppData.domain.indexOf('server') === -1) {
			 	var d = new Date();
					
				var endTime = new Date(option.endSaleTimeSeconds*1000 + d.getTimezoneOffset()*60*1000);			 			
				deferenceTime = endTime.getTime() - General.dateTime.getTime();
				
         	} else {
         		
              	deferenceTime = (option.endSaleTimeSeconds*1000 - 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

	}
	


}