/*
	AJAX FILE FOR THIS SITE
	by Dantalion & many books :)
*/

var httpRequest = '';
var resultId = '';
var articulID = '';
var myAjax = null;

function parseOptionsList( dom ) {
  var optiones = document.backetformnew.option;
  optiones.innerHTML = '';
  var nl = dom.responseXML.getElementsByTagName( 'option' );
  for( var i = 0; i < nl.length; i++ ) 
  {
 	var nli = nl.item( i );
    var op_id = nli.getAttribute( 'op_id' );
    var op_name = nli.getAttribute( 'op_name' );
    if (op_name == 'Все')
    {
    	op_id = 'all';
    }
    optiones.options[i] = new Option(op_name,op_id);
  }
  optiones.disabled = 0;
  optiones.focus();
}

function getOptionsList(secid)
{
  new Ajax.Request('/getsections/' + secid + '/', {method: 'get', onSuccess: parseOptionsList});
}

function parsePricesList( dom ) {
  var optiones = document.backetformnew.price;
  optiones.innerHTML = '';
  var nl = dom.responseXML.getElementsByTagName( 'item' );
  for( var i = 0; i < nl.length; i++ ) 
  {
 	var nli = nl.item( i );
    var pitem_id = nli.getAttribute( 'item_id' );
    var pname = nli.getAttribute( 'name' );
    optiones.options[i] = new Option(pname,pitem_id);
  }
  optiones.disabled = 0;
  optiones.focus();
}

function getPricesList(secid, opid)
{
  new Ajax.Request('/getsections/' + secid + '/' + opid + '/', {method: 'get', onSuccess: parsePricesList});
}

function viewbigfotos()
{
	window.open('/popupimage/' + articulID + '/','_blank','toolbar=no,scrollbars=no,directories=no,status=no,menubar=no,location=no,width=200,height=200'); 
}

function parsePriceInfo( dom ) {
  var optiones = document.getElementById('iteminfo');
  var nl = dom.responseXML.getElementsByTagName( 'item' );
  var toblock = '';
  for( var i = 0; i < nl.length; i++ ) 
  {
 	var nli = nl.item( i );
    var item_id = nli.getAttribute( 'item_id' );
    var names = nli.getAttribute( 'name' );
    var cost = nli.getAttribute( 'cost' );
    var sklad = nli.getAttribute( 'sklad' );
    var guaranty = nli.getAttribute( 'guaranty' );
    var photo = nli.getAttribute( 'photo' );
    var articul = nli.getAttribute( 'articul' );
    var sec_name = nli.getAttribute( 'sec_name' );
    var op_name = nli.getAttribute( 'op_name' );
    var costtype = nli.getAttribute( 'costtype' );
    
    if(sklad == '+'){ sklad = 'имеется в наличии'; }
    else if(sklad == '-'){ sklad = 'отсутствует на складе'; }
    else if(sklad == 'Ожд'){ sklad = 'ожидается'; }
    else {sklad = 'только под заказ';}
    
    if(costtype == 'cost_1'){ cost = cost + ' грн. (нал.)'; }
    else if (costtype == 'cost_2'){ cost = '$ ' + cost; }
    else { cost = cost + ' грн. (б/н.)'; }
    
    toblock += '<a href="/sections/' + document.backetformnew.section.value + '/" target="_blank">' + sec_name + '</a> : <a href="/sections/' + document.backetformnew.section.value + '/' + document.backetformnew.option.value + '/" target="_blank">' + op_name + '</a>'
    toblock += '<hr size="1" height="1px" color="#000000" noshade />';
    toblock += '<b>' + names + '</b>';
    toblock += '<hr size="1" height="1px" color="#000000" noshade />';
    toblock += '<b>Гарантия: </b>' + guaranty + ' мес. <br />';
    toblock += '<b>Склад: ' + sklad + '</b><br />';
    toblock += '<b>Цена: </b>' + cost;
    
	var imgA = new Object();
	
	articulID = articul;
	imgA['tovarimage'] = new Image(120, 120);
	imgA['close'] = new Image(120, 100);
	imgA['close'].src = "/templates/images/no_photo.gif";
	
    optiones.innerHTML = toblock;
    thImage = document.getElementById('itemimg');
    if(photo == 1)
    {
    	imgA['tovarimage'].src = '/data/pr_photo/small/' + articul + '.jpg';
    	thImage.src = imgA['tovarimage'].src;
    	if (window.addEventListener)
    	{
    		thImage.addEventListener('click', viewbigfotos , false);
    	}
    	else
    	{
			if(!("attachEvent" in thImage))
			{
    			thImage.attachEvent('onclick', viewbigfotos );
			}
    	}
    }
    else
    {
    	thImage.src = imgA['close'].src;
    }
    /*
    optiones.options[i] = new Option(pname,pitem_id);
    */
  }
}

