
var orakulas_function_folder = '/legacy/';


$(document).ready(
	//bind event to option buttons
	function()
	{
		$(".addus.selected").live('click', cart_action_handler); 
		$(".addus").live('click', cart_action_handler);
		
		var t = $("#cart_bid_amount").attr("type");
		if (t == 'text') 
		{
			$("#cart_bid_amount").parent().attr("autocomplete","off");
		}
	}
);


cart_buy = function()
{
    $('.attention_message_bid_amount').hide();

    if(cart_get_bid_amount() <= 0)
    {
        $('.attention_message_bid_amount').show();
        return;
    }

    var h = $('#cart_item_list').height()+$('#cart_bid').height()+20;

    $('#cart_item_list').hide();
    $('#cart_bid').hide();
    $('#cart_preloader').height(h);

    $('#cart_preloader .valign_container').css('padding-top', (h/2 -30) + 'px' );


    $('#cart_preloader').show();
    var options = {
            type: 'POST',
            url: '/lang/' + cur_lang + '/cart/get_items',
            dataType: 'json',
            data: {},
            success: cart_buy_response
    }
    $.ajax(options);
}

cart_buy_response = function(response)
{
	
	$('#cart_bid_amount').val(cart_get_bid_amount());
	
    var items = response;
    var items_str = '';
    for(i in items)
    {
        if (response[i]['selected'] == true)
        {
            if(items_str != '')
            {
                items_str = items_str + ';';
            }
            items_str = items_str + items[i]['event_id']
        }
    }
	
    //mark conflicting bits from the same event
    var once_found_events = {};
    var conflicting_events = Array();
    
    if (cart_get_bid_type() == "multi")
    {
	    for(i in items)
	    {
	    	if (items[i]['selected'] == true)
	    	{
		        if(once_found_events[items[i]['event_id']])
		        {
		            conflicting_events.push(items[i]['event_id']);
		        }
		        else
		        {
		            once_found_events[items[i]['event_id']] = 1;
		        }
	    	}
	    }
	
	    for(i in conflicting_events)
	    {
	        $('.cart_item_' + conflicting_events[i]).addClass('error');
	    }
    }

    //report if cart is empty
    if(items.length == 0)
    {
    	$('#cart_preloader').hide();
    	$('#cart_item_list').show();
    	$('#cart_bid').show();
        $('.attention_message_empty').show();
        return
    }
    
    if(conflicting_events.length > 0)
    {
    	$('#cart_preloader').hide();
    	$('#cart_item_list').show();
    	$('#cart_bid').show();
        $('.attention_message_incompatible').show();
        return
    }
    
    if (cart_get_bid_type() == "multi")
    {
        //check conflicting items
        
        /*
        var options = {
            type: 'POST',
            url: '/lang/' + cur_lang + '/cart/check_min_event',
            dataType: 'json',
            data: {ids: items_str},
            success: function(response){
                if (response['status'] == 'success')
                {
                    cart_check_blocks(items_str);
                } else {
                    cart_conflict_response_with_describe(items_str, response['errors']);
                }
            }
        };
        $.ajax(options);
        */
    	if (items_str != "")
    	{
	        var options = {
	            type: 'GET',
	            url: orakulas_function_folder + 'check_blocks.php',
	            dataType: 'text',
	            data: {ids: items_str},
	            success: cart_conflict_response
	        };
	        $.ajax(options);
    	}
    	else
    	{
    		$('#cart_preloader').hide();
        	$('#cart_item_list').show();
        	$('#cart_bid').show();
            $('.attention_message_empty').show();
            return
    	}
    }
    else
    {
    	cart_show_confirm_dialog();
    }
}

cart_check_blocks = function(items_str)
{
	if (items_str != "")
	{
	    var options = {
	        type: 'GET',
	        url: orakulas_function_folder + 'check_blocks.php',
	        dataType: 'text',
	        data: {ids: items_str},
	        success: cart_conflict_response
	     };
	     $.ajax(options);
	}
	else
	{
            $('#cart_preloader').hide();
            $('#cart_item_list').show();
            $('#cart_bid').show();
            $('.attention_message_empty').show();
            return
	}
}

