﻿// <script>
// Copyright (C) 2005 Ilya S. Lyubinskiy. All rights reserved.
// Technical support: http://www.php-development.ru/
//
// YOU MAY NOT
// (1) Remove or modify this copyright notice.
// (2) Distribute this code, any part or any modified version of it.
//     Instead, you can link to the homepage of this code:
//     http://www.php-development.ru/javascripts/smart-forms.php.
//
// YOU MAY
// (1) Use this code on your website.
// (2) Use this code as a part of another product provided that
//     its main use is not creating javascript menus.
//
// NO WARRANTY
// This code is provided "as is" without warranty of any kind, either
// expressed or implied, including, but not limited to, the implied warranties
// of merchantability and fitness for a particular purpose. You expressly
// acknowledge and agree that use of this code is at your own risk.

// If you find my script useful, you can support my site in the following ways:
// 1. Vote for the script at HotScripts.com (you can do it on my site)
// 2. Link to the homepage of this script or to the homepage of my site:
//    http://www.php-development.ru/javascripts/smart-forms.php
//    http://www.php-development.ru/
//    You will get 50% commission on all orders made by your referrals.
//    More information can be found here:
//    http://www.php-development.ru/affiliates.php

var currentShown = null;
var hideEventAdded = false;
var at_hiddenObj = [];

function at_hide_aux(e) {
	if (!currentShown)
		return;
	if (typeof(e) == 'undefined')
		var e = event;
	if (typeof(e.srcElement) == 'undefined')
		var obj = e.target;
	else
		var obj = e.srcElement;
	var myDiv = false;
	var myParent = false;
	for (; obj; obj = obj.parentNode) {
		if (obj == currentShown) {
			myDiv = true;
			break;
		}
		if (obj == currentShown.p) {
			myParent = true;
			break;
		}
	}
	if (!myParent) {
		if (!myDiv) {
			clearTimeout(currentShown["at_timeout"]);
			currentShown.style.display = 'none'
			currentShown = null;
			at_showHiddenTags();
		} else {
			//c["at_timeout"] = setTimeout("document.getElementById('"+c.id+"').style.display = 'none'", 100);
		}
	} else {
		clearTimeout(currentShown["at_timeout"]);
		at_showHiddenTags();
	}
}

// ----- Popup Control ---------------------------------------------------------

function at_display(x)
{
	win = window.open();
	for (var i in x)
		win.document.write(i+' = '+x[i]+'<br>');
}

function at_alert(x)
{
	var str = '';
	for (var i in x)
		if (x[i])
			str += i + ' = ' + x[i] + '\n';

	alert(str);
}

// ----- Show Aux -----

function at_show_aux(parent, child)
{
	var p = document.getElementById(parent);
	var c = document.getElementById(child);

	p.at_child = child;
	c.at_parent = parent;
	var parentElement = p;

	if ((currentShown) && (currentShown != c) && (currentShown.style.display != 'none')) {
		currentShown.style.display = 'none'
	}
	currentShown = null;

	var top  = (c["at_position"] == "y") ? p.offsetHeight : 0;
	var left = (c["at_position"] == "x") ? p.offsetWidth+2 : 0;

	for (; p; p = p.offsetParent) {
		top  += p.offsetTop;
		left += p.offsetLeft;
	}

	// Let browser some time to show menu and recalc dimensions
	if (c.style.display != "block") {
		c.style.visibility = 'hidden';
		c.style.display = "block";
		if (c['at_timeout'])
			clearTimeout(c['at_timeout']);
		c['at_timeout'] = setTimeout('at_show_aux("' + parent + '", "' + child + '");', 10);
		return;
	}

	// Show it
	c.style.position = "absolute";
	//c.style.background = "#ffc";

	var sHeight, sWidth;
	if (at_isIE()) {
		sHeight = self.document.body.offsetHeight;
		sWidth = self.document.body.offsetWidth;
	} else {
		sHeight = self.innerHeight;
		sWidth = self.innerWidth;
	}

	/*if (!c.getAttribute('at_alwaysDown')) {
		if (top + c.offsetHeight >= sHeight)
			top -= c.offsetHeight;
	}*/
	/*if (!c.getAttribute('at_alwaysLeft')) {
		if (left + c.offsetWidth >= sWidth)
			left -= c.offsetWidth;
	}*/

	var newLeft = left + 'px';
	var newTop = top + 'px';
	if ((c.style.left != newLeft) || (c.style.top != newTop)) {
		c.style.display = 'none';
		c.style.top = newTop;
		c.style.left = newLeft;
	}
	if (c.style.display != 'block')
		c.style.display = 'block';

	currentShown = c;
	currentShown.p = parentElement;

	c.style.visibility = '';
	if (parentElement.at_toggle)
		at_hideHiddenTags(c);
}


