/* JavaScripts Impulse site 6/2004 S.Sanders	*/

var mailAddress = "impulsedans|hetnet.nl"

function mailLink(address,bodyText){
	/* default aan impulse	*/
	if(!address || !address.length) var address = mailAddress;
	if(!bodyText || !bodyText.length) var bodyText = ""
	var subjectText = "Bericht%20van%20Impulse%20site:%20" + this.location.hostname + this.location.pathname
	/* email adressen gecodeerd als persoon|adres ipv persoon@adres ivm email harvesting	*/
	address = address.replace(/[|]/g,"@")
	location.href = "mailto:" + address + "?subject=" + subjectText + "&body=" + bodyText
}

function writeMailLink(){
	var addr = mailAddress.replace(/[|]/g,"@")
	var str = "<a href='javascript:mailLink()'>" + addr +"</a>"
	document.write(str)
}

//staat er iets in de string?

function isEmpty(str){
	return(str==""||str=="undefined"||str==0||str=="null"||str==null)
}

function killSpace(str){
	/* Haal alle spaties uit de string		*/
	re1 = /\s/g
	str = str.replace(re1,"")
	return(str)
}

function onlyLetters(str){
	/* alleen de letters er uit halen	*/
	var re = /[^a-z,A-Z]/g
	str = str.replace(re,"")
	return(str)
}

var slash = location.protocol == "http:"? "/" : "\\"

/* oproep: bookmark("www.groovin-high.com", "Groovin' High allround coverband Maastricht")	*/

function bookmark(url,description){
	nsUser="Druk op Enter, daarna Ctrl + D om een bookmark te maken" 

	if(navigator.appName=='Microsoft Internet Explorer')
		window.external.AddFavorite(url,description)
	else if (navigator.appName=='Netscape')
		alert(nsUser)
}

function intraSearch(myForm){
	if(myForm.query.value == ""){
		var word = prompt("Welk zoekwoord wil je zoeken?","");
		if(!isEmpty(word)){
			myForm.query.value = word;
			return(true);
			}
		else{
			myForm.query.focus();
			return(false);
			}
		}
}

/*---------------------------------------------*/
/* Functie om een search querystring te parsen	*/
/* Sander Sanders juni 2003			*/
/*---------------------------------------------*/

function getValueByName(vName,locSearch){
	var name,value,varArr = new Array()
	
	if(arguments.length < 2) locSearch = location.search;
	
	locSearch = locSearch.substring(locSearch.indexOf("?")+1,locSearch.length)
	var arr = locSearch.split("&")

	function variable(name,value){
	/* bouw een variable object	*/
	this.name	= name
	this.value	= value
	}

	for(var i=0;i<arr.length;i++){
		name 		= arr[i].substring(0, arr[i].indexOf("="))
		value 		= arr[i].substring(arr[i].indexOf("=") + 1, arr[i].length)
		varArr[i] 	= new variable(name,value)
		varArr[name]	= varArr[i]	/* maak een identifier, identiek aan de name van de variabele	*/
	}
	return(typeof varArr[vName] == "undefined"? "" : unescape(varArr[vName].value))
}

/*-------------------------------------*/

function toPrices(course){
	/* Naar de prijzenpagina	*/
	var loc = ""
	/* naam cursus staat tussen dubbele punt en eerste komma	*/
	var cursusNaam = arguments.length? course : document.title
	var x1 = cursusNaam.indexOf(":")+1
	var x2 = cursusNaam.indexOf(",") < 0?cursusNaam.length : cursusNaam.indexOf(",")
	cursusNaam = cursusNaam.substring(x1,x2)
	loc = "prijzen.htm" + "?cursus=" + escape(onlyLetters(cursusNaam))
	self.location.href = loc
}

function subscribe(course){

	/*	naar inschrijfformulier	*/
	var loc = ""
	/* naam cursus staat tussen dubbele punt en eerste komma	*/
	var cursusNaam = arguments.length? course : document.title
	var x1 = cursusNaam.indexOf(":")+1
	var x2 = cursusNaam.indexOf(",") < 0?cursusNaam.length : cursusNaam.indexOf(",")
	cursusNaam = cursusNaam.substring(x1,x2)
	loc = "inschrijfformulier.htm" + "?cursus=" + escape(onlyLetters(cursusNaam))
	window.open(loc);
}

function getRadio(myRadio){
	/* haal de geselecteerde waarde op	*/
	var ret = ""
	for(var i = 0;i<myRadio.length;i++){
		if(myRadio[i].checked){ret = myRadio[i].value}
	}
	return(ret)
}

/* op alfabet sorteren van menu options, is minder simpel dan gedacht...	*/

function sortSelect(obj,startAt) {
	/* tweede parameter geeft aan of er (een aantal) options bovenaan staan moeten blijven	*/
	if(arguments.length == 1 || startAt < 1) startAt = 0;
	var o = new Array();
	if(obj.options==null)return;
	/* kopie maken:	*/
	for(var i=startAt; i<obj.options.length; i++){
		o[o.length] = new Option(obj.options[i].text,obj.options[i].value,obj.options[i].defaultSelected,obj.options[i].selected);
	}
	if(o.length==0)return;
	var index = obj.selectedIndex
	/* kopie sorteren:	*/
	o = o.sort( 
		function(a,b) { 
			if(a.text.toString() < b.text.toString()){return -1}
			if(a.text.toString() > b.text.toString()){return 1}
			return 0;
			} 
	)
	/* options opnieuw invullen	*/
	for(var i=startAt,j=0; i<obj.options.length; i++,j++){
		obj.options[i] = new Option(o[j].text,o[j].value,o[j].defaultSelected,o[j].selected);
	}
	obj.selectedIndex = index
}