function getPriceInfo(secid, opid, itemid)
{
  new Ajax.Request('/getsections/' + secid + '/' + opid + '/' + itemid + '/', {method: 'get', onSuccess: parsePriceInfo});
}

function parsePriceInfos( dom ) {
  var optiones = parent.getElementById('iteminfo');
  var nl = dom.responseXML.getElementsByTagName( 'item' );
  var toblock = '';
  for( var i = 0; i < nl.length; i++ ) 
  {
 	var nli = nl.item( i );
    var item_id = nli.getAttribute( 'item_id' );
    var names = nli.getAttribute( 'name' );
    var cost = nli.getAttribute( 'cost' );
    var sklad = nli.getAttribute( 'sklad' );
    var guaranty = nli.getAttribute( 'guaranty' );
    var photo = nli.getAttribute( 'photo' );
    var articul = nli.getAttribute( 'articul' );
    var sec_name = nli.getAttribute( 'sec_name' );
    var op_name = nli.getAttribute( 'op_name' );
    var costtype = nli.getAttribute( 'costtype' );
    
    if(sklad == '+'){ sklad = 'имеется в наличии'; }
    else if(sklad == '-'){ sklad = 'отсутствует на складе'; }
    else if(sklad == 'Ожд'){ sklad = 'ожидается'; }
    else {sklad = 'только под заказ';}
    
    if(costtype == 'cost_1'){ cost = cost + ' грн. (нал.)'; }
    else if (costtype == 'cost_2'){ cost = '$ ' + cost; }
    else { cost = cost + ' грн. (б/н.)'; }
    
    toblock += '<a href="/sections/' + parent.backetformnew.section.value + '/" target="_blank">' + sec_name + '</a> : <a href="/sections/' + parent.backetformnew.section.value + '/' + parent.backetformnew.option.value + '/" target="_blank">' + op_name + '</a>'
    toblock += '<hr size="1" height="1px" color="#000000" noshade />';
    toblock += '<b>' + names + '</b>';
    toblock += '<hr size="1" height="1px" color="#000000" noshade />';
    toblock += '<b>Гарантия: </b>' + guaranty + ' мес. <br />';
    toblock += '<b>Склад: ' + sklad + '</b><br />';
    toblock += '<b>Цена: </b>' + cost;
    
	var imgA = new Object();
	
	articulID = articul;
	imgA['tovarimage'] = new Image(120, 120);
	imgA['close'] = new Image(120, 100);
	imgA['close'].src = "/templates/images/no_photo.gif";
	
    optiones.innerHTML = toblock;
    thImage = parent.getElementById('itemimg');
    if(photo == 1)
    {
    	imgA['tovarimage'].src = '/data/pr_photo/small/' + articul + '.jpg';
    	thImage.src = imgA['tovarimage'].src;
    	if (window.addEventListener)
    	{
    		thImage.addEventListener('click', viewbigfotos , false);
    	}
    	else
    	{
			if(!("attachEvent" in thImage))
			{
    			thImage.attachEvent('onclick', viewbigfotos );
			}
    	}
    }
    else
    {
    	thImage.src = imgA['close'].src;
    }
  }
}

function getPriceInfos(secid, opid, itemid)
{
  new Ajax.Request('/getsections/' + secid + '/' + opid + '/' + itemid + '/', {method: 'get', onSuccess: parsePriceInfos});
}

function roundnumber (n, d) {
  n = n - 0;
  if (d == null) d = 2;
  var f = Math.pow(10, d);
  n += Math.pow(10, - (d + 1));
  n = Math.round(n * f) / f;
  n += Math.pow(10, - (d + 1));
  n += '';
  return d == 0 ? n.substring(0, n.indexOf('.')) :  n.substring(0, n.indexOf('.') + d + 1);
}

function summaAll()
{
	var sum = 0;
	var obj1 = Math.round(document.getElementById('summa_1').value*100)/100;
	var obj2 = Math.round(document.getElementById('summa_2').value*100)/100; 
	sum = obj1 + obj2;
	document.getElementById('allsumma').value = Math.round(sum*100)/100;
}

