extended javascript