var MError = 0;
var MInfo = 2;
var MSuccess = 1;
var BASE_AJAX_URL = "../../ajax/";
var RES_IMG_DIR = "../../resources/images/";
var CARD_IMG_DIR = '../../images/minicards/';
var FIELD_IMG_DIR = '../../images/fields/';
App = { pendingAjax: false };
COMMON = {
    viewDeck: function (deckId, placeholderId) {
        // var deckViewer = new Ext.ux.DeckViewer({owner: 1});
        Ext.Ajax.request({
            url: BASE_AJAX_URL + 'ajDeck.aspx?type=view&did=' + deckId,
            success: function (response) {
                var data = Ext.decode(response.responseText);
                if (!Ext.isEmpty(data)) {
                    $LAB.setOptions({ AllowDuplicates: false }).script('../../resources/js/OnPageDeckViewer.js').wait(function () {
                        var deckViewer = new OnPageDeckViewer({ owner: 1 });
                        var first = Ext.get(placeholderId).first();
                        if (!Ext.isEmpty(first))
                            Ext.destroy(first);
                        deckViewer.init(data);
                        deckViewer.render(placeholderId);
                    });
                }
            }
        });
    },
    convertFromName2Img: function (name) {
        // alert("before:"+name);
        name = Ext.util.Format.htmlDecode(name);
        while (name.indexOf(' ') !== -1) {
            name = name.replace(' ', '');
        }
        while (name.indexOf('#') !== -1) {
            name = name.replace('#', '');
        }
        while (name.indexOf('\'') !== -1) {
            name = name.replace('\'', '');
        }
        while (name.indexOf('/') !== -1) {
            name = name.replace('/', '');
        }
        while (name.indexOf('\\') !== -1) {
            name = name.replace('\\', '');
        }
        // while(name.indexOf('.')!==-1) {
        // name = name.replace('.','');
        // }
        // alert("after:"+name);
        return name + ".gif";
    },
    showStdMessage: function (mcode, msg, placeholderId) {
        var divMessage = Ext.get(placeholderId);
        if (mcode == MError) {
            divMessage.removeClass('Msg-Blue');
            divMessage.removeClass('Msg-Grey');
            divMessage.addClass('Msg-Yellow');
        } else if (mcode == MInfo) {
            divMessage.removeClass('Msg-Yellow');
            divMessage.removeClass('Msg-Blue');
            divMessage.addClass('Msg-Grey');
        } else if (mcode == MSuccess) {
            divMessage.removeClass('Msg-Yellow');
            divMessage.removeClass('Msg-Grey');
            divMessage.addClass('Msg-Blue');
        }
        divMessage.update(msg);
        divMessage.show();
    },
    showStdMessages: function (messages, placeholderId) {
        var outer = $(placeholderId.indexOf('#') != -1 ? placeholderId : '#' + placeholderId);
        $.each(messages, function (index, val) {
            var el = $(document.createElement('div'));
            if (val.MessageType == MError) {
                el.addClass('Msg-Yellow');
            } else if (val.MessageType == MInfo) {
                el.addClass('Msg-Grey');
            } else if (val.MessageType == MSuccess) {
                el.addClass('Msg-Blue');
            }
            el.html(val.Message);
            outer.append(el);
        });
        outer.show();
        return true;
    },
    clear: function (placeholderId) {
        var divMessage = Ext.get(placeholderId);
        divMessage.update();
        divMessage.hide();
    }
};

function toggleContainer(id, senderId, showText, hideText){
	var el = jQuery('#' + id);
	var sender = jQuery('#' + senderId);

	el.toggle(function() {
		sender.attr("title", hideText);
		sender.html(hideText);
		sender.addClass('hide');
	}, function() {
		sender.attr("title", showText);
		sender.html(showText);
		sender.addClass('show');
	});
}

function getEvent(eventobj) {
	if(eventobj.stopPropagation) {
		eventobj.stopPropagation();
		eventobj.preventDefault();
		return eventobj;
	} else {
		window.event.returnValue = false;
		window.event.cancelBubble = true;
		return window.event;
	}
}

function yaf_mouseover() {
	var evt = getEvent(window.event);
	if(evt.srcElement) {
		evt.srcElement.style.cursor = "hand";
	} else if(evt.target) {
		evt.target.style.cursor = "pointer";
	}
}

function yaf_left(obj) {
    return jQuery(obj).position().left; 
}

function yaf_top(obj) {
    return jQuery(obj).position().top + jQuery(obj).outerHeight() + 1;
}

function yaf_popit(menuName) {
	var evt = getEvent(window.event);
	var target,newmenu;

	if(!document.getElementById) {
		throw('ERROR: missing getElementById');
		return false;
	}
	
	if(evt.srcElement)
		target = evt.srcElement;
	else if(evt.target)
		target = evt.target;
	else {
		throw('ERROR: missing event target');
		return false;
	}
	
	newmenu = document.getElementById(menuName);

	if(window.themenu && window.themenu.id!=newmenu.id)
		yaf_hidemenu();

	window.themenu = newmenu;
	if(!window.themenu.style) {
		throw('ERROR: missing style');
		return false;
	}

	if (!jQuery(themenu).is(":visible")) {
	    var x = yaf_left(target);
	    // Make sure the menu stays inside the page
	    // offsetWidth or clientWidth?!?
	    if (x + jQuery(themenu).outerWidth() + 2 > jQuery(document).width()) {
	        x = jQuery(document).width() - jQuery(themenu).outerWidth() - 2;
	    }

	    themenu.style.left = x + "px";
	    themenu.style.top = yaf_top(target) + "px";
	    themenu.style.zIndex = 100;

	    jQuery(themenu).fadeIn();
	} else {
	    yaf_hidemenu();
	}

	return false;
}

function yaf_hidemenu() {
	if(window.themenu) {
		jQuery(window.themenu).fadeOut();
		window.themenu = null;
	}
}

function mouseHover(cell,hover) {
	if(hover) {
		cell.className = "popupitemhover";
		try {
			cell.style.cursor = "pointer";
		}
		catch(e) {
			cell.style.cursor = "hand";
		}
	} else {
		cell.className = "popupitem";
	}
}

document.onclick = yaf_hidemenu;
if(document.addEventListener) document.addEventListener("click",function(e){window.event=e;},true);
if (document.addEventListener) document.addEventListener("mouseover", function (e) { window.event = e; }, true);

$(document).ready(function () {
    $('abbr.timeago').timeago();
});
