var lastSelectedHelpItem = ""; // the url of the last selected dialog box.
var generate_quote = true; // set to true means clicking on "your quote" tab generates new quote. Otherwise it attempts to load a previous quote.

$(document).ready(function() {
	
	var emailriddlerarray=[115,97,108,101,115,64,100,105,103,105,112,105,103,101,111,110,46,99,111,109]
	var encryptedemail_id25='' //variable to contain encrypted email 
	for (var i=0; i<emailriddlerarray.length; i++){
		encryptedemail_id25+=String.fromCharCode(emailriddlerarray[i])
	}
	
	$("#sales_email").html('<a href="mailto:'+encryptedemail_id25+'">'+encryptedemail_id25+'</a>')

	var emailriddlerarray=[115,117,112,112,111,114,116,64,100,105,103,105,112,105,103,101,111,110,46,99,111,109]
	var encryptedemail_id50='' //variable to contain encrypted email 
	for (var i=0; i<emailriddlerarray.length; i++){
		encryptedemail_id50+=String.fromCharCode(emailriddlerarray[i])		
	}
	$("#technical_email").html('<a href="mailto:'+encryptedemail_id50+'">'+encryptedemail_id50+'</a>');
		
	var uk_unlimited = $("#uk_unlimited").val();
	
	if(uk_unlimited == 0 || uk_unlimited == 1){
		if(uk_unlimited ==1) var checked = "checked";
		else  checked = "";		
		
		$("#uk_unlimited").css({"display":"none"});
		var help = $("#uk_unlimited_help");
		$("#uk_unlimited_help").remove();
		
		$(".call_uk").append(help);
		$(".call_uk").append("<input id='uk_unlimited_ck' type='checkbox' name='test' "+checked+"  />");
		$(".call_uk").append("<a id='uk_unlimited_link' class='help_link' href='#'> Need more than 4000 free minutes? Click here</a>");
		
		if(($("#uk_unlimited_ck").attr("checked")) == true){
	   		$("#uk_unlimited_link").css({"display":"inline"});
			$("#uk_unlimited").val(1);
		}
	}	
		
	$("#uk_unlimited_ck").click(function(){
		if(($("#uk_unlimited_ck").attr("checked")) == true){
	   		$("#uk_unlimited_link").css({"display":"inline"});
			$("#uk_unlimited").val(1);
		}else{
			$("#uk_unlimited_link").css({"display":"none"});
			$("#uk_unlimited").val(0);
		}
	});	
	
	$("#uk_unlimited_link").click(function(e){
		e.preventDefault();
		if($("#uk_unlimited").css("display")=="none"){
			$("#uk_unlimited_ck").css({"display":"none"});
			$("#uk_unlimited").css({"display":"inline"});
			$("#uk_unlimited_link").text(" Go back to initial selection");
			$("#uk_unlimited_link").css({"display":"none"});
		}else{
			$("#uk_unlimited_ck").css({"display":"inline"});
			$("#uk_unlimited").css({"display":"none"});
			$("#uk_unlimited_link").text(" Need more than 4000 free minutes? Click here");
			if($("#uk_unlimited").val() > 0){
				$("#uk_unlimited_ck").attr("checked", "checked");
			}else{
				$("#uk_unlimited_ck").attr("checked", "");
				$("#uk_unlimited_link").css({"display":"none"});
			}
		}
	});
	
	
	
	var global_unlimited = $("#global_unlimited").val();
	
	if(global_unlimited == 0 || global_unlimited == 1){
		if(global_unlimited == 1){
			var checked = "checked";
		}else{
			checked = "";	
		}
		$("#global_unlimited").css({"display":"none"});
		var help = $("#global_unlimited_help");
		$("#global_unlimited_help").remove();
		
		$(".call_global").append(help);
		$(".call_global").append("<input id='global_unlimited_ck' type='checkbox'"+checked+" name='test'/>");
		$(".call_global").append("<a id='global_unlimited_link' class='help_link' href='#'> Need more than 4000 free minutes? Click here</a>");
		if(($("#global_unlimited_ck").attr("checked"))== true){
			$("#global_unlimited_link").css({"display":"inline"});
			$("#global_unlimited").val(1);
		}
	}
	
			
	$("#global_unlimited_ck").click(function(){
		if(($("#global_unlimited_ck").attr("checked")) == true){
	   		$("#global_unlimited_link").css({"display":"inline"});
			$("#global_unlimited").val(1);
		}else{
			$("#global_unlimited_link").css({"display":"none"});
			$("#global_unlimited").val(0);
		}
	});
		
	$("#global_unlimited_link").click(function(e){
		e.preventDefault();
		if($("#global_unlimited").css("display")=="none"){
			$("#global_unlimited_ck").css({"display":"none"});
			$("#global_unlimited").css({"display":"inline"});
			$("#global_unlimited_link").text(" Go back to initial selection");
			$("#global_unlimited_link").css({"display":"none"});
		}else{
			$("#global_unlimited_ck").css({"display":"inline"});
			$("#global_unlimited").css({"display":"none"});
			$("#global_unlimited_link").text(" Need more than 4000 free minutes? Click here");
			if($("#global_unlimited").val() > 0){
				$("#global_unlimited_ck").attr("checked", "checked");
			}else{
				$("#global_unlimited_ck").attr("checked", "");
				$("#global_unlimited_link").css({"display":"none"});
			}
		}	
	});
	
	
	
	var mobile_bundle = $("#mobile_bundle").val();
	
	if(mobile_bundle == 0 || mobile_bundle == 1){
		if(mobile_bundle == 1) var checked = "checked";
		else  checked = "";		
		
		$("#mobile_bundle").css({"display":"none"});
		var help = $("#mobile_bundle_help");
		$("#mobile_bundle_help").remove();
		
		$(".call_mobile").append(help);
		$(".call_mobile").append("<input id='mobile_bundle_ck' type='checkbox' name='test' "+checked+"  />");
		$(".call_mobile").append("<a id='mobile_bundle_link' class='help_link' href='#'> Need more than 4000 free minutes? Click here</a>");
		
		if(($("mobile_bundle_ck").attr("checked")) == true){
	   		$("#mobile_bundle_link").css({"display":"inline"});
			$("#mobile_bundle").val(1);
		}
	}	
		
	$("#mobile_bundle_ck").click(function(){
		if(($("#mobile_bundle_ck").attr("checked")) == true){
	   		$("#mobile_bundle_link").css({"display":"inline"});
			$("#mobile_bundle").val(1);
		}else{
			$("#mobile_bundle_link").css({"display":"none"});
			$("#mobile_bundle").val(0);
		}
	});	
	
	$("#mobile_bundle_link").click(function(e){
		e.preventDefault();
		if($("#mobile_bundle").css("display")=="none"){
			$("#mobile_bundle_ck").css({"display":"none"});
			$("#mobile_bundle").css({"display":"inline"});
			$("#mobile_bundle_link").text(" Go back to initial selection");
			$("#mobile_bundle_link").css({"display":"none"});
		}else{
			$("#mobile_bundle_ck").css({"display":"inline"});
			$("#mobile_bundle").css({"display":"none"});
			$("#mobile_bundle_link").text(" Need more than 4000 free minutes? Click here");
			if($("#mobile_bundle").val() > 0){
				$("#mobile_bundle_ck").attr("checked", "checked");
			}else{
				$("#mobile_bundle_ck").attr("checked", "");
				$("#mobile_bundle_link").css({"display":"none"});
			}
		}
	});
	
	
	
	
	
// edit help buttons
	$("#dialog").dialog({
		bgiframe:true,
		modal: true,
		width: 700,
		resizable: false,
		autoOpen: false
	});
	
	setupHelpButton($("#lines_help"));
	setupHelpButton($("#bandwidth_help"));
	setupHelpButton($("#grandstream-gxp-2000_help"));
	setupHelpButton($("#siemens-C475_help"));
	setupHelpButton($("#siemens-S685_help"));
	setupHelpButton($("#linksys-PAP2T_help"));
	setupHelpButton($("#uk_unlimited_help"));
	setupHelpButton($("#global_unlimited_help"));
	setupHelpButton($("#mobile_bundle_help"));
	setupHelpButton($("#numbers_help"));
	setupHelpButton($("#number_ports_help"))
	setupHelpButton($("#engineer_help"));
	setupHelpButton($("#mobiles_help"));
		
	function setupHelpButton(item){
		var href = item.attr("href");
		item.attr("href","#info");
		item.click(function(e){
			e.preventDefault();
			if(lastSelectedHelpItem == href){
				$("#dialog").dialog("open");
			}else{
				$("#dialog").html("<div style='text-align:center; padding:50px;'><img src='/image/loading.gif' alt='loading...'/></div>");
				$("#dialog").dialog("open");
				$.ajax({
					url: href,
					success: function(msg){
						$("#dialog").html(msg);
						$("#dialog").dialog('option','position','center');
						lastSelectedHelpItem = href;
					},
					error: function(){
						$("#dialog").dialog("close");
					}
			    });
			}
		});
	}
// end edit help buttons
	
	
	
	
	
// create slider containers	
	$("div.concurrent").append("<div id ='lines_slider'></div>");
	$("div.phone_g").append("<div id ='phone_g_slider'></div>");
	$("div.phone_sc").append("<div id ='phone_sc_slider'></div>");
	$("div.phone_ss").append("<div id ='phone_ss_slider'></div>");
	$("div.phone_l").append("<div id ='phone_l_slider'></div>");
	$("div.number_ports").append("<div id='number_ports_slider'></div>")
	$("div.call_it").append("<div id ='call_it_slider'></div>");
// end create slider containers

// create sliders
	$("#lines_slider").slider({value:$("#lines").val(),min: 1,max: 25,step: 1,slide: function(event, ui) {$("#lines").val(ui.value);}});
	$("#phone_g_slider").slider({value:$("#phone_g_gxp2000").val(),min: 0,max: 25,step: 1,slide: function(event, ui) {$("#phone_g_gxp2000").val(ui.value);}});
	$("#phone_sc_slider").slider({value:$("#phone_s_c475ip").val(),min: 0,max: 25,step: 1,slide: function(event, ui) {$("#phone_s_c475ip").val(ui.value);}});
	$("#phone_ss_slider").slider({value:$("#phone_s_s685p").val(),min: 0,max: 25,step: 1,slide: function(event, ui) {$("#phone_s_s685p").val(ui.value);}});
	$("#phone_l_slider").slider({value:$("#phone_l_pap2t").val(),min: 0,max: 25,step: 1,slide: function(event, ui) {$("#phone_l_pap2t").val(ui.value);}});
	$("#number_ports_slider").slider({value:$("#num_ports").val(),min:0, max:25, step:1, slide:function(event, ui){ $("#num_ports").val(ui.value);}});
	$("#call_it_slider").slider({value:$("#numbers").val(),min: 1,max: 25,step: 1,slide: function(event, ui) {$("#numbers").val(ui.value);}});
// end create slider containers
    
    
    
// events for changing the slider when the textbox value changes.
    $("#lines").keyup(function(){ numericCheck(this); $("#lines_slider").slider('option','value',$(this).val()); });
    $("#phone_g_gxp2000").keyup(function(){ numericCheck(this); $("#phone_g_slider").slider('option','value',$(this).val()); });
    $("#phone_s_c475ip").keyup(function(){ numericCheck(this); $("#phone_sc_slider").slider('option','value',$(this).val()); });
    $("#phone_s_s685p").keyup(function(){ numericCheck(this); $("#phone_ss_slider").slider('option','value',$(this).val()); });
    $("#phone_l_pap2t").keyup(function(){ numericCheck(this); $("#phone_l_slider").slider('option','value',$(this).val()); });
    $("#num_ports").keyup(function(){ numericCheck(this); $("#number_ports_slider").slider('option','value',$(this).val()); })
    $("#numbers").keyup(function(){ numericCheck(this); $("#call_it_slider").slider('option','value',$(this).val()); });
    
    function numericCheck(item){
    	var orig = $(item).val();
		var val = orig;
    	var item_id = $(item).attr("id");
    	var def = (item_id == 'lines' || item_id == 'numbers') ? def = 1 : 0; 
    	
    	if(val != "" && (isNaN(val) || val < def)) val = def;
    	if(!isNaN(Math.round(val)) && Math.round(val) != orig) $(item).val(Math.round(val));
    }
// end of textbox changing events
    
    
    
    
    $("#submit").remove();
    $("#tabs").css({"display":"block"});
    
    // .childtab requred so that all divs within tab# are not done together.
	$("#tab1 div.childtab").append($("fieldset.user_detail"));
	$("#tab2 div.childtab").append($("fieldset.lines"));
	$("#tab3 div.childtab").append($("fieldset.phones"));
	$("#tab4 div.childtab").append($("fieldset.options")); 
	$("#tab5 div.childtab").append($("fieldset.complete"));
	$("#tabcontainer").append($("#tabs"));
	
	$("fieldset.user_detail").append("<div id='voucher_message'></div>");

	$(function() {
		$("#tabs").tabs();
	});
	
	$("#user_next").click(function () {
     	 $("#sys_link").trigger('click');
    });
	
	$("#sys_next").click(function () {
      	$("#phone_link").trigger('click');
    });
	
	$("#phone_next").click(function () {
	    $("#opt_link").trigger('click');
	});
	$("#opt_next").click(function (e) {
	    $("#quote_link").trigger('click');
	    getQuote(e);
	});
	
	
	$("#user_link").click(function () {
      	$("#name").focus();
   	});
	$("#sys_link").click(function () {
		$("#lines").focus();
   	});
	$("#phone_link").click(function () {
      	$("#phone_g_gxp2000").focus();
	});
	$("#opt_link").click(function () {
	    $("#uk_unlimited").focus();
	});
	  
	$("#quote_link").click(function(e) {
//	    $("#button").focus();
//		if(typeof(generate_quote) == 'undefined') generate_quote = true;
		getQuote(e);
	}); 
	  
	if($("#tab1").css("display")=="block"){
		$("#name").focus();
	}
	
	
	$("#tabs").keyup(function(e) {
		var id="";
		if(e.keyCode == 13) {
			 $("a.next").each(function(){
			 	var display = $(this).parent().css("display");
		 	  	if(display=="block"){
					id = $(this);			
				}
		    });
		    if($("#tab5").css("display")=="block"){
		    	$("#button").trigger('click');
		 	}
		}
		$(id).trigger('click');
	});

	$("#button").click(function(e){
		getQuote(e);
	});
	
	$("#voucher").keyup(function(e) {
  		var voucherCode = $("#voucher").val();
 		setTimeout(function(){
			if(voucherCode == $("#voucher").val()){
				$.ajax({
					type: "POST",
					data:"voucher="+voucherCode,
					url: "/voip/voucher_code",
					success: function(msg){
						if(msg == ''){
							$("#voucher").css("background-color","#ffffff");
						}else{
							if(msg == 1){
								$("#voucher").css("background-color","#ccffcc");
							}else{
								$("#voucher").css("background-color","#ffcccc");
							}
						}
	   				}
    			}); 
			}
				
		},500);
	});

	
	// functions to send form via ajax to be processed then update the final value.
	function getQuote(e){
		$("#tab5 div").html("<div style='text-align:center; padding:50px;'><img src='/image/loading.gif' alt='loading...'/></div>");
		e.preventDefault();
		var params = $("#checkout").serialize();
		var ajax_url = '/voip/calc';
		if(!generate_quote){
			ajax_url += '?quote=' + $("#quote_id").val();
		}
	    $.ajax({
			type: "POST",
			data:params,
			url: ajax_url,
			success: function(msg){
				$("#tab5 div").html(msg);
				
				var original_email = $("#email").val();
				$("#email_address").val(original_email);
				
				$("input#send_email").click(function(e){
					e.preventDefault();
					
					$("#dialog").html("<div style='text-align:center; padding:50px;'><img src='/image/loading.gif' alt='loading...'/></div>");
					$("#dialog").dialog("open");
					
					$.ajax({
						type: "POST",
						data: $("#email_data").serialize(),
						url: "/voip/email",
						success: function(msg){
							$("#dialog").html(msg);
							$("#dialog").dialog('option','position','center');
							lastSelectedHelpItem = "/voip/email";
						}
					});
				});
		   	}
	    }); 
	};
	

 	$('#image_rotate').innerfade({   
        speed: 'slow',   
        timeout:6000,   
        type: 'sequence',   
        containerheight: '235px'  
    });  

	$("#check").remove();
	$("div.check_cost").append("<a class='next' id='check_button' href=''>Check</a>");

	$("#check_button").click(function(e){
		e.preventDefault();
		var params = $("#callcharges").serialize();
	    $.ajax({
			type: "POST",
			data:params,
			url: "/voip/call_charges",
			success: function(msg){
			  	$("#result").html(msg);
		   	}
	    }); 
	});


	if(typeof(loaded_quote) == 'undefined') loaded_quote = false;
	if(typeof(load_fail) == 'undefined') load_fail = false;
	
	if(loaded_quote){
		generate_quote = false;
		$("#quote_link").trigger('click');
		generate_quote = true;
	}
	if(load_fail){
		var quote_id = $("#quote_id").val();
		$("#dialog").html("<h1>Quote Not Found</h1><p>The quote id '" + quote_id + "' was not found.</p><p>This could be because the quote has expired.</p>");
		$("#dialog").dialog("open");	
	}
    
    
    
// voip call calculator scripts start here //
    
    setup_rows();
    
    function redrawCallCostTable(){
    	var params = $('#call_cost_add').serialize();
    	$.ajax({
    		type: 'GET',
    		data: params,
    		url: '/voip/call',
    		success: function(msg){
    			$('#rightColumn').html(msg);
    			setup_rows();
    		}
    	});
    }
    
    function setup_rows(){
    	$('a.voip_call_edit').css('display','inline');
    	
    	$('input#add_button').click(function(e){
	    	e.preventDefault();
	    	redrawCallCostTable();
	    });
	    $('input.voip_call_text').keyup(function(e){
	    	if(e.keyCode == 13){
	    		e.preventDefault();
	    		redrawCallCostTable();
	    	}
	    });
	    $('.voip_call_remove').click(function(e){
	    	e.preventDefault();
	    	$.ajax({
	    		url: $(this).attr('href'),
	    		success: function(msg){
	    			$('#rightColumn').html(msg);
	    			setup_rows();
	    		}
			});
	    });
	    
	    $('#form_number').keyup(function(e){
	    	$('#add_button').val('Add');
	    });
	    
	    $('.voip_call_edit').click(function(e){
	    	e.preventDefault();
	    	var data = $(this).attr('id');
	    	data = data.split('-');
	
	    	$('#form_number').val(data[0]);
	    	$('#form_peak_minutes').val(data[1]);
	    	$('#form_evening_minutes').val(data[2]);
	    	$('#form_weekend_minutes').val(data[3]);
	    	$('#add_button').val('Save');
		});
    }
    
// end of voip call calculator scripts //

});	
