var ResultsheaderPos;
var ResultsLargeheaderPos;
var FixedadsPos;
var GB_ROOT_DIR = "/js/greybox/";
AC_FL_RunContent = 0;
var RecaptchaOptions = {
    theme : 'clean'
 };



/*	Prototype onload event
******************************************** */

Event.observe(window, 'load', function() {
	
		/*$$('DIV.registernow_mini').each( function(element){
			element.observe('click', function(event){
				GB_showCenter('Register at Worldwideworker.com', element.title, 500, 700, refreshParentLocation); 
				return false;
			});
		});*/
		
		//get the position of the resultsheader for fixing it when scrolling
		//if($('fixedads')){
		//	FixedadsPos = $('fixedads').positionedOffset();
		//}
		if($('applyforjob')){
			decoGreyboxLinks();			
		}
		$$('a.register').each(function(element) {
			element.observe('click', function(event) {
				GB_showCenter('Register at Worldwideworker.com', 'http://www.worldwideworker.com/WorldWW/register.do', 500, 700, refreshParentLocation); 
				return false;
			}.bindAsEventListener(element))
		})		
		
		$$('a.jumper').each(function(element) {
			element.observe('click', function(event) {
				new Effect.ScrollTo(this.hash.substr(1));
				Event.stop(event);
			}.bindAsEventListener(element))
		})		
		
		if($('Form_Form')){
			$$('form#Form_Form div.field:nth-child(odd)').invoke('addClassName', 'oddRow'); 
		}
		
		if(typeof sIFR == "function"){
			sIFR.replaceElement(named({sSelector:"#downloads h6", sFlashSrc:"http://www.worldwideworker.dev/worldwideworker/images/frutigerboldcond.swf", sColor:"#000000", sLinkColor:"#073982", sWmode:"transparent"}));
			sIFR.replaceElement(named({sSelector:".internalbanner span.title", sFlashSrc:"http://www.worldwideworker.dev/worldwideworker/images/frutigerboldcond.swf", sColor:"#000000", sLinkColor:"#073982", sWmode:"transparent"}));
			//sIFR.replaceElement(named({sSelector:".internalbanner span.title_big", sFlashSrc:"http://www.worldwideworker.dev/worldwideworker/images/frutigerboldcond.swf", sColor:"#000000", sLinkColor:"#073982", sWmode:"transparent"}));
		};
		
		/***** EXTENDING SCRIPTACULOUS AJAX *****/
		/****************************************/
		if(typeof Effect != 'undefined'){
				Effect.SlideUpAndDown = function(elementname, spanid) {
					element = $(elementname);
					
					if(Element.visible(element)){
						new Effect.SlideUp(element);
						
						if($('btn'+elementname)){
							$('btn'+elementname).src= "worldwideworker/images/btn_sort_down.gif";
						}
						
						if($('link'+elementname)){
							$('link'+elementname).innerHTML = $('link'+elementname).innerHTML.replace("Click to close", "Click here for");
						}
					
					} else {
						new Effect.SlideDown(element);
						
						if($('btn'+elementname)){
							$('btn'+elementname).src= "worldwideworker/images/btn_sort_up.gif";
						}
						
						if($('link'+elementname)){
							$('link'+elementname).innerHTML = $('link'+elementname).innerHTML.replace("Click here for","Click to close");
						}
					}	
				  
				}
		}
		
		
		
	}
);





