/*------------------------------------------|
| Filename: js/careers.js                   |
| Author: Mark Rebec (for AWN, Inc.)        |
| Email: mark@awn.com                       |
| Description:                              |
|   This is the main javascript include for |
| the AWN Career Center template.           |
|                                           |
| NOTE: need to add comments to the code... |
|------------------------------------------*/
	
function extLink (link) {
	var target = "http://www.awn.com/careerclicks.php?url=" + link;
	window.open(target,'_blank');
	return false;
}
	
function initShell () {
	navMenus.initMenus();
	
	if ($('password')) {
		Event.observe('password', 'keypress',
			function(event) {
				shellForms.enterSubmit(event);
		});
		Event.observe('loginSubmit', 'click',
			function(event) {
				shellForms.submitForm($('loginForm'));
		});
	}
	
	if ($('qSearchButton')) {
		Event.observe('qSearchButton', 'click',
			function(event) {
				shellForms.submitForm($('qJobSearch'));
		});
	}
	
	Event.observe('nlSubmit', 'click', 
		function(event) { 
			shellForms.submitForm($('nlForm')); 
	});
	
	var JobTab = $('JobTab');
	var EmpTab = $('EmpTab');
	Event.observe(JobTab, 'click', function(event) { navMenus.tabSwitcher(JobTab,EmpTab); });
	Event.observe(EmpTab, 'click', function(event) { navMenus.tabSwitcher(EmpTab,JobTab); });
}

function findChildren (myNode, type, val) {
	x = 0;
	var nodeCount = myNode.childNodes.length;
	var kids = Array();
	for (i=0; i<nodeCount; i++) {
		currentNode = myNode.childNodes[i];
		if (type == 'id') {
			if (currentNode.id) {
				if (currentNode.id == val) {
					kids[x] = currentNode;
					x++;
				}
			}
		} else if (type == 'class') {
			if (currentNode.className) {
				if (currentNode.className == val) {
					kids[x] = currentNode;
					x++;
				}
			}
		} else if (type == 'tag') {
			if (currentNode.tagName) {
				var tag = currentNode.tagName.toLowerCase();
				if (tag == val) {
					kids[x] = currentNode;
					x++;
				}
			}
		}
	}
	if (kids.length > 0) {
		return kids;
	} else {
		return false;
	}
}

function getVars() {
	var location_string = document.location.toString();
	if (location_string.indexOf('?') != -1) {
		var loc_string = location_string.split('?');
		var get_string = loc_string[1];
		var get_pairs = get_string.split('&');
		var get_data = Array();
		for (i=0; i<get_pairs.length; i++) {
			get_data[i] = Array();
			this_pair = get_pairs[i].split('=');
			get_data[this_pair[0]] = this_pair[1];
		}
		if (get_data.length > 0) {
			return get_data;
		} else {
			return false;
		}
	} else {
		return false;
	}
}

var shellCookies = {

	setCookie : function (name, value, path, expires, domain, secure) {
		var curCookie = name + "=" + escape(value) +
			((expires) ? "; expires=" + expires.toGMTString() : "") +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			((secure) ? "; secure" : "");
		document.cookie = curCookie;
	},

	getCookie : function (name) {
		var dc = document.cookie;
		var prefix = name + "=";
		var begin = dc.indexOf("; " + prefix);
		
		if (begin == -1) {
			begin = dc.indexOf(prefix);
			
			if (begin != 0) 
				return null;
		
		} else
			begin += 2;
		
		var end = document.cookie.indexOf(";", begin);
		
		if (end == -1)
			end = dc.length;
		
		return unescape(dc.substring(begin + prefix.length, end));
	},

	deleteCookie : function (name, path, domain) {
		if (getCookie(name)) {
			document.cookie = name + "=" +
				((path) ? "; path=" + path : "") +
				((domain) ? "; domain=" + domain : "") +
				"; expires=Thu, 01-Jan-70 00:00:01 GMT";
		}
	}
}

var shellForms = {
	enterSubmit : function (event) {
		if (event.keyCode == Event.KEY_RETURN) {
			this.submitForm(Event.element(event).form);
		}
	},

	submitForm : function (theForm) {
		theForm.submit();
	}
}

