$(document).ready(function(){
//$('#linkFavIcon').attr('href','Media/TrinityHouseTriphoto/favicon.ico');
// Call functions specific to each page
	
    switch (getUrlVarsFrom(document.location.href, true)['tabid']) {
	case undefined:
		initSlideshow();
		break;
    case '1':
		initSlideshow();
		break;
	case '5':
		initDealerCatalogue();
		break;
	case '6':
       initObjectDetails();
       break;
	case '44':
       initArtistList();
       break;
	case '45':
       fixArtistName();
       break;
	case '46':
       fixLaunchDateOnList();
       break;
	case '47':
       fixLaunchDateOnDetails();
       break;
	case '148':
		trimPosts();
        adjustPostImage();
        break;
    case '149':
        adjustPostImage();
        break;
    }
	
	//Load artist list on footer
	loadArtistList();
	selectLanguage();
	// General features
	
	// Toggle show/hide wishlist login on main-menu
	//showLogInForm();
	
	fixLabels();
	// Change style of the text-input-field on focus
    handleInputs();
	
	// Treat default input as placeholder
	handlePlaceHolderText();
	
	
	// Fix ie7 z-index bug
	if (navigator.appVersion.indexOf("MSIE 7.")>-1) {
	
		$('div.top').css('z-index', 1000);
		$('ul.main-menu').css('z-index', 1000);
		$('ul.main-menu ul').css('z-index', 1000);
		
		
	}
	
	// main menu hack for ipad
	$('ul.main-menu > li').hover(
	function(){
		
		$(this).children('ul').css('display', 'block');
		
	},
	function(){
		
		$(this).children('ul').css('display', 'none');
		
	})
	
	$('ul.main-menu > li > ul').css('display', 'none');
	
	
	
		
	headerWishListButton();

	
	
})


// Fix the date of one specific event (New York launch)

function fixLaunchDateOnList() {
	
	$('div.text-area span.dates').each(
		function(index, domEle){
			
			if ($(domEle).text().indexOf('- Friday, 16 September 2011') > -1) {
				
				$(domEle).html($(domEle).html().replace('- Friday, 16 September 2011', ''))
				.show();
			} else {
				
				$(domEle).show();
				
			}
			
		}
	);
	
}
function selectLanguage() {
		$('.language-trigger').click(function() {
		
		
			$('.container-languages').slideToggle();

		
		});
		$('.hide-menu').click(function() {
			
			$('.container-languages').slideUp(1000)
			
		});
	
	}
function fixLaunchDateOnDetails() {
	
	if ($('span.end-date').text().indexOf('Friday, 16 September 2011') > -1) {
		
		$('span.end-date').html('');
		
		$('span.preview-date-label').html('');
		$('span.preview-date').html('');
		
		$('span.page-dates').html('Exhibition date:');
		
	} else {
		
		$('span.end-date').show();
		$('span.separator').show();
	}
		
}


// Trim the posts
function trimPosts() {
	
	$('div.postContent').each(function(index, domEle){
	
		trim(domEle, 1000);
		
	})
	
}

