<script type="text/javascript">
(function (cjs, an) {

var p; // shortcut to reference prototypes
var lib={};var ss={};var img={};
lib.webFontTxtInst = {}; 
var loadedTypekitCount = 0;
var loadedGoogleCount = 0;
var gFontsUpdateCacheList = [];
var tFontsUpdateCacheList = [];
lib.ssMetadata = [
		{name:"kseal_engine_components_new_atlas_", frames: [[0,1522,859,464],[0,725,873,795],[1449,1280,335,119],[1117,374,808,246],[1438,1612,479,423],[1449,622,505,245],[0,0,1115,723],[1449,1091,384,187],[1117,0,791,372],[861,1612,575,422],[875,725,572,885],[1449,869,350,220],[1786,1280,164,114],[1801,869,191,177]]}
];



lib.updateListCache = function (cacheList) {		
	for(var i = 0; i < cacheList.length; i++) {		
		if(cacheList[i].cacheCanvas)		
			cacheList[i].updateCache();		
	}		
};		

lib.addElementsToCache = function (textInst, cacheList) {		
	var cur = textInst;		
	while(cur != null && cur != exportRoot) {		
		if(cacheList.indexOf(cur) != -1)		
			break;		ro
		cur = cur.parent;		
	}		
	if(cur != exportRoot) {		
		var cur2 = textInst;		
		var index = cacheList.indexOf(cur);		
		while(cur2 != null && cur2 != cur) {		
			cacheList.splice(index, 0, cur2);		
			cur2 = cur2.parent;		
			index++;		
		}		
	}		
	else {		
		cur = textInst;		
		while(cur != null && cur != exportRoot) {		
			cacheList.push(cur);		
			cur = cur.parent;		
		}		
	}		
};		

lib.gfontAvailable = function(family, totalGoogleCount) {		
	lib.properties.webfonts[family] = true;		
	var txtInst = lib.webFontTxtInst && lib.webFontTxtInst[family] || [];		
	for(var f = 0; f < txtInst.length; ++f)		
		lib.addElementsToCache(txtInst[f], gFontsUpdateCacheList);		

	loadedGoogleCount++;		
	if(loadedGoogleCount == totalGoogleCount) {		
		lib.updateListCache(gFontsUpdateCacheList);		
	}		
};		

lib.tfontAvailable = function(family, totalTypekitCount) {		
	lib.properties.webfonts[family] = true;		
	var txtInst = lib.webFontTxtInst && lib.webFontTxtInst[family] || [];		
	for(var f = 0; f < txtInst.length; ++f)		
		lib.addElementsToCache(txtInst[f], tFontsUpdateCacheList);		

	loadedTypekitCount++;		
	if(loadedTypekitCount == totalTypekitCount) {		
		lib.updateListCache(tFontsUpdateCacheList);		
	}		
};
// symbols:



(lib.CylinderHead = function() {
	this.spriteSheet = ss["kseal_engine_components_new_atlas_"];
	this.gotoAndStop(0);
}).prototype = p = new cjs.Sprite();



(lib.EngineBlock = function() {
	this.spriteSheet = ss["kseal_engine_components_new_atlas_"];
	this.gotoAndStop(1);
}).prototype = p = new cjs.Sprite();



(lib.FreezePlug = function() {
	this.spriteSheet = ss["kseal_engine_components_new_atlas_"];
	this.gotoAndStop(2);
}).prototype = p = new cjs.Sprite();



(lib.HeadGasket = function() {
	this.spriteSheet = ss["kseal_engine_components_new_atlas_"];
	this.gotoAndStop(3);
}).prototype = p = new cjs.Sprite();



(lib.HeaterCore = function() {
	this.spriteSheet = ss["kseal_engine_components_new_atlas_"];
	this.gotoAndStop(4);
}).prototype = p = new cjs.Sprite();



(lib.HoseHeaterCore = function() {
	this.spriteSheet = ss["kseal_engine_components_new_atlas_"];
	this.gotoAndStop(5);
}).prototype = p = new cjs.Sprite();



(lib.HoseLower = function() {
	this.spriteSheet = ss["kseal_engine_components_new_atlas_"];
	this.gotoAndStop(6);
}).prototype = p = new cjs.Sprite();



(lib.HoseReturn = function() {
	this.spriteSheet = ss["kseal_engine_components_new_atlas_"];
	this.gotoAndStop(7);
}).prototype = p = new cjs.Sprite();



(lib.HoseWaterPump = function() {
	this.spriteSheet = ss["kseal_engine_components_new_atlas_"];
	this.gotoAndStop(8);
}).prototype = p = new cjs.Sprite();



(lib.IntakeManifold = function() {
	this.spriteSheet = ss["kseal_engine_components_new_atlas_"];
	this.gotoAndStop(9);
}).prototype = p = new cjs.Sprite();



(lib.Radiator = function() {
	this.spriteSheet = ss["kseal_engine_components_new_atlas_"];
	this.gotoAndStop(10);
}).prototype = p = new cjs.Sprite();



(lib.Reservoir = function() {
	this.spriteSheet = ss["kseal_engine_components_new_atlas_"];
	this.gotoAndStop(11);
}).prototype = p = new cjs.Sprite();



(lib.Thermostat = function() {
	this.spriteSheet = ss["kseal_engine_components_new_atlas_"];
	this.gotoAndStop(12);
}).prototype = p = new cjs.Sprite();



(lib.WaterPump = function() {
	this.spriteSheet = ss["kseal_engine_components_new_atlas_"];
	this.gotoAndStop(13);
}).prototype = p = new cjs.Sprite();
// helper functions:

function mc_symbol_clone() {
	var clone = this._cloneProps(new this.constructor(this.mode, this.startPosition, this.loop));
	clone.gotoAndStop(this.currentFrame);
	clone.paused = this.paused;
	clone.framerate = this.framerate;
	return clone;
}

function getMCSymbolPrototype(symbol, nominalBounds, frameBounds) {
	var prototype = cjs.extend(symbol, cjs.MovieClip);
	prototype.clone = mc_symbol_clone;
	prototype.nominalBounds = nominalBounds;
	prototype.frameBounds = frameBounds;
	return prototype;
	}


(lib.mcHoseWaterPump = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.HoseWaterPump();
	this.instance.parent = this;
	this.instance.setTransform(-197.7,-93,0.5,0.5);

	this.timeline.addTween(cjs.Tween.get(this.instance).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcHoseWaterPump, new cjs.Rectangle(-197.7,-93,395.5,186), null);


(lib.mcHoseReturn = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.HoseReturn();
	this.instance.parent = this;
	this.instance.setTransform(-96,-46.7,0.5,0.5);

	this.timeline.addTween(cjs.Tween.get(this.instance).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcHoseReturn, new cjs.Rectangle(-96,-46.7,192,93.5), null);


(lib.mcHoseLower = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.HoseLower();
	this.instance.parent = this;
	this.instance.setTransform(-278.7,-180.7,0.5,0.5);

	this.timeline.addTween(cjs.Tween.get(this.instance).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcHoseLower, new cjs.Rectangle(-278.7,-180.7,557.5,361.5), null);


(lib.mcHoseHeaterCore = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.HoseHeaterCore();
	this.instance.parent = this;
	this.instance.setTransform(-126.2,-61.2,0.5,0.5);

	this.timeline.addTween(cjs.Tween.get(this.instance).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcHoseHeaterCore, new cjs.Rectangle(-126.2,-61.2,252.5,122.5), null);


(lib.mcDot = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// dot
	this.shape = new cjs.Shape();
	this.shape.graphics.f("#F56723").s().p("AhBBCQgbgbAAgnQAAgmAbgbQAcgbAlAAQAmAAAcAbQAbAbAAAmQAAAngbAbQgcAbgmAAQglAAgcgbg");

	this.timeline.addTween(cjs.Tween.get(this.shape).wait(72));

	// ring 1
	this.shape_1 = new cjs.Shape();
	this.shape_1.graphics.f().s("#F56723").ss(2,1,1).p("ABQAAQAAAdgSAWQgDADgCADQgYAXghAAQggAAgYgXQgCgDgDgDQgBgBgBgBQgQgVAAgcQAAgbAQgVQAEgEADgEQAYgXAgAAQAhAAAYAXQAXAYAAAgg");

	this.shape_2 = new cjs.Shape();
	this.shape_2.graphics.f().s("rgba(245,103,35,0.965)").ss(2,1,1).p("AhRAAQAAgbARgWQAIgKACgBQAXgVAfAAQAkACAWAWQAYAYAAAhQgBAegRAWQgDADgDADQgZAYghAAQAAAAAAAAQgggBgYgWQgBAAAAgBQgDgDgDgDQgBgBAAgBQgRgWAAgcg");

	this.shape_3 = new cjs.Shape();
	this.shape_3.graphics.f().s("rgba(245,103,35,0.929)").ss(1.9,1,1).p("AhTAAQAAgcARgWQAJgKABgBQAYgWAgAAQAkABAYAXQAYAZAAAiQAAAfgSAWQgDADgDAEQgaAYgiAAQAAAAAAAAQghAAgZgXQAAgBgBAAQgDgEgDgDQgBgBAAAAQgRgXAAgdg");

	this.shape_4 = new cjs.Shape();
	this.shape_4.graphics.f().s("rgba(245,103,35,0.898)").ss(1.9,1,1).p("AhVAAQAAgdARgWQAJgKABgBQAZgXAhAAQAlABAYAYQAZAaAAAiQAAAfgTAXQgDAEgDADQgaAZgiAAQgBAAAAAAQgiAAgZgYQgBAAgBgBQgCgDgDgDQgBgBgBgBQgRgXAAgeg");

	this.shape_5 = new cjs.Shape();
	this.shape_5.graphics.f().s("rgba(245,103,35,0.863)").ss(1.8,1,1).p("AhXAAQAAgeARgXQAJgKACgBQAZgXAiAAQAmABAZAYQAZAbAAAjQAAAggTAYQgDADgDADQgbAagjAAQgBAAAAAAQgjAAgagYQgBgBAAgBQgDgDgDgDQgBgBgBgBQgRgXAAgfg");

	this.shape_6 = new cjs.Shape();
	this.shape_6.graphics.f().s("rgba(245,103,35,0.827)").ss(1.8,1,1).p("AhZAAQAAgeASgYQAJgKABgBQAagYAiAAQAoABAZAZQAaAbAAAkQAAAhgTAYQgDADgDAEQgcAagkAAQgBAAAAAAQgkAAgagZQgBgBgBAAQgDgEgDgDQgBgBAAgBQgSgYAAgfg");

	this.shape_7 = new cjs.Shape();
	this.shape_7.graphics.f().s("rgba(245,103,35,0.792)").ss(1.7,1,1).p("AhcAAQAAgfATgYQAJgLACgBQAagYAjgBQApACAaAZQAaAcABAlQgBAhgTAZQgEAEgDADQgcAbglABQgBAAAAAAQglgBgbgZQgBgBAAgBQgDgDgDgDQgBgCgBAAQgTgZAAggg");

	this.shape_8 = new cjs.Shape();
	this.shape_8.graphics.f().s("rgba(245,103,35,0.757)").ss(1.7,1,1).p("AheAAQAAggATgYQAJgLACgBQAbgZAkgBQApABAbAbQAcAcAAAmQgBAigUAZQgDAEgDAEQgdAbgmABQgBAAAAAAQglgBgcgaQgBgBgBAAQgDgEgDgDQgBgBgBgBQgTgZAAghg");

	this.shape_9 = new cjs.Shape();
	this.shape_9.graphics.f().s("rgba(245,103,35,0.725)").ss(1.6,1,1).p("AhgAAQAAggATgaQAKgKABgCQAcgZAlgBQAqABAbAbQAdAdAAAnQgBAjgUAaQgDAEgEADQgdAdgnAAQgBAAAAAAQgmgBgdgbQgBAAgBgBQgDgDgDgEQgBgBgBgBQgTgZAAgig");

	this.shape_10 = new cjs.Shape();
	this.shape_10.graphics.f().s("rgba(245,103,35,0.69)").ss(1.6,1,1).p("AhiAAQAAghAUgaQAJgLACgBQAcgaAlgBQAsABAcAbQAdAeAAAoQAAAkgVAaQgEAEgDAEQgeAdgoAAQgBAAAAAAQgnAAgegcQAAgBgBgBQgDgDgEgEQgBgBAAgBQgUgaAAgig");

	this.shape_11 = new cjs.Shape();
	this.shape_11.graphics.f().s("rgba(245,103,35,0.655)").ss(1.5,1,1).p("AhkAAQAAgiAUgaQAKgLABgBQAdgbAmgBQAtABAcAcQAeAeAAApQAAAkgWAbQgDAEgEAEQgeAegpAAQgBAAAAAAQgoAAgegdQgBAAgBgBQgDgEgDgDQgBgBgBgBQgUgbAAgjg");

	this.shape_12 = new cjs.Shape();
	this.shape_12.graphics.f().s("rgba(245,103,35,0.62)").ss(1.5,1,1).p("AhmAAQAAgjAUgaQAKgLACgCQAdgbAngBQAuABAdAcQAeAfAAAqQAAAlgWAbQgDAFgEADQgfAfgqAAQAAAAgBAAQgpAAgfgdQgBgBAAgBQgEgDgDgEQgBgBgBgBQgUgbAAgkg");

	this.shape_13 = new cjs.Shape();
	this.shape_13.graphics.f().s("rgba(245,103,35,0.584)").ss(1.4,1,1).p("AhoAAQAAgjAVgcQAJgLACgBQAegcAngBQAvAAAeAeQAfAfAAArQAAAmgWAcQgEAEgDAEQggAfgrAAQAAAAgBAAQgqAAgfgeQgBgBgBAAQgDgEgEgEQgBgBAAgBQgVgbAAglg");

	this.shape_14 = new cjs.Shape();
	this.shape_14.graphics.f().s("rgba(245,103,35,0.553)").ss(1.4,1,1).p("AhrAAQAAgkAWgcQAKgLABgCQAfgcAogCQAwABAfAeQAfAgABAsQgBAmgWAdQgEAEgEAEQggAggrABQgBAAgBAAQgrgBgggeQgBgBgBgBQgDgEgDgDQgBgCgBgBQgWgcAAglg");

	this.shape_15 = new cjs.Shape();
	this.shape_15.graphics.f().s("rgba(245,103,35,0.518)").ss(1.3,1,1).p("AhtAAQAAglAWgcQAKgMACgBQAfgdApgCQAxABAfAfQAgAgABAtQgBAngXAdQgDAFgEAEQghAggsABQgBAAgBAAQgsgBgggfQgBgBgBgBQgEgDgDgEQgBgBgBgBQgWgdAAgmg");

	this.shape_16 = new cjs.Shape();
	this.shape_16.graphics.f().s("rgba(245,103,35,0.482)").ss(1.2,1,1).p("AhvAAQAAglAWgdQAKgMACgBQAggeAqgCQAyABAgAfQAhAiAAAtQAAAogYAdQgEAFgEAEQgiAhgsABQgBAAgBAAQgsAAgiggQgBgBgBgBQgDgEgEgEQgBgBgBgBQgWgdAAgng");

	this.shape_17 = new cjs.Shape();
	this.shape_17.graphics.f().s("rgba(245,103,35,0.447)").ss(1.2,1,1).p("AhxAAQAAgmAXgeQAKgLACgCQAggeAqgCQA0ABAgAgQAiAiAAAuQAAApgYAeQgEAEgEAFQgjAhgtABQgBAAgBAAQgtAAgighQgBgBgBgBQgEgEgEgEQgBgBAAgBQgXgdAAgog");

	this.shape_18 = new cjs.Shape();
	this.shape_18.graphics.f().s("rgba(245,103,35,0.416)").ss(1.1,1,1).p("AhzAAQAAgnAXgeQAKgMACgBQAhgfArgCQA1ABAhAgQAiAjAAAvQAAApgYAfQgEAFgFAEQgjAjguAAQgBAAgBAAQguAAgjghQgBgBgBgCQgEgDgDgEQgBgCgBgBQgXgeAAgog");

	this.shape_19 = new cjs.Shape();
	this.shape_19.graphics.f().s("rgba(245,103,35,0.38)").ss(1.1,1,1).p("Ah1AAQAAgnAXgfQALgMABgCQAigfAsgCQA1AAAiAiQAjAjAAAwQAAAqgZAfQgEAFgEAFQgkAjgvAAQgBAAgBAAQgvAAgjgiQgBgBgCgBQgDgEgEgEQgBgBgBgBQgXgfAAgpg");

	this.shape_20 = new cjs.Shape();
	this.shape_20.graphics.f().s("rgba(245,103,35,0.345)").ss(1,1,1).p("Ah3AAQAAgoAXgfQALgMACgCQAiggAtgCQA2AAAjAiQAjAkAAAwQAAAsgZAfQgEAFgEAFQglAkgwAAQgBAAgBAAQgwAAgkgiQgBgCgBgBQgEgEgEgEQgBgBgBgBQgXgfAAgqg");

	this.shape_21 = new cjs.Shape();
	this.shape_21.graphics.f().s("rgba(245,103,35,0.31)").ss(1,1,1).p("Ah6AAQAAgpAZggQAKgMACgCQAjggAtgDQA4ABAjAjQAkAkABAxQgBAsgZAhQgEAFgFAEQglAlgxABQgBAAgBAAQgxgBgkgjQgCgBgBgBQgEgEgDgEQgBgCgBgBQgZgfAAgrg");

	this.shape_22 = new cjs.Shape();
	this.shape_22.graphics.f().s("rgba(245,103,35,0.275)").ss(0.9,1,1).p("Ah8AAQAAgqAZggQALgMACgCQAjghAugDQA5ABAkAjQAkAlABAyQAAAtgbAhQgEAFgEAFQgmAlgyABQgBAAgBAAQgyAAglgkQgBgCgBgBQgEgEgEgEQgBgBgBgCQgZggAAgrg");

	this.shape_23 = new cjs.Shape();
	this.shape_23.graphics.f().s("rgba(245,103,35,0.243)").ss(0.9,1,1).p("Ah+AAQAAgqAZghQALgNACgBQAjgjAwgCQA6ABAkAjQAlAmABAzQAAAugbAhQgEAFgFAFQgmAmgyABQgCAAgBAAQgzAAgmglQgBgBgBgCQgEgEgEgEQgBgBgBgBQgZghAAgsg");

	this.shape_24 = new cjs.Shape();
	this.shape_24.graphics.f().s("rgba(245,103,35,0.208)").ss(0.8,1,1).p("AiAAAQAAgrAaghQAKgNACgCQAkgjAwgCQA7AAAlAlQAnAmAAA0QAAAvgbAhQgEAGgFAFQgnAmgzABQgCAAgBAAQgzAAgngmQgBgBgCgBQgEgEgEgFQgBgBAAgBQgaghAAgtg");

	this.shape_25 = new cjs.Shape();
	this.shape_25.graphics.f().s("rgba(245,103,35,0.173)").ss(0.8,1,1).p("AiCAAQAAgsAagiQALgMACgCQAkgkAxgCQA8AAAmAlQAnAnAAA1QAAAvgbAjQgFAFgFAFQgnAng0ABQgCAAgBAAQg0AAgogmQgBgBgBgCQgEgEgEgEQgBgCgBgBQgaghAAgug");

	this.shape_26 = new cjs.Shape();
	this.shape_26.graphics.f().s("rgba(245,103,35,0.137)").ss(0.7,1,1).p("AiEAAQAAgsAagjQALgNACgCQAlgkAygCQA9AAAmAmQAoAnAAA2QAAAwgcAjQgEAFgFAGQgoAng1ABQgCAAgBAAQg1AAgognQgBgBgCgBQgEgFgEgEQgBgBgBgCQgagiAAgug");

	this.shape_27 = new cjs.Shape();
	this.shape_27.graphics.f().s("rgba(245,103,35,0.102)").ss(0.7,1,1).p("AiGAAQAAgtAagjQAMgNACgCQAlglAzgCQA+AAAnAmQAoAoAAA3QAAAxgcAjQgEAGgFAFQgpAog2ABQgBAAgCAAQg2AAgpgnQgBgCgBgBQgFgEgEgFQgBgBgBgBQgagjAAgvg");

	this.shape_28 = new cjs.Shape();
	this.shape_28.graphics.f().s("rgba(245,103,35,0.071)").ss(0.6,1,1).p("AiIAAQAAguAbgjQALgNACgCQAmgmAzgCQBAAAAnAnQApApAAA3QAAAxgcAkQgFAGgFAFQgpAqg3AAQgBAAgCAAQg3AAgpgoQgCgBgBgCQgEgEgEgEQgBgCgBgBQgbgjAAgwg");

	this.shape_29 = new cjs.Shape();
	this.shape_29.graphics.f().s("rgba(245,103,35,0.035)").ss(0.6,1,1).p("AiLAAQAAgvAcgkQALgNACgCQAngmA0gDQBAAAApAoQApAqABA4QAAAygdAlQgFAFgFAGQgqAqg4ABQgBAAgCAAQg4AAgqgpQgBgCgCgBQgEgFgEgEQgBgCgBgBQgcgjAAgxg");

	this.shape_30 = new cjs.Shape();
	this.shape_30.graphics.f().s("rgba(245,103,35,0)").ss(0.5,1,1).p("ACOAAQAAA7gqApQgpAqg7AAQg5AAgqgqQgqgpAAg7QAAg6AqgpQAqgqA5AAQA7AAApAqQAqApAAA6g");

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.shape_1}]}).to({state:[{t:this.shape_2}]},1).to({state:[{t:this.shape_3}]},1).to({state:[{t:this.shape_4}]},1).to({state:[{t:this.shape_5}]},1).to({state:[{t:this.shape_6}]},1).to({state:[{t:this.shape_7}]},1).to({state:[{t:this.shape_8}]},1).to({state:[{t:this.shape_9}]},1).to({state:[{t:this.shape_10}]},1).to({state:[{t:this.shape_11}]},1).to({state:[{t:this.shape_12}]},1).to({state:[{t:this.shape_13}]},1).to({state:[{t:this.shape_14}]},1).to({state:[{t:this.shape_15}]},1).to({state:[{t:this.shape_16}]},1).to({state:[{t:this.shape_17}]},1).to({state:[{t:this.shape_18}]},1).to({state:[{t:this.shape_19}]},1).to({state:[{t:this.shape_20}]},1).to({state:[{t:this.shape_21}]},1).to({state:[{t:this.shape_22}]},1).to({state:[{t:this.shape_23}]},1).to({state:[{t:this.shape_24}]},1).to({state:[{t:this.shape_25}]},1).to({state:[{t:this.shape_26}]},1).to({state:[{t:this.shape_27}]},1).to({state:[{t:this.shape_28}]},1).to({state:[{t:this.shape_29}]},1).to({state:[{t:this.shape_30}]},1).to({state:[]},1).wait(42));

}).prototype = p = new cjs.MovieClip();
p.nominalBounds = new cjs.Rectangle(-9.3,-9.3,18.6,18.6);


