
$(document).ready(function () {
	// Place holder text on text inputs and textarea inputs	
    handlePlaceHolderText();

	// Call the functions for each page
	switch(getUrlVarsFrom(window.location.href, true)['tabid']) {
		case '4':
			if ($('div#slideShow').length > 0)
			initSlideBrowser();
			break;
		case '44':
			if ($('div#slideShow').length > 0)
			initSlideBrowser();
			initArtistList();
			break;
		case '45':
			initArtistDescription();
			break;
		case '5':
			initDealerCatalogue();
			break;
		case '6':
			initObjectDetails();
			break;
		case '148':
			initSponsorshipsAndLoans();
			break;
		case '149':
			if (getUrlVarsFrom(window.location.href, true)['postid'] == '2641')
			initSponsorshipsAndLoans();
			break;
		
	}
	adjustMenuMargins();

	makeMenuFlash();

}) 


var t;

function timedCount()
{
	$("#MainMenu .menu_wrapper ul li a.highlighted").animate({opacity:0.1 }, 400 ).animate({opacity:1 }, 370, function (){
		
		t=setTimeout("timedCount()",1000);
		
	} );
	
}

function makeMenuFlash()
{

  timedCount();

}


//adjust menu

function adjustMenuMargins(){
	$('div.rollover-menu ul').each(function(index, domEle){
		distributeMarginsEvenly($("li:not(li li)", domEle), $(domEle));
	})
}


function initSponsorshipsAndLoans(){
	$('a.readMore').each(function(index,domEle){
	
			$(domEle).click(function(){
				
				$(domEle).next('div.articleContent').slideToggle();
				return false;
				
			})
		
	})
	
}

