function fnResizeContainer(strGetFromElement, strUseOnElement){

	objGetEl = document.getElementById(strGetFromElement);
	objUseEl = document.getElementById(strUseOnElement);
	objUseEl.style.height = objGetEl.offsetHeight + objGetEl.style.paddingTop + objGetEl.style.paddingTop+'px';

}

window.onload = function() {
	
	fnResizeContainer('content','left');
	prepFormFields();

}

function heading_replace() {

	replaceSelector ('h2', 'imagereplace.php', true);

	var testURL = 'images/square.jpg';

	var doNotPrintImages = true;
	var printerCSS       = 'stylesheets/print.css';

	var hideFlicker        = true;
	var hideFlickerCSS     = 'stylesheets/image-load.css';
	var hideFlickerTimeout = 1000;

	var items;
	var imageLoaded    = false;
	var documentLoaded = false;

	function replaceSelector(selector, url, wordwrap) {

		if (typeof items == 'undefined') {

			items = new Array();

		}

		items[items.length] = {selector: selector, url: url, wordwrap: wordwrap};

	}

	if (hideFlicker) {		
		
		document.write('<link id="hide-flicker" rel="stylesheet" media="screen" href="' + hideFlickerCSS + '" />');
		window.flickerCheck = function() {

			if (!imageLoaded) {
				
				setStyleSheetState('hide-flicker', false);

			}
		};

		setTimeout('window.flickerCheck();', hideFlickerTimeout)

	}

	if (doNotPrintImages) {

		document.write('<link id="print-text" rel="stylesheet" media="print" href="' + printerCSS + '" />');

	}

	var test = new Image();

	test.onload = function() { imageLoaded = true; if(documentLoaded) replacement(); };
	test.src = testURL + '?date=' + (new Date()).getTime();

	addLoadHandler(function(){ documentLoaded = true; if(imageLoaded) replacement(); });

	function documentLoad() {

		documentLoaded = true;
		
		if(imageLoaded) {
			
			replacement();

		}

	}

	function replacement() {

		for (var i = 0; i < items.length; i++) {

			var elements = getElementsBySelector(items[i].selector);

			if (elements.length > 0) {
				
				for(var j=0;j<elements.length;j++) {
				
					if (!elements[j]) {
						
						continue;

					}
			
					var text = extractText(elements[j]);

					while(elements[j].hasChildNodes()) {

						elements[j].removeChild(elements[j].firstChild);

					}

					var tokens = items[i].wordwrap ? text.split(' ') : [text];

					for (var k = 0; k < tokens.length; k++) {

						var url = items[i].url + '?text=' + escape(tokens[k]+" ") + '&selector=' + escape(items[i].selector);
						var image = document.createElement('img');
						image.className = 'replacement';
						image.alt = tokens[k];
						image.src = url;
						elements[j].appendChild(image);

					}

					if (doNotPrintImages) {

						var span = document.createElement('span');
						span.style.display = 'none';
						span.className = 'print-text';
						span.appendChild(document.createTextNode(text));
						elements[j].appendChild(span);

					}
			
				}
		
			}

			if (hideFlicker) {
	
				setStyleSheetState('hide-flicker', false);

			}

		}

	}

	function addLoadHandler(handler) {

		if (window.addEventListener) {

			window.addEventListener('load', handler, false);

		}

		else if (window.attachEvent) {

			window.attachEvent('onload', handler);

		}

		else if (window.onload) {

			var oldHandler = window.onload;

			window.onload = function piggyback() {
			
				oldHandler();
				handler();

			};

		} else {

			window.onload = handler;

		}

	}

	function setStyleSheetState(id, enabled) {

		var sheet = document.getElementById(id);
		
		if(sheet) {
			
			sheet.disabled = (!enabled);

		}

	}

	function extractText(element) {

		if (typeof element == "string") {
			
			return element;

		}

		else if (typeof element == "undefined") {

			return element;

		}

		else if (element.innerText) {

			return element.innerText;

		}

		var text = "";
		var kids = element.childNodes;

		for (var i = 0; i < kids.length; i++) {

			if (kids[i].nodeType == 1) {

				text += extractText(kids[i]);

			}

			else if (kids[i].nodeType == 3) {

				text += kids[i].nodeValue;

			}

		}

		return text;

	}

	function getElementsBySelector(selector) {

		var tokens = selector.split(' ');
		var currentContext = new Array(document);

		for (var i = 0; i < tokens.length; i++)	{

			token = tokens[i].replace(/^\s+/, '').replace(/\s+$/, '');

			if (token.indexOf('#') > -1) {

				var bits = token.split('#');
				var tagName = bits[0];
				var id = bits[1];
				var element = document.getElementById(id);

				if (tagName && element.nodeName.toLowerCase() != tagName) {
					
					return new Array();

				}

				currentContext = new Array(element);
				continue;

			}

			if (token.indexOf('.') > -1) {

				var bits = token.split('.');
				var tagName = bits[0];
				var className = bits[1];

				if (!tagName) {

					tagName = '*';

				}

				var found = new Array;
				var foundCount = 0;

				for (var h = 0; h < currentContext.length; h++) {

					var elements;

					if (tagName == '*') {
						
						elements = currentContext[h].all ? currentContext[h].all : currentContext[h].getElementsByTagName('*');

					} else {

						elements = currentContext[h].getElementsByTagName(tagName);

					}

					for (var j = 0; j < elements.length; j++) {

						found[foundCount++] = elements[j];

					}

				}

				currentContext = new Array;
				var currentContextIndex = 0;

				for (var k = 0; k < found.length; k++) {

					if (found[k].className && found[k].className.match(new RegExp('\\b' + className+ '\\b'))) {

						currentContext[currentContextIndex++] = found[k];

					}

				}

				continue;

			}

			if (token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)) {

				var tagName = RegExp.$1;
				var attrName = RegExp.$2;
				var attrOperator = RegExp.$3;
				var attrValue = RegExp.$4;
				
				if (!tagName) {

					tagName = '*';

				}

				var found = new Array;
				var foundCount = 0;

				for (var h = 0; h < currentContext.length; h++) {

					var elements;

					if (tagName == '*') {

						elements = currentContext[h].all ? currentContext[h].all : currentContext[h].getElementsByTagName('*');

					} else {

						elements = currentContext[h].getElementsByTagName(tagName);

					}

					for (var j=0;j<elements.length;j++) {

						found[foundCount++] = elements[j];

					}

				}

				currentContext = new Array;
				var currentContextIndex = 0;
				var checkFunction;

				switch (attrOperator) {

					case '=':
						checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); };
						break;
					case '~':
						checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b'))); };
						break;
					case '|':
						checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); };
						break;
					case '^':
						checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); };
						break;
					case '$':
						checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); };
						break;
					case '*':
						checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); };
						break;
					default :
						checkFunction = function(e) { return e.getAttribute(attrName); };

				}

				currentContext = new Array;
				var currentContextIndex = 0;

				for (var k = 0; k < found.length; k++) {

					if (checkFunction(found[k])) {
						
						currentContext[currentContextIndex++] = found[k];

					}

				}

				continue;

			}

			tagName = token;
			var found = new Array;
			var foundCount = 0;

			for (var h = 0; h < currentContext.length; h++) {

				var elements = currentContext[h].getElementsByTagName(tagName);
				
				for (var j = 0; j < elements.length; j++) {

					found[foundCount++] = elements[j];

				}

			}

			currentContext = found;

		}

		return currentContext;

	}

}

