JXG.Options.text.useKatex = true;
JXG.Options.axis.ticks.majorHeight = 10;
JXG.Options.axis.ticks.insertTicks = false;
JXG.Options.axis.ticks.ticksDistance = 100;
var board = JXG.JSXGraph.initBoard('box1', {
boundingbox:[-12, 18, 18, -12],showNavigation:false, showcopyright: false, axis: true,
});
var h = board.create('slider',[[-12,-11],[-8,-11],[-10,3,9]], {name:'h'});
var p = board.create('slider',[[-12,-8],[-8,-8],[-4,2.6,5]], {name:'p'});
var k = board.create('slider',[[-12,-5],[-8,-5],[-6,1,5]], {name:'k'});
var f1 = board.create('functiongraph',[function(x){ return (x-h.Value())*(x-h.Value())/4/p.Value()+ k.Value();}, -100, 100],{strokeColor:'red'});
var p1 = board.create('point', [function(x){return h.Value();},function(x){return k.Value()+p.Value();}],{name:''});
var p2 = board.create('point', [function(x){return h.Value()},function(x){return k.Value()}],{name:''});
var f2 = board.create('functiongraph',[function(x){ return k.Value()-p.Value();}, -12, 25],{strokeColor:'red'});
txt1 = board.create('text', [function(x){return h.Value()-5;}, function(x){return k.Value()+p.Value()+3;}, function(){
return 'F'+'(h,k+p)';
}], {fontSize: 12, strokeColor:'red', anchorY: 'top'});
txt4 = board.create('text', [-6,16, function(){
return '(x-h)^2=4p(y-k)';
}], {fontSize: 12, fixed:true, strokeColor:'red', anchorY: 'top'});
var g2 = board.create('glider', [-4.0, 8, f2],{visible:false});
var g3 = board.create('glider', [-1.0, 8, f2],{visible:false});
var l2 = board.create('segment', [g2, g3],{withLabel:true, name:'l',color:'transparent', label:{offset:[-10,-10]},});
var pl1 = board.create('parallel', [l2, p1],{visible:false});
t1 = board.create('transform', [-Math.PI/2], {type: 'rotate'}),
pr1 = board.create('point', [p1, [t1]], {name:"",color: 'blue'});
gr2 = board.create('point', [g2, [t1]],{visible:false});
gr3 = board.create('point', [g3, [t1]],{visible:false});
lr = board.create('line', [gr2,gr3],{strokeWidth:1, color:"blue"});
el = board.create('parabola',[pr1,lr],{strokeColor:"blue"});
txt2 = board.create('text', [function(x){return k.Value()+p.Value()-3;}, function(x){return -h.Value()-1;}, function(){
return "F'"+'(k+p,-h)';
}], {fontSize: 12, strokeColor:'red', anchorY: 'top'});