

var DDSPEED = 8;
var DDTIMER = 15;

// main function to handle the mouse events //
function ddMenu(id,dir) {
  var head = document.getElementById(id + '-ddheader');
  var cont = document.getElementById(id + '-ddcontent');
  clearInterval(cont.timer);
  if(dir == 1) {
    clearTimeout(head.timer);
    if(cont.maxh && cont.maxh <= cont.offsetHeight) {
      return;
    } else if(!cont.maxh) {
      cont.style.display = 'block';
      cont.style.height = 'auto';
      cont.maxh = cont.offsetHeight;
      cont.style.height = '0px';
    }
    cont.timer = setInterval("ddSlide('" + id + "-ddcontent', 1)", DDTIMER);
  } else {
    head.timer = setTimeout('ddCollapse(\'' + id + '-ddcontent\')', 50);
  }
}

// collapse the menu //
function ddCollapse(id) {
  var cont = document.getElementById(id);
  cont.timer = setInterval("ddSlide('" + id + "', -1)", DDTIMER);
}

// cancel the collapse if a user rolls over the dropdown content //
function cancelHide(id) {
  var head = document.getElementById(id + '-ddheader');
  var cont = document.getElementById(id + '-ddcontent');
  clearTimeout(head.timer);
  clearInterval(cont.timer);
  if(cont.offsetHeight < cont.maxh) {
    cont.timer = setInterval("ddSlide('" + id + "-ddcontent', 1)", DDTIMER);
  }
}

// incrementally expand/contract the dropdown and change the opacity //
function ddSlide(id,dir) {
  var cont = document.getElementById(id);
  var currheight = cont.offsetHeight;
  var dist;
  if(dir == 1) {
    dist = (Math.round((cont.maxh - currheight) / DDSPEED));
  } else {
    dist = (Math.round(currheight / DDSPEED));
  }
  if(dist <= 1) {
    dist = 1;
  }
  cont.style.height = currheight + (dist * dir) + 'px';
  cont.style.opacity = currheight / cont.maxh;
  cont.style.filter = 'alpha(opacity=' + (currheight * 100 / cont.maxh) + ')';
  if((currheight < 2 && dir != 1) || (currheight > (cont.maxh - 2) && dir == 1)) {
    clearInterval(cont.timer);
  }
}

function viewObject(name)
{
 // Получение объекта
 var obj = eval(name), i;

 if(!obj) 
 { 
   // Объекта не существует
   alert("Объект \""+name+"\" не существует"); 
   return;
 }

 // Открытие окна
 var w_Test = open("","Test","width=600,height=500,scrollbars=1");

 if(!w_Test)
 { 
   // Не создан объект окно
   alert("Не могу открыть окно для просмотра свойств объекта "+name); 
   return; 
 }

 w_Test.document.open();

 // Вывод в открытое окно всех свойств и методов объекта
 for(i in obj)
   w_Test.document.write(name+"."+i+"="+obj[i]+"<br>");

 w_Test.document.close();
}

	function ChangeSessionOrder(keys, value)
		{window.open('/orders/change_session_order.phtml?keys='+keys+'&value='+value, 'tech');
		}
	function ChangeSessionOrder2(keys, value)
		{window.open('/orders/change_session_order.phtml?keys='+keys+'&value='+value, 'tech2');
		}

	function CountOrderMoney()
		{ var Sum=0;
		  var SumRub=0;
		  var Dohod=0;
		  var ProductsMoney=top.work.order_products_iframe.ProductsMoney;

		  for (var i=0; i < ProductsMoney.length; i++)
			{
				Plus=ProductsMoney[i][0]*ProductsMoney[i][1];
				Sum+=ProductsMoney[i][0]*ProductsMoney[i][1];
				SumRub+=ProductsMoney[i][0]*Math.round(ProductsMoney[i][1]*parseFloat(top.work.document.forms.Order.Kurs.value));
				Dohod+=(ProductsMoney[i][0]*(ProductsMoney[i][1]-ProductsMoney[i][2]));
			}

			Adds=parseFloat(top.work.document.forms.Order.Deliver_Price.value);
//				- parseFloat(top.work.document.forms.Order.Bonus.value);

		  	Sum+=Adds;
			SumRub+=Math.round(Adds*parseFloat(top.work.document.forms.Order.Kurs.value));

			Adds=parseFloat(top.work.document.forms.Order.Deliver_Price.value)
				- parseFloat(top.work.document.forms.Order.Otkat.value);
//				- parseFloat(top.work.document.forms.Order.Bonus.value);

			Dohod+=Adds;

			Sum_help=format1000s(formatNumber(Sum, 2));
			SumRub_help=format1000s(SumRub);

//		  top.work.document.getElementById("OrderSumDollars").innerText=Sum_help.replace(".00", "");
		  top.work.document.getElementById("OrderSumRubles").innerText=SumRub_help;
		}

