/// AJAX
var ilinksTime  = 30000; // 15 sec
var ilinks2Time = 30000; // 1 sec

http_request = null; //single query
http_get_url = "";
ajax_timer = 0;
request_lock = false;

ref_url = "";

cat_menu_open = false;

htmlMenuItem = null;
htmlTopMenu = null;

htmlBtmRows = 1;

current_location = null;

var SCREEN_X = 0, SCREEN_Y = 1;
var bIE = (String(typeof(document.all)) != "undefined");
var openBlock = 0;

function setCookieParam(name, value) {
  if (value==null) {
    var d = new Date(1970,1,1);
  } else {
    var d = new Date(2008,1,1);
  }
  document.cookie = (name+'='+value+'; expires='+d.toGMTString()+';');
}

/**
DOM/HTML functions
*/
function getElement(parent, location) {
  var p = parent;
  var nn = 0;
  var ns = 0;
  for (var i=0; i<location.length; i++) {
    switch(p.tagName.toUpperCase()) {
      case 'TABLE':
      p = p.rows[location[i]];
      break;
      case 'TR':
      p = p.cells[location[i]];
      break;
      default:
      if (location[i]==-1) {
        p = p.parentNode;
      } else {
        nn = ns = 0; // NN,M,FF fix
        while(p.childNodes[nn]) {
          if (p.childNodes[nn].nodeType==1) {
            if (ns==location[i]) {
              p = p.childNodes[nn];
              break;
            }
            ++ns;
          }
          ++nn;
        }
      }
      break;
    }
  }
  return p;
}


function htmlAjaxLinks(name) {
  var links = document.getElementsByName(name?name:"ajaxLink");
  for(i=0; i<links.length; ++i) {
    links[i].onclick= function() {
      var linkHref = this.href;
      var ext = "";
      var qPos = -1;
      var dotPos = -1;
      if (-1 == (qPos = linkHref.indexOf('?'))) {
        qPos = linkHref.length;
      }
      if ((-1 != (dPos = linkHref.lastIndexOf('.', qPos))) && (dPos>linkHref.lastIndexOf('/'))) {
        ext = linkHref.substr(dPos+1,qPos-dPos);
      }
      if (ext == "html") {
        linkHref = linkHref.substr(0, dPos)+'.ajax'+linkHref.substr(qPos);
      } else if (linkHref.charAt(linkHref.length-1)!='?') {
        linkHref+='&ajax=1';
      } else {
        linkHref+='ajax=1';
      }
      return !ajax_url_get(linkHref);
    }
  }
}

function htmlMenuOpen(name, event) {
  if (htmlMenuItem!=null) {
    htmlMenuClose();
  }
  if (htmlMenuItem = document.getElementById(name)) {
    try {
      htmlMenuItem.style.display = '';
      event.cancelBubble = true;
    } catch(e) {
    }
  }
  return true;
}

function htmlMenuClose() {
  if (htmlMenuItem!=null) {
    try {
      htmlMenuItem.style.display = 'none';
    } catch(e) {
    }
    htmlMenuItem = null;
  }
  if (htmlTopMenu!=null) {
    try {
      htmlTopMenu.style.display = 'none';
    } catch(e) {
    }
    htmlTopMenu = null;
  }
  return true;
}