cart_show_confirm_dialog = function()
{
	if ($('.cart_item.error').length == 0) //if there is no conflicting items. Some items can be marked as conflicting in cart_buy_response
    {
        //check conflicting items
        var options = {
                type: 'POST',
                url: '/lang/' + cur_lang + '/cart/get_confirm_dialog',
                dataType: 'json',
                data: {},
                success: cart_get_confirm_dialog_response
        }
        $.ajax(options);
    }
}

//mark conflicting items
cart_conflict_response = function(response)
{
    response = response.replace(/ /gi, ';');
    var conflicts = response.split(';');

    $('#cart_preloader').hide();
	$('#cart_item_list').show();
	$('#cart_bid').show();
	
    if(response.length > 0)
    {
        for(i in conflicts)
        {
            $('.cart_item_' + conflicts[i]).addClass('error');
        }

        $('.attention_message_incompatible').show();
    }
    else
    {
    	cart_show_confirm_dialog();
    }
}

//mark conflicting items with text
cart_conflict_response_with_describe = function(items_str, conflicts)
{
    var is_errors = false;
    $.each(conflicts, function() {
        is_errors = true;
        $('.cart_item_' + this.ID).addClass('error');
        $('.cart_item_' + this.ID).append('<span>'+this.Text+'</span>');
    });
    if (is_errors)
    {
        $('.attention_message_incompatible').show();
    }
    else
    {
        cart_check_blocks(items_str);
    }
}

cart_get_confirm_dialog_response = function (response)
{
    cart_reload_response(response);
}


cart_confirm_buy = function()
{
	
	var h = $('#cart_item_list').height()+$('#cart_bid').height()+20;
	$('#cart_item_list').hide();
	$('#cart_bid').hide();
	$('#cart_preloader').height(h);
	$('#cart_preloader').show();
        
        $('#cart_preloader .valign_container').css('padding-top', (h/2 - 30) + 'px' );
	
        
    var options = {
            type: 'POST',
            url: '/lang/' + cur_lang + '/cart/get_items',
            dataType: 'json',
            data: {},
            success: cart_confirm_buy_response
    }
    $.ajax(options);

}


cart_range_random = function(from, to)
{
    return(Math.floor((to-from)*Math.random()) + from);
}

cart_confirm_buy_response = function (response)
{
    var data = 
        {
        amount: cart_get_bid_amount(),
        rndnr: cart_range_random(1000000000, 9999999999),
        bid_type: cart_get_bid_type()
        //sc: 1
        };

    var nr = 0;
    for(i in response)
    {
        if (response[i]['selected'] == true)
        {
            data['eid' + nr] = i.split('_')[0];
            data['opt' + nr] = response[i]['option_ending'];
            data['odd' + nr] = response[i]['option_ratio'];
            nr++;
        }
    }

    //check conflicting items
    var options = {
            type: 'GET',
            url: orakulas_function_folder + 'internet/ORIB_calc_submit_card_new.php',
            dataType: 'json',
            data: data,
            success: cart_process_buy_response
    };
    
    $.ajax(options);

/*

    $.ajax(options);

    var url='/internet/ORIB_calc_submit_card.php?amount='+stake_amount+'&currency='+99+'&cardtype='+4+'&rndnr=<?=rand(1,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9);?>';

    for (i=0,j=0;i < opener.parent.topfrm.event_count;i++) {
        if (opener.parent.topfrm.events[i][2]==1) {
            j++;
            url+='&eid'+j+'='+opener.parent.topfrm.events[i][0]+'&opt'+j+'='+opener.parent.topfrm.events[i][1]+'&odd'+j+'='+opener.parent.topfrm.events[i][4];
        }
    };
    url+='&sc=1';*/
}

cart_action_press_button = function(type)
{
    if ($("#bid_"+type+" > .bit_accord_checkbox").find("input[name='empty']").is(':checked'))
    {
        var options = {
            type: 'POST',
            url: '/lang/' + cur_lang + '/cart/trash',
            dataType: 'json',
            data: {},
            success: function(){
                window.location.reload();
            }
        }
        $.ajax(options);
    }
    else
    {
        window.location.reload();
        //$("#bid_"+type).hide();
        //$('#cart_block').show();
    }
}

