var globalRoot = 'http://www.standrews.org.uk/App_Themes/SALT/'
var weGotZoom = false
var traceOut = false
/* ======================================================================

domReady :)

=======================================================================*/
window.addEvent('domready', function () {
    if ($$('.EditMode').length > 0 || $$('.DesignMode').length > 0) {} else {
        trace('domReady')

        trace('MMB CHECKS >>> see if .about_links exists: ' + exists('.about_links'))
        /* droppydownPoppyUpper */
        addMagicMoreButton(['.about_links', '.cc_introducing', '.clothing_dd', '.clothing_dd1', '.clothing_dd2', '.clothing_dd3'])

        /* Groovy Gallery thing */
        if ($$('.ggThing').length > 0) {
            $$('.ggThing').each(function (el, i) {
                setupGGallery(el, el.getElements('li'))
            });
        }
        /* Multibox */
        if(exists('.multiBoxDesc')){
	        var initMultiBox = new multiBox({
	            mbClass: '.mb',
	            container: $(document.body),
	            descClassName: 'multiBoxDesc',
	            path: './Files/',
	            useOverlay: true,
	            maxSize: null,
	            addDownload: false,
	            pathToDownloadScript: './Scripts/ForceDownload.asp',
	            addRollover: false,
	            addOverlayIcon: false,
	            addChain: true,
	            recalcTop: true,
	            addTips: false
	        });
		}
		else{
	        var initMultiBox = new multiBox({
	            mbClass: '.mb',
	            container: $(document.body),
	            descClassName: false,
	            path: './Files/',
	            useOverlay: true,
	            maxSize: null,
	            addDownload: false,
	            pathToDownloadScript: './Scripts/ForceDownload.asp',
	            addRollover: false,
	            addOverlayIcon: false,
	            addChain: true,
	            recalcTop: true,
	            addTips: false,
		        showNumbers: false,
		        showControls: false
	        });

		}
        if (exists('#product_viewer')) {
            weGotZoom = true
        }
        if (weGotZoom == false) {
            /* DropDown Menu Options */
            var myMenu = new MenuMatic({
                id: 'bannerMenu',
                effect: 'slide',
                tweakInitial: {
                    x: 0,
                    y: 5
                },
                physics: Fx.Transitions.Sine.easeInOut,
                hideDelay: 500,
                duration: 600,
                onPositionSubMenu_begin: function (classRef) {
                    classRef.btn.getParent('li').addClass('mmActive');
                },
                onHideSubMenu_complete: function (classRef) {
                    classRef.btn.getParent('li').removeClass('mmActive');
                }
            });
        }
        /* CountDown Clock */
        $('CountDownClock').setStyle('visibility', 'hidden')
        var pageDate
        $$('.countdown input').each(function (el, i) {
            var rt = el.value.split(' ')
            var rtD = rt[0].split('/')
            var rtT = rt[1].split(':')
            var rtC = []
            rtC[0] = rtD[2].toInt()
            rtC[1] = rtD[1].toInt()
            rtC[2] = rtD[0].toInt()
            rtC[3] = rtT[0].toInt()
            rtC[4] = rtT[1].toInt()
            rtC[5] = rtT[2].toInt()
            pageDate = rtC
        });
        loadCountDown('CountDownClock', [2010, 07, 15, 06, 30, 00], globalRoot + '/js/countdown/countdown.css', 31.3)

        /*if ($$('#hp_grid .shop').length > 0) {
            $$('#hp_grid .shop').each(function (el, i) {
                el.setStyle('cursor', 'pointer')
                el.addEvents({
                    'click': function () {
                        trace('>>: ' + this + ' :>> ' + this.getFirst('h1').getFirst('a').get('href'))
                        window.location = this.getFirst('h1').getFirst('a').get('href')
                    },
                    'mouseleave': function () {

                    }
                });
            });
        }*/
        /* Slider */
        if ($$('#scorecard_box div').length > 0) {
            var nS4 = new noobSlide({
                box: $('scorecard_box'),
                items: $$('#scorecard_box div'),
                size: 470,
                handles: $$('#slider_paging li')
            });
        }

        /* Homepeage News List */
        if ($('newscontainer')) {
            setupNewsFeed('newscontainer', $$('#newscontainer li'))
        }

        /* Homepeage Gallery */
        if ($('hp_gallery')) {
            setuphpGallery('hp_gallery', $$('#hp_gallery li'))
        }

        /* Subscription textbox on homepage */
        if ($$('.SubscriptionTextbox').length > 0) {
            $$('.SubscriptionTextbox').each(function (el, i) {
                prefilSubBox(el, 'enter your e-mail address')
            });
        }

        /* Overlay hover images on 7 courses area */
        if ($$('.sevencourses li').length > 0) {
            $$('.sevencourses li').each(function (el, i) {
                getOverImage(el)
            });
        }

        /* Tool tips */
        var customTips = $$('.tips');
        var toolTips = new Tips(customTips, {
            showDelay: 100,
            hideDelay: 100,
            className: 'simple_tip',
            offsets: {
                'x': -82,
                'y': 17
            },
            fixed: false,
            onShow: function (toolTipElement) {
                toolTipElement.fade(1);
            },
            onHide: function (toolTipElement) {
                toolTipElement.fade(0);
            }
        });

        /* Product info tabs */
        if ($$('#tabview h3').length > 0) {
            setupTabs($('tabview'), $$('#tabview h3'), $$('#tabview div'))
        }

        /* Product Viewer Zoom Functions */
        if ($$('#product_viewer img').length > 0) {
            var img = [$('product_viewer').getFirst('img')]
            setupZooms(img, globalRoot + '/js/mz/', 'smoothing-speed:10;zoom-position: inner;fps:30;zoom-fade:true; zoom-fade-in-speed:300; zoom-fade-out-speed:400')
            delayMenuMatic.delay(10)
        }
        /* Rotating Background Images [HP Only] */
//        if ($('hp_grid')) {
//            if (Browser.Engine.trident && Browser.Engine.version == 4) {
//                return false;
//            } else {
//                setupImageRotationBG();
//            }
//        }

        /* fix password button in FF on pc */
        if ($$('#wrapper .pswdlink').length > 0 && Browser.Engine.gecko && Browser.Platform.win) {
            $$('#wrapper .pswdlink').each(function (el, i) {
                el.setStyle('margin', '-24px 0 20px 312px')
            })
        }

        /* scorecard fixup */
        if ($$('.cc_scorestable').length > 0) {
            fixupSC($$('.cc_scorestable'))
        }

        /*		fix eror messages		*/

        if (Browser.Engine.trident) {

            trace('Browser.version : ' + Browser.Engine.version)
            if ($$('.ShopErrorMessage').length > 0) {
                trace($$('.ShopErrorMessage').length)
                $$('.ShopErrorMessage').each(function (el, i) {
                    el.clr = new Element('div').injectAfter(el).addClass('clear')
                });
            }
        }

        if (exists('.oc_video')) {
            loadOC($$('#wrapper .oc_video'))
        }

        /* - - - - - - */
    }

});

