// функция добавляет html код окна в начало тега body
//onClick="ShowHide("'+sIdWindow+'",1)"
function iniWindow( sIdWindow, sClassWindow ) 
{
  htmlWindow  = 
  '<div id='+sIdWindow+' class='+sClassWindow+' style="display:none;/*не переносить в css, из-за эффектов*/">'+
  	'<div class="'+sClassWindow+'_title">'+ 
  		'<table><tr>'+
  			'<td id='+sIdWindow+'_title style="width:100%"></td>'+
  			'<td ><div class=cross onClick=ShowHide("'+sIdWindow+'",1) ></div></td>'+
  		'</tr></table>'+
  	'</div>'+
  	'<div id='+sIdWindow+'_body class='+sClassWindow+'_body></div>'+
  '</div>';

  // lib prototype
  new Insertion.Top('ws', htmlWindow);  
}

function iniProgressBar( sIdWindow, sClassWindow ) 
{
  htmlWindow  = 
  '<div id='+sIdWindow+' class='+sClassWindow+' style="display:none;/*не переносить в css, из-за эффектов*/">'+
  	'<div class="'+sClassWindow+'_title">'+ 
  		'<table><tr>'+
  			'<td ><div class=loading></div></td>'+
  			'<td id='+sIdWindow+'_title style="width:100%;text-align:center">...Loading...</td>'+
  			'<td ><div class=cross onClick=ShowHide("'+sIdWindow+'",1) ></div></td>'+  		
  		'</tr></table>'+
  	'</div>'+
  '</div>';

  // lib prototype
  new Insertion.Top('ws', htmlWindow);  
}

function setWindow( sIdWin, sTitleWin, sBodyWin ) 
{
  if(sTitleWin)
    $(sIdWin+'_title').innerHTML = sTitleWin;
    
  if(sBodyWin)
    $(sIdWin+'_body').innerHTML = sBodyWin;
}

// отображение слое
function ShowHide( sIdEl, bHide ) 
{
	if (oEl = $(sIdEl) ) {

    if (!bHide)  {
  		new Effect.Appear(sIdEl, {duration:0.5});
  
  		oEl.style.top = (document.documentElement.clientHeight/2)-(oEl.getHeight()/2)+document.documentElement.scrollTop+"px";
  		oEl.style.left = (document.documentElement.clientWidth/2)-(oEl.getWidth()/2)+document.documentElement.scrollLeft+"px";
    }
    else {
  		Element.hide(sIdEl); 
    }
  }
}

function sPriceHtml(sPriceGood, sPriceRetailGood) 
{

	if (sPriceGood) {
	  if (sPriceRetailGood) {
	    sType = 'radio';
	    sChecked='';
	  }
	  else {
	    sType = 'hidden';
	    sChecked='checked';
	  }

  	sPrice = '<br>'+
    	'<input id=bPrice type='+sType+' '+sChecked+' value=1 class=w_chbx name="">'+
    	'<b>Оптовая цена:</b>'+
    	sPriceGood
	}
	else
	  sPrice = '';
	
	if (sPriceRetailGood) {
	  if (sPriceGood) {
	    sType = 'radio';
	    sChecked='';
	  }
	  else {
	    sType = 'hidden';
	    sChecked='checked';
	  }
	    
  	sPriceRetail = '<br>'+
      '<input id=bPriceRetail type='+sType+' '+sChecked+' value=2 class=w_chbx name="" >'+
      '<b>Розничная цена:</b> '+
      sPriceRetailGood
	}
	else
	  sPriceRetail = '';

  return sPrice+sPriceRetail;
}

// проверка обязательных полей
function bCheckFilds() {
  
	if ( !$F('sName') || !$F('sContact') || !$F('sCaptcha') ) {
		alert('Заполните все обязательные поля.');
		return false;
	}
	return true;
}  

// проверка выбора цены
function bCheckSelectPrice() 
{
	if ( $('bPrice') && !$('bPrice').checked && $('bPriceRetail') && !$('bPriceRetail').checked ) {
		alert('Выберите цену.');
		return false;
	}
	return true;
}  

// получить тип выбраной цены
function iGetSelectPriceType() 
{
	if ( $('bPrice') && ($('bPrice').checked || !$('bPriceRetail')) )
		return 1; // 1 - опт 

	if ( $('bPriceRetail') && ($('bPriceRetail').checked || !$('bPrice')) )
		return 2;  // 2 - розница
}  