/*
Event.observe(window, 'load', function() {
			$$('a.jumper').each(function(element) {
				element.observe('click', function(event) {
					new Effect.ScrollTo(this.hash.substr(1));
					Event.stop(event);
				}.bindAsEventListener(element))
			})
		})
*/
/*	Set the Resultsheader fixed when scrolling
	Expanded from http://www.derekallard.com/blog/post/conditionally-sticky-sidebar/
******************************************** */
window.onscroll = function(){
	/*
	if($('resultsheader')){
		// If we scrolled past the y position of the resultsheader, then fix it
		if (document.documentElement.scrollTop > ResultsheaderPos.top) {
			$('resultsheader').style.position = 'fixed'; 
			$('resultsheader').style.top = '0';
		// Otherwise make it relative to make it flow inline with the rest
		} else {
			$('resultsheader').style.position = 'relative'; 
			$('resultsheader').style.top = 'auto';
		}
	}
	
	if($('resultslargeheader')){
		// If we scrolled past the y position of the resultsheader, then fix it
		if (document.documentElement.scrollTop > ResultsLargeheaderPos.top) {
			$('resultslargeheader').style.position = 'fixed'; 
			$('resultslargeheader').style.top = '0';
		// Otherwise make it relative to make it flow inline with the rest
		} else {
			$('resultslargeheader').style.position = 'relative'; 
			$('resultslargeheader').style.top = 'auto';
		}
	}
	*/
	if($('fixedads')){
		// If we scrolled past the y position of the resultsheader, then fix it
		if (document.documentElement.scrollTop > FixedadsPos.top) {
			$('fixedads').style.position = 'fixed'; 
			$('fixedads').style.top = '0';
		// Otherwise make it relative to make it flow inline with the rest
		} else {
			$('fixedads').style.position = 'relative'; 
			$('fixedads').style.top = 'auto';
		}
	}
}

/*	Function get called to set a bookmark for that page
	Call it in an href with javascript:CreateBookmarkLink('Name of bookmark')
******************************************** */
function CreateBookmarkLink(title) {
	
	url = location.href;
	
	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title); }
	else if(window.opera && window.print) { // Opera Hotlist
		return true; }
 }



 /*	Used on EventPage to reset all sponsors and hilite current one
	It also show the results for selected sponsor and prefills detail div with details of first result
******************************************** */
function selectSponsor(sponsorId, jobURLEncoded) {
	/* resultaten div (on)zichtbaar maken */
	allLists = document.getElementsByClassName("sponsor_jobs_list");
	for(i = 0; i < allLists.length; i++) {
	    allLists[i].style.display = 'none';
	}
	$('jobs_'+sponsorId).style.display = "block";
	
	/* heading divs (on)zichtbaar maken */
	allHeadings = document.getElementsByClassName("sponsor_jobs_heading");
	for(i = 0; i < allHeadings.length; i++) {
	    allHeadings[i].style.display = 'none';
	}
	$('heading_'+sponsorId).style.display = "block";
	
	
	/* first job openen */
	new Ajax.Updater('sponsor_jobs_details', 'detail/index/'+jobURLEncoded);
	$('sponsor_jobs_details').style.display = "block";
	
	/* sponsor hiliten */	
	allSponsors = document.getElementsByClassName("sponsor");
	allSponsorsOn = document.getElementsByClassName("sponsor_on");	
	allSponsors = allSponsors.concat(allSponsorsOn);
	
	for(i = 0; i < allSponsors.length; i++) {
	    allSponsors[i].className = 'sponsor';
	    allSponsors[i].onmouseover = function () { this.className='sponsor_on'; };
		allSponsors[i].onmouseout = function () { this.className='sponsor'; };
	}
	$('sponsor_'+sponsorId).className = "sponsor_on";	
	$('sponsor_'+sponsorId).onmouseover = null;
	$('sponsor_'+sponsorId).onmouseout = null;
	
	window.location.hash="sponsor_jobs";
}



/*
var currentThumb;
var currentTip;

function showTip(st) {
  closeTips();

  currentThumb = "thumb"+st;
  currentTip   = currentThumb+"Tip";

  //document.getElementById(currentThumb).style.border="2px solid #f00";
  $(currentThumb).style.border="2px solid #f00";
  document.getElementById(currentTip).style.display = '';
  Element.show(currentTip);
}

function hideTip() {
  if (currentThumb) {
	//var style = document.getElementById(currentThumb).style;
    var style = $(currentThumb).style;
    style.borderBottom = "2px solid #fff";
    style.borderTop    = "2px solid #fff";
    style.borderLeft   = "2px solid #fff";
    style.borderRight  = "2px solid #fff";
  }
  closeTips();
}

function closeTips() {
  if (currentTip) {
	//document.getElementById(currentTip).style.display = 'none';
    $(currentTip).style.display = 'none';
  }
}
*/
/*
var refreshParent = true;

function refreshParentLocation() {
	if(parent.parent.refreshParent) {
		parent.parent.location = parent.parent.location; 
	}
}
*/

