// -*- coding: utf-8 -*-

var laspiCoupon = {
    id: false,
    coupon: 0,
    notFirstCoupon: false,
    trackmap: {},
    charmap: null,
    now: 0,
    adv_comm: 1.0,
    order_id: 0,
    base_name: 'noname',
    order_num: '',
    timestr: '',
    client_region: {country: 'None Country', area: 'None Area', city: 'None City'},
    make: function(act_id,fnc) {
        if(typeof(pageTracker) == 'undefined'){
            laspiCoupon.hiddenGetCoupon();
            return false;
        }
        // var bid = $("#edit-order-bid").val();
        // bid = parseInt(bid);
        // if(isNaN(bid)) bid = 0;
        // var urlcoupon = pageTracker._getLinkerUrl('http://www.laspi.com/coupon/make/'+act_id+'/'+bid);
        var urlcoupon = pageTracker._getLinkerUrl('http://www.laspi.com/coupon/make/'+act_id);
        // var urlcoupon = pageTracker._getLinkerUrl('http://www.laspi.test/coupon/make/'+act_id);
        $.getScript(urlcoupon,function(){
            if(fnc) fnc.call(); 
            laspiCoupon.trans();
        });
    },
    _make_timestr: function(){
        var dnow = new Date();
        var m = dnow.getMonth()+1;
        if(m < 10) m = '0' + m;
        var day = dnow.getDate();
        if(day < 10) day = '0' + day;
        var minutes = dnow.getMinutes();
        if(minutes < 10) minutes = '0' + minutes;            
        var hours = dnow.getHours();
        if(hours < 10) hours = '0' + hours;            
        laspiCoupon.timestr = hours+':'+minutes+'_' + day+'.'+m+'.'+dnow.getFullYear();
    },
    init: function (){
        //laspiCoupon.showGetCoupon(1);
        this._initCharMap();
        this._make_timestr();
        // this._vovaTrack();
    },
    showGetCoupon: function(act_id){
        $('#laspi_order_form input[name=op]').before('<button id="getcoupon" type="button">Получить скидочный купон</button>');
        $('#getcoupon').click(function(){
            laspiCoupon.make(act_id,laspiCoupon.done);
        });        
    },
    hiddenGetCoupon: function(){
        $('#getcoupon').remove();
    },
    done: function() {
        // alert(this.id);
        laspiCoupon.hiddenGetCoupon();
    },
    track: function(url){
        if(this.trackmap[url]) return;
        this.trackmap[url] = 1;
        if(typeof(pageTracker) != 'undefined'){
            pageTracker._trackPageview(url);
        }
    },
    trackEvent: function(e){
        if(typeof(pageTracker) != 'undefined'){
            pageTracker._trackEvent('One Price', e);
        }
    },
    trans: function(){
        
        function get_order_id(base_name){
            base_name = '{'+base_name+'}';
            return laspiCoupon.timestr + '-' + base_name + '('+laspiCoupon.coupon+')';            
        }
        
        var base_name = 'noname'; 
        if($("#edit-order-bid").val()) base_name = $("#edit-order-bid option:selected").eq(0).text();
        var order_id = get_order_id(base_name);
        var category_num = 'nocategory'; 
        if($("#edit-order-category-room").val()) category_num = $("#edit-order-category-room option:selected").eq(0).text();
        var num_tourists = 1;
        var num_days = 1;
        // var cost = 50;
        var cost = this.adv_comm;
        if(this.notFirstCoupon) cost = 1;
        var price = cost/num_days;
        price = price.toString();
        cost = cost.toString();
        num_days = num_days.toString();

        if(typeof(pageTracker) != 'undefined'){
            
            pageTracker._trackPageview("/ga/coupon/counter"); 
            pageTracker._addTrans(
                order_id,                                     // идентификатор заказа (id user)
                "Laspi Site",                            // аффилированность
                cost,                                    // итого
                "",                                     // налог
                "",                                        // доставка
                'Coupon Sevastopol',                           // город
                'Coupon Crimea',                         // область
                'Coupon Ukraine'                         // страна
            );        

            pageTracker._addItem(
                order_id,                                   // идентификатор заказа
                num_tourists,                               // единицы складского хранения или код (кол-во человек)
                base_name,                                  // название продукта (база) 
                category_num,                               // категория (номера)
                price,                                      // цена дня = итого/дней
                num_days                                    // количество (дней)
            );

            pageTracker._trackTrans();        
            
        }
    },
    trans_new_order: function(){
        
        function get_order_id(base_name){
            base_name = '{'+base_name+'}';
            return laspiCoupon.timestr + '-' + base_name;            
        }
        
        var base_name = laspiCoupon.base_name; 
        if($("#edit-order-bid").val()) base_name = $("#edit-order-bid option:selected").eq(0).text();
        var order_id = get_order_id(base_name);
        var category_num = 'nocategory'; 
        if($("#edit-order-category-room").val()) category_num = $("#edit-order-category-room option:selected").eq(0).text();
        var num_tourists = 1;
        var num_days = 1;
        var cost = this.adv_comm;
        var price = cost/num_days;
        price = price.toString();
        cost = cost.toString();
        num_days = num_days.toString();

        if(typeof(pageTracker) != 'undefined'){
            
            pageTracker._trackPageview("/ga/new_order/counter"); 
            pageTracker._addTrans(
                order_id,                                     // идентификатор заказа (id user)
                "Laspi Site",                            // аффилированность
                cost,                                    // итого
                "",                                     // налог
                "",                                        // доставка
                'NewOrder Sevastopol',                           // город
                'NewOrder Crimea',                         // область
                'NewOrder Ukraine'                         // страна
            );        

            pageTracker._addItem(
                order_id,                                   // идентификатор заказа
                num_tourists,                               // единицы складского хранения или код (кол-во человек)
                base_name,                                  // название продукта (база) 
                category_num,                               // категория (номера)
                price,                                      // цена дня = итого/дней
                num_days                                    // количество (дней)
            );

            pageTracker._trackTrans();        
            
        }
    },

    trans_new_order2: function(){
        
        function get_order_id(){
            order_name = '{{'+laspiCoupon.base_name+'.'+laspiCoupon.order_num+'}}';
            return laspiCoupon.timestr + '-' + order_name;
            
        }
        
        var base_name = laspiCoupon.base_name; 
        var order_id = get_order_id();
        var category_num = 'nocategory'; 
        var num_tourists = 1;
        var num_days = 1;
        var cost = this.adv_comm;
        var price = cost/num_days;
        price = price.toString();
        cost = cost.toString();
        num_days = num_days.toString();

        if(typeof(pageTracker) != 'undefined'){
            
            pageTracker._trackPageview("/ga/new_order/counter"); 
            pageTracker._addTrans(
                order_id,                                     // идентификатор заказа (id user)
                "NewOrder Laspi Site",                            // аффилированность
                cost,                                    // итого
                "",                                     // налог
                "",                                        // доставка
                laspiCoupon.client_region.city,                           // город
                laspiCoupon.client_region.area,                         // область
                laspiCoupon.client_region.country                         // страна
            );        

            pageTracker._addItem(
                order_id,                                   // идентификатор заказа
                num_tourists,                               // единицы складского хранения или код (кол-во человек)
                base_name,                                  // название продукта (база) 
                category_num,                               // категория (номера)
                price,                                      // цена дня = итого/дней
                num_days                                    // количество (дней)
            );

            pageTracker._trackTrans();        
            
        }
        var ptPlaneta = laspiCoupon.make_ptPlaneta();
        if(typeof(ptPlaneta) != 'undefined'){
            
            ptPlaneta._addTrans(
                order_id,                                     // идентификатор заказа (id user)
                "NewOrder Laspi Site",                            // аффилированность
                cost,                                    // итого
                "",                                     // налог
                "",                                        // доставка
                laspiCoupon.client_region.city,                           // город
                laspiCoupon.client_region.area,                         // область
                laspiCoupon.client_region.country                         // страна
            );        

            ptPlaneta._addItem(
                order_id,                                   // идентификатор заказа
                num_tourists,                               // единицы складского хранения или код (кол-во человек)
                base_name,                                  // название продукта (база) 
                category_num,                               // категория (номера)
                price,                                      // цена дня = итого/дней
                num_days                                    // количество (дней)
            );

            ptPlaneta._trackTrans();        
            
        }
        
    },
    translit: function (text){
    
        return text.replace(/([\u0410-\u0451])/g,
			function (str,p1,offset,s) {
				if (laspiCoupon.charmap[str] !== undefined){
                    return laspiCoupon.charmap[str];
                }
                else {
                    return '-';
                }
			}
        );
    
    },    
    _initCharMap: function() {
		var A = new Array();
		A["Ё"]="YO";A["Й"]="I";A["Ц"]="TS";A["У"]="U";A["К"]="K";A["Е"]="E";A["Н"]="N";A["Г"]="G";A["Ш"]="SH";A["Щ"]="SCH";A["З"]="Z";A["Х"]="H";A["Ъ"]="";
		A["ё"]="yo";A["й"]="i";A["ц"]="ts";A["у"]="u";A["к"]="k";A["е"]="e";A["н"]="n";A["г"]="g";A["ш"]="sh";A["щ"]="sch";A["з"]="z";A["х"]="h";A["ъ"]="";
		A["Ф"]="F";A["Ы"]="I";A["В"]="V";A["А"]="A";A["П"]="P";A["Р"]="R";A["О"]="O";A["Л"]="L";A["Д"]="D";A["Ж"]="ZH";A["Э"]="E";
		A["ф"]="f";A["ы"]="i";A["в"]="v";A["а"]="a";A["п"]="p";A["р"]="r";A["о"]="o";A["л"]="l";A["д"]="d";A["ж"]="zh";A["э"]="e";
		A["Я"]="YA";A["Ч"]="CH";A["С"]="S";A["М"]="M";A["И"]="I";A["Т"]="T";A["Ь"]="";A["Б"]="B";A["Ю"]="YU";
		A["я"]="ya";A["ч"]="ch";A["с"]="s";A["м"]="m";A["и"]="i";A["т"]="t";A["ь"]="";A["б"]="b";A["ю"]="yu";
        this.charmap = A;
    },
    new_order: function (order_id) {
        this.order_id = order_id;
        var url = 'http://www.laspi.com/coupon/new_order/'+order_id;
        $.getScript(url,function(){
            laspiCoupon.trans_new_order2();
        });
    },
    _vovaTrack: function() {
        var i = 0;
        if(typeof(pageTracker) != 'undefined'){          
            pageTracker._trackPageview("/ga/order-and-calc/"); 
            $("#edit-order-formula").change(function() {
                i++;
                if(i == 1){
                    pageTracker._trackPageview("/ga/order-and-calc-and-form/");
                }
            })    
        }
       
    },
    _yaSelect: function() {
        //
        var j = 0;
        var yaCounter80776 = new Ya.Metrika({id: 80776, defer: true});
        $("#edit-order-formula").change(function() {
                j++;
                if(j == 1){
                   //yaCounter80776.hit('/ya/order-and-calc-and-form/');  
                   yaCounter80776.reachGoal('CALCULATION');
                }
            })    
         
    },
    myTrack: function() {
        var loc = '' + window.location;
        if(loc.search(/\?action=order/) != -1){
            this._yaSelect();
            this._vovaTrack();
        }
        else if(loc.search(/\?module=user&action=new_order$/) != -1){
            this._yaSelect();
            this._vovaTrack();
        }        
    },
    make_ptPlaneta: function() {
        if(document.cookie.indexOf('fromplaneta=') != -1){
            if(typeof(pageTracker) != 'undefined' && typeof(_gat) != 'undefined'){
                var pt = _gat._getTracker("UA-683618-2");
                // pt._setDomainName("none");
                return pt;
            }
        }
        return undefined;
    }
}

$(document).ready(function(){
    laspiCoupon.init();
});

