var onLoadFunctions = new Array();
var searchKey = '';
var searchBusy = false;
var searchClosed = false;

window.onload = init;
function init() {
	if (!document.all) {
		var ellipsisElements = getElementsByClassName('ellipsis');
		for (var i=0;i<ellipsisElements.length;i++) {
			var objLink = ellipsisElements[i].getElementsByTagName('a').item(0);
			var maxWidth = objLink.offsetWidth;
			objLink.style.overflow = 'visible';
			objLink.style.width = '100%';
			var currentWidth = objLink.offsetWidth;
			for (j=0;j<100;j++) {
				if (currentWidth > maxWidth) {
					if (objLink.innerHTML.substring(objLink.innerHTML.length-3) == '...') objLink.innerHTML = objLink.innerHTML.substring(0,objLink.innerHTML.length-3);
					objLink.innerHTML = objLink.innerHTML.substring(0,objLink.innerHTML.length-1) + '...';
					currentWidth = objLink.offsetWidth;
				}
			}
			objLink.style.width = '';
		}
	}
	
	if (onLoadFunctions.length > 0) {
		for (i = 0; i < onLoadFunctions.length; i++) {
			onLoadFunctions[i]();
		}
	}
}

function addOnLoadFunction(func) {
	try
	{
		onLoadFunctions[onLoadFunctions.length] = func;
	}
	catch(err)
	{
	  //Handle errors here
	}
}

function focusSearch(obj) {
	if (obj.value == 'zoeken') obj.value = '';
}

function onkeyPressSearch(obj) {
	try
	{
		searchClosed = false;
		if (searchBusy == false && searchKey != obj.value) {
			$("#ajaxsearchloader").show();
			setTimeout("searchForResults('" + escape(obj.value) + "');",1000);
			searchKey = obj.value;
			searchBusy = true;
		}
	}
	catch(err)
	{
	  //Handle errors here
	}
}

function searchForResults(value) {
	try
	{
		$.get("/loader/load.php?load=searchresult&zoekstring=" + value,
			function(data) {
				showSearchResults(data);
				var searchInput = $("#zoekveld").attr("value");
				if (searchInput != searchKey) {
					//document.getElementById('ajaxsearchloader').style.visibility = 'visible';
					$("#ajaxsearchloader").show();
					setTimeout("searchForResults('" + escape(searchInput) + "');",1000);
					searchKey = searchInput;
				} else {
					searchBusy = false;
				}
				
			}
		);;
		
	}
	catch(err)
	{
	  //Handle errors here
	}
}

function showSearchResults(data) {
	try
	{
		$("#ajaxsearchloader").hide();
		if (searchClosed == false) {
			var searchResultsWindow = $('#searchresults');
			var searchresultsObj = $('#searchresults').find('.resultlist');

			searchresultsObj.css("height", "");
			searchresultsObj.html(data);
			
			if (searchresultsObj.height() > 400) {
				searchresultsObj.css("height", 400);
				searchresultsObj.css("overflow", "auto");
			} else {
				searchresultsObj.css("height", searchresultsObj.height());
				searchresultsObj.css("overflow", "hidden");
			}
			
			$('#searchresults').fadeIn("normal");
			$('#searchresults').find('#close').find('img').click(function() {
				$("#searchresults").fadeOut("normal");
				searchClosed = true;
				return false;
			});
		}
	}
	catch(err)
	{
	  //Handle errors here
	}
}

function getObj(name) {
	if (document.getElementById) {
		return document.getElementById(name);
	} else {
		return document.all[name];
	}
}

function getElementsByClassName(classname, node) {
	if(!node) node = document.getElementsByTagName("body")[0];
	var a = [];
	var re = new RegExp('\\b' + classname + '\\b');
	var els = node.getElementsByTagName("*");
	for(var i=0,j=els.length; i<j; i++)
	if(re.test(els[i].className))a.push(els[i]);
	return a;
}