/**
AJAX functions
*/
function ajax_create_object() {

  var object = null;
  if (window.XMLHttpRequest) {
    object = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    try {
      object = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {
      object = null;
    }
  }
  if (object) {
    return object;
  } else {
    return null;
  }
}

function testKey(e, pval, onm)
{
  	// Make sure to use event.charCode if available
  	var key    = (typeof e.charCode == 'undefined' ? e.keyCode : e.charCode);
	var reg    = /[0-9]/;
	var plen   = pval.length;
	var fetext = document.getElementById( onm );
	var keytest;


	var phone  = document.getElementById( 'customer_phone' );
	phone.style.backgroundColor = '#ECE9D8';
	
  	// Ignore special keys
  	if (e.ctrlKey || e.altKey || key < 32)
	{
		fetext.innerHTML = 'Образец: 380683501791';
		fetext.color = '#333366';
		return true;
	
	}

  	key = String.fromCharCode(key);
	keytest = reg.test(key);
	
	if( keytest ) 
	{ 
		fetext.style.display = 'block';
		fetext.innerHTML = 'Образец: 380683501791';
		fetext.color = '#333366';
	}
	
	if( !keytest ) 
	{ 
		fetext.style.display = 'block'; 
		fetext.innerHTML   = "Допустимы только цифры";
		fetext.style.color = "red";

	}
	
 	if( plen < 12 )
	{ 
		return keytest;
	
	}
	else 
	{
		return false;
	
	}
}

function ucwords(string, onm) 
{   
	//alert( string );
	var newstring = string.charAt(0).toUpperCase() + string.substr(1).toLowerCase();
	var fetext = document.getElementById( onm );

	//alert( newstring );	
	fetext.value = newstring;
	
	return newstring;
	
} 

function testWord(e, pval, onm)
{
  // Make sure to use event.charCode if available
  var key    = (typeof e.charCode == 'undefined' ? e.keyCode : e.charCode);
	var reg    = /[а-яА-Я+]/;
	var fetext = document.getElementById( onm );
	var keytest;
	
	fetext.innerHTML     = "Допустима только кириллица";
	fetext.style.color   = "red";
	
  // Ignore special keys
  if( e.ctrlKey || e.altKey || key < 32 )
	{
		fetext.style.display = 'none';
		return true;
	
	}
	
  key     = String.fromCharCode(key);
	keytest = reg.test(key);
	
	if( keytest ) { fetext.style.display = 'none'; }
	if( !keytest ) { fetext.style.display = 'block'; }
	
	return keytest;

}

function validateEmail( form_name )
{
	var text  = document.getElementById( "incorrect_mail" );
	var email = document.forms[form_name].customer_email;
	var reg   = /^[\w.-]+@([a-z0-9\-]+\.)+[a-z]{2,6}$/i;
	
	if(( !reg.test( email.value )) && ( email.value.length > 0 )) 
	{
		email.style.backgroundColor = "red";
		text.innerHTML              = "Адрес e-mail введён неверно";
    	text.style.display          = 'block';
   		email.focus();
		return false;
		
    }
	else
	{
		email.style.backgroundColor = '#ECE9D8';
		text.style.display          = 'none';
		return true;
	
	}
}


function validatePhone( form_name )
{
	var text    = document.getElementById( "incorrect_phone" );
	var phone   = document.forms[form_name].customer_phone;
	var plen    = phone.value.length;
	var reg     = /[^0-9]+/gi;
	var nc;
	var new_val = '';
	
	if (( plen == 1 ) && ( phone.value[0] == '+' ))
	{
		phone.value = '';
	}
	
	if (( plen > 1 ) && ( phone.value[0] == '+' ))
	{
		phone.value = phone.value.substring( 1, plen );
		plen        = phone.value.length;
		
	}
	
	new_val = phone.value.replace( reg, "" );
	
	phone.value = new_val;
	plen        = phone.value.length;
	
	if ( plen < 12 )
	{
		phone.style.backgroundColor = "red";
		text.innerHTML              = "Номер телефона введён не полностью. Образец: 380683501791";
		text.style.display          = 'block';
		text.style.color            = "red";
		phone.value = phone.value;
		phone.focus();		
		return false;
		
	}

	if ( plen > 12 )
	{
		phone.style.backgroundColor = "red";
		text.innerHTML              = "Номер телефона слишком длинный. Образец: 380683501791";
		text.style.display          = 'block';
		text.style.color            = "red";
		phone.value = phone.value;
		phone.focus();		
		return false;
	
	}
		
	if ( plen == 12 )
	{
		phone.style.backgroundColor = '#ECE9D8';
		text.style.display          = 'none';
		phone.value = phone.value;
		return true;
	
	}

}

function validateLastname( form_name, plen )
{
	var lntext     = document.getElementById( "incorrect_lastname" );
	var lastname   = document.forms[form_name].customer_lastname;
	
	if( lastname.value.length < plen )
	{
		lastname.style.backgroundColor = "red";
		lntext.innerHTML               = "Фамилия слишком короткая";
		lntext.style.display           = 'block';
		lntext.style.color             = "red";
		lastname.focus();
		return false;
		
	}
	else
	{
		lastname.style.backgroundColor = '#ECE9D8';
		lntext.style.display           = 'none';
		return true
	
	}
}

function validateFirstname( form_name, plen )
{
	var text        = document.getElementById( "incorrect_firstname" );
	var firstname   = document.forms[form_name].customer_firstname;
	
	if( firstname.value.length < plen )
	{
		firstname.style.backgroundColor = "red";
		text.innerHTML                  = "Имя слишком короткое";
		text.style.display              = 'block';
		text.style.color                = "red";
		firstname.focus();
		return false;
	}
	else
	{
		firstname.style.backgroundColor = '#ECE9D8';
		text.style.display              = 'none';
		return true
	
	}
}

function validateForm( form_name )
{
	var emailOK = false;
	var phoneOK = false;
	
	var etext   = document.getElementById( "incorrect_mail" );
	var email   = document.forms[form_name].customer_email;
	var ptext   = document.getElementById( "incorrect_phone" );
	var phone   = document.forms[form_name].customer_phone;
	
	phoneOK = validatePhone( form_name );
	emailOK = validateEmail( form_name );
	
	if( phoneOK && emailOK ) // оба верны
	{
		email.style.backgroundColor = '#ECE9D8';
		phone.style.backgroundColor = '#ECE9D8';
		etext.style.display         = 'none';
		ptext.style.display         = 'none';
		return true;
		
	}
	
	if( phoneOK && !emailOK && etext.value.length == 0) // верен только телефон и не введён емейл
	{
		email.style.backgroundColor = '#ECE9D8';
		etext.style.display         = 'none';
		return true;
		
	}

	if( phoneOK && !emailOK && etext.value.length > 0) // верен только телефон и емейл введён неполностью
	{
		return false;
		
	}
	
	if( !phoneOK && emailOK && phone.value.length == 0) // верен только емейл и телефон не введён
	{
		phone.style.backgroundColor = '#ECE9D8';
		ptext.style.display         = 'none';
		return true;
		
	}

	if( !phoneOK && emailOK && phone.value.length > 0) // верен только емейл и введён неполный телефон
	{
		return false;
		
	}
	
	if( !phoneOK && !emailOK ) // оба неверны
	{
		return false;
		
	}
}

function validateForm2( form_name )
{
	var emailOK     = false;
	var phoneOK     = false;
	var lastnameOK  = false;
	var firstnameOK = false;
	var FIO_OK      = false;
	var contacts_OK = false;
	var etext       = document.getElementById( "incorrect_mail" );
	var email       = document.forms[form_name].customer_email;
	var ptext       = document.getElementById( "incorrect_phone" );
	var phone       = document.forms[form_name].customer_phone;
	var ltext       = document.getElementById( "incorrect_lastname" );
	var lastn       = document.forms[form_name].customer_lastname;
	var ftext       = document.getElementById( "incorrect_firstname" );
	var first       = document.forms[form_name].customer_firstname;
	
	phoneOK = validatePhone( form_name );
	emailOK = validateEmail( form_name );

	firstnameOK = validateFirstname( form_name, 3 );
	lastnameOK  = validateLastname( form_name, 3 );

	if(( lastnameOK ) && ( firstnameOK )) // и имя и фамилия достаточной длины
	{
		lastn.style.backgroundColor = '#ECE9D8';
		ltext.style.display         = 'none';
		phone.style.backgroundColor = '#ECE9D8';
		ftext.style.display         = 'none';
		FIO_OK = true;
		
	}

	if(( lastnameOK ) && ( !firstnameOK )) // только имя достаточное
	{
		lastn.style.backgroundColor = '#ECE9D8';
		ltext.style.display         = 'none';
		FIO_OK = false;
		
	}

	if(( !lastnameOK ) && ( firstnameOK )) // только фамилия достаточная
	{
		phone.style.backgroundColor = '#ECE9D8';
		ftext.style.display         = 'none';
		FIO_OK = false;
		
	}

	if(( !lastnameOK ) && ( !firstnameOK ))  // и имя и фамилия недостаточны
	{
		FIO_OK = false;
		
	}
	
	if(( phoneOK ) && ( emailOK )) // оба верны
	{
		email.style.backgroundColor = '#ECE9D8';
		etext.style.display         = 'none';
		phone.style.backgroundColor = '#ECE9D8';
		ptext.style.display         = 'none';
		contacts_OK = true;
		
	}
	
	if(( phoneOK ) && ( !emailOK )) // верен только телефон
	{
		email.style.backgroundColor = '#ECE9D8';
		etext.style.display         = 'none';
		contacts_OK = true;
		
	}
	
	if(( !phoneOK ) && ( emailOK )) // верен только емейл
	{
		phone.style.backgroundColor = '#ECE9D8';
		ptext.style.display         = 'none';
		contacts_OK = true;
		
	}
	
	if(( !phoneOK ) && ( !emailOK )) // оба неверны
	{
		contacts_OK = false;
		
	}
	
	if(( contacts_OK ) && ( FIO_OK ))
	{
		return true;
	
	}
	else
	{
		return false
	
	}
}

function ajax_url_get(url) {

  url = url.replace('#','');
  if (!http_request) {
    http_request = ajax_create_object();
  } else {
    http_request.abort();
  }
  //alert(url);
  if (http_request) {

    if (http_request.overrideMimeType) {
      http_request.overrideMimeType('text/xml');
    }
    http_request.onreadystatechange = ajax_callback;
    http_request.open('GET',url,true);
    http_request.send(null);
    http_get_url = url;
    ajax_timer_start();
  }
  return (http_request!=null);
}

function ajax_url_post(url, params) {
  if (!http_request) {
    http_request = ajax_create_object();
  } else {
    http_request.abort();
  }

  if (http_request) {

    if (http_request.overrideMimeType) {
      http_request.overrideMimeType('text/xml');
    }
    http_request.open('POST',url,true);
    http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    http_request.setRequestHeader("Content-length", params.length);
    http_request.onreadystatechange = ajax_callback;
    http_request.send(params);
    http_get_url = url;
    ajax_timer_start();
  }
  return (http_request!=null);
}

function ajax_timer_start() {
  ajax_timer = window.setTimeout("ajax_timer_process()", 15000);
  request_lock = true;
}

function ajax_timer_stop() {
  window.clearTimeout(ajax_timer);
  request_lock = false;
}

function ajax_timer_process() {
  //alert('AJAX FAILED '+http_get_url);
  request_lock = false;
}

function ajax_callback() {
  if (http_request.readyState == 4) {
    ajax_timer_stop();
    if (http_request.status == 200) {
      var xml = http_request.responseXML;
      //alert(http_request.responseText);
      try {
        var packet = xml.documentElement.getAttribute('packet');
        //alert(packet);
        if (packet=='category') {
          processProductsList(xml);
        }
        if (packet=='aux') {
          processTextBlock(xml);
        }
        if (packet=='contact_info') {
          processContactInfo(xml);
        }
        if (packet=='address_book') {
          processAddressBook(xml);
        }
        if (packet=='address_editor') {
          processAddressEditor(xml);
        }
        if (packet=='register') {
          processRegister(xml);
        }
        if (packet=='news') {
          processNews(xml);
        }
        if (packet=='spf') {
          return prodList(xml);
        }
        if (packet=='ilinks') {
          return processILinks(xml);
        }
        if (packet=='ilinks2') {
          return processILinks2(xml);
        }
        if (packet=='clients') {
          processClients(xml);
        }				
        ref_url = http_get_url;
      } catch(e) {
        alert(e.message);
      }
    } else {
    //  alert('There was a problem with the request.'+http_request.status);
    }
  }
}

function ajax_submit_form(name, add) {
  //alert(2);
  var f = document.forms[name];
  if (!f) return;

  var res = (add==null)?[]:add;
  for (var i=0; i<f.elements.length; i++) {
    switch(f.elements[i].type.toLowerCase()) {
      case 'checkbox':
      if (f.elements[i].checked) {
        res.push(escape(f.elements[i].name)+'='+encodeURIComponent(f.elements[i].value));
      }
      break;

      default:
      //alert(f.elements[i].value);
      res.push(escape(f.elements[i].name)+'='+encodeURIComponent(f.elements[i].value));
      break;
    }
  }
  if (f.method.toUpperCase()=='POST') {
    ajax_url_post(f.action, res.join('&'));
  }
}



function htmlShowSubmenu1() {
  
  var sm1 = document.getElementById('submenu1');
  var tm = document.getElementById('topmenu');
  
  var top = tm.offsetTop;
  var left = tm.offsetLeft;
  var p = tm;
  while (p = p.offsetParent) {
    top+= p.offsetTop;
    left += p.offsetLeft;
  }
  sm1.style.display = '';
  sm1.style.left = left+121;
  sm1.style.top = top + 34;
  htmlTopMenu = sm1;
}

/**
main.html
*/
function dsClick() {
  htmlMenuClose();

  /*if( openBlock != 0 ) 
  {
    div_obj = document.getElementById(openBlock);
    div_obj.style.display = 'none';
    openBlock = 0;
  } */
}

function documentLoad() {
  htmlAjaxLinks();
}


/**
categories.html
*/
function catsOnLoad() {
  htmlAjaxLinks();
}




function catsShowMenu(event) {
  return htmlMenuOpen('ffx_menu', event);
}

var infoEdit = false;

function editInfo() {
  if (infoEdit) {

    var form = document.forms['cinfo'];
    var values = ['ajax=1','save=Save'];
    for (var i=0; i<form.elements.length; i++) {
      //if (form.elements[i].)
      if (form.elements[i].type.toLowerCase()!='checkbox' || form.elements[i].checked) {
        if (form.elements[i].name) {
          values.push(escape(form.elements[i].name)+'='+escape(form.elements[i].value));
        }
      }
    }
    //alert(values.join('&'));
    ajax_url_post('index.php?contact_info=yes', values.join('&'));
    return;
  }

  var main = document.getElementById('main');
  var it = getElement(main,[0,0]);
  for (var i=0; i<it.rows.length; i++) {
    var r = it.rows[i];
    try {
      r.cells[1].style.display = '';
      r.cells[2].style.display = 'none';
    } catch(e) {

    }
  }
  try {
    var hrefs = document.getElementById('hrefs');
    hrefs.innerHTML = 'Сохранить контактную информацию';
  } catch(e) {
    alert(e.message);
  }
  infoEdit = true;
}

function processNews(xml) {
  
  var news= xml.documentElement.getElementsByTagName('NEWS');
  var pages = xml.documentElement.getAttribute('pages');
  var page = xml.documentElement.getAttribute('page');
  var n = Math.min(news.length, 5);
  
  for (var i=0; i<n; i++) {
    document.getElementById('news_'+(i+1)).style.display = '';
    document.getElementById('news_t_'+(i+1)).innerHTML = news[i].getAttribute('title');
    document.getElementById('news_b_'+(i+1)).innerHTML = news[i].firstChild.nodeValue;
    var ef = document.getElementById('news_i_'+(i+1));
    if (news[i].getAttribute('picture')) {
      ef.style.display = '';
      ef.src = news[i].getAttribute('picture');
    } else {
      ef.style.display = 'none';
    }
    var ef = document.getElementById('news_n_'+(i+1));
    ef.setAttribute('ids', news[i].getAttribute('id'));
    ef.style.display = (pages==-1)?'none':'';
  }
  for (var i=n; i<5; i++) {
    document.getElementById('news_'+(i+1)).style.display = 'none';
  }
  if (pages==-1) {
    document.getElementById('ret').style.display = '';
    document.getElementById('pages').style.display = 'none';
  } 
  if (pages==0) {
    document.getElementById('ret').style.display = 'none';
    document.getElementById('pages').style.display = 'none';
  }
  if (pages>0) {
    
    var ih = '';
    for (var i=0; i<pages; i++) {
      ih += '<a href="#" onclick="showPage('+(i+1)+'); return false;">';
      if (i==page-1) {
        ih+= '<B>'+(i+1)+'</B>';
      } else {
        ih += (i+1);
      }
      ih+= '</a> ';
    }
    document.getElementById('pages').innerHTML = ih;
    document.getElementById('ret').style.display = 'none';
    document.getElementById('pages').style.display = '';
  }
  document.getElementById('page_news').style.display = '';
  document.getElementById('page_title').style.display = 'none';
  document.getElementById('page_body').style.display = 'none';
}

function processRegister(xml) {

  try {

    var res = xml.documentElement.getElementsByTagName('RESULT');
    if (res.length>0) {
      if (res[0].getAttribute('type').toLowerCase()=='error') {
        document.getElementById('errmsg').innerHTML = res[0].firstChild.nodeValue;
      }
      if (res[0].getAttribute('type').toLowerCase()=='success') {
        document.getElementById('rf').innerHTML = '<B>Ну, а теперь, вперед <a href="category_96.html" style="color:blue; text-decoration:underlined">за покупками!</a></B>';
      }
    }

  }catch(e) {
    alert(e.message);
  }

}

function processAddressEditor(xml) {

  try {
    var items = xml.documentElement.getElementsByTagName('ITEM');
    var main = document.getElementById('main');
    var id= xml.documentElement.getAttribute('id');
    var body = '<form name=cinfo action=index.php?'+(id>0?'address_editor='+id:'add_new_address=yes')+' method=POST><table width=100%>';
    for (var i=0; i<items.length; i++) {
      if (items[i].getAttribute('name')=='address') {
        body+= '<tr><td>'+items[i].getAttribute('text')+'</td><td><textarea name='+items[i].getAttribute('name')+' rows=2 cols=20>'+items[i].getAttribute('value')+'</textarea></td></tr>';
      } else {
        body+= '<tr><td>'+items[i].getAttribute('text')+'</td><td><input type=text name='+items[i].getAttribute('name')+' value="'+items[i].getAttribute('value')+'" /></td></tr>';
      }
    }

    var cc = xml.documentElement.getElementsByTagName('C');
    body+= '<tr><td>Страна</td><td><select name=countryID style="width:210px">';
    var ct = '';
    for (var i=0; i<cc.length; i++) {
      c = cc[i];
      ct += '<OPTION value='+c.getAttribute('id')+(c.getAttribute('default')==1?' selected="1"':'')+'>'+c.getAttribute('name')+'</OPTION>';
    }
    body+= ct+'</select></td></tr></table></form><a href=# onclick="ajax_submit_form(\'cinfo\',[\'save=Save\']); return false;" class=shop>Сохранить</a>\
     &nbsp; <a href="#" class=shop onclick="ajax_url_get(\'index.php?address_book=yes&ajax=1\'); return false">Отмена</a>';
    main.innerHTML = body;
  } catch(e) {
    alert(e.message);
  }

}

function processAddressBook(xml) {

  try {
    var items = xml.documentElement.getElementsByTagName('ADDR');
    var main = document.getElementById('main');
    var body = '<form name=cinfo><table width=100%>';
    for (var i=0; i<items.length; i++) {
      var id = items[i].getAttribute('addressID');
      body+= '<tr><td><input onClick="ajax_url_post(\'index.php?address_book=yes\',\'save=Save&ajax=1&DefaultAddress='+id+'\')" type=radio name=DefaultAddress value='+items[i].getAttribute('addressID')+(items[i].getAttribute('default')==1?' checked=1':'')+' />\
      </td><td style="border-bottom:1px solid #cacaca">'+items[i].getAttribute('addressStr')+'</td>\
      <td><a href="#" class=shop onclick="ajax_url_get(\'index.php?address_editor='+id+'&ajax=1\');return false;">Редактировать</a><BR/><a href=# onclick="ajax_url_get(\'index.php?address_book=yes&ajax=1&delete='+id+'\');return false;" class=shop>Удалить</a></td></tr>';
    }
    body+= '</table></form><br /><a href=# onclick="ajax_url_get(\'index.php?ajax=1&add_new_address=yes\');return false;" class=shop>Добавить новый адрес</a>';
    main.innerHTML = body;
  } catch(e) {

  }

}

function processContactInfo(xml) {

  try {
    var items = xml.documentElement.getElementsByTagName('INFO');
    var main = document.getElementById('main');
    var body = '<form name=cinfo><table border=0 width=100%>';
    for (var i=0; i<items.length; ++i) {
      if (items[i].getAttribute('name')=='subscribed4news') {
        body+= '<tr><td>'+items[i].getAttribute('text')+'</td><td style="display:none"><input type=checkbox name="'+items[i].getAttribute('name')+'" '+(items[i].getAttribute('value')==1?' checked="1"':'')+'></td><td><input type=checkbox '+(items[i].getAttribute('value')==1?'checked=1':'')+' disabled/></td></tr>';
      } else {
        body+= '<tr><td>'+items[i].getAttribute('text')+'</td><td style="display:none"><input style="font:10pt; background:none; border:1px solid #dddddd" type=text name="'+items[i].getAttribute('name')+'" value="'+items[i].getAttribute('value')+'"></td><td>'+items[i].getAttribute('value')+'</td></tr>';
      }
    }
    body+= '<tr><td colspan=2 align=center></td></table><BR /><a id="hrefs" align="center" href=# onClick="editInfo(); return false;">Изменить контактную информацию</a></form>';
    main.innerHTML = body;
    infoEdit = false;
  } catch(e) {
    alert(e.message);
  }
}

function processTextBlock(xml) {
  try {
    var text = xml.documentElement.getElementsByTagName('INFTEXT');
    var page = document.getElementById('page_body');
    var title = document.getElementById('page_title');
    if (!text || !page) {
      return;
    }
    page.innerHTML = text.item(0).firstChild.nodeValue;
    title.innerHTML = text.item(0).getAttribute('title');
    
    var news = document.getElementById('page_news');
    if (news) {
      news.style.display = 'none';
      
    }
    
  } catch (e) {

  }
  try {
    document.getElementById('page_news').style.display = 'none';
  } catch (e) {
    
  }
  document.getElementById('page_title').style.display = '';
  document.getElementById('page_body').style.display = '';
}

function processClients(xml) {
//12345
}
function processProductsList(xml) {
  var products = xml.documentElement.getElementsByTagName('PRODUCT');
  if (!products) {
    //return false;
    var productsCount = 0;
    var productsRows = 0;
  } else {

    var productsCount = products.length;
    var productsRows = Math.ceil( productsCount/2 );
  }
  
  var tbl = document.getElementById('products_list');
  if (!tbl/* || productsCount<1*/) {
    return false;
  }
  var currentProducts = (tbl.rows.length-htmlBtmRows-2)/2;
  if (productsRows>=currentProducts) {
    // строк меньше или равно(возможно скрыты), чем надо
    var delim = tbl.rows[2].cloneNode(true);
    var block = tbl.rows[1].cloneNode(true);

    try {
      for (var i=0, tmpLen=(productsRows-currentProducts); i<tmpLen; i++) {
        tbl.rows[0].parentNode.insertBefore(delim.cloneNode(true), tbl.rows[tbl.rows.length-htmlBtmRows-1]);//3
        tbl.rows[0].parentNode.insertBefore(block.cloneNode(true), tbl.rows[tbl.rows.length-htmlBtmRows-2]);//4
      }
      for (var i=1, tmpLen=tbl.rows.length; i<tmpLen; (++i==tmpLen-htmlBtmRows-2)?(i=tmpLen-1):0) {
        tbl.rows[i].style.display = (i==tmpLen-htmlBtmRows-1)?'none':'';
      }
    } catch(e) {
      alert(e.message);
    }
  } else if (productsRows<currentProducts) {
    // строк больше, чем продуктов
    for (var i=Math.max(1,productsRows*2), tmpLen=currentProducts*2; i<tmpLen; ++i) {
      tbl.rows[i].style.display = 'none';
    }
    for (var i=1, tmpLen=productsRows*2; i<tmpLen; ++i) {
      tbl.rows[i].style.display = '';
    }
  }
	
  // заменяем содержимое
	if( null != document.getElementById( k ) )
	{ 
		for(var k=0; k<12; ++k) 
		{
			alin = document.getElementById( k );
			alin.href='';
			alin.innerHTML='';
			alin.style.display = 'none';
		}


  		for (var l=0; l<productsCount; ++l) 
		{
			alin = document.getElementById( l );
			alin.href='product_'+products[l].getAttribute('productID')+'.html';
			alin.innerHTML=products[l]?products[l].getAttribute('name'):'&nbsp;';
			alin.style.display = '';
		}
	}	

  for (var i=0; i<productsRows; ++i) {
	for (var j=0; j<2; ++j) {
      try {
        var iTbl = getElement(tbl,[1+i*2,1+j*2,0]);
		
        var imgSrc = products[i*2+j]?products[i*2+j].getAttribute('thumbnail'):null;
        getElement(iTbl, [0,0,0,0]).src = (!imgSrc || imgSrc=="0")?'images/tmpl100/spacer.gif':'products_pictures/'+imgSrc;
        getElement(iTbl, [0,0,0]).href = products[i*2+j]?'product_'+products[i*2+j].getAttribute('productID')+'.html':'#';
        if (products[i*2+j]) {
          with (getElement(iTbl, [2,0,0,0,1,0])) {
            href = 'product_'+products[i*2+j].getAttribute('productID')+'.html';
            style.display = '';
          }
          with(getElement(iTbl, [2,0,0,0,1,2])) {
            href = 'cart.php?addproduct='+products[i*2+j].getAttribute('productID');
            style.display = '';
          }
        } else {
          getElement(iTbl, [2,0,0,0,1,0]).style.display = 'none';
          getElement(iTbl, [2,0,0,0,1,2]).style.display = 'none';
        }
        getElement(iTbl, [1,0]).innerHTML = products[i*2+j]?products[i*2+j].getAttribute('name'):'&nbsp;';
        getElement(iTbl, [2,0,0,0,0,0]).innerHTML = products[i*2+j]?products[i*2+j].getAttribute('PriceWithUnit'):'&nbsp;';
      } catch(e) {
        alert('Process XML (HTML) \n'+e.message);
      }
    }
  }

  // pages
  var pages = parseInt(xml.documentElement.getAttribute('pages'));
  var page  = parseInt(xml.documentElement.getAttribute('page'));
  var url   = xml.documentElement.getAttribute('url') ;
  var urlAjax = url.replace('<EXT>', 'ajax');
  var urlHtml = url.replace('<EXT>', 'html');
  
  
  
  var pageText = '';
  var style = {onclick:"ajax_url_get(this.href)"};
  if (pages > 1) {
    tbl.rows[tbl.rows.length-3].style.display = '';
    tbl.rows[tbl.rows.length-2].style.display = '';

    if (page>0) {
      pageText += ahref(urlHtml.replace('<PAGE>',page-1 ), '[ Предыдущая ]', {className:"shop",onclick:"ajax_url_get('"+urlAjax.replace('<PAGE>',0)+"')"}); //'javascript:ajax_url_get("'+url.replace('<PAGE>', (page-1))+'")','dd','wwwwwwww','sss');
    }
    for (var i=0; i<pages; ++i) {
      if (i==page) {
        pageText += ' <B>'+(i+1)+'</B> ';
      } else {
        pageText += ' '+ahref(urlHtml.replace('<PAGE>', i), i+1, {className:"shop", onclick:"ajax_url_get('"+urlAjax.replace('<PAGE>',i)+"')"})+' ';//'javascript:ajax_url_get("'+url.replace('<PAGE>', i)+'")', i, 'wwww','sss');
      }
    }
    if (page<pages-1) {
      pageText += ahref(urlHtml.replace('<PAGE>', page+1), '[ Следующая ]', {className:"shop", onclick:"ajax_url_get('"+urlAjax.replace('<PAGE>',page+1)+"')"});
    }
    with (tbl.rows[tbl.rows.length-2].cells[1]) {
      innerHTML = pageText;
    }
  } else if (productsCount==0) {
    tbl.rows[tbl.rows.length-3].style.display = 'none';
    tbl.rows[tbl.rows.length-2].style.display = '';
    tbl.rows[tbl.rows.length-2].cells[1].innerHTML = 'В данном разделе не представлены нужные Вам товары';
  } else {
    tbl.rows[tbl.rows.length-3].style.display = 'none';
    tbl.rows[tbl.rows.length-2].style.display = 'none';
  }
}

function prodList(xml) {
  
  var items = xml.documentElement.getElementsByTagName('P');
  var sf = document.getElementById('ptProdList');
  var spt = '';
  for (var i=0; i<items.length; i++) {
    var id = items[i].getAttribute('id');
    var name = items[i].firstChild.nodeValue;
    spt += '<a href="product_'+id+'.html" class="tlink">'+name+'</a><BR />'
  }
  sf.innerHTML = spt;
}

function ahref(url, text) {
  var onClick = (ahref.arguments.length==3)?ahref.arguments[2].onclick:'';
  var className = (ahref.arguments.length==3)?ahref.arguments[2].className:'';
  return '<a href="'+url+'" '+(onClick?'onclick="'+onClick+'; return false;"':'')+' '+(className?"class='"+className+"'":"")+'>'+text+'</a>';
}


/**
cart.html
*/
function addToCart(element, rl) {

  var pos = -1;
  var id = 0;
  if (-1==(pos = element.href.indexOf('addproduct='))) {
    return true;
  } else {
    id = parseInt(element.href.substr(pos+11));
    //get referer
    if (ref_url=="") {
      ref_url = document.location.href;
    }
    if (ref_url.indexOf('#')>-1) {
      ref_url = ref_url.substr(0, ref_url.indexOf('#'));
    }
    try {
      var p2, p1 = ref_url.indexOf('?');
      var ext="";
      var script = ref_url.substr(0, (p1==-1)?ref_url.length:p1);
      script = script.substr(script.lastIndexOf('/')+1);
      if ((p2 = script.indexOf('.'))>-1) {
        ext = script.substr(p2+1);
        script = script.substr(0, p2);
      }
      if (ext=="ajax" || ext=="html") {
        var exstr = script.replace('_',':');
      } else {
        var params = ref_url.substr(p1+1);
        var ps = [];
        if ((p2 = params.indexOf('categoryID='))>-1) {
          ps.push('category:'+parseInt(params.substr(p2+11)));
        }
        if ((p2 = params.indexOf('productID='))>-1) {
          ps.push('product:'+parseInt(params.substr(p2+10)));
        }
        if ((p2 = params.indexOf('search_name='))>-1) {
          var p3 = params.indexOf('&', p2+1);
          if (p3==-1) p3=params.length;
          ps.push('search:'+params.substr(p2+12,p3-p2-12));
        }
        var exstr = ps.join('|');
      }

    } catch(e) {
      alert(e.message);
    }
    var extra = document.forms['extra'];
    var extra_str = '';
    if (extra) {

      var p = element;
      while(p = p.parentNode) {
        if (p.tagName=='FORM') {
          for (var i=0; i<extra.elements.length; i++) {
            extra_str+= '&'+extra.elements[i].name+'='+extra.elements[i].value;
          }
          break;
        }
      }
    }
    if (rl!='') extra_str+= '&rl='+rl;
    //window.open("cart.php?addproduct="+id,"cart_window", "statusbar,menubar,HEIGHT=400,WIDTH=300");
    //alert('cart.php?addproduct='+id+extra_str+'&ref='+exstr);
    document.location =  'cart.php?addproduct='+id+extra_str+'&ref='+exstr;
    //document.location = 'cart.php?addproduct='+id+'&ref='+exstr;
    return false;
  }
}

function catFilter(param) {
  
  var items = document.getElementsByName('f_letter');
  for (var i=0; i<items.length; ++i) {
    var className = items[i].className.replace('_selected','');
    if (items[i].getAttribute('param')==param) {
      items[i].className = className+'_selected';
    } else {
      items[i].className = className;
    }
  }
  
  var pt = document.getElementById('ptCatsList');
  if (pt) {
    for (var i=0; i<pt.childNodes.length; i++) {
      if (pt.childNodes[i].nodeType==1) {
        pt.childNodes[i].style.display = (pt.childNodes[i].getAttribute('letter')==param)?'':'none';
      }
    }
  }
  setCookieParam('f_letter', param);
  if (param) {
    ajax_url_get('index.php?catInfo='+topLevelCatID+'&ajax=1');
  } else {
    document.getElementById('ptProdList').innerHTML = '';
  }
  return param;
}


function setFilter(obj) {//name, value) {
  
  var paramValue = (arguments.length==2)?arguments[1]:obj.getAttribute('param');
  var paramName = obj.getAttribute('name');
  var items = document.getElementsByName(paramName);
  for (var i=0; i<items.length; ++i) {
    var className = items[i].className.replace('_selected','');
    if (items[i].getAttribute('param')==paramValue) {
      items[i].className = className+'_selected';
    } else {
      items[i].className = className;
    }
  }
  setCookieParam(paramName, paramValue);
  
  var url = http_get_url?http_get_url:String(document.location);
  ajax_url_get(url.replace('.html','.ajax'));

  
  
  
  return;
  setCookieParam(name,value); 
  var su=http_get_url?http_get_url:String(document.location); 
  ajax_url_get(su.replace('.html','.ajax'));
  
  if (name=='fbs') {
    var f = document.getElementById('f_fbs_'+value);
    f.style.background='#BDC789';
    f.style.color='white';
    
    var f = document.getElementById('f_fbs_'+(3-value));
    f.style.background='';
    f.style.color='orange';
  }
}


function document_onClick(event) {
  htmlMenuClose();
}

function searchText(form) {
  var url = ['ajax=1'];
  for (var i=0; i<form.elements.length; i++) {
    try {
      url.push(form.elements[i].name+'='+form.elements[i].value);
    } catch (e) {

    }
  }
  var urlString = encodeURI(url.join("&"));
  if (urlString) {
    return !ajax_url_get('index.php?'+urlString);
  }
  return true;
}


function fix_image(img) {

  // 153*119
  if (!img) {
    return false;
  }
  if (!img.width || !img.height) {
    try {
      img.width = 153;
      img.height = 119;
    } catch(e) {

    }
  } else {
    try {
      img.style.height = '';
      img.style.width = '';
      var kf = Math.min(153/img.width,119/img.height);
      if (kf<1) {
      img.style.width=Math.min(153,Math.floor(kf*img.width));
      img.style.height=Math.min(119,Math.floor(kf*img.height));
      }
    } catch(e) {
    }
  }
}

function cellHref(obj) {
  try {
    document.location = getElement(obj,[0]).href;
  } catch(e) {
  }
}

function setChoice(choiceId, name, valueID, priceValue) {
  document.getElementById('prod_name_'+choiceId).innerHTML = name;
  var hidden = eval("document.forms['extra'].option_select_hidden_"+choiceId);
  var currPrice = parseFloat(hidden.getAttribute('price'));
  var getP = /^(\D*)([0-9,\.]+)(.*)$/i;
  var price = getP.exec(document.getElementById('currentPrice').innerHTML);
  var value = parseFloat(price[2].replace(',',''));
  //alert(value+' - '+currPrice);
  value -= currPrice;
  value += parseFloat(priceValue);
  value = value.toFixed(2);
  //alert(value);
  var newPrice = value.substr(value.length-3);
  var i=2;
  while((value.length-3*i)>0) {
    newPrice = ','+value.substr(value.length-3*i,3)+newPrice;
    ++i;
  }
  newPrice = value.substr(0, value.length-3*(i-1))+newPrice;
  document.getElementById('currentPrice').innerHTML = price[1]+newPrice+price[3];
  document.getElementById('sm_'+choiceId+'_'+hidden.value).style.fontWeight = "normal";
  document.getElementById('sm_'+choiceId+'_'+valueID).style.fontWeight = "bold";
  hidden.value= valueID;
  hidden.setAttribute('price', priceValue);
}

function loadlink( url )
{
  window.location = url;

}

function getBodyScrollTop()
{
    return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getBodyScrollLeft()
{
    return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}

function getClientWidth()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}

function getClientHeight()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}