cart_process_buy_response = function(response)
{
    var type = cart_get_bid_type();
    //console.debug(type);
    
    var is_errors = 0;
    for(i in response['items'])
    {
        if (response['items'][i]['success'] == false)
        {
            is_errors++
            $("#bid_not > .bit_accord_cont").append('<div class="bid_element_cross_bg"><div class="bid_element_cross">'+response['items'][i]['event_title']+'<div class="bid_element_cross_error">'+response['items'][i]['error']+'</div></div></div>');
        }
        else
        {
            $("#bid_not > .bit_accord_cont").append('<div class="bid_element_tick_bg"><div class="bid_element_tick"><a href="'+base_url+cur_lang+'/user/statymu-istorija?card_id='+response['items'][i]['card_number']+'">'+response['items'][i]['event_title']+'</a></div></div>');
        }
    }

    $('#cart_block').hide();

    if (is_errors == 0)
    {
    	//cart_set_bid_amount(0);
    	
    	var options = {
            type: 'POST',
            url: '/cart/sendEmail',
            dataType: 'json',
            data: {ids: response['items']},
            success: function(){
                //alert('xxx');
            }
        }
        $.ajax(options);
    	
        $('#bid_ok').show();
    }
    else
    {
        if (type == 'single')
        {
            if (is_errors == response['items'].length)
            {
                $("#bid_not").find('.f_11').html('Statymas nesekmingas.');
            }
            $('#bid_not').show();
        }
        else
        {
            $("#bid_false > .bit_accord_cont").append('<div>'+response['items'][0]['error']+'</div>');
            $('#bid_false').show();
        }
    }
    }


/**
 * depending on element class call ajax function to add or remove elemnt to / from cart.
 * 
 */
cart_action_handler = function(event){
	//parse required data stored in element id
	var event_id = cart_parse_id($(this).attr('id')); //id of this store information about event_id and ending in format 'event_id_-_ending'
	var ending = cart_parse_ending($(this).attr('id'));
	var sufix = cart_parse_sufix($(this).attr('id'));
	
	if (sufix != undefined) sufix = '_-_'+sufix;
	else sufix = "";
	
	//parse required option data from hidden elements
	var option_title = $('#option_' + event_id + '_-_' + ending + sufix + '_option_title').html();
	var option_ratio = $('#option_' + event_id + '_-_' + ending + sufix + '_option_ratio').html();
	var event_title = $('#option_' + event_id + '_-_' + ending + sufix + '_event_title').html();
	var event_group_title = $('#option_' + event_id + '_-_' + ending + sufix + '_event_group_title').html();
	var minevents = $('#option_' + event_id + '_-_' + ending + sufix + '_minevent').html();
	var minevents = $('#option_' + event_id + '_-_' + ending + sufix + '_minevent').html();
	var pattern_name = $('#option_' + event_id + '_-_' + ending + sufix + '_pattern_name').html();
	
	if($(this).hasClass('selected')){
		cart_remove_element(this, event_id, ending);
	} else {
		cart_add_element(this, event_id, ending, option_title, option_ratio, event_title, event_group_title, minevents, pattern_name);
	}
}

/**
 * button - the button that was clicked to add an item
 * event_id - event id on whish we are betting
 * ending - option key 
 * option_title - title of exact option we choose
 * option_ratio - ratio of option
 * event_title - title of subevent. If option is from main event, event_title is empty
 * event_group_title - title of main event
 * minevents - available in minimum events
 */
 var cart_position_action = function(){
		var p = $(document);
		var cart_obj = $('#cart_bid');
		if( cart_obj.length ){
			var cart_obj_position = cart_obj.position();
			cart_obj_final_t_pos = Math.ceil(cart_obj_position.top);
			
			/*Scroll method function*/
			var page_h = $('#page').height();
				var window_h = $(window).height();
				var dudu = p.scrollTop();
				//$('.hghghgh').remove();
				//$('body').append('<div class="hghghgh" style="position:fixed; left:0; top:0; padding:10px; background:#fff"></div>');
				//$('.hghghgh').html(page_h + '----' + dudu + '----' + window_h + '----' + (cart_obj_final_t_pos + 105 + $('.top_banner_block').height() - dudu));
				if ((cart_obj_final_t_pos + 105 + $('.top_banner_block').height() - dudu) <= 0){
					$('#cart_bid').addClass('fixed_position');
					if ( $('#cart_bid .right_separte').length ){
					}else{
					$('#cart_bid').append('<div class="right_separte"></div>')
					};
				}else{
					$('#cart_bid.fixed_position .right_separte').remove();
					$('#cart_bid.fixed_position').removeClass('fixed_position');
				};
			/**/
			
			$(window).scroll(function () {
				var page_h = $('#page').height();
				var window_h = $(window).height();
				var dudu = p.scrollTop();
				//$('.hghghgh').remove();
				//$('body').append('<div class="hghghgh" style="position:fixed; left:0; top:0; padding:10px; background:#fff"></div>');
				//$('.hghghgh').html(page_h + '----' + dudu + '----' + window_h + '----' + (cart_obj_final_t_pos + 105 + $('.top_banner_block').height() - dudu));
				if ((cart_obj_final_t_pos + 105 + $('.top_banner_block').height() - dudu) <= 0){
					$('#cart_bid').addClass('fixed_position');
					if ( $('#cart_bid .right_separte').length ){
					}else{
					$('#cart_bid').append('<div class="right_separte"></div>')
					};
				}else{
					$('#cart_bid.fixed_position .right_separte').remove();
					$('#cart_bid.fixed_position').removeClass('fixed_position');
				};
			});
			
		};
	};
	
	$(document).ready(function() {
		cart_position_action();					   
	});
	
