// Ajax Objecten

var loadedobjects=""
var rootdomain="http://"+window.location.hostname

function ajaxpage(url, containerid){
	var page_request = false
	
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest()
	
	else if (window.ActiveXObject){ // if IE
		try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		} 
		catch (e){
			try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){}
		}
	}
	else
		return false
	
	page_request.onreadystatechange=function(){
		loadpage(page_request, containerid)
	}
	
	page_request.open('GET', url, true)
	page_request.send(null)
}

function loadpage(page_request, containerid){
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
		document.getElementById(containerid).innerHTML=page_request.responseText
		window.restrictInputTo = containerid;
		Custom.init()
	}
}

function loadobjs(){
	if (!document.getElementById)
		return
		
	for (i=0; i<arguments.length; i++){
		var file=arguments[i]
		var fileref=""
		
		if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
			if (file.indexOf(".js")!=-1){ //If object is a js file
				fileref=document.createElement('script')
				fileref.setAttribute("type","text/javascript");
				fileref.setAttribute("src", file);
			}
			else if (file.indexOf(".css")!=-1){ //If object is a css file
				fileref=document.createElement("link")
				fileref.setAttribute("rel", "stylesheet");
				fileref.setAttribute("type", "text/css");
				fileref.setAttribute("href", file);
			}
		}
		
		if (fileref!=""){
			document.getElementsByTagName("head").item(0).appendChild(fileref)
			loadedobjects+=file+" " //Remember this object as being already added to page
		}
	}
}

function voteReview(reviewType,reviewId,thumb){
	ajaxpage('/ajax/vote/'+reviewType+'/'+reviewId+'/'+thumb,'thumbstatus_'+reviewId);
}

function opmaakcode(type, text, where, ext){
	target = document.getElementById(where);
	if (target !== null)
	{
		if (typeof target.cursorPos != 'undefined')
		{
			var cursorPos = target.cursorPos;
			if (type != 'plain') {text = cursorPos.text;}
			cursorPos.text = det_replace(type, text, ext);
		}
		else if (typeof target.selectionStart != 'undefined')
		{
			// remember scrollposition
			var scrollTop = target.scrollTop;

			var sStart = target.selectionStart;
			var sEnd = target.selectionEnd;
			if (type != 'plain') {text = target.value.substring(sStart, sEnd);}
			text = det_replace(type, text, ext);
			target.value = target.value.substr(0, sStart) + text + target.value.substr(sEnd);
			var nStart = sStart == sEnd ? sStart + text.length : sStart;
			var nEnd = sStart + text.length;
			target.setSelectionRange(nStart, nEnd);
		}
		else
		{
			if (type != 'plain') {text = '';}
			target.value += det_replace(type, text, ext);
		}

		target.focus();
		if (typeof target.cursorPos != 'undefined') {target.onselect();}
	}
}

function det_replace(type, text, ext){
	var val = '';
	switch (type)
	{
		case 'plain':
			break;
		case 'bold':
			text = '[b]'+text+'[/b]';
			break;
		case 'italic':
			text = '[i]'+text+'[/i]';
			break;
		case 'underline':
			text = '[u]'+text+'[/u]';
			break;
		case 'strike':
			text = '[s]'+text+'[/s]';
			break;
		case 'sub':
			text = '[sub]'+text+'[/sub]';
			break;
		case 'sup':
			text = '[sup]'+text+'[/sup]';
			break;
		case 'color':
			text = '[color=#'+ext+']'+text+'[/color]';
			break;
		case 'smiley':
			text = ' ' + ext + '';
			break;
		case 'spoiler':
			text = '[spoiler]'+text+'[/spoiler]';
			break;
		case 'code':
			text = '[code]'+text+'[/code]';
			break;
		case 'php':
			text = '[php]'+text+'[/php]';
			break;
		case 'spoiler':
			text = '[spoiler]'+text+'[/spoiler]';
			break;
		case 'quote':
			text = '[quote]'+text+'[/quote]';
			break;
		case 'listbullet':
			text = '\r\n[*]'+(text.split(/\r?\n/).join('\r\n[*]'))+'\r\n';
			break;
		case 'url':
			if (/^(http:\/\/|www\.)/i.test(text))
			{
				val = prompt('Omschrijving:', text);
				if (val !== null && val !== '') {text = '[url='+text+']'+val+'[/url]';}
			}
			else
			{
				val = prompt('Voer de URL in:','http:\/\/');
				if (val !== null && val != 'http:\/\/')
				{
					if (text === '') {text = '[url]'+val+'[/url]';}
					else {text = '[url='+val+']'+text+'[/url]';}
				}
			}
			break;
		case 'img':
			if (text === '')
			{
				val = prompt('Voer de URL in:','http:\/\/');
				if (val !== null && val != 'http:\/\/') {text = '[img]'+val+'[/img]';}
			}
			else
			{
				text = '[img]'+text+'[/img]';
			}
			break;
		case 'quotesplits':
			text += '[/quote]\r\n[quote]';
			break;
	}
	return text;
}