function getScreenSize(s)
{
  if (s == SCREEN_X)
  {
    if (bIE) return document.body.offsetWidth;

    return window.innerWidth;
  }
  else
  {
    if (bIE) return document.body.offsetHeight;

    return window.innerHeight;
  }
}

function enlargeThis( obj_id )
{
  if( openBlock != 0 ) 
  {
    var div_obj = document.getElementById(openBlock);
    if( div_obj.style.display == '' )
    {
      div_obj.style.display = 'none';
      openBlock = 0;
    }
  }

  var div_num = document.getElementById( obj_id );
  if( div_num.style.display == 'none' ) 
  {
    div_num.style.display = '';
    div_num.style.top     = parseInt(( getScreenSize( SCREEN_Y ) - div_num.offsetHeight ) / 2) + getBodyScrollTop();
    div_num.style.left    = parseInt(( getScreenSize( SCREEN_X ) - div_num.offsetWidth ) / 2) + getBodyScrollLeft();
    openBlock = obj_id;
  }

}

function closeThis( obj_id )
{
  var div_num = document.getElementById( obj_id );
  if( div_num.style.display == '' ) 
  {
    div_num.style.display = 'none';
    openBlock = 0;
  }
  
}

function showPrices( obj_id, title_in, title_out )
{
  var obj_num = document.getElementById( obj_id );
  var span_num = document.getElementById( 'span_' + obj_id );
  
  if( obj_num.style.display == 'none' )
  {
    obj_num.style.display = '';
    span_num.innerHTML = title_out;
  }
  else 
  {
    obj_num.style.display = 'none';
    span_num.innerHTML = title_in;
  }
}

