// Regions

function CCT(){
	UT();
	var el = document.getElementById('rgn_cart_warning');
	if (el!=null) el.style.display='block';
	RGN.cc=true;
	TT('rgn_select_window');
}

function TTT(el,x,y){
	RGN.anchor_element = el;
	RGN.anchor_element_x = x;
	RGN.anchor_element_y = y;
	if (RGN.IsEmptyCart()) {
		TT('rgn_select_window');
	}else{
		TT('rgn_cart_warning_window');
	};
}

function TT(div){
	TagToTip(div,
		FIX, [RGN.anchor_element, RGN.anchor_element_x, RGN.anchor_element_y],
		TITLE, 'Techport.ru',
		COPYCONTENT, false);
}

function UTT(city){
	var el,documentLocation,cityBefore=RGN.preferredCity;
	if (RGN.Form(city)) {
		el = document.getElementById('rgn_cart_warning');
		if (el!=null) el.style.display='none';
		// проверка cookie
		if(RGN.cookieCity!=''){
			el = document.getElementById('rgn_no_city_warning');
			el.style.display = 'none';
		}
		RGN.cc=false;
		UT();
		
		// Специальная обработка для страницы Доставка
		if (typeof(TP_ACC) != "undefined"){
			documentLocation=new String(document.location);
			if (documentLocation.indexOf('dostavka')>=0 && RGN.preferredCity != cityBefore){
				var DeliveryId = RGN.GetDeliveryId(RGN.preferredCity);
				if (DeliveryId) 
					TP_ACC.switchAccordionByRegion(DeliveryId);
				else
					TP_ACC.hideAllAccordionElements();
			}
		}
		
		// Специальная обработка для страницы Корзина (пересчитываем корзину)
		if((document.location.href.indexOf('/razdel-pokupatelja/korzina-pokupatelja')>0)||
			 (active_module_link.indexOf('/razdel-pokupatelja/korzina-pokupatelja')>0)){
			 	document.location.href = active_module_link;
		}
	}
}

function UT(){
	tt_HideInit();
}

// Stickers @ regions

function getStyleClass(className) 
{
	if (document.styleSheets.length < 1) {
	  return null;
	}
	var cssRules,s,r,isYandexInner,currentSheet;
	for (s = 0; s < document.styleSheets.length; s++) {
    currentSheet = document.styleSheets[s];
    // check href in case of Yandex Metrix
	  isYandexInner = currentSheet.href.toLowerCase().match(/yandex/);
    if (isYandexInner != null) {
      continue;
    }
    else {
	    if (currentSheet.cssRules) {
	      cssRules = 'cssRules';
	    } else {
	      cssRules = 'rules';
	    }
    }
	  for (r = 0; r < currentSheet[cssRules].length; r++) {
	    if (currentSheet[cssRules][r].selectorText == '.' + className) {
	      return currentSheet[cssRules][r];
	    }
	  }
	}
	return null;
}

function changeStyleBySelector()
{
	var stickerClass = getStyleClass('sticker_not_for_regions');
	switch (RGN.preferredCity)
	{
		case "MSK":
			if (stickerClass != null)
				stickerClass.style.display = '';
			break;
		default:	
			if (stickerClass != null)
				stickerClass.style.display = 'none';
			break;
	}  
}

function jj()
{
	var stickerClass = getStyleClass('sticker_not_for_regions');
	if (stickerClass != null){
		if (stickerClass.style.display == 'none'){
			$$('div.sticker_not_for_regions').each(Element.hide);
		}
	}
	switch (RGN.preferredCity)
	{
		case "MSK":
			if (stickerClass != null){
				stickerClass.style.display = '';
				$$('div.sticker_not_for_regions').each(Element.appear);
			}
			break;
		default:
		  if (stickerClass != null){
				stickerClass.style.display = '';
				$$('div.sticker_not_for_regions').each(Element.fade);
		  }
		  break;
	}
}

// вешаем коллбек
RGN.AddItemIDWithPrefix("jj","",RGN.blocks_regions);
RGN.SetCallback("jj",jj,RGN.blocks_regions);

// инициализация RGN
RGN.Init();

// меняем css правила в зависимости от региона
changeStyleBySelector();

// Title BG

function GetDayPhase(){
	theTime = new Date();
	theHour = theTime.getHours();
	if((theHour<9)||(theHour>23)){
		return false;
	} else {
		return true;
	}
}

function SetBgImage(id,uri){
	var el=document.getElementById(id);
	if (el!=null){
		el.style.backgroundImage = "url("+uri+")";
	}
}
	
function SetTitleBgToNight(){
	SetBgImage('top_1','/_img/head/head_mainn.jpg');
}

function SetTitleBgInnerToNight(){	
	SetBgImage('top_2','/_img/head/head_alln.jpg');
	SetBgImage('top_3','/_img/head/head_spleten_left_alln.jpg');
	SetBgImage('top_3_dop','/_img/head/head_spleten_left_dopn.jpg');
	SetBgImage('top_4','/_img/head/head_menu_alln.jpg');
	SetBgImage('top_4_dop','/_img/head/head_menu_dopn.jpg');
	SetBgImage('top_5','/_img/head/head_spleten_right_alln.jpg');
}

