/* Onload.js */
var Cookies = {};

function parseCookies(){
	cookies = document.cookie.split(";");
	for(i = 0; i < cookies.length; i++){
		cookie = cookies[i].split("=");
		Cookies[trim(cookie[0])] = (cookie.length == 2) ? trim(cookie[1]): "";
	}
}
function trim(val){return val.replace(/\s/, "").toLowerCase();}
function cookieExists(cName){
	var foundCookie = false;
	for(c in Cookies){
		if(c.toLowerCase() == cName.toLowerCase()){
			if(trim(Cookies[cName.toLowerCase()]) != ''){
				foundCookie = true;
			}
		}
	}
	return foundCookie;
}
function loadCookies() {
        var Cookies = {};
        parseCookies();
}

/* Load Cookies called before MyJobBoard loads to enable login  */
        loadCookies();
/* End Onload */

/* Adkit Configuration */
function adkit_config (inClass, inState) 
    { 	
      ndm.page.site = "CONE";
      ndm.page.section = inClass;
      ndm.page.custom = inState;
      ndm.page.runads = true;
      ndm.page.hbx.account = "";
      ndm.page.hbx.gateway = "c1.careerone.com.au";
      ndm.page.hbx.domain = "www.news.com.au";
      ndm.page.hbx.pn = "";
      ndm.page.hbx.mlc = "";
      ndm.page.hbx.pndef="index.html";
      ndm.page.hbx.ctdef="full";
      ndm.page.hbx.fv="";
      ndm.page.hbx.lt="auto";
      ndm.page.hbx.dlf="n";
      ndm.page.hbx.dft="n";
      ndm.page.hbx.elf="n";
      ndm.page.hbx.seg="";
      ndm.page.hbx.fnl="";
      ndm.page.hbx.cmp="";
      ndm.page.hbx.cmpn="";
      ndm.page.hbx.dcmp="";
      ndm.page.hbx.dcmpn="";
      ndm.page.hbx.dcmpe="";
      ndm.page.hbx.dcmpre="";
      ndm.page.hbx.hra="_P::attr";
      ndm.page.hbx.hqsr="";
      ndm.page.hbx.hqsp="";
      ndm.page.hbx.hlt="";
      ndm.page.hbx.hla="";
      ndm.page.hbx.gp="";
      ndm.page.hbx.gpn="";
      ndm.page.hbx.hcn="";
      ndm.page.hbx.hcv="";
      ndm.page.hbx.cp="null";
      ndm.page.hbx.cpd="";
      ndm.page.hbx.ci="";
      ndm.page.hbx.hc1="";
      ndm.page.hbx.hc2="";
      ndm.page.hbx.hc3="";
      ndm.page.hbx.hc4="";
      ndm.page.hbx.hrf="";
      ndm.page.hbx.pec="";
      ndm.page.nielsen.ci = "newscorp";
      ndm.page.nielsen.cg = "0";       
      ndm.page.setup();
    }

/* End Adkit Configuration */

function _gaLoad () {
    var pageTracker = _gat._getTracker("UA-2816198-1");
        pageTracker._initData();
        pageTracker._trackPageview();
}

function _diLoad() {
	var refr=escape(document.referrer); /* get the http referer and encode it */ 
	var dom=location.hostname; /* get the host domain */ 
	var stURL="http://pm14.com/n/8831/23791/www.careerone.com.au/d6a02d990025030000000006000000000355c2020000000000000000000000000000000100/i/c?0&1pixgif&referer=" + refr; 
	if ( (refr && refr.search(dom) == -1) && (location.href.toUpperCase().indexOf("247SEO=N") == -1) ) /* if the referrer is external preload the image request and does not contain 247SEO argument = "N" */ 
	{ 
		imageTR = new Image(); 
		imageTR.src = stURL; 
	}
}
 /* ADVERTISER LOGIN -  Function to call the Advertiser Login widget (including logged in and logged out versions).  Also passing the relative path value for the Forgot Password link. */
 function advlog (inPath) 
{ 
	if(!cookieExists('ccloggedin')) {
		document.write('	<div id="advertiser-login">\n');
		document.write('		<h2><span>Regular Advertisers</span></h2>\n');
		document.write('	<form action="http://jobs.careerone.com.au/texis/account/login.html" name="advlogin" method="post" id="advlogin">\n');
		document.write('		<label for="loginEmail">Username <input class="textfield_log" name="loginEmail" id="loginEmail" type="text"></label>\n');
		document.write('		<label for="loginPass">Password <input class="textfield_log" name="loginPass" id="loginPass" type="password"></label>\n');
		document.write('		<input class="loginbutton" type="image" src="/images/site/buttons/button_adv_login.gif" name="login" title="Login now" id="advertiser-login-submit" />\n');
		document.write('		<span class="forgot"><a href="'+inPath+'advertisers/forgot-password">Forgot password?</a></span>\n');
		document.write('	</form>\n');
		document.write('	</div>\n');
	}	else {
        document.write('	<br />');
}				
}

