/*******************************************************************************
*                  НАЧАЛЬНЫЕ УСТАНОВКИ ИНДИКАТОРА КОРЗИНЫ                      *
*******************************************************************************/

function setCart() {
   this.width      = 120; // ширина индикатора
   this.height     = 55;  // высота индикатора
   this.left       = 103; // положение относительно левого края
   this.top        = 5;   // положение относительно верхнего края
   this.background = '#f0f8ff'; // цвет фона корзины
   this.сss        = '/esm/esm.css'; // файл с css корзины (если необходим)
   return this; 

} // End function setCart

var cart_width = 645;


/*******************************************************************************
*                    ДИНАМИЧЕСКОЕ ОТОБРАЖЕНИЕ КОРЗИНЫ                          *
*******************************************************************************/

var bwc = new esmBrowseCheck(); 
document.cookie = " check_esm=on; path=/";
// Конструктор индикатора
var esmDiv = document.getElementById('eCartItem');
if( bwc.ok ) { 
   cart = new setCart();
   obj = esmDiv.style; 
   
} // End if

var cid = '';
var check_esm = '';
var esm_cookie = document.cookie + ";";
 
var re = new RegExp( "check_esm=([^;]*);" );
if( re.exec( esm_cookie ) ) { check_esm = RegExp.$1; }
 
var re = new RegExp( "esm_cid=([^;]*);" );
if( re.exec( esm_cookie ) ) { cid = RegExp.$1; }

if( bwc.ok ) { 
   
   loadCart(); 
   esmPosition(); 
   onresize = esmPosition; 

} // End if


// Определяем тип браузера
function esmBrowseCheck() {
   this.ver     = navigator.appVersion;
   this.agent   = navigator.userAgent;
   this.dom     = document.getElementById ? 1 : 0;
   
   this.opera5 = ( window.opera && this.dom ) ? 1 : 0; 
   this.opera6 = ( this.opera5 && window.print ) ? 1 : 0; 
   this.opera7 = ( this.opera5 && document.readyState ) ? 1 : 0;
   
   this.opera =  this.opera5;
    
   this.firefox = ( this.agent.indexOf( "Firefox" )> -1 ) ? 1 : 0;
   this.ie5     = ( this.ver.indexOf( "MSIE 5" ) > -1 && this.dom && !this.opera5 ) ? 1 : 0;
   this.ie6     = ( this.ver.indexOf( "MSIE" ) >- 1 && this.dom && !this.opera5 ) ? 1 : 0;
   this.ie4     = ( document.all && !this.dom && !this.opera5 ) ? 1 : 0;
   this.ie      = this.ie4 || this.ie5 || this.ie6;
   this.ns6     = ( this.dom && parseInt( this.ver ) >= 5 ) ? 1 : 0;
   this.ns4     = ( document.layers && !this.dom ) ? 1 : 0;
   this.safari  = ( this.ver.indexOf( "Safari" ) > -1 ) ? 1 : 0;
   this.ok      = this.ie || this.opera || this.firefox || this.safari;

   return this; 

} // End function esmBrowseCheck


function setСid() { 
   if( cid ) document.cookie = " esm_cid=" + escape( cid ) + "; path=/";
} // End function setСid


// Первая загрузка корзины
function loadCart() { 
   getFile( "/cgi-bin/esm/add_to_cart.pl?cid=" + cid + "&" + 
            parseInt( ( Math.random() * 1000000 + 1 ) ) ); 
} // End function loadCart


function getFile( filename ) {
   var obj = get_http_obj();
   if( obj ){
      obj.open( "GET", filename, true );
      obj.onreadystatechange = function(){
         if( obj.readyState== 4 && obj.responseText ) {
            var re = /(\d)cid=/;
            if( re.test( obj.responseText ) ) {
               var is_visible = RegExp.$1;  
               esmDiv.innerHTML = obj.responseText.substr( 35 );
               
               var element = document.createElement( "script" );
               element.text = 'cid = \'' + obj.responseText.substr( 5, 30 ) + '\';';
               element.text += 'setСid();';
               if( is_visible != '0' ) {
                  element.text += 'obj.visibility = "visible"';
                                  
               } else {
                  element.text += 'obj.visibility = "hidden"';
               } // End if
               esmDiv.appendChild( element );
               
            } else {
               alert ( 'Ошибка: ' + obj.responseText );
               return false;
               
            } // End if
            
         } // End if
         
      } // End function
      
      obj.send( null )
      return true;
     
   } else {
      return false;
   } // End if
   
} // End function getFile