function SetTitleBg(){
	if (!GetDayPhase()) SetTitleBgToNight();
}

function SetTitleBgInner(){
	if (!GetDayPhase()) SetTitleBgInnerToNight();
}

// Forum

function FF(div,from,x,y){
	TagToTip(div,
		FIX, [from, x, y],
		TITLE, 'Techport.ru',
		COPYCONTENT, false);
}

function UFF(){
	delCookie('session_','/','.techport.ru');
	window.location.reload();
}

//Filter

function CheckFilterForms(fform, isSearchForm, isOrder, skipOffestSetting) {
    var forceSubmitUrl;
    var _tmpVarName;
    _tmpVarName = fform.name + "_forceSubmitUrl";

    forceSubmitUrl = eval("if(typeof("+_tmpVarName+") != 'undefined') {"+_tmpVarName+"} else {''}");

/* custom code */
var isResort = false,
	flagNames = new Array(),
  flagMaps = new Array(),
  submitURL = '',
  i,val,k,el;
if(typeof(fform.action) != 'undefined' && fform.action.value == 'rsrtme'){
    isResort = true;
}
/* end of custom code */

    if(isOrder != 1)
        isOrder = 0;

  // special run over checkbox filter fields
               //if()
  for(var i=0; i<fform.length; i++){
   el = fform.elements[i];
   if(el.type == 'checkbox' && el.name.indexOf("[]") <= 0){
     val = (el.checked)?1:0;
     el.value = val;
     cname=el.name;

     if(fform.elements[cname] && (fform.elements[cname].type=='hidden')){
         if(typeof(fform.elements["enc_"+cname])=='object') {
            fform.elements["enc_"+cname].value = val;
         }
         fform.elements[cname].value = val;
     }
   }
  }

  if(typeof(skipOffestSetting) == 'undefined'){
      if(typeof(fform.elements['offset'])=='object') {
       fform.elements['offset'].value = 0;
      }
      if(typeof(fform.elements['enc_offset'])=='object') {
       fform.elements['enc_offset'].value = 0;
      }
  }

  // Create the submit URL
  flagNames = [];
  flagMaps = [];
  var submitURL = '';
  if(forceSubmitUrl != '') {
      submitURL = forceSubmitUrl;
  }else if(isSearchForm==1){ 
      submitURL = '/katalog/products/?';
  }else{
      submitURL = _cms_script_link;
  }
  for(var i=0; i < fform.length; i++){
   el = fform.elements[i];
   elName = el.name;
   if(el.name.indexOf("prop_") >= 0 && isOrder){
       if((fpos = el.name.lastIndexOf("_x")) >= 0){
            elName = el.name.substr(0, fpos);
       }
       elName += "[]";
   }
   if(el.type == 'checkbox'){
     if(el.checked){
         if((fpos = el.name.indexOf("_flag_")) >= 0){
            flagMapAdd(el.name.substr(0, fpos), parseInt(el.name.substr(fpos+6)), 0);
         }else if(el.value != ''){
            submitURL += '&'+elName+'='+encodeURIComponent(el.value);
         }
     }else{
         if((fpos = el.name.indexOf("_flag_")) >= 0){
            flagMapAdd(el.name.substr(0, fpos), parseInt(el.name.substr(fpos+6)), 1);
         }else{
             //if(el.name.indexOf("[]") <= 0) /* do not process array items */
             //   submitURL += '&'+elName+'=';
         }
     }
   }else if(el.type == 'select-one'){
     if((fpos = el.name.indexOf("_flag")) >= 0){
        flagMapAdd(el.name.substr(0, fpos), parseInt(el.value), 0);
     }else if(el.value != ''){
         submitURL += '&'+elName+'='+encodeURIComponent(el.value);
     }
   }else if(el.type == 'select-multiple'){
     fpos = el.name.indexOf("_flag");
     for(k = 0; k < el.length; k++){
       if(el.options[k].selected){
          if(fpos >= 0){
            flagMapAdd(el.name.substr(0, fpos), parseInt(el.options[k].value), 0);
          }else{
            submitURL += '&'+encodeURIComponent(elName)+'='+encodeURIComponent(el.options[k].value);
          }
       }
     }
   }else if(el.type == 'radio'){
     if(el.checked){
         if((fpos = el.name.indexOf("_flag")) >= 0){
            flagMapAdd(el.name.substr(0, fpos), parseInt(el.value), 0);
         }else{
             submitURL += '&'+elName+'='+encodeURIComponent(el.value);
         }
     }
   }else{
     if(el.name == "action" && ((!isOrder && fform.search_subcats && fform.search_subcats.checked) || isSearchForm)) {
        submitURL += '&action=search';
     } else if(el.value != '' && elName != 'btnFlt_apply' && (!isOrder || el.name != "action" && el.name != "order")) {
        if(!isResort && elName == 'ext_custom_1200'){
            submitURL += '&'+elName+'=&flt_force_value=1';
        }else{
            submitURL += '&'+elName+'='+encodeURIComponent(el.value);
        }
     }
   }
  }

  for(i = 0; i < flagMaps.length; i++){
    if(flagNames[i]){
     submitURL += '&'+flagNames[i]+'=0x'+arrToHex(flagMaps[i]);
    }
  }
  if(isOrder)
    submitURL += '&eshop_special=1&action=add';

  if(isSearchForm)
    fform.action.value="search";

  document.location.href="/"+submitURL;
  return false;
}