function hidePrices( obj_id )
{
  var obj_num = document.getElementById( obj_id );
  if( obj_num.style.display == '' ) obj_num.style.display = 'none';

}

function ilinksStartTimer() {
  setTimeout('ilinksRefresh()', ilinksTime);
  //setTimeout('ilinks2Refresh()', ilinks2Time);
}

function ilinksRefresh() {
  if (!request_lock) {
    ajax_url_get('index.php?ilinks=1&ajax=1');
  } else {
    ilinksStartTimer();
  }
}

function ilinks2Refresh() {
  if (!request_lock) {
    ajax_url_get('index.php?ilinks2=1&ajax=1');
  } else {
    ilinksStartTimer();
  }
}

function processILinks(xml) {
  
  var ilinks = xml.documentElement.getElementsByTagName('banner');
  for (var i=0; i<3; ++i) {
    if (ilinks[i] && ilinks[i].firstChild) {
      try {
        document.getElementById('ilink'+i).innerHTML = ilinks[i].firstChild.nodeValue;
      } catch(e) {
        
      }
    }
  }

  var ilinks2 = xml.documentElement.getElementsByTagName('banner2');
  for (var i=0; i<2; ++i) {
    if (ilinks2[i] && ilinks2[i].firstChild) {
      try {
        document.getElementById('ilink2'+i).innerHTML = ilinks2[i].firstChild.nodeValue;
      } catch(e) {
        
      }
    }
  }  
  ilinksStartTimer();
}

