var RECRUIT = function(){
	var _P = {
		init : function( params ) {
			_P.params = params;
			_P.loadXml();
		},
		params : null,
		data : null,
		loadXml : function() {
			$.ajax({
				type : "GET",
                url: _P.params.url,
				url : _P.params.xmlPath,
				dataType : "xml",
				success : function( data ) {
					_P.data = data;
					_P.max = _P.params.perView;
					_P.count = $( "SpotEntry", data ).length;
					_P.preloadBooks();
					_P.browseBooks();
				}
			});
		},
		first : 0,
		max : 0,
		count : 0,
		preloadBooks : function() {
			$( "ul", "#rekommenderade" ).empty();
			jobs1=$(_P.data).find("SpotEntry")
			href1=new Array
			desc1=new Array
			random1=new Array
			link1=new Array
			$(jobs1).each(function(){
				link1.push($("Field5", this).text())
				href1.push($("Field7", this).text())
				ratt1=jobs1.length
				desc1.push($.trim( $( "Text1", this ).text() ));
				
			})

				f=""
				uniqueNumber=""
					if(!f){
						f = arguments.callee;
						f.usedNumbers1 = [];
					}
					while(!uniqueNumber){
					for(i=0;i<href1.length;i++){
						var candidate = Math.floor((Math.random() * ratt1))
							if(f.usedNumbers1.indexOf(candidate) == -1){
								 uniqueNumber = candidate;
								 f.usedNumbers1.push(uniqueNumber);
							}     
						}
					}
					
				
			
			for(i=0;i<f.usedNumbers1.length;i++){
				var title1 = $.trim( $( "Field1", this ).text() );
				var image1 = $.trim( $( "image", this ).text() );
				var link1 = $.trim( $( "Field5", this ).text() );
				$( "ul", "#rekommenderade" ).append([
					"<li><img src='http://img.icbdr.com/images/"+domain+"/Spot/"+domain+"FeatRecruit/",
					href1[f.usedNumbers1[i]],
					"' /><a href='",
					image1[f.usedNumbers1[i]],
					"' class='info'><img src='",
					"ads/images/books_info.gif' width='15' height='16' alt='More Info' /></a></li>" ].join( "" ));
				$( "body" ).append([
					"<div class='books_tool_tip' id='books_tool_tip_",
					i,
					"'><div class='books_pointer_left'><!-- books pointer --></div><div class='inner'><p>",
					"<p><strong>"+desc1[f.usedNumbers1[i]]+
					"</strong></p><p>","</li></p></div></div>" ].join( "" ));
			};
			$( ".info", "#rekommenderade" ).hover(function( e ) {
				_P.tooltip.show( e, $( "#books_tool_tip_" + $( "a.info", "#rekommenderade" ).index( this ) ) );
			return false;
			}, function( e ) {
				_P.tooltip.hide( e, $( "#books_tool_tip_" + $( "a.info", "#rekommenderade" ).index( this ) ) );
			});
		},
		browseBooks : function( browse ) {
			if ( browse == "prev" ) {
				if ( _P.first == _P.count && ( _P.count % _P.max > 0 ) ) {
					_P.first = _P.first - ( ( _P.count % _P.max ) + _P.max );
				} else {
					_P.first = _P.first - ( _P.max * 2 );
				}
			}
			var range = 4;
			var start = 1;
			if ( range > _P.max ) {
				start = ( ( range - _P.max ) + 1 );
			}
			if ( _P.first == 0 ) {
				$( "#rekommenderade .prev" ).css( "visibility", "hidden" );
			} else {
				$( "#rekommenderade .prev" ).css( "visibility", "visible" );
			}
			if ( range < _P.count ) {
				$( "#rekommenderade .next" ).css( "visibility", "visible" );
			} else if ( range >= _P.count ) {
				range = _P.count;
				$( "#rekommenderade .next" ).css( "visibility", "hidden" );
			}
			$( "SpotEntry", _P.data ).each(function( i ) {
				if ( i >= _P.first && i < range ) {
					$( "#rekommenderade li:eq(" + i + ")" ).fadeIn( "slow" );
				} else {
					$( "#rekommenderade .inner .overclear li:eq(" + i + ")" ).css( "display", "none" );
				}
			});
		},
		tooltip : {
			show : function( e, $o ) {
				var v = _P.tooltip.getViewport();
				var pageX = _P.tooltip.getMouseCoord( v, e )[0] + 15;
				var pageY = _P.tooltip.getMouseCoord( v, e )[1];
				$o.find( ".books_pointer_right" ).addClass( "books_pointer_left" ).removeClass( "books_pointer_right" );
				if ( pageX + $o.width() > v.innerWidth + v.pageXOffset ) {
					pageX = pageX - $o.width() - 30;
					$o.find( ".inner" ).addClass( "inner_right" );
					$o.find( ".books_pointer_left" ).addClass( "books_pointer_right" ).removeClass( "books_pointer_left" );
				}
				$o.css( "left", pageX ).css( "top", pageY ).css( "display", "block" );
			},
			hide : function( e, $o ) {
				$o.css( "display", "none" );
			},
			getMouseCoord : function( v, e ) {
				( !e ) ? e = window.event : e = e;
				( e.pageX ) ? v.pageX = e.pageX : v.pageX = e.clientX + v.scrollLeft;
				( e.pageY ) ? v.pageY = e.pageY : v.pageY = e.clientY + v.scrollTop;
				return [ e.pageX, e.pageY ];
			},
			getViewport : function() {
				var viewport = {}
				if ( self.innerHeight ) {
					viewport.pageYOffset = self.pageYOffset;
					viewport.pageXOffset = self.pageXOffset;
					viewport.innerHeight = self.innerHeight;
					viewport.innerWidth = self.innerWidth;
				} else if ( document.documentElement && document.documentElement.clientHeight ) {
					viewport.pageYOffset = document.documentElement.scrollTop;
					viewport.pageXOffset = document.documentElement.scrollLeft;
					viewport.innerHeight = document.documentElement.clientHeight;
					viewport.innerWidth = document.documentElement.clientWidth;
				}
				return viewport;
			}
		}
	};
	return {
		init : function( params ) {
			_P.init( params );
		}
	};
}();