
if ( window.$ ){
    isInitialized = false;
    _tLayoutName = 'tLayout';
    _tLayoutImagePath = '/main.jpg';
    _tLayoutLeft = 0;
    _tLayoutTop = 0;
    _tLayoutOpacity = 0.5;
    _tLayoutVisibility = 'none';
    _stopPrevent = true;


    $(document).ready(function(){
        imagePath = getImagePath();

        if(imagePath)
            _tLayoutImagePath = imagePath;

        initCookie();
        layoutDiv = createElement('div', {'id':_tLayoutName}, {position:'absolute', opacity: 1, left:_tLayoutLeft, top: _tLayoutTop, display: _tLayoutVisibility});
        _stopPrevent = _tLayoutVisibility == 'block';
        layoutImage = createElement('img', {'src':_tLayoutImagePath});
        $(layoutImage).ready(function(){
            $('#'+_tLayoutName).width($(this).width()).height($(this).height());
        });
        $(document.body).append($(layoutDiv).append(layoutImage));
        $('#' + _tLayoutName).animate({opacity: _tLayoutOpacity}, 200);

        var agt = navigator.userAgent.toLowerCase();
        var isIE = (agt.indexOf("msie") != -1 && agt.indexOf("opera") == -1);
        var isChrome = agt.indexOf("chrome") != -1;
        if(isIE || isChrome)
            $(document).keydown(moveLayout);
        else
             $(document).keypress(moveLayout);
    });

    function initCookie(){
        var left = getCookie('_layoutLeft');
        var top = getCookie('_layoutTop');
        var opacity = getCookie('_layoutOpacity');
        var display = getCookie('_layoutVisibility');

        if(left)
            _tLayoutLeft = parseInt(left);

        if(top)
            _tLayoutTop = parseInt(top);

        if(opacity)
            _tLayoutOpacity = parseFloat(opacity);

        if(display)
            _tLayoutVisibility = display;
    }

    function getCookieExpiresDate(){
        var date = new Date();

        months = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov' , 'Dec');
        days = new Array('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun');
        expiresDate = days[date.getDay()] + ', ' + date.getDate() + '-' + months[date.getMonth()] + '-' + (date.getFullYear() + 1) + ' ' + date.getHours() + ':' + (date.getMinutes() < 10 ? '0' +  date.getMinutes() : date.getMinutes()) + ':' + date.getSeconds() + ' GMT';
        return expiresDate;
    }

     function getCookieExpiresedDate(){
        var date = new Date();

        months = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov' , 'Dec');
        days = new Array('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun');
        expiresDate = days[date.getDay()] + ', ' + date.getDate() + '-' + months[date.getMonth()] + '-' + (date.getFullYear() - 5) + ' ' + date.getHours() + ':' + (date.getMinutes() < 10 ? '0' +  date.getMinutes() : date.getMinutes()) + ':' + date.getSeconds() + ' GMT';
        return expiresDate;
    }

    function resetCookies(){

        expiresedDate = getCookieExpiresedDate();
        setCookie('_layoutImagePath',  false, expiresedDate, '/', location.host);
        setCookie('_layoutLeft',       false, expiresedDate, '/', location.host);
        setCookie('_layoutTop',        false, expiresedDate, '/', location.host);
        setCookie('_layoutOpacity',    false, expiresedDate, '/', location.host);
        setCookie('_layoutVisibility', false, expiresedDate, '/', location.host);
        location.href = location.href;
    }

    function getImagePath(){
        if(false != (imagePath = checkImagePath())){
             setCookie('_layoutImagePath', imagePath,  getCookieExpiresDate(), '/', location.host);
             return imagePath;
        }
        imagePath = getCookie('_layoutImagePath');

        if(imagePath != false)
            return imagePath;


    }

    function checkImagePath(){
        href = location.href;
        re = /_maket=([^&]*)/i;
        pString = href.match(re);

        if((pString) != null)
            return pString[1];
        return false;
    }

    function createElement(name, attributes, styles){
        element = document.createElement(name);

        if(attributes != undefined){
            for(attr in attributes)
                $(element).attr(attr, attributes[attr]);
        }

        if(styles != undefined){
            for(style in styles)
                $(element).css(style, styles[style]);
        }

        return element;
    }

    function moveLayout(event){
        var event = event ? event : window.event;
        var key = event.keyCode || event.which;
            step = event.shiftKey ? 10 : 1;
        if(_stopPrevent && key != 116)
               if(event.preventDefault) event.preventDefault();
                     event.returnValue = false;

           switch(key){
               case 1074:
               case 1042:
               case 68:
               case 100:
                if(event.shiftKey){
                    $('#' + _tLayoutName).hide();
                    _stopPrevent = false;
                }
               break;
               case 69:
               case 101:
               case 1059:
               case 1091:
                if(event.shiftKey){
                    $('#' + _tLayoutName).show();
                    _stopPrevent = true;
                }
               break;
               case 43:
               case 187:
               currentOpacity = parseFloat($('#' + _tLayoutName).css('opacity'));
               if(currentOpacity < 1)
                    $('#' + _tLayoutName).css('opacity', currentOpacity + 0.1);
               break;
               case 189:
               case 95:
               currentOpacity = parseFloat($('#' + _tLayoutName).css('opacity'));
               if(currentOpacity > 0 )
                    $('#' + _tLayoutName).css('opacity', currentOpacity - 0.1);
               break;
               case 39:
                $('#' + _tLayoutName).css('left', parseInt($('#' + _tLayoutName).css('left')) + step);
               break;
               case 37:
                $('#' + _tLayoutName).css('left', parseInt($('#' + _tLayoutName).css('left')) - step);
               break;
               case 38:
                $('#' + _tLayoutName).css('top', parseInt($('#' + _tLayoutName).css('top')) - step);
               break;
                case 40:
                $('#' + _tLayoutName).css('top', parseInt($('#' + _tLayoutName).css('top')) + step);
               break;
               case 1082:
               case 1050:
               case 82:
               case 114:
                   if(event.shiftKey){
                    resetCookies();
                    return;
                   }
               break;
           }

           saveState();

    }

    function saveState(){
        expiresDate = getCookieExpiresDate();
        setCookie('_layoutLeft',        $('#' + _tLayoutName).css('left'),      expiresDate, '/', location.host);
        setCookie('_layoutTop',         $('#' + _tLayoutName).css('top'),       expiresDate, '/', location.host);
        setCookie('_layoutOpacity',     $('#' + _tLayoutName).css('opacity'),   expiresDate, '/', location.host);
        setCookie('_layoutVisibility',  $('#' + _tLayoutName).css('display'),   expiresDate, '/', location.host);
    }

    function setCookie (name, value, expires, path, domain, secure) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
    }

    function getCookie(name) {
            var cookie = " " + document.cookie;
            var search = " " + name + "=";
            var setStr = null;
            var offset = 0;
            var end = 0;
            if (cookie.length > 0) {
                    offset = cookie.indexOf(search);
                    if (offset != -1) {
                            offset += search.length;
                            end = cookie.indexOf(";", offset)
                            if (end == -1) {
                                    end = cookie.length;
                            }
                            setStr = unescape(cookie.substring(offset, end));
                    }
            }
            return (setStr);
    }

}