function isEmpty( s )
{
  var i;

  if(( s == null ) || ( s.length == 0 ))
    return true;
    
  for( i = 0; i < s.length; i++ )
  {
    var c = s.charAt(i);
    if( whitespace.indexOf(c) == -1 )
      return false;

  }
  return true;

}

function CheckRaritet()
{

  if( isEmpty( document.raritet.brand.value ))
  {
    alert('Не заполнено поле «Название бренда»');
    document.raritet.brand.focus();
    return false;    
  
  }    

  if( isEmpty( document.raritet.aroma.value ))
  {
    alert('Не заполнено поле «Название аромата»');
    document.raritet.aroma.focus();
    return false;    
  
  }
  
  if( isEmpty( document.raritet.description.value ))
  {
    alert('Вы не заполнили описание');
    document.raritet.description.focus();
    return false;    
  
  }
  
  if( isEmpty( document.raritet.fio.value ))
  {
    alert('Вы не указали фамилию, имя и отчество.');
    document.raritet.fio.focus();
    return false;
  
  }

  if( isEmpty( document.raritet.phone.value ))
  {
    alert('Вы не указали контактный телефон.');
    document.raritet.phone.focus();
    return false;

  
  }

  if( isEmpty( document.raritet.date.value ))
  {
    alert('Вы не указали срок действия заявки.');
    document.raritet.date.focus();
    return false;

  
  }
  alert('7');
  
  return true

}

function CheckWishes()
{
  var send;
  
  if( isEmpty( document.wish.fio.value ))
  {
    alert('Вы не указали фамилию, имя и отчество.');
    document.wish.fio.focus();
    return false;
  
  }

  if( isEmpty( document.wish.wishtext.value ))
  {
    alert('Вы не указали контактный телефон.');
    document.wish.phone.focus();
    return false;
  
  }

  if( isEmpty( document.wish.phone.value ))
  {
    alert('Вы не указали контактный телефон.');
    document.wish.phone.focus();
    return false;
  
  }

  alert('7');
  
  //if( send != false )
    return true
  //else
  //  return false;

}

function ShowPhone()
{
  c = document.getElementById( 'theme' );
  d = document.getElementById( 'visphone' );
  e = document.getElementById( 'visphrase' );

  if( c.selectedIndex == 0 )
  {
    d.style.display = '';
    e.style.display = '';

  }
  else 
  {
    d.style.display = 'none';
    e.style.display = 'none';
    
  }
}

ilinksStartTimer();
