var fade_windows = true;

function addMenuEvents() {
    // add event listeners to main menu
    if($('main-menu')) {
        linksArr = $('main-menu').getElementsByTagName('a');
        for(var i = 0; i < linksArr.length; i++) {
            if(linksArr[i].className != 'noajax') {
                _addEvent(linksArr[i], 'click', cancel);
                linksArr[i].onclick = function() {
                    ajaxThis(this);
                }
            }
        }
    }
    // add event listener to close button
    if($('x')) {
        _addEvent($('x'), 'click', cancel);
        $('x').onclick = function() {
            hideContainer();

            if($('home-content')) {
                $('home-content').style.display = 'block';
                $('home-header-area').style.display = 'block';
            }

            if($('content-area')) {
                $('content-area').style.display = 'none';
            }

            if($('main-menu')) {
                linksArr = $('main-menu').getElementsByTagName('a');
                for(var i = 0; i < linksArr.length; i++) {
                    linksArr[i].parentNode.className = '';
                    linksArr.className = '';
                }
            }

            document.location.href = '/#';
            document.title = (document.title.lastIndexOf(' :: ') != -1) ? document.title.substr(document.title.lastIndexOf(' :: ')+4) : document.title;
        }
    }
}
    
function addHomeEvents() {
    //add event listener to banner at home page
    if($('home-content')) {
        linksArr=$('home-content').getElementsByTagName('a');
        for(var i = 0; i < linksArr.length; i++) {
            if(linksArr[i].className != 'noajax') {
                _addEvent(linksArr[i],'click',cancel);
                linksArr[i].onclick=function() {
                    ajaxThis(this);
                }
            }
        }
    }
}

function addWineEvents() {
    // add event listeners to items in wine list
    if($('vino_index')) {
        linksArr=$('vino_index').getElementsByTagName('a');
        for(var i = 0; i < linksArr.length; i++) {
            if(linksArr[i].className != 'noajax') {
                _addEvent(linksArr[i],'click',cancel);
                linksArr[i].onclick=function() {
                    fade_windows = false;
                    ajaxThis(this);
                }
            }
        }
    }
}

function addPartyEvents() {
    // add event listeners to items in party list
    if($('party_index')) {
        linksArr=$('party_index').getElementsByTagName('a');
        for(var i = 0; i < linksArr.length; i++) {
            if(linksArr[i].className != 'noajax') {
                _addEvent(linksArr[i],'click',cancel);
                linksArr[i].onclick=function() {
                    fade_windows = false;
                    ajaxThis(this);
                }
            }
        }
    }
}


function addReturnEvents() {
    // add event listener to 'return to list' link
    if($('content-header-links')) {
        linksArr=$('content-header-links').getElementsByTagName('a');
        for(var i = 0; i < linksArr.length; i++) {
            if(linksArr[i].className != 'noajax') {
                _addEvent(linksArr[i],'click',cancel);
                linksArr[i].onclick=function() {
                    fade_windows = false;
                    ajaxThis(this);
                }
            }
        }
    }
}

function _addEvent(obj, evType, fn) {

    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, false);
        return true;
    }
    else if (obj.attachEvent) {
        var r = obj.attachEvent('on'+evType, fn);
        return r;
    }
    else {
        return false;
    }
}

function ajaxThis(obj) {
    
    if($('headline')) $('headline').set('html', '');

    if(obj.className == 'selectedmenuitem') {
        return;
    }

    if(fade_windows) {
        hideContainer();
    }
    
    var fakeURL = obj.href.replace(document.location.protocol + '//' + document.location.host,'#');
    var dataSrc = obj.href;

    document.location.href = fakeURL;
    
    if($('main-menu')) {
        linksArr=$('main-menu').getElementsByTagName('A');
        for(var i = 0; i < linksArr.length; i++) {
            linksArr[i].parentNode.className = (obj.href.indexOf(linksArr[i].href) == -1) ? '' : 'active';
            linksArr[i].className = (linksArr[i].href != obj.href) ? '' : 'selectedmenuitem';
        }
    }
    
    var req = new Request.HTML({url:dataSrc+'/ajax-1',
        onSuccess: function(html, xml) {
            if(typeof(pageTracker) != 'undefined') pageTracker._trackPageview(dataSrc);
            showResponse(html, xml);
        },

        onComplete: function() {
            if($('scroll')) makeScrollbar( $('content-scroll-area'), $('scroll'), $('scroll-handle') );
        },

        onFailure: function() {
        }
    }).send();
}

function initialReload() {
    if(document.location.href.indexOf('#')!=-1){
        var currURL=document.location.protocol + '//' + document.location.host + document.location.href.substr(document.location.href.indexOf('#')+1);
        dummyObj=new Object;
        dummyObj.href = currURL;
        ajaxThis(dummyObj);
    }
    else {
        flashIt();
    }
}

function showResponse(html, xml) {

    var folder = '';
    var image = '';

    if($('content-scroll-area')) {
        $('content-scroll-area').dispose();
        
        if($('content-header')) {
            (new Element('div', {id: 'content-scroll-area'})).inject($('content-header'), 'after');
        }
    }
    
    for(var i = 0; i < html.length; i++) {
        if(html.item(i).id) {
            var value = html.item(i).innerHTML.replace(/&amp;/i,'&');
            switch(html.item(i).id) {
                case 'mainpage':
                    if(value == 1) {
                        if($('home-content')) {
                            $('home-content').style.display = 'block';
                            $('home-header-area').style.display = 'block';
                        }
                        
                        $('content-area').style.display = 'none';
                    }
                    else {
                        if($('home-content')) {
                            $('home-content').style.display = 'none';
                            $('home-header-area').style.display = 'none';
                        }
                        
                        $('content-area').style.display = 'block';
                    }
                    break;
                case 'title':
                    document.title = value;
                    break;
                case 'image':
                    image = value;
                    break;
                case 'content':
                    value = (image.length > 0) ? image+value : value;
                    $('content-scroll-area').set('html', value.replace(/&amp;/gi,'&'));
                    break;
                case 'headline':
                    $('headline').set('html', value);
                    break;
                case 'folder':
                    if(value == 'wines') {
                        $('content-scroll-area').className = 'wide-content';
                        makeWineScroll();
                        addWineEvents();
                    }
                    else if(value == 'parties') {
                        $('content-scroll-area').className = 'wide-content';
                        addPartyEvents();
                    }
                    else {
                        $('content-scroll-area').className = value;
                    }
                    folder = value;
                    break;
                case 'returnlink':
                        $('content-header-links').className = (folder == 'wines') ? 'after-hr' : '';
                        $('content-header-links').set('html', value);
                        addReturnEvents();
                    break;
                case 'element_id':
                        $('content-header-links').style.display = (value > 0) ? 'block' : 'none';
                    break;
            }
        }
    }

    if(fade_windows) {
        showContainer();
    }
    fade_windows = true;
    
    if($('scroll')) makeScrollbar( $('content-scroll-area'), $('scroll'), $('scroll-handle') );
}

function asInit() {
//    addMenuEvents();
//    initialReload();
}

function cancel(e) {
    if (e && e.preventDefault)
        e.preventDefault(); // DOM style
    return false; // IE style
}