function getUrlVarsFrom(url, preventUnwantedVars) {
    var vars = [],
        hash;
	url = url.split('#')[0];
	
    var hashes = url.slice(url.indexOf('?') + 1).split('&');
    for (var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        if (preventUnwantedVars == 1) {
            if (hash[0] != 'lg' && hash[0] != 'objectid' && hash[0] != 'tabindex' && hash[0] != 'page' && hash[0] != 'keyword' && hash[0] != 'mediaid') {
                if (hash[0] == 'categoryid' && hash[1] == 0) {} else {
                    vars.push(hash[0]);
                    vars[hash[0]] = hash[1];
                }
            }
        } else {
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
    }
    return vars;
}



function handlePlaceHolderText() {
	if ($('input[type=text]').length >0) {
    $('input[type=text]').focus(function () {
        if ($(this).val() == $(this).attr('defaultValue')) {
            $(this).val('');

        }
    });

    $('input[type=text]').blur(function () {
        if ($(this).val() == '') {
            $(this).val($(this).attr('defaultValue'));

        }
    });
	
	
	}
	
}
/* Search Functions */

function submitQuickSearch() {
    var keyWords = document.getElementById('inpQuickSearch').value;
    document.location.href = document.location.href.split('?')[0] + '?tabid=5&keyword=' + keyWords;
}

function submitCategory() {
    var url = document.getElementById('selCategory').value;
    document.location.href = document.location.href.substr(0, document.location.href.indexOf('DesktopDefault.aspx')) + url;
}

function entsub(e) {
    var evt = window.event ? e.keyCode : e.which;
    var keyPressed = evt;

    if (keyPressed == 13) {
        submitQuickSearch();
        return false;
    } else {
        return true;
    }
}


// Distribute margins evenly

function distributeMarginsEvenly(el, parent) {
	totalWidth = 0;

	$(el).each(function (index, domEle) {

		totalWidth += $(domEle).width();

	})

	margins = ($(parent).width() - totalWidth) / ($(el).length - 1);

	$(el).css('margin-right', Math.floor(margins));
	$(el).last().css('margin-right', '0');
}

function initSlideBrowser() {
	
	var currentPage = 0,
	 pageLoadStatus = new Array(),
	 currentPosition = 0,
	 slideWidth = 860,
	 slides = $('.slide'),
	 numberOfSlides = slides.length,
	 loaded = 0,
	 totalPages = 10,
	 itemsPerPage = 30,
	 slideNum = 0;
	
	

	$.ajaxSetup ({
    // Disable caching of AJAX responses
    cache: false
	});
	
	//Add first slides
	addSlides(2);
	
	
	// Load first page
	loadImageList(currentPage);
	
	
	
	
	// Remove scrollbar in JS
	$('#slideContainer').css('overflow', 'hidden');
	
	
	// Set #slideInner width equal to total width of all slides
	$('#slideInner').css('width', slideWidth * numberOfSlides);
	// Insert left and right arrow controls in the DOM
	$('#slideShow').prepend('<span class="control" id="leftControl">Move left</span>').append('<span class="control" id="rightControl">Move right</span>');
	// Hide left arrow control on first load
	manageControls(currentPosition);
	
	// hide right control until first page is loaded
	$('#rightControl').hide();
	
	// Create event listeners for .controls clicks
	$('.control').bind('click', function () {
		// Determine new position
		currentPosition = ($(this).attr('id') == 'rightControl') ? currentPosition + 1 : currentPosition - 1;
	
		// Hide / show controls
		manageControls(currentPosition);
	
	
		// Check if new slide is needed, and add
		managePopulation(currentPosition);
	
		// Populate next slide with images
		populateSlides(currentPosition);
	
		// Move slideInner using margin-left
		$('#slideInner').stop().animate({
			'marginLeft': slideWidth * (-currentPosition)
		});
	});
	// manageControls: Hides and shows controls depending on currentPosition
	
	function manageControls(position) {
	
		// Hide left arrow if position is first slide
		if (position == 0) {
			$('#leftControl').hide()
		} else {
			$('#leftControl').show()
		}
		// Hide right arrow if position is last slide
	if (Math.floor((position+6) * 4) / itemsPerPage > totalPages) {
			//alert('currentPage' + currentPage + 'itemsPerPage' + itemsPerPage + 'totalPages' + totalPages + 'position' + position);
				$('#rightControl').hide()
			} 
			
			else {
				$('#rightControl').show()
			} 
	}
	
	function managePopulation(position) {
	
		// If position is last slide, create another one and populate the next one.
		if (position >= numberOfSlides - 1) {
			addSlides(1);
	
	
	
		}
	}
	
	function loadImageList(page) {
	
		var address = 'http://www.richard-green.com/DesktopDefault.aspx?tabid=5&page=' + currentPage;
	
		pageLoadStatus[currentPage] = 'loading';
	
	
	
		$("<div>").load(address + ' table.tableTemplate', function () {
	
			$(this).find('a.thumb').each(function (index, domEle) {
	
				$('#loaded-content').append('<div class="item' + (index + (currentPage * itemsPerPage)) + '"></div>');
	
				$('#loaded-content div:last').append('<div class="target">' + $(domEle).attr('href') + '</div>').append('<div class="source">' + $('img', domEle).attr('src').replace('border="0"', '') + '</div>');
	
			})
			
			
			if (currentPage == 0) {
			
				//get number of pages
				totalPages = $(this).find('a.PageLink:last').html();
				
				
				//get number of pages
				itemsPerPage = $(this).find('a.thumb').length;
				
				// enable navigation
				$('#rightControl').show()
			}
				
			populateSlides(currentPosition);
			pageLoadStatus[currentPage] = 'loaded';
			currentPage++;
			
			if (currentPage < totalPages) {
				setTimeout(
  					function() 
 					 {
 					   loadImageList(currentPage);
 					 }, 500);
			}
	
		});
	
	
	}
	
	function addSlides(number) {
		for (var i = 0; i < number; i++) {
			$('#slideInner').append('<div class="slide slide' + slideNum + '">' + '<div class="pic pic0 picLeft loading"></div>' + '<div class="pic pic1 loading"></div>' + '<div class="pic pic2 loading"></div>' + '<div class="pic pic3 picRight loading"></div>' + '</div>');
			slideNum ++;
		}
	
		slides = $('.slide');
		numberOfSlides = slides.length;
		// Set #slideInner width equal to total width of all slides
		$('#slideInner').css('width', slideWidth * numberOfSlides);
	
	}
	
	function populateSlides(position) {
		position++;
	
	
		for (var i = 0; i < 4; i++) {
			// Check if item exists in the loaded-data list
			if ($('div#loaded-content div.item' + (i + ((position - 1) * 4))).length > 0) {
				//alert('div.slide' + (i + ((position - 1) * 4)) + ' div:nth-child(' + (i + 1) + ')');
				// Check if image was loaded
				if ($('div.slide' + (position - 1) + ' div.pic' + i).hasClass('loading')) {
					//alert(position)
					// Add an image with the source present in the loaded-data list, and update the class to 'loaded' on load
					var source = $('div#loaded-content div.item' + (i  + ((position - 1) * 4)) ).children('div.source').html().replace(/cell=.*?&/, 'cell=175,175&').replace(/class=".*?"/, '');
					var target = $('div#loaded-content div.item' + (i  + ((position - 1) * 4)) ).children('div.target').html();
					
					$('div.slide' + (position - 1)  + ' div.pic' + i).html(' <a href="' + target + '"><img alt="" src="' + source + '" /></a> ').children('img').load(function () {
						$(this).parent().removeClass('loading').addClass('loaded')
					});
					
				}
			} else {
				if (pageLoadStatus[currentPage] === undefined) {
					//if next search page is not loaded
	
				}
			}
		}
	
	}

}


//Load first image of artist hovered on the artist list


function initArtistList() {
	
	$('img.firstImage').each(function (index, domEle) {
		 
		 $(domEle).attr('src',$(domEle).attr('src').replace(/cel=.*?&/ , 'cell=240,600&').replace(/qlt=.*?&/ , 'qlt=70&'));
		 
	})
	
    $('a.artistName').each(function (index, domEle) {
		
		//Get artist Category, to show the right text on the object description
		$(domEle).attr('href', $(domEle).attr('href') + '&artistcategoryid=' + getUrlVarsFrom(document.location.href, true)['artistcategoryid']);
		
        $(domEle).hover(function () {
            
			if ($(document).scrollTop() > 589) {
				$('div.sampleImage').css('top', $(document).scrollTop() - 550 );
			} else {
				$('div.sampleImage').css('top', '0px' );
					
			}
			$('.sampleImage').html( $(domEle).next().clone() );
			$('div.sampleImage img.firstImage').fadeIn('fast');


        }, function () {
           
			$('div.sampleImage img').fadeOut('fast',function(){
				
				$(this).remove();
			});
		


        })
		
		
    })

}


function initArtistDescription(){
	
	function setupGridView() {
		
		var rowMaxHeight = 0;
		
		for(var i = 0; i < $('div.superCadre').length; i++) {
			
			var target= $($('div.superCadre')[i]);
			
			if (target.data('h') != undefined) { target.height(target.data('h')) } else {
			
			if (target.children('div.descriptionImage').height() > rowMaxHeight) { rowMaxHeight = target.children('div.descriptionImage').height() }
			
			if ((i + 1) % 4 === 0) {
				
				for (var ii = 0; ii <= 3; ii++) {
					$($('div.superCadre')[i - ii]).height(244 + rowMaxHeight);
					$($('div.superCadre')[i - ii]).data('h', 244 + rowMaxHeight);
					
				} 
				rowMaxHeight = 0;
				
			
			}
			
			}
		}
		
		if ($('div.superCadre').length % 4 != 0) {
			
			for (var ii = 0; ii <= $('div.superCadre').length % 4; ii++) {
				target = $($('div.superCadre')[$('div.superCadre').length - ii]);
				if (target.data('h') != undefined) { target.height(target.data('h')) } else {
				target.height(244 + rowMaxHeight);
				target.data('h', 244 + rowMaxHeight);
			}
			}
		}
		
	}
	
	setupGridView();
	$('div.biography').hide();
	$('a.biographyButton').click(function(){
		
		$('div.biography').slideToggle();
		return false;
	});
}


function initDealerCatalogue() {
	
	function setupGridView() {
		
		$('div.superCadre').each(function(index, domEle){
		
			$('a.thumb img', domEle).attr('src', $('a.thumb img', domEle).attr('src').replace(/cell=.*?&/, 'cell=200,200&'));
			
			
		});
		
		var rowMaxHeight = 0;
		
		for(var i = 0; i < $('div.superCadre').length; i++) {
			
			var target= $($('div.superCadre')[i]);
			
			if (target.data('h') != undefined) { target.height(target.data('h')) } else {
			
			if (target.children('div.descriptionImage').height() > rowMaxHeight) { rowMaxHeight = target.children('div.descriptionImage').height() }
			
			if ((i + 1) % 4 === 0) {
				
				for (var ii = 0; ii <= 3; ii++) {
					$($('div.superCadre')[i - ii]).height(224 + rowMaxHeight);
					$($('div.superCadre')[i - ii]).data('h', 224 + rowMaxHeight);
					
				} 
				rowMaxHeight = 0;
				
			
			}
			
			}
		}
		
		if ($('div.superCadre').length % 4 != 0) {
			
			for (var ii = 0; ii <= $('div.superCadre').length % 4; ii++) {
				target = $($('div.superCadre')[$('div.superCadre').length - ii]);
				if (target.data('h') != undefined) { target.height(target.data('h')) } else {
				target.height(224 + rowMaxHeight);
				target.data('h', 224 + rowMaxHeight);
			}
			}
		}
		
	}
	
	function setupListView() {
		
		$('div.superCadre').each(function(index, domEle){
		
			$('a.thumb img', domEle).attr('src', $('a.thumb img', domEle).attr('src').replace(/cell=.*?&/, 'cell=205,505&'));
			$(domEle).css('height', '');
		})
		
	}
	
	$('.objectListTable').hide();
	
	
	
	$('.superCadre').each(function(index, domEle){
		
		$(domEle).appendTo('.cadreGlobal');
	
	})
	
	// Set initial image sizes
	
	setupGridView();
	
	
	$('.contentPane').css('padding','25px')
	
	$('#gridView').click(function(){
		
		$('.cadreGlobal').fadeOut(300,function(){
		$('.cadreGlobal').addClass('gridView');	
		$('.cadreGlobal').removeClass('listView');
		
		setupGridView();
		$('.cadreGlobal').fadeIn();
		});
		return false;
	});
	
	$('#listView').click(function(){
		$('.cadreGlobal').fadeOut(300,function(){
		$('.cadreGlobal').addClass('listView');	
		$('.cadreGlobal').removeClass('gridView');	
		
		setupListView();
		
		$('.cadreGlobal').fadeIn();
		});
		return false;
	});

}

function initObjectDetails() {

	$('div.rightCol div.head').click(function(){

		$('div.rightCol div.body').slideToggle();
	
	})
	
	$('#contactForm').attr('src','http://www.richard-green.com/DesktopDefault.aspx?tabid=9&tabindex=8&objectid=' + getUrlVarsFrom(window.location.href)['objectid']);
}