(lib.mcCalloutBackground = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.shape = new cjs.Shape();
	this.shape.graphics.f("#FFFFFF").s().p("A2pZoQgyAAAAg6MAAAgxbQAAg6AyAAMAtTAAAQAyAAAAA6MAAAAxbQAAA6gyAAg");

	this.timeline.addTween(cjs.Tween.get(this.shape).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcCalloutBackground, new cjs.Rectangle(), null);


(lib.btnCalloutButton = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.shape = new cjs.Shape();
	this.shape.graphics.f("#F76707").s().rr(-79.55,-23.5,159.1,47,5);
	this.shape.setTransform(0,0,0.723,1);

	this.shape_1 = new cjs.Shape();
	this.shape_1.graphics.f("#C55206").s().rr(-79.55,-23.5,159.1,47,5);
	this.shape_1.setTransform(0,0,0.723,1);

	this.shape_2 = new cjs.Shape();
	this.shape_2.graphics.f("#000000").s().rr(-79.55,-23.5,159.1,47,5);
	this.shape_2.setTransform(0,0,0.723,1);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.shape}]}).to({state:[{t:this.shape_1}]},1).to({state:[{t:this.shape_2}]},1).wait(2));

}).prototype = p = new cjs.MovieClip();
p.nominalBounds = new cjs.Rectangle(-57.5,-23.5,115.1,47);