function autoEllipseText(element, text, width)
{
   element.innerHTML = '<span id="ellipsisSpan" style="white-space:nowrap;">' + text + '</span>';
   inSpan = document.getElementById('ellipsisSpan');
   if(inSpan.offsetWidth> width)
   {
      var i = 1;
      inSpan.innerHTML = '';
      while(inSpan.offsetWidth <(width) && i <text.length)
      {
         inSpan.innerHTML = text.substr(0,i) + '...';
         i++;
      }
       
      returnText = inSpan.innerHTML;
      element.innerHTML = '';
      return returnText;
   }
   return text;
}

function protectContent() {
	document.onselectstart = function() {return false;} // ie
	if (!document.all) document.onmousedown = function() {return false;} // mozilla
}

function loadHeader(file, height, themeid, extraurl, extrapixel) {
	
	if (extraurl) {
		file = file + '?clickTARGET=_blank&clickTAG=/?themelink=1';
	}
	
	var color1 = $("body").css("background-color");
	if (color1.substring(0,3) == "rgb") color1 = rgb2hex(color1);
	if (file == "/images/header/logo_flash.swf?long=yes") {
		file = file + "&color=" + color1;
	} else if (file == "/images/header/logo_flash.swf") {
		file = file + "?color=" + color1;
	}

	var s1 = new SWFObject(file,"headerID","935",height,"7");
	s1.addParam("allowscriptaccess","always");
	s1.addParam("allowfullscreen","false");
	s1.addParam("scale","noscale");
	s1.addParam("wmode","transparent");
	s1.write("logogamersnet");
	
	if (themeid) {
		pic1= new Image(1,1); 
		pic1.src = "/images/scripts/overlay.php?id=" + themeid;
	}
	
	if (extrapixel) {
		pic2 = new Image(1,1);
		pic2.src = extrapixel;
	}
}

function loadMinisite(file1, file2, themeid, extraurl, extrapixel, rolledout) {
	
	minisite_rolledinfile = file1;
	minisite_rolledoutfile = file2;
	minisite_themeid = themeid;
	minisite_extraurl = extraurl;
	minisite_extrapixel = extrapixel;
	
	var height = '100';
	var file = file1;
	
	if (rolledout == true) {
		file = file2;
		height = '338';
	}
	
	var s1 = new SWFObject(file,"minisiteID","617",height,"7");
	s1.addParam("allowscriptaccess","always");
	s1.addParam("allowfullscreen","false");
	s1.addParam("scale","noscale");
	s1.addParam("wmode","transparent");
	s1.write("rolloutminisite");
	
	if (themeid) {
		pic1= new Image(1,1); 
		pic1.src = "/images/scripts/overlay.php?id=" + themeid;
	}
	
	if (extrapixel) {
		pic2 = new Image(1,1);
		pic2.src = extrapixel;
	}
	
	if (extraurl) {
		objDiv = document.getElementById('rolloutminisite');
		objDiv.parentNode.innerHTML = '<a href="/?minisitelink=1" target="_blank"><img src="/images/spacer.gif" width="617" height="' + height + '" style="position:absolute;z-index:99" border="0" /></a>' + objDiv.parentNode.innerHTML; 
	}
}

function toggleBanner(onOff) {
	if (onOff == 1) {}
	loadMinisite(minisite_rolledinfile, minisite_rolledoutfile, minisite_themeid, minisite_extraurl, minisite_extrapixel, onOff == 1);
}

function loadCarrousel() {
	var FO = { movie:"/carrousel/flash/gn_3d_carousel.swf", width:"614", height:"240", scale:"noscale", wmode:"transparent", allowScriptAccess:"sameDomain", majorversion:"6", build:"0" };
	UFO.create(FO, "carrousel");
}

function loadMovie(strmovie) {
	var s1 = new SWFObject("/movies/flvplayer.swf","single","100%","100%","7");
	s1.addParam("allowfullscreen","true");
	s1.addVariable("file",strmovie);
	s1.addVariable("link","http://www.gamersnet.nl");
	s1.addVariable("linktarget","_blank");
	s1.write("movieid:" + strmovie);
}

