/* to check if the current version of this file is loaded */
updated_version = 1;

/********************************************************+
 *
 * place for all necessary JavaScript-Functions...
 *
 ******************/


/*****************************+
*
* flash or not flash
*
***************/

/*
var useFlash = false;
var ShockMode = false;

ShockMode=(navigator.mimeTypes &&
navigator.mimeTypes["application/x-shockwave-flash"] &&
navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin &&
navigator.plugins && navigator.plugins["Shockwave Flash"]);
*/

function getFlash(url, width, height) {
	var flashout="";
	
	if(( ShockMode || useFlash) && true) {

		// flashout += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+width+'" height="'+height+'" id="bsp" >';
		flashout += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="10%" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" id="bsp" >';
		flashout += '<param name="allowScriptAccess" value="sameDomain" />';
		flashout += '<param name="quality" value="high">';
		flashout += '<param name="movie" value="'+url+'" />';
		flashout += '<param name="wmode" value="transparent" />';
		flashout += '<param name="bgcolor" value="#ff0000" />';
		// flashout += '<embed src="'+url+'" quality="high" wmode="transparent" bgcolor="#ff0000" width="'+width+'" height="'+height+'" name="name" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>';
		flashout += '<embed src="'+url+'" width="100%" height="100%"   quality="high" wmode="transparent" bgcolor="#ff0000" name="name" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>';
		flashout += '</object>';

	} else {
		// flashout += '<img src="/pics/onlinestar.jpg" alt="Onlinestar 2006">';
		flashout += '';
	}
	
	return flashout;

}


/*****************************+
*
* presentation js
*
***************/


    
    
var bodyBackgroundImage = "";
function toggleBGImage(){
	bg = document.body.style.backgroundImage;
	if(bg != ""){
		bodyBackgroundImage = bg;
		document.body.style.backgroundImage = "";
	}
	else{
		document.body.style.backgroundImage = bodyBackgroundImage;
		bodyBackgroundImage = "";
	}
}

function openPopup(href, pWidth, pHeight, showAll){
	show 	= (showAll) ? "yes" : "no";
	width = (pWidth) 	? pWidth : 550;
	height = (pHeight) ? pHeight : 700;
	var popup = window.open(href, "popup", "width="+width+",height="+height+",toolbar="+show+",scrollbars=yes,resizable=yes,menubar="+show+",location="+show+",status="+show);
	if(popup.focus)
		popup.focus();
	return false;
}



var newsPopup;
function openPopupNews(href, pWidth, pHeight, showAll){
	

	if(newsPopup != undefined) {
		if(!newsPopup.closed) newsPopup.close();
	}
	
	show 	= (showAll) ? "yes" : "no";
	width = (pWidth) 	? pWidth : 550;
	height = (pHeight) ? pHeight : 700;
	newsPopup = window.open(href, "newsPopup", "width="+width+",height="+height+",toolbar="+show+",scrollbars=yes,resizable=yes,menubar="+show+",location="+show+",status="+show);
	if(newsPopup.focus)
		newsPopup.focus();
	return false;
}



window.onload = function(){};
function registerOnload(newFunction){
	// alert(registerOnload.caller + " " + newFunction)
	var curWinOnload = window.onload;

	if(typeof window.onload != 'function'){
		window.onload = newFunction;
	}
	else{
		window.onload = function(){
			curWinOnload();
			newFunction();
		};
	}
}

// retreiving stylesheets (cross browser)
function getAllSheets() {
  if( !window.ScriptEngine && navigator.__ice_version ) { return document.styleSheets; }
  if( document.getElementsByTagName ) { var Lt = document.getElementsByTagName('link'), St = document.getElementsByTagName('style');
  } else if( document.styleSheets && document.all ) { var Lt = document.all.tags('LINK'), St = document.all.tags('STYLE');
  } else { return []; } for( var x = 0, os = []; Lt[x]; x++ ) {
    var rel = Lt[x].rel ? Lt[x].rel : Lt[x].getAttribute ? Lt[x].getAttribute('rel') : '';
    if( typeof( rel ) == 'string' && rel.toLowerCase().indexOf('style') + 1 ) { os[os.length] = Lt[x]; }
  } for( var x = 0; St[x]; x++ ) { os[os.length] = St[x]; } return os;
}

