Skip to content

Instantly share code, notes, and snippets.

View omartell's full-sized avatar
🚀
Shipping

Oliver Martell Núñez omartell

🚀
Shipping
  • London, United Kingdom
View GitHub Profile
@omartell
omartell / MyString.js
Created March 13, 2011 23:30
My String Implementation in JavaScript
var MyString = function(string) {
var new_string = [];
var current_toString = string;
for (var char_index in string) {
new_string[char_index] = string[char_index];
}
/*
Returns a primitive string representation of this string.
*/
@omartell
omartell / MyArray.js
Created March 14, 2011 22:36
My Array implementation in JavaScript
var MyArray = function() {
var new_array = {};
var current_length = 0;
var arguments_length = arguments.length;
for (var index = 0; index < arguments_length; index++) {
new_array[index] = arguments[index];
}
var calc_length = (function() {
@omartell
omartell / InheritancePatterns.js
Created May 14, 2011 18:43
Inheritance Patterns
var pseudoClassicalExtend = function(child, parent){
function F(){};
F.prototype = parent.prototype;
child.prototype = new F();
child.prototype.constructor = child;
child.uber = parent.prototype;
};
var prototypalInheritance = function(parent){
function F(){};
@omartell
omartell / TravelDOMland.js
Created May 15, 2011 12:22
Travel the DOM function
function travelDOMland(callback, elem){
elem = elem || document.body;
callback(elem);
if(elem.hasChildNodes()){
travelDOMland(callback, elem.firstChild);
}
if(elem.nextSibling !== null){
@omartell
omartell / earthquakeWindow.js
Created May 23, 2011 19:08
Exploring the BOM
var earthquakeWindow = (function(){
var x = 0;
var y = 0;
var width = 400;
var height = 400;
var newWindow = window.open("","", "width="+ width +", height="+ height + ", resizable=yes");
var resizeMoveWindow = function(){
x=Math.random() * 1400;
y= Math.random() * 900;
width += 10;
@omartell
omartell / SafelyRemoveNodes.js
Created May 24, 2011 20:05
Safely Remove DOM elements to avoid memory leaks
var safelyRemoveNodes = function(node){//Only works in Firefox, event handlers are not enumerable in Safari and Chrome
if(node.firstElementChild){
safelyRemoveNodes(node.firstElementChild);
}
if(node.nextElementSibling){
safelyRemoveNodes(node.nextElementSibling);
}
@omartell
omartell / GrandParentNode.js
Created May 25, 2011 13:16
Grand Parent Node
function grandParent(element, grandParentId) {
if (element === document.body) {
return null;
}
if (element.id === grandParentId) {
return element;
}
if (element.parentNode === null) {
@omartell
omartell / PlayingSearchResults.html
Created May 25, 2011 13:22
Playing with Search Results From Yahoo! API
<html>
<head>
<script type="text/javascript">
function include(src) {
var script = document.createElement("script");
script.src = src;
document.getElementsByTagName("head")[0].appendChild(script);
}
function searchCallback(results) {
<html>
<head>
<script type="text/javascript">
var myApp = { Utils:{}};
(function(host){
MyEvent = {};
var callbackEvent = function(evt){
evt = evt || window.event || {};
@omartell
omartell / Tweets with MyXHR.html
Created May 27, 2011 22:08
Testing tweets with MyXHR
<html>
<head>
<style type="text/css">
p{
font-family: Helvetica;
font-size: 24px;
}
</style>
<script type="text/javascript">