function addEvent(obj, evType, fn, useCapture)
{
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, useCapture);
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		alert("Handler could not be attached");
	}
}

function splashScreen()
{
	addEvent(window,"load",function(){
		name = "splashScreen";
	
		/**	Only show the splashscreen with the front page, if you find this DOM node, you're on the front page */
		if(document.getElementById(name)){
			var so = new SWFObject("flash/introfy.swf", "introfy", "700", "400", "7", "#FFFFFF");
			so.useExpressInstall('flash/expressinstall.swf');
			so.addParam("wmode", "transparent"); 
			so.write(name);
		}
	},true);
}

function focusLogin()
{
	var login = document.getElementById("username");
	if(login) login.focus();
}

function submitUserDetails(requiredFields)
{
	var v = new Validator("accountForm");
	if(v){
		v.addValidation("firstname",			"req",				requiredFields);	
		v.addValidation("lastname",				"req",				requiredFields);
		v.addValidation("companyname",		"req",				requiredFields);
		v.addValidation("companyposition","req",				requiredFields);
		v.addValidation("address",				"req",				requiredFields);
		v.addValidation("city",						"req",				requiredFields);
		v.addValidation("postcode",			"req",				requiredFields);
		v.addValidation("phone",					"minlength=5",	requiredFields);
		v.addValidation("phone",					"phone-number",		requiredFields);
		v.addValidation("email",					"req",				requiredFields);
		v.addValidation("email",					"email",			requiredFields);
		
		if(document.getElementById("affiliate")){
			v.addValidation("affiliate","dontselect=0",	requiredFields);
		}
	}
}
function checkAffiliate(message)
{
	var select = document.getElementById("affiliate");
	
	return (select && select.options[select.selectedIndex].value != 0)	?	confirm(message)	:	true;
}

function modifyUserDetails()
{
	var modifyUserDetails = document.getElementById("modifyUserDetails");
	if(modifyUserDetails){
		modifyUserDetails.onclick = function(){
			location.href="?action=modify";	
			return false;
		}
	}
}

function startSearchingFlash(numResults)
{
	name = "searchFlash";
	
	if(document.getElementById(name)){
		var so = new SWFObject("flash/loadingFI.swf","loadingFI","250","140","7","#FFFFFF");
		so.useExpressInstall("flash/expressinstall.swf");
		so.addParam("wmode","transparent");
		so.write(name);
		
		var handle = setTimeout(function (){ updatePercentage(handle,numResults,0); },250);
	}
}

function stopSearchAnimation()
{
	var searchResults = document.getElementById("searchTable");
	var searchFlash = document.getElementById("searchAnimation");
	
	if(searchResults){
		searchFlash.style.display = "none";
		searchResults.style.display = "block";
	}	
}

function updatePercentage(handle,numResults,percent)
{
	var table = document.getElementById("searchTableBody");
	if(table){
		var searchText = document.getElementById("searchText");
		if(searchText && searchText.childNodes.length){
			searchText = searchText.childNodes[0];
			
			if((p = searchText.nodeValue.indexOf("(")) > 0){
				var baseText = searchText.nodeValue.substring(0,p);
				
				var rows = table.getElementsByTagName("tr");
				var rowCount = (rows.length-1)/2;
				
				var currentPercent = ((rowCount/numResults) * 100);
				var percentDiff = currentPercent - percent;
				
				if(isNaN(currentPercent) || !isFinite(currentPercent)) currentPercent = 0;
								
				searchText.nodeValue = baseText+" ( "+currentPercent.toFixed(0)+"% )";
				
				//	Only call the timer again, if it succeeded to update
				if(currentPercent < 100){
					var handle = setTimeout(function (){ updatePercentage(handle,numResults,currentPercent); },250);
				}
			}
		}
	}
}

function askFrenchDutch(event,node,url, mainText,frenchImage,dutchImage)
{
	var x, y;

	try{
		x = event.clientX;
		y = event.clientY;
	}catch(e){
		x = event.pageX;
		y = event.pageY;
	}
	
	var nodeId = "selectCountry";
	
	var container = document.getElementById(nodeId);
	if(container == null){
		container = createBubble(nodeId, node, url, mainText, frenchImage, dutchImage);
	}else{
		container.style.display = (container.style.display == "none") ? "block" : "none";
	}
	
	return false;
}

function createBubble(id, node, url, mainText, frenchImage, dutchImage)
{
	container = document.createElement("div");
	container.id = id;

	var question = document.createElement("div");
	question.className = "question";
	question.appendChild(document.createTextNode(mainText));
	
	var buttons = document.createElement("div");
	buttons.className = "floatFix buttonContainer";
	
	buttons.appendChild(createButton("http://www.industry.fagron.be/fr/",frenchImage,"French", "fr_FR"));
	buttons.appendChild(createButton("http://www.industry.fagron.be/nl/",dutchImage,"Dutch", "nl_NL"));
	
	container.appendChild(question);
	container.appendChild(buttons);
	
	node.parentNode.appendChild(container);
}

function createButton(pageURL, imageURL, text, lang)
{
	ignore = (pageURL == "search.php") ? "&ignore=true" : "";
	
	var button = document.createElement("a");
	button.href = pageURL//+"?lang="+lang+"&affiliate=be_BE"+ignore;
	button.className="hbox button";

	var imageContainer = document.createElement("div");
	var textContainer = document.createElement("div");
	
	var image = document.createElement("img");
	image.src = "images/idiomas/"+imageURL;
	image.alt = "language button";
	
	imageContainer.appendChild(image);
	textContainer.appendChild(document.createTextNode(text));
	
	button.appendChild(imageContainer);
	button.appendChild(textContainer);
	
	return button;
}