// Trim the posts
function trim(domEl, trimmedLength) {
	if (trimmedLength < $(domEl).text().length) {
		var 
			el = $(domEl),
			str = el.html(),
			strLength = str.length,
			clearStr = '',
			tag = '',
			index,
			tags = [],
			trimmedString = '',
			trimmedRealLength,
			closingTags = [],
			openTags = [];
		
		
		
		for (var i = 0; clearStr.length <= trimmedLength; i ++) {
		
			// When new tag starts, put it into the tag array
			if (str.substr(i,1) == '<') {
				
				index = i;
				tag = '';
				
				while (str.substr(i,1) != '>') {
				
					tag += str.substr(i,1);
					
					i ++;
				}
				
				tag += str.substr(i,1); // add closing tag
				
				i ++;
				
				
				tags[index] = tag;
				
			}
			
			// Do not count spaces
			if ((str.substr(i,1) == ' ') || (str.substr(i,1) == /\t/) || (str.substr(i,1) == /\n/)) trimmedLength ++;
			
			// Add regular text to the string 
			clearStr += str.substr(i,1);
			
			if (clearStr.length == trimmedLength) trimmedRealLength = i;
			
		}
		
		// Trim regular text
		trimmedString = clearStr.substr(0,trimmedLength);
		
		// Create and add closing tags
		
		// Find Missing closure tags
		for (i in tags) { 
		
			if (i < trimmedRealLength) {
				
				//if (i == 112) alert(tags[i].slice(1,2));
				
				// if it is an opening tag, add it to the array
				if ((tags[i].slice(1,2) != '/') && (tags[i].slice(-1,1) != '/')) {
					
					if (tags[i].indexOf(' ') > -1) {
						
						openTags.push('</' + tags[i].slice(1, tags[i].indexOf(' ') ) + '>'  );
						
					} else {
						
						openTags.push('</' + tags[i].slice(1)  );
					}
				
				}
				
				// if it is a closure tag, remove the last opening tag
				if (tags[i].slice(1,2) == '/') {
				
					openTags.splice(openTags.length-1,1);
					
				}
				
				
				
			}
	
		};
		
		// insert three dots
		trimmedString += '...';
		
		// insert closure tags
		for (i in openTags.reverse()) { 
		
			// avoid image closures
			if (openTags[i].indexOf('img') == -1)
			trimmedString += openTags[i]; 
			
		}
		
		
		
		// Re-insert original tags
		for (i in tags) { 
		
			if (i < trimmedRealLength) {
			
				if (tags[i] != '') trimmedString = trimmedString.slice(0,i) + tags[i] + trimmedString.slice(i); 
				
			}
			
		};
		
		//alert(tags[857]);
		
		el.html(trimmedString);
	}
}


// Artist list js
function initArtistList() {
	$(window).load(function(){
		
		distributeMarginsEvenly('div.letter-index a', 'div.letter-index');
		
	})
	
	
	$('a.artist-name').each(function (index, domEle) {
		
		
        $(domEle).hover(function () {
            
			if ($(document).scrollTop() > 166) {
				$('div.sample-image').css('top', $(document).scrollTop() - 166 + 20 );
			} else {
				$('div.sample-image').css('top', '20px' );
					
			}
			if ($(domEle).next().attr('src').indexOf('noimage') == -1) $('div.sample-image').html( $(domEle).next().clone() );
			$('div.sample-image img.first-image').fadeIn('fast');


        }, function () {
           
			$('div.sample-image img').fadeOut('fast',function(){
				
				$(this).remove();
			});
		


        })
		
		
    })

	
	
}

// Setup wish list button on main menu
function headerWishListButton(){
	$('body').addClass('wishlist');
	$('ul.main-menu').append($('ul#wish-list-button').html());
	$('a#log-in-button').colorbox({width:"500px", inline:true, href:"#menu-log-in", transition:'fade', speed:500});
	var t=setTimeout('$("#colorbox").appendTo("form:first")',1000);
	
 
	
}

// Treat default input as placeholder
function handlePlaceHolderText() {
    $('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'));

        }
    });


    $('textarea').focus(function () {
        if ($(this).val() == $(this).attr('defaultValue')) {
            $(this).val('');

        }
    });

    $('textarea').blur(function () {
        if ($(this).val() == '') {
            $(this).val($(this).attr('defaultValue'));

        }
    });

}

// Display the mail list subscription form on the top right menu when 'Join our mailing list' is clicked

function overLoginBox (e) {
	
	if ((e.pageX < $('li.log-in div.top-log-in-form').offset().left) ||
					(e.pageX > $('li.log-in div.top-log-in-form').offset().left + $('li.log-in div.top-log-in-form').width())  ||
					(e.pageY < $('li.log-in div.top-log-in-form').offset().top) ||
					(e.pageY > $('li.log-in div.top-log-in-form').offset().top + $('li.log-in div.top-log-in-form').height()) )
	return true;			
	return false;
}