// отображение окна заказа товара
function OrderWindow(iIdUnit, sNameGood, sPriceGood, sPriceRetailGood) 
{
	//скрываем если открыто прежнее
	ShowHide ('window',1);

	setWindow( 
    'window', 
    
    'Заказ товара', 
    '<form id=form>'
    +'<div class=w_gname>'+sNameGood+"</div><hr><br>"
    +'<b>Количество</b>: '+'<input id=iCount class=w_fild size=3 value=1 >'
    +(sPriceGood || sPriceRetailGood ? sPriceHtml(sPriceGood, sPriceRetailGood) : "")
    +'<input id=iIdUnit type=hidden value='+iIdUnit+'><br><br>'
    +'<b class=red>*</b><b>Имя:</b><br>'
    +'<div class=d_col>'
    +'<input id=sName name=sName class=w_fild ><br>'
    +'<b class=red>*</b><b>Телефон/Email:</b><br>'
    +'<input id=sContact name=sContact class=w_fild ><br>'
    +'<b class=red>*</b><b>Символы на рисунке:</b><br>'
    +'<input id=sCaptcha name=sCaptcha class=w_fild ><br>'
    +'<img id=captcha src="libs/kcaptcha/"><img class=reload src="tpl/sys/reload.gif" OnClick="$(\'captcha\').src=\'libs/kcaptcha/?\'+Math.random()"><br>'
    +'</div>'
    +'<div class=d_col>'
    +'<div id=o_err class=w_err></div>'
    +'</div><div class=d_c></div>'
    
        
    +'<b>Комментарий:</b><br>'
    +'<textarea id=sDsc name=sDsc ></textarea>'
    +'<div class=w_btn ><input type=button value=отправить onClick=doOrderGood() ></div>'
    +'</form><br>'
    +'<b class=red>*</b> - поля со звездочкой заполнить обязательно'
  );

	ShowHide ('window');
	
	// 501 из-за duration:0.5 в Effect.Appear
	window.setTimeout('Field.focus("iCount");',501);	
}

// единичный заказ товара 
function doOrderGood() 
{

  if (!bCheckSelectPrice())
    return;
    
  if (!bCheckFilds())
    return;

  ShowHide ('window',1);
  ShowHide ('pbar');

	new Ajax.Request (
		"order.php?"+
		"b[0][u]="+$F('iIdUnit')+
		"&b[0][c]="+$F('iCount')+
		"&b[0][pt]="+iGetSelectPriceType()+"&"+Form.serialize('form'),
		{
			onComplete:function(oResponse) {

        ShowHide ('pbar', 1 );
        oResponse.responseJSON

        if (oResponse.responseText) {
          if (-1 != oResponse.responseText){
            $('o_err').innerHTML = oResponse.responseText;
            $('sCaptcha').value = "";
            $('captcha').src="libs/kcaptcha/?"+Math.random(); // рандом для выключения кэширования
          }
          else 
            window.location = 'index.php';
        }
				else {
          setWindow(
            'window',

          	'Заказ отправлен',

          	'<br><div class=w_complete ><b>СПАСИБО!</b><br><br>'
          	+'В ближайшее время с Вами свяжется наш сотрудник.</div><br><br>'
          );
				}
				ShowHide ('window');

			}
		}
	);
}

// отображение окна добавления в корзину
function InBasketWindow(iIdUnit, sNameGood, sPriceGood, sPriceRetailGood) 
{
	//скрываем если открыто прежнее
	ShowHide ('window',1);

	setWindow( 
    'window', 
    
    'Выбор цены', 
    
    '<form id=form>'
    +'<div class=w_gname>'+sNameGood+"</div><hr>"
    +(sPriceGood || sPriceRetailGood ? sPriceHtml(sPriceGood, sPriceRetailGood) : "")
    +'<input id=iIdUnit type=hidden value='+iIdUnit+'>'
    +'<input id=sNameGood type=hidden value="'+sNameGood+'">'
    +'<div class=w_btn ><input type=button class=w_btn  value=отправить onClick=doInBasket() ></div>'
    +'</form>'	
  );

  // кидаем сразу в корзину если цена одна
  if (!sPriceGood || !sPriceRetailGood)
    doInBasket();
  // выбор цены
	else
    ShowHide ('window');
}

// добавление товара в корзину
function doInBasket() 
{

  if (!bCheckSelectPrice())
    return;

  //скрываем если открыто прежнее
  ShowHide ('window',1);
  ShowHide ('pbar');

	new Ajax.Request (
		"inbasket.php?u="+$F('iIdUnit')+"&pt="+iGetSelectPriceType(),
		{
			onComplete:function(oResponse) { 

      	ShowHide ('pbar', 1);

        setWindow( 
          'window', 
          
          'Товар добавлен в корзину',
          '<div class=w_gname>'+$F('sNameGood')+"</div><hr><br>"+
          'Для оформления заказа перейдите в <a href=?bv>корзину &raquo;</a><br>'+
          'или продолжите <a href=javascript:ShowHide(\"window\",1)>выбор товаров &raquo;</a><br>'
        );
        
				ShowHide ('window');

				// значение корзины
				$('bgc').value = oResponse.responseText;

			}
		}
	);
}

