// JavaScript Document

var url_prefix = '';
var loader_html = '<div class="loaderAnimation"></div>';
var http;

function toggleBtn(itemId, buttonId) {

  var button = $(buttonId);
  var panel  = $(itemId);

  if (panel.style.display == 'none') {
	new Effect.BlindDown(panel, {duration: 0.5});
	$$('#' + buttonId + ' span').each(function(s) {
	  s.style.backgroundPosition = "0px -400px";
	});
  }
  else {
	new Effect.BlindUp(panel, {duration: 0.5});
	$$('#' + buttonId + ' span').each(function(s) {
	  s.style.backgroundPosition = "0px 0px";
	});
  }
}

sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

function get_height_of_element(element) {
  var h = 0;
  var o;

  if(element) {
    if ( (o = document.defaultView) && o.getComputedStyle) {
      h = o.getComputedStyle(element, null).height;
      h.replace(/px/, '');
    } else if ('number' == typeof element.offsetHeight) {
      h = element.offsetHeight;
    }
  }

  return parseInt(h, 10);
}

function getHTTPObject(parallel) {
	if (http && !parallel) {
	  http.abort();   /*.transport.*/
	  http = '';
	}

	if (typeof XMLHttpRequest != 'undefined') {
	  http = new XMLHttpRequest();
	}
	if (!http) {
	  try {
		http = new ActiveXObject("Msxml2.XMLHTTP");
	  }
	  catch (e) {
		try {
		  http = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch (e) {} 
	  }
	}

	if (http) {
	  return http;
	} else {
	  return false;
	}
}

function pausecomp(millis) {
	date = new Date();
	var curDate = null;

	do {
		var curDate = new Date();
	}
	while(curDate-date < millis);
}

function HTTPsend(posttype, request, content, callbackhandler, errorhandler, waithandler, parallel) {
                 // posttype = POST | GET, request = params, content = post content
    var http = getHTTPObject(parallel);

    if (http) {
        http.open(
            posttype,
            request,
            true);
        http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

        http.onreadystatechange = function() {
            if (http.readyState == 4) {
                if (http.status == 200) {
                    var re = /^<Quiz><error/;
                    if (re.test(http.responseText)) {
                        if (errorhandler) eval(errorhandler);
                    } else {
                        var result = http.responseText;
                        if (callbackhandler) eval(callbackhandler);
                    }
                } else {
                    if (errorhandler) eval(errorhandler);
                }
            } else {
                if (waithandler) eval(waithandler);
            }
        }

        http.send(content + '&ws=1&rand=' + Math.random());
    }
}

function findPosX (obj) {
  var curleft = 0;
  if(obj.offsetParent)
    while(1) {
      curleft += obj.offsetLeft;
      if (!obj.offsetParent)
        break;
        obj = obj.offsetParent;
    }
  else if(obj.x)
    curleft += obj.x;
    return curleft;
}

function findPosY (obj) {
  var curtop = 0;
  if(obj.offsetParent)
    while (1) {
      curtop += obj.offsetTop;
      if (!obj.offsetParent)
        break;
        obj = obj.offsetParent;
    }
  else if (obj.y)
    curtop += obj.y;
    return curtop;
}

function get_height_of_element(element) {
  var h = 0;
  var o;

  if(element) {
    if ( (o = document.defaultView) && o.getComputedStyle) {
      h = o.getComputedStyle(element, null).height;
      h.replace(/px/, '');
    } else if ('number' == typeof element.offsetHeight) {
      h = element.offsetHeight;
    }
  }

  return parseInt(h, 10);
}

function get_height_of_window() {
  var windowHeight = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
  return windowHeight;
}

function checkForceRedirectTo() {
  if (document.getElementById('forceRedirectTo')) {
	window.location = document.getElementById('forceRedirectTo').value;
  }
}

function checkForceReload() {
  if (document.getElementById('forceReload')) {
	window.location.reload();
  }
}

function collectionToArray(col) {
  a = new Array();
  for (i=0; i<col.length; i++)
	a[a.length] = col[i];
  return a;
}

function _getParams(parent) {
  // get params from container and content divs
  var inputs = collectionToArray(parent.getElementsByTagName("INPUT"));
  var params = new Array();
  for (var i=0; i<inputs.length; i++) {
	params[inputs[i].name] = inputs[i].value;
  }
  var textareas = collectionToArray(parent.getElementsByTagName("TEXTAREA"));
  for (var i=0; i<textareas.length; i++) {
	params[textareas[i].name] = textareas[i].value;
  }
  var selects = collectionToArray(parent.getElementsByTagName("SELECT"));
  for (var i=0; i<selects.length; i++) {
	params[selects[i].name] = selects[i].value;
  }

  return params;
}

function _getContentTarget(parent) {
  // find target
  var divs = collectionToArray(parent.getElementsByTagName("SPAN"));
  var reContentTarget = /content/;
  var contentTarget;
  for (var i=0; i<divs.length; i++) {
	if (divs[i].className && divs[i].className.match(reContentTarget)) {
	  contentTarget = divs[i];
	  return contentTarget;
	}
  }
  return contentTarget;
}

function sendUrlAndReturnResult(level1, level2, level3, targetContainerId) {

  var parameters = new Hash();
  parameters.set('level1', level1);
  parameters.set('level2', level2);
  parameters.set('level3', level3);
  parameters.set('ws',     '1');
  parameters.set('rand',   Math.random());

  new Ajax.Request(url_prefix + '/neo/index.pl', {
	parameters: parameters,
	onSuccess: function(transport) {
	  $(targetContainerId).innerHTML = transport.responseText;
	  checkForceRedirectTo();
	  checkForceReload();
	}
  });

/*
  // fetch
	HTTPsend(
	  'POST',
	  url_prefix + '/neo/index.pl',
	  'level1=' + level1 + '&level2=' + level2 + '&level3=' + level3,
	  "document.getElementById('" + targetContainerId + "').innerHTML = result; checkForceRedirectTo(); checkForceReload();",
	  "document.getElementById('" + targetContainerId + "').innerHTML = result;",
	  '',
	  1
	);
*/
}