function checkSearchForms(fform, fltFormName) {
  if(typeof(fltFormName) != 'undefined') {
    _cms_document_form = fltFormName;
  } else if(typeof(_cms_document_form) == 'undefined') {
    _cms_document_form = _cms_filter_form;
  }
  var sform,i,el;

  sform = document.forms[_cms_document_form];
  // special run over checkbox filter fields
  for(i=0; i<fform.length; i++){
   el = fform.elements[i];
   if(el.type == 'text'){
     cname=el.name;
     if(sform.elements[cname] && (sform.elements[cname].type=='hidden')){
         if(typeof(sform.elements["enc_"+cname])=='object') {
            sform.elements["enc_"+cname].value = el.value;
         }
         sform.elements[cname].value = el.value;
     }
   }
  }
  CheckFilterForms(sform, 1);
  return false;
}

function fixCMSScriptLinkForSearch(){
	_cms_script_link = _cms_search_script_link; //03.03.2010 15:57:19 BNM Fix link for search
}

// Left menu & Left column

var flipLastingCategories = Array (20163,20165);

function flipMenuBlock(blockId,changeHeight){
	var blockObj = document.getElementById('idLeftMenu'+blockId),
			aObj,
			flag = false;
	if(changeHeight === undefined) changeHeight = 1;	//16.03.2010 14:24:36 BNM Fix for undone page
	if(in_array(blockId,flipLastingCategories)){	//07.07.2010 11:42:55 BNM Custom work for selected categories
		aObj = document.getElementById('alink_'+blockId);
		if(changeHeight && aObj && aObj.href != document.location.href)
			flag = true;
	}
	if (!flag) tp_toggle('idLeftMenu'+blockId)
	if (changeHeight)	correctPageHeight();	// in this case also must change divs height
	return flag;
}

function flipInformationBlock(obj){
  var el=document.getElementById(obj);
  if (el!=null) {
    if (el.style.display=='none'){
      el.style.display='block';
      setCookie('show_information', '1', '/');
    } else {
      el.style.display='none';
      setCookie('show_information', '0', '/');
    }
  }
  correctPageHeight();
}

function validate_form(cform) {

  if (!form )
    var form = cform;
    
   if (form.username.value.length<1 || form.username.value.match(/[^a-zA-Z0-9_.@]+/)) {
       errmsg='Пожалуйста, введите логин! Минимальная длина 1\nЛогин может содержать только цифры и латинские буквы\n';
       form.username.focus();
       alert(errmsg);
       return false;
   }

  return true;
}

// Center column
function select__(name__){
	for(var k=0; k<fltform.elements['ext_custom_1200'].length; k++){
		if(fltform.elements['ext_custom_1200'][k].value==name__){
			fltform.elements['ext_custom_1200'][k].selected='true';
			fltform.btn2.click();
		}
	}
}

function toggleCallOrderForm(){
	tp_toggle('zv1');
	tp_toggle('zv2');
	correctPageHeight();
}

// Producers block

function toggleAllProducers(cook){
	setCookie('showallproducers3', cook, '/', 0, 1);
	tp_toggle('idShortProducers');
	tp_toggle('idAllProducers');
	correctPageHeight();
}

// Height correction

function correctPageHeight(page){
	page = page || '';
  var a = Array(),
  		m = 0,
  		l = 0,
  		h = 0,
  		c = 0,
  		f,
  		i;
  if (page!='main'){
  	a = Array('lay_body','lay_body1','lay_f2','lay_f4');
  	c = 50;
  }
  else{
  	a = Array('lay_body','lay_body1');
  	c = 25;
  }
  l = a.length;
  for (i = 0; i < l; i++){
  	f=a[i];
  	a[i] = document.getElementById(a[i]);
  	if (a[i] != null){
  		h = calculateChildrenOffsetHeight(a[i]);
  		if (f=='lay_f2') h-=50;
  		if (f=='lay_f4') h-=75;
  		if (m < h)
  			m = h;
  	}
  }
  for (i = 0;i < l; i++){
  	if (a[i] != null){
  		a[i].style.height = (m + ((i != 0)? c : 0)) + 'px'; // c - fix absolute pos of 'lay_body'
  	}
  }
}

function calculateChildrenOffsetHeight(parentDOMElement)
{
	var childNodes = parentDOMElement.childNodes,
			childNodesCount = childNodes.length,
			childNodesOffsetHeight = 0,	// total children offset height
			currentChildNode,
			currentChildNodeOffsetHeight,
			sm,i;
	for (i = 0; i < childNodesCount; i++) {
		currentChildNode = childNodes[i]; 
		currentChildNodeOffsetHeight = currentChildNode.offsetHeight;
		if (currentChildNodeOffsetHeight > 0) { // check if element is visible (offsetHeight > 0)
			sm=currentChildNode.nodeName.toLowerCase().match(/spec_mark/);	// fix for IE <spec_mark> tags filter
			if ((sm == null) && (currentChildNode.innerHTML != "")){
				childNodesOffsetHeight += currentChildNodeOffsetHeight;
			}
		}
	}
	return childNodesOffsetHeight;
}