cart_add_element = function(button, event_id, ending, option_title, option_ratio, event_title, event_group_title, minevents, pattern_name, cart_item_list_height)
{
	var options = {
		type: 'POST',		
		url: '/lang/' + cur_lang + '/cart/add_item',
		dataType: 'json',
		data: {event_id: event_id, option_ending: ending, option_title: option_title, option_ratio: option_ratio, event_title: event_title, event_group_title: event_group_title, minevents: minevents, pattern_name:pattern_name},
		success: cart_add_element_response,
		error: cart_add_element_response
	}
	$.ajax(options);
}


/**
 * button - the button that was clicked to add an item
 * event_id - event id on whish we are betting
 * ending - option key 
 * 
 */
cart_remove_element = function(button, event_id, ending)
{
	var options = {
		type: 'POST',		
		url: '/lang/' + cur_lang + '/cart/remove_item',
		dataType: 'json',
		data: {event_id: event_id, option_ending: ending},
		success: cart_remove_element_response
	}
	$.ajax(options);	
}

cart_remove_all_element = function()
{
	var options = {
		type: 'POST',		
		url: '/lang/' + cur_lang + '/cart/trash',
		dataType: 'json',
		success: cart_remove_all_element_response
	}
	$.ajax(options);	
}

cart_remove_all_element_response = function(response){
	switch(response['status'])
	{
		case 'success':
			$("span.turtur").children('span').removeClass('selected');
            cart_reload_response(response);
			cart_position_action();
		break;
		case 'error':
			alert(response['errorMessage']);
		break;
	}	
}

/**
 * checkbox - checkbox element that was clicked
 * event_id - event id on whish we are betting
 * ending - option key 
 * 
 */

cart_change_item_selected = function(checkbox, event_id, ending){

	var selected;
	if (checkbox.checked == 1)
	{
                $('#option_'+event_id+'_-_'+ending).removeClass('not_selected').addClass('selected');
		selected = 1
	} else
	{
                $('#option_'+event_id+'_-_'+ending).removeClass('selected').addClass('not_selected');
		selected = 0;
	}
	var options = {
			type: 'POST',		
			url: '/lang/' + cur_lang + '/cart/set_item_selected',
			dataType: 'json',
			data: {event_id: event_id, option_ending: ending, selected: selected},
			success: cart_change_item_selected_response
		}
	$.ajax(options);	
}


cart_change_item_selected_response = function(response){
	switch(response['status'])
	{
		case 'success':
			cart_reload_response(response);
		break;
		case 'error':
			alert(response['errorMessage']);
		break;
	}	
}

/**
 * bid_type - 'single' | 'multi' | 'system'
 * 
 */
cart_set_bid_type = function(bid_type, lang)
{
	var options = {
		type: 'POST',		
		url: '/lang/' + cur_lang + '/cart/set_bid_type',
		dataType: 'json',
		data: {bid_type: bid_type},
		success: cart_set_bid_type_response
	}
	$.ajax(options);	
}

