/************************************************************************************************************
(C) www.dhtmlgoodies.com, March 2006

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Version:
	1.0	Released	March. 3rd 2006

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland

************************************************************************************************************/

var flyingSpeed = 25;
var url_addProductToBasket = '/order.php';
var url_removeProductFromBasket = '/order.php';
var txt_totalPrice = 'На сумму: ';


var shopping_cart_div = false;
var flyingDiv = false;
var currentProductDiv = false;

var shopping_cart_x = false;
var shopping_cart_y = false;

var slide_xFactor = false;
var slide_yFactor = false;

var diffX = false;
var diffY = false;

var currentXPos = false;
var currentYPos = false;

var div_id = "shopping_cart";

var ajaxObjects = new Array();


function shoppingCart_getTopPos(inputObj)
{		
  var returnValue = inputObj.offsetTop;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetTop;
  }
  return returnValue;
}

function shoppingCart_getLeftPos(inputObj)
{
  var returnValue = inputObj.offsetLeft;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetLeft;
  }
  return returnValue;
}
	

function addToBasket(productId)
{
	//alert('productId = '+productId+' | url_addProductToBasket = '+url_addProductToBasket);
    if(!shopping_cart_div)shopping_cart_div = document.getElementById('shopping_cart');
	if(!flyingDiv){
		flyingDiv = document.createElement('DIV');
		flyingDiv.style.position = 'absolute';
		document.body.appendChild(flyingDiv);
	}
	
	shopping_cart_x = shoppingCart_getLeftPos(shopping_cart_div);
	shopping_cart_y = shoppingCart_getTopPos(shopping_cart_div);

	currentProductDiv = document.getElementById('slidingProduct');
	
	currentXPos = shoppingCart_getLeftPos(currentProductDiv);
	currentYPos = shoppingCart_getTopPos(currentProductDiv);
	
	diffX = shopping_cart_x - currentXPos;
	diffY = shopping_cart_y - currentYPos;
	

	
	var shoppingContentCopy = currentProductDiv.cloneNode(true);
	shoppingContentCopy.id='';
	flyingDiv.innerHTML = '';
	flyingDiv.style.left = currentXPos + 'px';
	flyingDiv.style.top = currentYPos + 'px';
	flyingDiv.appendChild(shoppingContentCopy);
	flyingDiv.style.display='block';
	flyingDiv.style.width = currentProductDiv.offsetWidth + 'px';
	flyToBasket(productId);
	
}

function ajaxAddProductHide(formObg){
obj = document.forms['catalog'];
//alert(obj.elements.length);
var post_str = '';
 // забиваем переменные из массива в POST
 for(i=0; i<obj.elements.length; i++)
  {
   if (obj.elements[i].tagName == "INPUT") {
        if(encodeURI(obj.elements[i].value)!=''){
          if(obj.elements[i].name=="date") continue;
          post_str = post_str+"&"+obj.elements[i].name+"="+encodeURI(obj.elements[i].value);
        }
  }
 }
 //alert(post_str);   
 return post_str;
} // end of function ajaxAddProductHide


function ajaxAddProductHideCat(){
obj = document.forms['catalog_add'];
//alert(obj.elements.length);
var post_str = '';
 // забиваем переменные из массива в POST
 for(i=0; i<obj.elements.length; i++)
  {
   if (obj.elements[i].tagName == "INPUT") {
        if(encodeURI(obj.elements[i].value)!=''){
          if(obj.elements[i].name=="date") continue;
          post_str = post_str+"&"+obj.elements[i].name+"="+encodeURI(obj.elements[i].value);
        }
  }
 }
 //alert(post_str);   
 return post_str;
} // end of function ajaxAddProductHide

