var ldr;
 	var res;
	var canvas;
	var ctx;
 	var stageWidth;
	var stageHeight;
	function init()
 	{
		
		res = [new AnimeSprite("img/s.png"), new AnimeSprite("img/e.png"), new AnimeSprite("img/l.png"), new AnimeSprite("img/i.png"), new AnimeSprite("img/m.png"), new AnimeSprite("img/zemin.png"), new AnimeSprite("img/fs.png"), new AnimeSprite("img/bb.png"), new AnimeSprite("img/iletisim.png")]
		stageWidth = window.innerWidth;
		stageHeight = window.innerHeight;
		canvas = document.createElement('canvas');
		canvas.width = stageWidth;
	 	canvas.height = stageHeight;
		canvas.style.height =  stageHeight + "px";
		canvas.style.backgroundColor = "#ffffff";
	 	document.body.appendChild(canvas);
		ctx = canvas.getContext("2d");
	 	ldr = new  ILoader(res);
		ldr.onComplete(imagesLoaded);
		ldr.onProgress(onProgress);
		ldr.loadImages();
		
	}
	
	function imagesLoaded()
	{
		ctx.clearRect(0, 0, stageWidth,stageHeight);
		ctx.lineWidth = 1;
		initialize2DBox();
	}
	
	
 
 	function onProgress(prc)
	{
		pb(ctx,250,50, prc);
	}
	

	
	
 
 
 
  function initialize2DBox()
  {
	   
	 	var sc = 30;
         var b2Vec2 			= Box2D.Common.Math.b2Vec2;
         var b2AABB 			= Box2D.Collision.b2AABB;
         var b2BodyDef 			= Box2D.Dynamics.b2BodyDef;
         var b2Body 			= Box2D.Dynamics.b2Body;
         var b2FixtureDef 		= Box2D.Dynamics.b2FixtureDef;
         var b2Fixture 			= Box2D.Dynamics.b2Fixture;
         var b2World 			= Box2D.Dynamics.b2World;
         var b2MassData 		= Box2D.Collision.Shapes.b2MassData;
         var b2PolygonShape 	= Box2D.Collision.Shapes.b2PolygonShape;
         var b2CircleShape 		= Box2D.Collision.Shapes.b2CircleShape;
         var b2DebugDraw 		= Box2D.Dynamics.b2DebugDraw;
         var b2MouseJointDef 	=  Box2D.Dynamics.Joints.b2MouseJointDef;
		 var b2DistanceJointDef = Box2D.Dynamics.Joints.b2DistanceJointDef;
		 
		 
		
		 
         var dunya = new b2World( new b2Vec2(0, 50) , true);
		 var fx = new b2FixtureDef;
         fx.density = 1.0;
         fx.friction = 0.5;
         fx.restitution = 0.2;
		 
		 var elastic = 1.3;
		 
		 var bodyDef = new b2BodyDef;
         
         //create ground
         bodyDef.type = b2Body.b2_staticBody;
         fx.shape = new b2PolygonShape;
        var tavan = createBox(bodyDef,fx,20, (stageHeight / 2), 0, (stageHeight / 2) - 5 );
		createBox(bodyDef,fx,20, (stageHeight / 2), stageWidth, (stageHeight / 2) );
		createBox(bodyDef,fx,(stageWidth / 2), 20, stageWidth / 2, 0 );
		
		res[5].addFrame("hayalet", 1000, 50,0, 0, 4, 0);
	   	res[5].setCurrentAnime("hayalet");
	  	res[5].setFrame(7);
	  	res[5].setSize(stageWidth , 40);
		res[5].setAnch(stageWidth  / 2,20);
		bodyDef.userData = res[5];
		createBox(bodyDef,fx,(stageWidth / 2), 20, stageWidth / 2, stageHeight - 5);
	   
	   
	   
	   	var disJoint = new b2DistanceJointDef();
	   	
	   
	   res[0].addFrame("hayalet", 100, 150,0, 0, 5, 0);
	   res[0].setCurrentAnime("hayalet");
	   res[0].setFrame(7);
	   res[0].setSize(100, 150);
	   res[0].tut = {x:150, y:0};
	   res[0].dis  = 75;
	   res[0].rot = 0;
	   bodyDef.type = b2Body.b2_dynamicBody;
	   bodyDef.userData = res[0];
	   fx.friction = .1;
	   fx.restitution = .6;
	   fx.density = 10;
	   
	   var sHarf = createBox(bodyDef,fx, 50, 75, 150, 150);
	   
		disJoint.Initialize(sHarf, tavan, new b2Vec2(150 / sc, 75/ sc), new b2Vec2(150/ sc, 0/ sc));
		disJoint.frequencyHz 		= elastic;
		disJoint.dampingRatio 		= 0;
		disJoint.collideConnected 	= true;
		dunya.CreateJoint(disJoint);
	  
	   
	   	res[1].addFrame("hayalet", 100, 150,0, 0, 5, 0);
	   	res[1].setCurrentAnime("hayalet");
	   	res[1].setFrame(7);
	   	res[1].setSize(100, 150);
		res[1].tut = {x:275, y:0};
	   	res[1].dis  = 75;
	   	res[1].rot = 0;
	   	bodyDef.userData = res[1];
	    var eHarf = createBox(bodyDef,fx, 50, 75, 275, 160);
	   
	   	disJoint.Initialize(eHarf, tavan, new b2Vec2(275/ sc, 85/ sc), new b2Vec2(275 / sc, 0/ sc));
		disJoint.frequencyHz 		= elastic;
		disJoint.dampingRatio 		= 0;
		disJoint.collideConnected 	= true;
	   	dunya.CreateJoint(disJoint);
		
		
		res[2].addFrame("hayalet", 100, 150,0, 0, 5, 0);
	   	res[2].setCurrentAnime("hayalet");
	   	res[2].setFrame(7);
	   	res[2].setSize(100, 150);
		res[2].tut = {x:385, y:0};
	   	res[2].dis  = 75;
	   	res[2].rot = -.4;
	   	bodyDef.userData = res[2];
	    var eHarf = createBox(bodyDef,fx, 50, 75, 385, 150);
	   
	   	disJoint.Initialize(eHarf, tavan, new b2Vec2(355/ sc, 75/ sc), new b2Vec2(385 / sc, 0/ sc));
		disJoint.frequencyHz 		= elastic;
		disJoint.dampingRatio 		= 0;
		disJoint.collideConnected 	= true;
	   	dunya.CreateJoint(disJoint)
	   
	   
	   
	   	res[3].addFrame("hayalet", 100, 150,0, 0,5, 0);
	   	res[3].setCurrentAnime("hayalet");
	   	res[3].setFrame(7);
	   	res[3].setSize(100, 150);
	   	res[3].tut = {x:470, y:0};
	   	res[3].dis  = 74;
	   	res[3].rot = 0;
	   	bodyDef.userData = res[3];
	    var eHarf = createBox(bodyDef,fx, 25, 75, 470, 190);
	   
	   	disJoint.Initialize(eHarf, tavan, new b2Vec2(470/ sc, 115/ sc), new b2Vec2(470/ sc, 0/ sc));
		disJoint.frequencyHz 		= elastic;
		disJoint.dampingRatio 		= 0;
		disJoint.collideConnected 	= true;
	   	dunya.CreateJoint(disJoint)
	   
	   
	  	res[4].addFrame("hayalet", 100, 150,0, 0, 5, 0);
	   	res[4].setCurrentAnime("hayalet");
	   	res[4].setFrame(7);
	   	res[4].setSize(100, 150);
	  	res[4].tut = {x:550, y:0};
	   	res[4].dis  = 70;
	   	res[4].rot = -.5;
		
	   	bodyDef.userData = res[4];
		
	    var eHarf = createBox(bodyDef,fx, 50, 75, 550, 150);
	   
	   	disJoint.Initialize(eHarf, tavan, new b2Vec2(500/ sc, 75/ sc), new b2Vec2(550/ sc, 0/ sc));
		disJoint.frequencyHz 		= elastic;
		disJoint.dampingRatio 		= 0;
		disJoint.collideConnected 	= true;
	   	dunya.CreateJoint(disJoint);
	
	   
		var debugDraw = new b2DebugDraw();
		debugDraw.SetSprite(canvas.getContext("2d"));
		debugDraw.SetDrawScale(sc);
		debugDraw.SetFillAlpha(0.5);
		debugDraw.SetLineThickness(1.0);
		debugDraw.SetFlags(b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit);
		dunya.SetDebugDraw(debugDraw);
         
         window.setInterval(update, 20);
		 
		 
		var mdrag = new MouseDrag(dunya);
				 
		
		res[6].addFrame("hayalet", 200, 30,0, 0, 5, 0);
	   	res[6].setCurrentAnime("hayalet");
	   	res[6].setFrame(7);
	   	res[6].setSize(200, 30);
	   	bodyDef.userData = res[6];
		res[6].setAnch(100,15);
		res[6].mouseover = myFlashSite;	    
		var mfsHarf = createBox(bodyDef,fx, 100, 15, 150, stageHeight - 50);		 
		
		
		
		res[7].addFrame("hayalet", 200, 30,0, 0, 5, 0);
	   	res[7].setCurrentAnime("hayalet");
	   	res[7].setFrame(7);
	   	res[7].setSize(200, 30);
	   	bodyDef.userData = res[7];
		res[7].setAnch(100,15);
		res[7].mouseover = myBlog;	    
		var mfsHarf = createBox(bodyDef,fx, 100, 15, 150, stageHeight - 50);	
		
		
		res[8].addFrame("hayalet", 200, 30,0, 0, 5, 0);
	   	res[8].setCurrentAnime("hayalet");
	   	res[8].setFrame(7);
	   	res[8].setSize(200, 30);
	   	bodyDef.userData = res[8];
		res[8].setAnch(100,15);
		res[8].mouseover = myContact;	    
		var mfsHarf = createBox(bodyDef,fx, 100, 15, 150, stageHeight - 50);
		 
		 
		 
	   	function update() 
	   	{
			ctx.clearRect(0, 0, stageWidth,stageHeight);
			mdrag.render();
			
			
			
			
			var pos;
			 for(var bdy = dunya.GetBodyList(); bdy; bdy = bdy.GetNext())
			{
				bodyUserData = bdy.GetUserData();
				if(bodyUserData) {
					pos = bdy.GetPosition();
					//alert()pos;
					drawLine(bodyUserData, pos);
					bodyUserData.setLoc((pos.x * sc)  - bodyUserData.ancX, (pos.y * sc) - bodyUserData.ancY);
					bodyUserData.setRotation(bdy.GetAngle());
					bodyUserData.render();
					
					
					
					//.update(getPixel(p.GetPosition().x), getPixel(p.GetPosition().y), p.GetAngle()*180/Math.PI);
				}
			}
			
			
			dunya.Step(1 / 60, 10, 10);
			//dunya.DrawDebugData();
			dunya.ClearForces();
		}
		
		
		function drawLine(bodyUserData, pos)
		{
			
			if(bodyUserData.tut)
			{
				ctx.beginPath();
				ctx.moveTo(bodyUserData.tut.x, bodyUserData.tut.y);
				var r = bodyUserData.rot + (bodyUserData.rotation - (Math.PI));
				var eks = (pos.x * sc)  + Math.sin(r) * -bodyUserData.dis;
				var yay = (pos.y * sc )+ Math.cos(r)  * bodyUserData.dis;
				ctx.lineTo(eks,  yay);
				ctx.stroke();
				ctx.lineWidth = 2;
				ctx.closePath();
			}
			
			
			
			
		}
		
		
		
		
		
		function createBox(bd, f, wid, heg, eks, yay)
		{
			fx.shape.SetAsBox(wid / sc, heg / sc);
			bd.position.Set(eks / sc, yay / sc);
			var bdy = dunya.CreateBody(bd);
			bdy.CreateFixture(f);
			return bdy;
		}
		
		
		
		
		function myFlashSite()
		{
			window.location.href = "http://www.selimabidin.com/flash";
		}
		
		
		function myBlog()
		{
			window.location.href = "http://blog.selimabidin.com";
		}
		
		
		function myContact()
		{
			document.location.href="MailTo:ysabidin@gmail.com";
		
		}
		
		
  }

