// Create namespace
if ( ! window.nl.atros ) {
	window.nl.atros = {} ;
} ;


/* Atros Class */
nl.atros.Atros = function() {
	this.initialize() ;
} ;
nl.atros.Atros.prototype = {
	initialize: function(){
		
		var vacatureresults = nl.xd.dom.DOM.get( 'vacatureresults' ) ;
		if( vacatureresults ){
			new nl.atros.VacatureResults() ;
		}
		
		var vacatureform = nl.xd.dom.DOM.get( 'vacaturezoekform' ) ;
		if( vacatureform ){
			new nl.atros.VacatureZoekForm() ;
		}
		
		var snelzoeken = nl.xd.dom.DOM.get( 'snelzoekform' ) ;
		if( snelzoeken ){
			new nl.atros.SnelzoekForm() ;
		}
		
		var tabmenu = nl.xd.dom.DOM.get( 'tabmenu' );
		if( tabmenu ){
			new nl.atros.TabMenu( tabmenu );
		}
		
		var homevacatures = nl.xd.dom.DOM.get( 'homevacatures' ) ;
		if( homevacatures ){
			new nl.atros.RollOverList( homevacatures, 'homevacaturesitem' , 'div' ) ;
		}
		
		var homeprojecten = nl.xd.dom.DOM.get( 'homeprojecten' ) ;
		if( homeprojecten ){
			new nl.atros.RollOverList( homeprojecten, 'homeprojectenitem' , 'div' ) ;
		}
		
		var leftsubmenu = nl.xd.dom.DOM.get( 'leftsubmenu' ) ;
		if( leftsubmenu && leftsubmenu.offsetHeight < 250 ) {
			leftsubmenu.style.height = '250px' ;
		}
		
		var midcolumn = nl.xd.dom.DOM.get( 'midcolumn' ) ;
		if( midcolumn && midcolumn.offsetHeight < 450 ) {
			midcolumn.style.height = '450px' ;
		}
		
		if( nl.xd.dom.DOM.get( 'vacaturereageerform' ) ){
			new nl.atros.VacatureReageerForm() ;
		}
		
		if( nl.xd.dom.DOM.get( 'vacatureemailform' ) ){
			new nl.atros.VacatureEmailForm() ;
		}
		
		this.showFlashHeaders() ;
		
		
	} ,
	showFlashHeaders: function() {
		window.flashPlayer = deconcept.SWFObjectUtil.getPlayerVersion() ;
		
		if ( window.flashPlayer.major >= 6 ) {
			var headertypes = new Array( {tag:'h1',size:'16'} ) ;
			
			for ( var i = 0; i < headertypes.length; i++ ) {
				this.replaceHeaders( headertypes[ i ] ) ;
			} ;
		} ;
	} ,
	replaceHeaders: function( headertype ) {
		var headers = this.getHeaders( headertype.tag ) ;
		
		for ( var i = 0; i < headers.length; i++ ) {
			if ( headers[ i ].innerHTML == '' ) {
				continue ;
			} ;
			
			color = '' ;
			
			switch ( headers[ i ].className ) {
				case 'white' :
					color = '#ffffff' ;
					break ;
				case 'green' :
					color = '#B5B500' ;
					break ;
				case 'darkgrey' :
					color = '#666666' ;
					break ;
				case 'orange' :
					color = '#FC7B00' ;
					break ;
				default :
					var settings = document.getElementById( 'settings' ) ;
					var color = settings.color.value ;

					break ;
			} ;
			
			var title = headers[ i ].innerHTML ;
			var size  = headertype.size ;
			var width 	   = '100%' ;
			var timestamp  = 2000 * Math.random() ;
			var height 	   = headers[ i ].offsetHeight - 5 ;

			newtitle = encodeURI( title.replace( '&amp;' , '%26' ) ) ;
			var flashvars  = '_xml=<header><size>' + size + '</size><color>' + color + '</color><title><![CDATA[' + newtitle + ']]></title></header>' ;
			headers[ i ].innerHTML = window.nl.xd.flash.Simple.Standard( 'swf/helvetica45.swf' , width , height , flashvars , timestamp ) ;// + '<span>' + title + '</span>' ;
			headers[ i ].style.visibility = 'visible' ;
		} ;
	} ,
	getHeaders: function( tag ) {
		var elements = document.getElementsByTagName( tag ) ;
		var targets  = new Array() ;
		
		for ( var i = 0; i < elements.length; i++ ) {
			targets[ targets.length ]= elements[ i ] ;
		} ;
		
		return targets ;
	}

} ;

