/* --------------------------------------------------------------------------------------------*/
/* ---------------------------------->>> LWI FRAMEWORK V 1.0 <<<-------------------------------*/
/* --------------------------------------------------------------------------------------------*/

var LWIFRAMEWORK = {};
/* -----------------------------------*/
/* ------------>>> LOAD <<<-----------*/
/* -----------------------------------*/
LWIFRAMEWORK.baseLoad = {
    image_list: Array
    ,
    pauseAnimations: false
    ,
    pics_array: Array
    ,
    setActiveLinks: function() {
        sURL = new String;
        bits = new Object;
        var x = 0;
        var stop = 0;
        var homeTab = document.getElementById('homeTab');
        sURL = location.href;
        sURL = sURL.slice(8, sURL.length);
        chunkStart = sURL.indexOf("/");
        sURL = sURL.slice(chunkStart + 1, sURL.length)
        while (!stop) {
            chunkStart = sURL.indexOf("/");
            if (chunkStart != -1) {
                bits[x] = sURL.slice(0, chunkStart)
                sURL = sURL.slice(chunkStart + 1, sURL.length);
            } else {
                stop = 1;
            }
            x++;
        }
        for (var i in bits) {
            if (document.getElementById(bits[i])) {
                document.getElementById(bits[i]).className = 'active';
            }

        }

        if (document.getElementById(bits[1])) {
            if (document.getElementById(bits[1]).id == 'introduction' || document.getElementById(bits[1]).id == 'media-center' || document.getElementById(bits[1]).id == 'operations' || document.getElementById(bits[1]).id == 'timeline') {
                document.getElementById(bits[1]).className = 'active'
            } else {

                homeTab.className = 'active';
            }
        } else {
            homeTab.className = 'active';
        };

        var flagSrc = $('flagSrc');
        if (flagSrc) {
            var src = LWIFRAMEWORK.utils.getQueryVariable('src');
            if (src) {
                flagSrc.value = src;
                //LWIFRAMEWORK.XMLHTTP.loadFormTemplate(src);
            }
        };
    }
    ,
    showHeader: function() {
        LWIFRAMEWORK.baseLoad.image_list = new Array();
        LWIFRAMEWORK.baseLoad.image_list[0] = '/images/home-images/1.jpg';
        LWIFRAMEWORK.baseLoad.image_list[1] = '/images/home-images/2.jpg';
        LWIFRAMEWORK.baseLoad.image_list[2] = '/images/home-images/3.jpg';
        LWIFRAMEWORK.baseLoad.image_list[3] = '/images/home-images/4.jpg';

        LWIFRAMEWORK.baseLoad.pics_array = new Array();

        if (document.getElementById('home-feature-inner')) {
            if (document.images) {
                var pic0 = new Image(800, 511);
                pic0.src = "/images/home-images/1.jpg";
                LWIFRAMEWORK.baseLoad.pics_array[0] = pic0;
                var pic1 = new Image(800, 511);
                pic1.src = "/images/home-images/2.jpg";
                LWIFRAMEWORK.baseLoad.pics_array[1] = pic1;
                var pic2 = new Image(800, 511);
                pic2.src = "/images/home-images/3.jpg";
                LWIFRAMEWORK.baseLoad.pics_array[2] = pic2;
                var pic3 = new Image(800, 511);
                pic3.src = "/images/home-images/4.jpg";
                LWIFRAMEWORK.baseLoad.pics_array[3] = pic3;
            }
        }

    }
    ,
    onAppear: function(first_image, second_image, id1, id2) {

        var divOuter = $('home-feature');
        var divInner = $('home-feature-inner');

        divOuter.style.background = 'url(' + first_image + ')';
        divInner.style.display = 'none';
        divInner.style.background = 'url(' + second_image + ')';
    }

    ,
    Appear: function(pic_one_id, pic_two_id, cid) {
        if (LWIFRAMEWORK.baseLoad.pauseAnimations) {
            return;
        } else {
            if (document.getElementById('home-feature')) {
                var one_id;
                var two_id;

                //fade in the first time..
                new Effect.Appear('home-feature-inner', {
                    duration: 1.5,
                    afterFinish: LWIFRAMEWORK.XMLHTTP.loadHome(pic_two_id)
                });

                //pic one becomes pic two, the one that has been morphed to...
                one_id = pic_two_id;

                //if we have come to end of pics array, start from start again...
                if (pic_two_id == LWIFRAMEWORK.baseLoad.pics_array.length - 1) {
                    two_id = 0;
                } else {
                    two_id = pic_two_id + 1;
                };

                //get the pics to pass to onAppear...
                pic_one = LWIFRAMEWORK.baseLoad.pics_array[one_id];
                pic_two = LWIFRAMEWORK.baseLoad.pics_array[two_id];


                setTimeout("LWIFRAMEWORK.baseLoad.onAppear('" + pic_one.src + "', '" + pic_two.src + "', '" + one_id + "', '" + two_id + "')", 10000);
                setTimeout("LWIFRAMEWORK.baseLoad.Appear(" + one_id + ", " + two_id + ")", 10000);

            }
        }
    }
};


