/**
 * Diverse javascriptfunksjoner, spesiellt laget for siten
 * I tillegg bør filen functions-standard.js inkluderes, den inneholder endel standardfunksjoner
 *
 * @author Anders S. Oefsdahl <anders at apt no>
 * @version 1.0.0
 */

/**
 * Variabel
 * @var	type
 */

/**
 * Funksjon fra alistapart som henter setter hover muligheter på li elementer som inneholder en ul
 *
 * @access	public
 * @since	20041026
 * @return	none
 */

function startList() {
	if (document.all && document.getElementById) {
		navRoot = document.getElementById("nav");
		if (navRoot) {
			for (i=0; i<navRoot.childNodes.length; i++) {
				node = navRoot.childNodes[i];
				if (node.nodeName=="LI") {
					node.onmouseover=function() {
						this.className+=" over";
						this.style.zIndex = 100;
					}
					node.onmouseout=function() {
						this.className=this.className.replace(" over", "");
						this.style.zIndex = 1;
					}
				}
			}
		}
	}
}

window.onload = function(){
	startList();
}


function toggleForm( divID ){
		var theDiv = document.getElementById( divID );
		if( theDiv.style.display == 'block' ){
			theDiv.style.display = 'none';
		}
		else{
			theDiv.style.display = 'block';
		}	
	}


/**
* formValidate()
* Denne funksjonen brukes til foreløpig validering av registreringsskjemaet - konferanser
*
* @access public
* @since 20061107
* @return bool
*/
function formValidate(){
	var fFornavn	= $("kontaktperson_fornavn");
	var fEtternavn	= $("kontaktperson_etternavn");
	var fEpost		= $("kontaktperson_epost");
	var sMelding	= "Feil i skjemaet:\n";
	var bFeilFunnet	= false;
	
	if(fFornavn.value.trim() == ""){
		bFeilFunnet = true;
		sMelding += "- Du må skrive inn fornavn\n";
	}
	
	if(fEtternavn.value.trim() == ""){
		bFeilFunnet = true;
		sMelding += "- Du må skrive inn etternavn\n";
	}
	
	if(isNotValidEmailFormat(fEpost.value)){
		bFeilFunnet = true;
		sMelding += "- Ugyldig epostadresse\n";
	}
	
	if(bFeilFunnet){
		alert(sMelding);
		return false;
	}
	
	return true;
	
}

String.prototype.trim = function(){
	return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,"");
}

/**
* Funksjon som utfører et asynkront kall til server, for lagring av deltakerobjekt på sesjonen, samt visning av registrerte deltakere
* 
* @access	public
* @since	20061109
* @return	bool
*/
function lagreDeltaker( f, d ){
	//FORELØPIG HACK FOR Å HINDRE AT JAVASCRIPTET UTFØRES
	return true;
	$( 'request-type' ).value = 'asynchronous';
	var myAjax	= new Ajax.Updater(
					{success: d},
					$( f ).action,
					{
						method:		'POST',
						parameters:	Form.serialize( f ),
						insertion:	Insertion.Bottom,
						onSuccess:	highlightChange( 'oppsummering_container' ),
						onFailure:	reportError
					});
	return false;
}

function highlightChange( d ){
	new Effect.Highlight( d );
}

function reportError(){
	alert( 'En feil har oppstått.' );	
}

function slettDeltaker( id, url ){
	//FORELØPIG HACK FOR Å HINDRE AT JAVASCRIPTET UTFØRES
	return true;
	new Effect.Fade( 'p_'+id );
	var myAjax = new Ajax.Request( url, {method:'post', postBody:'pid=' + id + '&request-type=asynchronous&do=delete'} );
	return false;
}

function slettAlleDeltakere(){
	//FORELØPIG HACK FOR Å HINDRE AT JAVASCRIPTET UTFØRES
	return true;
	alert( 'TODO: Lag AJAX-rutine for sletting av alle deltakere...' );
	return false;	
}