/*

Copyright by CSS Saint-Petersburg 2002 (http://www.b2bcss.com/)

*/

function loadImages() {
	var i
	if (document.images) {
		for (i=0; i<preloadedImages.length; i++)
			loadSetImages(preloadedImages[i])
	}
}

function swapImage(objSet,strId,strMode) {
	var objImage = document[strId+'_btn']
	if (objImage && objSet.blnIsRollovers)
		objImage.src = objSet.colImages[strId + strMode].src
}

function SetImages() {
	var i,a
	if (this.intCount == null) {
		this.blnIsRollovers = false
		this.blnIsLoaded = false
		this.intCount = 0
		this.intCached = 0
		this.astrNames = new Array(0)
		this.astrUrls = new Array(0)
		this.ablnIsCount = new Array(0)
		this.intIndex = preloadedImages.length
		this.colImages = new Object()
		preloadedImages[this.intIndex] = this
	}
	for (i=0; i<arguments.length; i++) {
		a = arguments[i].split('|')
		this.astrNames[this.intCount] = a[0]
		this.astrUrls[this.intCount] = formatURL(a[1])
		this.intCount ++
	} 
}

function loadSetImages(objSet) {
	var i,objImage
	if (!objSet.blnIsLoaded) {
		for (i=0; i<objSet.intCount; i++) {
			objSet.colImages[objSet.astrNames[i]] = objImage = new Image()
			if (!isNC4) {
				objImage.intSetIndex=objSet.intIndex
				objImage.intImageIndex=i
				objImage.onload = countSetImages
			}
			objImage.src=objSet.astrUrls[i]
		}
		objSet.blnIsLoaded = true
	}
}

function countSetImages() {
	var objSet = preloadedImages[this.intSetIndex]
	if (!objSet.ablnIsCount[this.intImageIndex]) {
		objSet.ablnIsCount[this.intImageIndex] = true
		objSet.intCached ++
		if (objSet.intCached == objSet.intCount) {
			objSet.blnIsRollovers = true
			if (objSet.onload)
				eval(objSet.onload)
		} 
	} 
}

function formatURL(strUrl) {
	var strBase = document.remoteURL
	if (strBase && strUrl && (strUrl.charAt(0)=='/'))
		strUrl = strBase + strUrl
	return strUrl
}

var preloadedImages = new Array(0)


// Pictures
var strPixel = 'images/spacer.gif'
var strSubMenu = 'images/templates/center/navArrow.gif'

// Styles
var strClassStyle = 'qj'
var strClassStyleSelected = 'qjs'

function HTMLImgTag(URLStr,Width,Height,Border,HSpace,VSpace,OtherStr) {
	var HTMLStr
	HTMLStr = '<IMG SRC="' + formatURL(URLStr) + '"'
		+ ' WIDTH="' + ((Width)?Width:1) + '"'
		+ ' HEIGHT="' + ((Height)?Height:1) + '"'
		+ ' BORDER="' + ((Border)?Border:0) + '"'
		+ ' HSPACE="' + ((HSpace)?HSpace:0) + '"'
		+ ' VSPACE="' + ((VSpace)?VSpace:0) + '"'
		+ ((OtherStr)?' '+OtherStr:'')
		+ '>'
	return HTMLStr
}

function HTMLSpacerImage(Width,Height,OtherStr) {
	return HTMLImgTag(strPixel,Width,Height,0,0,0,OtherStr)
}

function HTMLVisibilityString(v){
	return (v)?(isNC4?"show":"visible"):(isNC4?"hide":"hidden")
}

function HTMLLayerTag(Id,Left,Top,Width,Height,zIndex,Content,Visibility,OtherStr){
	var HTMLStr
	if(!Top) Top=0
	if(!Left) Left=0
	if(Width==0) Width=1
	if(!zIndex) zIndex=10
	if(Visibility==0) Visibility=HTMLVisibilityString(0)
	else Visibility=HTMLVisibilityString(1)
	if(!OtherStr) OtherStr=''
	if(!isNC4)
		HTMLStr = '<DIV ID="' + Id +'"'
			+ ' STYLE="position:absolute; left:' + Left + 'px;'
			+ ' top:' + Top + 'px;'
			+ ((Width)?(' width:' + Width + ((isNaN(Width))?'':'px') + ';') : '')
			+ ((Height)?(' height:' + Height + ((isNaN(Height))?'':'px')+';') : '')
			+ ' visibility:' + Visibility + ';'
			+ ' z-index:' + zIndex + '; " '
			+ OtherStr
			+ '>'
			+ Content
			+ '</DIV>'
	return HTMLStr
}

