(function(CB,$,undefined)
{
    CB.Slider = function()
    {
        var slider_object = false,
        current_position = 0,
        slider_width = 0,
        timeout = null,
        StartAnimation = function(){
            timeout = setTimeout(function(){
                Animate();
            },4000);
        },
        Animate = function()
        {
            if(current_position+710 == slider_width)
            {
                slider_object.css({marginLeft:'0px'})
            }
            current_position = (current_position+710 == slider_width) ? 0 : current_position + 710;
            slider_object.animate({
                marginLeft:'-'+ current_position +'px'
            }, 800,function(){
                StartAnimation();
            });
        },
        CopyFirstItem = function()
        {
            //append first to last
            var item = slider_object.children().first().clone();
            slider_object.append(item);

            //detect width
            slider_width = slider_object.children().length*710;
            slider_object.css({'width':slider_width});
        };
        return {
            Load: function(options)
            {
                slider_object = $('#'+ options.id +' ul')
                slider_width = slider_object.width();
                CopyFirstItem();
                StartAnimation();
            }
        };
    };
}(window.CB = window.CB || {}, jQuery));

$(document).ready(function(){
    if($.browser.msie && $.browser.version=="6.0")
    {
        var div = $('<div>We are very sorry but Internet Explorer 6 is a not supported browser.  Please upgrade your browser to use the full functionality of our website.</div>');
        div.css({
            'position':'absolute',
            'top':0,
            'left':0,
            'right':0,
            'border':'1px solid #F00',
            'color':'#F00',
            'backgroundColor':'#FCC',
            'width':'940px',
            'textAlign':'center',
            'padding':'10px'
        });
        $('#container').prepend(div);
    }
});

//po number cbo
function edit_po_number()
{
    var edit = document.getElementById('po_number_edit');
    var txt = document.getElementById('po_number_txt');
    var field = document.getElementById('po_number');

    if(edit && txt)
    {
        edit.style.display = 'block';
        txt.style.display = 'none';
        field.focus();
    }
}

function save_po_number()
{
    var edit = document.getElementById('po_number_edit');
    var txt = document.getElementById('po_number_txt');
    var field = document.getElementById('po_number');
    var url = document.location.href;
    url = url.split('#');

    document.location.href = url[0] +'&po='+ field.value;

    if(edit && txt)
    {
        edit.style.display = 'none';
        txt.style.display = 'block';
    }
}
//end po number cbo

var time_save_field1;
function time_save_field(file,el)
{
    clearTimeout(time_save_field1);
    time_save_field1 = setTimeout("save_field('"+file+"','"+el.id+"')",1000);
}

function save_field(file,el)
{
    if(typeof el == 'string')
    {
        el = document.getElementById(el);
    }

    var value = el.value;

    if(el.tagName == 'SELECT')
    {
        value = el.options[el.selectedIndex].value;
    }
    else if(el.tagName == 'INPUT' && el.type == 'checkbox')
    {
        value = el.checked;
    }

    img = document.getElementById(el.id +'_status');
    //img does not exists or img is not empty or value is not empty
    //disables saving when the input is empty and not already checked
    if(img == undefined || (img.className != 'icon_empty' || value != ''))
    {
        check_step();
        saving(el.name);
        var params = 'invoice='+ el.name +'&value=' + value + '&unique='+ Math.random();
        $.ajax(file +'?'+ params)
            .success(function(data){
                after_request_status(data);
            });
    }
}

function after_request_status(request)
{
    var response = eval('('+request+')');

    if(response['extra'] != undefined
        && response['extra']['values'] != undefined
        )
        {
        values = response['extra']['values'];
        for(var index in values)
        {
            el = document.getElementById(index);

            if(el.tagName == 'INPUT' && el.type == 'checkbox')
            {
                el.checked = values[index];
            }
            else
            {
                el.value = values[index];
            }

            if(response['extra']['disabled'] == undefined
                || response['extra']['disabled'][index] == undefined
                || response['extra']['disabled'][index] == false
                )
                {
                save_field('./order_xml.php',el);
            }
        }
    }

    if(response['extra'] != undefined
        && response['extra']['disabled'] != undefined
        )
        {
        disable = response['extra']['disabled'];
        for(var index in disable)
        {
            document.getElementById(index).disabled = disable[index];
            img = document.getElementById(index +'_status');
            if(img && disable[index] == true)
            {
                img.src = './images/empty.gif';
                img.className = 'icon_empty';
            }
        }
    }

    if(response.name == 'password1'
        || response.name == 'password2'
        )
        {
        chk_el_name = (response.name == 'password1') ? 'password2' : 'password1';

        chk_el = document.getElementById(chk_el_name +'_status');

        if(chk_el
            && (response.status == true && chk_el.className == 'icon_cancel')
            || response.status == false && chk_el.className == 'icon_accept')
            {
            save_field('./order_xml.php',chk_el_name);
        }
    }

    el = document.getElementById(response.name +'_status');

    if(el)
    {
        el.src = './images/empty.gif';

        if(response.status == true)
        {
            el.className = 'icon_accept';
        }
        else
        {
            el.className = 'icon_cancel';
        }
    }
    check_step();
}


