/***
	Generic JavaScript functions.
	(Comments to lukas.vacovsky@jkd.co.uk)
***/

var	dom	= document.getElementById ?	true:false;
var	ie	= document.all ? true:false;
var	saf = (navigator.userAgent.toLowerCase().indexOf("safari")!=-1);
var	opr = (navigator.userAgent.toLowerCase().indexOf("opera")!=-1);
var img_init = false;
var currentSyn = false;
var pageCode = false;
var hasCSS = false;
var timer;

function im_preload( img_obj, img_src ) {
	if ( document.images ) {
		eval( img_obj + ' = new Image()' );
		eval( img_obj + '.src = "' + img_src + '"' );
		}
	}
function im_change( layer, img_name, img_obj ) {
	if (img_init){
		if ( document.images ) {
			if ( document.layers && layer != null ) eval( 'document.layers["' + layer + '"].document.images["' + img_name + '"].src = ' + img_obj + '.src');
			else if (document.images[img_name]) document.images[ img_name ].src = eval( img_obj + ".src" );
			}
		}
	}
function img_change( layer, img_name, img_obj ) {
	im_change(layer,img_name,img_obj);
	if (img_obj.indexOf("on")!=-1){
		im_change(null, 'preview', img_obj+'_preview');
		if (ie || saf){
			syn_change(img_name);
		} else {
			clearTimeout(timer);
			timer = setTimeout("syn_change('"+img_name+"')",200);
//			syn_change(img_name)
		}
	} else{
		im_change(null, 'preview', 'm0_on_preview');
		if (ie || saf){
			syn_change("m0");
		} else {
			clearTimeout(timer);
			timer = setTimeout("syn_change('m0')",200);
//			syn_change('m0')
		}
	}
}
function syn_change(img_name){
	objLeft = (document.getElementById("m1")) ? findPosX(document.getElementById("m1")) : 0;
	objLeft = (document.getElementById("h1")) ? findPosX(document.getElementById("h1")) : objLeft;
	if (currentSyn) currentSyn.style.display = "none";
	if (pageCode && document.getElementById(img_name+"s"+pageCode)) {
		document.getElementById(img_name+"s"+pageCode).style.marginLeft = objLeft+"px";
		document.getElementById(img_name+"s"+pageCode).style.display = "block";
		currentSyn = document.getElementById(img_name+"s"+pageCode);
	}
}
function syn_refresh(){
	if (document.getElementById("m1")){
		objLeft = (document.getElementById("m1")) ? findPosX(document.getElementById("m1")) : 0;
		if (currentSyn) {
			currentSyn.style.marginLeft = objLeft+"px";
		}
	} else{
		syn_change("m0");
	}
}
function findPosX(obj){
	var curleft = 0;
	if (opr){ curleft = parseInt((document.body.offsetWidth-750)/2); }
	if (obj.offsetParent && !saf){
		while (obj.offsetParent){
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x) curleft += obj.x;
	return curleft;
}
var hover_color = null;
function highlight_row(obj,w){
	if (hover_color == null) hover_color = getStyle('hover', "backgroundColor");
	var tds = obj.getElementsByTagName('td');
	for(i=0;i < tds.length;i++) {
		if (w == 1) {
			tds[i].style.backgroundColor = hover_color;
		} else tds[i].style.backgroundColor = "";
	}
}
function getStyle(el, style) {
	el = document.getElementById(el);
	var value = el.style[style];
	if(!value) value = el.currentStyle[style];
	return value;
}
function hover_init() {
	if (document.all && document.getElementById && !window.opera) {
		if (document.getElementById('hovertr')){
			table = document.getElementById('hovertr');
			trs = table.getElementsByTagName('tr');
			for(var i = 0; i < trs.length; i++){
				trs[i].onmouseover = function(){ highlight_row(this,1); }
				trs[i].onmouseout = function(){ highlight_row(this,0); }
			}
		}
	}
	if (window.pageSpecificInit) pageSpecificInit();	
	if (window.supressactivate) supressactivate();
	if (window.Tooltip) Tooltip.init();
}

/*
function checkBoxAll(){
	if (document.getElementById("S1")){
		goal = !document.getElementById("S1").checked;
		for(i=1;document.getElementById("S"+i);i++){
			document.getElementById("S"+i).checked = goal;
		}
	}
}
*/

// by Marcin Grzesiek - fixes a problem with non-continuous
var goal = true;
function checkBoxAll(){
	var boxes = document.getElementsByTagName('input');
	for (i = 0; i < boxes.length; i++) {
		id = ""+boxes[i].getAttribute('id');
		if(id.match(/^S\d+$/))
			document.getElementById(id).checked = goal;
	}
	goal = !goal;
}


window.onload = hover_init;

/*** TangoZebra Flash sniffer ***/

function tz_CheckBrowserVers(delim,reqVers){
    var temp=navigator.userAgent.split(delim);
    var version=parseFloat(temp[1]);
    if (version>=reqVers){ 
		return true;
    }else{
		return false;
    }
}
var tz_navUA=navigator.userAgent;
var tz_isWin=(tz_navUA.indexOf('Win')!=-1 && tz_navUA.indexOf('Windows 3.1')==-1); 
var tz_isMac=(tz_navUA.indexOf('Mac')!=-1 && (navigator.platform=='MacPPC'));
var tz_isOp=(tz_navUA.indexOf('Opera')!=-1);
var tz_isIE=(tz_isWin && !tz_isOp && navigator.appVersion.indexOf('MSIE')!=-1) || (tz_isMac && !tz_isOp && tz_CheckBrowserVers('MSIE',5.2)); 

function tz_isFlash(tz_flashVerRequired){
    var tz_flashVersion = 0;
    if (tz_isWin && tz_isIE){
        function tz_activeXDetect(activeXname){
		    try{
				var xObj = new ActiveXObject(activeXname);
	      	    return xObj;
	  	    } catch (e){
				return false;
	  	    }
		}	
		for(i=1;i<10;i++){
			if(tz_activeXDetect('ShockwaveFlash.ShockwaveFlash.' + i)){
			    tz_flashVersion = i;
			}
		}
    } else if(navigator.plugins && navigator.mimeTypes && navigator.mimeTypes['application/x-shockwave-flash'] && navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){
		var tz_isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
		var tz_flashDescription = navigator.plugins["Shockwave Flash" + tz_isVersion2].description;
		tz_flashVersion = parseInt(tz_flashDescription.charAt(tz_flashDescription.indexOf(".") - 1));
    }   
    return (tz_flashVersion>=tz_flashVerRequired)?true:false;
}
function supressactivate(){
	theObjects = document.getElementsByTagName("object");
	for (i=0;i<theObjects.length;i++){
//		theObjects[i].focus();
		theObjects[i].outerHTML = theObjects[i].outerHTML;
	}
}
