var asyncRequest = function (url, callback) {
    var head = document.getElementsByTagName('head')[0];
    var script = document.createElement('script');
    script.src = url;
    var done = false;
    script.onload = script.onreadystatechange = function () {
        if (!done && (!this.readyState || 'loaded' == this.readyState || 'complete' == this.readyState)) {
            done = true;
            if ('function' == typeof callback) {
                callback();
            }
            head.removeChild(script);
        }
    };
    head.appendChild(script);
}

var setCertContent = function (quantity, amount) {
    if (quantity) {
        var html = 'Всего товаров: <span id="mini_total_amount">'+quantity+'</span> шт.<br />'+
                   'На сумму: <span id="mini_total_money">'+amount+'</span> руб.<br />'+
                   '<a href="/order.html">оформить заказ</a> | <a href="javascript:clearCart();">очистить</a>';
    } else {
        var html = '<br /><strong>Корзина пуста</strong><br /><br />';
    }
    document.getElementById('mini-cart').innerHTML = html;
}

var $ = function (element)
{
   return (('string' == typeof element) ? document.getElementById(element) : element);
};

var getDimensions = function (element)
{
   element = $(element);

   var display = element.style.display;
   if (display && 'none' != display) {
       return { width: element.offsetWidth, height: element.offsetHeight };
   } else {
       var els = element.style;
       var originalVisibility = els.visibility;
       var originalPosition = els.position;
       var originalDisplay = els.display;
       els.visibility = 'hidden';
       els.position = 'absolute';
       els.display = 'block';
       var originalWidth = element.clientWidth;
       var originalHeight = element.clientHeight;
       els.display = originalDisplay;
       els.position = originalPosition;
       els.visibility = originalVisibility;

       return { width: originalWidth, height: originalHeight };
   }
};

var getBrowserWindowSize = function ()
{
   var winW = 630, winH = 460;

   if (3 < parseInt(navigator.appVersion, 10)) {
       if (!!window.opera || 'Netscape' == navigator.appName) {
           winW = window.innerWidth;
           winH = window.innerHeight;
       }
       if (-1 != navigator.appName.indexOf('Microsoft')) {
           winW = document.documentElement.offsetWidth;
           winH = document.documentElement.offsetHeight;
       }
   }

   return { width: winW, height: winH };
};

var openModalWindow = function (html)
{
    if ('string' != typeof html) {
        return;
    }

    var div = $('modalWindow');
    var bgDiv = $('modalBackgroundDiv');

    div.innerHTML = html;
    
    var docDim = getDimensions(document.documentElement);
    
    var wDim = getBrowserWindowSize();
    var dDim = getDimensions(div);

    var offsetTop = ((wDim.height - dDim.height * 2) / 2);
    var offsetLeft = ((wDim.width - dDim.width) / 2);

    var agt = navigator.userAgent.toLowerCase();

    if (-1 != agt.indexOf('msie') && -1 == agt.indexOf('msie 7') && -1 == agt.indexOf('msie 8')) {
        div.style.marginTop = offsetTop+'px';
        div.style.marginLeft = offsetLeft+'px';
    } else {
        div.style.top = offsetTop+'px';
        div.style.left = offsetLeft+'px';
    }
     
    bgDiv.style.width = wDim.width+'px';
    bgDiv.style.height = wDim.height+'px';

    div.style.display = 'block';
    bgDiv.style.display = 'block';
};

var closeModalWindow = function ()
{
   $('modalWindow').style.display = 'none';
   $('modalBackgroundDiv').style.display = 'none';
};