// заказ товаров из корзины
function doOrderBasket() 
{
    
  if (!bCheckFilds())
    return;
	
	//скрываем если открыто прежнее
  ShowHide ('pbar');

	new Ajax.Request (
		"order.php?"+Form.serialize('form'),
		{
			onComplete:function(oResponse) { 
				
	  		ShowHide ('pbar', 1);				
	  		
        if (oResponse.responseText) {
          $('b_err').innerHTML = oResponse.responseText;
          $('sCaptcha').value = "";
          $('captcha').src="libs/kcaptcha/?"+Math.random(); // рандом для выключения кэширования
        }
				else {
  				$('basket').innerHTML =
        	'<br><div class=b_complete ><b>СПАСИБО!</b><br><br>'+
          'Ваш заказ отправлен.<br><br>'+
        	'В ближайшее время с Вами свяжется наш сотрудник.</div><br><br>';
        	
  				$('bgc').value = 0;
				}
			}
		}
	);
	
	return true;
}

// отображение окна заказа товара
function FirmWindow(iIdFirm, sNameFirm)
{
	//скрываем если открыто прежнее
	ShowHide ('window',1);

	setWindow( 
    'window', 
    
    'Информация', 
    '<form id=form>'
    +'Продажу данного товара осуществит компания'
    +'<div class=w_fname>'+sNameFirm+"</div>"
    +'Минск, Республика Беларусь<br><br>'
    +'Вы можете установить просмотр товаров, только данной компании.'
    +'<div class=w_btn >' 
    +' <input type=button class=w_btn value=установить onClick="setFirm('+iIdFirm+')">'
    +' <input type=button class=w_btn value=закрыть onClick="ShowHide(\'window\', 1)" >'
    +'</div>'
    +'</form>'
  );
	
	ShowHide ('window');
}

/**
 * возвращает текущий или переданный Location, 
 * с примененным фильтром по переменным
 *
 * @param string sVarsFilter имена переменных через запятую
 * @param bool bFilterInverse переданные переменные вырезать
 * @return string 
 */
function Location(sVarsFilter, bFilterInverse, sLocation )
{
  var i, i2, i3=0, aAllowVars = new Array()
  
  if (!sLocation)
    sLocation = window.location.toString()

  iIndexQuery = sLocation.indexOf('?')
  if (-1 == iIndexQuery)
    return sLocation+"?"

  sLocationAdress = sLocation.substr(0, iIndexQuery+1)
  aQueryVars = sLocation.substr(iIndexQuery+1).split('&')

  aVars = sVarsFilter.split(",");
  for (i=0; i<aQueryVars.length; i++) {
    if((iIndexEqual = aQueryVars[i].indexOf('=')) && -1 != iIndexEqual)
      sQueryVarName = aQueryVars[i].substr(0, iIndexEqual)
    else 
      sQueryVarName = aQueryVars[i]
    
    bVarFind = false
    for (i2=0; i2<aVars.length; i2++) {
      if (aVars[i2]==sQueryVarName)
        bVarFind = true 
    }
    // 0110^1010 = 1100 XOR
    if (bFilterInverse^bVarFind) {
      aAllowVars[i3] = aQueryVars[i]
      i3++
    }
  }
  
  return sLocationAdress+aAllowVars.join('&');
}

function setFirm(iIdFirm)
{
  window.location.href = Location("f,p", true)+"&f="+iIdFirm
}

function unsetFirm()
{
  window.location = Location("f,p", true)
}

function setOrder(sField)
{
  // если поле не выбрано
  var sURL = window.location.toString()
  var sParam = ""
  if (-1 == sURL.search('\\bsrtf='+sField+'\\b')){ 
    sURL = Location("srtf,srtr,p", true)
    sParam = "&srtf="+sField
  }
  else {
    if (-1 == sURL.search("\\bsrtr\\b") )
      sParam = '&srtr';
    else
      sURL = Location("srtr,p", true)
  }
  window.location.href = sURL+sParam;
}

function setSearch()
{
  //var sURL = LocationWithoutVars("r,u,ss,pss,p,srtf,srtr")+"&"+Form.serialize('search')
  var sURL = Location("f")+"&"+Form.serialize('search')
  //document.write(sURL) //debug
  window.location.href = sURL;
}