function loadPrijsvraag(id, file, vrijdag) {
	prijsvraagImageObj = document.getElementById(id);
	
	if (prijsvraagImageObj) {
		if (vrijdag == 1) {
			prijsvraagImageObj.parentNode.innerHTML = '<div id="CountDown' + id + '" style="position:absolute;padding-left:95px;padding-top:130px;color:#ffffff;font-weight: bold;font-size: 24px;text-decoration: none;"></div>' + prijsvraagImageObj.parentNode.innerHTML;
			var startdate = new Date();
			var enddate = new Date();
			enddate.setHours(23,59,59);
			remaining = (enddate - startdate) / 1000; 
			ActivateCountDown('CountDown' + id, remaining);
		}
		
		prijsvraagImageObj = document.getElementById(id);
		prijsvraagImageObj.src = '/images/scripts/imageblok.php?file=' + file;
	}
}

function open_window(url, title, width, height) {
	lview = window.open(url,title,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=yes,resizable=no,width=' + width + ',height=' + height);
	lview.focus();
}

function open_screenshot(url, width, height) {
	lview = window.open(url,"smallwindow",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=no,resizable=yes,width=' + width + ',height=' + height);
	lview.focus();
	return false;
}

function check_email(emailad) {
	var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
	var check=/@[\w\-]+\./;
	var checkend=/\.[a-zA-Z]{2,3}$/;
	if(((emailad.search(exclude) != -1)||(emailad.search(check)) == -1)||(emailad.search(checkend) == -1)) {
		alert("Het opgegeven e-mail adres is onjuist, controleer het adres en probeer het opnieuw.");
		return false;
	}
	return true;
}

function check_all(name, value) {
	var checkboxes = document.getElementsByName(name);
	for (i = 0; i < checkboxes.length; i++) {
		checkboxes[i].checked = value;
	}
}

function delete_replies(reply_id) {
	var aantalChecked = 0;
	var checkboxes = document.getElementsByName('delreply[]');
	var warning = 'Weet je zeker dat je alle geselecteerde reacties wilt verwijderen?';
	var selectedIndex = false;
	
	// Controleer of er uberhaupt checkboxes zijn aangevinkt
	for (i = 0; i < checkboxes.length; i++) {
		if (checkboxes[i].checked) aantalChecked++;
	}
	
	// Zo niet, vink dan de checkbox aan van dezelfde reply als waar op het del icon is gedrukt
	if (aantalChecked == 0) {
		warning = 'Weet je zeker dat je deze reactie wilt verwijderen?';
		for (i = 0; i < checkboxes.length; i++) {
			if (checkboxes[i].value == reply_id) {
				selectedIndex = i;
				checkboxes[selectedIndex].checked = true;
			}	
		}
	}
	
	// Submit het formulier
	if (confirm(warning)) {
		objForm = checkboxes[0].form;
		objForm.action.value = 'deletereply';
		objForm.submit();
	} else if (selectedIndex) {
		checkboxes[selectedIndex].checked = false;
	}
}

function closepopup(divId) { 
	if (document.layers) {
		document.layers[divId].visibility = 'hide';
	} else if (document.all) {
		document.all[divId].style.visibility = 'hidden';
  	} else if (document.getElementById) {
  		document.getElementById(divId).style.visibility = 'hidden';
  	}
}

function showpopup(divId, posY) { 
	state=typeof topPos;
  	if(state=='undefined') {
  		topPos=-posY-50;
  	}
  	if(topPos < posY) { 
  		topPos+=40;
	
		if (document.layers) {
			document.layers[divId].visibility = 'show';
			document.layers[divId].top = topPos + 'px';
		} else if (document.all) {
			document.all[divId].style.visibility = 'visible';
			document.all[divId].style.top = topPos + 'px';
	    } else if (document.getElementById) {
	    	document.getElementById(divId).style.visibility = 'visible';
	    	document.getElementById(divId).style.top = topPos + 'px';
	    }
    	setTimeout("showpopup('" + divId + "'," + posY + ");",25);
	} else {
		topPos = null;
	}
}

function iamhere(value) {
	if (value == 'd2VzbGV5QHJ') {
		document.location='mailto:info@request-design.nl';
	}
}

function clickRememberPassword() {
	document.getElementById('sideloginform').onthouden.checked = !document.getElementById('sideloginform').onthouden.checked;
}

var artikelsortdirection = -1;
var artikelsorter = 'datum';
function artikelsortlist(value, soort, genre, platform) {
	
	$("#ajaxloader").append('<img src="/images/ajax-loader.gif"/>');
	
	
	if (artikelsorter == value) {
		artikelsortdirection = (artikelsortdirection * -1) + 1;
		
	} else {
		artikelsortdirection = 1;
	}
	artikelsorter = value;
	
	$("#artikellijstload").load("/loader/load.php?load=artikellijst&soort=" + soort + "&platform=" + platform + "&genre=" + genre + "&orderby=" + artikelsorter + "&direction=" + artikelsortdirection); 
}

var _countDowncontainer=0;
var _currentSeconds=0;

function ActivateCountDown(strContainerID, initialValue) {
	_countDowncontainer = document.getElementById(strContainerID);
	
	if (!_countDowncontainer) {
		alert("count down error: container does not exist: "+strContainerID+
			"\nmake sure html element with this ID exists");
		return;
	}
	
	SetCountdownText(initialValue);
	window.setTimeout("CountDownTick()", 1000);
}

function CountDownTick() {
	if (_currentSeconds <= 0) {
		//alert("your time has expired!");
		return;
	}
	
	SetCountdownText(_currentSeconds-1);
	window.setTimeout("CountDownTick()", 1000);
}

function SetCountdownText(seconds) {
	//store:
	_currentSeconds = seconds;
	
	//get minutes:
	var minutes=parseInt(seconds/60);
	
	//shrink:
	seconds = (seconds%60);
	
	//get hours:
	var hours=parseInt(minutes/60);
	
	//shrink:
	minutes = (minutes%60);
	
	//build text:
	var strText = AddZero(hours) + ":" + AddZero(minutes) + ":" + AddZero(seconds);
	
	//apply:
	_countDowncontainer.innerHTML = strText;
}

function AddZero(num) {
	return ((num >= 0)&&(num < 10))?"0"+num:num+"";
}

function rgb2hex(rgb) {
	rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
	function hex(x) {
		hexDigits = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
				"a", "b", "c", "d", "e", "f");
		return isNaN(x) ? "00" : hexDigits[(x - x % 16) / 16]
				+ hexDigits[x % 16];
	}
	return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
}

function popupLoader(title, loader) {
	this.loader = loader;
	this.loaded = false;
	this.posX = null;
	
	this.init = function() {
		var popupHtml = '<div class="loadpopup"><div class="header"><h1>' + title + '</h1><img src="/images/spacer.gif" /></div><div class="content"><div class="loading"></div></div></div>';
		$('body').append(popupHtml);
		this.posX = ($(window).width() - $('.loadpopup').width()) / 2;
		$('.loadpopup').css('left', this.posX);
		$('.loadpopup').find('img').click(function() { $('.loadpopup').hide('fast'); });
		$('.loadpopup').draggable({ cursor: 'move', opacity: 0.35, handle: '.header', scroll: false });
		$('.loadpopup').resizable({ animate: true });
		this.loaded = true;
		
		$.get('/loader/load.php?load=' + this.loader,
			function(data) {
				$('.loadpopup').find('.content').html(data);
			}
		);
	}
	
	this.setPosX = function(value) {
		this.posX = value;
		$('.loadpopup').css('left', this.posX);
	}
	
	this.setWidth = function(value) {
		$('.loadpopup').width(value);
	}
	
	this.show = function() {
		if (!this.loaded) this.init();
		$('.loadpopup').show('fast');
	}
	
	this.init();
}