(lib.mcWaterPump = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.mcDot();
	this.instance.parent = this;
	this.instance.setTransform(-1,30.1);

	this.instance_1 = new lib.WaterPump();
	this.instance_1.parent = this;
	this.instance_1.setTransform(-47.7,-44.2,0.5,0.5);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance_1},{t:this.instance}]}).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcWaterPump, new cjs.Rectangle(-47.7,-44.2,95.5,88.5), null);


(lib.mcThermostat = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.mcDot();
	this.instance.parent = this;
	this.instance.setTransform(-5,-7.9);

	this.instance_1 = new lib.Thermostat();
	this.instance_1.parent = this;
	this.instance_1.setTransform(-41,-28.5,0.5,0.5);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance_1},{t:this.instance}]}).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcThermostat, new cjs.Rectangle(-41,-28.5,82,57), null);


(lib.mcReservoir = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.mcDot();
	this.instance.parent = this;
	this.instance.setTransform(4,-18.9);

	this.instance_1 = new lib.Reservoir();
	this.instance_1.parent = this;
	this.instance_1.setTransform(-87.5,-55,0.5,0.5);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance_1},{t:this.instance}]}).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcReservoir, new cjs.Rectangle(-87.5,-55,175,110), null);


(lib.mcRadiator = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.mcDot();
	this.instance.parent = this;
	this.instance.setTransform(41,-78.9);

	this.instance_1 = new lib.Radiator();
	this.instance_1.parent = this;
	this.instance_1.setTransform(-143,-221.2,0.5,0.5);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance_1},{t:this.instance}]}).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcRadiator, new cjs.Rectangle(-143,-221.2,286,442.5), null);


