var initDOM = false;
var isIconShow = false;

$(document).ready(function()
{
    //Enable all functions
    initDOM = true;
    $("#avatar_img").click(avatar_edit);
    
    
    
    function getCookie(name) 
    {
        var prefix = name + "=";
        var cookieStartIndex = document.cookie.indexOf(prefix);
        if (cookieStartIndex == -1)
            return null;
        var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
        if (cookieEndIndex == -1)
            cookieEndIndex = document.cookie.length;
        return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
    }    
    
    var jcrop_api_small = null;
    var jcrop_api_big = null;
    var avatar_state = false;
    var is_uploaded_big = false, is_uploaded_small = false;
    
    function getRandom(jcrop) 
    {
        var dim = jcrop.getBounds();
        return [
            Math.round(Math.random() * dim[0]),
            Math.round(Math.random() * dim[1]),
            Math.round(Math.random() * dim[0]),
            Math.round(Math.random() * dim[1])
        ];
    };
    
    function showPreview(coords)
    {
        //делаем чтоб не исчезал кроп при симпл клике
        if (!avatar_state)
        {
            jcrop_api_big.show();
        }
        else
        {
            jcrop_api_small.show();
        }
        if (parseInt(coords.w) > 0)
        {
            if (avatar_state == false)
            {
                var rx = 256 / coords.w;
                var ry = 383 / coords.h;

            
                jQuery('#preview_full_avatar').css({
                    width: Math.round(rx * $("#jcrop_img_big").width()) + 'px',
                    height: Math.round(ry * $("#jcrop_img_big").height()) + 'px',
                    marginLeft: '-' + Math.round(rx * coords.x) + 'px',
                    marginTop: '-' + Math.round(ry * coords.y) + 'px'
                });
            }
            else
            {
                var rx = 75 / coords.w;
                var ry = 75 / coords.h;
                
                jQuery('#preview_full_avatar_small').css({
                    width: Math.round(rx * $("#jcrop_img_small").width()) + 'px',
                    height: Math.round(ry * $("#jcrop_img_small").height()) + 'px',
                    marginLeft: '-' + Math.round(rx * coords.x) + 'px',
                    marginTop: '-' + Math.round(ry * coords.y) + 'px'
                });
            }
        }
    }

    function avatar_edit()
    {
        $("#popup_avatar").modal(
        {
            closeClass: "cancel", 
            opacity:30,
            overlayCss: {backgroundColor:"#000"},
            onShow: function (dialog) 
            {
                avatar_state = false;
            
                if (1)
                {
                    var temp_avatar = company_data.avatar;
                    //Уже загружена аватарка
                    if (temp_avatar.avatar_r_big && temp_avatar.avatar_r_big!="images/avatarFull.png")
                    {                                               
                        var img_r_avatar = new Image();
                        img_r_avatar.src = temp_avatar.avatar_r_big;
                        img_r_avatar.onerror = function(){$("#original_avatar").attr("src","images/avatarFull.png"); };
                        img_r_avatar.onload = function()
                        {
                            
                            $("#original_avatar").attr("src", img_r_avatar.src).attr("width", img_r_avatar.width/3).attr("height", img_r_avatar.height/3);
                            $("#preview_full_avatar").attr("src", img_r_avatar.src);
                            if (jcrop_api_big != null)
                                jcrop_api_big.destroy();                            
                            jcrop_api_big = $.Jcrop('#original_avatar', {
                                imgID: 'jcrop_img_big',
                                onChange: showPreview,
                                onSelect: showPreview,
                                aspectRatio: (256/383)
                            });
                            //console.log(temp_avatar.x_big);
                            //console.log(temp_avatar.x_big+temp_avatar.w_big);
                            jcrop_api_big.setSelect([temp_avatar.x_big, temp_avatar.y_big, temp_avatar.x_big+temp_avatar.w_big, temp_avatar.h_big]);
                        };
                    }
                }
                
                
                //alert(document.cookie);
                $("#upload_avatar").uploadify({
                    'uploader'       : 'uploadify.swf',
                    'script'         : 'upload.php?PHPSESSID='+sess_id,
                    'cancelImg'      : 'upload/uploadify/cancel.png',
                    'buttonText'     : 'browse image',
                    'auto'           : true,
                    'buttonImg'         : 'images/189x27.png',
                    'fileDataName'     : 'avatar',
                    'scriptData'     : {'action':'avatar_item', "cookie":getCookie("iflycookie"), 'avatar_state': avatar_state?1:0, 'company_id': company_data.item_id},
                    'linkID'         : 'link_upload',
                    onComplete: function(event, queueID, fileObj, response, data)
                    {                
                        $("#hotAjaxLoader").hide();
                        //console.log(response);
                        response=eval(response);
                        response=response[0];
                        if (response.success == -1)
                        {
                            alert("Пожалуйста авторизуйтесь.");
                            window.location = "index.php";
                            return;
                        }
                        if (response.error)
                        {
                            alert(response.error);
                        }
                        
                        var img = new Image();
                        img.onload = function()
                        {
							var width = img.width/3;
							var height = img.height/3;						
                            //console.log("Фотка загруженна (%s)", img.src);
                            $("#original_avatar").attr("src", img.src).attr("width", img.width/3).attr("height", img.height/3);

                            if (avatar_state == false)
                            {
                                is_uploaded_big = true;
                                $('#preview_full_avatar').attr("src", img.src);
                                
                                if (jcrop_api_big != null)
                                    jcrop_api_big.destroy();
                                jcrop_api_big = $.Jcrop('#original_avatar', {
                                    imgID: 'jcrop_img_big',
                                    onChange: showPreview,
                                    onSelect: showPreview,
                                    aspectRatio: 0.6684073107049608
                                });
								//Если широкая, берем всю высоту и пропорциональную ширину
								if (width/height>0.6684073107049608)
								{
									jcrop_api_big.setSelect([0, 0, height*0.6684073107049608, height]);
								}
								//берем всю ширину и пропорциональную высоту
								else
								{
									jcrop_api_big.setSelect([0, 0, width, width/0.6684073107049608]);
								}								
                                jcrop_api_big.show();
                            }
                            else
                            {
                                is_uploaded_small = true;
                                $('#preview_full_avatar_small').attr("src", img.src);
                                
                                if (jcrop_api_small != null)
                                    jcrop_api_small.destroy();
                                jcrop_api_small = $.Jcrop('#original_avatar', {
                                    imgID: 'jcrop_img_small',
                                    onChange: showPreview,
                                    onSelect: showPreview,
                                    aspectRatio: 1
                                });
								//Если широкая, берем всю высоту и ширину равную высоте
								if (width/height>1)
								{
									jcrop_api_small.setSelect([0, 0, height, height]);
								}
								//берем всю ширину и высоту равную ширине
								else
								{
									jcrop_api_small.setSelect([0, 0, width, width]);
								}								
                                jcrop_api_small.show();
                            }
                        };
                        img.onerror = function()
                        {
                            alert("some error: "+response.filePath);
                        };
                        if (response.filePath)
                            img.src = response.filePath;
                    },
                    onSelect: function (event, queueID, fileObj)
                    {
                        $("#hotAjaxLoader").show();  
                    }
                });
                
                $("#popup_avatar").find(".save").click(function()
                {
                    var small_coords = null,big_coords = null;
                    if (jcrop_api_small)
                        small_coords = jcrop_api_small.tellScaled();
                    if (jcrop_api_big)
                        big_coords = jcrop_api_big.tellScaled();
                        
                    var my_send_data = {
                        'page': 'shop',
                        'action': 'update_avatar', 
                        'is_uploaded_small': is_uploaded_small?1:0,
                        'is_uploaded_big': is_uploaded_big?1:0,
						'company_id': company_data.item_id,
                        'rnd': Math.random(100)
                    };
                    
                    if (big_coords)
                        $.extend(my_send_data, {'x_big': big_coords.x,
                                                'y_big': big_coords.y,
                                                'w_big': big_coords.w,
                                                'h_big': big_coords.h});
                    if (small_coords)
                        $.extend(my_send_data, {'x_small': small_coords.x,
                                                'y_small': small_coords.y,
                                                'w_small': small_coords.w,
                                                'h_small': small_coords.h});
                                                
                    //console.log("small coord: %o",small_coords);
                    //console.log("big coord: %o", big_coords);
                    //console.log("send data: %o",my_send_data);
                        
                    $.ajax(
                    {
                        type: "POST", 
                        url: "processing.php", 
                        data: my_send_data,
                        dataType: "json",
                        beforeSend: function(xhr) 
                        {
                            xhr.setRequestHeader("Cookie", document.cookie);
                        },
                        success: function(data)
                        {
                            //console.log(data);                            
                            data = eval(data);                            
                            var img = new Image();
                            img.onload = function()
                            {
                                $("#avatar_img").attr("src", img.src);
                                //personal_data.avatar.avatar_r_big = data.file_path_big;
                                window.location.reload();
                            };
                            img.onerror = function()
                            {
                                //alert("some error: "+data.file_path);
								window.location.reload();
                            };
                            img.src = data.file_path_big;
                            $.modal.close();
                            
                        },
                        error: function(XMLHttpRequest, textStatus, errorThrown)
                        {
							window.location.reload();
                            //console.log(textStatus);
                        }
                    });
                    return false;
                });
            }
        });
        
        return false;
    }
    
    $("#avatar_edit").click(avatar_edit);
    $("#avatar_upload").click(avatar_edit);
    $("#avatar_img").click(avatar_edit);
    
    $("#choice_avatar").click(function()
    {
        if (!avatar_state)
        {
            $("#image_down_avatar").addClass("avatar");
            $(this).html("Выбрать парадное изображение");
            $("#imgbig").hide();
            $("#imgsmall").show();
            if (jcrop_api_big != null)
                jcrop_api_big.release();
            if (jcrop_api_small != null)
                jcrop_api_small.show();
            else
            {
                var temp_avatar = company_data.avatar;
                if (temp_avatar.avatar_r_small && temp_avatar.avatar_r_small!="images/avatarSmall.png")
                {
                    var img_r_avatar = new Image();
                    img_r_avatar.src = temp_avatar.avatar_r_small;
                    img_r_avatar.onerror = function(){$("#original_avatar").attr("src","images/avatarFull.png");};
                    img_r_avatar.onload = function()
                    {
                        $("#original_avatar").attr("src", img_r_avatar.src).attr("width", img_r_avatar.width/3).attr("height", img_r_avatar.height/3);
                        $("#preview_full_avatar_small").attr("src", img_r_avatar.src);
                        if (jcrop_api_small != null)
                            jcrop_api_small.destroy();                            
                        jcrop_api_small = $.Jcrop('#original_avatar', {
                            imgID: 'jcrop_img_small',
                            onChange: showPreview,
                            onSelect: showPreview,
                            aspectRatio: 1
                        });
                        //console.log(temp_avatar.x_small);
                        //console.log(temp_avatar.x_small+temp_avatar.w_small);
                        jcrop_api_small.setSelect([temp_avatar.x_small, temp_avatar.y_small, temp_avatar.x_small+temp_avatar.w_small, temp_avatar.h_small]);
                    };
                }
            }
            /*
            else if (is_uploaded_big || is_uploaded_small)
            {
                jcrop_api_small = $.Jcrop('#original_avatar', {
                    imgID: 'jcrop_img_small',
                    onChange: showPreview,
                    onSelect: showPreview,
                    aspectRatio: 1
                });
                jcrop_api_small.show();
                $('#preview_full_avatar_small').attr("src", $("#jcrop_img_small").attr("src"));
            }
            */
        }
        else
        {        
            $("#image_down_avatar").removeClass("avatar");
            $(this).html("Выбрать аватар");
            $("#imgsmall").hide();
            $("#imgbig").show();
            if (jcrop_api_small != null)
                jcrop_api_small.release();
            if (jcrop_api_big != null)
                jcrop_api_big.show();
            /*
            else if (is_uploaded_big || is_uploaded_small)
            {
                jcrop_api_big = $.Jcrop('#original_avatar', {
                    imgID: 'jcrop_img_big',
                    onChange: showPreview,
                    onSelect: showPreview,
                    aspectRatio: 0.6684073107049608
                });
                jcrop_api_big.show();
                $('#preview_full_avatar').attr("src", $("#jcrop_img_big").attr("src"));
            }
            */
        }
        
        avatar_state = !avatar_state;
        
        $("#upload_avatar").uploadifySettings('scriptData', {'action':'avatar_item', "cookie":getCookie("iflycookie"), 'avatar_state': (avatar_state)?1:0, 'company_id': company_data.item_id});
        return false;
    });
});
