	function divImageOver(th, id)
	{
		var dImg = document.getElementById('divImage')
		//dImg.src = th.src.replace('160/', '600/')
		dImg.src = "getProductImage.asp?id=" + id + "&big=1"

        var r = 0
        var s = 10
        var cWidth = getClientWidth()
        var cHeight = getClientHeight()
        var cSLeft = getClientSLeft()
        var cSTop = getClientSTop()

		dImg.style.display = ''
        var w = dImg.offsetWidth
        var h = dImg.offsetHeight

        var thP = getAbsPos(th)
        var px = thP.x + th.offsetWidth + s
        var py = 100 + cSTop
/*
        var py = thP.y + parseInt(th.offsetHeight/2)

        var px = event.clientX
        var py = event.clientY
*/

        if ((px + s + w + r) > (cWidth + cSLeft)) dImg.style.left = px - w - s
        else dImg.style.left = px + s
        if ((py + s + h + r) > (cHeight + cSTop)) dImg.style.top = py - h - s
        else dImg.style.top = py + s

/*
		dImg.style.left = event.clientX + 10
		dImg.style.top = event.clientY + getClientSTop() + parseInt(dImg.offsetHeight/2)
*/
	}

	function divImageOut()
	{
		var dImg = document.getElementById('divImage')
		dImg.style.display = 'none'
		dImg.src = '/images/loader2.gif'
	}

	function enterOnKeyPress(control)
	{
		if (event.keyCode == 13)
		{
			document.getElementById(control).focus()
		}
	}

	function recalcPrice(pID)
	{
		rowID = pID
		var rows = document.getElementsByName('row' + rowID + '_Type')
		if (rows)
		{
			j = rows.length
			for (i=0; i < j; i++)
			{
				addIngredientsPrice = 0
				if (document.getElementById('row' + rowID + '_SelAddIngr').value != '') addIngredientsPrice = parseFloat(rows[i].getAttribute('addPrice'))
				priceValue = addIngredientsPrice + parseFloat(rows[i].getAttribute('price'))
				document.getElementById('row' + rowID + '_Type' + rows[i].value + '_Price').innerHTML = priceValue.toFixed(parseInt(document.getElementById('precision').value)) + ' ' + document.getElementById('union').value
				document.getElementById('row' + rowID + '_Type' + rows[i].value + '_Price').setAttribute('price', priceValue.toFixed(parseInt(document.getElementById('precision').value)))
				document.getElementById('row' + rowID + '_Type' + rows[i].value + '_PriceValue').value = priceValue.toFixed(parseInt(document.getElementById('precision').value))
			}
			recalcSumma(pID)
		}
	}

	function recalcSumma(pID)
	{
	    var txt = $('SelProducts').value
		var divider = ','
		var tNames = 0
		var tNumb = 0
		var tPrice = 0
		while (txt != '')
		{
			d =	txt.indexOf(divider)
			if (d >= 0)
			{
				attr = txt.substr(0, d)
				txt = txt.substr(d+1, txt.length)
				dd = attr.indexOf('-')
				pID = '0'
				if (dd >= 0)
				{
					pID = attr.substr(0, dd)
					attr = attr.substr(dd+1, attr.length)
				}
				dd = attr.indexOf('-')
				tID = '0'
				if (dd >= 0)
				{
					tID = attr.substr(0, dd)
					tN = parseFloat(attr.substr(dd+1, attr.length))
				}
				var obj = document.getElementById('row' + pID + '_Type' + tID + '_Price')
				if (obj)
				{
				    tNames += 1
				    tNumb += tN
				    tPrice += parseFloat(document.getElementById('row' + pID + '_Type' + tID + '_Price').getAttribute('price')) * tN
                }
			}
			else
			{
				txt = ''
			}
		}
		$('totalNames').value = tNames
		$('totalNumb').value = tNumb
		$('totalSumma').value = tPrice.toFixed(parseInt(document.getElementById('precision').value))
	}

	function opportunityProductNumbOnChange(pID, tID)
	{
		var objNumb = document.getElementById('row' + pID + '_Type' + tID + '_Numb')
		if (objNumb.value != "")
        {
		    if ((objNumb.value < 0) || (isNaN(parseInt(objNumb.value))))
		    {
			    objNumb.value = '0'
		    }
		    else
		    {
			    objNumb.value = parseInt(objNumb.value)
		    }
		    var objSelProducts = $('SelProducts')
		    txt = ',' + objSelProducts.value
		    d = txt.indexOf(',' + pID + '-' + tID + '-' + objNumb.getAttribute('lastValue') + ',')
		    if (parseInt(objNumb.value) > 0)
		    {
			    if (d < 0)
			    {
				    objSelProducts.value += pID + '-' + tID + '-' + objNumb.value + ','
			    }
			    else
			    {
				    var re = new RegExp()
				    re.compile(',' + pID + '-' + tID + '-' + objNumb.getAttribute('lastValue') + ',', 'gim')
				    objSelProducts.value = txt.replace(re, ',' + pID + '-' + tID + '-' + objNumb.value + ',').replace(',', '')
			    }
		    }
		    else
		    {
			    if (d >= 0)
			    {
				    var re = new RegExp()
				    re.compile(',' + pID + '-' + tID + '-' + objNumb.getAttribute('lastValue') + ',', 'gim')
				    objSelProducts.value = txt.replace(re, ',').replace(',', '')
			    }
		    }
		    objNumb.setAttribute('lastValue', objNumb.value)
		    recalcSumma(pID)
		    updateShopcase(pID)
        }
	}

	function selectAddIngredient(pID, iID)
	{
		var objSelAddIngr = document.getElementById('row' + pID + '_SelAddIngr')
		txt = ',' + objSelAddIngr.value
		var objNumb = document.getElementById('row' + pID + '_AddIngr' + iID + '_Numb')
		d = txt.indexOf(',' + iID + '-' + objNumb.value + ',')
		if (!document.getElementById('row' + pID + '_AddIngr' + iID).checked)
		{
			if (d >= 0)
			{
				var re = new RegExp()
				re.compile(',' + iID + '-' + objNumb.value + ',', 'gim')
				objSelAddIngr.value = txt.replace(re, ',').replace(',', '')
			}
		}
		else
		{
			if (d < 0)
			{
				objSelAddIngr.value += iID + '-' + objNumb.value + ','
			}
		}
		recalcAddIngredients(pID)
		updateShopcase(pID)
	}

	function recalcAddIngredients(pID)
	{
		var rows = document.getElementsByName('row' + pID + '_Type')
		if (rows)
		{
			var objSelAddIngr = document.getElementById('row' + pID + '_SelAddIngr')
			txt0 = objSelAddIngr.value
			f0 = parseInt(document.getElementById('row' + pID + '_FreeAddIngr').value)
			divider = ','
			j = rows.length
			for (i=0; i < j; i++)
			{
				txt = txt0
				f = f0
				tPrice = 0
				while (txt != '')
				{
					d =	txt.indexOf(divider)
					if (d >= 0)
					{
						attr = txt.substr(0, d)
						txt = txt.substr(d+1, txt.length)
						dd = attr.indexOf('-')
						attrNumb = '0'
						if (dd >= 0)
						{
							attrNumb = attr.substr(dd+1, attr.length)
							attr = attr.substr(0, dd)
						}
						var objNumb = document.getElementById('row' + pID + '_AddIngr' + attr + '_Numb')
						objNumbValue = parseInt(objNumb.value)
						objNumb.setAttribute('lastValue', objNumbValue)
						if (f > 0)
						{
							f -= objNumbValue
							if (f < 0)
							{
								tPrice += parseFloat(getAttributeByIndex(document.getElementById('row' + pID + '_AddIngr' + attr).getAttribute('prices'), i+1, '|')) * (Math.abs(f))
							}
						}
						else
						{
							tPrice += parseFloat(getAttributeByIndex(document.getElementById('row' + pID + '_AddIngr' + attr).getAttribute('prices'), i+1, '|')) * objNumbValue
						}
					}
					else
					{
						txt = ''
					}
				}
				rows[i].setAttribute('addPrice', tPrice)
			}
			recalcPrice(pID)
		}
	}

	function addIngredientNumbOnChange(pID, iID)
	{
		var objNumb = document.getElementById('row' + pID + '_AddIngr' + iID + '_Numb')
		if ((objNumb.value < 1) || (isNaN(parseInt(objNumb.value))))
		{
			objNumb.value = '1'
		}
		else
		{
			objNumb.value = parseInt(objNumb.value)
		}
		var objSelAddIngr = document.getElementById('row' + pID + '_SelAddIngr')
		txt = ',' + objSelAddIngr.value
		d = txt.indexOf(',' + iID + '-' + objNumb.getAttribute('lastValue') + ',')
		if (d >= 0)
		{
			var re = new RegExp()
			re.compile(',' + iID + '-' + objNumb.getAttribute('lastValue') + ',', 'gim')
			objSelAddIngr.value = txt.replace(re, ',' + iID + '-' + objNumb.value + ',').replace(',', '')
		}
		objNumb.setAttribute('lastValue', objNumb.value)
		recalcAddIngredients(pID)
		updateShopcase(pID)
	}

	function saveOpportunity(th)
	{
		if (($('PhoneCode').value == '') || ($('PhoneNumber').value == ''))
		{
			alert('Введите код и номер телефона')
		}
		else
		{
			if (($('PhoneNumber').value.length < 7) || ($('PhoneNumber').value.indexOf('-') >= 0) || ($('PhoneNumber').value.indexOf(' ') >= 0))
			{
				alert('Номер телефона введён некорректно')
			}
			else
			{
	            if ($('AccountName').value == '')
	            {
	                alert('Введите имя')
	            }
	            else
	            {
	                th.style.display = "none"
	                $('formOpportunity').submit()
	            }
			}
		}
	}

	function scriptUpDown(updownType, element, m)
	{
		switch (updownType)
		{
			case 'up':
			{
				var obj = document.getElementById(element)
				if (obj) obj.value = parseInt(obj.value) + 1
				break
			}
			case 'down':
			{
				var obj = document.getElementById(element)
				if (obj) 
				{
				    if (parseInt(obj.value) > m) obj.value = parseInt(obj.value) - 1
				}
				break
			}
		}
	}

	function addIngredientsStatus(rowID, TypesCount)
	{
		var obj = $('row' + rowID + '_AddIngrBar')
		if (obj.style.display != 'none')
		{
			obj.style.display = 'none'
		}
		else
		{
			
			if (obj.innerHTML == '')
			{
                obj.innerHTML = '<img src="/images/loader7.gif" align="absmiddle">'
                var ajax = createAjax()
                if (ajax)
                {
					ajax.onreadystatechange = function()
					{
					    if (ajax.readyState == 4) obj.innerHTML = ajax.responseText
                    }
				    ajax.open("GET", 'getIngredients.asp?ProductID=' + rowID + '&TypesCount=' + TypesCount, true)
				    ajax.send("null")
				}
			}

			obj.style.display = ''
		}
    }

    var CurrentCompleterID = ""

    function showCompleter(th, id) {
        var obj = document.getElementById('frameCompleter')
        if (obj) {
            if ((obj.style.display == 'none') || (CurrentCompleterID != id)) {
                obj.src = 'getComplete.asp?t=' + id

                var thP = getAbsPos(th)
                var r = 10
                var s = 1
                h = 200
                w = 400
                obj.style.height = h
                obj.style.width = w

                var cWidth = getClientWidth()
                var cHeight = getClientHeight()
                var cSLeft = getClientSLeft()
                var cSTop = getClientSTop()
                var thWidth = th.offsetWidth
                var thHeight = th.offsetHeight

                if ((thP.x + thWidth + s + w + r) > (cWidth + cSLeft)) obj.style.left = thP.x - w - s
                else obj.style.left = thP.x + thWidth + s
                if ((thP.y + thHeight + s + h + r) > (cHeight + cSTop)) obj.style.top = thP.y - h - s
                else obj.style.top = thP.y + thHeight + s

                CurrentCompleterID = id
                obj.style.display = ''
            }
            else {
                CurrentCompleterID = ""
                obj.style.display = 'none'
                obj.src = ''
            }
        }
    }

    function accountAddressOnClick(row) {
        parent.document.getElementById('Metro').value = document.getElementById(row + '_Metro').value
        parent.document.getElementById('Street').value = document.getElementById(row + '_Street').value
        parent.document.getElementById('House').value = document.getElementById(row + '_House').value
        parent.document.getElementById('Build').value = document.getElementById(row + '_Build').value
        parent.document.getElementById('Entry').value = document.getElementById(row + '_Entry').value
        parent.document.getElementById('Floor').value = document.getElementById(row + '_Floor').value
        parent.document.getElementById('Flat').value = document.getElementById(row + '_Flat').value
        parent.document.getElementById('Code').value = document.getElementById(row + '_Code').value
        parent.document.getElementById('Notes').value = document.getElementById(row + '_Notes').value
        parent.document.getElementById('frameCompleter').style.display = 'none'
        parent.document.getElementById('frameCompleter').src = ''
    }

    function accountPhoneOnClick(row) {
        parent.document.getElementById('PhoneCode').value = document.getElementById(row + '_PhoneCode').value
        parent.document.getElementById('PhoneNumber').value = document.getElementById(row + '_PhoneNumber').value
        parent.document.getElementById('PhoneAdd').value = document.getElementById(row + '_PhoneAdd').value
        parent.document.getElementById('frameCompleter').style.display = 'none'
        parent.document.getElementById('frameCompleter').src = ''
    }

    function accountNameOnClick(row) {
        parent.document.getElementById('AccountName').value = document.getElementById(row + '_Name').value
        parent.document.getElementById('frameCompleter').style.display = 'none'
        parent.document.getElementById('frameCompleter').src = ''
    }

    function accountCardOnClick(row) {
        parent.document.getElementById('AccountCardNumber').value = document.getElementById(row + '_Numb').value
        parent.document.getElementById('frameCompleter').style.display = 'none'
        parent.document.getElementById('frameCompleter').src = ''
    }
    
    function updateShopcase(id)
    {
        var ajax = createAjax()
        if (ajax)
        {
            var q = "id=" + id + "&t="

            var qs = ""
		    var rows = document.getElementsByName('row' + id + '_Type')
		    if (rows)
		    {
			    var j = rows.length
			    var k = 0
			    for (var i=0; i < j; i++)
			    {
			        row = rows[i].value
			        var obj = parseInt(document.getElementById('row' + id + '_Type' + row + "_Numb").value)
			        if (obj > 0)
			        {
			            if (k > 0) qs += ","
				        qs += row
			            if (k > 0) q += ","
				        q += row + "-" + obj
			            k++
                    }
			    }
		    }
            q += "&ts=" + qs

		    var rows = document.getElementsByName('row' + id + '_IsAddIngr')
		    if (rows)
		    {
                q += "&i="
                qs = ""
		        var rows = document.getElementsByName('row' + id + '_AddIngr')
		        if (rows)
		        {
			        var j = rows.length
			        var k = 0
			        for (var i=0; i < j; i++)
			        {
			            row = rows[i]
			            if (row.checked)
			            {
			                row = row.value
			                var obj = parseInt(document.getElementById('row' + id + '_AddIngr' + row + "_Numb").value)
			                if (obj > 0)
			                {
			                    if (k > 0) qs += ","
				                qs += row
			                    if (k > 0) q += ","
				                q += row + "-" + obj
			                    k++
                            }
                        }
			        }
		        }
	        }
	        else qs = "0"
            q += "&is=" + qs

            var d = new Date()
            var t = d.getTime()
            q += "&" + t

			ajax.onreadystatechange = function()
			{
			    if (ajax.readyState == 4)
			    {
			        refreshShopCase()
			    }
            }
		    ajax.open("GET", "updateAccountShopCase.asp?" + q, true)
		    ajax.send("null")
		}
    }

    function menuOnLoad(isGadget, gt)
    {
        var obj = document.getElementById("tbodyMenuLoader")
        if (obj) obj.style.display = "none"
        //subMenuOnClick("")
        if (isGadget != "") 
        {
            setGadgetBorderTop(gt)
            $("gadget").style.display = ''
            refreshShopCase()
        }
    }

    function subMenuOnClick(id) {
        if (id == "") {
            var objs = document.getElementsByName("subMenu")
            if (objs) {
                j = objs.length
                for (i = 0; i < j; i++) {
                    var obj = document.getElementById("subMenu_" + objs[i].value)
                    if (obj) obj.style.display = "none"
                }
            }
        }
        else {
            var obj = document.getElementById("subMenu_" + id)
            if (obj) {
                if (obj.style.display == "none") obj.style.display = ""
                else obj.style.display = "none"
            }
        }
    }
    
    function refreshShopCase()
    {
        var obj = $("gadgetCont")
        if (obj)
        {
            obj.innerHTML = $("gadgetLoader").innerHTML
            var d = new Date()
            var t = d.getTime()
            var url = "getAccountShopCase.asp?" + t
            var ajax = createAjax()
            if (ajax)
            {
                ajax.onreadystatechange = function()
                {
                    if (ajax.readyState == 4)
                    {
                        txt = ajax.responseText
                        var t = txt.split("<summa>")
                        if (t.length > 0)
                        {
                            txt = t[0]
                            var tCnt = t[2]
                            t = t[1]
                            var objSumma = document.getElementById("ShopCaseTotalSumma")
                            if (objSumma) objSumma.innerHTML = t
                            var objCnt = document.getElementById("ShopCaseTotalCnt")
                            if (objCnt) objCnt.innerHTML = tCnt
                        }

                        if (txt == "") obj.innerHTML = $("gadgetEmpty").innerHTML
                        else obj.innerHTML = txt
                        ajax = null
                    }
                }
                ajax.open("GET", url, true)
                ajax.send("null")
            }
        }
    }

    function showAddIngredients()
    {
        var objs = document.getElementsByName("row_OpenAddIngrBar")
        if (objs)
        {
            j = objs.length
            for (var i = 0; i < j; i++)
            {
                var t = objs[i].value.split(",")
                if (t.length > 0)
                {
                    var id = t[0]
                    var cnt = t[1]
                    addIngredientsStatus(id, cnt)
		            $('row' + id + '_AddIngrBar').style.display = 'none'
                }
            }
        }
    }

    function deleteShopcaseProduct(pID, tID)
    {
        if (confirm("Удалить продукт из корзины?"))
        {
            var obj = document.getElementById('row' + pID + '_Type' + tID + "_Numb")
            if (obj)
            {
                obj.value = "0"
                opportunityProductNumbOnChange(pID, tID)
            }
            else
            {
                var obj = $("gadgetCont")
                if (obj)
                {
                    obj.innerHTML = $("gadgetLoader").innerHTML
                }
                var d = new Date()
                var t = d.getTime()
                var url = "deleteAccountShopCaseProduct.asp?pid=" + pID + "&tid=" + tID + "&" + t
                var ajax = createAjax()
                if (ajax)
                {
                    ajax.onreadystatechange = function()
                    {
                        if (ajax.readyState == 4)
                        {
                            txt = ajax.responseText
                            ajax = null
                            refreshShopCase()
                        }
                    }
                    ajax.open("GET", url, true)
                    ajax.send("null")
                }
            }
        }
    }