cart_set_bid_type_response = function(response)
{
	switch(response['status'])
	{
		case 'success':
			cart_reload_response(response);
		break;
		case 'error':
			alert(response['errorMessage']);
		break;
	}
}


cart_add_element_response = function(response)
{
	switch(response['status'])
	{
		case 'success':
			var button_id = 'option_' + response['request']['event_id'] + '_-_' + response['request']['option_ending']; // The button that was clicked to add an item
			cart_appearance_add_to_cart(button_id, true);
			cart_appearance_add_to_cart(button_id + '_-_special', true);
			cart_reload_response(response);
			cart_position_action();
		break;
		case 'error':
			alert(response['errorMessage']);
		break;
	}
}

cart_remove_element_response = function(response)
{
    switch(response['status'])
    {
        case 'success':
            var button_id = 'option_' + response['request']['event_id'] + '_-_' + response['request']['option_ending']; // The button that was clicked to add an item
            cart_appearance_remove_from_cart(button_id, true);
            cart_appearance_remove_from_cart(button_id + '_-_special', true);
            cart_reload_response(response);
			cart_position_action();
        break;
        case 'error':
            alert(response['errorMessage']);
        break;
    }
}


cart_get_bid_amount = function()
{
    var bid_amount = $('#cart_bid_amount').val();
    bid_amount = bid_amount.replace(/,/gi, ".");
    bid_amount = parseFloat(bid_amount);
    bid_amount = bid_amount.toFixed(2);
    if(isNaN(bid_amount)){
        bid_amount = 0;
    }
    return bid_amount;
}

cart_get_bid_type = function()
{
	var bid_type = $("#bid_type").val();
	return (bid_type == "single") ? "single" : "multi";
}


cart_set_bid_amount = function (bid_amount)
{
	
    var bid_type = cart_get_bid_type();
    if (bid_type == "multi")
    {
        win_amount = Math.round(parseFloat($('#cart_ratio').html()) * bid_amount * 100)/100;
    } else {
        win_amount = 0;
        $('.orders_list').find('li[id^="cart_item_"]').each(function()
        {
            var rating = $(this).find(".rating").html();
            if ($(this).find("input:checked").length == 1)
            {
                win_amount += Math.round(parseFloat(rating) * bid_amount * 100)/100;
            }
        });
        win_amount = Math.round(parseFloat(win_amount) * 100)/100;
    }
   
    //win_amount = Math.round(parseFloat($('#cart_ratio').html()) * bid_amount * 100)/100;

    $('#cart_possible_win').html(win_amount.toFixed(2) + ' LT<br />(' + (win_amount / 3.4528).toFixed(2) + ' EUR)');

    var options = {
        type: 'POST',
        url: '/lang/' + cur_lang + '/cart/set_bid_amount',
        dataType: 'json',
        data: {bid_amount: bid_amount},
        success: cart_set_bid_response
    }
    $.ajax(options);


}


cart_set_bid_response = function (response) {
    //do nothing
}


// Show to user that this option is in the cart now.
cart_appearance_add_to_cart = function(button_id, animate)
{
	$("#" + button_id).addClass('selected');
}

// Show to user that this option is in NOT in the cart now.
cart_appearance_remove_from_cart = function(button_id, animate)
{
	$("#" + button_id).removeClass('selected');
}

/**
 * initialize cart reload
 * 
 */
cart_reload = function()
{
	var options = {
			type: 'POST',
			url: '/lang/' + cur_lang + '/cart/reload_cart',
			dataType: 'json',
			data: {},
			success: cart_reload_response
		}
	$.ajax(options);	
}

/**
 * replace current cart with repsonse['html']
 * 
 */
cart_reload_response = function(response)
{
	if(response['html'])
	{
		$('#cart').html(response['html']);
	}
	
}

/**
 * Each option is uniquely described by event_id and option ending. They are combined into one string: event_id_-_ending
 * This function parse event_id from that string
 * 
 */
cart_parse_id = function(str)
{
	var values = str.split('_-_', 2);
	return values[0].substr(7);
}

/**
 * Each option is uniquely described by event_id and option ending. They are combined into one string: event_id_-_ending
 * This function parse enging from that string
 * 
 */
cart_parse_ending = function(str)
{
	var values = str.split('_-_', 2);
	return values[1];
}

cart_parse_sufix = function(str)
{
	var values = str.split('_-_', 3);
	return values[2];
}
