var G_ONECLICK_DATA = null; 
$(function(){
oc_bind();
});

function oc_reset_disp()
{
    $('.one-click .oc-list').html('');
    $('.one-click .oc-items-content').html('');
    $('.one-click .oc-success-id').html('');
    $('.one-click .oc-order-error-msg').html('');
    $('.one-click .oc-status').hide();
    $('.one-click .oc-items').hide(); 
    $('.one-click .oc-contact').hide(); 
    $('.one-click .oc-login').hide();
    $('.one-click .oc-no-result').hide();
    $('.one-click .oc-order-success').hide();
    $('.one-click .oc-c-form').hide();
    $('.one-click .oc-order-error').hide();
    $('.one-click .oc-list').show();
}

function oc_show_no_result()
{
    $('.one-click .oc-no-result').show();
}

function oc_show_login_err()
{
    $('.one-click .oc-login').show();
}

function oc_show_err(msg)
{
    $('.one-click .oc-list').html(msg);
}

function oc_bind()
{
    $('#home_one_click').click(oc_init)
    $("#oc-close-items").click(oc_e_item_close); 
    $('#oc-pickup-ok').click(oc_e_time_done); 
    $('#oc-delivery-ok').click(oc_e_add_done);
    $('#oc-order-error-ok').click(oc_e_error_done);
    $(".one-click").jqm({modal:true, overlay:false});
    $("#oc-d-date").datepicker({duration:'', dateFormat:'yy-mm-dd', minDate:new Date()});
}

function oc_list_bind()
{
    $(".oc-view-items").click(oc_e_item_view); 
    $(".oc-add-change").click(oc_e_add_change); 
    $(".oc-time-change").click(oc_e_time_change); 
    $(".oc-order-this").click(oc_e_order_this);
}

function oc_e_order_this(e)
{
    $(".oc-order-this").unbind('click');
    $(".one-click .oc-status").show(); 
    var idstr = $(e.target).attr('id'); 
    var order_id = idstr.replace('oc-order-this-',''); 
    var data = G_ONECLICK_DATA[order_id]; 
    $.post('/ajax/hdcheckout/oneclick', 
    data , 
    function(resp){
        $(".oc-order-this").click(oc_e_order_this);
        $(".one-click .oc-status").hide(); 
        if(resp.success)
        {
            $('.one-click .oc-list').hide();
            $(".one-click .oc-success-id").html(resp.order_id);
            $(".one-click .oc-order-success").show();
            if(typeof _gaq != "undefined")
            {
                _gaq.push(['_trackEvent', 'order','oneclick']);
            }
        }
        else
        {
            $('.one-click .oc-list').hide();
            $('.one-click .oc-order-error').show();
            $('.one-click .oc-order-error-msg').html(resp.error);
        }
    }, 'json');
    return false;
}

function oc_e_error_done(e)
{
    $('.one-click .oc-order-error').hide();
    $('.one-click .oc-list').show();
}

function oc_e_item_close(e)
{
    $('.one-click .oc-items').hide();
    $('.one-click .oc-list').show();
    return false;
}

function oc_e_item_view(e)
{
    $(".one-click .oc-status").show(); 
    var idstr = $(e.target).attr('id'); 
    var order_id = idstr.replace('oc-view-items-','');
    $('.one-click .oc-items-content').load('/ajax/oneclick/items/'+order_id, 
    {}, function(){
        $(".one-click .oc-status").hide()
    });
    $('.one-click .oc-items').show();
    $('.one-click .oc-list').hide();
    return false;
}

function oc_e_add_change(e)
{
    var idstr = $(e.target).attr('id');
    var order_id = parseInt(idstr.replace('oc-add-change-',''));
    oc_populate_add_form(order_id);
    $('.one-click .oc-list').hide();
    $('.one-click .oc-c-form').show();
    return false;
}

function oc_e_add_done(e)
{
    var order_id = $('#oc-d-orderid').val(); 
    oc_update_contact(order_id);
    oc_update_add(order_id); 
    oc_populate();
    $('.one-click .oc-c-form').hide();
    $('.one-click .oc-list').show();
}

function oc_e_time_change(e)
{
    var idstr = $(e.target).attr('id'); 
    var order_id = parseInt(idstr.replace('oc-time-change-','')); 
    oc_populate_pick_form(order_id);
    $('.one-click .oc-list').hide(); 
    $('.one-click .oc-c-form').show();
    return false;
}
function oc_e_time_done(e)
{
    var order_id = parseInt($('#oc-d-orderid').val()); 
    oc_update_contact(order_id);
    oc_populate();
    $('.one-click .oc-c-form').hide();
    $('.one-click .oc-list').show();
}

function oc_populate_add_form(order_id)
{
    $('.oc-c-form .address').show(); 
    oc_populate_contact(order_id);
    oc_populate_address(order_id);
    $('.oc-c-pickup').hide();
    $('.oc-c-delivery').show(); 
}

