var currencyExchange = {
    currenciesToPass: {"from": "EUR", "to": "USD"},
    
    registerCurrency: function(id, value)
    {
        currencyExchange.currenciesToPass[(id === 'curFrom' ? 'from' : 'to')] = value;
        currencyExchange.getRate();
    },
    
    setCurrency: function(id, value)
    {
        var selectObj = document.getElementById(id);
        
        if (selectObj.length > 0)
            currencyExchange.registerCurrency(id, selectObj.options[value].value);
    },
    
    getSelectedValue: function(id, returnText)
    {
        var selectObj = document.getElementById(id);
        
        if (selectObj)
            return returnText ? selectObj.options[selectObj.selectedIndex].text : selectObj.options[selectObj.selectedIndex].value;
            
        return false;
    },
    
    getRate: function() {
        var script = document.createElement('script');
        script.setAttribute('src', "http://query.yahooapis.com/v1/public/yql?q=select%20rate%2Cname%20from%20csv%20where%20url%3D'http%3A%2F%2Fdownload.finance.yahoo.com%2Fd%2Fquotes%3Fs%3D" + currencyExchange.currenciesToPass['from'] + currencyExchange.currenciesToPass['to'] + "%253DX%26f%3Dl1n'%20and%20columns%3D'rate%2Cname'&format=json&callback=currencyExchange.parseExchangeRate");
        document.body.appendChild(script);
    },
    
    clearContainer: function()
    {
        var container = document.getElementById('currencyServerResonce'), 
            child;
        while(child=container.firstChild)
            container.removeChild(child);
    },
    
    createElement: function(cl, text)
    {
        var container = document.getElementById('currencyServerResonce'),
            element   = document.createElement('span');
            element.setAttribute('class', cl);
            element.innerHTML = text;
            container.appendChild(element);
    },
    
    parseExchangeRate: function(data) {
        var rate     = parseFloat(data.query.results.row.rate, 10),
            fromText = currencyExchange.getSelectedValue('curFrom', true),
            toText   = currencyExchange.getSelectedValue('curTo', true);
            
        currencyExchange.clearContainer();
        
        if (rate > 0)
        {
            currencyExchange.createElement('from', '1 ' + fromText);
            currencyExchange.createElement('exchangeRate', rate.toFixed(2)); 
            currencyExchange.createElement('to', toText); 
        }
    }
};

document.onload = currencyExchange.getRate();

