var toolTipBG = new Image();
toolTipBG.src = '_style/_images/bubble2.png';

function initToolTips(elements) {
    if (elements == null) {
        elements = $$('.toolTips');
    }
    var Tips2 = new Tips(elements, {
        initialize:function(){
            this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);
        },
        onShow: function(toolTip) {
            this.fx.start(1);
        },
        onHide: function(toolTip) {
            this.fx.start(0);
        },
        offsets: {'x': 25, 'y': -40}
    });
}

function isInteger( string ) {
    return !isNaN( parseInt( string ) );
}
function confirmDelete(ev) {
    if(!confirm("Are you sure you want to delete the following: " + this.title + "?")) {
        new Event(ev).stop()
    }
}

function refreshAjaxComponentsFX(elements) {
    var toolTipElements = new Array();
    var toolTipCount = 0;
    
    elements.each(function (element) {
        refreshAjaxComponentsFX(element.getChildren());
        
        if (element.hasClass('toolTips')) {
            toolTipElements[toolTipCount] = element;
            toolTipCount++;
        }
        
        if (element.hasClass('confirm')) {
            element.addEvent('click', confirmDelete);
            
        }
        
        if (element.hasClass('remoodalbox')) {
            element.onclick = function () { 
                return MOOdalBox.click(this); 
            };
        }
        
    });
    
    //apply new tool tips
    initToolTips(toolTipElements);
}

function refreshAjaxComponentsComplete(baseURL) {
    
    refreshAjaxComponentsFX($$('.refresh'));
    
    var img = new Image();
    img.src = baseURL + "blank.html";
    
    MOOdalBox.close();
    return false;
}

var ajaxRefreshComponentCount = $$('.refresh').length;

function reduceAjaxRefreshComponentCount(){
    ajaxRefreshComponentCount--;
}

function waitForAjaxRefresh(baseURL) {
    if (ajaxRefreshComponentCount > 0) {
        window.setTimeout('waitForAjaxRefresh(\'' + baseURL + '\')', 250);
    } else {
        refreshAjaxComponentsComplete(baseURL);
    }
}

function refreshAjaxComponents(baseURL,controller) {
    ajaxRefreshComponentCount = $$('.refresh').length;
    
    $$('.refresh').each(function (element) {
        var url = baseURL + element.getAttribute('id') + ".html?controller=" + controller + "&action=saveState";
       
        new Ajax(url, {
            method: 'get',
            update: element,
            onComplete: reduceAjaxRefreshComponentCount
        }).request();
    });
    
    waitForAjaxRefresh(baseURL);
}

function submitAjaxForm(form, baseURL, e) {
    
    var submitValue;
    
    if (!e) var e = window.event;
    
    if (e.explicitOriginalTarget) {
        submitValue = e.explicitOriginalTarget.id;
    }
    else if (e.relatedTarget) {
        submitValue = e.relatedTarget.id;
    }
    else {
        submitValue = document.activeElement.id;
    }
    
    var submitElement = $(submitValue);
    

    var submitName = submitElement.getAttribute('name');

    var hiddenInput = document.createElement('input');
    hiddenInput.setAttribute('type', 'hidden');
    hiddenInput.setAttribute('value', '1');
    
    var submitNameSplit = submitName.split("__");
    submitNameSplit[1] += 'AJAX';
    submitName = submitNameSplit.join("__");
    
    hiddenInput.setAttribute('name', submitName);

    form.appendChild(hiddenInput);
    
    var pc = form.getAttribute('name').substring(0,form.getAttribute('name').indexOf('_')) ;
    
    new Ajax(form.getAttribute('action'), {
            method: 'post',
            data:$(form.getAttribute('id')).toQueryString(),
            onComplete: function() {
                form.removeChild(hiddenInput);
                refreshAjaxComponents(baseURL, pc);
            }
    }).request();
    
    return false;
}

var fmaContentPhrasewidth;
function doit() {
    var fmaPopper = new Fx.Styles($('fma-content-phrase'), {
            duration: 2100,
            wait: false
        });
        fmaPopper.start({
            'opacity': 1,
            'width': fmaContentPhrasewidth
        });
}

window.addEvent('domready', function() {
    
    $$('a.confirm').addEvent('click', confirmDelete);
    MOOdalBox.init.bind(MOOdalBox);    
    initToolTips();
    if ($('fma-content-phrase') != null) {
        fmaContentPhrasewidth = $('fma-content-phrase').getStyle('width');
        $('fma-content-phrase').setStyle('display', 'block');
        $('fma-content-phrase').setStyle('opacity', 0);
        $('fma-content-phrase').setStyle('width', '1px');
        window.setTimeout("doit()", 1500);
        //doit();
        
    //end morpher
    }
});