// BNM 19.03.2010 - переопределена, добавлен вызов correctPageHeight(). Взят из system_js.php
function fillAdvPlace(idPlace, idCnt, placeContent){
	if(advPlacesContent[idPlace+'_'+idCnt] == undefined)
		advPlacesContent[idPlace+'_'+idCnt] = placeContent;
	if(fillAdvPlaceWatcher[idPlace+'_'+idCnt] == undefined)
		fillAdvPlaceWatcher[idPlace+'_'+idCnt] = 0;
	if(document.getElementById && document.getElementById('advp_'+idPlace+'_'+idCnt) && document.getElementById('advp_'+idPlace+'_'+idCnt).innerHTML != undefined){
		document.getElementById('advp_'+idPlace+'_'+idCnt).innerHTML = advPlacesContent[idPlace+'_'+idCnt];
		correctPageHeight(); // fix by BNM
	}else{
		fillAdvPlaceWatcher ++;
		if(fillAdvPlaceWatcher < 1000)
			setTimeout("fillAdvPlace('"+idPlace+"', '"+idCnt+"');", 100);
	}
}

// Catalog filter

function fixFilterWidth(){
	var newWidth=183+307-$('fltTable').getWidth(),col1=0,col2=0,flddiv=186,dflt=90,space=5;
	$$('td_select').each(function(a){a.setStyle({width:newWidth+'px'});});
	$("lay_body").select("div.flt_c_1>a").each(function(el){col1=Math.max(col1,el.getWidth());});
	$("lay_body").select("div.flt_c_2>a").each(function(el){col2=Math.max(col2,el.getWidth());});
	if(col1+col2<flddiv){
		$("lay_body").select("div.flt_col_1")[0].setStyle({width:(col1>dflt?(col1+space+col2<flddiv?col1+space:flddiv-col2):dflt)+'px'});
		$("lay_body").select("div.flt_col_2")[0].setStyle({width:col2+'px'});
	}
}

// Big pictures

/*
// lightbox-related init object
var  = {
    medPicsArray : new Array(),
    bigPicsArray : new Array()    
}
*/

SHT.getRealDisplay = function (elem) {
	if (elem.currentStyle) {
		return elem.currentStyle.display;
	} else if (window.getComputedStyle) {
		var computedStyle = window.getComputedStyle(elem, null );
		return computedStyle.getPropertyValue('display');
	}
}

function changeStickersForLightbox(mode) {
   // hide stickers in process of images changing to avoid stupid 'jumpings'
   if ($('middle_pict') != null) {
     var stickers = $('middle_pict').childElements();
     stickers.each(function(elem) {
        var stickerClassName = elem.className;
	    isSticker = stickerClassName.toLowerCase().match(/sticker/);
        if (isSticker != null) {
            (mode == 0)?elem.hide():elem.appear({ duration: 0.5, from: 0, to: 1 });
        }
     });
   }
}

// animate switching small pictures
function changeForLightboxImg(srcNew, bigPath){
   // hide stickers
   changeStickersForLightbox(0);
   // change middle picture div inner html
   var imgPreloader = new Image();
   imgPreloader.onload = (function() {
     $('lb_pict').hide();
     $('lb_pict').innerHTML = ((bigPath!='')?("<a class='magnify' href='" + bigPath + "' rel='lightbox[a]'>"):'')+"<img src='" + srcNew + "' border=0>"+((bigPath!='')?("<br><img src='/_img/lightbox/magnify.jpg' title='Увеличить' alt='Увеличить'></a>"):'');
     if (bigPath != '') {
       $('middle_pict').addClassName('magnify_div');
     }
     $('lb_pict').appear({ duration: 0.5, from: 0, to: 1 });
   });
   imgPreloader.src = srcNew;
   // show stickers
   changeStickersForLightbox(1);
}

// handler on small pictures switching
function changeForLightbox(srcNew, bigPath, picNum)
{
   changeForLightboxImg(srcNew, bigPath);
   // and refill lightbox hiddens div content

   var lightboxHiddensInnerUp   = '';
   var lightboxHiddensInnerDown = '';

   for (var i = 0; i < bigPicsArrayLength; i++) 
   {
      // up hiddens span fill in
      // mf fix: (bigPicsArrayLength != picNum)
      if ((i < picNum) && (bigPicsArray[i] != null))
      {
         lightboxHiddensInnerUp += '<a href="' + bigPicsArray[i] + '" rel="lightbox[a]"></a>';
      }
      if ((i > picNum) && (bigPicsArray[i] != null))
      {
         lightboxHiddensInnerDown += '<a href="' + bigPicsArray[i] + '" rel="lightbox[a]"></a>';
      }
   }

   document.getElementById('lightbox_hiddens_up').innerHTML   = lightboxHiddensInnerUp;
   document.getElementById('lightbox_hiddens_down').innerHTML = lightboxHiddensInnerDown;
}

// Overrided functions