(lib.mcIntakeManifold = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.mcDot();
	this.instance.parent = this;
	this.instance.setTransform(38,-51.9);

	this.instance_1 = new lib.IntakeManifold();
	this.instance_1.parent = this;
	this.instance_1.setTransform(-143.7,-105.5,0.5,0.5);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance_1},{t:this.instance}]}).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcIntakeManifold, new cjs.Rectangle(-143.7,-105.5,287.5,211), null);


(lib.mcHeaterCore = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.mcDot();
	this.instance.parent = this;
	this.instance.setTransform(71,39.1);

	this.instance_1 = new lib.HeaterCore();
	this.instance_1.parent = this;
	this.instance_1.setTransform(-119.7,-105.7,0.5,0.5);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance_1},{t:this.instance}]}).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcHeaterCore, new cjs.Rectangle(-119.7,-105.7,239.5,211.5), null);


(lib.mcHeadGasket = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.mcDot();
	this.instance.parent = this;
	this.instance.setTransform(-121,38.1);

	this.instance_1 = new lib.HeadGasket();
	this.instance_1.parent = this;
	this.instance_1.setTransform(-202,-61.5,0.5,0.5);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance_1},{t:this.instance}]}).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcHeadGasket, new cjs.Rectangle(-202,-61.5,404,123), null);


(lib.mcFreezePlug = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.mcDot();
	this.instance.parent = this;
	this.instance.setTransform(-8,-4.9);

	this.instance_1 = new lib.FreezePlug();
	this.instance_1.parent = this;
	this.instance_1.setTransform(-83.7,-29.7,0.5,0.5);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance_1},{t:this.instance}]}).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcFreezePlug, new cjs.Rectangle(-83.7,-29.7,167.5,59.5), null);


(lib.mcEngineBlock = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.mcDot();
	this.instance.parent = this;
	this.instance.setTransform(-120,91);

	this.instance_1 = new lib.EngineBlock();
	this.instance_1.parent = this;
	this.instance_1.setTransform(-218.2,-198.7,0.5,0.5);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance_1},{t:this.instance}]}).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcEngineBlock, new cjs.Rectangle(-218.2,-198.7,436.5,397.5), null);


(lib.mcCylinderHead = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_1
	this.instance = new lib.mcDot();
	this.instance.parent = this;
	this.instance.setTransform(-116,-21.5);

	this.instance_1 = new lib.CylinderHead();
	this.instance_1.parent = this;
	this.instance_1.setTransform(-214.7,-116,0.5,0.5);

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.instance_1},{t:this.instance}]}).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcCylinderHead, new cjs.Rectangle(-214.7,-116,429.5,232), null);


(lib.mcCalloutButton = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Layer_2
	this.txtCalloutButton = new cjs.Text("Learn More", "normal 700 18px 'Fira Sans'", "#FFFFFF");
	this.txtCalloutButton.name = "txtCalloutButton";
	this.txtCalloutButton.lineHeight = 30;
	this.txtCalloutButton.lineWidth = 98;
	this.txtCalloutButton.parent = this;
	this.txtCalloutButton.setTransform(-47,-12.5);
	if(!lib.properties.webfonts['Fira Sans']) {
		lib.webFontTxtInst['Fira Sans'] = lib.webFontTxtInst['Fira Sans'] || [];
		lib.webFontTxtInst['Fira Sans'].push(this.txtCalloutButton);
	}

	this.timeline.addTween(cjs.Tween.get(this.txtCalloutButton).wait(1));

	// Layer_1
	this.instance = new lib.btnCalloutButton();
	this.instance.parent = this;
	new cjs.ButtonHelper(this.instance, 0, 1, 2, false, new lib.btnCalloutButton(), 3);

	this.timeline.addTween(cjs.Tween.get(this.instance).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcCalloutButton, new cjs.Rectangle(-57.5,-23.5,115.1,47), null);


(lib.mcCallout = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// timeline functions:
	this.frame_0 = function() {
		/* Click to Go to Web Page
		Clicking on the specified symbol instance loads the URL in a new browser window.
		
		Instructions:
		1. Replace http://www.adobe.com with the desired URL address.
		   Keep the quotation marks ("").
		*/
		
		//this.mcCalloutButton.bg_clickTag.cursor = "pointer"
		this.mcCalloutButton.addEventListener("click", fl_ClickToGoToWebPage);
		
		function fl_ClickToGoToWebPage() {
			window.open(currentComponentLink, "_parent");
		}
	}

	// actions tween:
	this.timeline.addTween(cjs.Tween.get(this).call(this.frame_0).wait(1));

	// Layer_1
	this.mcCalloutButton = new lib.mcCalloutButton();
	this.mcCalloutButton.name = "mcCalloutButton";
	this.mcCalloutButton.parent = this;
	this.mcCalloutButton.setTransform(-76,126);

	this.txtComponentDescription = new cjs.Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ultrices purus non ipsum feugiat, nec efficitur sem porttitor. Aenean sit amet sapien sit amet massa aliquam pretium.", "normal 400 18px 'Fira Sans'", "#333333");
	this.txtComponentDescription.name = "txtComponentDescription";
	this.txtComponentDescription.lineHeight = 28;
	this.txtComponentDescription.lineWidth = 267;
	this.txtComponentDescription.parent = this;
	this.txtComponentDescription.setTransform(-133.6,-109.3);
	if(!lib.properties.webfonts['Fira Sans']) {
		lib.webFontTxtInst['Fira Sans'] = lib.webFontTxtInst['Fira Sans'] || [];
		lib.webFontTxtInst['Fira Sans'].push(this.txtComponentDescription);
	}

	this.txtComponentName = new cjs.Text("Component Name", "normal 700 22px 'Fira Sans'", "#234287");
	this.txtComponentName.name = "txtComponentName";
	this.txtComponentName.lineHeight = 36;
	this.txtComponentName.lineWidth = 267;
	this.txtComponentName.parent = this;
	this.txtComponentName.setTransform(-133.6,-154.3);
	if(!lib.properties.webfonts['Fira Sans']) {
		lib.webFontTxtInst['Fira Sans'] = lib.webFontTxtInst['Fira Sans'] || [];
		lib.webFontTxtInst['Fira Sans'].push(this.txtComponentName);
	}

	this.timeline.addTween(cjs.Tween.get({}).to({state:[{t:this.txtComponentName},{t:this.txtComponentDescription},{t:this.mcCalloutButton}]}).wait(1));

	// Layer_2
	this.mcCalloutBackground = new lib.mcCalloutBackground();
	this.mcCalloutBackground.name = "mcCalloutBackground";
	this.mcCalloutBackground.parent = this;
	this.mcCalloutBackground.shadow = new cjs.Shadow("rgba(153,153,153,1)",0,5,15);

	this.timeline.addTween(cjs.Tween.get(this.mcCalloutBackground).wait(1));

}).prototype = getMCSymbolPrototype(lib.mcCallout, new cjs.Rectangle(-166,-175,336,364), null);


