var source = "none";
var atsId = getQueryStringParam('atsid');
var p_s;
var l_s;

if (top == window && !omni_included)
{
  if (s_omni1.campaign != "") campaign = s_omni1.campaign;
  if (s_omni1.eVar7 != "") source = s_omni1.eVar7;
}

function getWebServiceURL(cmd)
{
  var href = "http://" + location.hostname + subFolder;
	return href + "/ws/WebService.asmx/" + cmd;
}
	
function checkPosLoc()
{      
             
        if(p_s.options.length<1)
	 {
		errorAlert("Alert", "Please wait while we load the page...");
		return false;
	 }
	var errID = $('pos_loc_err');

	var loc = l_s.getValue();
	if (!loc)
	{
		if (errID) $(errID).innerHTML = locationErrMsg;
		else
                 {
			errorAlert("Alert", locationErrMsg)//alert(locationErrMsg);
		//l_s.element.focus();
                 }
		return false;
	}	

	var pos = p_s.value;
	if (!pos)
	{
	   if (errID) $(errID).innerHTML = positionErrMsg; else errorAlert("Alert", positionErrMsg);//alert(positionErrMsg);
		p_s.focus();
		return false;
	}
	

	loc = [ loc.CO, "~", loc.RG, "~", loc.ST, "~", loc.SRG, "~", loc.MT, "~", loc.CI, "~", loc.LZP ].join("");
	

	clickTrack("GetEmailAddress", pos, loc);
     checkEmail(true);//true -- ignore mail box
	//seml('plemail_popup');
	return false;
}

function checkATS()
{
	var errID = $('pos_loc_err');

	var pos = p_s.value;
	if (!pos)
	{
		if (errID) $(errID).innerHTML = positionErrMsg; else alert(positionErrMsg);
		p_s.focus();
		return false;
	}
	var loc = l_s.getValue();
	if (!loc)
	{
		if (errID) $(errID).innerHTML = locationErrMsg; else alert(locationErrMsg);
		l_s.element.focus();
		return false;
	}

	loc = [ loc.CO, "~", loc.RG, "~", loc.ST, "~", loc.SRG, "~", loc.MT, "~", loc.CI, "~", loc.LZP ].join("");

	var f = document.ats_form;
	f.location.value = loc;
	f.position.value = pos;
	f.action = prodDomain + '/ItzBig.aspx?cm='+ campaign +'&sr='+ source +'&atsid='+ atsId;
	clickTrack("ATSLogin");
	f.submit();
}