function delayFix() {
    trace('delayFix')
    this.getNext('input').addClass('date_picker_from');

}

function delayMenuMatic() {
    var myMenu = new MenuMatic({
        id: 'bannerMenu',
        effect: 'slide',
        tweakInitial: {
            x: 0,
            y: 5
        },
        physics: Fx.Transitions.Sine.easeInOut,
        hideDelay: 500,
        duration: 600,
        onPositionSubMenu_begin: function (classRef) {
            classRef.btn.getParent('li').addClass('mmActive');
        },
        onHideSubMenu_complete: function (classRef) {
            classRef.btn.getParent('li').removeClass('mmActive');
        },
        onSubMenuInit_complete: function () {
            trace("SM: " + this)
        }
    });
}

/* ======================================================================

Load Old Course Videos

=======================================================================*/

function loadOC(arr) {
    trace('OC : ' + arr)
    arr.each(function (el, i) {
        el.set('html', '')
        el.holder = new Element('div', {
            id: 'oc_Holder'
        }).injectInside(el);
        var so = new SWFObject(globalRoot + "flash/slideshows/oldcourse.swf", "ssp", "460", "345", "9", "#000000");
        so.addParam("allowScriptAccess", "always");
        so.addParam("wmode", "transparent");
        so.write("oc_Holder");
    });
    if(exists('.video_navigation')){
	    $$('.video_navigation li').each(function (vl, ii) {
	        vl.addEvents({
	            'click': function (e) {
	                e.stop()
	                vi = ii + 1
	                sspLoadAlbum('vid' + vi)
	            },
	            'mouseleave': function () {
	
	            }
	        });
	    });
	}
    //loadFirstVid.delay(1500)
}