// BNM 16.02.2009 - для заданного размера всплывающего окна. Взят из system_js.php
function show_details(script) {
  if ( (script.substring(0,7).toLowerCase()) != "http://" && (script.substring(0,8).toLowerCase() != "https://" ) ){
    script = frontBaseHref + script;
  }
  var	w_width = 437,
  		w_height = 300;
  if (w_height > window.screen.availHeight)
  w_height = window.screen.availHeight;
  if (w_width > window.screen.availWidth)
  w_width = window.screen.availWidth;

  window.open(script, "pic", "resizable=yes, status=yes, scrollbars=yes, width=" + w_width + ", height=" + w_height);
}

function amiroTEdit_createEditor(taWidth, taHeight, taValueName, taValue, isValueHTML, idPreviewDiv){
	if (typeof(isValueHTML) != undefined) {
	    var re = /(<noindex>|<\/noindex>)/gi;
	    taValue = taValue.replace(re, '');
	}
	var baseHref = typeof(frontBaseHref) == 'string' ? '' : (typeof(editorBaseHref) != 'undefined' ? editorBaseHref : '');
	this.editorId = 'id'+taValueName;
	var contentPreviewDiv = '';
	if(typeof(idPreviewDiv) != "undefined"){
	    this.idPreviewDiv = idPreviewDiv;
	}else{
	    this.idPreviewDiv = 'amiroTEdDivPreview';
	    contentPreviewDiv = '<div id="amiroTEdDivPreview" class="amiroTEdDivPreview" style="width:'+taWidth+'px;margin-bottom:7px"></div>';
	}
	document.writeln(
	    contentPreviewDiv +
	    '<div id="amiroTEdDivEditor" class="amiroTEdDivEditor">' +
	    '<textarea id="'+this.editorId+'" name="'+taValueName+'" wrap="OFF" class="amiroTEdCtrl" style="width:'+taWidth+'px;height:'+taHeight+'px" onKeyDown="return '+ this.varName+'.procKeyPress(event)" onKeyUp="'+ this.varName+'.procKeyUp()">' +
	    (typeof(isValueHTML) == undefined || !isValueHTML ? taValue : this.fromHTMLContent(taValue)) +
	    '</textarea><br>' +
	    '<div class="amiroTEdDivResize" style="width:'+taWidth+'px;background-image: url(' + baseHref + '_img/ed_resize.gif)" onMouseDown="'+this.varName+'.regTextAreaResize(event.pageY ? event.pageY : window.event.clientY)"><img src="' + baseHref + '_img/empty.gif" width="1" height="3"></div>' +
	    '</div>'
	);
	this.editorObj = document.getElementById(this.editorId);
	this.isInitialized = true;
}

// Overwrited functions end

// UTS-ID (Hightlight)

Effect.Highlight_New_text = Class.create(Effect.Base, {
  initialize: function(element) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { });
    this.start(options);
  },
  setup: function() {
    // Prevent executing on elements not in the layout flow
    if (this.element.getStyle('display')=='none') { this.cancel(); return; }

    // Disable background image during the effect
    this.oldStyle = { };
    if (!this.options.endcolor)

      this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff');
    if (!this.options.restorecolor)
      this.options.restorecolor = this.element.getStyle('background-color');
    // init color calculations
    this._base  = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));
    this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this));
  },
  update: function(position) {
			this.element.setStyle({color: $R(0,2).inject('#',function(m,v,i){
      return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) });
  }
});

Effect.Highlight_New_border = Class.create(Effect.Base, {
  initialize: function(element) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { });
    this.start(options);
  },
  setup: function() {
    // Prevent executing on elements not in the layout flow
    if (this.element.getStyle('display')=='none') { this.cancel(); return; }
    // Disable background image during the effect
    this.oldStyle = { };
    if (!this.options.endcolor)
      this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff');
    if (!this.options.restorecolor)
      this.options.restorecolor = this.element.getStyle('background-color');
    // init color calculations
    this._base  = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));
    this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this));
  },
  update: function(position) {

//    this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){
//this.element.setStyle({color: $R(0,2).inject('#',function(m,v,i){
			this.element.setStyle({borderColor: $R(0,2).inject('#',function(m,v,i){
      return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) });
  }
});

Effect.Highlight_New_ground = Class.create(Effect.Base, {
  initialize: function(element) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { });
    this.start(options);

  },
  setup: function() {
    // Prevent executing on elements not in the layout flow
    if (this.element.getStyle('display')=='none') { this.cancel(); return; }
    // Disable background image during the effect
    this.oldStyle = { };
    if (!this.options.endcolor)
      this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff');
    if (!this.options.restorecolor)
      this.options.restorecolor = this.element.getStyle('background-color');
    // init color calculations
    this._base  = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));
    this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this));
  },
  update: function(position) {

//    this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){
//this.element.setStyle({color: $R(0,2).inject('#',function(m,v,i){
			this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){
      return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) });

  }
});