// stage content:
(lib.ksealenginecomponents = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// timeline functions:
	this.frame_0 = function() {
		this.stop();
		
		var root = this;
		
		//counts the number of reasons that the callout should be visible
		calloutShow = 0;
		calloutVisibility();
		
		//gather up all the components
		var engineComponents = [this.mcRadiator,
								this.mcHoseLower,
								this.mcReservoir,
								this.mcThermostat,
								this.mcHoseWaterPump,
								this.mcIntakeManifold,
								this.mcWaterPump,
								this.mcCylinderHead,
								this.mcHeadGasket,
								this.mcFreezePlug,
								this.mcEngineBlock,
								this.mcHoseHeaterCore,
								this.mcHeaterCore,
								this.mcHoseReturn
								];
		
		
		//initialize engine components
		engineComponents.forEach(function(item, index, array) {
			
			//set origin x and y
			item.originX = item.x;
			item.originY = item.y;
				
			//add mouseover and mouseout listeners only to important components
			if( index == 1 || index == 4 || index == 11 || index == 13 ){
					//do nothing
			} else {
				
				//add component mouseover listener
				item.addEventListener("mouseover", componentRollOver);
				item.addEventListener("MouseEvent.CLICK", componentRollOver);
			
				//add component mouseout listener
				item.addEventListener("mouseout", componentRollOut);
			}
		});
		
		//holds the web link for the current component
		currentComponentLink = "";
		
		// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
		// !-- Set the text and links for the callouts here --!
		// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
		
		//text for the callout button
		this.mcCallout.mcCalloutButton.txtCalloutButton.text = "Learn More";
		
		//callout headline
		this.mcRadiator.txtComponentName = "Radiator";
		
		//callout body copy
		this.mcRadiator.txtComponentDescription = "The radiator is designed to transfer heat between the cooling system and the atmosphere in order to maintain the correct engine temperature. The main reason radiators fail is due to corrosion or damage causing a leak, which can lead to the engine overheating  - potentially costing you a lot of money to get it fixed. So how can you look out for a leak, and fix it?";
		
		//callout link address (use absolute links)
		//this.mcRadiator.txtComponentLink = "1131";
		this.mcRadiator.txtComponentLink = "https://www.kseal.com/expert-advice/engine-problems/radiator";
		
		
		
		this.mcReservoir.txtComponentName = "Reservoir";
		this.mcReservoir.txtComponentDescription = "Known as the expansion tank, header tank or reservoir, this is a container located near the radiator that holds the excess or overflowing cooling agent used in the engine. In most modern cars this is also where you would top up the coolant and add K-Seal. In older cars you may still need to add K-Seal via the radiator.";
		//this.mcReservoir.txtComponentLink = "28";
		
		
		this.mcReservoir.txtComponentLink = "https://www.kseal.com/using-k-seal/instructions/how-to-use-k-seal";
		
		
		this.mcThermostat.txtComponentName = "Thermostat";
		this.mcThermostat.txtComponentDescription = "Sitting between the engine and the radiator, the thermostat is critical to making your car’s cooling system work. If the engine is too hot, the thermostat acknowledges this and lets coolant flow freely through the radiator in order to cool the engine. If the engine is too cool the thermostat reduces or stops the flow of coolant to the radiator allowing the engine to warm up.";
		//this.mcThermostat.txtComponentLink = "1131";
		this.mcThermostat.txtComponentLink = "https://www.kseal.com/expert-advice/engine-problems/radiator";
		
		this.mcIntakeManifold.txtComponentName = "Intake Manifold";
		this.mcIntakeManifold.txtComponentDescription = "Your vehicle’s intake manifold is a vital part of the internal combustion engine. Its primary purpose is to evenly distribute the mixture of air and fuel into the cylinders. The intake manifold also conducts coolant through the cylinders to reduce engine temperature – helping to keep your engine running smoothly. However, it can be very difficult to identify symptoms as related to intake manifold failure – unless you know what to look out for.";
		//this.mcIntakeManifold.txtComponentLink = "1134";
		this.mcIntakeManifold.txtComponentLink = "https://www.kseal.com/expert-advice/engine-problems/intake-manifold";
		
		this.mcWaterPump.txtComponentName = "Water Pump";
		this.mcWaterPump.txtComponentDescription = "The water pump ensures that enough coolant liquid is flowing around the cooling system in order to remove sufficient heat to prevent the engine overheating. The more the engine works the faster coolant is pushed around the cooling system. Water pumps do malfunction from time to time, but the most common issue is the casing developing a leak.  This will lead to overheating which can cause serious damage to other parts of the engine, including the cylinder head and block. Fortunately, there is an affordable way to fix this…";
		//this.mcWaterPump.txtComponentLink = "1133";
		this.mcWaterPump.txtComponentLink = "https://www.kseal.com/expert-advice/engine-problems/water-pump";
		
		this.mcCylinderHead.txtComponentName = "Cylinder Head";
		this.mcCylinderHead.txtComponentDescription = "A cylinder head sits on top of the engine block and covers its cylinders, creating the combustion chamber. A complicated part of the engine, if the cylinder head fails it will lead to the engine (and by extension the vehicle) breaking down. Any problem it might develop should therefore be repaired as quickly as possible.";
		//this.mcCylinderHead.txtComponentLink = "1136";
		this.mcCylinderHead.txtComponentLink = "https://www.kseal.com/expert-advice/engine-problems/cylinder-head";
		
		this.mcHeadGasket.txtComponentName = "Head Gasket";
		this.mcHeadGasket.txtComponentDescription = "A head gasket acts as the seal between the engine block and cylinder head. It seals the combustion gases within the engine and keeps out the coolant that is designed to cool the engine cylinder. If you don’t notice the early symptoms of head gasket leaks and continue to drive the car, things will get progressively worse. And should the head gasket blow, some motorists may find it cheaper to scrap the vehicle than fork out to have it repaired.";
		//this.mcHeadGasket.txtComponentLink = "1128";
		this.mcHeadGasket.txtComponentLink = "https://www.kseal.com/expert-advice/engine-problems/head-gasket";
		
		this.mcFreezePlug.txtComponentName = "Freeze Plug";
		this.mcFreezePlug.txtComponentDescription = "Commonly known as a freeze plug, core plug, or expansion plug, this engine component is left over from the casting process when the engine block was manufactured. Corrosion can result in the core plug leaking leading to more severe problems due to overheating.";
		//this.mcFreezePlug.txtComponentLink = "1130";
		this.mcFreezePlug.txtComponentLink = "https://www.kseal.com/expert-advice/engine-problems/engine-block";
		
		this.mcEngineBlock.txtComponentName = "Engine Block";
		this.mcEngineBlock.txtComponentDescription = "The engine or cylinder block is the key component of an internal combustion engine, where the power to drive the vehicle is generated by igniting a mixture of fuel and air to produce an explosion. Performing a number of functions, the engine block needs to be monitored to ensure the engine – and car as a whole – continue to run safely. Leave a problem unchecked, and it could cost you thousands to repair. But there are ways to recognise the symptoms before the problem gets worse.";
		//this.mcEngineBlock.txtComponentLink = "1130";
		this.mcEngineBlock.txtComponentLink = "https://www.kseal.com/expert-advice/engine-problems/engine-block";
		
		
		this.mcHeaterCore.txtComponentName = "Heater Core";
		this.mcHeaterCore.txtComponentDescription = "The heater core is also known as the heater matrix. Instead of removing heat to the outside air like the radiator, the heater core transfers heat to the vehicle interior to help keep you warm. If the heater core leaks, you may no longer be able to warm up your vehicle’s interior, and more coolant than usual may be being used up. Getting this replaced or repaired is a time consuming and expensive job.";
		//this.mcHeaterCore.txtComponentLink = "1132";
		this.mcHeaterCore.txtComponentLink = "https://www.kseal.com/expert-advice/engine-problems/heater-core";
		
		
		// !!!!!!!!!!!!!!!!!!!!!!!!!
		// !-- Stop editing here --!
		// !!!!!!!!!!!!!!!!!!!!!!!!!
		
		//adjust component target X and Y
		this.mcRadiator.targetX = 223;
		this.mcRadiator.targetY = 537;
		
		this.mcHoseLower.targetX = 845;
		this.mcHoseLower.targetY = 680;
		
		this.mcReservoir.targetX = 530;
		this.mcReservoir.targetY = 773;
		
		this.mcThermostat.targetX = 954;
		this.mcThermostat.targetY = 445;
		
		this.mcHoseWaterPump.targetX = 697;
		this.mcHoseWaterPump.targetY = 457;
		
		this.mcIntakeManifold.targetX = 770;
		this.mcIntakeManifold.targetY = 535;
		
		this.mcWaterPump.targetX = 407;
		this.mcWaterPump.targetY = 538;
		
		this.mcCylinderHead.targetX = 626;
		this.mcCylinderHead.targetY = 144;
		
		this.mcHeadGasket.targetX = 622;
		this.mcHeadGasket.targetY = 295;
		
		this.mcFreezePlug.targetX = 864;
		this.mcFreezePlug.targetY = 664;
		
		this.mcEngineBlock.targetX = 623;
		this.mcEngineBlock.targetY = 526;
		
		this.mcHoseHeaterCore.targetX = 881;
		this.mcHoseHeaterCore.targetY = 345;
		
		this.mcHeaterCore.targetX = 972;
		this.mcHeaterCore.targetY = 283;
		
		this.mcHoseReturn.targetX = 395;
		this.mcHoseReturn.targetY = 356;
		
		
		//initialize original z-index
		this.mcRadiator.originZ = 14;
		this.mcHoseLower.originZ = 13;
		this.mcReservoir.originZ = 12;
		this.mcThermostat.originZ = 11;
		this.mcHoseWaterPump.originZ = 10;
		this.mcIntakeManifold.originZ = 9;
		this.mcWaterPump.originZ = 8;
		this.mcCylinderHead.originZ = 7;
		this.mcHeadGasket.originZ = 6;
		this.mcFreezePlug.originZ = 5;
		this.mcEngineBlock.originZ = 4;
		this.mcHoseHeaterCore.originZ = 3;
		this.mcHeaterCore.originZ = 2;
		this.mcHoseReturn.originZ = 1;
		
		//reorders components into correct z-order stack
		function resetZ() {
			engineComponents.forEach(function(item, index, array) {
				item.parent.setChildIndex(item, item.originZ);
			});
		}
		
		////mouse over listener
		stage.enableMouseOver(10);
		var mouse = {x:0, y:0};
		
		
		//stage mouseover listener
		stage.addEventListener("mouseover", over.bind(this));
		function over(){
			//explode the components to their target locations
		  engineComponents.forEach(function(item, index, array) {
				TweenLite.to(item, 0.75, {y:item.targetY, x:item.targetX, ease:Power1.easeInOut});
			});
			
		}
		
		stage.addEventListener("mouseout", out.bind(this));
		function out(){
			//implode the components to their original location
		  engineComponents.forEach(function(item, index, array) {
				TweenLite.to(item, 0.75, {x:item.originX, y:item.originY, ease:Power1.easeInOut});
			});
		}
		
		
		//when mouse rolls over a component
		function componentRollOver(e) {
			
			var compName = e.currentTarget.txtComponentName;
			var compDesc = e.currentTarget.txtComponentDescription;
			var compLink = e.currentTarget.txtComponentLink;
			
			jQuery('.lightbox .dialogue-box').html('<h2>' + compName + '</h2>' + '<p>' + compDesc + '</p>' + '<a href="'+ compLink +'" class="btn-primary btn">Learn More </a>');
			
			jQuery('.tooltip-title').html(compName).show();
			
			if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { jQuery('.phone-moreinfo').show(); }
						
			jQuery('.canvas-wrap').css( 'cursor', 'pointer' );
			
			
			//scale up the target
			TweenLite.to(e.currentTarget, 0.3, {scaleX:1.1, scaleY:1.1, ease:Power1.easeInOut});
			//pop it to the top of the Z index stack
			e.currentTarget.parent.setChildIndex( e.currentTarget, e.currentTarget.parent.getNumChildren()-1 );
			
			//get values for bitmap cache
			var cachewidth = e.currentTarget.getBounds().width;
			var cacheheight = e.currentTarget.getBounds().height;
			var cacheleft = cachewidth * -0.5;
			var cachetop = cacheheight * -0.5;
			
			//crate bitmap cache for GSAP EaselPlugin
			e.currentTarget.cache(cacheleft, cachetop, cachewidth, cacheheight, 2); //left, top, width, height
			
			//colorize the target component
			TweenLite.to(e.currentTarget, 0.3, {easel:{colorize:"#F56723", colorizeAmount:1}});
		
			//set the callout text and link
			root.mcCallout.txtComponentName.text = e.currentTarget.txtComponentName;
			root.mcCallout.txtComponentDescription.text = e.currentTarget.txtComponentDescription;
			currentComponentLink = e.currentTarget.txtComponentLink;
			
			calloutShow += 1;
			calloutVisibility();
		
			//set position of callout
			var calloutWidth = root.mcCallout.getBounds().width;
			var calloutHeight = root.mcCallout.getBounds().width;	
			var calloutSide = 1;
			
			//decide whether callout should appear to right or left of component
			if(e.currentTarget.x > root.stage.getBounds().width - (calloutWidth/2) - (cachewidth/2) - 50){
				calloutSide = -1;
			}
			
			//set x of callout
			root.mcCallout.x = e.currentTarget.x + (((cachewidth/2) + (calloutWidth/2) + 25) * calloutSide);
			
			//set y of callout
			if(e.currentTarget.y < (calloutHeight/2) + 100){
				//too high
				root.mcCallout.y = (calloutHeight/2) + 100;
			} else if(e.currentTarget.y > root.stage.getBounds().height - (calloutHeight/2) - 100) {
				//too low
				root.mcCallout.y = root.stage.getBounds().height - (calloutHeight/2);
			} else {
				//just right
				root.mcCallout.y = e.currentTarget.y;
			}
			
			
		//	callout.parent.setChildIndex(callout, callout.parent.getNumChildren()-1 );
		}
		
		//when mouse rolls off a component
		function componentRollOut(e) {
			calloutShow -= 1;
			calloutVisibility();
								
			//return target to original Z index
			e.currentTarget.parent.setChildIndex(e.currentTarget, e.currentTarget.originZ);
				
			//scale down target
			TweenLite.to(e.currentTarget, 0.3, {scaleX:1, scaleY:1, ease:Power1.easeInOut});
				
			//de-colorize target
			TweenLite.to(e.currentTarget, 0.3, {easel:{colorize:"#F56723", colorizeAmount:0}});
			
		}
		
		//decides if Callout should be visible
		function calloutVisibility(){
			//if callout has 1 or more reasons to show
			//console.log(calloutShow);
			if(calloutShow > 0) {
				//show the callout
				root.mcCallout.visible = false;
				//pop it to the top of the z index stack
				root.mcCallout.parent.setChildIndex( root.mcCallout, root.mcCallout.parent.getNumChildren()-1 );
			} else {
				//otherwise hide callout
				root.mcCallout.visible = false;
				calloutShow = 0;
			}
		}
		
		//add component mouseover listener
		this.mcCallout.addEventListener("mouseover", calloutRollOver);
			
		//add component mouseout listener
		this.mcCallout.addEventListener("mouseout", calloutRollOut);
		
		function calloutRollOver(){
			calloutShow += 1;
			calloutVisibility();
		}
		
		function calloutRollOut() {
			calloutShow -= 1;
			calloutVisibility();
		}
	}

	// actions tween:
	this.timeline.addTween(cjs.Tween.get(this).call(this.frame_0).wait(2));

	// callout
	this.mcCallout = new lib.mcCallout();
	this.mcCallout.name = "mcCallout";
	this.mcCallout.parent = this;
	this.mcCallout.setTransform(1029.9,714);

	this.timeline.addTween(cjs.Tween.get(this.mcCallout).wait(2));

	// radiator
	this.mcRadiator = new lib.mcRadiator();
	this.mcRadiator.name = "mcRadiator";
	this.mcRadiator.parent = this;
	this.mcRadiator.setTransform(308.5,387.9);

	this.timeline.addTween(cjs.Tween.get(this.mcRadiator).wait(1).to({x:223,y:537},0).wait(1));

	// hose lower
	this.mcHoseLower = new lib.mcHoseLower();
	this.mcHoseLower.name = "mcHoseLower";
	this.mcHoseLower.parent = this;
	this.mcHoseLower.setTransform(709.1,406.6);

	this.timeline.addTween(cjs.Tween.get(this.mcHoseLower).wait(1).to({x:845,y:671},0).wait(1));

	// reservoir
	this.mcReservoir = new lib.mcReservoir();
	this.mcReservoir.name = "mcReservoir";
	this.mcReservoir.parent = this;
	this.mcReservoir.setTransform(521.2,322.9);

	this.timeline.addTween(cjs.Tween.get(this.mcReservoir).wait(1).to({x:530,y:773},0).wait(1));

	// thermostat
	this.mcThermostat = new lib.mcThermostat();
	this.mcThermostat.name = "mcThermostat";
	this.mcThermostat.parent = this;
	this.mcThermostat.setTransform(889.5,235.2);

	this.timeline.addTween(cjs.Tween.get(this.mcThermostat).wait(1).to({x:95445,y:445.5},0).wait(1));

	// hose water pump
	this.mcHoseWaterPump = new lib.mcHoseWaterPump();
	this.mcHoseWaterPump.name = "mcHoseWaterPump";
	this.mcHoseWaterPump.parent = this;
	this.mcHoseWaterPump.setTransform(695.9,324.6);

	this.timeline.addTween(cjs.Tween.get(this.mcHoseWaterPump).wait(1).to({x:697.3,y:456.8},0).wait(1));

	// intake manifold
	this.mcIntakeManifold = new lib.mcIntakeManifold();
	this.mcIntakeManifold.name = "mcIntakeManifold";
	this.mcIntakeManifold.parent = this;
	this.mcIntakeManifold.setTransform(709.6,290.5);

	this.timeline.addTween(cjs.Tween.get(this.mcIntakeManifold).wait(1).to({x:770.3,y:535.1},0).wait(1));

	// water pump
	this.mcWaterPump = new lib.mcWaterPump();
	this.mcWaterPump.name = "mcWaterPump";
	this.mcWaterPump.parent = this;
	this.mcWaterPump.setTransform(489.1,389.1);

	this.timeline.addTween(cjs.Tween.get(this.mcWaterPump).wait(1).to({x:407.4,y:538},0).wait(1));

	// cylinder head
	this.mcCylinderHead = new lib.mcCylinderHead();
	this.mcCylinderHead.name = "mcCylinderHead";
	this.mcCylinderHead.parent = this;
	this.mcCylinderHead.setTransform(625.6,199.7);

	this.timeline.addTween(cjs.Tween.get(this.mcCylinderHead).wait(1).to({x:626.6,y:144},0).wait(1));

	// head gasket
	this.mcHeadGasket = new lib.mcHeadGasket();
	this.mcHeadGasket.name = "mcHeadGasket";
	this.mcHeadGasket.parent = this;
	this.mcHeadGasket.setTransform(621.6,250.6);

	this.timeline.addTween(cjs.Tween.get(this.mcHeadGasket).wait(1).to({y:294.7},0).wait(1));

	// freeze plug
	this.mcFreezePlug = new lib.mcFreezePlug();
	this.mcFreezePlug.name = "mcFreezePlug";
	this.mcFreezePlug.parent = this;
	this.mcFreezePlug.setTransform(684.8,430.6);

	this.timeline.addTween(cjs.Tween.get(this.mcFreezePlug).wait(1).to({x:824.5,y:663.7},0).wait(1));

	// engine block
	this.mcEngineBlock = new lib.mcEngineBlock();
	this.mcEngineBlock.name = "mcEngineBlock";
	this.mcEngineBlock.parent = this;
	this.mcEngineBlock.setTransform(623,391.6);

	this.timeline.addTween(cjs.Tween.get(this.mcEngineBlock).wait(1).to({x:623.3,y:525.6},0).wait(1));

	// hose heater core
	this.mcHoseHeaterCore = new lib.mcHoseHeaterCore();
	this.mcHoseHeaterCore.name = "mcHoseHeaterCore";
	this.mcHoseHeaterCore.parent = this;
	this.mcHoseHeaterCore.setTransform(900.2,183.8);

	this.timeline.addTween(cjs.Tween.get(this.mcHoseHeaterCore).wait(1).to({x:881.3,y:345.5},0).wait(1));

	// heater core
	this.mcHeaterCore = new lib.mcHeaterCore();
	this.mcHeaterCore.name = "mcHeaterCore";
	this.mcHeaterCore.parent = this;
	this.mcHeaterCore.setTransform(932,144.7);

	this.timeline.addTween(cjs.Tween.get(this.mcHeaterCore).wait(1).to({x:971.9,y:283.3},0).wait(1));

	// hose return
	this.mcHoseReturn = new lib.mcHoseReturn();
	this.mcHoseReturn.name = "mcHoseReturn";
	this.mcHoseReturn.parent = this;
	this.mcHoseReturn.setTransform(362.4,201);

	this.timeline.addTween(cjs.Tween.get(this.mcHoseReturn).wait(1).to({x:395,y:356.4},0).wait(1));

	// background
	this.shape = new cjs.Shape();
	this.shape.graphics.f().s().p("EhdvBGUMAAAiMnMC7fAAAMAAACMng");
	this.shape.setTransform(600,450);

	this.timeline.addTween(cjs.Tween.get(this.shape).wait(2));

}).prototype = p = new cjs.MovieClip();
p.nominalBounds = new cjs.Rectangle(600,450,1200,904);
// library properties:
lib.properties = {
	id: '6DEFC84FD411479E841AF2F7606C5481',
	width: 1200,
	height: 900,
	fps: 24,
	color: "#FFFFFF",
	opacity: 0.00,
	webfonts: {},
	manifest: [
		{src:"https://www.kseal.com/wp-content/uploads/2017/11/kseal_engine_components_atlas_.png", id:"kseal_engine_components_new_atlas_"}
	],
	preloads: []
};