function showLogInForm() {
	$('#log-in-button').click(function(){
		$('li.newsletter-subscription iframe').hide();
		$('li.log-in div.top-log-in-form').slideToggle();
		$('li.log-in').toggleClass('active');
		
			if($('li.log-in div.top-log-in-form').css('display')== "block") { 
				$(document).click(function(e){
					if( overLoginBox(e) ) {
						$('li.log-in div.top-log-in-form').slideUp();
						$('li.log-in').removeClass('active');
						
					}
				});
			}
		return false;
	});
	
	$('input#_ctl5_dlWishList__ctl0__ctl0_txtLogin').keypress(function (e) {
	if (e.which == 13) {
		$('input#_ctl5_dlWishList__ctl0__ctl0_txtPassword').focus();
		return false;
	}

}).focus(function () {
$('input#_ctl5_dlWishList__ctl0__ctl0_txtLogin').val('');
	if ($('input#_ctl5_dlWishList__ctl0__ctl0_txtLogin').val() == "Username") {
		$('input#_ctl5_dlWishList__ctl0__ctl0_txtLogin').val('');
	}

});
	
}



/* 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) {
	if ($(parent).length > 0 && $(el).length > 0) { 
		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');
	}
}

//Load Artist list on home page
function addArtists(loadedContent) {
	//if (getUrlVarsFrom(document.location.href, true)['test'] == 1)
	//alert($(loadedContent).html());
	$('div.artists-list ul').append($(loadedContent).html().replace(/<a/gi, '<li><a').replace(/<\/a>/gi, '</a></li>').replace(/"?artist-name"?/g, '"artist-name color-2"'));

	$('div.artists-list ul li a').each(function(index, domEle){
		if ($(domEle).html().length > 28) {
			$(domEle).html($(domEle).html().substr(0,28) + '...')
		}
		
	});
	
	
}


function loadArtistList() {

    var address = 'DesktopDefault.aspx?tabid=44';

    $("<div>").load(address + ' div.letter-section a', function () {
		
		addArtists(this);
		if (getUrlVarsFrom(document.location.href, true)['test'] == '1') {
			
		$('div.home').text($(this).html().replace(/<a/gi, '<li><a').replace(/<\/a>/gi, '</a></li>').replace(/"?artist-name"?/g, '"artist-name color-2"'));	
		}
		
    });


	//scrolling
	var position = 1;
	$('div.artists .up').click(function(){
		if (position > 4) {
			$('div.artists-list ul').animate({
				
				'marginTop' : '+=112'
			})
			position -= 4;
			
		}
		return false;
	})
	
	$('div.artists .down').click(function(){
		if (position < $('div.artists-list ul li').length - 4) {
			$('div.artists-list ul').animate({
				
				'marginTop' : '-=112'
			})
			position += 4;
			
		}
		return false;
	})

}


// Adjust blog image margins
function adjustPostImage() {

    $('p.blogImageStyle img').each(function (index, domEle) {

        if ($(domEle).css('float') == 'right') $(domEle).css('margin-right', 10);
        if ($(domEle).css('float') == 'left') $(domEle).css('margin-left', 0);
    });
}


// Change style of the text-input-field on focus
function handleInputs() {


    //handle text input
	function handleTextInput(index, domEle){
		
		 var target;
        if ($(domEle).children('input').length > 0) {
            target = 'input';
        } else {
            target = 'textarea'
        }

        if ($('label', domEle).length == 0) {
            $(domEle).append('<label />');
            $('label', domEle).html($('.label', domEle).html().replace(':', ''));
            $('span.label', domEle).remove();
        }
        $('label', domEle).attr('for', $(target, domEle).attr('id'));





        if ($(target, domEle).val() != '') {
            $('label', domEle).css('display', 'none');
        }
        $(target, domEle).focus(function () {
            if ($(this).val() == '') {
                $('label', domEle).animate({
                    opacity: 0.25
                }, 250);
            }
        });

        $(target, domEle).blur(function () {
            if ($(this).val() == '') {
                $('label', domEle).css('display', 'block');
                $('label', domEle).animate({
                    opacity: 1
                }, 250);

            }
        });
        $(target, domEle).keydown(function () {

            $('label', domEle).css('display', 'none');

        });

        $(target, domEle).change(function () {
            if ($(this).val() == '') {
                $('label', domEle).css('opacity', 1);

            }
        });

		
	}
	
    $('.input-box').each(function (index, domEle) {

       handleTextInput(index, domEle);

    });
	 $('.form-area .text').each(function (index, domEle) {
		
        handleTextInput(index, domEle);

    });
}


function fixLabels(){
	$('.input-box').each(function(index, domEle){
		
		if ($('label', domEle).length == 0)
		$(domEle).append('<label />');
		if ($('span.label', domEle).length > 0) {
		
		$('label', domEle).append($(domEle).children('span.label').html());
		$(domEle).children('span.label').remove();
		}
		
		
		$('label', domEle).attr('for', $('input', domEle).attr('id'))
	});
}




function cookie(c_name,value) {
	var exdays = 365;
	if (value) {
		value = value.toString();
		var exdate=new Date();
		exdate.setDate(exdate.getDate() + exdays);
		var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
		document.cookie=c_name + "=" + c_value;
	} else {
		
		var i,x,y,ARRcookies=document.cookie.split(";");
		for (i=0;i<ARRcookies.length;i++)
		{
		  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
		  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
		  x=x.replace(/^\s+|\s+$/g,"");
		  if (x==c_name)
			{
			return unescape(y);
			}
		  }
	
	}
}



// Object details page
function initObjectDetails(){
	
	$('span.dimensions-inches').html($('span.dimensions-inches').text().replace(/"/g, ' inches '));
	
	if (!cookie('recently-viewed-objects')) {
		
		cookie('recently-viewed-objects', '0');
		
	} else if(!cookie('recently-viewed-object' + (parseFloat(cookie('recently-viewed-objects')) ))){
		
		cookie('recently-viewed-objects', '0');	
		
	}
		
	

	//document.title= cookie('recently-viewed-objects');

	$('#contactForm').attr('src','DesktopDefault.aspx?tabid=9&tabindex=8&objectid=' + getUrlVarsFrom(window.location.href)['objectid']);
	
	
	initRecentlyViewed();
	
	fixArtistName();
}

function fixArtistName() {
	
	
	$('span.artist-name').each(function(index, domEle){
		var title = $(domEle).text().split('(');
		
		if (title[1] != undefined) {
			var date = '<span class="date">(' + title[1].replace(')', '')  + ')</span>';
		} else {
			
			var date = '<span class="date">(' + title[0].replace(/[)|(]/, '')  + ')</span>';
		}
		$(domEle).replaceWith('<span class="title-3">' + title[0] + '</span>' + date);
		
		}) 
	
}


// Init the recently viewed panel
function initRecentlyViewed(){
	//var viewedItem = '<div class="item"><a href="' + document.location.href + '"><img src="' + $('img#_ctl5_dlObjectDetail__ctl0__ctl0_imgDetail').attr('src') + '" alt="" /></a></div>';
	
	var viewedItem = getUrlVarsFrom(document.location.href, false)['objectid'] + '|' + $('img.image-detail').attr('src');
	viewedItem= viewedItem.replace('http://asimg.artsolution.net/tsmedia/TrinityHouseTriphoto/', '').replace(/\?(.*)/, '');
	
	
	var objectListed = false;
	
	for (var i = 1; i <= parseFloat(cookie('recently-viewed-objects')); i ++) {
		
		if ( cookie('recently-viewed-object' + i).indexOf(viewedItem) != -1 ) 
		objectListed = true;
		
	}
	
	if (!objectListed) {
		
		cookie('recently-viewed-objects', parseFloat(cookie('recently-viewed-objects')) + 1);
		
		cookie('recently-viewed-object' + cookie('recently-viewed-objects'), viewedItem);
		
	}
	
	//var output;
	
	for (var i = parseFloat(cookie('recently-viewed-objects')); i > 0; i --) {
		var imgUrl = $('img.image-detail').attr('src');
		imgUrl = imgUrl.replace('http://asimg.artsolution.net/tsmedia/TrinityHouseTriphoto/', '');
		imgUrl = imgUrl.replace(/\?(.*)/, '');
		if (
		cookie('recently-viewed-object' + i).indexOf(imgUrl) == -1 &&
		cookie('recently-viewed-object' + i).length > 0
		)
		
		{
			//output += "cookie('recently-viewed-object" + i + "', '" + cookie('recently-viewed-object' + i) + "')";
			$('div.slider-container div.slider').append(
				
				'<div class="item"><a href="http://www.trinityhousepaintings.com/DesktopDefault.aspx?tabid=6&tabindex=5&objectid=' + 
				cookie('recently-viewed-object' + i).split("|")[0] + 
				'&backflag=on&&categoryid=0"><img src="http://asimg.artsolution.net/tsmedia/TrinityHouseTriphoto/' +
				cookie('recently-viewed-object' + i).split("|")[1] + 
				'?qlt=75&ftr=2&cell=500,100&cvt=jpeg" alt="" /></a></div>'
			
			);
			
		}
	}
	
	//alert(output);
	
	if($('div.slider-container div.slider img').length == 0) $('div.slider-container').hide();
	
	initSlider();
	
}

function initSlider(){
	
	var
	currentImage, 
	currentIndex = -1,
	myTimer, 
	totalScreens = 1,
	currentScreen = 1,
	screenSeparator = 65,
	images = [];
	
	// init slider
	

	if ($('div.slider-container div.slider div.item img').length == 0) {
		$('div.featured-container').addClass('empty');
	} else
	
	
	var loadedThumbs = 0;
	$('div.slider-container div.slider div.item img').load(function(){
		
		loadedThumbs ++;
		
		if (loadedThumbs == $('div.slider-container div.slider div.item img').length) {
			
			$(document).trigger('recent-loaded');
			
		}
		
	})
	
	$(document).bind('recent-loaded', 
    function() {
					var
						serieWidth = 0;
					for (var i = 0; i < $('div.slider-container div.slider div.item img').length; i ++) {

						serieWidth += $($('div.slider-container div.slider div.item img')[i]).width()

						+ parseInt($($('div.slider-container div.slider div.item img')[i]).css('margin-right').replace('px', ''))

						+ parseInt($($('div.slider-container div.slider div.item img')[i]).css('margin-left').replace('px', ''));

						
						if (serieWidth > 433) {

							totalScreens++;
							
							$($('div.slider-container div.slider div.item')[i]).css('margin-left', screenSeparator);

							serieWidth = $($('div.slider-container div.slider div.item img')[i]).width()

							+ parseInt($($('div.slider-container div.slider div.item img')[i]).css('margin-right').replace('px', ''))

							+ parseInt($($('div.slider-container div.slider div.item img')[i]).css('margin-left').replace('px', ''));
						}
						
						//$($('div.slider-container div.slider div.item img')[i]).data('serie', totalScreens);
						$($('div.slider-container div.slider div.item')[i]).addClass('serie' + totalScreens);


					}
					
					
					if (totalScreens == 1) {
					
						$('div.controls-1').hide();
						
						$('div.slider-container').css('width', 507);
						$('div.slider-container div.slider').css('width', 507);
						
						if ($('div.slider-container div.slider div.item').length > 2)
						distributeMarginsEvenly('.serie1', 'div.slider-container');
						
						screenSeparator = 0;
						
						
						
						$('div.recently-viewed').css('visibility','visible').hide().fadeIn();
						
					} else {
						
						// set container size
						$('div.slider-container div.slider').width(totalScreens * (433 + screenSeparator));
					
						for (var i = 1; i <= totalScreens; i++) {
						
							//$('.serie' + i).wrapAll('<div class="screen' + i + '" />');
							//if ($('.serie' + i).length > 2)
							distributeMarginsEvenly('.serie' + i, 'div.slider-container');
							
							
							

						}
						
					
						
					
						$('div.recently-viewed').css('visibility','visible').hide().fadeIn();

						// setup navigation button events
					

						$('div.controls-1 a.previous').click(function () {
						
							if (currentScreen > 1) {
								$('div.slider-container div.slider').animate({
									marginLeft: "+=" + ($('div.slider-container').width() + screenSeparator)
								}, 1500);
								
								currentScreen--;
								
								if (currentScreen == 1) { $('div.controls-1 a.previous').hide(); $('div.controls-1 a.next').show();}
								
								
								//Show first image of this serie
								//$('div.slider-container div.slider div.item img.serie' + currentScreen + ':first').addClass('active');
								
							}
							return false;
						});
						$('div.controls-1 a.next').click(function () {
							if (currentScreen < totalScreens) {
								$('div.slider-container div.slider').animate({

									marginLeft: '-=' + ($('div.slider-container').width() + screenSeparator)

								}, 1500);
								currentScreen++;
							
								if (currentScreen == totalScreens) { $('div.controls-1 a.previous').show(); $('div.controls-1 a.next').hide(); }
							
								//Show first image of this serie
								//$('div.slider-container div.slider div.item img.serie' + currentScreen + ':first').addClass('active');
								

							
							}
							return false;
						});

					
					
				}
			})
	
}


// Home page Slideshow
function slideSwitch(direction, speed) {
    var $active = $('div.slideshow div.active');

    if ( $active.length == 0 ) $active = $('div.slideshow div:last');

	if (direction == 'next')
    // pull the images in order
    var $next =  $active.next('div').length ? $active.next('div')
        : $('div.slideshow div:first');
		
	if (direction == 'previous')
    // pull the images in order
    var $next =  $active.prev('div').length ? $active.prev('div')
        : $('div.slideshow div:last');

    // uncomment the 3 lines below to pull the images in random order
    
    // var $sibs  = $active.siblings();
    // var rndNum = Math.floor(Math.random() * $sibs.length );
    // var $next  = $( $sibs[ rndNum ] );


    $active.addClass('last-active').removeClass('active');;

	if (switchTimeout != false) window.clearTimeout(switchTimeout);
	switchTimeout = window.setTimeout("slideSwitch('next', 2000)", 8500);
	
    $next.css({opacity: 0.0})
        .addClass('active')
        //.animate({opacity: 1.0}, 1500, function() {
		.animate({opacity: 1.0}, speed, function() {
            $active.removeClass('active last-active');
        });
		
		
	
	
}


// Home page Slideshow
function initSlideshow() {
	
	// Load slides
	
	$.ajax({
		type: "GET",
		url: "media/TrinityHouseTriphoto/FTP/slide/xml/slideshow.xml",
		dataType: "xml",
		success: function (xml) {
			$(xml).find('slide').each(function (index, domEle) {

				// Get object data
				var
					mainImage = $(this).find('main-image').text(),
					url = $(this).find('url').text(),
					imgTag = '<a href="' + url + '"><img' + ' src="media/TrinityHouseTriphoto/FTP/slide/image/' + mainImage + '" alt="" /></a>';

				// Insert slide div
				$('div#content-container div.slideshow').append('<div />')
				
				// Insert image tag into its container
				$('div#content-container div.slideshow div:last-child').append(imgTag);

			});

			$('div#content-container div.slideshow div').eq(0).addClass('active');

			switchTimeout = window.setTimeout( "slideSwitch('next', 2000)", 8500);

		}
	});
	
	
	
	
	//Setup buttons
	$('div.slideshow img.arrow.prev').click(function(){
		if (switchTimeout != false) window.clearTimeout(switchTimeout);
		slideSwitch('previous', 500);
	});
	$('div.slideshow img.arrow.next').click(function(){
		if (switchTimeout != false) window.clearTimeout(switchTimeout);
		slideSwitch('next', 500);
	})
	
}

// Enables the highlight on parent when sibling is hovered
function initSubMenu(){
	$('.hasSub').mouseenter(function(){
		
		$(this).addClass('active');
		
	});
	$('.hasSub').mouseleave(function(){
		
		$(this).removeClass('active');
		
	});
}

// Get variables from the url
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;
}

// Dealer catalogue functions (include list and grid view features)

function initDealerCatalogue() {
	
	fixArtistName();
	$('span.dimensions-inches').each(function(index,domEle){
		$(domEle).html($(domEle).text().replace(/"/g, ' inches '));
	})
	
		$('a.list-view').click(function(){
			
		
			
		$('div.list-wrapper').animate({
			opacity : '0'
		}, 
		1000, 
		function(){
			setupListView();
			
			$('div.list-wrapper').animate({
				opacity : '1'
			}, 
			1000, 
			function(){
				if (navigator.appVersion.indexOf("MSIE")>-1)
				this.style.removeAttribute('filter');
			
			})
		});
		
		return false;
	})
	
	
	$('a.grid-view').click(function(){
		
		
		
		$('div.list-wrapper').animate({
			opacity : '0'
		}, 
		1000, 
		function(){
			setupGridView();
			
			$('div.list-wrapper').animate({
				opacity : '1'
			}, 
			1000, 
			function(){
				if (navigator.appVersion.indexOf("MSIE")>-1)
				this.style.removeAttribute('filter');
			
			})
		});
		
		return false;
		
	})
	
	
	
	function setupGridView() {
		
		$('div.list-wrapper').removeClass('list-view').addClass('grid-view');
		
		$('div.entry-wrapper').each(function(index, domEle){
		
			$('a.thumb img', domEle).attr('src', $('a.thumb img', domEle).attr('src').replace(/cell=.*?&/, 'cell=277,277&'));
			
			
		});
		
		var rowMaxHeight = 0;
		
		for(var i = 0; i < $('div.entry-wrapper').length; i++) {
			
			var target= $($('div.entry-wrapper')[i]);
			
			if (target.data('h') != undefined) { target.height(target.data('h')) } else {
			
			if (target.children('div.text-area').height() > rowMaxHeight) { rowMaxHeight = target.children('div.text-area').height() }
			
			if ((i + 1) % 3 === 0) {
				
				for (var ii = 0; ii <= 2; ii++) {
					$($('div.entry-wrapper')[i - ii]).height(318 + rowMaxHeight);
					$($('div.entry-wrapper')[i - ii]).data('h', 318 + rowMaxHeight);
					
				} 
				rowMaxHeight = 0;
				
			
			}
			
			}
		}
		
		if ($('div.entry-wrapper').length % 3 != 0) {
			
			for (var ii = 0; ii <= $('div.entry-wrapper').length % 3; ii++) {
				target = $($('div.entry-wrapper')[$('div.entry-wrapper').length - ii]);
				if (target.data('h') != undefined) { target.height(target.data('h')) } else {
				target.height(318 + rowMaxHeight);
				target.data('h', 318 + rowMaxHeight);
			}
			}
		}
		
		// grant that next page will keep the same view mode
		
		$('div.paging a').each(function(index,domEle){
			
			if (getUrlVarsFrom($(domEle).attr('href'),0)['viewmode']) {
		
				$(domEle).attr('href', $(domEle).attr('href').replace(/&viewmode=[^&]*/,'&viewmode=gridview'));
				
			} else {
				
				$(domEle).attr('href', $(domEle).attr('href') + '&viewmode=gridview');
				
			}
			
		})
		
		
		
		
		
	}
	
	function setupListView() {
		
		$('div.list-wrapper').addClass('list-view').removeClass('grid-view');
		
		$('div.entry-wrapper').each(function(index, domEle){
		
			$('a.thumb img', domEle).attr('src', $('a.thumb img', domEle).attr('src').replace(/cell=.*?&/, 'cell=277,750&'));
			$(domEle).css('height', '');
		})
		
		// grant that next page will keep the same view mode
		$('div.paging a').each(function(index,domEle){
			
			if (getUrlVarsFrom($(domEle).attr('href'),0)['viewmode']) {
		
				$(domEle).attr('href', $(domEle).attr('href').replace(/&viewmode=[^&]*/,'&viewmode=listview'));
				
			} else {
				
				$(domEle).attr('href', $(domEle).attr('href') + '&viewmode=listview');
				
			}
			
		})
		
	}
	
	
	// Set initial container sizes
	if (getUrlVarsFrom(window.location.href)['viewmode'] == 'gridview') {
		
		setupGridView();
			
	} else { 
		
		setupListView(); 
	
	}
	
	
	//Wish-list
    $('div.entry-wrapper').each(function (index, domEle) {

		var title = $(domEle).children('.text-area').children('.description-area').children('span.title').text(),
			objectID = getUrlVarsFrom($(domEle).children('.image-area').children('a').attr('href'), false)['objectid'];
		

		


        $(domEle).children('.image-area').append('<a href="#" title="Add to Wish-list!" class="wishList tooltip"></a>');

		if ($(domEle).children('.image-area').children('a').children('img').hasClass('selected')) {
			$(domEle).children('.image-area').children('a.wishList').addClass('selected').fadeTo(300, 1);
			
		}

        $(domEle).children('div.image-area').hover(function () {

            $(domEle).children('div.image-area').children('a.wishList').stop().fadeTo(300, 1);

        }, function () {
            if (!$(domEle).children('div.image-area').children('a.wishList').hasClass('selected')) {
                $(domEle).children('div.image-area').children('a.wishList').stop().fadeTo(300, 0);
            }
        })

        $(domEle).children('div.image-area').children('a.wishList').hover(function () {

            $(domEle).children('div.image-area').children('a.wishList').stop();

            if ($(domEle).children('div.image-area').children('a.wishList').css('opacity') != 1) {

                $(domEle).children('div.image-area').children('a.wishList').stop().fadeTo(300, 1);
            }



        }, function () {
            if (!$(domEle).children('div.image-area').children('a.wishList').hasClass('selected')) {
                $(domEle).children('div.image-area').children('a.wishList').stop().fadeTo(300, 0);
            }
        })

        $(domEle).children('div.image-area').children('a.wishList').click(function () {
			$('div#add-to-wishlist div.list-area ul li input[type=checkbox]').attr('checked','');
			cblWishList_callback(objectID);

            
			
			
			// Pass object data to colorbox
			
			$('div#add-to-wishlist span.object-title').html(title);
			$('div#wishlistMainBox input#object-id').val(objectID);
			
			
			//Enable cancel button
			$('.close-colorbox').click(function(){$.colorbox.close()})
			
			//Enable select all and select none features
			$('div#add-to-wishlist a.select-all').click(function(){
				$('div#add-to-wishlist div.list-area ul li input[type=checkbox]').attr('checked','checked')
				return false;
			})
			
			$('div#add-to-wishlist a.select-none').click(function(){
				$('div#add-to-wishlist div.list-area ul li input[type=checkbox]').attr('checked','')
				return false;
			})
			
			// Reset Colorbox window when new colorbox is opened
            
			
        })



    });
	
	

}