function newDiv(id_cat, date, id_prod, post_data){
var divStr = '';
var rStr = '';
var str_div = '';
if (!id_prod) {
     alert("Basket.setup:\n  Flat specified but can't find parent.");
     return false;
  }
if (typeof id_prod == "string") {
// highslide-html83-hsOrig
str_div = 'highslide-html'+id_prod;
div_id = document.getElementById(str_div);
  //alert(divObg);
}
/* var html = [];
                        html.push('<div>')
                        html.push('\n id_cat = '+id_cat)
                        html.push('\n date = '+date)
                        html.push('\n id_prod = '+id_prod)
                        html.push('</div>')
                        divObg.innerHTML += html.join(''); 
 */
 divStr = 'highslide-html'+id_prod;
 rStr = '?task=add_prod&prod_id='+id_prod+'&cat_id='+id_cat+'&date='+date+post_data;
 //rStr = '?task=add_prod&prod_id='+id_prod;
 makeRequest("/order.php", rStr, divStr);       
} // end of function  newDiv()



// ================================================================================================
// Function : save_add_prod()
// Version : 1.0.0
// Date : 21.08.2007
// Parms : 
// Returns :      true,false / Void
// Description :  add to additional temp table additional product
// ================================================================================================
// Programmer :  Alex Kerest
// Reason for change : Creation
// Change Request Nbr:
// ================================================================================================
function save_add_prod(id_prod, post_data){
 var str_div ='';
 var rStr = '';
 var div_str = '';

str_div = 'garnir_ins'+id_prod;
//alert(document.getElementById);
if(typeof str_div == 'string'){
div_id = str_div;
//alert("str_div = "+str_div+" div.innerHTML = "+div_id.innerHTML);
} 
div_str = 'garnir_ins'+id_prod;   


 rStr = '?task=add_to_cart_garn'+post_data;
// alert(rStr);
 //rStr = '?task=add_prod&prod_id='+id_prod;
 makeRequest("/order.php", rStr, div_str); 
} // end of function save_add_prod



function flyToBasket(productId)
{
	
    var maxDiff = Math.max(Math.abs(diffX),Math.abs(diffY));
	var moveX = (diffX / maxDiff) * flyingSpeed;;
	var moveY = (diffY / maxDiff) * flyingSpeed;	
	
	currentXPos = currentXPos + moveX;
	currentYPos = currentYPos + moveY;
	
	flyingDiv.style.left = Math.round(currentXPos) + 'px';
	flyingDiv.style.top = Math.round(currentYPos) + 'px';	
	
	
	if(moveX>0 && currentXPos > shopping_cart_x){
		flyingDiv.style.display='none';		
	}
	if(moveX<0 && currentXPos < shopping_cart_x){
		flyingDiv.style.display='none';		
	}
	//alert(productId);	
	if(flyingDiv.style.display=='block')setTimeout('flyToBasket("' + productId + '")',2); else ajaxAddProduct(productId);	
}

function removeProductFromBasket(productId)
{
	var productRow = document.getElementById('shopping_cart_items_product' + productId);
	
	var numberOfItemCell = productRow.cells[0];
	if(numberOfItemCell.innerHTML == '1'){
		productRow.parentNode.removeChild(productRow);	
	}else{
		numberOfItemCell.innerHTML = numberOfItemCell.innerHTML/1 - 1;
	}
	updateTotalPrice();
	ajaxRemoveProduct(productId);	
}

function ajaxValidateRemovedProduct(ajaxIndex)
{
	if(ajaxObjects[ajaxIndex].response!='OK')alert('Error while removing product from the database');
	
}

function ajaxRemoveProduct(id, parm, task)
{
    var res;
    var res1;
    var str = ''; 
	//alert(id);
   // var ajaxIndex = ajaxObjects.length;
	//ajaxObjects[ajaxIndex] = new sack();
	//ajaxObjects[ajaxIndex].requestFile = url_removeProductFromBasket;	// Saving product in this file
	//ajaxObjects[ajaxIndex].setVar('id',id);
    //ajaxObjects[ajaxIndex].onCompletion = function(){ ajaxValidateRemovedProduct(ajaxIndex); };    // Specify function that will be executed after file has been found
	//ajaxObjects[ajaxIndex].onCompletion = function(){ 
    //    res1 = makeRequest('/order.php', '?task=cart&prod_id=0&quantity=0', 'shopping_cart');
    //  };	// Specify function that will be executed after file has been found
    if (task) {
    str = '?task='+task+'&id='+id+'&'+parm;  
    } else {
    str = '?task=del_pos&id='+id+'&'+parm;  
    }
   // alert(str);
    //ajaxObjects[ajaxIndex].setVar('str',str);  
    res = makeRequest('/order.php', str, 'my_d_basket');
   // ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function
}





