﻿function initCore() {
    applesearch.init(); 
    externalLinks();  
    
    DD_roundies.addRule('.rounded', '5px', true);
	$("#nicemenu img.arrow").click(function(){ 
								
		$("span.head_menu").removeClass('active');
		
		submenu = $(this).parent().parent().find("div.sub_menu");
		
		if(submenu.css('display')=="block"){
			$(this).parent().removeClass("active"); 	
			submenu.hide(); 		
			$(this).attr('src','images/arrow_hover.png');									
		}else{
			$(this).parent().addClass("active"); 	
			submenu.fadeIn(); 		
			$(this).attr('src','images/arrow_select.png');	
		}
		
		$("div.sub_menu:visible").not(submenu).hide();
		$("#nicemenu img.arrow").not(this).attr('src','images/arrow.png');
						
	})
	.mouseover(function(){ $(this).attr('src','images/arrow_hover.png'); })
	.mouseout(function(){ 
		if($(this).parent().parent().find("div.sub_menu").css('display')!="block"){
			$(this).attr('src','images/arrow.png');
		}else{
			$(this).attr('src','images/arrow_select.png');
		}
	});

	$("#nicemenu span.head_menu").mouseover(function(){ $(this).addClass('over')})
								 .mouseout(function(){ $(this).removeClass('over') });
	
	$("#nicemenu div.sub_menu").mouseover(function(){ $(this).fadeIn(); })
							   .blur(function(){ 
							   		$(this).hide();
									$("span.head_menu").removeClass('active');
								});		
								
	$(document).click(function(event){ 		
			var target = $(event.target);
			if (target.parents("#nicemenu").length == 0) {				
				$("#nicemenu span.head_menu").removeClass('active');
				$("#nicemenu div.sub_menu").hide();
				$("#nicemenu img.arrow").attr('src','images/arrow.png');
			}
	});			   
							   
		bindCVUploadForm();	
		bindTellAFriendForm();	
        $(".searchResultItem").bind("mouseover", function(){
          lazyLoadVacancyOverview($(this));
        });
						   
}

function lazyLoadVacancyOverview(o)
{
    var id = $(o).attr("id").replace("PK_","");
    var res = Ajax.GetVacancyOverview(id);
    $(o).attr("title",res.value);
}

function joinMailingList()
{
    alert();
}

function validateSearch()
{
    if($("#keywords").val().length <=1)
    {
        alert("Search string must be 2 characters or more");
        return false;
    }
    return true;
}

function paging(o,page)
{
    $(".pagingPageLink").css("color","#800000");
    $(".searchResultPage").hide();
    $("#page_" + page).show();
    $(o).css("color","black");
}

function printpr()
{   
    window.print ();
}

function getProvinces(elem)
{
    var id = $(elem).val();
    if(id>0)
    {
        $("#Province_FK").empty();
        Ajax.GetDistinctProvinces(id,getProvincesCallback); 
    }
    else
    {
        $("#Province_FK").val("-1");
        $("#ProvinceSelector").hide();    
        $("#Region_FK").val("-1");
        $("#RegionSelector").hide();
    }     
}

function getProvincesCallback(res)
{
    if(res.error!=null)
    {
    
    }
    else
    {
        var o = res.value;
        $("#Province_FK").append("<option value=\"-1\">Any</option>");
        for(i=0;i<=o.length -1;i++)
        {
            var html = "<option value=\"" + o[i].Province_PK + "\">" + o[i].Province + "</option>";
            $("#Province_FK").append(html);
        }
        $("#ProvinceSelector").show();
    }    
}

function getRegions(elem)
{

    var id = $(elem).val()
    var countryID = $("#Country_FK").val();
    if(id>0)
    {
        $("#Region_FK").empty();
        Ajax.GetDistinctRegions(countryID,id,getRegionsCallback);
    }
    else
    {
        $("#Region_FK").val("-1");
        $("#RegionSelector").hide();
    }        
}

