var beforeSendCallBack = {};
var beforeSlideCallBack = {};
var afterSlideCallBack = {};
var firstPage = true;
var defaultQuery = '/landing';
var notFoundQuery = "/404";
var currentQuery = defaultQuery;
var defaultFancybox = {
    overlayOpacity: 0.75,
    overlayColor: '#000',
    padding: 0,
	margin: 0,
	scrolling: "no"
}

var scrollToTarget;
var homeURL = rootURL + defaultQuery;
var onLandingPage;

$(document).ready(function() {
	//immediately redirect page from search egine (ie. http://www.42below.com/landing/products -> http://www.42below.com/#/landing/products)
	if(isVerified() && !iPhone && location.href.indexOf('landing') != -1 && location.href.indexOf('#') == -1) {
		var fragment = location.href.replace(rootURL, "");
		location.replace(rootURL + "/#" + fragment);
	}
});

function addCallBack(type, id, func) {
    var callBack = getCallBack(type)
    callBack[id] = func;
}

function triggerCallBack(type) {
    //log(type);
    var callBack = getCallBack(type);
    $.each(callBack, function(key, value) {
        //log('function: ' + key);
        value.call();
    });
}

function getCallBack(type) {
    var callBack;    
    switch(type) {
        case 'beforeSend':
            callBack = beforeSendCallBack;
            break;
        case 'beforeSlide':
            callBack = beforeSlideCallBack;
            break;
        case 'afterSlide':
            callBack = afterSlideCallBack;
            break;
        default:
            callBack = $.extend({}, beforeSendCallBack, beforeSlideCallBack, afterSlideCallBack);
            break;
    }
    return callBack;
}

function isVerified() {
    return $.cookie('age-verified');
}