/* ===-- FontSizer --=== */
function FontSize(idx, cssLinkId, controlImgSrc){
	this.idx = idx;
	this.cssLinkId = cssLinkId;
	this.controlImgSrc = controlImgSrc;
	this.cssLink = null;
	FontSize.prototype.initialize = function(){
		this.cssLink = document.getElementById(this.cssLinkId);
	}
	FontSize.prototype.enable = function(){
        // loop trough all available styleseets and simple disable - no switch of rel!!!
        for( var x = 0, ss = getAllSheets(); ss[x]; x++ ) {
             if( ss[x].title && ss[x].title.indexOf("size") != -1) {
              //  alert("disable: "+ss[x].title);
                ss[x].disabled = true;
                //ss[x].rel = "alternate stylesheet";
             }
        }
        

         // now active the correct one, only way it to make it run in safari too,
         // all other browsers work like they did before...
         for( var x = 0, ss = getAllSheets(); ss[x]; x++ ) {
             if( ss[x].title) {
                if( ss[x].title == this.cssLinkId && ss[x].title.indexOf("size") != -1/* || (ss[x].title.indexOf(layout) != -1 && layout == newlayout)*/) {
                   // alert("enable: "+ss[x].title);
                    ss[x].disabled = false;
                    //ss[x].rel = "stylesheet";
                }
             }
        }
        
        return false;
        
		if(this.cssLink != null){
			this.cssLink.removeAttribute("disabled");
			this.cssLink.disabled = false;
			this.cssLink.rel = "stylesheet";
		}
		//this.debug();
	};
	FontSize.prototype.disable = function(){
        return;
		//alert("FontSize.disable:\nlink: " + this.cssLink);
		if(this.cssLink != null){
			this.cssLink.setAttribute("disabled", "disabled");
			this.cssLink.disabled = true;
			this.cssLink.rel = "alternate stylesheet";
		}
		//this.debug();
	};
	FontSize.prototype.debug = function(){
		alert(
				"FoneSize(" + this.idx + "):\n" +
				"disabled: " + this.cssLink.getAttribute("disabled") + "\n" +
				"disabled: " + this.cssLink.disabled + "\n" +
				"rel: " + this.cssLink.rel + "\n" +
				"\n" +
				"caller: " + FontSize.prototype.debug.caller
		);
	};
}
var FontSizer = {
	currentFontSizeIdx: 100,
	CurrentFontSize: null,
	FontSizes: new Array(),
	controlId: null,
	init: function(FontSizes, currentFontSizeIdx, controlId){
		this.FontSizes = FontSizes;
		this._initilizeFontSizes();
		this.currentFontSizeIdx = currentFontSizeIdx;
		this.controlId = controlId;
		this.set(this.currentFontSizeIdx);
	},
	add: function(dif){
		var newFontSizeIdx = this.currentFontSizeIdx + dif;
		this.set(newFontSizeIdx);
	},
	set: function(fontSizeIdx){
	
		
		/* reload styles --> needed for black-and-white version */		 		
		changeLayout(true);		
		
		$('li.textsize a').removeClass('active');
		$('li.textsize a.size'+fontSizeIdx).addClass('active');
		
		var NewFontSize = this._getFontSizeByIdx(fontSizeIdx);
		
		if(this.currentFontSizeIdx != fontSizeIdx && NewFontSize != null) {
			
			if(this.CurrentFontSize != null){
				
				if(this.CurrentFontSize.idx < NewFontSize.idx){
					NewFontSize.enable();
					this.CurrentFontSize.disable();
				} else{
					this.CurrentFontSize.disable();
					NewFontSize.enable();
				}
			} else{
				NewFontSize.enable();
			}
			this.currentFontSizeIdx = fontSizeIdx;
			this.CurrentFontSize = NewFontSize;
			
			var myImg = "";
 
			if(document.getElementById("imgFontsizeSession")) {
				myImg = document.getElementById("imgFontsizeSession");
				myImg.src = "/scripts/include/fontsize/fontsizeSession.inc.php?newfontsize="+ NewFontSize.idx +"&anticache="+ Math.random();
			}
			
			// alert("1 NewFontSize="+ NewFontSize.idx +" myImg="+ myImg.src);	

			this._adjustControl();
		}
		//this.debug();
	},
	_initilizeFontSizes: function(){
		for(var i = 0; i < this.FontSizes.length; i++){
			this.FontSizes[i].initialize();
		}
	},
	_getFontSizeByIdx: function(idx){
		var _FontSize = null;
		for(var i = 0; i < this.FontSizes.length; i++){
			if(this.FontSizes[i].idx == idx){
				_FontSize = this.FontSizes[i];
				break;
			}
		}
		return _FontSize;
	},
	_adjustControl: function(){
		var Control = document.getElementById(this.controlId);
		if(Control) {		
			Control.src = this.CurrentFontSize.controlImgSrc;
		}
	},
	debug: function(){
		for(var i = 0; i < this.cssLinks.length; i++){
			var link = this.cssLinks[i];
			alert("id: " + link.id + "\ndisabled: " + link.getAttribute("disabled"));
		}
	}
}