/* VacatureResults */
nl.atros.VacatureZoekForm = function(){
	this.initialize() ;	
}
nl.atros.VacatureZoekForm.prototype = {
	initialize: function(){
		this.setEvents() ;
		this.initDropDownBoxes() ;
	} ,
	setEvents: function(){
		var self = this ;
		var submitbutton = nl.xd.dom.DOM.get( 'vacatureform_submit' ) ;
		nl.xd.event.Event.addListener( submitbutton, 'click', function(){ self.onClickSubmit() } ) ;
		var resetbutton = nl.xd.dom.DOM.get( 'vacatureform_reset' ) ;
		nl.xd.event.Event.addListener( resetbutton, 'click', function(){ self.onClickReset() } ) ;
	} ,
	onClickSubmit: function(){
		var vacatureform = nl.xd.dom.DOM.get( 'vacaturezoekform' ) ;
		this.cleanUp() ;
		vacatureform.submit() ;
	} ,
	onClickReset: function(){
		this.resetForm() ;
	} ,	
	resetForm: function(){
		for( var i=0; i<this.dropDownBox_arr.length; i++ ){
			this.dropDownBox_arr[ i ].deselectAll() ;
		}
	} ,	
	initDropDownBoxes: function(){
		this.dropDownBox_arr = new Array() ;
		var self = this ;
		var boxes = nl.xd.dom.DOM.getByClassName( 'dropdownbox', 'div', document ) ;
		for( var i=0; i<boxes.length; i++ ){
			this.dropDownBox_arr.push( new nl.hq.DropDownBox( boxes[ i ] , i , self ) );
		}
	} ,
	cleanUp: function(){
		var vacatureform = nl.xd.dom.DOM.get( 'vacaturezoekform' ) ;
		var unwanted = nl.xd.dom.DOM.getByClassName( 'remove' , 'div' , vacatureform ) ;
		for( var i=0; i<unwanted.length; i++ ){
			unwanted[i].parentNode.removeChild( unwanted[ i ] ) ;	
		}
	}
}

/* VacatureResults */
nl.atros.VacatureResults = function(){
	this.initialize() ;	
}
nl.atros.VacatureResults.prototype = {
	initialize: function(){
		
	}
}


/* SnelzoekForm */
nl.atros.SnelzoekForm = function(){
	this.initialize() ;
}
nl.atros.SnelzoekForm.prototype = {
	initialize: function(){
		this.setEvents() ;	
	} ,
	setEvents: function(){
		var self = this ;
		var submitbutton = nl.xd.dom.DOM.get( "snelzoeken_submit" ) ;
		nl.xd.event.Event.addListener( submitbutton , 'click' , function() { self.onClickSubmit();  } ) ;
	} ,
	onClickSubmit: function(){
		var snelzoekform = nl.xd.dom.DOM.get( 'snelzoekform' ) ;
		snelzoekform.submit() ;
	}
}


/* RollOverList */
nl.atros.RollOverList = function( element, itemname, itemtype ){
	this.element = element ;
	this.itemname = itemname ;
	this.itemtype = itemtype ;
	this.initialize() ;	
}
nl.atros.RollOverList.prototype = {
	initialize: function(){
		this.buildItems() ;	
	} ,
	buildItems: function(){
		var self = this ;
		this.items = new Array() ;
		var item_arr = nl.xd.dom.DOM.getByClassName( this.itemname, this.itemtype, this.element ) ;
		for( var i=0; i<item_arr.length; i++ ){
			this.items.push( new nl.atros.RollOverListItem( item_arr[ i ], self ) )	;
		}
	}
}

nl.atros.RollOverListItem = function( element , parent ){
	this.element = element ;
	this.parent = parent ;
	this.initialize() ;
}
nl.atros.RollOverListItem.prototype = {
	initialize: function(){
		this.buildItem() ;
		this.setEvents() ;
	} ,
	buildItem: function(){
	} ,
	setEvents: function(){
		var self = this ;
		nl.xd.event.Event.addListener( this.element, 'mouseover', function(){ self.onRollOverItem() } ) ;
		nl.xd.event.Event.addListener( this.element, 'mouseout', function(){ self.onRollOutItem() } ) ;
		nl.xd.event.Event.addListener( this.element, 'click', function(){ self.onClickItem() } ) ;
	} ,
	onRollOverItem: function(){
		nl.xd.dom.DOM.addClass( this.element , 'rollover' ) ;
	} ,
	onRollOutItem: function(){
		nl.xd.dom.DOM.removeClass( this.element , 'rollover' ) ;
	} ,
	onClickItem: function(){
		var a = nl.xd.dom.DOM.getByTagName( 'a' , this.element )[ 0 ] ;
		var href = nl.xd.dom.DOM.getAttribute( a , 'href' ) ;
		window.location = href ;
	}
}

