﻿//<![CDATA[
$(document).ready(function(){
	
	//Handler for the 'add to basket' link			   
	$('a.basketLink').click(basketLink);
	
	$('a.applyURLLink').click(externalLinkHandler);
	
	$('#jobBasketArea').loadBasket();
	
	initBasketLinks();
});	
	
//Function to add/edit jobs to the basket
jQuery.fn.editBasket = function(url, containerID){
	//call the basket script to add/edit jobs
	$.ajax({
		type: "GET",
		url: url,
		cache: false,
		error: function() {$('#' + containerID).text('Error loading Job Basket...')},
		success: function(r) { 
			$('#' + containerID).loadBasket();
		}
	});
};

jQuery.fn.loadBasket = function() {

    var loadingMsg = '<div id="loadingMsg"><img src="images/loading_sm.gif" alt="loading..."  /></div>'
    //Show loading image
    $(this).html(loadingMsg);
    //call the basket script to add/edit jobs
    $.ajax({
        type: "GET",
        url: 'includes/doJobBasket.asp',
        cache: false,
        error: function() { $('#jobBasketArea').text('Error loading Job Basket...') },
        success: function(r) {
            aryData = r.split('|||')
            if (aryData.length >= 0) {
                $('#jobBasketArea').html(aryData[0]);
                basketTotal(aryData[1]);
            }
            $("a.applyURLLink").unbind('click', externalLinkHandler)
            $('a.applyURLLink').click(externalLinkHandler);
            $("a.basketLink").unbind('click', basketLink)
            $('a.basketLink').click(basketLink);
            $("a.deleteLink").unbind('click', deleteLink)
            $('a.deleteLink').click(deleteLink);
        }
    });
};

function externalLinkHandler(){
	return true;
	$('#jobBasketArea').loadBasket();
};
function deleteLink(){
	if(this.href!=null){
		var strFullURL = this.href;
		var url = strFullURL.substring(strFullURL.lastIndexOf("/")+1,strFullURL.length);
		
		$(this).editBasket(url, "jobBasketArea")
	}
	return false;
};

function basketLink(){
	if(this.href!=null){
		var strFullURL = this.href;
		var url = strFullURL.substring(strFullURL.lastIndexOf("/")+1,strFullURL.length);

		//Change the html within the li so that it toggles the add/remove links
		if($(this).text() == 'Add to Job Basket'){
			$(this).parent('li').addClass('none');
			$(this).parent('li').siblings('li.remove').removeClass('none');
		} else {
			$(this).parent('li').addClass('none');
			$(this).parent('li').siblings('li.add').removeClass('none');
		}
		
		$(this).editBasket(url, "jobBasketArea")
	}
	return false;
}

function basketTotal(num) {
	$('.JobBasketTotal').text((num>=0) ? num : 0);
}


/*
Function to set add/remove links if they're in the basket. Called onload.
*/
function initBasketLinks(){
    //var params = parseCookie('Cactusoft+Parodia');
    var params = parseCookie('CactusoftEngineeringJobs');
    
	var numJobIDs = trim(params['JobString']).split(' ')
	
	for(i=0; i < numJobIDs.length; i++){
		//alert(numJobIDs[i])
		$('#links_' + numJobIDs[i] + ' li.remove').removeClass('none');
		$('#links_' + numJobIDs[i] + ' li.add').addClass('none');
	}
	
}

//Trim spaces from beginning and end of a string. Same as trim() in vbscript.
function trim(str){
	if (!str) {return '';}
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

/*
Parses a Cookie and breaks values into key/pairs
*/
function parseCookie(cookieName) {
   var Params = {};
   if ( ! $.cookie(cookieName) ) {return Params;}// return empty object
   var Pairs = $.cookie(cookieName).split(/[;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}

//alert($.cookie('Cactusoft+Parodia'));
//]]>