function summatype( type )
{
	var obj = document.getElementsByName('cena' + type + '[]'); 
	var sum = 0;
	for (var i = 0; i < obj.length; i++)
	{
		sum += Math.round(obj[i].value*100)/100;
	}
	var obj = document.getElementById('summa_' + type); 
	obj.value = Math.round(sum*100)/100;
	summaAll();
}

function getItemPrice( dom )
{
  var nl = dom.responseXML.getElementsByTagName( 'item' ).item(0); 
  var section = nl.getAttribute( 'section' );
  var type = nl.getAttribute( 'type' );
  var cost = nl.getAttribute( 'cost' );
  var obj = document.getElementById(type + 'to' + section); 
  obj.value = cost;
  summatype( type );
}

function getItemPrices( itemid, ind, type )
{
	if(itemid > 0)
	{
		myAjax = new Ajax.Request('/calculator/' + itemid + '/', {method: 'get', parameters: 'ind='+ind, asynchronous: true, onSuccess: getItemPrice});
	}
	else
	{
	var obj = document.getElementById(type + 'to' + ind); 
		obj.value = '0';
		summatype( type );
	}
}

function prepareConfiguration( dom )
{
  var objform = document.calcform;
  var nl = dom.responseXML.getElementsByTagName( 'item' );
  for( var i = 0; i < nl.length; i++ ) 
  {
 	var nli = nl.item( i );
    var section = nli.getAttribute( 'section' );
    var iditem = nli.getAttribute( 'iditem' );
    var cost = nli.getAttribute( 'cost' );
    var type = nli.getAttribute( 'type' );
    var index = nli.getAttribute( 'index' );
    
    objform['product[' + section + ']'].value = iditem;
    document.getElementById(type + 'to' + index).value = cost; 
    summatype( type );
  }
  summaAll();
}

function getPreparedConf( confid )
{
	new Ajax.Request('/calculator/getbyconf/' + confid + '/', {method: 'get', asynchronous: true, onSuccess: prepareConfiguration});	
}

function switchCostSelectBox ( obj ) {
	ajax_switch_cost( obj );
}

function ajax_switch_cost ( obj ) {
	var new_cost = obj.options[obj.selectedIndex].value;
	if( $('basket_old_cost').value != new_cost ) {
		$('basket_message').show();
		$('basket_message').innerHTML = "Денежная единица изменяется";
		new Ajax.Request('/ajax/basket/?switch&new_cost=' + new_cost, {
			method: 'post', 
			asynchronous: true, 
			onSuccess: function ( dom ) {
				eval( dom.responseText );
				if( responsedata ) {
					if ( responsedata.errormsg ) {
						alert( responsedata.errormsg );
					}
					if ( responsedata.tovars ) {
						var tovars = responsedata.tovars[0];		
						for (key in tovars) {
							$('cena_' + key).innerHTML = tovars[key][0].cena;
							$('old_count_' + key).value = tovars[key][0].count;
							$('pcount_' + key).value = tovars[key][0].count;
							$('summa_' + key).innerHTML = tovars[key][0].summa;
						}
						$('basket_old_cost').value = new_cost;
						$('basket_fullsumma').innerHTML = responsedata.fullsumma;
					    $('basket_message').innerHTML = "Денежная единица успешно изменена";
					    obj.className = 'select_user ' + new_cost;
					}
					setTimeout("ajax_message()", 1000);
				}
			}	
		});
	}
}

function ajax_delete ( id ) {
	$('basket_message').show();
	$('basket_message').innerHTML = "Товар удаляется";
	new Ajax.Request('/ajax/basket/?delete&tovar&id=' + id, {
		method: 'post', 
		asynchronous: true, 
		onSuccess: function ( dom ) {
			eval( dom.responseText );
			if( responsedata ) {
				if ( responsedata.errormsg ) {
					alert( responsedata.errormsg );
				}
				if ( responsedata.id ) {
				    $("row_" + parseInt(responsedata.id)).remove();
				    $('basket_fullsumma').innerHTML = responsedata.fullsumma;
				    $('basket_message').innerHTML = "Товар успешно удален";
				    setTimeout("ajax_message()", 1000);
				}
			}
		}	
	});
}

function ajax_message () {
	$('basket_message').hide();
	return false;
}