function uts_hilight() {
			new Effect.Parallel(
				 [
				 new Effect.Highlight_New_border('utsid', {startcolor:"#56A20A",endcolor:"#FFFFFF", sync: true}),
				 new Effect.Highlight_New_ground('utsid', {startcolor:"#FFFFFF",endcolor:"#56A20A", sync: true}),
				 new Effect.Highlight_New_text('utsid', {startcolor:"#56A20A",endcolor:"#FFFFFF", sync: true})
				 ],
				 {duration: 0.5, queue : { position: 'end', scope : 'utsid' }}
				 );
			new Effect.Parallel(
				 [
				 new Effect.Highlight_New_border('utsid', {startcolor:"#FFFFFF",endcolor:"#56A20A", sync: true}),
				 new Effect.Highlight_New_ground('utsid', {startcolor:"#56A20A",endcolor:"#FFFFFF", sync: true}),
				 new Effect.Highlight_New_text('utsid', {startcolor:"#FFFFFF",endcolor:"#56A20A", sync: true})
				 ],
				 {duration: 0.5, queue : { position: 'end', scope : 'utsid' }}
				 );
};

function rgn_hilight() {
			new Effect.Parallel(
				 [
				 new Effect.Highlight_New_text(RGN.WARNING, {startcolor:"#ff0030",endcolor:"#FFFFFF", sync: true})
				 ],
				 {duration: 1, queue : { position: 'end', scope : 'rgn_warn' }}
				 );
			new Effect.Parallel(
				 [
				 new Effect.Highlight_New_text(RGN.WARNING, {startcolor:"#FFFFFF",endcolor:"#ff0030", sync: true})
				 ],
				 {duration: 1, queue : { position: 'end', scope : 'rgn_warn' }}
				 );
};

//OBJECT "TP"
var TP = {
	
}

//Fire on dom:loaded
TP.InitDOM = function(){
	
}

//Fire on document.onload
TP.InitPage = function(){
	vsPicInit();
	CLK.Request('LoadTime',null,null,null,new Date()-TL);
}
Event.observe(document, 'dom:loaded', function(){TP.InitDOM()});
Event.observe(window, 'load', function(){TP.InitPage()});
//OBJECT "TP" end

//vsPic
function vsPicInit(){
	var els,sticks,flag=false,mode=-1;
	els=$$("#tovar_detalis_img div[class~=sticker_left_upper] img,#tovar_detalis_img div[class~=sticker_right_upper] img,#tovar_detalis_img div[class~=sticker_left_lower] img,#tovar_detalis_img div[class~=sticker_right_lower] img");
	if(document.location.href.indexOf('shvejnaja-tehnika')>0){
		sticks=['5_krasnuy-l.gif','9_podarok_yellow-l.png'];
		sticks.each(function(el1,i){els.each(function(el2){if(el2.src.indexOf(el1)>0&&!flag){mode=i;flag=true;}});});
	}
	if(document.location.href.indexOf('/s-frontalnoj-zagruzkoj/stiralnaja-mashina-eurosoba-')>0){
		sticks='12_action_green_b-l.png';
		els.each(function(el){if(el.src.indexOf(sticks)>0&&!flag){mode=2;flag=true;}});
	}
	if(document.location.href.indexOf('rakoviny/rakovina-')>0){
		sticks='12_action_green_b-l.png';
		els.each(function(el){if(el.src.indexOf(sticks)>0&&!flag){mode=3;flag=true;}});
	}
	if(document.location.href.indexOf('sadovaja-tehnika')>0){
		if((document.location.href.indexOf('husqvarna')>0||document.location.href.indexOf('partner')>0)){
			sticks='12_action_green_b-l.png';
			els.each(function(el){if(el.src.indexOf(sticks)>0&&!flag){mode=4;flag=true;}});
		}
	}
	if(flag)setTimeout('vsPicShow('+mode+')', 3000);
}
function vsPicShow(msgType){
	var msg,prc;
	msg="<div><a href='javascript:void(0)' onclick='vsPicHide()'>[x]</a></div>";
	switch(msgType){
		case 0:msg+="На эту модель бесплатная доставка!";break;
		case 1:msg+="К этой модели мы дарим ценный подарок!";break;
		case 2:msg+="<br><br><a href=\"akcii/vesennie-skidki\" style=\"font-size:25px\">При покупке вместе с <b>раковиной Кувшинка</b> - Суперскидка!</a>";break;
		case 3:msg+="<br><br><a href=\"akcii/vesennie-skidki\" style=\"font-size:25px\">При покупке вместе со стиральной машиной <b>Eurosoba</b> - Суперскидка!</a>";break;
		case 4:msg+="<br><br><a href=\"akcii/akcija-82\">Нашли дешевле - сделаем скидку!!!</a><style type='text/css'>#vsPic div{text-align:left}</style>";break;
		break;
	}//next case 7
	msg+='</div>';
	$('middle_pict').insert({after:"<div id='vsPic' style='display:none'>"+msg+"</div>"});
	$("vsPic").appear();
}
function vsPicHide(){
	$("vsPic").fade();
}