function sspToggleDisplayMode() {
    thisMovie("ssp").sspToggleDisplayMode(null);
}

/*
	Passes the ID of the album from the XML file
	we want SlideShowPro inside the SWF to load
*/

function sspLoadAlbum(album) {
    trace('SSP >>> ' + album)
    $("ssp").sspLoadAlbum(album);
}

function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName]
    } else {
        return document[movieName]
    }
}

function loadFirstVid() {
    sspLoadAlbum('vid1')
}

/* ======================================================================

MagicMoreButton

=======================================================================*/

function addMagicMoreButton(objs) {
    document.body.MMB_Holder = []
    trace('MMB > objects to fiddle with: ' + objs)
    objs.each(function (o_class, i) {
        if ($$(o_class).length > 0) {
            trace('MMB > found ' + $$(o_class).length + ' of: "' + o_class + '", ' + $$(o_class))
            $$(o_class).each(function (obj, ai) {
                document.body.MMB_Holder.push(obj)
            });
        }
    });
    trace('MMB > MMB_Holder.length = ' + document.body.MMB_Holder.length)
    loadMMB_script.delay(350)
}

function loadMMB_script() {
    trace('MMB > loadMMB_script : ' + globalRoot + '/js/MMB/MMB.js')
    if (!document.body.MMBScript) {
        document.body.MMBScript = new Asset.javascript(globalRoot + '/js/MMB/MMB2.js', {
            id: 'MMBScript'
        })
    }
}

/* ======================================================================

fixup ScoreCards

=======================================================================*/

function fixupSC(arr) {
    arr.each(function (el, i) {
        if (el.getElements('.mb').length > 0) {
            el.getElements('.alt').each(function (cc, cci) {
                cc.removeClass('alt')
            });
            el.getElements('.mb').each(function (mb, mbi) {
                mb.getParent('td').addClass('alt')
                mb.assoc = []
                mb.tass = mb.getParent('td').getAllNext('td')
                trace('tass.length : ' + mb.tass.length)
                mb.assoc.push(mb.tass[0])
                mb.assoc.push(mb.tass[1])
                mb.assoc.push(mb.tass[2])
                mb.addEvents({
                    'mouseenter': function () {
                        mb.assoc.each(function (a, ai) {
                            a.setStyle('background', '#d2eeff')
                        });
                    },
                    'mouseleave': function () {
                        mb.assoc.each(function (a, ai) {
                            a.setStyle('background', 'none')
                        });
                    }
                });
            });
        }
    });
}

/* ======================================================================

Groovy Gallery Functions

=======================================================================*/
var ggalTimer;
var ggalp = 0;

function setupGGallery(obj, objArr) {
    objArr.each(function (el, i) {
        el.fade('hide');
        el.addClass('galleryPic')
        el.getFirst('a').addClass('mb')
        el.getFirst('a').set('rel', '[group_ggThing], noDesc')
    });
    ggalswapOut(0, objArr)
    ggalTimer = ggalsetSwap.periodical(10000, objArr);
}