var enable_click_row = true;
/**
 * This function is used to navigate to other pages
 */
function click_row(url)
{
    if(enable_click_row)
    {
        window.location = url;
    }
    else
    {
        enable_click_row = true;
    }
}

/**
 * Function to disable row clicks
 */
function click_none()
{
    enable_click_row = false;
}

var steps = new Array();
steps[1] = new Array();
steps[1][0] = true;
steps[2] = new Array();
steps[2][0] = true;
steps[3] = new Array();
steps[3][0] = false;
steps[4] = new Array();
steps[4][0] = true;
steps[5] = new Array();
steps[5][0] = false;

function check_step(st)
{
    if(st)
    {
        step = st;
    }
    if(step == 0)
    {
        return;
    }

    var valid = 1;
    if(steps && steps[step] != undefined && steps[step].length != 0)
    {
        if(steps[step][0] == true)
        {
            if(typeof(fields_to_check) != "undefined")
            {
                var cnt = 0;
                var special_field = false;
                for(var index in fields_to_check)
                {
                    if(fields_to_check[index] != undefined)
                    {
                        //find last item and check if 0. Thats our special field
                        str = fields_to_check[index] +'';
                        nstr = str.split('_');
                        nstr = nstr.reverse();

                        if(nstr[0] == 0 && nstr[(nstr.length-1)] != 'chooser')
                        {
                            special_field = fields_to_check[index];
                        }
                    }
                }

                if(special_field != false)
                {
                    var sp = document.getElementById(special_field);
                }

                for(var index in fields_to_check)
                {
                    el = document.getElementById(fields_to_check[index]);

                    if(sp && el && fields_to_check[index] != special_field)
                    {
                        if(sp.checked == true)
                        {
                            el.checked = false;
                        }
                        el.disabled = sp.checked;
                    }

                    if(el && el.checked == true)
                    {
                        cnt++;
                    }
                }

                if(cnt == 0)
                {
                    valid = 0;
                }
            }
        }
        else if(steps[step][0] == false)
        {
            if(typeof(media_count) == 'undefined' || media_count == 0)
            {
                valid = 0;
            }
        }
    }

    set_button_status(valid);
}

function set_button_status(status)
{
    el1 = document.getElementById('not-proceed');
    el2 = document.getElementById('do-proceed');
    el3 = document.getElementById('checking-proceed');
    el4 = document.getElementById('button_next');
    el5 = document.getElementById('button_offer');
    el6 = document.getElementById('button_order');

    if(el1)
    {
        if(status == 1) //continue
        {
            el1.style.display = 'none';
            el2.style.display = 'block';
            el3.style.display = 'none';
        }
        else if(status == 2) //checking
        {
            el1.style.display = 'none';
            el2.style.display = 'none';
            el3.style.display = 'block';
        }
        else //disabled/error
        {
            el1.style.display = 'block';
            el2.style.display = 'none';
            el3.style.display = 'none';
        }

        if(status == 1)
        {
            if(el4)
            {
                el4.className = 'button_next';
                el4.disabled = false;
            }
            if(el5)
            {
                el5.className = 'button_next';
                el5.disabled = false;
            }
            if(el6)
            {
                el6.className = 'button_next';
                el6.disabled = false;
            }
        }
        else
        {
            if(el4)
            {
                el4.className = 'button_next disabled';
                el4.disabled = true;
            }
            if(el5)
            {
                el5.className = 'button_next disabled';
                el5.disabled = true;
            }
            if(el6)
            {
                el6.className = 'button_next disabled';
                el6.disabled = true;
            }
        }
    }
}

function do_request_checkbox(file,name,value)
{
    saving();
    var params = 'form_name='+ name +'&value=' + value + '&unique='+ Math.random();
    $.ajax(file +'?'+ params,{type: 'get'})
        .success(function(data){
            after_request_checkbox(data);
        });
}

function saving(field)
{
    var el = document.getElementById(field +'_status');

    if(el)
    {
        el.src="./images/ajax-loader.gif";
        el.className='icon_loader';
    }
    set_button_status(2);
}

/**
 * @param request XMLHttpRequest
 */