/* Obfuscate email adresses */
function contact(user, domain) {
	window.location.href = "mailto:" + user + "@" + domain;
}




function tabselect(tab) {
  var tablist = $('tabcontrol1').getElementsByTagName('li');
  var nodes = $A(tablist);
  var lClassType = tab.className.substring(0, tab.className.indexOf('-') );

  nodes.each(function(node){
    if (node.id == tab.id) {
      tab.className=lClassType+'-selected';
    } else {
      node.className=lClassType+'-unselected';
    };
  });
}

function paneselect(pane) {
  var panelist = $('panecontrol1').getElementsByTagName('li');
  var nodes = $A(panelist);

  nodes.each(function(node){
    if (node.id == pane.id) {
      pane.className='pane-selected';
    } else {
      node.className='pane-unselected';
    };
  });
}

function loadPane(pane, src) {
  if (pane.innerHTML=='' || pane.innerHTML=='<img alt="Wait" src="/images/spinner.gif" style="vertical-align:-3px" /> Loading...') {
    reloadPane(pane, src);
  }
}

function reloadPane(pane, src) {
  new Ajax.Updater(pane, src, {asynchronous:1, evalScripts:true, onLoading:function(request){pane.innerHTML='<img alt="Wait" src="/images/spinner.gif" style="vertical-align:-3px" /> Loading...'}})
}


/***** DYNAMIC CONTENT CALLS/SUBMITS AJAX *****/
/**********************************************/
var http_request = false;

function makeRequest(url, parameters, elementid, callback) {
		alert(url);
      http_request = false;
      
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.onreadystatechange = function() { 
      	  	
		      if (http_request.readyState == 4) {		      		      	
		         if (http_request.status == 200) {
		         	alert("ready");
		            //alert(http_request.responseText);
		            var getelement = document.getElementById(elementid) ? document.getElementById(elementid) : parent.document.getElementById(elementid);
		            if(getelement){
		            	//alert(getelement);
		           	 	 result = http_request.responseText;		            
		           		 getelement.innerHTML = result;
		            }
					if(callback != null){
						alert("hello!");
						callback;
					}
		            
		         } else {
		            alert('There was a problem with the request. ' + http_request.status);
		         }
		      }
      }
      http_request.open('GET', url + parameters, true);
      http_request.send(null);
}

function switchEventTabOn(switchon){
	
	$$('div.eventtab').each(function(tab) {
		tab.className = 'eventtab';
	});
	
	$$('div.eventtab_on').each(function(tab) {
		tab.className = 'eventtab';
	});

	
	$(switchon).className = 'eventtab_on';
}

// Animation tab voor de ajax loader in recruitment event page div
function startLoadingAnimation() {
	$('EventTabContentView').innerHTML	="<div style='text-align: center'><img src='/worldwideworker/images/ajax-loader.gif' /></div>";
}


/* Necessary for SS 
* The following function is moved from jsparty/prototype.js to this file so that the SS validator (javascript
* form validation) still works. This is an odd function as I can't find anything on it in prototype. Most
* likely this function was added to prototype.js by SS.
*/
document.getParentOfElement = function( element, tagName, className ) {
	
	if( !element )
		return null;
	
	var parent = element.parentNode;
	
	while( parent ) {
		if( className && Element.hasClassName( parent, className ) && parent.tagName.toLowerCase() == tagName.toLowerCase() )
			return parent;
		else if( parent.tagName.toLowerCase() == tagName.toLowerCase() )
			return parent;
		
		parent = parent.parentNode;
	}
	
	return parent;
}
