Event.observe(window, 'load', SetupAdvertisements);

var origionalCityValue = null;

function FocusMagicLocatorTextBox(event, control)
{
    if(origionalCityValue == null)
    {
        origionalCityValue = control.value;
    }
    
    if(control.value == origionalCityValue)
    {
        control.value = '';
    }
}

function UnfocusMagicLocatorTextBox(event, control)
{
    if(control.value == '')
    {
        control.value = origionalCityValue;
    }
}

var origionalSearchTextBoxValue = null;

function FocusSearchTextBox(event, control)
{
    if(origionalSearchTextBoxValue == null)
    {
        origionalSearchTextBoxValue = control.value;
    }
    
    if(control.value == origionalSearchTextBoxValue)
    {
        control.value = '';
    }
}

function UnfocusSearchTextBox(event, control)
{
    if(control.value == '')
    {
        control.value = origionalSearchTextBoxValue;
    }
}

function SetupAdvertisements()
{
    var topAdvertisementContainer = $('topAdvertisement');
    var rightAdvertisementContainer = $('rightAdvertisement');
    var articleAdvertisementContainer = null;
    // Un-comment this line to enable in-article advertisements.
    var articleAdvertisementContainer = $('articleAdvertisement');
    
    
    if(topAdvertisementContainer != null && rightAdvertisementContainer != null)
    {
        var topAdvertisement = new Element('iframe', { src: '/Magic/Advertisements/HorizontalAdvertisement.html?date=' + new Date().getTime(), frameborder: '0' });
        var rightAdvertisement = new Element('iframe', { src: '/Magic/Advertisements/VerticalAdvertisement.html?date=' + new Date().getTime(), frameborder: '0' });
        
        topAdvertisementContainer.update(topAdvertisement);
        rightAdvertisementContainer.update(rightAdvertisement);
    }
    
    if(articleAdvertisementContainer != null)
    {
        var style = 'height:250px; width:300px; padding:0px; margin:0px; overflow:hidden; border:none; background:transparent;';
        
        var articleAdvertisement = new Element('iframe', { src: '/Magic/Advertisements/ArticleAdvertisement.html?date=' + new Date().getTime(), frameborder: '0', 'style': style });
        
        articleAdvertisementContainer.update(articleAdvertisement);
    }
}

// configuration for autocard links via javascript
var gathererBaseURL = "gatherer.wizards.com";
var expCodeLookup = {
    ARB: "Alara Reborn",
    CON: "Conflux",
    ALA: "Shards of Alara",
    EVE: "Eventide",
    SHA: "Shadowmoor",
    MOR: "Morningtide",
    LRW: "Lorwyn",
    FUT: "Future Sight",
    PLC: "Planar Chaos",
    TSB: "Time Spiral \"Timeshifted\"",
    TSP: "Time Spiral",
    DIS: "Dissension",
    GPT: "Guildpact",
    RAV: "Ravnica",
    SOK: "Saviors of Kamigawa",
    BOK: "Betrayers of Kamigawa",
    CHK: "Champions of Kamigawa",
    "5DN": "Fifth Dawn",
    DST: "Darksteel",
    MRD: "Mirrodin",
    SCG: "Scourge",
    LGN: "Legions",
    ONS: "Onslaught",
    JUD: "Judgment",
    TOR: "Torment",
    OD: "Odyssey",
    AP: "Apocalypse",
    PS: "Planeshift",
    IN: "Invasion",
    PR: "Prophecy",
    NE: "Nemesis",
    MM: "Mercadian Masques",
    CG: "Urza's Destiny",
    GU: "Urza's Legacy",
    UZ: "Urza's Saga",
    EX: "Exodus",
    ST: "Stronghold",
    TE: "Tempest",
    WL: "Weatherlight",
    VI: "Visions",
    MI: "Mirage",
    AL: "Alliances",
    CSP: "Coldsnap",
    IA: "Ice Age",
    HM: "Homelands",
    FE: "Fallen Empires",
    DK: "The Dark",
    LE: "Legends",
    AQ: "Antiquities",
    AN: "Arabian Nights",
    M10: "Magic 2010",
    "10E": "Tenth Edition",
    "9ED": "Ninth Edition",
    "8ED": "Eighth Edition",
    "7E": "Seventh Edition",
    "6E": "Classic Sixth Edition",
    "5E": "Fifth Edition",
    "4E": "Fourth Edition",
    "3E": "Revised Edition",
    "2U": "Unlimited Edition",
    "2E": "Limited Edition Beta",
    "1E": "Limited Edition Alpha"
};


function autoCardWindow(cardname) 
{  
    agent = navigator.userAgent;
    windowName = "Sitelet";
    params  = "";
    params += "toolbar=1,";
    params += "location=1,";
    params += "directories=0,";
    params += "status=0,";
    params += "menubar=0,";
    params += "scrollbars=1,";
    params += "resizable=1,";
    params += "width=800,";
    params += "height=670";

    var useName = cardname.replace(/_/g, " ");
    useName = useName.replace(/\]/g, "&");
    useName = useName.replace(/\[/g, "'");

    win = window.open("http://"+gathererBaseURL+"/Pages/Card/Details.aspx?name="+useName, windowName, params);

    //win = window.open("http://ww2.wizards.com/Gatherer/CardDetails.aspx?name="+cardname, windowName , params);
}