function HTMLTDTag(Content,Width,BgColor,Align,VAlign,RowSpan,ColSpan,OtherStr){
	var HTMLStr
	if(!OtherStr) OtherStr=''
	HTMLStr = '<td '
		+ ((Width)?(' width="' + Width + '"') : '')
		+ ((BgColor)?(' bgcolor="' + BgColor + '"') : '')
		+ ((RowSpan)?(' rowspan="' + RowSpan + '"') : '')
		+ ((ColSpan)?(' colspan="' + ColSpan + '"') : '')
		+ ((Align)?(' align="' + Align + '"') : '')
		+ ((VAlign)?(' valign="' + VAlign + '"') : '')
		+ OtherStr
		+ '>'
		+ Content
		+ '</td>'
	return HTMLStr
}

function HTMLTRTag(Content,OtherStr){
	var HTMLStr;
	if(!OtherStr) OtherStr='';
	HTMLStr = '<tr '
		+ OtherStr
		+ '>'
		+ Content
		+ '</tr>';
	return HTMLStr;
}

function HTMLTableTag(Content,Width,BgColor,Border,CellSpacing,CellPadding,OtherStr){
	var HTMLStr;
	if(!OtherStr) OtherStr='';
	HTMLStr = '<table '
		+ ((Width)?(' width="' + Width + '"') : '')
		+ ((BgColor)?(' bgcolor="' + BgColor + '"') : '')
		+ ' border="' + ((Border)?Border:0) + '"'
		+ ' cellspacing="' + ((CellSpacing)?CellSpacing:0) + '"'
		+ ' cellpadding="' + ((CellPadding)?CellPadding:0) + '"'
		+ OtherStr
		+ '>'
		+ Content
		+ '</table>';
	return HTMLStr;
}

function changeUrl(strUrl) {
	document.location.href = strUrl
}

function HTMLNavArea(intLev,strWhat){
	var HTMLStr=''
	var HTMLtemp=''
	var HTMLtemp2=''
	
	var i,a,strUrl,strSubMenuId
	var astrMenu = QJItems[strWhat];
	
	if (astrMenu!=null) {

  	for (i=0; i<astrMenu.length; i++) {
		a = astrMenu[i].split('|')
		if (a[1]=='*') strUrl = null
		else strUrl = formatURL(a[1])
		if (intLev==3)	strSubMenuId = null
		else strSubMenuId = a[2]
    	if (strUrl || strSubMenuId)
    		HTMLtemp = ' class="' + strClassStyle + '"'
				+ ' onMouseOver="this.style.backgroundColor=\'#E3EDEE\';' +((strSubMenuId)? ('showQJ(\'' +strSubMenuId +'\',' + (intLev+1) + ',100);') :('hideLevQJ(' +intLev +',200);')) +'"'
    			+ ' onMouseOut="this.style.backgroundColor=\'\';clearTimeout(popupTimer);' +'"'
    			+ ((strUrl)? ' onClick="changeUrl(\'' +strUrl +'\');"' :'')
    			+ ' id="' +strSubMenuId +'_cell"'
		else
			HTMLtemp = ''
		HTMLtemp2 +=
			HTMLTRTag(
				HTMLTDTag(HTMLSpacerImage(15,1),15)
				+ HTMLTDTag(a[0])
				+ HTMLTDTag(((strSubMenuId)? HTMLImgTag(strSubMenu,11,11):''),11)
				+ HTMLTDTag(HTMLSpacerImage(8,1),8)
				,HTMLtemp
			)
		if (i < astrMenu.length-1)
			HTMLtemp2 +=
				HTMLTRTag(
					HTMLTDTag(HTMLSpacerImage(1,1))
					+ HTMLTDTag(HTMLSpacerImage(1,1),null,"#000000",null,null,null,2)
					+ HTMLTDTag(HTMLSpacerImage(1,1))
				)
	}
	HTMLStr =
		HTMLTableTag(
			HTMLtemp2
		,140)

	}
	return HTMLStr
}

function HTMLQJLayer(strId,intLev,strWhat){
	var HTMLStr = ''
  	navtabletop = '<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td bgcolor="#cccde1">'
  	navtablebot = '</td></tr></table>'

	HTMLStr = navtabletop + '<div id="' + strId + 'Area">' + HTMLNavArea(intLev,strWhat) + '</div>' + navtablebot
	return HTMLStr
}

function writeQJLayer(strId,intLev,strWhat){
	var l = layer(strId +'Area')
	l.write( HTMLNavArea(intLev,strWhat) )
}

function createQJLayer(strId,lev,width) {
	var HTMLStr = HTMLQJLayer(strId,lev,"empty")
	document.writeln(HTMLLayerTag(strId, marginX-4+lev*142+intStXMargin, 0, width, null, 20+2*lev, HTMLStr, 0, 'ONMOUSEOVER="mn_navEnter();" ONMOUSEOUT="exitQJ();"'))
}