// bootstrap callback support:

(lib.Stage = function(canvas) {
	createjs.Stage.call(this, canvas);
}).prototype = p = new createjs.Stage();

p.setAutoPlay = function(autoPlay) {
	this.tickEnabled = autoPlay;
}
p.play = function() { this.tickEnabled = true; this.getChildAt(0).gotoAndPlay(this.getTimelinePosition()) }
p.stop = function(ms) { if(ms) this.seek(ms); this.tickEnabled = false; }
p.seek = function(ms) { this.tickEnabled = true; this.getChildAt(0).gotoAndStop(lib.properties.fps * ms / 1000); }
p.getDuration = function() { return this.getChildAt(0).totalFrames / lib.properties.fps * 1000; }

p.getTimelinePosition = function() { return this.getChildAt(0).currentFrame / lib.properties.fps * 1000; }

an.bootcompsLoaded = an.bootcompsLoaded || [];
if(!an.bootstrapListeners) {
	an.bootstrapListeners=[];
}

an.bootstrapCallback=function(fnCallback) {
	an.bootstrapListeners.push(fnCallback);
	if(an.bootcompsLoaded.length > 0) {
		for(var i=0; i<an.bootcompsLoaded.length; ++i) {
			fnCallback(an.bootcompsLoaded[i]);
		}
	}
};

