(function (j){
	function site_scroll(){
		var link_master = j('#sitenavigation').find('a.onepage_link');
		var bodyWid = Math.ceil( j('.content_box').outerWidth() * j('.content_box').length );
		j('body').css('width', bodyWid + 'px');
		
		link_master.each(function(){
			var siteUrl = j("meta[name=url]").attr('content');
			var duration_time = j("meta[name=duration]").attr('content') * 1;
			var easing_effect = j("meta[name=easing]").attr('content');
			var theDiv = j(this).attr('href').replace( siteUrl, '');
			var leftOff = j(theDiv).offset();
			
			if( j(theDiv).parent() ){	
				var dParent = j(theDiv).parent();
				var parLeft = dParent.offset();
			}
			
			j(this).bind('click', function(e){
				e.preventDefault();

				j('.shown').removeClass('shown');
				j(this).addClass('shown');
				
				j.browser.opera  = /opera/.test(navigator.userAgent.toLowerCase());  
				if (j.browser.opera){
					if(leftOff.top != 0){
						if( j('html').scrollLeft() != parLeft.left ){
							j('html').stop().animate({scrollLeft: parLeft.left + 'px'}, 
								{
									queue:false, 
									duration: duration_time, 
									easing: easing_effect, 
									complete: function(){
										j(this).animate({scrollTop: leftOff.top + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
									}
								}
							);
						} else {
							j('html').animate({scrollTop: leftOff.top + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
						}
					} else {
						if( j('html').scrollTop() != 0 ){
							j('html').stop().animate({scrollTop: '0px'}, 
								{
									queue:false, 
									duration: duration_time, 
									easing: easing_effect,
									complete: function(){
										j(this).animate({scrollLeft: leftOff.left + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
									}
								}
							);
						} else {
							j('html').animate({scrollLeft: leftOff.left + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
						}
					}
				} else {
					if(leftOff.top > 0){
						
						if( j('html,body').scrollLeft() == parLeft.left ){
							j('html,body').animate({scrollTop: leftOff.top + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
						} else if ( j('body').scrollLeft() == parLeft.left ) {
							j('html,body').animate({scrollTop: leftOff.top + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
						} else {
							j('html,body').stop().animate({scrollLeft: parLeft.left + 'px'}, 
								{
									queue:false, 
									duration: duration_time, 
									easing: easing_effect,
									complete: function(){
										j(this).animate({scrollTop: leftOff.top + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
									}
								}
							);
						}
					} else {
						if( j('html').scrollTop() != 0 || j('body').scrollTop() != 0 ){
							j('html,body').stop().animate({scrollTop: '0px'}, 
								{
									queue:false, 
									duration: duration_time, 
									easing: easing_effect,
									complete: function(){
										j(this).animate({scrollLeft: leftOff.left + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
									}
								}
							);
						} else {
							j('html,body').animate({scrollLeft: leftOff.left + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
						}
					}
				}

			});
		});
	};
	
	function detectSpecialURL(){
		var duration_time = j("meta[name=duration]").attr('content') * 1;
		var easing_effect = j("meta[name=easing]").attr('content');
		var ur = location.href.replace( '#', '?v=');
		var par = geronimo_grab_param('v', ur);
		
		if(par != ""){
			var leftOff = j('#'+par).offset();
			
			if( j('#'+par).parent() ){	
				var dParent = j('#'+par).parent();
				var parLeft = dParent.offset();
			}
			
				j.browser.opera  = /opera/.test(navigator.userAgent.toLowerCase());  
				if (j.browser.opera){
					if(leftOff.top != 0){
						if( j('html').scrollLeft() != parLeft.left ){
							j('html').stop().animate({scrollLeft: parLeft.left + 'px'}, 
								{
									queue:false, 
									duration: duration_time, 
									easing: easing_effect, 
									complete: function(){
										j(this).animate({scrollTop: leftOff.top + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
									}
								}
							);
						} else {
							j('html').animate({scrollTop: leftOff.top + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
						}
					} else {
						if( j('html').scrollTop() != 0 ){
							j('html').stop().animate({scrollTop: '0px'}, 
								{
									queue:false, 
									duration: duration_time, 
									easing: easing_effect,
									complete: function(){
										j(this).animate({scrollLeft: leftOff.left + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
									}
								}
							);
						} else {
							j('html').animate({scrollLeft: leftOff.left + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
						}
					}
				} else {
					if(leftOff.top > 0){
						
						if( j('html,body').scrollLeft() == parLeft.left ){
							j('html,body').animate({scrollTop: leftOff.top + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
						} else if ( j('body').scrollLeft() == parLeft.left ) {
							j('html,body').animate({scrollTop: leftOff.top + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
						} else {
							j('html,body').stop().animate({scrollLeft: parLeft.left + 'px'}, 
								{
									queue:false, 
									duration: duration_time, 
									easing: easing_effect,
									complete: function(){
										j(this).animate({scrollTop: leftOff.top + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
									}
								}
							);
						}
					} else {
						if( j('html').scrollTop() != 0 || j('body').scrollTop() != 0 ){
							j('html,body').stop().animate({scrollTop: '0px'}, 
								{
									queue:false, 
									duration: duration_time, 
									easing: easing_effect,
									complete: function(){
										j(this).animate({scrollLeft: leftOff.left + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
									}
								}
							);
						} else {
							j('html,body').animate({scrollLeft: leftOff.left + 'px'}, {queue:false, duration: duration_time, easing: easing_effect});
						}
					}
				}
		}
	};
	
	function geronimo_grab_param(name,url){
		name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
		var regexS = "[\\?&]"+name+"=([^&#]*)";
		var regex = new RegExp( regexS );
		var results = regex.exec( url );
		if( results == null )
			return "";
			else
		return results[1];
	};
	
j(document).ready(function(){
	site_scroll();
	detectSpecialURL();
})})(jQuery);
