jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};





scheme = {
  getinfo:function(elem){
    var elem = $(elem);
    return elem.find(".color-item-bar").html();
  },
  empty:function(){
    $("#scheme_preview").hide();
    $("#scheme_image").empty();
    $("#scheme_info").empty();
  },
  preloading:function(elem){
    var url = elem.find(".img img").attr("src");
    var img = new Image();
    img.onload = function(){
        $("#scheme_image").html("<span class='scheme_preloader'>&nbsp;</span><img width='350' src='" + url + "' />");
            var left = elem.offset().left;
            var top = elem.offset().top;
            var window_width = $(window).width();
            var window_height = $(window).height();
            var width = elem.outerWidth();
            var scroll_top = $(window).scrollTop();

            if((left+width+350)<window_width){
                $("#scheme_preview").css({
                   display:'block',
                   left:left+width+5
                });
            }
            else if((left+width+350)>window_width){
                $("#scheme_preview").css({
                   display:'block',
                   left:left-355
                });
            }
            var popup_height = $("#scheme_preview").height();

            if((top-scroll_top+popup_height) < window_height){
               $("#scheme_preview").css({
                   top:top
               });
            }
            else{
              $("#scheme_preview").css({
                   //top:top-popup_height+elem.height()
                   top: window_height + scroll_top - $("#scheme_preview").height()
              });
            }
    }
    img.src = url;
  },
  init:function(elem){

    var info = scheme.getinfo(elem);
    $("#scheme_info").html(info);
    var elem = $(elem);
    scheme.preloading(elem);
    var url = elem.find(".img").attr("href");
    var img = new Image();
    img.onload = function(){
        $("#scheme_image").html("<img width='350' src='" + url + "' />");
            var left = elem.offset().left;
            var top = elem.offset().top;
            var window_width = $(window).width();
            var window_height = $(window).height();
            var width = elem.outerWidth();
            var scroll_top = $(window).scrollTop();

            if((left+width+350)<window_width){
                $("#scheme_preview").css({
                   display:'block',
                   left:left+width+5
                });
            }
            else if((left+width+350)>window_width){
                $("#scheme_preview").css({
                   display:'block',
                   left:left-355
                });
            }
            var popup_height = $("#scheme_preview").height();

            if((top-scroll_top+popup_height) < window_height){
               $("#scheme_preview").css({
                   top:top
               });
            }
            else{
              $("#scheme_preview").css({
                   //top:top-popup_height+elem.height()
                   top: window_height + scroll_top - $("#scheme_preview").height()
              });
            }
    }
    img.src = url;
  }
}






