function autoCardWindow2(cardname, set) 
{  
    agent = navigator.userAgent;

    windowName = "Sitelet";
    params  = "";
    params += "toolbar=1,";
    params += "location=1,";
    params += "directories=0,";
    params += "status=0,";
    params += "menubar=0,";
    params += "scrollbars=1,";
    params += "resizable=1,";
    params += "width=800,";
    params += "height=670";
    
    if (set != null && set != '')
    {
        var lookupSet = set;
        
        /*
        if( typeof ( expCodeLookup[set] ) != undefined && expCodeLookup[set] != '')
        {
            lookupSet = expCodeLookup[set];
        }*/
        
        var useName = cardname.replace(/_/g, " ");
        useName = useName.replace(/\]/g, "&");
        useName = useName.replace(/\[/g, "'");
    
        win = window.open("http://"+gathererBaseURL+"/Pages/Search/Default.aspx?name=+[\""+useName+"\"]&set=|[\""+lookupSet+"\"]", windowName, params);
        if (!win.opener) 
        {
            win.opener = window;
        }
    }
    else
    {
        autoCardWindow(cardname);
    }
    //win = window.open("http://ww2.wizards.com/Gatherer/CardDetails.aspx?name="+cardname+"&set="+set, windowName, params);

    
}

// DG: remove?
function autoCardWindow3(cardname, set, border) 
{
    agent = navigator.userAgent;

    windowName = "Sitelet";

    params  = "";
    params += "toolbar=1,";
    params += "location=1,";
    params += "directories=0,";
    params += "status=0,";
    params += "menubar=0,";
    params += "scrollbars=0,";
    params += "resizable=0,";
    params += "width=232,";
    params += "height=317";

    win = window.open("/magic/card.asp?name="+cardname+"&set="+set+"&border="+border, windowName, params);

    if (!win.opener) 
    {
        win.opener = window;
    }
}

function makeWinXY(url, nWidth, nHeight) 
{  
  agent = navigator.userAgent;

  windowName = "xywindow";

  params  = "";
  params += "toolbar=0,";
  params += "location=0,";
  params += "directories=0,";
  params += "status=0,";
  params += "menubar=0,";
  params += "scrollbars=1,";
  params += "resizable=1,";
  params += "width=" + nWidth + ",";
  params += "height=" + nHeight;
  win = window.open(url, windowName , params);

  if (agent.indexOf("Mozilla/2") != -1 && agent.indexOf("Win") == -1) 
  {
      win = window.open(url, windowName , params);
  }

  if (!win.opener) 
  {
      win.opener = window;
  }
}

// DG: TODO:
function SubmitForm(event, control, formid, action)
{
	control.disabled = true;
	
	var formService = '/Handlers/FormService.ashx';
	
	var form = $(formid);
	
	if(form != null)
    {
        var inputs = form.select('input');
        var formParams = new Hash();
        
        for(var i = 0; i < inputs.length; i++)
        {
            var input = inputs[i];
            if(input.type == "checkbox")
            {
				if(input.checked)
				{
					formParams.set('formparam' + input.name, input.value);
				}
			}
			else
			{
				formParams.set('formparam' + input.name, input.value);
			}
        }
        formParams.set('formparamformname', formid);
        formParams.set('formparamurl', action);
	
		new Ajax.Request(formService, {
		        method: 'post',
			    parameters: formParams.toQueryString(),
			    onSuccess: function(transport) 
			    {
					control.disabled = false;
					
					window.location = transport.responseText;
			    }
			}
		);
	}
	
	
}

function SubmitPoll(event, control, pollid)
{
    control.disabled = true;
    
    var pollService = '/Handlers/PollService.ashx';
    
    var form = $(pollid);
    
    if(form != null)
    {
        var inputs = form.select('input');
        var selects = form.select('select');
        var pollParams = new Hash();
        
        for(var i = 0; i < inputs.length; i++)
        {
            var input = inputs[i];
            
            if(input.name == 'yn')
            {
                if(input.checked)
                {
                    pollParams.set('pollparam' + input.name, input.value);
                }
            }
            else
            {
                pollParams.set('pollparam' + input.name, input.value);
            }
        }
        
        for(var i = 0; i < selects.length; i++)
        {
            var select = selects[i];
            
            pollParams.set('pollparam' + select.name, select.value);
        }
        
        new Ajax.Request(pollService, {
		        method: 'post',
			    parameters: pollParams.toQueryString(),
			    onSuccess: function(transport)
			    {
			        var result = eval("(" + transport.responseText + ")");
			        var resultArea = form.select('.pollsubmitresult')[0];			        			        
		        
			        if(result.Result)
			        {
    		            if(resultArea.innerHTML == '')
			            {
			                resultArea.update('Your vote has been recorded!');
			            }
			        }
			        else
			        {
			            if(result.Message != null)
			            {
			                resultArea.update(result.Message);
			            }
			            else
			            {
			                resultArea.update('There was a problem recording your vote.');
			            }
			        }
			        
			        resultArea.style.display = 'block';
			        
			        control.disabled = false;
			    }	
		    }
	    );	
    }
    
    return false;
}

function OpenTip(event, identifier) {
    var control = Event.element(event);

    var idType = "name";
    if (typeof identifier == "number") {
        idType = "multiverseid";
    }

    var imageHandler = 'http://gatherer.wizards.com/Handlers/Image.ashx';
    var imageSrc = imageHandler + '?type=card&' + idType + '=' + identifier;

    var tip = new Tip(control, '<img class="cardImageHover" src="' + imageSrc + '" alt="' + identifier + '" />', {
        delay: .25,
        stem: 'topLeft',
        hook: { tip: 'topLeft', mouse: true },
        offset: { x: 10, y: 10 },
        border: 2,
        radius: 2,
        width: 235
    });
}

function ChangeBigCard(id, card) {
    var el = $('bigcard_' + id);
    var useCard = card.replace(/_/g, ' ').replace(/\[/g, '\'');
    var base = 'http://gatherer.wizards.com/Handlers/Image.ashx?size=small&type=card&name=';
    el.src = base + useCard;
}