function fillScreen(){
	/* Maak het venster schermvullend	*/
	window.moveTo(0,0);
	if((navigator.appName == "Netscape")){
		window.outerHeight	= screen.availHeight
		window.outerWidth	= screen.availWidth
	}
	else{
		window.resizeTo(screen.availWidth,screen.availHeight)
	}
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * */

/* Sander Sanders january 2001/okt 2004 
Universal picture changer, cross-browser! 
Contains lots of error-checking and debugging-aids!

Syntax:
"changePic(lowNum,HighNum,random,preload)"
"lowNum": path first picture
"highNum": number of last picture
"random": value "true" or "false" (do not use the quotes!) chooses numbers at random between lowNum and highNum
"preload": value "true" or "false"  (do not use the quotes!) preloads all images, for faster transitions. No error report if images don't exist...

Syntax picturenames:
"myPictureNamexx.ext"
"mypicturename" can be anything you like, but has to be the same for all pictures!
"xx" is a two digit number, eventually zero-leading, pictures have to be numbered consecutively!
".ext" is any extension you browser can handle (.jpg, .gif etc) */

function clearStatus(){
	window.status = ""
}

function loadError(pic){
	alert("Error loading picture:\n\n" + pic)
}

function getPicPath(str){
	return(str.substring(0,str.lastIndexOf("/")+1))
}

function getPicName(str){
	var s=str.substring(str.lastIndexOf("/")+1,str.lastIndexOf('.')-2)
	var p=getPicPath(str)
	return(p+s)
}

function getPicNum(str){
	return(str.substring(str.lastIndexOf(".")-2,str.lastIndexOf('.')))
}

function makePicNum(num){
	num =  (num > 9)? "" + num : "0" + num
	return(num)
}

function getPicExt(str){
	return(str.substring(str.lastIndexOf('.'),str.length))
}

/* Globals:	*/
var preloaded = new Array()
var images = new Array()
var picTimer = null
var numberOfPictureChangers = 0 /* hoeveel keer op 1 pagina?	*/

function preloadPics(id,sP,eP){
	if(preloaded[id])
		return
	window.status = "Preloading images, please wait..."
	images[id] = new Array()
	for(var i = 0; i< eP-sP+1; i++){
		images[id][i] = new Image()
		imgName = document.getElementById("myPic" + id).src
		images[id][i].src = getPicName(imgName) + makePicNum(sP + i) + getPicExt(imgName)
	}
	preloaded[id] = true
}

function writeChangePic(startPicSrc,startPic,endPic,doRandom,preload){
	/* arguments: pad eerste plaatje, nummer eerste plaatje, nummer laatste plaatje, random, preload (booleans)	*/
	picLoadStr="Picture Loaded: "
	numberPic=Math.abs(endPic-startPic)+1
	var str="<a href='JavaScript:void(0)' "
	str+="onClick='changePic(" + numberOfPictureChangers + "," + startPic + "," + endPic + "," + doRandom + "," + preload + ");return(false)'>"
	str+="<img src ='" + startPicSrc + "' id='myPic" + numberOfPictureChangers + "' alt='Klik hier!' border=0 onError='loadError(this.src)' >"
	str+="<br>Klik voor meer foto's!</a> Er zijn er " + numberPic
	++numberOfPictureChangers	/* evt meerdere op 1 pag!	*/
	document.write(str)
}

function changePic(id,startPic,endPic,randomly,preload){
	var reverseOrder=(startPic > endPic)
	window.status= randomly? "Loading next randomly chosen picture, wait a sec..." : "Loading next picture in line, wait a sec..."

	if(startPic < 0 || endPic > 99){
		alert("Error: Start or endnumber out of range (0 - 99)\nStart: "+startPic+"\nEnd: "+endPic)
		return
	}

	var picName = document.getElementById("myPic" + id).src
	var newPic = getPicName(picName)
	var nr = 0

	if(!randomly){
		var oldNum = getPicNum(picName)
		nr = parseInt(oldNum,10)
		if(isNaN(nr)){
			alert("Error in filename number:\n" + picName)
			return
		}
		nr=reverseOrder?nr-1:nr+1
		if(nr > 99){
			alert("Error: End image number > 99")
			return
		}
		if(!reverseOrder){
			if(nr > endPic)
				nr = startPic
			else if(nr < startPic)
				nr = startPic
		}
		else{
			if(nr < endPic)
				nr = startPic
			else if(nr > startPic)
				nr = startPic
		}
	}
	else
		nr =  Math.round(Math.random()*endPic)+startPic

	newNum = (nr > 9)? "" + nr : "0" + nr
	var ext =  getPicExt(picName)

	if(preload)
		preloadPics(id,startPic,endPic)
	
	document.getElementById("myPic" + id).src = preloaded[id]? images[id][nr].src : newPic + newNum + ext
	/* src even laten zien	*/
	if(picTimer)clearTimeout(picTimer)
	window.status = document.getElementById("myPic" + id).src
	picTimer = setTimeout("clearStatus()",3000)
	return(true)
}

/* * * * * * * * * * * * * * * * * * * * */