var navMenus = {
	initMenus : function () {
		Event.observe('homeLink', 'mouseover', function(event) { navMenus.showMenu('homeLink'); });
		Event.observe('jobsLink', 'mouseover', function(event) { navMenus.showMenu('jobsLink'); });
		Event.observe('resumesLink', 'mouseover', function(event) { navMenus.showMenu('resumesLink'); });
		Event.observe('cCLink', 'mouseover', function(event) { navMenus.showMenu('cCLink'); });
		if ($('resLink')) {
			Event.observe('resLink', 'mouseover', function(event) { navMenus.showMenu('resLink'); });
		}
		if ($('helpLink')) {
			Event.observe('helpLink', 'mouseover', function(event) { navMenus.showMenu('helpLink'); });
		}
	},
	
	showMenu : function (linkID) {
		var elemID = '';
		$('resumesLink').style.color = '#fff';
		$('jobsLink').style.color = '#fff';
		switch (linkID) {
			case 'jobsLink':
				$(linkID).style.color = '#ff9702';
				elemID = 'JobsSub';
				break;
			case 'resumesLink':
				$(linkID).style.color = '#ff9702';
				elemID = 'ResumesSub';
				break;
			case 'cCLink':
				elemID = 'none';
				break;
			case 'homeLink':
				elemID = 'none';
				break;
			default:
				elemID = 'none';
		}
		
		var elems = document.getElementsByClassName('botNav');
		for (i=0; i<elems.length; i++) {
			if (Element.getStyle(elems[i], 'display') != "none" && elems[i].id != elemID) {
			/*	
				new Effect.Fade(elems[i].id, { duration: .1 });
			*/
				$(elems[i]).style.display = "none";
			}
		}
		if (elemID != "none") {
			var element = $(elemID);
			if (Element.getStyle(element, 'display') == "none") {
				new Effect.Appear(elemID, { duration: .3 });
			}
		}
	},

	navOver : function () {
		var text = this.childNodes[0].innerHTML
		var innerText = text.replace('fff', 'ff9702');
		this.childNodes[0].innerHTML = innerText;
	},
	
	navOut : function () {
		var text = this.childNodes[0].innerHTML
		var innerText = text.replace('ff9702', 'fff');
		this.childNodes[0].innerHTML = innerText;
	},

	whichTab : function () {
		var EmpTab = $('EmpTab');
		if (EmpTab.childNodes[0].className == "on") {
			return 'employer';
		} else {
			return 'jobseeker';
		}
	},
	
	tabSwitcher : function (switchTo,otherSwitch) {
		var userMode = this.whichTab();
		if (switchTo.id == 'JobTab' && userMode != 'jobseeker') {
			
			if (!$('loginForm')) {
				var switchTabs = confirm('You are switching to a Job Seeker account.  If you are not already logged in with your Job Seeker account, you will be asked to do so. Press OK to continue, or Cancel to remain an Employer.');
			} else {
				var switchTabs = true;
			}
			
			var userType = 'c';
			shellCookies.setCookie('UserMode','JobSeeker', '/');
		} else if (switchTo.id == 'EmpTab' && userMode != 'employer') {
			
			if (!$('loginForm')) {
				var switchTabs = confirm('You are switching to an Employer account.  If you are not already logged in with your Employer account, you will be asked to do so. Press OK to continue, or Cancel to remain a Job Seeker.');
			} else {
				var switchTabs = true;
			}
			
			var userType = 'r/account';
			shellCookies.setCookie('UserMode','Employer', '/');
		}
		
		if (switchTabs) 
			window.location = 'http://jobs.awn.com/' + userType + '/index.cfm?site_id=500';
		
	}

}

var imgReplace = {	
	replaceItems : function (elemstr, font, size, background, color) {
		var fChar = elemstr.charAt(0);
		var eStr = '';
		var elems = Array();
		if (fChar == '#') {
			eStr = elemstr.substring(1);
			elems[0] = $(eStr);
		} else if (fChar == '.') {
			eStr = elemstr.substring(1);
			elems = document.getElementsByClassName(eStr);
		} else if (elemstr.indexOf('.') > 0) {
			var strSplit = elemstr.split('.');
			var eTag = strSplit[0];
			eStr = strSplit[1];
			var tmpTags = document.getElementsByTagName(eTag);
			var y=0;
			for (x=0; x<tmpTags.length; x++)
			{
				if (tmpTags[x].className.indexOf(eStr) >= 0) {
					elems[y] = tmpTags[x];
					y++;
				}
			}
		} else {
			eStr = elemstr;
			elems = document.getElementsByTagName(eStr);
		}
		for (i=0; i<elems.length; i++) {
			var text = elems[i].innerHTML;
			var HTMLtext = text.replace(' ', '%20');
			elems[i].innerHTML = '<img src="http://shell.careers.awn.com/images/' + font + '.php?text=' + text + '&size=' + size + '&background=' + background + '&color=' + color + '" alt="' + text + '" />';
		}
	},
	
	initReplace : function () {
		this.replaceItems('h3.aroundAWN', 'franklinGothic', 12, '78788c', 'fff');
		this.replaceItems('.LSBReplace', 'franklinGothic', 11, '78788c', '000');
		this.replaceItems('.RSBReplace', 'franklinGothic', 11, 'ccc', '000');
		this.replaceItems('#homeLink', 'franklinGothic', 10, '000', 'fff');
		this.replaceItems('#jobsLink', 'franklinGothic', 10, '000', 'fff');
		this.replaceItems('#resumesLink', 'franklinGothic', 10, '000', 'fff');
		this.replaceItems('#cCLink', 'franklinGothic', 10, '000', 'fff');
	}
}

Event.observe(window,'load',initShell);