/* -----------------------------------*/
/* ----------->>> EVENTS <<<----------*/
/* -----------------------------------*/
LWIFRAMEWORK.events = {
    attachSetTabEvent: function() {
        var tabInputs = document.getElementById('tab1-btn');
        if (tabInputs) {
            Event.observe(tabInputs, 'click', LWIFRAMEWORK.listeners.tabHandler.bindAsEventListener(LWIFRAMEWORK.listeners, {
                id: tabInputs.id
            }));
        };
    }
    ,
    attachSetBackTabEvent: function() {
        var tabInputs = document.getElementById('operationsBtn');
        if (tabInputs) {
            Event.observe(tabInputs, 'click', LWIFRAMEWORK.listeners.tabBackHandler.bindAsEventListener(LWIFRAMEWORK.listeners, {
                id: tabInputs.id
            }), false);
        };
    }
    ,
    attachTabClickEvent: function() {
        var openInputs = document.getElementsByClassName('openTab');
        if (openInputs) {
            openInputs.each(function(adi) {
                Event.observe(adi, 'click', LWIFRAMEWORK.listeners.tabClickHandler.bindAsEventListener(LWIFRAMEWORK.listeners, {
                    id: adi.id,
                    title: adi.name,
                    path: adi.rel
                }
                ));
            }
            );
        }
    }
    ,
    attachValidateEvent: function() {

        var validInputs = document.getElementsByClassName('valField');
        validInputs.each(function(vid) {
            Event.observe(vid, 'blur', LWIFRAMEWORK.listeners.valHandler.bindAsEventListener(LWIFRAMEWORK.listeners, {
                id: vid.id
            }
            ));
        }
        );
    }
    ,
    fromSubmitEvent: function() {
        var formBtn = document.getElementById('processForm');
        if (formBtn) {
            Event.observe(formBtn, 'click', LWIFRAMEWORK.listeners.formHandler.bindAsEventListener(LWIFRAMEWORK.listeners, {
                id: formBtn.id
            }));
        }
    }

};
/* -----------------------------------*/
/* --------->>> LISTENERS <<<---------*/
/* -----------------------------------*/
LWIFRAMEWORK.listeners = {
    formValid: null
    ,
    tabHandler: function(e, args) {
        //Handles adding items to quote page
        e = Event.element(e);
        LWIFRAMEWORK.utils.setTabs();
        Event.stop(e);
    }
    ,
    tabClickHandler: function(e, args) {
        //Handles adding items to quote page
        //e = Event.element(e);	
        Event.stop(e);
        var openTab = 'header-operations';
        var closeTab = 'tab1';
        LWIFRAMEWORK.utils.openTabs({
            title: arg.title,
            openTab: openTab,
            closeTab: closeTab,
            type: 'hide'
        });

    }

    ,
    tabBackHandler: function(e, args) {
        //Handles adding items to quote page
        //e = Event.element(e);
        Event.stop(e);
        var openTab = 'header-operations';
        var closeTab = 'tab1';

        LWIFRAMEWORK.utils.openTabs({
            title: '',
            openTab: openTab,
            closeTab: closeTab,
            type: 'hide'
        });


    }
    ,
    valHandler: function(e, args) {
        e = Event.element(e);
        var id = e.id;
        var valType = e.getAttribute('rel');
        LWIFRAMEWORK.utils.highlightField(id, valType);
    }



    ,
    formHandler: function() {

      

        var validInputs = document.getElementsByClassName('valField');
        validInputs.each(function(vid) {
            var valType = vid.getAttribute('rel');

            LWIFRAMEWORK.utils.isValid = true;
            if (LWIFRAMEWORK.utils.validateField(vid.id, valType) == true) {
                } else {				
                LWIFRAMEWORK.utils.isValid = false;
                var field = document.getElementById(vid.id);
                var lable = document.getElementById(vid.id + '_lbl');
                lable.style.color = '#ff0000';
                lable.style.display = 'block';
                field.style.background = '#fb5553';
                field.style.color = '#fff';
            }
        });


        var statusLine = document.getElementById('statusLine');

        if (LWIFRAMEWORK.utils.isValid == true) {
          	return true;
        } else {
			return false;
            statusLine.style.color = '#ff0000';
            statusLine.style.fontWeight = 'bold';
            statusLine.style.display = 'block';
            statusLine.innerHTML = '<h6>Oops, please enter or correct the information in the red.</h6>';
        }

    }

};
/* -----------------------------------*/
/* ---------->>> XMLHTTP <<<----------*/
/* -----------------------------------*/
LWIFRAMEWORK.XMLHTTP = {
    loadingImage: '<img src="/images/lightbox/loading.gif" alt="processing" border="0" align="absmiddle"/>',
    isProcessing: false,

    loadPage: function(var1) {
        var tab = document.getElementById('tab1');
        var date = new Date();
        var d = date.getSeconds();
        var url = '/includes/countries/' + var1 + '/?nocache=' + d;
        new Ajax.Request(url, {
            method: 'get',
            onSuccess: function(t) {

                var response = t.responseText;
                tab.innerHTML = '<div class="visual">' + response + '</div>';

                fixLayout();
                sIFR.replaceElement(named({
                    sSelector: "h2.title span",
                    sFlashSrc: "/media/swf/avantguard-md.swf",
                    sWmode: "transparent",
                    sCase: "upper",
                    sColor: "#ffffff",
                    nPaddingTop: 0,
                    nPaddingBottom: 0,
                    sFlashVars: "offsetTop=8"
                }));
                sIFR.replaceElement(named({
                    sSelector: "h3.title span",
                    sFlashSrc: "/media/swf/avantguard-md.swf",
                    sWmode: "transparent",
                    sCase: "upper",
                    sColor: "#ffffff",
                    nPaddingTop: 0,
                    nPaddingBottom: 0
                }));
                sIFR.replaceElement(named({
                    sSelector: "h3.title strong",
                    sFlashSrc: "/media/swf/avantguard-md.swf",
                    sWmode: "transparent",
                    sCase: "upper",
                    sColor: "#feb301",
                    nPaddingTop: 0,
                    nPaddingBottom: 0
                }));
                sIFR.replaceElement(named({
                    sSelector: ".text h2 span",
                    sFlashSrc: "/media/swf/avantguard-md.swf",
                    sWmode: "transparent",
                    sColor: "#ffffff",
                    nPaddingTop: 0,
                    nPaddingBottom: 0
                }));
                sIFR.replaceElement(named({
                    sSelector: ".text h2 strong",
                    sFlashSrc: "/media/swf/avantguard-md.swf",
                    sWmode: "transparent",
                    sColor: "#4d4d4d",
                    nPaddingTop: 0,
                    nPaddingBottom: 0
                }));
                sIFR.replaceElement(named({
                    sSelector: ".question h2 span",
                    sFlashSrc: "/media/swf/avantguard-md.swf",
                    sWmode: "transparent",
                    sColor: "#ffffff",
                    nPaddingTop: 0,
                    nPaddingBottom: 0
                }));
                sIFR.replaceElement(named({
                    sSelector: ".question h2 strong",
                    sFlashSrc: "/media/swf/avantguard-md.swf",
                    sWmode: "transparent",
                    sLinkColor: "#4e4e4e",
                    sHoverColor: "#f4ab06",
                    nPaddingTop: 0,
                    nPaddingBottom: 0
                }));

            },
            onFailure: function(t) {
                tab.innerHTML = 'There has been a network error.'
                tab.style.color = '#ff0000';

            }
        });
        //loading animation
        tab.innerHTML = this.loadingImage;

    }

    ,
    loadHome: function(var1) {
        var date = new Date();
        var d = date.getSeconds();
        var url = '/includes/home/' + var1 + '.html?nocache=' + d;
        new Ajax.Request(url, {
            method: 'get',
            onSuccess: function(t) {
                var response = t.responseText;
                LWIFRAMEWORK.utils.setContent(response);
            },
            onFailure: function(t) {


                }
        });
    }
    ,
    loadFormTemplate: function(src) {
        var date = new Date();
        var d = date.getSeconds();
        var url = '/give/gui/form-templates/' + src + '.html?nocache=' + d;
        new Ajax.Request(url, {
            method: 'get',
            onSuccess: function(t) {
                var response = t.responseText;
                $('donationForm').innerHTML = response;
                LWIFRAMEWORK.events.attachValidateEvent();
                LWIFRAMEWORK.events.fromSubmitEvent(src);
            },
            onFailure: function(t) {
                //no need form already exist by default
                }
        });
    }
    ,
    processForm: function() {

        if (LWIFRAMEWORK.XMLHTTP.isProcessing == false) {
            LWIFRAMEWORK.XMLHTTP.isProcessing = true;
            var statusBtn = $('formBtn');
            var serializedForm = Form.serialize('donationFormPost');
            var stausLine = document.getElementById('stausLine');
            var url = '/give/process/';

            new Ajax.Request(url, {
                parameters: serializedForm,
                method: 'post',
                requestHeaders: {
                    Accept: 'application/json'
                },
                onSuccess: function(t) {
                    var statusBtn2 = $('formBtn');
                    statusBtn2.src = '/images/icons/button-donate.gif';

                    var json = t.responseText.evalJSON(true);

                    var result = json.Items[0].Item;

                    var responseHolder = document.getElementById('statusLine');
                    var donationForm = document.getElementById('donationForm');
                    var responseBlock = document.getElementById('response');
                    if (result.Valid == true || result.Valid == 'true') {
						
                    } else {
                        LWIFRAMEWORK.utils.showError(result.Result)
                        responseHolder.innerHTML = result.Description;
                        responseHolder.style.display = 'block';
                        responseHolder.sytle.color = '#00ff00'
                        LWIFRAMEWORK.XMLHTTP.isProcessing = false;
                    }

                },
                onFailure: function(t) {
                    var stausLine = document.getElementById('stausLine');
                    stausLine.style.display = 'block';
                    stausLine.innerHTML = 'There has been a network error.';
                    stausLine.style.color = '#ff0000';
                    statusBtn.src = '/images/icons/button-donate.gif';
                    LWIFRAMEWORK.XMLHTTP.isProcessing = false;
                }
            });
            statusBtn.src = '/images/lightbox/loading.gif';
            //loading animation
        }
    }
};
/* -----------------------------------*/
/* ------------>>> UTILS <<<----------*/
/* -----------------------------------*/
LWIFRAMEWORK.utils = {
    isValid: false
    ,
    initPage: function() {
        var inner = document.getElementById("inner");
        if (inner)
        {
            inner.onmouseover = function()
            {
                this.className += " hover";
            }
            inner.onmouseout = function()
            {
                this.className = this.className.replace(" hover", "");
            }
        }
    }

    ,
    setContent: function(response) {
        new Effect.Fade('home-nav', {
            duration: 1.0,
            afterFinish: function() {
                homeNav = document.getElementById('home-nav');
                homeNav.innerHTML = response;
                sIFR.replaceElement(named({
                    sSelector: "h2.title span",
                    sFlashSrc: "/media/swf/avantguard-md.swf",
                    sWmode: "transparent",
                    sCase: "upper",
                    sColor: "#ffffff",
                    nPaddingTop: 0,
                    nPaddingBottom: 0,
                    sFlashVars: "offsetTop=8"
                }));
                sIFR.replaceElement(named({
                    sSelector: "h3.title span",
                    sFlashSrc: "/media/swf/avantguard-md.swf",
                    sWmode: "transparent",
                    sCase: "upper",
                    sColor: "#ffffff",
                    nPaddingTop: 0,
                    nPaddingBottom: 0
                }));
                sIFR.replaceElement(named({
                    sSelector: "h3.title strong",
                    sFlashSrc: "/media/swf/avantguard-md.swf",
                    sWmode: "transparent",
                    sCase: "upper",
                    sColor: "#feb301",
                    nPaddingTop: 0,
                    nPaddingBottom: 0
                }));
                sIFR.replaceElement(named({
                    sSelector: ".text h2 span",
                    sFlashSrc: "/media/swf/avantguard-md.swf",
                    sWmode: "transparent",
                    sColor: "#ffffff",
                    nPaddingTop: 0,
                    nPaddingBottom: 0
                }));
                sIFR.replaceElement(named({
                    sSelector: ".text h2 strong",
                    sFlashSrc: "/media/swf/avantguard-md.swf",
                    sWmode: "transparent",
                    sColor: "#4d4d4d",
                    nPaddingTop: 0,
                    nPaddingBottom: 0
                }));
                sIFR.replaceElement(named({
                    sSelector: ".question h2 span",
                    sFlashSrc: "/media/swf/avantguard-md.swf",
                    sWmode: "transparent",
                    sColor: "#ffffff",
                    nPaddingTop: 0,
                    nPaddingBottom: 0
                }));
                sIFR.replaceElement(named({
                    sSelector: ".question h2 strong",
                    sFlashSrc: "/media/swf/avantguard-md.swf",
                    sWmode: "transparent",
                    sLinkColor: "#4e4e4e",
                    sHoverColor: "#f4ab06",
                    nPaddingTop: 0,
                    nPaddingBottom: 0
                }));

                new Effect.Appear('home-nav', {
                    delay: 1.0,
                    duration: 1.0
                });
            }
        });

    }

    ,
    setFlex: function() {
        var page = document.getElementById("pagewidth");
        page.className = 'flex';
        var theHeight;
        if (window.innerHeight) {
            theHeight = window.innerHeight;
        }
        else if (document.documentElement && document.documentElement.clientHeight) {
            theHeight = document.documentElement.clientHeight;
        }
        else if (document.body) {
            theHeight = document.body.clientHeight;
        }
        var contentExp = document.getElementById('header-operations');
        theHeight = theHeight - 250;
        if (contentExp) {
            contentExp.style.height = theHeight + "px";
        }
        fixLayout();

    }
    ,
    setFixed: function() {
        var page = document.getElementById('pagewidth');
        page.className = 'fixed';
    }
    ,
    openTabs: function(args) {
        var tabNav = document.getElementById('tab-btn');
        var tabBtn = document.getElementById('tabA');
        if (args.type == 'hide') {
            tabBtn.innerHTML = args.title;
            tabNav.style.display = 'none';
        } else {
            tabBtn.innerHTML = args.title;
            tabNav.style.display = 'block';
            LWIFRAMEWORK.XMLHTTP.loadPage(args.title);
        }

        var tabO = document.getElementById(args.openTab);
        tabO.style.display = 'block';
        var tabC = document.getElementById(args.closeTab);
        tabC.style.display = 'none';
        LWIFRAMEWORK.events.attachSetBackTabEvent();
    }


    ,
    thisMovie: function(movieName) {
        if (navigator.appName.indexOf("Microsoft") != -1) {
            return window[movieName]
        }
        else {
            return document[movieName]
        }
    }
    ,
    getQueryVariable: function(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        var pair;

        //append qs to bypass link

        for (var i = 0; i < vars.length; i++) {
            pair = vars[i].split("=");
            if (pair[0] == variable) {
                return pair[1];
            }
        }
        return;
    }
    ,
    setFlash: function(variable) {
        var browser = navigator.appName;
        if (browser == 'Microsoft Internet Explorer') {
            LWIFRAMEWORK.utils.thisMovie("pimages").detectBrowser(true);
        } else {
            LWIFRAMEWORK.utils.thisMovie("pimages").detectBrowser(false);
            var imageViewer = $('image-viewer');
            if (imageViewer) {
                imageViewer.style.width = variable + 'px';
            }
        }
    }

    ,
    highlightField: function(id, valType) {
        var field = document.getElementById(id);
        var lable = document.getElementById(id + '_lbl');
        var errSpan = document.getElementById(id + '_err');

        if (LWIFRAMEWORK.utils.validateField(id, valType)) {
            lable.style.display = 'block';
            lable.style.color = '#fff';
            field.style.background = '#fff';
            field.style.color = '#000';
            if (errSpan) {
                errSpan.style.display = 'none';
            }
        } else {
            lable.style.color = '#ff0000';
            lable.style.display = 'block';
            field.style.background = '#fb5553';
            field.style.color = '#fff';
            if (errSpan) {
                errSpan.style.display = 'inline';
            }
        }
    }

    ,
    validateField: function(id, valType) {
        var field = document.getElementById(id);
        var str;
        str = field.value;
        var type;
        var regExp = new RegExp;


        switch (valType) {
        case 'number':
            regExp = /^[-+]?[0-9]+(\.[0-9]+)?$/;
            break;
        case 'currency':
            regExp = /^\$?[1-9][0-9]{0,2}(,[0-9]{3})*(\.[0-9]{2})?$/;
            break;
        case 'zip':
            regExp = /^[-+]?[0-9]+(\.[0-9]+)?$/;
            break;
        case 'email':
            regExp = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
            break;
        case 'phone':
            regExp = /((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}/;
            break;
        case 'required':
            val = true;
            break;
        default:
            val = true;
        }
        if (!str) {
            return false;
        } else {
            if (str.match(regExp)) {
                return true;
            } else {
                return false;
            }
        }
    }
    ,
    showError: function(err) {

        switch (err) {
        case 23:
            var field = document.getElementById('account');
            var lable = document.getElementById('account' + '_lbl');
            var errSpan = document.getElementById('account' + '_err');
            lable.style.color = '#ff0000';
            lable.style.display = 'block';
            field.style.background = '#fb5553';
            field.style.color = '#fff';
            if (errSpan) {
                errSpan.style.display = 'inline';
            }
            break;
        case 24:
            var field = document.getElementById('mon');
            var field2 = document.getElementById('year');
            field.style.background = '#fb5553';
            field.style.color = '#fff';
            field2.style.background = '#fb5553';
            field2.style.color = '#fff';
        default:
        }
    }
    ,
    breadcrumbs: function() {
        sURL = new String;
        bits = new Object;
        var x = 0;
        var stop = 0;
        var output = '';
        sURL = location.href;
        sURL = sURL.slice(8, sURL.length);
        chunkStart = sURL.indexOf("/");
        sURL = sURL.slice(chunkStart + 1, sURL.length)
        while (!stop) {
            chunkStart = sURL.indexOf("/");
            if (chunkStart != -1) {
                bits[x] = sURL.slice(0, chunkStart)
                sURL = sURL.slice(chunkStart + 1, sURL.length);
            } else {
                stop = 1;
            }
            x++;
        }
        for (var i in bits) {
            output += "<a href=\"";
            for (y = 1; y < x - i; y++) {
                output += "../";
            }
            output += bits[i] + "/\">" + bits[i] + "</a> &nbsp;&raquo;&nbsp; ";
        }
        if ($("subBreadCrumbs")) {
            $("subBreadCrumbs").innerHTML = (output);
        }
    }

}

Event.onDOMReady(function() {
    LWIFRAMEWORK.baseLoad.setActiveLinks();
    LWIFRAMEWORK.events.attachTabClickEvent();
    LWIFRAMEWORK.utils.breadcrumbs();
    LWIFRAMEWORK.events.attachValidateEvent();
    //LWIFRAMEWORK.events.fromSubmitEvent();
    var image_list = new Array();
    image_list[0] = '/images/home-images/1.jpg';
    image_list[1] = '/images/home-images/2.jpg';
    image_list[2] = '/images/home-images/3.jpg';
    image_list[3] = '/images/home-images/4.jpg';
    LWIFRAMEWORK.baseLoad.showHeader();
    setTimeout('LWIFRAMEWORK.baseLoad.Appear(0, 1)', 8000);


});



