/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

function log(t){
    console.log(t);
}
(function($){
    $.fn.changeValute = function(){
        var ch = new currencyTable();
        ch.table = $(this);
	ch.table.css('margin-top','5px');
        ch.setCurrency(CurrencyExchangeRates);
        ch.setItem(ch.table.find('.change'));
	var date = new Date();
        var divInner = '';//'Курс на: ' + (date.getDate() + '.' + (Number(date.getMonth()) + 1)) + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
        //$.each(ch.currency,function(name){
            //divInner += ('<span style="padding-right:20px;"><a href="#" valute="'+ name +'">'+name+'</a></span>');
        //});
	divInner += ('<span style="padding-left:20px;"><a href="#" valute="EUR">EUR</a></span>');
	divInner += ('<span style="padding-left:20px;"><a href="#" valute="RUB">RUB</a></span>');
	divInner += ('&nbsp;&nbsp;(по курсу на ' + (date.getDate() + '.' + (Number(date.getMonth()) + 1) + '.' + date.getFullYear()) + ')');
        var div = $('<div class="addChangeCurrency" style="text-align:right;"></div>');
        div.html(divInner);
        $(this).before($(div));
        $('.addChangeCurrency a').click(function(){
	    $('.addChangeCurrency .red').removeClass('red');
	    $(this).addClass('red');
            var changeCurrency = $(this).attr('valute');
            ch.change(changeCurrency);
            return false;
        });
    }

    function currencyTable() {
        var thisObject = this;
        this.currency = {RUB:1};
        this.table = null;

        this.priceItem = new Array();
        this.setItem = function (elements){
            thisObject.priceItem = new Array();
            elements.each(function(){
                var el = new price(this.innerHTML, this);
                thisObject.priceItem.push(el);
            });
        }

        //
        this.change = function (v){
            var correctValue = false;
            //проверяем верность параметра
            $.each(this.currency, function(key, value){
                if(v == key){
                    correctValue = true;
                    return false;
                }
            });
            if(correctValue){
                for(var i=0; i<this.priceItem.length; i++){
                    
                    this.priceItem[i].change(this.currency[v]);
                }
            } else {
                this.error('Unknown valute current.')
            }
        }

        //set last valute
        this.setCurrency = function (object){
            $.each(object,function(key, value){
                thisObject.currency[key] = value;
            });
        }
        //displays error
        this.error = function (text){
            if(text != undefined){
                //return new Error(text);
                alert(text);
            } else {
                alert('Unknown error!!!');
                //return new Error('Unknown error!!!');
            }
        }
    }

    function price (value, viewBlock){
        this.currency = 'euro';
        this.value = value;
        this.viewBlock = (viewBlock != undefined)?$(viewBlock):$('<div></div>');
        this.change = function (c){
            var curse = c;
            
            var changeValue = (this.value*curse).toFixed(0);
            if(Number(changeValue.split('.')[1]) == Number(0)){
                changeValue = changeValue.split('.')[0];
            }
            this.viewBlock.html(changeValue);
            
            return changeValue;
        }
    }
})(jQuery)

//var tester = window.location.href.split('?')[1];
//if(tester== 'jangot' || tester== 'valute'){
    $(function(){
        $('table td').each(function(){
            var num = testNumberNode(this);
            if(Boolean(num)){
                $(num).addClass('change');
            }
        });

        $('table').not('.tur').not('.noMoney').changeValute();
	$('a[valute="EUR"]').click();
    });
//}


function testNumberNode(n){
    var node = $(n);
    var children = node.children().not('br');
    children.addClass('tested')
    if (children.length == 0){
        node.find('br').remove();
        var content = node[0].innerHTML;
		content = content.replace('&nbsp;','');
        content = content.replace(' ','');
        
        if(content == Number(content)){
            node[0].innerHTML = content;
            return node;
        } else {
            return false;
        }
    } else if (children.length == 1) {
        return testNumberNode(children);
    } else {
        return false;
    }
}