function after_request_checkbox(request)
{
    var response = eval('('+request+')');

    check = document.getElementById(response.name.join('_'));
    if(check)
    {
        check.checked = response['return'];
    }

    if(response.extra != false)
    {
        for(i=0;i<=response.extra.length;i++)
        {
            el = document.getElementById(response.extra[i]['field']);

            if(el && response.extra[i]['status'] != undefined)
            {
                el.checked = response.extra[i]['status'];
            }

            if(el && response.extra[i]['value'] != undefined)
            {
                img = document.getElementById(response.extra[i]['field'] +'_status')
                if(el.tagName == 'INPUT')
                {
                    if(response.extra[i]['value'] instanceof Array)
                    {
                        response.extra[i]['value'] = '';
                    }
                    el.value = response.extra[i]['value'];
                }
                if(el.tagName == 'SELECT')
                {
                    if(response.extra[i]['value'] instanceof Array)
                    {
                        response.extra[i]['value'] = 0;
                    }
                    set_index(response.extra[i]['field'],response.extra[i]['value']);
                }

                if(response.extra[i]['disabled'] == true)
                {
                    el.disabled = true;
                    img.className = null;
                }
                else
                {
                    el.disabled = false;

                    if(response.extra[i]['status'] == true)
                    {
                        img.className = 'icon_accept';
                    }
                    else
                    {
                        img.className = 'icon_delete';
                    }
                }
            }
        }
    }
    check_step();
}

//media cbo
function attach_media_manufacturer(aArgs)
{
    $('#cancel_manufacturer')
        .click(function(){
            display_custom_media(true,true);
        })
        .css({
            'cursor':'pointer',
            'display':'none'
        });
    $('#cancel_media')
        .click(function(){
            display_custom_media(false,true);
        })
        .css({
            'cursor':'pointer',
            'display':'none'
        });

    $('#media_manufacturer').change(function() {
        load_media_name(aArgs);
    });

    load_media_name(aArgs);
}

function load_media_name(aArgs)
{
    var value = $("#media_manufacturer").val();
    var mn = $("#media_name");

    if(value == '-999') //custom manufacturer
    {
        display_custom_media(true,false);
    }
    else
    {
        display_custom_media(false,true);

        if(mn)
        {
            mn.children('option').length = 0;
            mn.append(new Option('Loading...',0))
        }

        loadexternal(
            "./ajax_handler.php",
            "linkselect=true&filter="+value+"&field=media_name",
            "media_name",
            attach_media_name,
            aArgs
        );
    }
}

function attach_media_name()
{
    if($('#media_manufacturer').val() != 0)
    {
        var me = $("#media_name");
        if(me && me.children('option').length == 2)
        {
            display_custom_media(false,false,true);
        }
    }
    $("#media_name").change(function(){
        post_media();
    });
}

function post_media()
{
    var val = $('#media_name').val();
    if(val == '-999')
    {
        display_custom_media(false,false);
    }
    else if(val != 0)
    {
        saving();
        save_media();
    }
}

function save_media()
{
    var value1 = $("#media_manufacturer").val();
    var value2 = $("#media_name").val();
    var value3 = $("#media_manufacturer_custom").val();
    var value4 = $("#media_name_custom").val();
    var value5 = $('#printableside').val();

    document.location.href=document.location.href +"&media_manufacturer="+ value1 +"&media_name="+ value2 +"&media_manufacturer_custom="+ value3 +"&media_name_custom="+ value4 +"&printableside="+ value5;
}

function display_custom_media(manufacturer,showhide,no_medias_found)
{
    var show = (typeof(showhide) != undefined && showhide == true) ? 1 : 0;
    var state1 = (show == 1) ? 'inline' : 'none';
    var state2 = (show == 1) ? 'none' : 'inline';
    var manufacturer_field = $("#media_manufacturer");
    var nothing_found = (typeof(no_medias_found) != undefined && no_medias_found == true);

    if(typeof(manufacturer) != undefined
        && manufacturer == false
        && show == 1
        && manufacturer_field.is(':hidden')
    )
    {
        //if the custom manufacturer field is shown and we return back to normal media name, change the manufacturer too
        manufacturer = true;
    }

    if(manufacturer == true)
    {
        $('#media_manufacturer_custom').css({'display':state2});
        manufacturer_field
            .css({'display':state1});

        if(show == 0)
        {
            manufacturer_field.val(0);
        }
    }

    $('#only_custom').css({'display':(nothing_found == true) ? state2 : 'none'});
    $('#media_name_custom').css({'display':state2});
    $('#cancel_manufacturer').css({'display':(manufacturer_field.val() != 0) ? 'none' : state2});
    $('#cancel_media').css({'display':(nothing_found) ? 'none' : state2});
    $('#media_printableside').css({'display':state2});
    $('#media_name')
        .val(0)
        .css({'display':state1});

    if(manufacturer == true && show == 1)
    {
        $('#media_manufacturer_custom').focus();
    }
    else if(manufacturer == false && show == 1)
    {
        $('#media_name_custom').focus();
    }
}