/* 
 * SEO Order 
 *
 * This code will re-arrange the DOM structure so that it looks correct to the eye, and to the DOM
 * This change is required to allow search engine spiders to look at the important information on the page, not the navigation and ndm bar 
 *
 * */
if (typeof load_analytics == "undefined") {
	var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
	document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
}

	
if(typeof jQuery == 'function'){ // if Jquery has been loaded then we can do this, otherwise it will throw errors and stop downline scripts from working. So we ignore everything that requires Jquery.
$(document).ready(function() {
	if ($("[id='search_form']").length >0){document.search_form.reset();SearchFormSwitch();}
	if ($("[id='search_form_300']").length >0){document.search_form_300.reset();}
	$('#content-wrap').removeClass('content-wrap-noJS');
	$('#content-wrap').before($('#head-wrap'));
	$('#head-wrap').removeClass('head-wrap-noJS');
	$('#footer').removeClass('footer-noJS');
});
$(window).ready(function() {
	$('#hide-ads').removeClass('hide-ads');	
	$('#content-wrap').before($('#head-wrap'));
	if (typeof load_analytics == "undefined") {
		_diLoad();
		_gaLoad();
	}
//	loadqInd();
	$('.adkit-advert').each(function(test) {if (($(this).html().indexOf('1x1.gif') != -1) || ($(this).html().indexOf('817-grey.gif') != -1)) {$(this).parent().hide();}});


});
}
/* End SEO Order */

function clearForm(){
	selectLists = document.getElementById('form-search').getElementsByTagName('select');
	inputs = document.getElementById('form-search').getElementsByTagName('input');
	
	for(i=0; i<selectLists.length; i++){
		if(selectLists[i].value == ""){
			selectLists[i].name = "";
		}
	}
	
	for(i=0; i<inputs.length; i++){
		if(inputs[i].type.toLowerCase() == "text"){
			if(!inputs[i].hadFocus){
				inputs[i].value = "";
			}
		}
	}
	
	return true;
}

function clearMonsterForm(the_form){
	selectLists = document.getElementById(the_form).getElementsByTagName('select');
	inputs = document.getElementById(the_form).getElementsByTagName('input');
	
	for(i=0; i<selectLists.length; i++){
		if(selectLists[i].value == ""){
			selectLists[i].name = "";
		}
	}
	
	for(i=0; i<inputs.length; i++){
		if(inputs[i].type.toLowerCase() == "text"){
			if(!inputs[i].hadFocus){
				inputs[i].value = "";
			}
		}
	}
	
	return true;
}

function submitCompanyProfileSearch() {
	if ($('#searchString').val().indexOf("Enter company or recruiter name") != -1) {
		$('#searchCompanies').attr('action', "/research-companies/search-results/" + $('#companyType').val() + "/1/");
	} else {
		var searchString = $('#searchString').val().replace( /^\s+/g, "" ).replace( /\s+$/g, "" );// strip leading and trailing whitespace from value
		$('#searchCompanies').attr('action', "/research-companies/search-results/" + $('#companyType').val() + "/1/" + searchString );
	}
}

function SearchFormSwitch(){
	$("#more-options").click(function () {
		this.innerHTML = (this.innerHTML.indexOf('Fewer') == -1 ? "<a href=\"javascript:;\">Fewer search options</a><span class=\"icon-arrow-less\">&nbsp;</span>" : "<a href=\"javascript:;\">More search options</a><span class=\"icon-arrow-more\">&nbsp;</span>");
		$("#more-options-wrap").toggle(); 
	});
}


/* additional scripts for search box functionality */




function switchToAULocations()
{
$('#aus').addClass('selected');
$('#global').removeClass('selected');
$('#global-wrap').hide();
$('#search_regions_ddlRegions_ddcbl').hide();
$('#aus-wrap').show();

}				

function switchToGlobalLocations()
{
$('#global').addClass('selected');
$('#aus').removeClass('selected');
$('#aus-wrap').hide();
$('#global-wrap').show();
$('#search_regions_ddlRegions_ddcbl').show();
}				