an.compositions = an.compositions || {};
an.compositions['6DEFC84FD411479E841AF2F7606C5481'] = {
	getStage: function() { return exportRoot.getStage(); },
	getLibrary: function() { return lib; },
	getSpriteSheet: function() { return ss; },
	getImages: function() { return img; }
};

an.compositionLoaded = function(id) {
	an.bootcompsLoaded.push(id);
	for(var j=0; j<an.bootstrapListeners.length; j++) {
		an.bootstrapListeners[j](id);
	}
}

an.getComposition = function(id) {
	return an.compositions[id];
}



})(createjs = createjs||{}, AdobeAn = AdobeAn||{});
var createjs, AdobeAn;
</script>{"id":2211,"date":"2015-01-12T14:34:03","date_gmt":"2015-01-12T14:34:03","guid":{"rendered":"https:\/\/stage.kseal.com\/common-problems\/intake-manifold-gasket-repair\/"},"modified":"2019-06-07T16:05:38","modified_gmt":"2019-06-07T15:05:38","slug":"intake-manifold","status":"publish","type":"page","link":"https:\/\/stage.kseal.com\/uk\/expert-advice\/engine-problems\/intake-manifold","title":{"rendered":"Intake Manifold Leaks"},"content":{"rendered":"<h2>What are the Symptoms of Intake Manifold Failure?<\/h2>\n<p>Symptoms of intake manifold failure can be difficult to identify as such, so it&#8217;s important that you are familiar with problems that might seem relatively minor, but which could be an indication of significant intake manifold issues.<\/p>\n<ul>\n<li>Difference in air-to-fuel ratio resulting in backfires and rough idling<\/li>\n<li>Milky-looking engine oil<\/li>\n<li>Coolant leaking onto the ground under the vehicle while it is stationary<\/li>\n<li>Regular or quick engine overheating<\/li>\n<\/ul>\n<h2>How Much Will Intake Manifold Repair Cost at a Garage?<\/h2>\n<p>Although the cost of replacing an intake manifold will vary depending on the make and model of the car, many estimates have the cost of the part at around $300, with much of the cost of the job coming from labour and time spent on it. This can be a significantly higher sum \u2013 as much as $900 \u2013 and in some cars it may not be worth going ahead with the job.<\/p>\n<h2>Can K-Seal Fix My Intake Manifold?<\/h2>\n<p>If there is a coolant leak then, in most cases, using K-Seal will help to quickly and permanently stop the leak, saving you a lot of time and money. <a href=\"https:\/\/stage.kseal.com\/where-to-buy\">Use our simple stockist search facility<\/a>\u00a0to find a bottle and get back on the road.<\/p>\n<h2>What is an Intake Manifold?<\/h2>\n<p>An intake manifold directs the mixture of air and fuel to the right cylinder to be combusted so it can power the engine. Additionally, it conducts coolant through to the cylinders in order to reduce the temperature of the engine. The intake manifold is attached to the top of the engine by the intake manifold gasket, which has to be monitored as it is susceptible to cracking under the heat and pressure and allowing coolant or oil to escape.<\/p>\n<figure id=\"attachment_5971\" aria-describedby=\"caption-attachment-5971\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-5971 size-full\" src=\"https:\/\/stage.kseal.com\/wp-content\/uploads\/2015\/01\/Intake-Manifold-e1500559295560.jpg\" alt=\"K-Seal will repair intake manifold gasket leaks\" width=\"650\" height=\"432\" \/><figcaption id=\"caption-attachment-5971\" class=\"wp-caption-text\">Intake Manifold<\/figcaption><\/figure>\n<h2>How Does an Intake Manifold Work?<\/h2>\n<p>The intake manifold uses pistons to conduct the air-fuel mixture and the coolant through the engine block via the valves to the relevant areas. It is important that these mixtures are distributed evenly, otherwise the engine will not work as efficiently.<\/p>\n<h2>Why Do Intake Manifolds Fail?<\/h2>\n<p>Intake manifolds fail because of the high levels of constantly-changing heat and pressure they are subjected to on a daily basis. The strain they are put under inevitably leads to cracks developing \u2013 it is up to the driver to diagnose the problem and deal with it at the earliest opportunity.<\/p>\n<h2>Could Other Parts of My Engine Be Affected?<\/h2>\n<p>Although your intake manifold could be the source of your engine troubles, it might not be the only component you need to take a look at. Select an engine part in the interactive diagram below to explore your engine and the important components that keep everything ticking over.<\/p>\n<div class=\"schematic-desc\">Click on the engine components below for details<div class=\"tooltip-title\"><\/div><a href=\"javascript:void(0);\" class=\"phone-moreinfo\">More Info &raquo;<\/a><\/div><div id=\"smallWrap\" class=\"canvas-wrap\">\r\n\t<div id=\"animation_container\" style=\"background-color:rgba(255, 255, 255, 0.00); width:100% !important; height:auto !important\">\r\n\t\t<canvas id=\"canvas\" width=\"1200\" height=\"900\" style=\"position: absolute; display: block; background-color:rgba(255, 255, 255, 0.00);\"><\/canvas>\r\n\t\t<div id=\"dom_overlay_container\" style=\"pointer-events:none; overflow:hidden; width:100% !important; height:auto !important; position: absolute; left: 0px; top: 0px; display: block;\">\r\n\t\t<\/div>\r\n\t<\/div><\/div>  \r\n\n<p>Still not sure what the problem is? <a href=\"https:\/\/stage.kseal.com\/uk\/expert-advice\/common-symptoms\/60-second-problem-solver\">Try our 60 second problem solver<\/a> to quickly identify what the issue is based on your symptoms.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What are the Symptoms of Intake Manifold Failure? Symptoms of intake manifold failure can be difficult to identify as such, so it&#8217;s important that you are familiar with problems that might seem relatively minor, but which could be an indication of significant intake manifold issues. Difference in air-to-fuel ratio resulting in backfires and rough idling<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":171,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<meta name=\"description\" content=\"Everyday driving can stress the intake manifold, causing it to leak or crack. One bottle of K-Seal can seal the intake manifold for a permanent repair.\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Intake Manifold Leaks - How to Repair a Cracked Intake Manifold - K-Seal\u00ae\" \/>\n<meta property=\"og:description\" content=\"Everyday driving can stress the intake manifold, causing it to leak or crack. One bottle of K-Seal can seal the intake manifold for a permanent repair.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/stage.kseal.com\/uk\/expert-advice\/engine-problems\/intake-manifold\" \/>\n<meta property=\"og:site_name\" content=\"K-Seal\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MrKSeal\" \/>\n<meta property=\"article:modified_time\" content=\"2019-06-07T15:05:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/stage.kseal.com\/wp-content\/uploads\/2015\/01\/Intake-Manifold-e1500559295560.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:site\" content=\"@mrkseal\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"description":"Everyday driving can stress the intake manifold, causing it to leak or crack. One bottle of K-Seal can seal the intake manifold for a permanent repair.","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Intake Manifold Leaks - How to Repair a Cracked Intake Manifold - K-Seal\u00ae","og_description":"Everyday driving can stress the intake manifold, causing it to leak or crack. One bottle of K-Seal can seal the intake manifold for a permanent repair.","og_url":"https:\/\/stage.kseal.com\/uk\/expert-advice\/engine-problems\/intake-manifold","og_site_name":"K-Seal\u00ae","article_publisher":"https:\/\/www.facebook.com\/MrKSeal","article_modified_time":"2019-06-07T15:05:38+00:00","og_image":[{"url":"https:\/\/stage.kseal.com\/wp-content\/uploads\/2015\/01\/Intake-Manifold-e1500559295560.jpg"}],"twitter_card":"summary","twitter_site":"@mrkseal","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/stage.kseal.com\/#website","url":"https:\/\/stage.kseal.com\/","name":"K-Seal\u00ae","description":"Permanent Coolant Leak Repair","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/stage.kseal.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https:\/\/stage.kseal.com\/uk\/expert-advice\/engine-problems\/intake-manifold#primaryimage","inLanguage":"en-US","url":"https:\/\/stage.kseal.com\/wp-content\/uploads\/2015\/01\/Intake-Manifold-e1500559295560.jpg","contentUrl":"https:\/\/stage.kseal.com\/wp-content\/uploads\/2015\/01\/Intake-Manifold-e1500559295560.jpg","width":650,"height":432,"caption":"Inlet Manifold"},{"@type":"WebPage","@id":"https:\/\/stage.kseal.com\/uk\/expert-advice\/engine-problems\/intake-manifold#webpage","url":"https:\/\/stage.kseal.com\/uk\/expert-advice\/engine-problems\/intake-manifold","name":"Intake Manifold Leaks - How to Repair a Cracked Intake Manifold - K-Seal\u00ae","isPartOf":{"@id":"https:\/\/stage.kseal.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/stage.kseal.com\/uk\/expert-advice\/engine-problems\/intake-manifold#primaryimage"},"datePublished":"2015-01-12T14:34:03+00:00","dateModified":"2019-06-07T15:05:38+00:00","description":"Everyday driving can stress the intake manifold, causing it to leak or crack. One bottle of K-Seal can seal the intake manifold for a permanent repair.","breadcrumb":{"@id":"https:\/\/stage.kseal.com\/uk\/expert-advice\/engine-problems\/intake-manifold#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/stage.kseal.com\/uk\/expert-advice\/engine-problems\/intake-manifold"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/stage.kseal.com\/uk\/expert-advice\/engine-problems\/intake-manifold#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/stage.kseal.com\/"},{"@type":"ListItem","position":2,"name":"Expert Advice","item":"https:\/\/stage.kseal.com\/uk\/expert-advice"},{"@type":"ListItem","position":3,"name":"Diagnose Your Engine Problems","item":"https:\/\/stage.kseal.com\/uk\/expert-advice\/engine-problems"},{"@type":"ListItem","position":4,"name":"Intake Manifold Leaks"}]}]}},"_links":{"self":[{"href":"https:\/\/stage.kseal.com\/uk\/wp-json\/wp\/v2\/pages\/2211"}],"collection":[{"href":"https:\/\/stage.kseal.com\/uk\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/stage.kseal.com\/uk\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/stage.kseal.com\/uk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stage.kseal.com\/uk\/wp-json\/wp\/v2\/comments?post=2211"}],"version-history":[{"count":16,"href":"https:\/\/stage.kseal.com\/uk\/wp-json\/wp\/v2\/pages\/2211\/revisions"}],"predecessor-version":[{"id":16621,"href":"https:\/\/stage.kseal.com\/uk\/wp-json\/wp\/v2\/pages\/2211\/revisions\/16621"}],"up":[{"embeddable":true,"href":"https:\/\/stage.kseal.com\/uk\/wp-json\/wp\/v2\/pages\/171"}],"wp:attachment":[{"href":"https:\/\/stage.kseal.com\/uk\/wp-json\/wp\/v2\/media?parent=2211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}