var TTooltip = function(idel,msg,title){
	this.win = null;
	this.timerId = null;
	title = title || '';
	el = jQuery(idel);
	if (el){
		jQuery(el).css({cursor:'pointer'});
		jQuery(el).mouseover(function(e){
			if (this.win===null){
				this.win = new myAWinO(300,50,title,msg, {posX:e.pageX,posY:e.pageY});
				jQuery(this.win.obj).mouseover(function(){
					if (this.timerId) clearTimeout(this.timerId);
				}.bind(this))
				.mouseout(function(){
					if (this.timerId) clearTimeout(this.timerId);
					this.timerId = setTimeout(function(){
						this.win.close(1000);
					}.bind(this), 1000);
				}.bind(this));
			}
			if (this.timerId) clearTimeout(this.timerId);
			this.win.options.posX = e.pageX;
			this.win.options.posY = e.pageY;
			this.win.open(1000);
		}.bind(this)).mouseout(function(){
			if (this.timerId) clearTimeout(this.timerId);
			this.timerId = setTimeout(function(){
				this.win.close(1000);
			}.bind(this), 1000);
		}.bind(this));
	}
}


var myAWinLastId = 0;
var myAWinO = function(w,h,t,c,options){
	this.w = w
	this.h = h
	this.title = (typeof t != undefined || t != '') ? t : 'techport.ru'
	this.idp = 'myAWin'
	this.id = this.idp + '_' + myAWinLastId;
	this.idc = this.idp + 'Con_' + myAWinLastId;
	this.idClose = this.idp + 'Close' + myAWinLastId;
	this.opened = false;
	this.options = jQuery.extend({
		posX: 'center',
		posY: 'center',
		closeName: '[Закрыть]'
	}, options || {});
	myAWinLastId++
	
	var htm = '<div class="myAWinWin" id="' + this.id + '" style="display:none"><div class="myAWinTop"><div class="myAWinTitle">'+t+'</div><div class="myAWinClose"><a href="javascript:void(0)" id="' + this.idClose + '">'+this.options.closeName+'</a></div></div><div class="myAWinCon" id="'+this.idc+'">&nbsp;</div></div>'
	
	jQuery('body').append(htm);
	
	this.obj = document.getElementById(this.id);
	this.obj_con = document.getElementById(this.idc);
	if (typeof this.obj_con != undefined){
		jQuery(this.obj_con).width(this.w);
		jQuery(this.obj_con).height(this.h);
		
		if (typeof c != 'undefined')
		this.obj_con.innerHTML = c
	}
	//jQuery(this.obj).bind('mousewheel', function(e,d){ return this.wheel(e,d); }.bind(this));
	jQuery('#'+this.idClose).click(
		function(){
			return this.close()
		}.bind(this)
	);
}
myAWinO.prototype.wheel = function(event, delta){
	delta = -delta * 20
	var hscroll = jQuery('#'+this.obj_con.id+' div.hscroll');
	if (hscroll){
		var ch = hscroll.outerHeight() + 100;
		var h = jQuery(this.obj_con).innerHeight();
		var st = jQuery(this.obj_con).scrollTop();
		var max_st = ch - h
		if (ch > h){
			var new_st = st + delta;
			if (new_st > max_st) new_st = max_st 
			else if (new_st < 0) new_st = 0
			jQuery(this.obj_con).scrollTop(new_st);
		}
	}
	return false;
}
myAWinO.prototype.refresh = function(w,h){	
	if (typeof w != undefined) this.w = w;
	if (typeof h != undefined) this.h = h;
	jQuery(this.obj_con).width(this.w);
	jQuery(this.obj_con).height(this.h);	
	jQuery(this.obj).width(jQuery(this.obj_con).width() + 26);
	//jQuery(this.obj).stop(); 
	jQuery(this.obj).css(this.gPos()); 
}
myAWinO.prototype.gPos = function(){
	var win = this.obj;
	var wh = jQuery(window).height()
	var ww = jQuery(window).width()
	var st = jQuery(window).scrollTop()
	var sl = jQuery(window).scrollLeft()
	var w  = jQuery(win).width()
	var h  = jQuery(win).height()
	this.newPos = { 
		top: '' + ( this.options.posY == 'center' ? Math.round( st + (wh > h ? (wh - h) / 2  : 0)) : this.options.posY ) + 'px', 
		left: '' + ( this.options.posX == 'center' ? Math.round( ww > w ? (ww - w) / 2 : 0 ) : this.options.posX ) + 'px'
	}
	return this.newPos
}
myAWinO.prototype.open = function(fade){
	if (this.opened) return;
	this.opened = true;
	jQuery(this.obj).stop();
	if (typeof fade != 'undefined'){
		jQuery(this.obj)
		.css({
			opacity: 0,
			display: ''
		})
		.animate({
			opacity: 1
		}, fade);
	}else jQuery(this.obj).show().css({opacity: 1});
	this.refresh();
}
myAWinO.prototype.close = function(fade){
	if (!this.opened) return;
	this.opened = false;
	jQuery(this.obj).stop();
	if (typeof fade != 'undefined'){
		jQuery(this.obj)
		.css({
			opacity: 1,
			display: ''
		})
		.animate({
			opacity: 0
		}, fade, function(){
			jQuery(this.obj).hide().css({opacity: 1});
		}.bind(this));
	}else jQuery(this.obj).hide();	
}
myAWinO.prototype.remove = function(){
	if (this.obj != null) jQuery(this.obj).remove();
}

