
/*********************************************************************
' NAME:			changeClass
' DESCRIPTION:	change class of object in parameter 
' PARAMETERS:	id			- id of object
'				cssClass	- target css class
' RETURNS:		
'********************************************************************/
function changeClass(id, cssClass)
{
	var o = document.getElementById(id);
	if (o != undefined) 
		o.className = cssClass;
}

/*********************************************************************
' NAME:			hideAll
' DESCRIPTION:	sets div`s style property display to 'none' 
'				if class attribute equals to PARAMETER.
				sets background-color to original color defined in
				style sheet.
' PARAMETERS:	hideClass		- class attribute to hide
' RETURNS:		
'********************************************************************/
function hideAll(hideClass)
{
	// set display: none; at all div with class=hideClass
	var tabs = document.getElementsByTagName('div');
	for (var i=1; i < tabs.length; i++)
	{
		var tab = tabs[i];
		var tabClass = tab.getAttributeNode('class');
		
		if (tabClass != undefined)
		if (tabClass.nodeValue == hideClass) 
		{
			tab.style.display = 'none';
		}
	}
	
	// if tab was selected, return it to normal class
	var tabs = document.getElementsByTagName('a');
	for (var i=1; i < tabs.length; i++)
	{
		var tab = tabs[i];
		var tabClass = tab.getAttributeNode('class');
	
		if (tabClass != undefined)
		if (tabClass.nodeValue == 'tabSel')
		{ 
			tab.className = 'tab';
		}
	}

	var tabs = document.getElementsByTagName('span');
	for (var i=1; i < tabs.length; i++)
	{
		var tab = tabs[i];
		var tabClass = tab.getAttributeNode('class');
	
		if (tabClass != undefined)
		if (tabClass.nodeValue == 'tabSelLeft')
		{ 
			tab.className = 'tabLeft';
		}
		if (tabClass != undefined)
		if (tabClass.nodeValue == 'tabSelCenter')
		{ 
			tab.className = 'tabCenter';
		}
		if (tabClass != undefined)
		if (tabClass.nodeValue == 'tabSelRight')
		{ 
			tab.className = 'tabRight';
		}
	}
}

/*********************************************************************
' NAME:			show
' DESCRIPTION:	sets div`s style property display to 'block' 
'				if id attribute equals to PARAMETER
' PARAMETERS:	id		- id attribute to show up
' RETURNS:		
'********************************************************************/
function show(id)
{
	var tab = document.getElementById(id);
	tab.style.display = 'block';
}

/*********************************************************************
' NAME:			selectedTab
' DESCRIPTION:	change class of selected tab
' PARAMETERS:	id		- id attribute of colored tab
' RETURNS:		
'********************************************************************/
function selectedTab(id)
{
	var tab = document.getElementById(id);
	tab.className = 'tabSel';
	var tabL = document.getElementById(id+'L');
	tabL.className = 'tabSelLeft';
	var tabC = document.getElementById(id+'C');
	tabC.className = 'tabSelCenter';
	var tabR = document.getElementById(id+'R');
	tabR.className = 'tabSelRight';
}


var blnDown = false;	// je stisknuta mys
var blnMoved = false;	// je pohyb mysi

var objSrc = null;		// zdrojovy objekt
var objDrag = null;		// tahnuty objekt
var intX = 0;			// X tahnuteho objektu
var intY = 0;			// y tahnuteho objektu
var intInsert = 0;		// pozice pro vlozeni objektu
var divSpace = 3;		// mezera od tabulky k divu


/*********************************************************************
' NAME:			ChangeContentRow
' DESCRIPTION:	tato funkce provede nastaveni hodnoty a zmenu zobrazeni
'				pro radek ve formulari
' PARAMETERS:	tblId			- id tabulky
'				objTr			- primy objekt tr
'				css				- nazev css
' RETURNS:		
'********************************************************************/
function ChangeContentRow(tblId, objTr, css) {
	var objTable = GetObj(tblId);
	if (typeof(objTable) == 'object') {
		if (objTable.selected=="0") {
			// provede se vyber
			objTr.className = css +'Select';
			objTable.selected = "1";
		} else {
			// provede se odznaceni
			objTr.className = css;
			objTable.selected = "0";
		}
	}
}


/*********************************************************************
' NAME:			ChangeCheckboxRow 
' DESCRIPTION:	funkce pro oznaceni a vymenu obrazku u CheckBoxRow
' PARAMETERS:	sId			- id objektu
' RETURNS:		
'********************************************************************/
function ChangeCheckboxRow(sId) {
	var objId = GetObj(sId);
	var objImg = GetObj(sId+'_img');
	if (objId) {
		if (objId.checked == false) {
			// zasrkrtnout
			objId.checked = true;
			if (objImg) {
				var srcImg = objImg.src;
				srcImg = srcImg.replace('_off.gif', '_on.gif');
				objImg.src = srcImg;
			}
		} else {
			// odskrtnout
			objId.checked = false;
			if (objImg) {
				var srcImg = objImg.src;
				srcImg = srcImg.replace('_on.gif', '_off.gif');
				objImg.src = srcImg;
			}
		}
	} else status = '';
}