function switchLocationView(switchElem, viewElem, showRadius, multicountries)
{
	// Save current selected position in the hidden field
	var SELECTED_CITY = '1';
	var SELECTED_ZIP = '2';
	var SELECTED_LOCATIONS = '3';
	var SELECTED_CONTINENT = '4';
	var SELECTED_INTERNTNL = '5';

	var selectedSearchTabForSearch = document.getElementById('MultiLocation_selectedSearchTabForSearch');
	if(selectedSearchTabForSearch != null)
	{
		var viewElemAsString = new String(viewElem);

		if(viewElemAsString == 'city-wrap')
		{
			selectedSearchTabForSearch.value = SELECTED_CITY;
		}
		else if(viewElemAsString == 'postcode-wrap')
		{
			selectedSearchTabForSearch.value = SELECTED_ZIP;
		}
		else if(viewElemAsString == 'region-wrapAu')
		{
            if(multicountries == 'intnl')
    			selectedSearchTabForSearch.value = SELECTED_INTERNTNL;
            else if(multicountries == 'cntnt')
    			selectedSearchTabForSearch.value = SELECTED_CONTINENT;
            else 
			    selectedSearchTabForSearch.value = SELECTED_LOCATIONS;
		}
	}
		// Show selected tab
	var viewIdArray = new Array('city-wrap', 'postcode-wrap', 'region-wrapAu');
	var switchIdArray = new Array('city', 'postcode', 'region');
	var viewobj = document.getElementById(viewElem);
	if (viewobj == null) { return; }
	if (viewobj.style == null || ( (viewobj.style.display == null || viewobj.style.display.length == 0) && viewElem != 'region-wrapAu'))
	{ return; }

	for ( var i = 0; i < viewIdArray.length; i++ )
	{
		if (viewIdArray[i] == viewElem)
		{
            var mcspn_cntry = document.getElementById('aus');   
            var mcspn_intnl = document.getElementById('global');   

            if(viewElem == 'city-wrap')
            {   
                if(multicountries == 'cntry')
                {
                        mcspn_cntry.className = 'selected';
                        mcspn_intnl.className = 'select';

                }
            }
            if(viewElem == 'region-wrapAu')
            {   
                if(switchElem != 'region')
                {
                    switchElem = 'region';
                    if(multicountries == 'cntnt')
                    {
                        mcspn_cntry.className = 'select';
                        mcspn_intnl.className = 'select';
                   }
                    else
                    if(multicountries == 'intnl')
                    {
                        mcspn_cntry.className = 'select';
                        mcspn_intnl.className = 'selected';
                    }
                    else
                    {
                        mcspn_cntry.className = 'selected';
                        mcspn_intnl.className = 'select';
                    }
                }
            }
	    

			viewobj.style.display = '';
			var radiusobj = document.getElementById('MultiLocation_radiusDiv');
			if (radiusobj != null) { radiusobj.style.display = showRadius ? '' : 'none'; }
		}
		else
		{
			var hideobj = document.getElementById(viewIdArray[i]);
			if (hideobj != null) { hideobj.style.display = 'none'; }
		}
	}

	var inactiveLinkTabIndex = 15; // by default this is the tabindex of the first unselected multilocation switcher
	for ( var i = 0; i < switchIdArray.length; i++ )
	{
		var switchobj = document.getElementById(switchIdArray[i]);
		if (switchobj == null) { continue; }
		if (switchIdArray[i] == switchElem)
		{
			switchobj.className = 'selected';
			if (inactiveLinkTabIndex >= 0) 
			{
				switchobj.removeAttribute('tabIndex');
				inactiveLinkTabIndex++;
			}
		}
		else
		{
			switchobj.className = '';
			if (inactiveLinkTabIndex >= 0) 
			{
				switchobj.setAttribute('tabIndex','' + inactiveLinkTabIndex + '');
				inactiveLinkTabIndex++;
			}
		}
	}
	
	//hide location error, if present
	switchLocationError(false); 
}


function switchLocationError(showFlag) {
	var errorobj = document.getElementById('');	
	if (errorobj != null && errorobj.style != null) { 
	errorobj.style.display = (showFlag ? '' : 'none'); }
}

/* MONSTER JOB SEARCH BOXES */

function JobSearchBoxesFull(){
/*
*	This script segment contains monster loading script fragments that are only related to the homepage, SEO and Advanced page search boxes (ie not 300px wide search box).
*/
	search_jobtype_ddlJobType.sortItems = true;
	search_jobtype_ddlJobType.render("search_jobtype_ddlJobType:Div");
	search_jobtype_ddlJobType.onChange();

	_jsevt(['input.jobtypes','search_jobtype_ddlJobType_ddcbl']);
	_jsevt(['input.exactphrase','qPhrase']);
	_jsevt(['input.jto','qTitle']);
	_jsevt(['input.excludekeywords','qExclude']);
	_jsevt(['input.company','qAdvertiser']);
}