if (document.createElement && document.getElementsByTagName && !navigator.userAgent.match(/opera\/?6/i)) {

	heading_replace();

}

function prepFormFields() {

	var htmlElements = Array('select', 'input', 'textarea');
	var htmlTempArray;
	var strTemp;
	
	for (var i = 0; i < htmlElements.length; i++) {

		htmlTempArray = document.getElementsByTagName(htmlElements[i]);

		for (var j = 0; j < htmlTempArray.length; j++) {
		
			htmlTempArray[j].onfocus = function() {

				strTemp = this.className;
				
				if (strTemp != "radio" && this.getAttribute("name") != "vacancy_id") {

					this.className = "activeElement";

				} else if (strTemp == "radio") {

					name  = this.getAttribute("name");
					label = getLabelForId(name);

					label.className = "success";

				}

			}

			htmlTempArray[j].onblur = function() {

				this.className = strTemp;

			}

			htmlTempArray[j].onkeyup = function() {

				if (strTemp == "required") {

					if (isNotEmpty(this)) {

						name  = this.getAttribute("name");
						label = getLabelForId(name);

						label.className = "success";

					} else {

						name  = this.getAttribute("name");
						label = getLabelForId(name);

						label.className = "failure";

					}

				}
				
				if (strTemp == "email") {

					if (mailCheck(this.value)) {

						name  = this.getAttribute("name");
						label = getLabelForId(name);

						label.className = "success";

					} else {

						name  = this.getAttribute("name");
						label = getLabelForId(name);

						label.className = "failure";

					}

				}

			}

		}

	}

}