/*********************************************************************
' NAME:			SetCheckboxRow 
' DESCRIPTION:	funkce pro oznaceni a vymenu obrazku u CheckBoxRow
' PARAMETERS:	sId			- id objektu
' RETURNS:		
'********************************************************************/
function SetCheckboxRow(sId) {
	var objId = GetObj(sId);
	var objImg = GetObj(sId+'_img');
	if (objId) {
			// zasrkrtnout
			objId.checked = true;
			if (objImg) {
				var srcImg = objImg.src;
				srcImg = srcImg.replace('_off.gif', '_on.gif');
				objImg.src = srcImg;
			}
	} else status = '';
}


/*********************************************************************
' NAME:			ChangeCheckBoxRowTxt 
' DESCRIPTION:	funkce pro oznaceni textu u objektu CheckBoxRow
' PARAMETERS:	sId			- id objektu
'				css			- css objektu
' RETURNS:		
'********************************************************************/
var lastCheckboxRow = "";
var lastCheckboxInput = "";
var lastInputValue = "";
function ChangeCheckBoxRowTxt(sId, css) {
	var objId = GetObj(sId);
	var objTxt = GetObj(sId+'_txt');
	// zmena oznaceni radku
	if (objTxt) {
		if (lastCheckboxRow) lastCheckboxRow.className = css;
		objTxt.className = css +'On';
		lastCheckboxRow = objTxt;
	}
	// zmena checkboxu
	ChangeCheckboxRow(sId);
	
	var objInp = GetObj('order'+ sId.substring(3));
	var objCart = GetObj('cart'+ sId.substring(3));
	if (objId && (objInp != undefined) && (objCart == undefined))
	{
		if (objId.checked)
		{
			// increment textbox value
			if(objInp.value == '')
			{
				objInp.value = '1';
				objInp.select();
			}
		}
		else
		{
			objInp.value = '';
		}
	}
}

/*********************************************************************
' NAME:			SetCheckBoxRowTxt 
' DESCRIPTION:	funkce pro oznaceni textu u objektu CheckBoxRow
' PARAMETERS:	sId			- id objektu
'				css			- css objektu
' RETURNS:		
'********************************************************************/
var lastCheckboxRow = "";
function SetCheckBoxRowTxt(sId, css) {
	var objTxt = GetObj(sId+'_txt');
	// zmena oznaceni radku
	if (objTxt) {
		if (lastCheckboxRow) lastCheckboxRow.className = css;
		objTxt.className = css +'On';
		lastCheckboxRow = objTxt;
	}
	// zmena checkboxu
	SetCheckboxRow(sId);
	
	// increment textbox value
	if(GetObj('order'+ sId.substring(3)) != undefined)
		if(GetObj('order'+ sId.substring(3)).value == '')
			GetObj('order'+ sId.substring(3)).value = '1';
}


/*********************************************************************
' NAME:			ChangeRadioRowTxt 
' DESCRIPTION:	funkce pro oznaceni textu u objektu RadioRow
' PARAMETERS:	sId			- id objektu
'				css			- css objektu
'				grpId		- group name
' RETURNS:		
'********************************************************************/
var lastRadioRow = "";
function ChangeRadioRowTxt(sId, css, grpId) {
	var objTxt = GetObj(sId+'_txt');
	// zmena oznaceni radku
	if (objTxt) {
		if (lastRadioRow) lastRadioRow.className = css;
		objTxt.className = css +'On';
		lastRadioRow = objTxt;
	}
	// zmena checkboxu - musi se projit vsechny a zrusit oznaceni
	// TADY JE PROBLEM U NN - nevybere to spravne vsechny objekty!!!!!!!!!!!!!!!!!!!!!!!
	var objIds = GetObjs(grpId);
	for (var intLoop = 0; intLoop < objIds.length; intLoop++) {
		//define object
		var objInput = objIds[intLoop];
		if (objInput.checked)
		{
			ChangeCheckboxRow(objInput.id)
		}
	}
	ChangeCheckboxRow(sId);
}

// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
function getPageScroll(){

	var yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}

	arrayPageScroll = new Array('', yScroll)
	return arrayPageScroll;
}

var isOver;
function DelayHint(e,id,text)
{
	var pageScroll = getPageScroll();
	var object = document.getElementById(id);
	if (object != undefined)
	{
		isOver = true;
		object.innerHTML = text;
		object.style.top = pageScroll[1]+e.clientY+26+'px';
		object.style.left = e.clientX-8+'px';		
		setTimeout("ShowHint('"+ id +"')", 100);
	}
}

function ShowHint(id)
{ 
	if (isOver)
		document.getElementById(id).style.display = 'block';
}

function HideHint(id)
{
	isOver = false;
	document.getElementById(id).style.display = 'none';
}

function stopEvent(e)
{
	// If we have a native version
    if (e.stopPropagation)
    {
        // Then use it
        e.stopPropagation();
    }
    else
    {
        // Simulate it - the rest of the simulation code 
        // will interpret cancelBubble correctly
        e.cancelBubble = true;
    }
}