function getRegionsCallback(res)
{
     if(res.error!=null)
    {
    
    }
    else
    {
        var o = res.value;
        var html = "<option value=\"-1\">Any</option>";
        for(i=0;i<=o.length -1;i++)
        {
            html += "<option value=\"" + o[i].Region_PK + "\">" + o[i].Region + "</option>";
            
        }
        $("#Region_FK").append(html);
        $("#RegionSelector").show();
    }     
}

function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
} 

function hideTellAFriend()
{
    $("#friendEmail").val("");
    $("#friendMessage").val("");
    $("#tellAFriend").hide();
}

function hideSendCV()
{
    $("#fileToUpload").val("");
    $("#sendCVEmail").val("");
    $("#sendCVMessage").val("");
    $("#sendCV").hide();
    $("#cmdCancelSendCV").show();
    $("#sendCVThrobber").hide();
    $("#cmdSendCV").show();    
}

function hideTellAFriend()
{
    $("#friendEmail").val("");
    $("#myEmailAddress").val("");
    $("#friendMessage").val("");
    $("#sendToFriend").hide();
    $("#cmdCancelTellAFriend").show();
    $("#tellAFriendThrobber").hide();
    $("#cmdTellAFriend").show();    
}

function bindCVUploadForm()
{
    var options = { 
        //target:        '#output1',   // target element(s) to be updated with server response 
        beforeSubmit:  preSendCV,  // pre-submit callback 
        success:       postSendCV,  // post-submit callback 
        //url:       'cvUpload.aspx',         // override for form's 'action' attribute 
        //type:      'post'        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        clearForm: true,        // clear all form fields after successful submit 
        resetForm: true        // reset the form after successful submit 
    };
    $('#frmCVUpload').ajaxForm(options); 
}

function bindTellAFriendForm()
{
    var options = { 
        //target:        '#output1',   // target element(s) to be updated with server response 
        beforeSubmit:  preTellAFriend,  // pre-submit callback 
        success:       postTellAFriend,  // post-submit callback 
        //url:       'cvUpload.aspx',         // override for form's 'action' attribute 
        //type:      'post'        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        clearForm: true,        // clear all form fields after successful submit 
        resetForm: true        // reset the form after successful submit 
    };
    $('#frmSendToFriend').ajaxForm(options); 
}

function preSendCV(formData, jqForm, options) { 
    var fileName = $("#fileToUpload").val();
    var emailAddress = $("#sendCVEmail").val();
    var message = $("#sendCVMessage").val();
    if(fileName.length==0)
    {
        alert("Please select a file");
        $("#fileToUpload").focus();
        return false;
    }    
    if(emailAddress.length==0)
    {
        alert("Please provide an email address");
        $("#friendEmail").focus();
        return false;
    }
    if(message.length==0)
    {
        alert("Please provide a message");
        $("#friendMessage").focus();
        return false;
    }
    $("#cmdCancelSendCV").hide();
    $("#cmdSendCV").hide();
    $("#sendCVThrobber").show();
    return true; 
}

function postSendCV(responseText, statusText)  
{ 
    if(responseText!="success")
    {
        hideSendCV();
        var error = responseText.replace("error:","");
        alert(error);
    }
    else
    {
        hideSendCV();
        alert("Thank you for your CV. We will be in touch shortly.");
    }    
} 


function preTellAFriend(formData, jqForm, options) { 
    $("#cmdCancelTellAFriend").hide();
    $("#cmdTellAFriend").hide();
    $("#tellAFriendThrobber").show();    
    return true; 
}

function postTellAFriend(responseText, statusText)  
{ 
    if(responseText!="success")
    {
        hideTellAFriend();
        var error = responseText.replace("error:","");
        alert(error);
    }
    else
    {
        hideTellAFriend();
        alert("Your message has been sent.");
    }
}

function validateAdvancedSearch() {
    var keywords = $("#keywords").val();
    if (keywords.length <2) {
        alert("Please provide a keyword of at least 2 characters");
        $("#keywords").focus();
        return false;
    }
    
}