function ggalsetSwap() {
    if (ggalp < this.length - 1) {
        ggalp++
    } else {
        ggalp = 0
    }
    trace('>> setSwap : ' + ggalp)
    ggalswapOut(ggalp, this)
}

function ggalswapOut(n, arr) {
    ggalp = n;
    arr.each(function (el, i) {
        if (i == n) {
            el.fade(1);
            el.setStyle('display', 'block');
            trace(i + ' :: ' + n)
        } else {
            el.fade(0);
            gtf.delay(500, el)
        }
    });
}

function gtf() {
    this.setStyle('display', 'none')
}

/* ======================================================================

	Setup for MZ

=======================================================================*/

function setupZooms(objs, path, options) {
    objs[0].path = path
    objs[0].isrc = objs[0].get('src').toString();
    objs[0].nsrc = objs[0].isrc.substring(0, objs[0].isrc.length - 5) + 'X' + objs[0].isrc.substring(objs[0].isrc.length - 5, objs[0].isrc.length)
    objs[0].timg = new Asset.images([objs[0].nsrc], {
        onComplete: function () {
            trace('found XL image: ' + objs[0].nsrc);
            objs[0].wrapper = new Element('a', {
                href: objs[0].nsrc
            });
            objs[0].wrapper.wraps(objs[0]);
            objs[0].wrapper.rel = options
            objs[0].wrapper.addClass('MagicZoom')
            objs[0].wrapper.setStyle('cursor', 'crosshair !important')
            loadMZScript.delay(500, objs[0])
        }
    });
}

function loadMZScript() {
    trace('loadMz')
    document.body.mzReady = false
    if (!document.body.mzCss) {
        document.body.mzCss = new Asset.css(this.path + 'magiczoom.css', {
            id: 'mzStyles'
        });
    }
    if (!document.body.mzScript) {
        document.body.mzScript = new Asset.javascript(this.path + 'magiczoom.js', {
            id: 'mz'
        })
    }

    triggerLoad.delay('500')
}

function triggerLoad() {
    trace('triggerLoad')
    if (document.body.mzReady) {
        MagicZoom.refresh()
    } else {
        triggerLoad.delay('500')
    }
}

/* ======================================================================

	Load CountDown Class

=======================================================================*/

function loadCountDown(container, time, css, step) {
    trace('countdown base time : ' + time)
    if (!document.body.CounterOptions) {
        document.body.CounterOptions = []
    }
    var temp = new Array(container, time, css, step)
    document.body.CounterOptions.push(temp)
    trace('load countdown script')
    var CounterScript = new Asset.javascript(globalRoot + '/js/countdown/CountDown.js', {
        id: 'CountDown_Script'
    })
}

/* ======================================================================

DatePicker

=======================================================================*/


window.addEvent('load', function () {
    new DatePicker('.date_picker_to', {
        pickerClass: 'datepicker_dashboard',
        toggleElements: '.date_toggler'
    });
    new DatePicker('.date_picker_from', {
        pickerClass: 'datepicker_dashboard',
        toggleElements: '.date_toggler'
    });

});

/* ======================================================================

Image Rotation Functions

=======================================================================*/
var backgroundPics = new Array();

function setupImageRotationBG() {
    /*		create an absolutely positioned div as first elements in body		*/
    var altImgDiv = new Element('div').injectBefore(document.body.getFirst('form')).addClass('imgHolder');

    var bimg = document.body.getStyle('background-image')
    altImgDiv.setStyles({
        position: 'absolute',
        width: '100%',
        height: '526px'
    })
    altImgDiv.setStyle('z-index', '-10')
    altImgDiv.fade('hide')

    altImgDiv.substr = bimg.substring(0, bimg.length - 6)
    if (Browser.Engine.trident) {
        altImgDiv.substr = bimg.substring(0, bimg.length - 7)
    }
    altImgDiv.imgs = 6
    altImgDiv.counter = 2

    hpImgSpin.delay(500, altImgDiv)

}