function ajaxUpdateCart(form_obj)
{
//alert(form_obj.elements.length);
var res1 = false;
var res = false;
var post_str = '';
// var ajaxIndex = ajaxObjects.length;
// ajaxObjects[ajaxIndex] = new sack();
// ajaxObjects[ajaxIndex].requestFile = '/order.php';    // Saving product in this file
// забиваем переменные из массива в POST
for(i=0; i<form_obj.elements.length; i++)
 {
 //ajaxObjects[ajaxIndex].setVar( form_obj.elements[i].name, form_obj.elements[i].value );
 //alert(form_obj.elements[i].tagName);
 if (form_obj.elements[i].tagName == "INPUT") {
post_str = post_str+"&"+form_obj.elements[i].name+"="+encodeURI(form_obj.elements[i].value);
 }
 if (form_obj.elements[i].tagName == "TEXTAREA") {
post_str = post_str+"&"+form_obj.elements[i].name+"="+encodeURI(form_obj.elements[i].value);
 }
 
}
//alert(post_str);
//ajaxObjects[ajaxIndex].onCompletion = function(){ makeRequest('/order.php', '?task=cart&&prod_id=0&quantity=0', 'shopping_cart');  };    // Specify function that will be executed after file has been found
res = makeRequest( '/order.php?task=save_order', post_str, 'my_d_basket' );
//alert(res.readyState);
//if(res.readyState)
//{
//ajaxObjects[ajaxIndex].runAJAX();        // Execute AJAX function        
//}

} 





function ajaxAddProduct(form_obj)
{
obj = document.forms['catalog'];
//alert(obj.elements.length);
var res1 = false;
var res = false;
var post_str = '';
var ajaxIndex = ajaxObjects.length;
     
 //   var ajaxIndex = ajaxObjects.length;
 //	ajaxObjects[ajaxIndex] = new sack();
 //ajaxObjects[ajaxIndex].requestFile = '/order.php?task=add_to_cart';    // Saving product in this file
 // забиваем переменные из массива в POST
 for(i=0; i<obj.elements.length; i++)
  {
   if (obj.elements[i].tagName == "INPUT") {
        if(encodeURI(obj.elements[i].value)!=''){
        //  ajaxObjects[ajaxIndex].setVar( obj.elements[i].name, obj.elements[i].value ); 
          post_str = post_str+"&"+obj.elements[i].name+"="+encodeURI(obj.elements[i].value);
        }
  }
 }
 //alert(post_str);   
//ajaxObjects[ajaxIndex].onCompletion = function(){ makeRequest('/order.php', '?task=cart'+post_str, 'shopping_cart');  };    // Specify function that will be executed after file has been found
//ajaxObjects[ajaxIndex].runAJAX();        // Execute AJAX function        
res = makeRequest('/order.php', '?task=cart'+post_str, 'shopping_cart');
}


