// JavaScript Document
			function roundNumber(rnum, rlength) { // Arguments: number to round, number of decimal places
			  var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
			  document.roundform.numberfield.value = newnumber; // Output the result to the form field (change for your purposes)
			}
			

			
            $(document).ready(function(){
			if(	$('#calc').is(':visible')	){	
			
			//select all input text boxes
			textboxes = $("input:text");

			var IE = /*@cc_on!@*/false;
			
		   
		   /////////////////////////////////////////////////
		   
		     ///////////////////////////////////////////////////////////////////////////////
			//function to disable form submition on enter
		   function checkForEnter(event) {
			  if (event.keyCode == 13) {
				 if($(this).hasClass("simcard"))
				 {
					//currentTextboxNumber= textboxes.index($('input[type="text"]').find(":first"));
					currentTextboxNumber= -1;
				 }
				 else
				 	currentTextboxNumber = textboxes.index(this);
				 
				 
				 if (textboxes[currentTextboxNumber + 1] != null) 
				 {
				   	 nextTextbox = textboxes[currentTextboxNumber + 1];
					 if(nextTextbox.className=="simcard")
					 {
						//currentTextboxNumber= textboxes.index($('input[type="text"]').find(":first"));
						 nextTextbox = textboxes[0];U
					 }
					
				  	nextTextbox.select();
			  	 }
		
				 event.preventDefault();
				 return false;
			  }
		   }
		   
		   		//set enter trap
		   if ($.browser.mozilla) {
			  $(textboxes).keypress(checkForEnter);
		   } else {
			  $(textboxes).keydown(checkForEnter);
		   }
			///////////////////////////////////////////////////////////////////////////////////////
			
			var initialSimCardPrice = parseFloat($("input[name*=simcard]:text").parent().next().html());
				
				$('label[name^=options-total]:first').text($('input[name=monprice1]:hidden').val());
				$('label[name^=subtotal]:first').text($('input[name=monprice1]:hidden').val());
				
				
				$("input[type=text]").val("");
				
				$("form").submit(function() {
					var currTotal = parseFloat($("label[name=total-calc]").text());	
					if(isNaN(currTotal))
						return false;
					if(currTotal<1)
						return false;
					$(":submit",this).attr("disabled", "disabled");
				});
				
				//monitoring vars //////////////////////////////////////
						// var spreadFees = $("input[name^=add-spread]:hidden");
						// var monCurPrice = $("input[name^=monprice]:hidden");
						// var basePrice = $("input[name^=mon-base]:hidden");
					  //var monthlyMonitoring = $(".month-fee");
				///////////////////////////////////////////////////////////////////////////////
				
                $("form.addtocart input").change(function(event){
					var title =  $(this).attr('class');	
					
					var mult = 0.0;
					
					var bFirstPart = true;
					
					
					
					switch(title)
					{
						case "one": mult = parseFloat($("input[name*=one]").parent().next().html()); break;
						case "two": mult = parseFloat($("input[name*=two]").parent().next().html()); break;
						case "three":mult = parseFloat($("input[name*=three]").parent().next().html()); break;
						case "four":mult = parseFloat($("input[name*=four]").parent().next().html()); break;
						case "five":mult = parseFloat($("input[name*=five]").parent().next().html()); break;
						case "six":mult =  parseFloat($("input[name*=six]").parent().next().html());break;
						case "seven":mult = parseFloat($("input[name*=seven]").parent().next().html()); break;
						case "eight":mult = parseFloat($("input[name*=eight]").parent().next().html());break;
						case "nine":mult =  parseFloat($("input[name*=nine]").parent().next().html());break;
						case "ten":mult =  parseFloat($("input[name*=ten]").parent().next().html());break;
						case "eleven":mult = parseFloat($("input[name*=eleven]").parent().next().html());break;
						default:mult = 0.0; bFirstPart = false;
					}
					
					if(bFirstPart)
					{
						var firstTime = true;
						var value = parseFloat($(this).val());
						if(isNaN(value))
						{
							value = 0.0;
							$(this).text("");
						}
						var oldVal =  parseFloat($("label."+title).text());
						if(isNaN(oldVal))
							oldVal = 0.0;
							
						var newMult = (mult* parseFloat(value));
						var curTotal = parseFloat($("label[name=total-calc]").text());
						var newTotal = 0.0;
	
						if(newMult <= 0)
						{
							$("label."+title).text("");
							newTotal = curTotal - oldVal;
						}
						else
						{
							$("label."+title).text(newMult.toFixed(2));
							newTotal = curTotal - oldVal + newMult;
						}
						
						
						$("label[name=total-calc]").text(newTotal.toFixed(2));
					
						var subtotalVal = parseFloat($('label[name^=subtotal]:first').text());
						var subtotalNewVal = subtotalVal-curTotal+newTotal;
						//$('label[name^=subtotal]:first').text(subtotalNewVal.toFixed(2));
						$('label[name^=subtotal]:first').text(subtotalNewVal.toFixed(2));
						
						//////////////////////////////////////////////////////////start manitoring tracking ///////////////////////////////////////////
						//get cindex of ccurrent input field
						var currentTextboxNumber = textboxes.index(this);
						
						var strCurrentMonFeesAdds = $("input[name^=add-fee]:hidden").val();
						
						
						if(!isNaN(strCurrentMonFeesAdds))
						{
							var curMonAdd =  parseFloat(strCurrentMonFeesAdds);
							
							
							if(IE)//as always IE ha problem with regex
							{
								var  itemMonitorFee = parseFloat($(".percentfee").eq(currentTextboxNumber).val());
							}
							else
							{
								var  itemMonitorFee = parseFloat($("input[name*=percentfee]:hidden").eq(currentTextboxNumber).val());
							}
							if(curMonAdd<=0 || isNaN(curMonAdd))
							{
								curMonAdd = newMult*itemMonitorFee;
							}
							else
							{
								curMonAdd = curMonAdd + (newMult.toPrecision())*itemMonitorFee - (oldVal.toPrecision())*itemMonitorFee;
							}
							
							//alert("Cur Mon Add " + curMonAdd);
							
							 $("input[name^=add-fee]:hidden").val(curMonAdd.toPrecision());
							
							////////////////////////////////////////////////////////////////////////////////////
							
							$(".month-fee").each(function(index) {
							var indexPlus = index+1;
							var newMonPrice = new Number(0.0);
							//alert("First Methond " + parseFloat($("input[name^=add-spread]:hidden").eq(index).val()) + " Second Methond " + parseFloat($(".add-spread").eq(index).val()));
							
							if(IE)
							{
								newMonPrice = parseFloat($(".mon-base").eq(index).val()) + curMonAdd/parseFloat($(".add-spread").eq(index).val());
								//alert("Mon Base " + parseFloat($(".mon-base").eq(index).val()) + "Current Add " + curMonAdd + " Spread " + parseFloat($(".add-spread").eq(index).val()));
							}
							else
							{
								newMonPrice = parseFloat($("input[name^=mon-base]:hidden").eq(index).val()) + curMonAdd/parseFloat($("input[name^=add-spread]:hidden").eq(index).val());
							}
							//alert("Index "+index);
							//var tempA = parseFloat($("input[name^=mon-base]:hidden").eq(index).val());
							//var tempB = parseFloat($("input[name^=add-spread]:hidden").eq(index).val());
							//alert(index);
							//alert($(".mon-base").eq(index).val());
							//alert($("input[name^=add-spread]:hidden").eq(index).val());
							//get rate for the year, get parent of selected item and fine year field
							
							//alert("IS IE " + IE + " New Month Fees " + newMonPrice); 
							var newYearPrice = new Number((newMonPrice*12.00*(index+1.0)).toFixed(2));
							
							//alert("New Month Fee "+ newMonPrice + " New Year Price "+ newYearPrice);
							
							$(this).parent().find(".total-fee").text(newYearPrice.toFixed(2));
							
							//set month rate
							$(this).text(newMonPrice.toFixed(2));
							
							var selectedYear = new Number(parseInt($("input[name*='monitoring']:radio").val()));
							
							if((selectedYear==indexPlus)&& !isNaN(selectedYear))
							{
								
									 
							    var currentOption = new Number(parseFloat($('label[name^=options-total]:first').text()));
								
								// does not work IE var monitorPrice = new Number(parseFloat($('input[name=monprice' + indexPlus + ']:hidden').val()));  								//alert("Monitor Price: " + monitorPrice);
								
								var monitorPrice = new Number(parseFloat($(".monprice").eq(index).val()));  								
								
								//alert("Monitor Price: " + monitorPrice);
								//alert("Monitor Price: "+monitorPrice);
								
								var pricechange = 0;
								
								if(isNaN(currentOption)|| currentOption==0 )
								{// track change only if current price is not empty
									currentOption = 0;
								}
								else
									pricechange = new Number(currentOption - monitorPrice);
								
								var newOption = newYearPrice + pricechange;
								
								//alert("New Options " + newOption);
								
								var temp = new Number(newOption);
								//alert("New Options " + temp);
								
								$('label[name^=options-total]:first').text(temp.toFixed(2));
								//alert(temp);
								var recentNewVal = new Number(parseFloat($('label[name^=subtotal]:first').text()));
								//alert(recentNewVal);
								var  change2 = newOption - currentOption
								temp = new Number(recentNewVal + change2);
								//temp = new Number(newSubtotal);
								//alert(temp);	
								$('label[name^=subtotal]:first').text(temp.toFixed(2));
								//subtotal.text(newSubtotal.toFixed(2));
							}
							
							
							//set fields for calculation
							$('input[name=monprice' + indexPlus + ']:hidden').val(newYearPrice);
							
							
						  });
							
						}

						 
						 ////////////////////////////////////////////// end of manitoring tracking ////////////////////////
						
						if($(this).is('#panel'))
						{
							$("input[name*=simcard]:text").val($(this).val());
							$("input[name*=simcard]:text").trigger('change');
						}	
						
					}
				});
				
				
				
				
				//calc simcard
				$("input[name*=simcard]:text").change(function(event){
						var yearPrice = parseFloat($(this).parent().next().html());
						var monitoringPeriod = $("input[name*='monitoring']:checked").val();
						var simTotalLabel = $("label.simcard:first");
						var simCurrent = parseFloat(simTotalLabel.text());
						
						//alert("Year Price " + yearPrice + " Total Label " + simTotalLabel + " Curent " + simCurrent);
						
						if(isNaN(simCurrent))
						{
								 simCurrent = 0;
						}
						
						var optionsCurrent =  parseFloat($('label[name^=options-total]:first').text());
						
							//alert("Options Current" + optionsCurrent);
						
						if(isNaN(optionsCurrent))
						{
							optionsCurrent = 0.0;	
						}
						
						var simQty = $(this).val();
						
						if(isNaN(simQty))
						{
							simQty = 0;
							$(this).val(0);
							
						}
						
						var simNew = yearPrice*simQty;
						var optionsTotalNew = optionsCurrent - simCurrent + simNew;
						
						simTotalLabel.html(simNew);
						
						$('label[name^=options-total]:first').text(optionsTotalNew.toFixed(2));
						
						var subtotal = $('label[name^=subtotal]:first');
						
						var curSubtotal = parseFloat($('label[name^=subtotal]:first').text());
						var newSubtotal = curSubtotal - simCurrent + simNew
						subtotal.text(newSubtotal.toFixed(2));
						 
														  });
				
				//change length of contract
				$("input[name*='monitoring']:radio").change(function(event)
				{
					var simInput = $("input[name*=simcard]:text");
					
					var simQty = simInput.val();
					
					//alert("Sim INput" + simQty);
					
					if(isNaN(simQty))
					{
						simQty = 0;
						simInput.val(0);
					}
					
					//get current simcard total
					var simTotalLabel = $("label.simcard:first");
					var simCurrentTotal = parseFloat(simTotalLabel.text());
					
					var simNewPrice = initialSimCardPrice*$(this).val();
					var simNewTotal = simNewPrice*simQty;
					
					simInput.parent().next().html(simNewPrice);
					
					simTotalLabel.text(simNewTotal);
					
					var optionsTotalInput =  $('label[name^=options-total]:first');
					var subtotal = $('label[name^=subtotal]:first');

					var currentOption = parseFloat(optionsTotalInput.text());
					var currentSubtotal = parseFloat(subtotal.text());
					
					//alert("Options Total " + currentOption + " Subtotal " + currentSubtotal);
					if(IE)
					{
						var contrlMonitor = $('.monprice').eq($(this).val()-1);
					}
					else
					{
						var contrlMonitor = $('input[name=monprice' + $(this).val() + ']:hidden');
					}
					
					var monitorPrice = parseFloat(contrlMonitor.val());
					
					//alert("000000000 Monitor Price " + monitorPrice);
					
					var newOption = simNewTotal + monitorPrice;
	
					var newSubtotal = currentSubtotal - currentOption + newOption;
					
					//alert("New Options " + newOption + " new Subtotal " + newSubtotal);
					
					optionsTotalInput.text(newOption.toFixed(2));
					subtotal.text(newSubtotal.toFixed(2));
					if(!IE)
					{
						var currentOption = parseFloat(optionsTotalInput.text());
						var currentSubtotal = parseFloat(subtotal.text());
						var contrlMonitor = $('input[name=monprice' + $(this).val() + ']:hidden');
						var monitorPrice = parseFloat(contrlMonitor.val());
						
						var newOption = simNewTotal + monitorPrice;
						var newSubtotal = currentSubtotal - currentOption + newOption;
						
						optionsTotalInput.text(newOption.toFixed(2));
						subtotal.text(newSubtotal.toFixed(2));
					}


				});	 
				
			}
				
	});