function newUpdateSearchBoxes(searchWidgetID) {
	window[searchWidgetID].addChangeEventHandler( function (sender, item) {
		if((item != undefined) &&  (item.id.lastIndexOf('--') == -1) && (item.id.substr(item.id.lastIndexOf('-')+1) == 0)) {
			if (item.folder != null) {
				for(i=1;i<item.folder.items.length; i++) {
					if (item.isSelected()) {
						$('#'+item.folder.items[i].id).next().children('label').css("color", "#999999"); 
					} else {
						$('#'+item.folder.items[i].id).next().children('label').css("color", "#000000"); 
					}
					item.folder.items[i].select(false);
				}
				if (item.isSelected()) {
					item.folder.disable();
				} else {
					item.folder.enable();
				}
			}
		}
	});
}

function JobSearchBoxesAll() {
	/*
	*	This script segment contains monster loading script fragments that required on all search boxes.
	*/
	_jsevt(['input.occupations','search_occupations_ddlOccupations_ddcbl']);
	_jsevt(['input.locations','search_locations_ddlLocations_ddcbl']);
	_jsevt(['input.eurostate','MasterPage1_PageTemplateContent_TopContent__ctlJobSearchCriteria_MultiLocation__dropEuroState_ddlStates_ddcbl']);
	_jsevt(['input.cntry','country_flag_for_locations']);

	_jsevt(['input.keywords','q']);
	_jsevt(['input.zip','qPostcode']);
	_jsevt(['input.radius','MultiLocation__dropRadius']);
	_jsevt(['input.radiusunits','radunits_flag']);
	_jsevt(['input.locationintnl','search_regions_ddlRegions_ddcbl']);

	//_jsevt(['input.selectedsearchtabforsearch','MultiLocation_selectedSearchTabForSearch']);
	_jsevt(['input.defaultradius','MultiLocation_defaultRadius']);
	_jsevt(['input.city','qCity']);

	jobsearch_form_id=document.forms.length-1;

	search_occupations_ddlOccupations.formID=jobsearch_form_id;
	search_occupations_ddlOccupations.sortItems = true;
	search_occupations_ddlOccupations.render("search_occupations_ddlOccupations:Div");
	search_occupations_ddlOccupations.onChange(); 

	search_locations_ddlLocations.formID=jobsearch_form_id;
	search_locations_ddlLocations.sortItems = true;
	search_locations_ddlLocations.render("search_locations_ddlLocations:Div");
	search_locations_ddlLocations.onChange();
$(window).ready(function() {
	search_regions_ddlRegions.formID=jobsearch_form_id;
	search_regions_ddlRegions.sortItems = true;
	search_regions_ddlRegions.render("search_regions_ddlRegions:Div");
	search_regions_ddlRegions.onChange();
});

	MasterPage1_PageTemplateContent_TopContent__ctlJobSearchCriteria_MultiLocation__dropEuroState_ddlStates.formID = jobsearch_form_id;
	MasterPage1_PageTemplateContent_TopContent__ctlJobSearchCriteria_MultiLocation__dropEuroState_ddlStates.sortItems = true;
	MasterPage1_PageTemplateContent_TopContent__ctlJobSearchCriteria_MultiLocation__dropEuroState_ddlStates.render("MasterPage1_PageTemplateContent_TopContent__ctlJobSearchCriteria_MultiLocation__dropEuroState_ddlStates:Div");
	MasterPage1_PageTemplateContent_TopContent__ctlJobSearchCriteria_MultiLocation__dropEuroState_ddlStates.onChange();

	if ($('#qRegion').length) {
		populateSelectBoxes('qRegion', c1_states, 'id', 'name');
	}



	var occupationElementID = $("[id*=occupations][id$=ddcbl:Div]").each(function() {
		var theID = this.id.substring('0', this.id.lastIndexOf('_ddcbl:Div'));
		newUpdateSearchBoxes(theID);
	});
	var occupationElementID = $("[id*=locations][id$=ddcbl:Div]").each(function() {
		var theID = this.id.substring('0', this.id.lastIndexOf('_ddcbl:Div'));
		newUpdateSearchBoxes(theID);
	});

	/* Below are the default Monster Constants that we are overriding to get our search to work */

	if (typeof(c1EnableAllOccupations) != "undefined") // if global flag is set change the OCCUPATION_ID
		JsConst.QS_OCCUPATION_ID = "fn";

	JsMain.CurrentPage = function() {
		// get the current page url
		var currentPage;
		var currentUrl = window.location.href;

		// the below line is to allow us to actually change the action item. if this is not here, the behind the scenes workings of the monster search result in the page simply refreshing, not redirecting.
		currentUrl = document.forms[jobsearch_form_id].action;
	
		// find the query string part and split there
		var currentSplit = currentUrl.split('?');
		// If we are in SEO mode, then force any refinements to the /Search.aspx page to allow the user to avoid
		// the SEO controller module.
		if (typeof SEO_JOB_SEARCH_PARAMS == "string")
		{
			// split out the path elements and rebuild the path with /Search.aspx as the target page
			var pathSplit = currentSplit[0].split('/');
			currentPage = pathSplit[0]+'//'+pathSplit[2]+'/Search.aspx';
		}
		else
		{
		// Otherwise we just use the current page definition
		currentPage = currentSplit[0];
		}
		return currentPage;
	}

	var old_JsUtil_GetSid = JsUtil.GetSid;

	JsUtil.GetSid = function(arrQueryParams,curQuery) {
		    var sidVal = old_JsUtil_GetSid(arrQueryParams,curQuery);
		    if (typeof(sidVal) == 'undefined')
				sidVal = JsUtil.GetObjectValue( JsMain.Inputs[JsConst.INPUT_EUROSTATE] );
		    return sidVal;
	}

	MultiMap.prototype.QueryStringSerialize = function() {
		/*
			C1 Hijack of QSS function: we've added direct injection of the two fields that we require that are not a part of the current monster jobsearch.js. If at some point this is rectified at the monster end, we can simply remove 

		this.Add('sort', $('#sort_flag').val());
		if ( (typeof($('#qdateposted').val()) != "undefined") && ($('#qdateposted').val() != "")) {
			this.Add('tm', $('#qdateposted').val());
		}

		from the below code, or in fact just remove this entire function from the template page.
		
		 */


//		if ( (typeof($('#global').val()) != "undefined") && ($('#global').hasClass('selected') == true)) {
//			this.Set(JsConst.QS_CONTINENT, 'AF,AS,AU,CA,EU,ME,NA,SA');
//			this.Clear(JsConst.QS_COUNTRY);
//		} else {
//			this.Set(JsConst.QS_COUNTRY, 'AU');
//			this.Clear(JsConst.QS_CONTINENT);
//		}

		
		var qs = "";

		this.Add('sort', $('#sort_flag').val());
		if ( (typeof($('#qdateposted').val()) != "undefined") && ($('#qdateposted').val() != "")) {
			this.Add('tm', $('#qdateposted').val());
		}
		
		if ($('#global-wrap').css('display') != 'none') {
			var lidArray = new Array();
			lidArray = JsUtil.GetObjectValue(JsMain.Inputs[JsConst.INPUT_LOCATION_INTNL]);
//			this.Set(JsConst.QS_CONTINENT, "AF,AS,AU,CA,EU,ME,NA,SA");
			this.Clear(JsConst.QS_COUNTRY);
			for (var n in lidArray) { 
				this.Add('lid', lidArray[n]);
			}
		} else {
//			this.Set(JsConst.QS_COUNTRY, 'AU');
			this.Clear(JsConst.QS_CONTINENT);
		}

		if (typeof(c1EnableAllOccupations) == "undefined") { // if global flag is not set, we need to remove categories from occ parameters
			var newOccMap = new Array();

			for (var f in this._map['occ']) { // loop through ALL selections from our drop down Occupations list
				if (this._map['occ'][f].indexOf('.') == -1) { // we send ALL occupations as x.yyy format. No period, no occupation. 
					this.Add('fn', this._map['occ'][f]); // brute force in a category search
				}  else {
					newOccMap.push(this._map['occ'][f]); // add legitimate occupations to a 'clean' array
				}
			}
			this._map['occ'] = newOccMap; // existing occupations array (with categories) becomes new 'clean' array.
		}

		 
		for ( var n in this._map ) {
			var valueArray = this._map[n];
			for ( var i in valueArray ) {
				if ( qs.length > 0 ) {
					qs += "&";
				}
				value = JsUtil.EncodeQueryValue( valueArray[i] );
				qs += n;
				qs += "=";
				qs += value;
			}
		}
		return qs;
	};


	$("#qdateposted").change( function() {
		var qdv = $(this).val();
		$("#sort_flag").val((qdv === "") ? "rv.dt" : "dt");
	});
}
