/* Merged Plone Javascript file
 * This file is dynamically assembled from separate parts.
 * Some of these parts have 3rd party licenses or copyright information attached
 * Such information is valid for that section,
 * not for the entire composite file
 * originating files are separated by ----- filename.js -----
 */

/* ----- ticker.js ----- */
/*
** subject is geen valide attribute op een tag
** - getAttribute("subject")
** + getAttribute("title")
*/

var tickspeed=3000 //ticker speed in miliseconds (2000=2 seconds)
var enablesubject=0 //enable scroller subject? Set to 0 to hide

if (document.getElementById){
	document.write('<style type="text/css">\n')
	document.write('.dropcontent{display:none;position:absolute;left:-9999;}\n')
	document.write('</style>\n')
}

var selectedTag=0
var totalTags=0

function contractall(){
	var inc=0
	while (document.getElementById("ticker-msg"+inc)){
		document.getElementById("ticker-msg"+inc).style.display="none"
	inc++
	}
}

function expandone(){
	var selectedTagObj=document.getElementById("ticker-msg"+selectedTag)
	contractall()
	document.getElementById("ticker-subject").innerHTML=selectedTagObj.getAttribute("title")
	selectedTagObj.style.display="inline"
	selectedTag=(selectedTag<totalTags-1)? selectedTag+1 : 0
	setTimeout("expandone()",tickspeed)
}

function startscroller(){
	while (document.getElementById("ticker-msg"+totalTags)!=null)
	totalTags++
	expandone()
	if (!enablesubject)
	document.getElementById("ticker-subject").style.display="none"
}

if (window.addEventListener)
	window.addEventListener("load", startscroller, false)
	else if (window.attachEvent)
	window.attachEvent("onload", startscroller)


/* ----- toggleRanking.js ----- */
function toggleRanking() {
    var body = cssQuery('body')[0];

    if (hasClassName(body, 'hiderank')) {
        // unset cookie
        removeClassName(body, 'hiderank');
        createCookie('hiderank', '');
    } else {
        // set cookie
        addClassName(body, 'hiderank');
        createCookie('hiderank', '1');
    }
};

function toggleRankingLoad() {
    // based on cookie
    if (readCookie('hiderank') == '1') {
        var body = cssQuery('body')[0];
        addClassName(body, 'hiderank');
    }
};
registerPloneFunction(toggleRankingLoad)




/* ----- launchWindow.js ----- */
function launchWindow(url, name, height, width) {
  var str = "height=" + height + ",innerHeight=" + height;
  str += ",width=" + width + ",innerWidth=" + width;
  if (window.screen) {
    var ah = screen.availHeight - 30;
    var aw = screen.availWidth - 10;

    var xc = (aw - width) / 2;
    var yc = (ah - height) / 2;

    str += ",left=" + xc + ",screenX=" + xc;
    str += ",top=" + yc + ",screenY=" + yc;
  }
  return window.open(url, name, str);
}


/* ----- getAsyncMacro.js ----- */
var xmlhttp1;
var xmlhttp2;
var url1   = 'http://' + window.location.host + '/get_banner';
var target1 = 'banner';
var url2 = 'http://' + window.location.host + '/get_banner2';
var target2 = 'banner2';

function getAsyncMacro() {
    // fire top slot (2) first
    getAsyncMacro2();
    // then fill bottom slot (1)
    getAsyncMacro1();
}

function getAsyncMacro1(){
  xmlhttp1=null;
  // code for Mozilla, etc.
  if (window.XMLHttpRequest){
    xmlhttp1=new XMLHttpRequest();
  }
  // code for IE
  else if (window.ActiveXObject){
    xmlhttp1=new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (xmlhttp1!=null){
    xmlhttp1.onreadystatechange=state_Change1;
    xmlhttp1.open("GET",url1,true);
    xmlhttp1.send(null);
  }else{
    alert("Your browser does not support XMLHTTP.");
  }
}

function state_Change1(){
  // if xmlhttp shows "loaded"
  if (xmlhttp1.readyState==4){
  // if "OK"
    if (xmlhttp1.status==200){
      var div = document.getElementById(target1);
      if (div){
        div.style.display="block";
        div.innerHTML=xmlhttp1.responseText;
      }
    }else{
	//alert("Problem retrieving XML data");
    }
  }
}

function getAsyncMacro2(){
  xmlhttp2=null;
  // code for Mozilla, etc.
  if (window.XMLHttpRequest){
    xmlhttp2=new XMLHttpRequest();
  }
  // code for IE
  else if (window.ActiveXObject){
    xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (xmlhttp2!=null){
    xmlhttp2.onreadystatechange=state_Change2;
    xmlhttp2.open("GET",url2,true);
    xmlhttp2.send(null);
  }else{
    alert("Your browser does not support XMLHTTP.");
  }
}

function state_Change2(){
  // if xmlhttp shows "loaded"
  if (xmlhttp2.readyState==4){
  // if "OK"
    if (xmlhttp2.status==200){
      var div = document.getElementById(target2);
      if (div){
        div.style.display="block";
        div.innerHTML=xmlhttp2.responseText;
      }
    }else{
	//alert("Problem retrieving XML data");
    }
  }
}

registerPloneFunction(getAsyncMacro);


/* ----- categoryLogger.js ----- */

var HTTP = {};
HTTP.debug = false;
HTTP._factories = [
	function() { return new XMLHttpRequest(); },
	function() { return new ActiveXObject("Msxml2.XMLHTTP"); },
	function() { return new ActiveXObject("Microsoft.XMLHTTP"); },
	];
HTTP._factory = null;
HTTP.newRequest = function()
{
	if (HTTP._factory != null) return HTTP._factory();

	for (var i = 0; i < HTTP._factories.length; i++) {
		try {
			var factory = HTTP._factories[i];
			var request = factory();
			if (request != null) {
				HTTP._factory = factory;
				return request;
			}
		} catch(e) {
			continue;
		}
	}
	HTTP._factory = function()
	{
		throw new Error("XMLHttpRequest not supported");
	}
	HTTP._factory();
	return null;
}

function DoLog(category, baseurl, debug)
{
	var url = baseurl + "?cat=" + category;
	HTTP.debug = debug;
	request = HTTP.newRequest();
	if (request) {
		request.onreadystatechange = function() {
			if (request.readyState == 4 && request.status == 200 && HTTP.debug)
				alert(request.responseText);
		}
		request.open("GET", url, true);
		request.send(null);
	}
}

function mnetDoLog()
{
	var logurl = 'http://' + window.location.host + '/logger/';
	var parray = window.location.pathname.split('/',4);
	if (parray.length > 2) {
		var category = parray[2];
		DoLog(category, logurl, false);
	}
}

registerPloneFunction(mnetDoLog);