function basket_add_hide () {
	$('basket_add_body').remove();
	$('basket_add_header').remove();
	location.href = $('basket_form').action;
}

function field_to_error ( field, error ) {
	var f = $('auth_' + field);	
		f.addClassName('label_error');
		f.focus();
		$('auth_' + field + '_error').innerHTML = error;
		$('auth_' + field + '_error').show();	
}

function field_from_error ( field ) {
	var f = $('auth_' + field);	
	if( f.hasClassName('label_error') ) {
		$('auth_' + field + '_error').hide();
		f.removeClassName('label_error');
	}	
}

function check_auth_ajax_field ( field ) {
	var e = new Array();
		e['username'] = 'Имя пользователя не указано';
		e['password'] = 'Пароль пользователя не указан';
	var f = $('auth_' + field);
	if( f ) {
		field_from_error ( field );
		if( f.value.length <= 3 ) {
			field_to_error ( field, e[field] );
			return false;
		}
		return true;
	}
	return false;
}

function ajax_login () {
	if( check_auth_ajax_field( 'username' ) && check_auth_ajax_field('password') ) {
		new Ajax.Request('/ajax/login', {
			method: 'post', 
			parameters: 'username=' + $('auth_username').value + '&password=' + $('auth_password').value + ( $('auth_remember').checked ? '&remember' : '' ),
			asynchronous: true, 
			onLoading: function () {
				$('authsformtable').style.background = 'url(/images/img/ajax-loader-2.gif) no-repeat center center #fff'
			},
			onSuccess: function ( dom ) {
				$('authsformtable').style.background = 'none #fff'
				eval( dom.responseText );
				if( responsedata ) {
					if( responsedata.errormsg ) {
						alert( responsedata.errormsg );
					}
					if( responsedata.error ) {
						for (key in responsedata.error[0]) {
							if( responsedata.error[0][key] ) field_to_error ( key, responsedata.error[0][key] );
						}
					} else {
						if( responsedata.fullsumma && responsedata.fullcount ) {
							$('backet').innerHTML = 'В корзине <b>' + responsedata.fullcount + '</b> товаров на сумму <b>' + responsedata.fullsumma + '</b>';
						}
						if( responsedata.username ) {
							$('auth_login_info').innerHTML = '<a href="/fromto/"><img src="/templates/images/orders.gif" border="0px" align="absmiddle" /> Взаиморасчёты</a><br /><a href="/profile/"><img src="/templates/images/profile.gif" border="0px" align="absmiddle" /> Профиль</a><br /><a href="/exit/"><img src="/templates/images/exit.gif" border="0px" align="absmiddle" /> Выход</a>';
							$('auth_welcome').innerHTML = '<b>Привет, ' + responsedata.username + '</b>';
						}
						$('authsform').style.display = "none";
					}
				}
			}	
		});		
	}
	return false;
}

function ajax_count_summa( obj ) {
	var name = /count\[(\d+)\]/;
	var cnt_match = /^(\d+)$/;
	var arr = name.exec(obj.name);
	var id = arr[1];
	
	if( !cnt_match.test (obj.value) ) {
		alert(obj.value + ' - не является числом!');
		obj.value = $('old_count_' + id).value;
		return false;
	}
	
	if( $('old_count_' + id).value != obj.value ) {
		$('basket_message').show();
		$('basket_message').innerHTML = "Количество товаров обновляется";
		new Ajax.Request('/ajax/basket/?calculate&tovar&id=' + id + '&count=' + obj.value, {
			method: 'post', 
			asynchronous: true, 
			onSuccess: function ( dom ) {
				eval( dom.responseText );
				if( responsedata ) {
					if ( responsedata.errormsg ) {
						alert( responsedata.errormsg );
					}
					if ( responsedata.id ) {
						if( responsedata.summa ) {
							$('summa_' + responsedata.id).innerHTML = responsedata.summa;
							$('old_count_' + responsedata.id).value = obj.value;
							$('basket_fullsumma').innerHTML = responsedata.fullsumma;
						    $('basket_message').innerHTML = "Количество товаров обновлено";
						}
						if( responsedata.removed ) {
						    $("row_" + parseInt(responsedata.id)).remove();
						    $('basket_fullsumma').innerHTML = responsedata.fullsumma;
						    $('basket_message').innerHTML = "Товар успешно удален";
						}
						setTimeout("ajax_message()", 5000);
					}
				}
			}	
		});
	}
}