function get(productId, quantity) {
     var getstr = "";

     //alert(obj.childNodes.length);
     //alert(productId);
    // for (i=0; i<obj.elements.length; i++) {
         
         //getstr +="<br>"+obj.elements[i].tagName;
     //    if(obj.elements[i].tagName=="SELECT") {
      //   getstr +="<br>"+obj.elements[i].value;
         //getstr += obj.elements[i].name+"="+obj.elements[i].value;
         //getstr += obj.elements[i].value;
         
      //   }
          
         //alert(obj.elements[i].value);
     
       /* if (obj.elements[i].tagName == "INPUT") {
           if (obj.childNodes[i].type == "text") {
              getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
           }
           if (obj.elements[i].type == "checkbox") {
              if (obj.childNodes[i].checked) {
                 getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
              } else {
                 getstr += obj.childNodes[i].name + "=&";
              }
           }
           if (obj.elements[i].type == "radio") {
              if (obj.childNodes[i].checked) {
                 getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
              }
           }
        }   
        if (document.elements.tagName == "SELECT") {
           var sel = obj.childNodes[i];
           alert(getstr);
           getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
        }   
        */
    // }
 
     getstr = '?task=cart&prod_id='+productId+'&quantity='+quantity;
     //alert(getstr);
     makeRequest('/order.php', getstr, div_id);
  }

  
  var http_request = false;
  function makeRequest(url, parameters, d_id) {
     //alert(parameters);
     div_id = d_id;
     var full_uri = "";
     var cat_id = "";
     http_request = false;
     if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            // set type accordingly to anticipated content type
            //
           //http_request.overrideMimeType('text/xml');
           http_request.overrideMimeType('Cache-Control: no-cache');
           http_request.overrideMimeType('text/html');
        }
     } else if (window.ActiveXObject) { // IE
        try {
           http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
           try {
              http_request = new ActiveXObject("Microsoft.XMLHTTP");
           } catch (e) {}
        }
     }
     if (!http_request) {
            alert('Не вышло :( Невозможно создать экземпляр класса XMLHTTP ');
            return false;
     }
     //full_uri = url + parameters
    // alert(url + parameters);
    //alert(parameters);
     if(parameters.indexOf('cat_id=')!=-1){
     cat_id = '&'+parameters.substr(parameters.indexOf('cat_id='), parameters.indexOf('cat_id=')+8)
    // alert(cat_id);
     }
     http_request.open('GET', url + parameters+cat_id, true);
    // http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded, charset=koi8-r');
     //http_request.setRequestHeader('Content-Type', 'text/html');
     //http_request.setRequestHeader('Content-Type', ' charset=windows-1251');
     //alert(http_request.readyState);
     //http_request.overrideMimeType('Cache-Control: no-cache'); 
     http_request.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
     http_request.setRequestHeader("Pragma", "no-cache"); 
     http_request.onreadystatechange = function() {
     //alert("ready state"+http_request.readyState); 
     alertContents(http_request, parameters); 
     //alert(url);
     //add_to_cart_garn
     if((parameters.indexOf('task=del_pos')!=-1 || url.indexOf('task=save_order')!=-1) && http_request.readyState == 4)
    {

     str = '?task=cart&prod_id=0&quantity=0';
     makeRequest('/order.php', str, 'shopping_cart');
     //makeRequest('/order.php', '?task=cart', 'shopping_cart');
    }


     }; 
     //http_request.onreadystatechange = alertContents;
     http_request.send(null);
     return http_request;
     
  }

  function makePOSTRequest(url, parameters,  d_id) {
      http_request = false;
      div_id = d_id;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
             // set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      alert(parameters);
      http_request.open('POST', url, true);
      
      http_request.onreadystatechange = function() { alertContents(http_request, parameters); }; 
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");

      http_request.send(parameters);
   }
  
  function alertContents(http_request, parameters) {
     //alert(http_request.readyState);
    // alert("div = "+div_id);
    // alert("parameters = "+parameters);
     if (http_request.readyState == 1 || http_request.readyState==0 || http_request.readyState==2 || http_request.readyState==3 )
	 {
      //alert(http_request.readyState);
     // alert("parameters = "+parameters); 
     // alert("div = "+div_id); 
       document.getElementById(div_id).innerHTML = '<div style="padding-top:10px; text-align:center;" align="center"><img src="/images/design/indicator_3drotation.gif"></div>';	 
     }
     if (http_request.readyState == 4) {
        if (http_request.status == 200) {
           //alert(http_request.responseText);
           result = http_request.responseText;
           document.getElementById(div_id).innerHTML = result;            
        } else {
           alert('Возникла проблема с отправкой запроса.');
        }
     }
  }