function addsmiley (what,where){
	target			= document.getElementById(where);
	target.value	= target.value + ' ' + what;
}

function constructQuery(elm){
	var querystring = '';
	var sep = '';
	
	for (i=0;i<elm.elements.length;i++){
		if (elm.elements[i].type=="text"||elm.elements[i].type=="hidden"){
			querystring+=sep+elm.elements[i].name+'='+elm.elements[i].value.replace('&','%26');
			sep='&';
		} else if (elm.elements[i].type=="radio" || elm.elements[i].type=="checkbox"){
			if (elm.elements[i].checked == true){
				querystring+=sep+elm.elements[i].name+'='+elm.elements[i].value.replace('&','%26');
				sep='&';
			}
		} else if (elm.elements[i].tagName=="SELECT"){
			options = elm.elements[i].options;
			
			for (o=0;o<options.length;o++){
				if (options[o].selected){
					querystring+=sep+elm.elements[i].name+'='+options[o].value.replace('&','%26');
					sep='&';
				}
			}
		}
	}
	
	ajaxpage('/ajax/search?'+querystring,elm.target,"POST");	
}

function createPopup(element){
	window.open(element.href+'?popup','scpopup','width=750,height=600,scrollbars=yes,toolbar=no,location=no'); 
	return false;
}

/*
Vakantie landen / continenten
*/

function showCountries(continentId){
	var container = document.getElementById("continentcountries");
	
	for (i=0;i<container.childNodes.length;i++){
		node = container.childNodes[i];
		
		if (node.id !== undefined){
			if (node.id == "countrylist_"+continentId){
				node.style.display = '';
			} else {
				node.style.display = 'none';
			}
		}
	}
	
	var tabContainer = document.getElementById("tabs");
	
	for (i=0;i<tabContainer.childNodes.length;i++){
		node = tabContainer.childNodes[i];
		
		if (node.id !== undefined){
			if (node.id == "continentTab_"+continentId){
				node.className = 'active';
			} else {
				node.className = '';
			}
		}
	}
}

/*
Shop overzicht, top winkels
*/

function showShops(type){
	var container = document.getElementById("shopcontainer");
	
	for (i=0;i<container.childNodes.length;i++){
		node = container.childNodes[i];
		
		if (node.id !== undefined){
			if (node.id == "shoplist_"+type){
				node.style.display = '';
			} else {
				node.style.display = 'none';
			}
		}
	}
	
	var tabContainer = document.getElementById("tabs");
	
	for (i=0;i<tabContainer.childNodes.length;i++){
		node = tabContainer.childNodes[i];
		
		if (node.id !== undefined){
			if (node.childNodes[0].id == "topTab_"+type){
				node.className = 'selected';
			} else {
				node.className = '';
			}
		}
	}
}    

function scrollLoginBox(){
	if (navigator.appName == "Microsoft Internet Explorer"){
		position = document.body.scrollTop;
	} else {
		position = window.pageYOffset;
	}
	
	$("#loginBg").css("top",position);
	$("#loginMask").css("top",position);
	
	var scrollTimeout = window.setTimeout("scrollLoginBox()",300);
}

function loginBox(returnAction){
	$("#loginBg").show();
	$("#loginMask").show('puff',{},10);
	$("#loginCntr").show('slide',{},500);
	$("#returnAction").val(returnAction);
	
	var scrollTimeout = window.setTimeout("scrollLoginBox()",300);
	
	return false;
}

$(document).ready(function(){	
	$("#closeLogin").click(function(){
		window.showLogin = false;
		$("#loginCntr").hide('slide',{},500,function(){
			$("#loginMask").css('display','none');
			$("#loginBg").css('display','none');
			$("#username").focus();
			//var scrollTimeout = window.clearTimeout(scrollTimeout);
		});
	});
});