// BEGIN Basket
var BASKET = {
	win:null,
	isLogged:false,
	count:null,
	total:null
}
BASKET.init = function(){
	var is_logged_b = BASKET.getCookie('ucartl') || 0;
	var is_logged_c = BASKET.getCookie('is_logged_in') || 0;
	if (is_logged_b != is_logged_c){
		BASKET.isLogged = is_logged_c;
		BASKET.refresh();
	}
}
BASKET.getCookie = function(name){
	var pattern = "(?:; )?" + name + "=([^;]*);?";
	var regexp  = new RegExp(pattern);
	    
	if (regexp.test(document.cookie))
	return decodeURIComponent(RegExp["$1"]);

	return false;
}
BASKET.setCookie = function(name, value, expires, path, domain, secure){
	if (!name || !value) return false;
	if (!path) path = '/';
	var str = name + '=' + encodeURIComponent(value);
	
	if (expires) str += '; expires=' + expires.toGMTString();
	if (path)    str += '; path=' + path;
	if (domain)  str += '; domain=' + domain;
	if (secure)  str += '; secure';
	
	document.cookie = str;
	return true;
}
BASKET.delCookie = function(name, path, domain){
	BASKET.setCookie(name, null, new Date(0), path, domain);
	return true;
}
BASKET.number_format = function(number, decimals, dec_point, thousands_sep ) {
	var i, j, kw, kd, km;
	if( isNaN(decimals = Math.abs(decimals)) ){
		decimals = 2;
	}
	if( dec_point == undefined ){
		dec_point = ",";
	}
	if( thousands_sep == undefined ){
		thousands_sep = ".";
	}
	i = parseInt(number = (+number || 0).toFixed(decimals)) + "";
	if( (j = i.length) > 3 ){
		j = j % 3;
	} else{
		j = 0;
	}
	km = (j ? i.substr(0, j) + thousands_sep : "");
	kw = i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousands_sep);
	kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).replace(/-/, 0).slice(2) : "");
	return km + kw + kd;
}
BASKET.addItem = function(itemId){
	new Ajax.Request('/_php/order.php', {
		method:'post',
		parameters: {act: 'add_to_cart', itemId: itemId, reg: RGN.preferredRegion},
		requestHeaders: {Accept: 'application/json'},
		onSuccess: function(transport){
			var json = transport.responseText.evalJSON(true);
			if (json['status_message']){
				if (BASKET.win != null){
					BASKET.win.remove();
					BASKET.win = null;
				}
				BASKET.win = new myAWinO(500,100,'',json['status_message']);
				BASKET.win.open();
			}
			var c = 0;
			var t = 0;
			try{
				var c = json['cook']['c'];
				var t = json['cook']['t'];
			}catch(e){}
			BASKET.updateCookie(c, t);
			BASKET.update();
			correctPageHeight();
		}
	});
}
BASKET.refresh = function(){
	new Ajax.Request('/_php/order.php', {
		method:'post',
		parameters: {act: 'refresh'},
		requestHeaders: {Accept: 'application/json'},
		onSuccess: function(transport){
			var json = transport.responseText.evalJSON(false);
			var c = 0;
			var t = 0;
			try{
				var c = json['cook']['c'];
				var t = json['cook']['t'];
			}catch(e){}
			BASKET.updateCookie(c, t);	
			BASKET.update();
			correctPageHeight();
		}
	});
}
BASKET.updateCookie = function(c,t){
	if (c>0){
		BASKET.setCookie('ucartc', c);
		BASKET.setCookie('ucartt', t);
	}else{
		delCookie('ucartc');
		delCookie('ucartt');
	}
	if (BASKET.isLogged) BASKET.setCookie('ucartl', 1);
	else delCookie('ucartl');
}
BASKET.getCount = function(){
	return BASKET.getCookie('ucartc') || 0;
}
BASKET.getTotal = function(){
	return BASKET.getCookie('ucartt') || 0;
}
BASKET.update = function(){
	var c = BASKET.getCount();
	var t = BASKET.getTotal();
	var cont = $('cart_small_cont');
	if (cont){
		if (c!==null && c>0)
		cont.update('<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td><div id="cart_small"><span class="nobr">Товаров: <b>'+c+'</b></span></div></td></tr>'+(t==0?'':'<tr><td><div id="cart_small"><span class="nobr">На сумму: <b>'+BASKET.number_format(t,0,'',' ')+' руб</b></span></div></td></tr>')+'<tr><td style="padding-top:12px"><div id="cart_small"><a href="/razdel-pokupatelja/korzina-pokupatelja" style="text-decoration:none">Оформить заказ</a><br><img src="/_img/pun_line.gif"></div></td></tr></tbody></table>');
		else cont.update('<div id="cart_small_cont"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td><div id="cart_small"><span class="nobr">Ваша корзина пуста</span></div></td></tr></tbody></table></div>');
	}		
}
window.BASKET = BASKET;
jQuery(document).ready(function() { BASKET.init(); });
function add_to_cart(id){
	BASKET.addItem(id);
}
function update_cart(){
	BASKET.update();		
}
// END Basket

AMI.UI.overloadAlert(false);