function hpImgSpin() {
    if (this.counter > this.imgs) {
        this.counter = 1
    }
    if (isEven(this.counter)) {
        this.fade(0)
        this.swapHolder = this
        this.swapImg = this.counter
        swapImageIR.delay(500, this)
        this.counter++
    } else {
        this.fade(1)
        this.swapHolder = document.body
        this.swapImg = this.counter
        swapImageIR.delay(500, this)
        this.counter++
    }
    hpImgSpin.delay(7500, this)
}

function swapImageIR() {
    if (Browser.Engine.trident) {
        this.swapHolder.setStyle('background', this.substr + '' + this.swapImg + '.jpg") no-repeat center top')
    } else {
        this.swapHolder.setStyle('background', this.substr + '' + this.swapImg + '.jpg) no-repeat center top')
    }
}




/* ======================================================================

NewsFeed Functions

=======================================================================*/
var newsTimer;
var newsp = 0;

function setupNewsFeed(obj, objArr) {
    objArr.each(function (el, i) {
        el.img = el.getFirst('img').setStyles({
            display: 'block',
            position: 'absolute',
            padding: 2,
            left: 0,
            top: 25,
            width: 154,
            height: 153
        }).fade('hide');
        el.setStyles({
            float: 'right',
            width: 305
        });
        el.addEvents({
            'mouseover': function () {
                swapOut(i, objArr);
                $clear(newsTimer);
            },
            'mouseleave': function () {
                newsTimer = setSwap.periodical(5500, objArr);
            }
        });
    });
    swapOut(0, objArr)
    newsTimer = setSwap.periodical(5500, objArr);
}

function setSwap() {
    if (newsp < this.length - 1) {
        newsp++
    } else {
        newsp = 0
    }
    swapOut(newsp, this)
}

function swapOut(n, arr) {
    newsp = n;
    arr.each(function (el, i) {
        if (i == n) {
            el.img.fade(1);
            el.addClass('active');
            el.fade(1)
        } else {
            el.img.fade(0);
            el.removeClass('active');
            el.fade(.5)
        }
    });
}

/* ======================================================================

hp_gallery Functions

=======================================================================*/
var galTimer;
var galp = 0;

function setuphpGallery(obj, objArr) {
    var mg = $(obj).getParent('div').getFirst('p').getFirst('a').addEvents({
        'mouseover': function () {
            this.fade(1)
        },
        'mouseleave': function () {
            this.fade(.75)
        }
    }).fade(.75);
    $(obj).getParent('div').addEvents({
        'mouseover': function () {
            mg.fade(1)
        },
        'mouseleave': function () {
            mg.fade(.75)
        },
        'click': function () {
            window.location = mg.href
        }
    }).setStyles({
        cursor: 'pointer'
    });

    objArr.each(function (el, i) {
        el.fade('hide');
    });
    galswapOut(0, objArr)
    galTimer = galsetSwap.periodical(10000, objArr);
}

function galsetSwap() {
    if (galp < this.length - 1) {
        galp++
    } else {
        galp = 0
    }
    galswapOut(galp, this)
}

function galswapOut(n, arr) {
    galp = n;
    arr.each(function (el, i) {
        if (i == n) {
            el.fade(1);
        } else {
            el.fade(0);
        }
    });
}




/* ======================================================================

Prefil Subscription TextBox

=======================================================================*/

function prefilSubBox(obj, copy) {
    obj.copy = copy;
    obj.oc = obj.getStyle('color');
    obj.nc = '#cccccc';
    obj.value = copy;
    obj.setStyle('color', '#cccccc');
    obj.addEvents({
        'focus': function () {
            if (this.value == '' || this.value == this.copy) {
                this.value = ''
            }
            this.setStyle('color', this.oc)
        },
        'blur': function () {
            if (this.value == '' || this.value == this.copy) {
                this.setStyle('color', this.nc);
                this.value = this.copy;
            }
        }
    });
}