function oc_populate_pick_form(order_id)
{
    oc_populate_contact(order_id);
    $('.oc-c-form .address').hide(); 
    $('.oc-c-pickup').show(); 
    $('.oc-c-delivery').hide();
}

function oc_populate_contact(order_id)
{
    var data = G_ONECLICK_DATA[order_id];
    var landno = ''; 
    if( ! (data.landno.length == 0) )
    {
        landno = data.landno.substr(2,8);
        data.landno_pref = data.landno.substr(0,2);
    }
    else 
    {
        data.landno_pref = '';
    }
    $('#oc-d-date').val(data.ddate); 
    $('#oc-d-hours').val(data.hours); 
    $('#oc-d-mins').val(data.mins); 
    $('#oc-d-ampm').val(data.ampm);
    $('#oc-d-cellno').val(data.cellno); 
    $('#oc-d-landno').val(landno);
    $('#oc-d-landno-ext').val(data.landno_ext);
    $('#oc-d-orderid').val(''+order_id);
    $('#oc-d-instructions').val(data.instructions);
}

function oc_populate_address(order_id)
{
    var data = G_ONECLICK_DATA[order_id]; 
    $('#oc-d-line1').val(data.add1);
    $('#oc-d-line2').val(data.add2); 
    $('#oc-d-area').val(data.area); 
    $('#oc-d-landmark').val(data.landmark);
}

function oc_update_contact(order_id)
{
    var data = G_ONECLICK_DATA[order_id]; 
    data.ddate = $('#oc-d-date').val(); 
    data.hours = $('#oc-d-hours').val(); 
    data.mins = $('#oc-d-mins').val(); 
    data.ampm = $('#oc-d-ampm').val(); 
    data.cellno = $('#oc-d-cellno').val(); 
    data.landno = data.landno_pref + $('#oc-d-landno').val(); 
    data.landno_ext = $('#oc-d-landno-ext').val(); 
    data.instructions = $('#oc-d-instructions').val();
}

function oc_update_add(order_id)
{
    var data = G_ONECLICK_DATA[order_id]; 
    data.add1 = $('#oc-d-line1').val();
    data.add2 = $('#oc-d-line2').val(); 
    data.area = $('#oc-d-area').val(); 
    data.landmark = $('#oc-d-landmark').val(); 
}


function oc_init()
{
    $(".one-click").center();
    oc_reset_disp();
    $(".one-click").jqmShow();
    $(".one-click .oc-status").show(); 
    $.post('/ajax/oneclick/info',{}, function(data) {
        $(".one-click .oc-status").hide(); 
        if(data.login == false)
        {
            oc_show_login_err();
            return false;
        }
        if(data.success == false)
        {
            oc_show_err(data.error);
            return false;
        }
        if(data.info.length == 0)
        {
            oc_show_no_result();
            return false;
        }
        G_ONECLICK_DATA = data.info;
        oc_populate();
        return false;
    }, 'json');
    return false;
}

function oc_populate()
{
    var str = ''; 
    for(var order_id in G_ONECLICK_DATA)
    {
        var data = G_ONECLICK_DATA[order_id];
        var info_tpl = $(".oc-tpl .oc-tpl-name").html();
        info_tpl = info_tpl.replace('{oc_delivery_type}',data.delivery_type);
        info_tpl = info_tpl.replace('{oc_restaurant}', data.restaurant);
        info_tpl = info_tpl.replace('{oc_order_name}', data.save_name);
        info_tpl = info_tpl.replace('{oc_order_id}', data.order_id);
        var time_tpl= null;
        if(data.delivery_type == 'delivery')
        {
            time_tpl = $(".oc-tpl .oc-tpl-delivery").html(); 
            time_tpl = time_tpl.replace('{oc_line1}',data.add1);
            time_tpl = time_tpl.replace('{oc_line2}',data.add2);
            time_tpl = time_tpl.replace('{oc_area}',data.area);
            time_tpl = time_tpl.replace('{oc_landmark}',data.landmark);
        }
        else
        {
            time_tpl = $(".oc-tpl .oc-tpl-pickup").html(); 
        }
        time_tpl = time_tpl.replace('{oc_date}',data.ddate); 
        time_tpl = time_tpl.replace('{oc_hours}',data.hours); 
        time_tpl = time_tpl.replace('{oc_mins}', data.mins); 
        time_tpl = time_tpl.replace('{oc_ampm}', data.ampm);
        time_tpl = time_tpl.replace('{oc_order_id}', data.order_id);

        var checkout_tpl = $(".oc-tpl .oc-tpl-checkout").html(); 
        checkout_tpl = checkout_tpl.replace('{oc_order_id}', data.order_id);

        var row_tpl = $(".oc-tpl .oc-tpl-row").html(); 
        row_tpl = row_tpl.replace('{oc_orderinfo}', info_tpl);
        row_tpl = row_tpl.replace('{oc_timenplace}', time_tpl);
        row_tpl = row_tpl.replace('{oc_checkout}', checkout_tpl);
        str += row_tpl;
    }
    $(".one-click .oc-list").html(str);
    oc_list_bind();
}