function writeQJ() {
	if (isDhtml) {
		marginX = getLeftMargin()
		marginY = getTopMargin()
		createQJLayer('menuLayer'+1,1,140)
		createQJLayer('menuLayer'+2,2,140)
		createQJLayer('menuLayer'+3,3,140)
	}
}

function addQJ(Id) {
	var i
	QJItems[Id] = new Array()
	for (i=1; i<arguments.length; i++)
		QJItems[Id][i-1] = arguments[i]
}

function startQJ(Id,args) {
	mn_navEnter(Id)
	if (Id!=currentNav[0])
		popupTimer=setTimeout("mn_beginNav('"+Id+"',1)",200)
}

function exitQJ(Id) {
	clearTimeout(popupTimer)
	if ((Id!=null)&&(Id!=currentNav[0]))
		return
	clearTimeout(navTimer)
	navTimer=setTimeout("mn_endNav();",1000)
}

function findMouse() {
	if (isIE)
		mouseY=event.clientY+document.body.scrollTop;
}


function onMouseOverQJ(Id) {
	if (isDhtml)
		startQJ(Id,arguments)
	else
		swapImage(Images,Id,"_over")
}

function onMouseOutQJ(Id) {
	if (isDhtml)
		exitQJ(Id)
	else
		swapImage(Images,Id,"_out")
}

function mn_navEnter(Id) {
	if ((Id==null)||(Id==currentNav[0]))
		clearTimeout(navTimer)
}

function mn_beginNav(Id,n) { 
	mn_navEnter()
	mn_endNav()
	currentNav[0] = Id
	showQJ(Id,1)
}

function mn_endNav() {
	var c=currentNav[0]; 
	if (c==null) 
		return; 
	if (QJItems[c]) { 
		swapImage(Images,c,"_out"); 
		hideLevQJ(0); 
	}
	currentNav[0]=null; 
}

function showQJ(who,lev,delay) {
	if (!QJItems[who]) return
	if (delay!=null) { 
		popupTimer=setTimeout("showQJ('"+who+"',"+lev+")",delay); 
		return; 
	} 
	if (who==currentNav[lev]) return
	
	var lqj=layer('menuLayer'+lev);
	if (!lqj.isExist)
		return
	
	hideLevQJ(lev-1); 
	currentNav[lev]=who; 
	writeQJLayer('menuLayer'+lev,lev,who);
	mn_setNavY(lev,lqj);
	
	lqj.show()
		
	if (lev>1)
		changeBackgroundColor(lev,1)
	else
		swapImage(Images,currentNav[0],"_over")
}

function hideLevQJ(num,delay) {
	if (num>3) return
	if (delay!=null) { 
		popupTimer=setTimeout("hideLevQJ("+num+")",delay) 		
		return
	}
	var i
	var lqj
	
	for (i=3; i>=(num+1); i--)
		if (currentNav[i]!=null) {
			lqj=layer('menuLayer'+i)
			lqj.hide()
			if (i>1)
				changeBackgroundColor(i,0)
			currentNav[i]=null
		}
}

function changeBackgroundColor(lev,show) {
	var who=currentNav[lev]
	var lnk=document.all[who+'_cell']
	if (lnk) 
		lnk.className = (show)? strClassStyleSelected :strClassStyle
}

function mn_setNavY(lev,lqj) {
	var db=document.body; 
	var st=getScrollY();
	var wh=getWindowHeight();
	var pb=getDocumentHeight()-((lev==1)?43:22)-((isNC6)?-1:1)*marginY; 

	var lh=lqj.getScrollHeight();
	var lmenuprevTop=layer('menuLayer'+(lev-1));
	
	var wb=wh+st; 
	if (wb>pb)wb=pb; 
	var y=mouseY-Math.round(lh/2);
	if (lev>1){
		var prevTop=lmenuprevTop.getTop();
		if (y<(prevTop)) y=prevTop;  
	} 
	if ((y+lh)>wb)y=wb-lh; 
	if (y<(marginY+67))y=marginY+67; 
	if (y<st)y=st;

	if (y<intStYMargin)y=intStYMargin

	lqj.moveY(y);
	
	var imm,im;
	if(blnStCenter){
		imm=document.all['cont'];
		im=document.all['CSSsi_btn'];
		lqj.moveX(imm.offsetLeft+im.width+(lev-1)*142  +16 +intStXMargin);
	}
}

document.QuikJump = true

if (isDhtml) {
	marginX = 10
	marginY = 10
	mouseY = 0

	currentNav = new Array(0)
	QJItems = new Object()

	navTimer = setTimeout("null",10)
	popupTimer = setTimeout("null",10)
	
	document.onmousemove = findMouse
}