/* ======================================================================

7 Courses overlay images

=======================================================================*/

function getOverImage(obj) {
    obj.getFirst('a').setStyle('position', 'relative')
    obj.img = obj.getFirst('a').getFirst('img');
    obj.overImg = new Element('img', {
        'styles': {
            position: 'absolute',
            left: 0
        }
    }).injectInside($(obj).getFirst('a'));
    obj.overImg.fade('hide')
    var split = obj.img.src.split('.');
    var splitstr = split[0]
    split.each(function (el, i) {
        if (i < split.length - 1 && i != 0) {
            splitstr = splitstr + '.' + split[i]
        }
    });
    /* trace(splitstr+'_alt.jpg') */
    obj.overImg.src = splitstr + '_alt.jpg';
    obj.addEvents({
        'mouseenter': function () {
            this.overImg.fade(1)
        },
        'mouseleave': function () {
            this.overImg.fade(0)
        }
    });
}

/* ======================================================================

Product Info tabView

=======================================================================*/

function setupTabs(obj, tabs, content) {
    //	create new li from input h1
    var tablist = new Element('ul').injectBefore(tabs[0]).addClass('tabList');
    tabs.each(function (el, i) {
        var listitem = new Element('li').injectInside(tablist);
        listitem.set('text', el.get('text'));
        el.dispose();
        listitem.i = i;
        listitem.addClass('activetab');
        if (i == 1) {
            listitem.addClass('centertab')
        }
        listitem.addEvents({
            'click': function () {
                showtab(this.i, content);
            },
            'mouseleave': function () {}
        });
    });
    content.each(function (el, i) {
        el.setStyles({
            display: 'block',
            opacity: '0',
            position: 'absolute'
        });
        if (i == 0) {
            el.setStyle('opacity', '1');
            setInfoPosition(el)
        }
    });
    initsetActive.delay(500)

}

function showtab(ii, content) {
    content.each(function (el, i) {
        if (i == ii) {
            el.setStyle('opacity', '1');
            setInfoPosition(el)
        } else {
            el.setStyle('opacity', '0')
        }
    });
    setActive(ii)
}

function initsetActive() {

    setActive(0)
}

function setActive(ii) {
    $$('.tabList li').each(function (tel, i) {
        if (ii == tel.i) {
            tel.addClass('activetab');
        } else {
            if (tel.hasClass('activetab')) {
                tel.removeClass('activetab')
            }
        }
    });
}

function setInfoPosition(obj) {
    $('tabview').setStyle('display', 'block')
    var info = $$('.product_options');
    var pp = obj.getCoordinates()
    info.setStyles({
        /* position: 'absolute', */
        marginTop: pp.height + 50,
        width: 350
    });
    if (Browser.Engine.trident && Browser.Engine.version == 4) {
        info.setStyles({
            marginTop: pp.height + 10,
            width: 350
        });
    }
}


/* ======================================================================

Util Functions

=======================================================================*/


function ntrace(msg) {}

function trace(msg) {
    if (traceOut == true) {
        if (!document.body.TracerStack) {
            document.body.TracerStack = []
        }
        document.body.TracerStack.push(msg)
        if (document.body.tracerEnabled) {
            document.body.TraceOut.show(msg)
        } else if (!document.body.tracerLoad) {
            document.body.tracerLoad = true;
            var TracerScript = new Asset.javascript(globalRoot + '/js/tracer/Trace.js', {
                id: 'Tracer'
            })
        }
    }
}

function isEven(value) {
    if (value % 2 == 0) return true;
    else return false;
}

function exists(chk) {
    if ($$(chk).length > 0) return true;
    else return false;
}