function getLabelForId(id) {

	var label, labels = document.getElementsByTagName('label');
	
	for (var i = 0; (label = labels[i]); i++) {
	
		if (label.htmlFor == id) {

			return label;

		}
	
	}

	return false;

}


function isNotEmpty(elem) {

	var str = elem.value;
	
	if (str.length == 0) {

		return false;

	} else {
		
		return true;

	}

}

function mailCheck(elem) {

	var email = elem;

	var emailRegxp = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)*\.\w{2,8}$/;

	if (emailRegxp.test(email) != true) {

		return false;

	} else {

		return true;

	}

}
 
function validate(form) {

	var attrVal, attrReg, attrEq, attrFail, strTemp, formfield, name, label, radio_checked, invalid;

	for (var i = 0; i < form.length; i++) {

		attrVal = form[i].className;
   
		switch (attrVal) {

			case 'required' :

			if (!isNotEmpty(form[i])) {

				formfield = document.getElementById('input_' + i);
				name      = formfield.getAttribute('name');
				label     = getLabelForId(name);

				label.className = "failure";

				if (!invalid) {

					document.getElementById('form_message').style.display  = 'none';
					document.getElementById('form_error').style.display    = 'block';
					document.getElementById('form_error').style.color      = '#FF0000';
					document.getElementById('form_error').style.fontWeight = 'bold';

					invalid = true;

				}

			} else {

				formfield = document.getElementById('input_' + i);
				name      = formfield.getAttribute('name');
				label     = getLabelForId(name);

				label.className = "success";

				if (!invalid) {

					invalid = false;

				}

			}

			break;
			
			case 'email' :

			if (!mailCheck(form[i].value)) {

				formfield = document.getElementById('input_' + i);
				name      = formfield.getAttribute('name');
				label     = getLabelForId(name);

				label.className = "failure";

				if (!invalid) {

					document.getElementById('form_message').style.display = 'none';
					document.getElementById('form_error').style.display   = 'block';
					document.getElementById('form_error').style.color     = '#FF0000';
					document.getElementById('form_error').style.fontWeight = 'bold';

					invalid = true;

				}

			} else {

				formfield = document.getElementById('input_' + i);
				name      = formfield.getAttribute('name');
				label     = getLabelForId(name);

				label.className = "success";

				if (!invalid) {

					invalid = false;

				}

			}

			break;

			case 'radio' :

			formfield = document.getElementById('input_' + i);
			name      = formfield.getAttribute('name');
			label     = getLabelForId(name);

			for (k = 0; k < document.forms[0].elements[name].length; k++) {

				if (document.forms[0].elements[name][k].checked) {

					radio_checked = true;

				}

			}

			if (!radio_checked) {

				label.className = "failure";

				document.getElementById('form_message').style.display = 'none';
				document.getElementById('form_error').style.display   = 'block';
				document.getElementById('form_error').style.color     = '#FF0000';
				document.getElementById('form_error').style.fontWeight = 'bold';

				invalid = true;
	
			} else {

				label.className = "success";

				if (!invalid) {

					invalid = false;

				}

			}

			radio_checked = null;
			
			break;
		
		}
   
	}

	if (!invalid) {

		return true;		

	} else {

		return false;
		
	}

}

function rot13(input) {
	
	var coding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMabcdefghijklmnopqrstuvwxyzabcdefghijklm';
	
	for (var text = '', i = 0; i < input.length; i++) {
		
		character = input.charAt(i);
		position  = coding.indexOf(character);

		if (position > -1) {
			
			character = coding.charAt(position + 13);
			
		}
		
		text += character;
		
	}
	
	return text;
	
}

function deRot(link) {
	
	if (link.href.indexOf('mailto:') != 0) {
		
		link.href = rot13(link.href);
		
	}
	
}