var isEmail = /^[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*\.([A-Za-z]){2,4}$/i;
function checkEmail(ignoreEmail)
{
	var errID = $('plemail_err');
	if(ignoreEmail)
	 $('plemail').value="anonymoususer@itzbig.com";

	var em=$('plemail');

	if (em.value == '' || !isEmail.test(em.value))
	{
		if (errID) $(errID).innerHTML = emailErrMsg; else alert(emailErrMsg);
		em.focus();
		return false;
	}
	var pos = p_s.value;
	var loc = l_s.getValue();

	var tloc = [ loc.CO, "~", loc.RG, "~", loc.ST, "~", loc.SRG, "~", loc.MT, "~", loc.CI, "~", loc.LZP ].join("");
	clickTrack("CheckJobs", pos, tloc, em.value);

	var f = $('justamin_pos');
	if (f) f.innerHTML = p_s.options[p_s.selectedIndex].text;
	f = $('justamin_loc');
	if (f) f.innerHTML = l_s.getText();
	f = $('justamin_popup');
	if (f) seml('justamin_popup');

	rcrd(pos, loc, em.value);
	gnum(pos, loc);
}

function validateMemberForm(formName, errorName, domain,from)
{
	var f = document.forms[formName];  // must format this way for FF
	var error = $(errorName);
	var email = f.email.value;
	if (email == "" || !isEmail.test(email))
	{
		error.innerHTML = emailErrMsg;
		f.email.focus();
		return false;
	}
	else if (f.password.value == '')
	{
		error.innerHTML = passwordErrMsg;
		f.password.focus();
		return false;
	}
	if (top.refid)
		f.action = domain + '/ItzBig.aspx?cm='+ campaign +'&sr='+ source +'&refid='+ top.refid;
	if (top != window)
	{
		if (top.name) f.target = top.name;
		else f.target = "_#itzbig";
	}
	
	if(from == 'S')
	{
	    if ($('chkRememberS').checked ==  true)
	    {
	        checkCke('itzbigseekcke','chkRememberS',f.email.value,f.password.value);
	    }	    
	 }
	 else if(from == 'R')
	 {
	    if ($('chkRememberR').checked ==  true)
	    {
	        checkCke('itzbigreccke','chkRememberR',f.email.value,f.password.value);
	    }	 
	 }
	 
	clickTrack("Login");
	f.submit();
}

// PRIVATE
function posObj(l, v)
{
  this.label = l;
  this.value = v;
}

function bp()
{
  new Ajax.Request(getWebServiceURL("GetAllOccupations"), { onSuccess: occ, onFailure: eglc });
}

var positions = new Array();
function occ(r)
{
  var obj = se(r);
  positions[0] = new posObj("What do you want to do?", "");
  for (var i=0; i < obj.OCCUPATIONS.LABEL.length; i++)
  {
    var p = obj.OCCUPATIONS.LABEL[i].replace(/&amp;amp;/, "&");
    positions[(i+1)]= new posObj(p, obj.OCCUPATIONS.VALUE[i]);
  }
  bpc();
}

function bpc()
{
	p_s = $('position');
	if (p_s && p_s.options && positions)
	  {
	    
		for (var i = 0; i < positions.length; i++) 
		{
		 if(positions[i].label.trim()!="")
		 	p_s.options[p_s.options.length] = new Option(positions[i].label, positions[i].value);
		}
          }
}

function bl()
{
	var o = { defMsg: locationDefMsg, pageLength:10, charCacheCount:4, matchIgnoreWhitespace:true, filterValues:flc, sortMethod:slc }; 
	l_s = new IBStreamAutocompleter($('location'), $('location_options'), glc, o);
}

function slc(a, b)
{
	if (a.dm) return -1;
	else if (b.dm) return 1;
	else if (a.swm && !b.swm) return -1;
	else if (!a.swm && b.swm) return 1;
	else if (a.swm && b.swm)
	{
		if (a.CI != '0' && b.CI == '0') return 1;
		else if (a.CI == '0' && b.CI != '0') return -1;
		else if (a.MT != '0' && b.MT == '0') return 1;
		else if (a.MT == '0' && b.MT != '0') return -1;
		else if (a.SRG != '0' && b.SRG == '0') return 1;
		else if (a.SRG == '0' && b.SRG != '0') return -1;
		else if (a.sm && !b.sm) return -1;
		else if (!a.sm && b.sm) return 1;
		else if (a.DESC.toLowerCase() < b.DESC.toLowerCase()) return -1;
		else return 1;
	}
	else if (a.DESC.toLowerCase() < b.DESC.toLowerCase()) return -1;
	else return 1;
}

var tk = null;
function glc(token)
{
	tk = token;
	eacn('location', 'autoprocess');
	new Ajax.Request(getWebServiceURL("LocationMatch"), { postBody: "token=" + token, onSuccess: cglc, onFailure: eglc });
}

function cglc(r)
{
	var obj = se(r);
	if (obj.ERROR) re(obj);
	else
	{
		var a = obj.LOCATIONMATCH.CLS.CL;
		if (!a.push) a = [ a ];
		l_s.onComplete(tk, a);
		ercn('location', 'autoprocess');
	}
}

function eglc(r)
{
	re( { ERROR: { MESSAGE: "eglc - " + r.responseText } });
	ercn('location', 'autoprocess');
} 

function re(err)
{
	alert(err.ERROR.MESSAGE);
}

function flc(token, values)
{
	var lctoken = token.toLowerCase();

	// mark up the input matches.
	for (var i = 0; i < values.length; i++)
	{
		var loc = values[i];
		var lcval = loc.DESC.toLowerCase();
		if (lctoken == lcval)
			loc.dm = true;
		if (lcval.indexOf(lctoken) == 0)
			loc.sm = true;
		var v = lcval.split(/[\s-,]/);
		for (var j = 0; j < v.length; j++)
			if (v[j].indexOf(lctoken) == 0)
			{
				loc.swm = true;
				break;
			}
	}
	values.sort(slc);
	return values;
}

function rcrd(pos, loc, email)
{
	var locCode = [ loc.CO, "~", loc.RG, "~", loc.ST, "~", loc.SRG, "~", loc.MT, "~", loc.CI, "~", loc.LZP ].join("");
	new Ajax.Request(getWebServiceURL("VisitorInfo"), { postBody: "email=" + escape(email) + "&poscd=" + pos + "&loccd=" + escape(locCode) });
}

function gnum(pos, loc)
{
	var locCode = [ loc.CO, "~", loc.RG, "~", loc.ST, "~", loc.SRG, "~", loc.MT, "~", loc.CI, "~", loc.LZP ].join("");
	new Ajax.Request(getWebServiceURL("JobCounts"), { postBody: "poscd=" + pos + "&loccd=" + escape(locCode), onSuccess: cgnum, onFailure: egnum });
}

function cgnum(r)
{
try {
	var jp = $('justamin_popup');
	if (jp) ehide(jp);

	var obj = se(r);
	if (obj.ERROR) 
	{
		obj.ERROR.MESSAGE = "cgnum - " + obj.ERROR.MESSAGE;
		re(obj);
	}
	else
	{
		var idx = p_s.selectedIndex;
		var pos = p_s.options[idx].value;
		var email = $('plemail').value;
		var posNm = p_s.options[idx].text;

		var loc = l_s.getValue();
		var locNm = loc.DESC;
		loc = [ loc.CO, "~", loc.RG, "~", loc.ST, "~", loc.SRG, "~", loc.MT, "~", loc.CI, "~", loc.LZP ].join("");
		var a = parseInt(obj.JOBCOUNTS.POSLOC);
		var href = null;
		/*if (a < minPosLocs)
		{
			var b = parseInt(obj.JOBCOUNTS.POS);
			if (b < minPositions)
				href = noJobsURL;
			var qs = "email=" + email;
			if (top.refid)
				qs += "&refid=" + top.refid;
			if (atsId)
				qs += "&atsid=" + atsId;
			alert("Currently, there are no job matches for the selected position and location in our network. Please select another position.");
            return false;
			href = "hotjobs.html?code="+ pos +"&"+ setQueryString(qs);
			location.href = href;
		}
		else
		{*/
			var qs = "pos="+ pos +"&loc="+ loc +"&posnm="+ escape(posNm)+"&locnm="+ escape(locNm) +"&cnt="+ a +"&email="+ email +"&cm="+ campaign +"&sr="+ source;
			if (top.refid)
				qs += "&refid=" + top.refid;
			if (atsId)
				qs += "&atsid=" + atsId;

			href = prodDomain + "/index.html?"+ setQueryString(qs);
			top.location.href = href;
		//}
	}
	return false;
}
catch (e)
{
	egnum({ responseText: e.message });
}
}

function egnum(r)
{
	var jp = $('justamin_popup');
	if (jp) ehide(jp);

	re( { ERROR: { MESSAGE: "egnum - " + r.responseText } });
	ercn('location', 'autoprocess');
}

function ij()
{
	var pos = pagePositionCode;
	var loc = pageLocationCode;
	new Ajax.Request(getWebServiceURL("HotJobs"), { postBody: "poscd="+ pos +"&loccd="+ loc, onSuccess: cghj, onFailure: eghj });
}

function cghj(r)
{
	try {
		var obj = se(r);
		if (obj.ERROR) (obj);
		else
		{
			var jobs = obj.POSITIONDUMP.POSITIONS_POSTED;
			if (jobs == null) jobs = [];
			if (!jobs.push) jobs = [ jobs ];
			var i = 0;
			for (; i < jobs.length; i++)
			{
				var j = jobs[i];
				if (!j.WIAS.WIA) 
				{
					$('job_' + i).style.display = "none";
					continue;
				}
				// Need to do this, usually handled by dal
				if (!j.WIAS.WIA.push) j.WIAS.WIA = [ j.WIAS.WIA ];

				var f = $('jobtitle_' + i);
				if (f) f.innerHTML = convertToHTMLSafe(j.TT);
				f = $('companyname_' + i);
				if (f) f.innerHTML = convertToHTMLSafe(j.CN);
				f = $('location_' + i);
				if (f) f.innerHTML = convertToHTMLSafe(j.WIAS.WIA[0].DESC);

				f = $('joblink_' + i);
				var href = genStaticJobURLFromRoot(j, jobDomain) +"?cm="+ campaign +"&sr="+ source;
				if (top.refid)
					href += "&refid=" + top.refid;

				var qs = "";
				var em = getQueryStringParam('email');
				if (em)
					qs += "email=" + em;
				if (atsId)
					qs += (qs != '' ? '&' : '') + "atsid=" + atsId;

				href = href + "&" + setQueryString(qs);
				if (f && f.href) f.href = href;

				f = $('job_' + i);
				eshow(f);
			}
			for (; i < 5; i++)
			{
				var f = $('job_' + i);
				ehide(f);
			}
		}
	}
	catch (e)
	{
    eghj({ responseText: e.message});
	}
}

function eghj(r)
{
	re( { ERROR: { MESSAGE: "cghj - " + r.responseText } });
} 

function seml(id)
{
	var d = $(id);
	d.style.visibility = 'hidden';
	eshow(d);
	setTimeout("ceml('" + id + "');", 1);//var x = $('plemail'); if (x) x.focus();
}

function ceml(id)
{
	var d = $(id);
	var ws = null;
	var ps = null;
	if (isIE6 || isIE7)
	{
		if (isIE7) ws = Element.getDimensions(document.body);
		else ws = Element.getDimensions(top.document.body);
		if (ws.height > screen.height - 250) ws.height = screen.height - 250;
		var br = $('bottomref');
		var x = Position.cumulativeOffset(br);
		x[0] += br.offsetWidth;
		ps = { width: x[0], height: x[1] };
	}
	else
	{
		ps = Element.getDimensions(document.body);
		ws = { width: window.innerWidth, height: window.innerHeight };
	}
	var ms = { width: d.offsetWidth, height: d.offsetHeight };

	var l = Math.floor((ws.width - ms.width) / 2);
	var t = Math.floor((ws.height - ms.height) / 2);
	Position.prepare();
	var scrollOff = { x: Position.deltaX, y: Position.deltaY };
	t += scrollOff.y;
	l += scrollOff.x;
	if (l + ms.width > ps.width) l = ps.width - ms.width;
	if (l < 0) l = 0;
	if (t + ms.height > ps.height) t = ps.height - ms.height;			
	if (t < 0) t = 0;
	d.style.top = concat(t, "px");
	d.style.left = concat(l, "px");
	d.style.visibility = 'visible';
}

function se(r)
{
	var obj = { ERROR: { MESSAGE: "Unable to determine object" } };
	try
	{
		r = r.responseText;
		if (r.indexOf('<string xmlns="http://tempuri.org/" />') == -1)
		{
			var idx = r.indexOf('tempuri.org');
			r = r.substring(idx + 14, r.length - 9);
			r = r.split("&lt;").join("<");
			r = r.split("&gt;").join(">");
			r = r.split("&").join("&");
			r = r.split("&quot;").join("\"");
			obj = eval("(" + r + ")");
		}
	}
	catch (e)
	{
		obj = { ERROR: { MESSAGE: "se - " + e.message } };
	}
	return obj;
}

if ($('ismain'))
{
	bp();
	bl();
	// stop IE from reloading previous input
	setTimeout("clearInput()", 500);
}
else if (window.pagePositionCode)
{
	ij();
}

function clearInput()
{
	$('location').value = "";
}
String.prototype.trim = function() 
{
  return this.replace(/^\s*(\b.*\b|)\s*$/, "$1");
}
