var map;
var animator = new HB_Animator();

var nyc_w = 1300;
var nyc_h = 856;

function load() {
    var nyc = document.getElementById('nyc_holder');
    nyc.style.left = (window_dimensions()[0] - nyc_w) / 2 + 'px';
    nyc.style.top = (window_dimensions()[1] - nyc_h) / 2 + 'px';
    nyc.style.display = 'block';
    setTimeout('fade_nyc();', 5000);
    document.getElementById('content').style.display = 'block';
    set_opacity({
        target: document.getElementById('content'),
        value: 0.99
    });
    resize();
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById('map'));
        map.setCenter(new GLatLng(33.310258, 44.392812), 16);
        map.setMapType(G_SATELLITE_MAP);
        document.getElementById('map').style.display = 'block';
    }
    var links = document.getElementById('nav').getElementsByTagName('a');
    for (var i = 0; i < links.length; i++) {
        links[i].onclick = function() {
            var href = this.getAttribute('href');
            var id = href.substr(href.indexOf('#') + 1);
            document.getElementById('intro').style.display = 'none';
            document.getElementById('print').style.display = 'none';
            document.getElementById('about').style.display = 'none';
            document.getElementById('contact').style.display = 'none';
            document.getElementById(id).style.display = 'block';
            return false;
        }
    }
}

function resize() {
    var map_div = document.getElementById('map');
    map_div.style.width = window_dimensions()[0] + 'px';
    map_div.style.height = window_dimensions()[1] + 'px';
}

function fade_nyc() {
    var loc = window.location + '';
    if (loc.indexOf('?') != -1) {
        var duration = parseInt(loc.substr(loc.indexOf('?') + 1));
    } else {
        var duration = 20000;
    }
    animator.animate({
        target: document.getElementById('nyc'),
        handler: set_opacity,
        start_value: 1.0,
        end_value: 0.0,
        duration: duration,
        motion: animator.motion.quad_in,
        callback: function() {
            document.getElementById('nyc').style.display = 'none';
        }
    });
}

// add_event and remove_event adapted from a script by John Resig
// http://ejohn.org/projects/flexible-javascript-events/

function add_event(target, type, func) {
    if (target.addEventListener) {
        target.addEventListener(type, func, false);
    } else if (target.attachEvent) {
        target['event' + type + func] = func;
        target[type + func] = function() {
            target['event' + type + func](window.event);
        }
        target.attachEvent('on' + type, target[type + func]);
	}
}

function remove_event(target, type, func) {
    if (target.removeEventListener) {
        target.removeEventListener(type, func, false);
    } else if (target.detachEvent) {
		target.detachEvent('on' + type, target[type + func]);
		target[type + func] = null;
		target['event' + type + func] = null;
	}
}

function window_dimensions() {
    // Thanks to PPK & Quirksmode
    if (self.innerWidth) {
		w = self.innerWidth;
		h = self.innerHeight;
	} else if (document.documentElement &&
               document.documentElement.clientWidth) {
		w = document.documentElement.clientWidth;
		h = document.documentElement.clientHeight;
	}
	else if (document.body) {
		w = document.body.clientWidth;
		h = document.body.clientHeight;
	}
    return [w, h];
}

function set_opacity(member) {
    var opacity = member.value;
    member.target.style.opacity = opacity;
    member.target.style.filter = 'alpha(opacity=' + parseInt(100 * opacity) + ')';
}

add_event(window, 'load', load);
add_event(window, 'resize', resize);