/* VacatureReageerForm */
nl.atros.VacatureReageerForm = function(){
	this.initialize() ;	
}
nl.atros.VacatureReageerForm.prototype = {
	initialize: function(){
		this.setEvents() ;	
	} ,
	setEvents: function(){
		var submitvacaturereactie = nl.xd.dom.DOM.get( 'submitvacaturereactie' ) ;
		var self = this ;
		nl.xd.event.Event.addListener( submitvacaturereactie , 'click' , function() { self.onClickSubmit();  } ) ;
	} ,
	onClickSubmit: function(){
		var vacaturereageerform = nl.xd.dom.DOM.get( 'vacaturereageerform' ) ;
		var check = nl.xd.form.Form.check( vacaturereageerform ) ;
		if ( check ) {
			vacaturereageerform.submit() ;
		}
	}
}

/* VacatureEmailForm */
nl.atros.VacatureEmailForm = function(){
	this.initialize() ;	
}
nl.atros.VacatureEmailForm.prototype = {
	initialize: function(){
		this.setEvents() ;	
	} ,
	setEvents: function(){
		var submitvacatureemail = nl.xd.dom.DOM.get( 'submitvacatureemail' ) ;
		var self = this ;
		nl.xd.event.Event.addListener( submitvacatureemail , 'click' , function() { self.onClickSubmit();  } ) ;
	} ,
	onClickSubmit: function(){
		var vacatureemailform = nl.xd.dom.DOM.get( 'vacatureemailform' ) ;
		var check = nl.xd.form.Form.check( vacatureemailform ) ;
		if ( check ) {
			vacatureemailform.submit() ;
		} ;
	}
}

/* TabMenu */
nl.atros.TabMenu = function( element ){
	this.element = element;
	this.items = new Array();
	this.tabsections = new Array();
	this.tabsectionbottoms = new Array();
	this.initialize();
}
nl.atros.TabMenu.prototype = {
	initialize: function(){
		this.buildItems();
	},
	buildItems: function(){
		var self = this ;
		this.items = new Array() ;
		var item_arr = nl.xd.dom.DOM.getByClassName( 'tab', 'div', this.element ) ;
		for( var i=0; i<item_arr.length; i++ ){
			this.items.push( new nl.atros.TabMenuItem( item_arr[ i ], self, i ) )	;
		}
		var tabsectionholder = nl.xd.dom.DOM.get( 'tabsectionholder' );
		var item_arr = nl.xd.dom.DOM.getByClassName( 'tabsection', 'div', tabsectionholder ) ;
		for( var i=0; i<item_arr.length; i++ ){
			this.tabsections.push( item_arr[i] );
		}
		
		var tabsectionbottomholder = nl.xd.dom.DOM.get( 'tabsectionbottomholder' );
		var item_arr = nl.xd.dom.DOM.getByClassName( 'tabsectionbottom', 'div', tabsectionbottomholder ) ;
		for( var i=0; i<item_arr.length; i++ ){
			this.tabsectionbottoms.push( item_arr[i] );
		}
		
		this.hideTabSections();
		this.onClickItem(0);
	},
	onClickItem: function( index ){
		this.hideTabSections();
		nl.xd.dom.DOM.removeClass( this.tabsections[index] , 'displaynone' );
		nl.xd.dom.DOM.removeClass( this.tabsectionbottoms[index] , 'displaynone' );		
		var tabsectionwrapper = nl.xd.dom.DOM.get( 'tabsectionwrapper' );
		tabsectionwrapper.style.backgroundColor = this.tabsections[index].style.backgroundColor;
		
	},
	hideTabSections: function(){
		for( var i=0; i<this.tabsections.length; i++ ){
			nl.xd.dom.DOM.addClass( this.tabsections[i] , 'displaynone' );
			nl.xd.dom.DOM.addClass( this.tabsectionbottoms[i] , 'displaynone' );
		}
	}
}

nl.atros.TabMenuItem = function( element, parent, index ){
	this.index = index;
	this.element = element;
	this.parent = parent;
	this.initialize();
}
nl.atros.TabMenuItem.prototype = {
	initialize: function(){
		
		this.setEvents();
	},
	setEvents: function(){
		var self = this ;
		nl.xd.event.Event.addListener( this.element, 'mouseover', function(){ self.onRollOverItem() } ) ;
		nl.xd.event.Event.addListener( this.element, 'mouseout', function(){ self.onRollOutItem() } ) ;
		nl.xd.event.Event.addListener( this.element, 'click', function(){ self.onClickItem() } ) ;
	},
	onRollOverItem: function(){
		nl.xd.dom.DOM.addClass( this.element , 'rollover' ) ;
		this.parent.onClickItem( this.index );
	},
	onRollOutItem: function(){
		nl.xd.dom.DOM.removeClass( this.element , 'rollover' ) ;
	},
	onClickItem: function(){
		this.parent.onClickItem( this.index );
	}
}


nl.xd.event.Event.addListener( window , 'load' , function() { new nl.atros.Atros() ; } ) ;