function at_hideHiddenTags(obj) 
{
	var hiddenTags = ['SELECT','OBJECT','EMBED','IFRAME'];
	var objPos = getPosition(obj);
	for (var i=0; i < hiddenTags.length; i++) {
		at_hiddenObj = at_hiddenObj.concat(toggleDisplay(hiddenTags[i], 'hidden', null, objPos));
	}
}

function at_showHiddenTags() 
{
	for (var i=0; i < at_hiddenObj.length; i++) {
		at_hiddenObj[i].style.visibility = '';
	}
}

// ----- Show -----

function at_show()
{
	p = document.getElementById(this["at_parent"]);
	c = document.getElementById(this["at_child" ]);

	clearTimeout(c["at_timeout"]);

	at_show_aux(p.id, c.id);
}

// ----- Hide -----

function at_hide()
{
	c = document.getElementById(this["at_child"]);
	if (!c)
		return;
	if (c["at_timeout"])
        clearTimeout(c["at_timeout"]);
	if (c.style.display != 'none')
		c["at_timeout"] = setTimeout("document.getElementById('"+c.id+"').style.display = 'none'; at_showHiddenTags()", 2500);
}

// Hides dropdown by id
function at_hide_now(id)
{
	c = document.getElementById(id);
	if (!c)
		return;
	if (c["at_timeout"])
        clearTimeout(c["at_timeout"]);
	c.style.display = 'none';
	at_showHiddenTags();
}

// ----- Click -----

function at_click()
{
	p = document.getElementById(this["at_parent"]);
	c = document.getElementById(this["at_child" ]);
	if (p.old_onclick)
		p.old_onclick();
	c.style.display = "none";//
	if (c.style.display != "block")
		at_show_aux(p.id, c.id);
	else
		c.style.display = "none";

	return false;
}


// ----- Attach -----

// PARAMETERS:
// parent   - id of visible html element
// child    - id of invisible html element that will be dropdowned
// showtype - "click" = you should click the parent to show/hide the child
//            "hover" = you should place the mouse over the parent to show
//                      the child
// position - "x" = the child is displayed to the right of the parent
//            "y" = the child is displayed below the parent
// cursor   - Omit to use default cursor or check any CSS manual for possible
//            values of this field
// saveOnClick - whether to remember onClick currently on this element and call it later
//                in dropdown's onclick

function at_attach(parent, child, showtype, position, cursor, saveOnClick, toggle)
{
	p = document.getElementById(parent);
	c = document.getElementById(child);
	if (!p || !c)
		return;

	p["at_parent"] = p.id;
	p["old_onclick"] = ((typeof(saveOnClick) == 'undefined') || !saveOnClick) ? null : p.onclick;
	c["at_parent"] = p.id;
	p["at_child"] = c.id;
	c["at_child"] = c.id;
	p["at_position"] = position;
	c["at_position"] = position;
	c["at_detach"] = at_detach;
	p["at_toggle"] = toggle || false;

	c.style.position = "absolute";
	c.style.display = "none";

	if (cursor)
		p.style.cursor = cursor;

	switch (showtype) {
	case "click":
		p.onclick     = at_click;
		p.onmouseout  = at_hide;
		c.onmouseover = at_show;
		c.onmouseout  = at_hide;
		break;
	case "hover":
		p.onmouseover = at_show;
		p.onmouseout  = at_hide;
		c.onmouseover = at_show;
		c.onmouseout  = at_hide;
		break;
	}

	if (!hideEventAdded) {
		hideEventAdded = true;
		if (document.attachEvent) {
			document.attachEvent('onclick', at_hide_aux);
			window.attachEvent('onresize', at_hide_aux);
		} else {
			document.addEventListener('click', at_hide_aux, true);
			window.addEventListener('resize', at_hide_aux, false);
		}
	}
}

// Detaches menu
function at_detach() {
	p = document.getElementById(this["at_parent"]);
	if (p && (p.onclick == at_click)) {
		p.onclick = p['old_onclick'];
		p.onmouseover = null;
		p.onmouseout = null;
	}

	c = document.getElementById(this["at_child" ]);
	if (c) {
		c.onmouseover = null;
		c.onmouseout = null;
	}
}

// ----- IE -----

function at_isIE()
{
	var nav = navigator.userAgent.toLowerCase();
	var dom = document.getElementById ? 1 : 0;
	var opera = nav.indexOf("opera")>-1 && dom ? 1 : 0;
	return nav.indexOf("msie")>-1 && dom && !opera;
}

// Notifiers
DROPDOWN_LOADED = true;
DROPDOWN_READY = true;

//my
function attach1(par)
{
    for(i=0; i<par.length;i++)
    {
        for(j=0;j<2;j++){
	        at_attach("id"+par[i]+"Sort"+j, "id"+par[i]+"SortM", "click", "y");
	    }
    }	
}