function get_http_obj() {
   var obj = null;
   try{
      obj = new ActiveXObject( "Msxml2.XMLHTTP" ); 
   } catch( err ){
      try{
         obj = new ActiveXObject( "Microsoft.XMLHTTP" ); 
      } catch( err ){
         obj = null;
      } // End try
      
   } // End try
         
   if( !obj && typeof XMLHttpRequest != "undefined" ) {
      obj = new XMLHttpRequest(); 
   } // End if
   return obj;
   
} // End function get_http_obj


// Позиционирование индикатора
function esmPosition() { 
    obj.left = cart.left + document.body.scrollLeft; 
    obj.top  = cart.top + document.body.scrollTop; 
     
} // End function esmPosition


// Добавление в корзину
function toCart( goods_id, quantity ) {
   var rnd = parseInt( ( Math.random() * 1000000 + 1 ) ); 
   cid = check_esm = "";
    
   esm_cookie = document.cookie + ";";
    
   var re = new RegExp( "check_esm=([^;]*);" );
   if( re.exec( esm_cookie ) ) { check_esm = RegExp.$1; }
    
   var re = new RegExp( "esm_cid=([^;]*);" );
   if( re.exec( esm_cookie ) ) { cid = RegExp.$1; }
       
   if( !( bwc.ok && check_esm == "on" && quantity ) || 
       !getFile( "/cgi-bin/esm/add_to_cart.pl?" + rnd + "&cid=" + cid + 
                      "&quantity=" + quantity + "&goods_id=" + goods_id ) 
     ) {   
     
      var page = new bwSize();
      
      var property = "left=" + ( ( page.sw - cart_width ) / 2 ) + "px,top=25px,width=" + cart_width +
                  ",height=" + ( page.sh - 100 ) + 
                  ",toolbar=0,menubar=0,scrollbars=1,resizable=0";
      esm_win = window.open( "/cgi-bin/esm/cart.pl?" + rnd + "&quantity=" + 
                             quantity + "&goods_id=" + goods_id, "esm_order", property ); 
  
   } // End if
   
   show_text( "Товар добавлен в корзину." );
   
} // End function toCart


// Высвечивание текста
function show_text( text ) {
   var obj = document.getElementById('esm_text')

   obj.innerHTML = text;
   obj.style.visibility = "visible";
   // obj.style.display = "inline";

   var bodyElement = document.documentElement || document.body;
   var clientH = bodyElement.clientHeight;
   var clientW = bodyElement.clientWidth;
   var scrollT = bodyElement.scrollTop;
   var scrollL = bodyElement.scrollLeft;

   obj.style.top = parseInt( clientH / 2 ) - 20 + scrollT + "px";
   obj.style.left = parseInt( ( clientW - 200 ) / 2 ) + scrollL + "px";

   setTimeout("hide_text()", 1000);

} // End function show_text

// Гасим текст
function hide_text() {
   var obj = document.getElementById('esm_text')

   obj.style.visibility = "hidden";
   // obj.style.display = "none";

} // End function show_text


function orderGoods() { 
   if( !cid ) return false; 
   var page = new bwSize(); 
   var property = "left=" + ( ( page.sw - cart_width ) / 2 ) + "px,top=25px,width=" + cart_width +
                  ",height=" + ( page.sh - 100 ) + 
                  ",toolbar=0,menubar=0,scrollbars=1,resizable=0";
   esm_win = window.open( "/cgi-bin/esm/cart.pl?cid=" + cid, "esm_order", property ); 
   
} // End function orderGoods


// Разрешение экрана и размер окна браузера
function bwSize() {
   //this.w = ( bwc.ok ) ? document.body.offsetWidth - 20 : innerWidth; 
   //this.h = ( bwc.ok ) ? document.body.offsetHeight - 5 : innerHeight;
  
   if( self.screen ) { 
       this.sw = screen.width; 
       this.sh = screen.height; 
    
   } else if( self.java ) { 
       jkit = java.awt.Toolkit.getDefaultToolkit(); 
       scrsize = jkit.getScreenSize(); 
       this.sw = scrsize.width; 
       this.sh = scrsize.height; 
    
   }  // End if
  
   return this;
   
} // End function bwSize



