
    var req1;

    /**
     * Handle XML response
     *********************************************************************************************/
    function handlerQuoteReceived()
    {
         if( req1.responseXML !=null && req1.readyState == 4 && req1.status==200)
         {
            document.getElementById('loading_table').style.display='none';


            var element_name='quote_table';
            document.getElementById('quote_switch').style.display='';

            var response = getElements(document,req1).getElementsByTagName('stock');
            var newslist = getElements(document,req1).getElementsByTagName('news');

            var symbol = response[0].getAttribute('symbol');
            var url    = 'http://finance.yahoo.com/q?s='+symbol;
            var symbolAttr=document.getElementById(element_name);

            symbolAttr.rows[0].cells[1].innerHTML='<center>&nbsp;<b>'+response[0].getAttribute('full_name')+' ( <a href="'+url+'">'+symbol+'</a> )'+'</b>&nbsp;</center>';
            symbolAttr.rows[1].cells[1].innerHTML='&nbsp;'+response[0].getAttribute('price')+'&nbsp;';

            symbolAttr.rows[2].cells[1].innerHTML='&nbsp;'+colorPercent(response[0].getAttribute('change_percent'))+'&nbsp;';
            symbolAttr.rows[3].cells[1].innerHTML='&nbsp;'+colorNumber(response[0].getAttribute('change_usd'))+'&nbsp;';

            symbolAttr.rows[4].cells[1].innerHTML='&nbsp;'+response[0].getAttribute('pe')+'&nbsp;';
            symbolAttr.rows[5].cells[1].innerHTML='&nbsp;'+response[0].getAttribute('eps')+'&nbsp;';
            symbolAttr.rows[6].cells[1].innerHTML='&nbsp;'+response[0].getAttribute('week52')+'&nbsp;';

            var news='<table><tr><td align="left"><ul>';
            for (i=0;i<newslist.length;i++)
            {
                news+='<li><a href="'+newslist[i].getAttribute('link')+'"/>'+newslist[i].getAttribute('name')+'</a></li>';
            }
            news+='</ul></td></tr></table>';
            var generalTable=document.getElementById('quote_chart_table');
            generalTable.rows[3].cells[0].innerHTML=news;
         }
    }

    function hideQuote()
    {
        document.getElementById('quote_switch').style.display='none';
    }

    /**
     * Get a stocks quote for current price
     *********************************************************************************************/
    function load(symbol, country_code_for_quote)
    {
        req1=getXMLProcessor();
        req1.onreadystatechange = handlerQuoteReceived;

        var now = new Date();
        var url="servlets/QuoteServlet?symbol="+symbol+"&country="+country_code_for_quote+"&random_value_to_avoid_caching="+now;

        req1.open("GET", url, true);
        req1.send(null);

    }

   /*********************************************************************************************
     * Get a stocks quote for current price
     *********************************************************************************************/
    function downloadStockQuote()
    {
        if (validateQuoteForm()==0)
        {
            document.getElementById('loading_table').style.display='';


            var symbol  = document.getElementsByName('quote_symbol')[0].value;
            var country = "USA";

            if (document.getElementsByName('country_code_for_quote')!=null && document.getElementsByName('country_code_for_quote').length>0)
            {
                country=document.getElementsByName('country_code_for_quote')[0].value;;
            }
            
            var td      = document.getElementById('quote_chart_table').rows[1].cells;
            if (country=="USA")
            {
                td[0].innerHTML = '<center><img alt="" src="http://ichart.finance.yahoo.com/t?s='+symbol+'"/></center>';
            }
            else
            {
                td[0].innerHTML = '<center><img alt="" src="http://informer.rts.ru/main/graph/issue/'+symbol+'.gif"/></center>';
            }
            load(symbol,country);
        }
        else
        {
            alert('Invalid input');
        }
    }

    function validateQuoteForm()
    {
         var error_message='';

         var elements = document.getElementsByTagName("quote_symbol");
         for (i=0; i < elements.length; i++)
         {
               var element = elements.item(i);
               element.className='';
         }

         error_message += checkThatIsNotEmpty( 'quote_symbol', message_empty_field);
         if (error_message.length!=0)
         {
              error_message="<ul>"+error_message+"</ul>";
              showErrorCentered(error_message,0);
              return 1;
         }
        return 0;
    }