function formatNumber(num, decplaces) {
	// Преобразование в числовое значение, если получена строка
num = parseFloat(num);
	// Удостоверяемся, что преобразование произошло нормально
if (!isNaN(num)) {
	// умножаем число на 10 в степени decplaces
	// и округляем результат до ближайшего целого.
	// а затеи преобразуем в строку
 var str = "" + Math.round(eval(num) * Math.pow(10,decplaces));
	// Если число получилось в экспоненциальной записи,
	// значит, оно слишком мало или велико
if (str.indexOf("e") != -1) { return "Out of Range";
}
	// дополняем число нулями слева, если это нужно
while (str.length <= decplaces) { str = "0" + str;
}
	// Вычисляем положение десятичной точки
var decpoint = str.length - decplaces;
	// собираем результирующею строку из трех частей: (а) строка до точки:
	// (b) сама точка и (с) остаток строки
	// и возвращаем результат
	return str.substring(0,decpoint) + "." + str.substring(decpoint,str.length);
} else {
	return "NaN";
}
}

function format1000s(numString)
 {numString+="";	// меняем формат переменной на текстовый
  var re = /(-?\d+)(\d{3})/;
  while (re.test(numString))
   {
    numString=numString.replace(re, "$1'$2");
   }
  return numString;
 }

function numbersOnly(evt, type)
{
 evt=(evt) ? evt : event;
 var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode :
	((evt.which) ? evt.which : 0));

 if ((charCode < 31) || (charCode >= 48 && charCode <= 57) || ((charCode == 46) && (type == 'real')))
	{return true;}
 else {return false;}
}

function latinOnly(evt)
{
 evt=(evt) ? evt : event;
 var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode :
	((evt.which) ? evt.which : 0));

 if ((charCode < 31) || (charCode >= 48 && charCode <= 57) || (charCode >= 65 && charCode <= 90) || (charCode >= 97 && charCode <= 122))
	{return true;}
 else {return false;}
}

var GLOBAL_Ramka_Vers=0;

function RamkaUp(width)
{
document.write('<img src="/images/design/ramka_up_'+width+'.gif" width="'+width+'" height="3" border="0"><div style="width: '+width+';background-color: none; background: url(/images/design/ramka_bg_'+width+'.gif) repeat-y; padding-left: 4px; padding-right: 4px; margin: 0px;">');
GLOBAL_Ramka_Width=width;
}

function RamkaDown()
{
document.write('</div><div><img src="/images/design/ramka_down_'+GLOBAL_Ramka_Width+'.gif" height="3" width="'+GLOBAL_Ramka_Width+'" border="0"></div>');
}

function ShowCertificate(logo, id)
{
if (logo) {html='<img src="/images/certificates/'+logo+'_certificate_'+id+'m.jpg" border="1">';} else {html='';}
$('#CertificatePic').hide().html(html).css('top', ($(this).scrollTop()+20)+'px').fadeIn('fast');
}

function Cart(show)
{
$("#CartPartners").hide();
if (!$("#Cart").length)
	{$("body").append('<div id="Cart" style="position: absolute; top:2px; left:695px; z-index: 1;"></div>');
	}
if (show) {$("#Cart").load("/order/cart.phtml");}
}

function CartPartners(show)
{
$("#Cart").hide();
if (!$("#CartPartners").length)
	{$("body").append('<div id="CartPartners" style="position: absolute; top:2px; left:495px; z-index: 1;"></div>');
	}
if (show) {$("#CartPartners").load("/order/cart_partners.phtml");}
}

function AddCart(id)
{
Cart(false);
$("#Cart").load("/order/cart.phtml?Add="+id+"&nocache="+Math.random());				
}

function AddCartPartners(id)
{
CartPartners(false);
$("#CartPartners").load("/order/cart_partners.phtml?Add="+id+"&nocache="+Math.random());
alert("Товар добавлен в заказ.\n\nКорзина заказа находится наверху.");
}

function DeleteCart(id, ajax)
{
if (ajax)
	{$.get("/order/edit_cart_plug-in.phtml?Action=DeleteCart&ID="+id+"&nocache="+Math.random());
	 $("#Amount"+id).val(0);
	 $("#TR"+id).remove();
	 $(".zebra tr:odd").addClass("light");
	 $(".zebra tr:even").addClass("dark");
	 ChangeCartSum();
	}
else
	{window.open("/order/cart_iframe.phtml?Action=DeleteCart&ID="+id+"&nocache="+Math.random(), "_self");
	}
}

function DeleteCartPartners(id, ajax)
{
if (ajax)
	{$.get("/order/edit_cart_partners_plug-in.phtml?Action=DeleteCart&ID="+id+"&nocache="+Math.random());
	 $("#Amount"+id).val(0);
	 $("#TR"+id).remove();
	 $(".zebra tr:odd").addClass("light");
	 $(".zebra tr:even").addClass("dark");
	}
else
	{window.open("/order/cart_partners_iframe.phtml?Action=DeleteCart&ID="+id+"&nocache="+Math.random(), "_self");
	}
}

function CartChange(id)
{
	$("#Sum"+id).text(format1000s(ProductPrice[id]*$("#Amount"+id).val()));
	$.get("/order/edit_cart_plug-in.phtml?Action=EditCart&ID="+id+"&Amount="+$("#Amount"+id).val());
	ChangeCartSum();
}

function CartChangeDeliver()
{
	$("#DeliverPrice").text($("#Deliver").val());
	ChangeCartSum();
}
