﻿/*jslint bitwise: true, browser: true, eqeqeq: true, immed: true, newcap: true, onevar: true, plusplus: true, regexp: true, undef: true, white: true, indent: 4 */
/*global contact, lightbox*/

// Make all external links open in a new window
document.addEvent('ready', function () {
    var i, link, links = document.links;
    for (i = 0; (link = links[i]); i += 1) {
        if (!(/mailto:/).test(link.href) && link.hostname.search(location.hostname) === -1 && (/http(s)?:/).test(link.href)) {
            link.target = '_blank';
            link.title = 'Link opens in new window';
        }
    }
});

// Initialize Contact Form
document.addEvent('ready', function () {
    document.body.insertBefore(document.set('div', {'id': 'overlay'}), document.get('container').nextSibling);
    document.get('inquiry').addEvent('submit', function (event) {
        var content = this.serialize(), form = this, request = new XMLHttpRequest();
        if (form.getElementsByClassName('isInvalid').length > 0) {
            return false;
        }
        request.onreadystatechange = function () {
            if (request.readyState === 4 && request.status === 200) {
                form.getElementsByTagName('fieldset')[0].innerHTML = request.responseText;
            } else if (request.readyState === 1) {
                form.getElementsByTagName('fieldset')[0].innerHTML = '<p class="message">Your information is being submitted,<br />please wait…</p>';
            } else if (request.readyState === 2) {
                form.getElementsByTagName('fieldset')[0].innerHTML = '<p class="message">Your information is being submitted,<br />please wait……</p>';
            } else if (request.readyState === 3) {
                form.getElementsByTagName('fieldset')[0].innerHTML = '<p class="message">Your information is being submitted,<br />please wait………</p>';
            } else {
                form.getElementsByTagName('fieldset')[0].innerHTML = '<p class="message">Your information is being submitted,<br />please wait…</p>';
            }
        };
        request.open(this.method.toUpperCase(), this.action, true);
        request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 
        request.send(content);
        event.preventDefault();
    });    
    contact.initialize(7, 509);
});

document.addEvent('ready', function () {
    var disable = function () {
        return false;
    }, i, img, imgs = document.body.getElementsByTagName('img');        
    for (i = 0; (img = imgs[i]); i += 1) {
        img.oncontextmenu = disable;
    }
});

// Initialize Gallery
document.addEvent('ready', function () {
    if (document.get('#gallery')) {
        lightbox.initialize(1, 85, 8, false);
    }
});

// Manually fire DomContentLoaded event
document.ready();

// Initialize Google Anayltics
(function () {
    var ga = document.createElement('script');
    ga.src = ('https:' === document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    ga.setAttribute('async', 'true');
    document.documentElement.firstChild.appendChild(ga);
}());