JS WaitForSeconds Not Working?

I’m new to programming so sorry if I missed anything but I need a way to delay a transform by a bit. Yet, every time I run this code all that happens is the Enemy (what the code is controlling) goes up the z axis.
What am I doing wrong.

Code:

var Distance;
var Target : Transform;
var lookAtDistance = 25.0;
var chaseRange = 15.0;
var attackRange = 1.5;
var moveSpeed = 5.0;
var Damping = 6.0;
var attackRepeatTime = 1;
var theBullet : Rigidbody;
var Speed = 120;
var PaintballGun : Transform;
var juke = 40;
var jukeJudge;
var TheDammage = 40;
var enemyPaintball : Transform;
var paintballShot : AudioClip;

private var attackTime : float;

var controller : CharacterController;
var gravity : float = 20.0;
private var MoveDirection : Vector3 = Vector3.zero;

function Start ()
{
	attackTime = Time.time;
}

function Update ()
{
    enemyPaintball = GameObject.Find("Bullet(Clone)").transform;
    Distance = Vector3.Distance(Target.position, transform.position);
    jukeJudge = Vector3.Distance(enemyPaintball.position, transform.position);
	
    if (juke >= jukeJudge)
    {
        jukeFunc();
    }
	
	if (Distance < lookAtDistance)
	{
		lookAt();
	}
	
	if (Distance > lookAtDistance)
	{
		GetComponent.<Renderer>().material.color = Color.green;
	}

	if (Distance < attackRange)
	{
		attack();
	}
	else if (Distance < chaseRange)
	{
		chase ();
	}
}

function lookAt ()
{
	GetComponent.<Renderer>().material.color = Color.yellow;
	var rotation = Quaternion.LookRotation(Target.position - transform.position);
	transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * Damping);
}

function jukeFunc () {
    {
        GetComponent.<Renderer>().material.color = Color.blue;
	
        transform.position.x += 1;
        delay();
        transform.position.x -= 2;
        delay();
        transform.position.x += 1;
        delay();
        transform.position.z += 1;
        delay();
        transform.position.z -= 1;
        delay();
        enemyPaintball = GameObject.Find("Bullet(Clone)").transform;
        attack();
    }
}

function delay () {
   
    yield WaitForSeconds(1.0);

}

function chase ()
{
    GetComponent.<Renderer>().material.color = Color.red;

	
	moveDirection = transform.forward;
	moveDirection *= moveSpeed;
	
	moveDirection.y -= gravity * Time.deltaTime;
	controller.Move(moveDirection * Time.deltaTime);
}

function attack ()
{

	    PaintballGun.GetComponent.<Animation>().Play("Shooting");
	    GetComponent.<AudioSource>().PlayOneShot(paintballShot, 1.0);
	    Debug.Log("enemy ai sound played.");
		
	    var clone = Instantiate(theBullet, transform.position, transform.rotation);
	    clone.velocity = transform.TransformDirection(Vector3(0, 0, Speed));
		
	    Destroy (clone.gameObject, 8);
		Debug.Log("The Enemy Has Attacked");
}

function ApplyDammage ()
{
	chaseRange += 30;
	moveSpeed += 2;
	lookAtDistance += 40;
}

Try replacing “delay” function call with WaitForSeconds method. In this case it’s possible that “delays” works all in one time, that’s because this couldn’t work properly.