var fontSize1 = "";
var fontSize2 = "";
var fontSize3 = "";


function initFontSizer(pSize){
	//alert ("init:  "+pSize + " " + initFontSizer.caller);
	mySize = pSize;
	if (blackandwhite) {
		fontSize1 = new FontSize(1, "size1", "/html/images/main/blackandwhite/fontsize_module_control_size1.gif");
		fontSize2 = new FontSize(2, "size2", "/html/images/main/blackandwhite/fontsize_module_control_size2.gif");
		fontSize3 = new FontSize(3, "size3", "/html/images/main/blackandwhite/fontsize_module_control_size3.gif");
	}
	else {	
		fontSize1 = new FontSize(1, "size1", "/html/images/main/fontsize_module_control_size1.gif");
		fontSize2 = new FontSize(2, "size2", "/html/images/main/fontsize_module_control_size2.gif");
		fontSize3 = new FontSize(3, "size3", "/html/images/main/fontsize_module_control_size3.gif");
	}
	if(!mySize) mySize=1;
	FontSizer.init(new Array(fontSize1,fontSize2,fontSize3), mySize, "fontsizerControl");
	
}




function printonload() {
	window.print();
}

function selectLink(selObj, taregtself) {
	 a = Math.random();
	 a = 100*a;
	 a = Math.round(a);
	 if(taregtself) {
	 	location.href=selObj.options[selObj.selectedIndex].value
	 } else {
		 popUp = window.open("/scripts/include/referrer.php/"+selObj.options[selObj.selectedIndex].value,'NewWindow'+a,'width=750,height=550,toolbar=yes,location=yes,directories=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes');	 
	}
	 selObj.selectedIndex=0;
}

function changeLayout(reloadStyles) {
	
	if(!reloadStyles) blackandwhite = !blackandwhite;


	fontsizeImg = document.getElementById("fontsizerControl");
	fontsizeImgSrc = "/html/images/main";

	
	/* enable black-and-white version */
	if (blackandwhite) {
		for( var x = 0, ss = getAllSheets(); ss[x]; x++ ) {
			if( ss[x].title && ss[x].title.indexOf("blackandwhite") != -1) {                
			  ss[x].disabled = false;
			  ss[x].rel = "stylesheet";                
			 }
		}		
		fontsizeImgSrc += "/blackandwhite/fontsize_module_control_size"+FontSizer.currentFontSizeIdx+".gif";
		
		if($('.layout_version').size() > 0)
			$('.layout_version').html(msgblackandwhite);
			
	} else {  
		for( var x = 0, ss = getAllSheets(); ss[x]; x++ ) {
			if( ss[x].title && ss[x].title.indexOf("blackandwhite") != -1) {
				ss[x].disabled = true;
			}
		}
		fontsizeImgSrc += "/fontsize_module_control_size"+FontSizer.currentFontSizeIdx+".gif";
		
		if($('.layout_version').size() > 0)
			$('.layout_version').html(msgcolour);
	}
	
	if(!reloadStyles) {
		myLayoutImg = document.getElementById("imgLayoutSession");
		if(myLayoutImg) {
			myLayoutImg.src = "/scripts/include/layout/layoutSession.inc.php?blackandwhite="+ blackandwhite +"&anticache="+ Math.random();
		}	

		if(fontsizeImg) {
			fontsizeImg.src = fontsizeImgSrc;
			initFontSizer(FontSizer.currentFontSizeIdx); 
		}
		
	}	

}

