
var SAPCareer = window.SAPCareer || {};

(function($){



//TrackIt Initialization
SAPCareer.Tracking = (function() {
    return {
        init: function() {
           window.tracker = new $.TrackIt('omniture', {
                XmlUrl: '/Assets/global/xml/trackdata.xml',
                Holders: {
                    'media name': function() { return $("#mediaName").val(); },
                    'getPageName': function() { 
	                    var sapUrl = document.location.href;
	                    sapUrl = sapUrl.replace(/http:\/\/.+\.com(.+)/, "$1").replace(/\.aspx/, "").replace(/#.+/, "").replace(/\//g, " > ");
	                    if (sapUrl == " > ") {
		                    sapUrl = "Homepage";
	                    }
	                    return sapUrl;
                    },
                    'getHeaderName': function() { return $("#headerName").val(); },
                    'sectionName': function() {
                        if($(".mainNavSubCategory a.active").length > 0){
                            return $(".mainNavSubCategory a.active").text();                    
                        }
                        else{ return "Homepage";}
                    }
                },
                Settings: {
                    TestMode: false,
                    //ShowMissingHolderWarnings: true,
                    //ShowDebugInfo: true,
                    SanityCheckEnabled: false,
                    SanityCheckMissingOnly: false
                }
            });
        }
    }
})();


/* Navigation dropdowns */
SAPCareer.Navigation = (function() {
	var navigation = {
		init:function(){
			var $mainNavLinks = $('ul.mainNavCategory > li').not('.active');

			$mainNavLinks.mouseover(function(){
				$(this).find('.dropdown').show();
			});

			$mainNavLinks.mouseout(function(){
				$(this).find('.dropdown').hide();
			});
		}
	};
	
	return {
		init: function() {
			navigation.init();
		},
		findyourjobClicked:function(){
        //$('body').append("<script type='text/javascript'>" + "alert('hey');" + "</" + "script>");
        $('body').append('<script type="text/javascript"> _qoptions={qacct:"p-1d_v7hiINRVew",labels:"_fp.event.Find a Job"}; qacct="p-1d_v7hiINRVew";</script> <script type="text/javascript" src="http://edge.quantserve.com/quant.js"></script>');
        $('body').append('<noscript><img src="http://pixel.quantserve.com/pixel/p-1d_v7hiINRVew.gif?labels=_fp.event.Find+a+Job" style="display: none;" border="0" height="1" width="1" alt="Quantcast"/></noscript>');
        window.tracker.track("Find Your Job", {});
        }       
    }
})();

/* Twitter Scroll */
SAPCareer.Twitter = (function() {
	var _this=this;
	var _twitterScroll_itemList = [];
	var twitter = {
		itemLoadCallbackFunction:function(carousel, state)
		{
			for (var i = carousel.first; i <= carousel.last; i++) {
				// Check if the item already exists
				if (carousel.has(i)) {
					continue;
				}

				if (i > _twitterScroll_itemList.length) {
					break;
				}

				carousel.add(i, _this.twitterScroll_getItemHTML(_twitterScroll_itemList[i - 1]));
			}
		},
		twitterScroll_getItemHTML:function(item)
		{
			//alert(item.title.length);
			/*
			if(item.title.length > 82){
			    item.title = item.title.substring(0, 82) + '...';
			}*/
			return '<a href="'+ item.url +'" target="_blank" onClick="javascript:trackingTwitter(\''+ item.user +'\')">' + '<img src="'+ item.image + '" width="48" height="48"></a><p>' +  '<b><a class="user" href="'+ item.url +'" target="_blank" onClick="javascript:trackingTwitter(\''+ item.user +'\')">' + item.user + '</a>' + '</b> ' + item.title +'</p>';
		},		
		init:function(){
		 	_this = this;
			jQuery('#carouseltwitter').jcarousel({
				vertical: true,
				visible:5,
				scroll:4,
				size:_twitterScroll_itemList.length,
				buttonNextHTML:'<a></a>',
				buttonPrevHTML:'<a></a>',
				itemLoadCallback: {onBeforeAnimation: _this.itemLoadCallbackFunction}
			});
		}
	};	
	return {
		init: function() {
			if($('#carouseltwitter').length > 0)twitter.init();
		},
		AssignVar:function(scroll_list){
		    _twitterScroll_itemList=scroll_list;
		}
	}
})();


/* SAP News Scroll */
SAPCareer.News = (function() {
	var _this=this;
	var _sapnewsScroll_itemList = [];
	
	var news = {
		sapnewsitemLoadCallbackFunction:function(carousel, state)
		{

			for (var i = carousel.first; i <= carousel.last; i++) {
				// Check if the item already exists
				if (carousel.has(i)) {
					continue;
				}

				if (i > _sapnewsScroll_itemList.length) {
					break;
				}

				carousel.add(i, _this.sapnewsScroll_getItemHTML(_sapnewsScroll_itemList[i - 1]));

			}
			//carousel.setup();
		},
		sapnewsScroll_getItemHTML:function(item)
		{
			if(item.title.length > 110){
			    item.title = item.title.substring(0, 110) + '...';
			}
			
			var trackingTitle = escape(item.title);
			return '<a href="'+ item.url +'" onClick="javascript:trackingSAP(\''+ trackingTitle +'\')" target="_blank" style="background-image: url(' + item.icon + ');">' + item.title + '<br/>(' + item.date + ')</a>';
			//return '<p><a href="'+ item.url +'" onClick="javascript:trackingSAP($(this).text())" target="_blank">' + item.title + '<br/>(' + item.date + ')</a></p>';
		},		
		init:function(){
		 	_this = this;
			jQuery('#carouselsapnews').jcarousel({
				vertical: true,
				//visible:3,
				scroll:3,
				size:_sapnewsScroll_itemList.length,
				buttonNextHTML:'<a></a>',
				buttonPrevHTML:'<a></a>',
				itemLoadCallback: {onBeforeAnimation: _this.sapnewsitemLoadCallbackFunction}
			});
		}
	};	
	return {
		init: function() {
			if($('#carouselsapnews').length > 0)news.init();
		},
		AssignVar:function(scroll_list){
		    _sapnewsScroll_itemList=scroll_list;
		}
	}
})();

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
}

SAPCareer.Cookie = (function() {
	var _cookies = {};

	function parseCookies()
	{
		if( document.cookie ) {
			var splitPair = document.cookie.toString().split(";"),
				i = splitPair.length;

            while(i--)
            {
                var splitPiece = splitPair[i].split("="),
                value = null,
                name = null;

                if( splitPiece.length > 1 ) {
                    value = splitPiece[1].trim();
                } 

                if( splitPiece.length > 0 ) {
                    name = splitPiece[0].trim();
                    _cookies[ name ] = value;
                }
            }
		}
	}

	function setCookie( name, value, expires, path, domain, secure )
	{
		var newCookie = name + "=" + escape(value) +
			((expires) ? "; expires=" + expires.toGMTString() : "") +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			((secure) ? "; secure" : "");

		document.cookie = newCookie;

		_cookies[ name ] = value;
	}

	function init()
	{
		parseCookies();
	}

	return {
        init: init,
		setCookie: setCookie,

		getCookie: function( name )
		{
			return  decodeURI( _cookies[ name ] );
		},

		hasCookie: function( name ) {
			return name in _cookies;
		}
	}
})();

function mainNavTracking(){
    $('.mainNavLink').click(function(){
        window.tracker.track("Main Nav Click", {'mainNavPage': $(this).text()});
    });
    
    $('.searchbox a').click(function(){
        window.tracker.track("Find Your Job", {});
    });
    
    $('.footerRightBlock a').click(function(){
        window.tracker.track("FooterRightLinks", {'linkText':$(this).text()});
    });
}

function jobLanguageTracking(){
	$('p.jobSearchLang a, p.jobLoginLang a, p.jobRegisterLang a').click( function(){
		window.tracker.track("Job Search Language", {
			'language': $(this).text(),
			'JobSearchAction': $(this).parent('p').attr('class').replace(/job(.+)Lang/i, "$1").toLowerCase()
		});
	});
}

function carouselTracking(){
	$('a.mycarousel-prev, a.mycarousel-next').click( function(){
		var pageLocation,
			locationId = $(this).attr('id');
		
		locationId = locationId.substring(locationId.length - 1, locationId.length);
		
		switch(locationId) {
			case "1" : pageLocation = "top right"; break;
			case "2" : pageLocation = "bottom left"; break;
			case "3" : pageLocation = "bottom right"; break;
			default : pageLocation = ""; break;		
		}
		
		

		window.tracker.track("Carousel Navigation", {
			'getLocation' : pageLocation
		});

	});
}

function promoBoxTracking(){
	$('.searchbox').click( function(){
		var getLinkName = $(this).find('h2, h3');
		
		getLinkName = $(getLinkName).html();
		getLinkName = $.trim(getLinkName);

		window.tracker.track("Promo Button", {
			'getLinkName' : getLinkName
		});
		
	});
}

$(document).ready(function() {
    SAPCareer.Navigation.init();
    SAPCareer.Twitter.init();
    SAPCareer.News.init();
    SAPCareer.Tracking.init();
    mainNavTracking();
    jobLanguageTracking();
    carouselTracking();
    promoBoxTracking();
});

}(jQuery));

// this needs to run as soon as possible
SAPCareer.Cookie.init();


function trackingTwitter(value){
    window.tracker.track("twitterfeed", {'linkText':value});
}

function trackingSAP(value){
    window.tracker.track("sapnewsfeed", {'linkText':value});
}