function changeVersionText() {		
		
		var link = document.getElementById("versiontext");
		var linkText = "";

		if (blackandwhite) {
					linkText = msgblackandwhite + " <img width=\"1\" height=\"1\" title=\"\" alt=\"\" id=\"imgLayoutSession\"  src=\"/html/images/main/dummy.gif\"/>";
		} else {
					linkText = msgcolour + " <img width=\"1\" height=\"1\" title=\"\" alt=\"\" id=\"imgLayoutSession\"  src=\"/html/images/main/dummy.gif\"/>";
		}
		link.innerHTML = linkText;
		
}

function setBookmark(url, title) {
	var bookmarkurl = location.href;
	var text = document.title;
	
	if (url) bookmarkurl = url;	
	
	if (title) text = title;	

	// if (document.all) {	
	text = text.replace(/:/ ,"");
	text = text.replace(/\*/ ,"");
	text = text.replace(/\?/ ,"");
	text = text.replace(/\\/ ,"");
	text = text.replace(/"/ ,"");
	text = text.replace(/</ ,"");
	text = text.replace(/>/ ,"");
	text = text.replace(/|/ ,"");

	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(text, bookmarkurl,"");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( bookmarkurl, text); 
	} else if(window.opera && window.print) { // Opera Hotlist
		return true; 
	}  
}
/* BEGIN JS Tabbed-Pane */
    var selectedreg;
    var altselectedreg;
    var container = new Array();
    function selecttab(node, pos, array_index){
        container[array_index]["actPos"] = 0;
        container[array_index]["intStatus"] = 0;
        var rdiv = document.getElementById("tab_" + node + "_" + pos);
        var rpdiv = document.getElementById("tabcontent_" + node + "_" + pos);
        var rspdiv = document.getElementById("tabcontent_" + node);
        if (!altselectedreg) 
            altselectedreg = "tab_" + node + "_0";
        var rsdiv = document.getElementById(altselectedreg);
        
        if (rdiv && rpdiv && rspdiv && rsdiv) {
            rspdiv.innerHTML = rpdiv.innerHTML;
            rdiv.className += "tabselected";
            rsdiv.className = rsdiv.className.replace(/tabselected/, "");
            selectedreg = "tab_" + node + "_" + pos;
            altselectedreg = "tab_" + node + "_" + pos;
        }
    }
    function selecttabandscroll(node, pos, id){
    
        var rdiv = document.getElementById("tab_" + node + "_" + pos);
        var rpdiv = document.getElementById("tabcontent_" + node + "_" + pos);
        var rspdiv = document.getElementById("tabcontent_" + node);
        if (!altselectedreg) 
            altselectedreg = "tab_" + node + "_0";
        var rsdiv = document.getElementById(altselectedreg);
        
        if (document.getElementById(id)) 
            document.getElementById(id).scrollIntoView();
        
        if (rdiv && rpdiv && rspdiv && rsdiv) {
            rspdiv.innerHTML = rpdiv.innerHTML;
            rdiv.className += "tabselected";
            rsdiv.className = rsdiv.className.replace(/tabselected/, "");
            selectedreg = "tab_" + node + "_" + pos;
            altselectedreg = "tab_" + node + "_" + pos;
        }
    }
/* END JS Tabbed-Pane */


function set_cookie( name, value, expires, path, domain, secure ) {
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );

	/*
	if the expires variable is set, make the correct
	expires time, the current script below will set
	it for x number of days, to make it for hours,
	delete * 24, for minutes, delete * 60 * 24
	*/
	if ( expires )
	{
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );

	document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
	( ( path ) ? ";path=" + path : "" ) +
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}


function get_cookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );


		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}

function grab_param(name,url){
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( url );
  if( results == null )
    return "";
  else
    return results[1];
}

// registerOnload(initFontSizer);
