rivergum={
init:function(){


	//newsletter
	$('.newsletter a,#newsletter a').click(function(){
		$(this).parent().parent().submit();
		return false;
	});
	$('.newsletter input').focus(function(){
		console.log('focus');
		if($(this).val()=='type your email here') $(this).val('')
	}).blur(function(){
		if($(this).val()=='') $(this).val('type your email here')
	});
	$('.newsletter form').submit(function(){
		if($(this).find('input').val()=='type your email here') $(this).find('input').val('')
	});
	
	$('.map-hover').hover(
			function(){$(this).stop().animate({opacity: 1});}, 
			function(){$(this).stop().animate({opacity: 0});});

	//browser page
	if($('#browser').length){
		rivergum.browser.init();
		return;
	}

	//gallery
	if($('#gallery').length){

//Lightbox
(function($){$.fn.lightbox=function(options){var opts=$.extend({},$.fn.lightbox.defaults,options);return this.each(function(){$(this).click(function(){initialize();start(this);return false})});function initialize(){$("#overlay").remove();$("#lightbox").remove();opts.inprogress=false;if(opts.jsonData&&opts.jsonData.length>0){var parser=opts.jsonDataParser?opts.jsonDataParser:$.fn.lightbox.parseJsonData;opts.imageArray=[];opts.imageArray=parser(opts.jsonData)}var outerImage='<div id="outerImageContainer"><div id="imageContainer"><iframe id="lightboxIframe" /><img id="lightboxImage"><div id="hoverNav"><a href="javascript://" title="'+
opts.strings.prevLinkTitle+'" id="prevLink"></a><a href="javascript://" id="nextLink" title="'+opts.strings.nextLinkTitle+'"></a></div><div id="loading"><a href="javascript://" id="loadingLink"><img src="'+opts.fileLoadingImage+'"></a></div></div></div>';var imageData='<div id="imageDataContainer" class="clearfix"><div id="imageData"><div id="imageDetails"><span id="caption"></span><span id="numberDisplay"></span></div><div id="bottomNav">';if(opts.displayHelp)imageData+='<span id="helpDisplay">'+
opts.strings.help+"</span>";imageData+='<a href="javascript://" id="bottomNavClose" title="'+opts.strings.closeTitle+'"><img src="'+opts.fileBottomNavCloseImage+'"></a></div></div></div>';var string;if(opts.navbarOnTop){string='<div id="overlay"></div><div id="lightbox">'+imageData+outerImage+"</div>";$("body").append(string);$("#imageDataContainer").addClass("ontop")}else{string='<div id="overlay"></div><div id="lightbox">'+outerImage+imageData+"</div>";$("body").append(string)}$("#overlay").click(function(){end()}).hide();
$("#lightbox").click(function(){end()}).hide();$("#loadingLink").click(function(){end();return false});$("#bottomNavClose").click(function(){end();return false});$("#outerImageContainer").width(opts.widthCurrent).height(opts.heightCurrent);$("#imageDataContainer").width(opts.widthCurrent);if(!opts.imageClickClose){$("#lightboxImage").click(function(){return false});$("#hoverNav").click(function(){return false})}}function getPageSize(){var jqueryPageSize=new Array($(document).width(),$(document).height(),
$(window).width(),$(window).height());return jqueryPageSize}function getPageScroll(){var xScroll,yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;xScroll=self.pageXOffset}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;xScroll=document.documentElement.scrollLeft}else if(document.body){yScroll=document.body.scrollTop;xScroll=document.body.scrollLeft}var arrayPageScroll=new Array(xScroll,yScroll);return arrayPageScroll}function pause(ms){var date=
new Date;var curDate=null;do curDate=new Date;while(curDate-date<ms)}function start(imageLink){$("select, embed, object").hide();var arrayPageSize=getPageSize();$("#overlay").hide().css({width:"100%",height:arrayPageSize[1]+"px",opacity:opts.overlayOpacity}).fadeIn();imageNum=0;if(!opts.jsonData){opts.imageArray=[];if(!imageLink.rel||imageLink.rel=="")opts.imageArray.push(new Array(imageLink.href,opts.displayTitle?imageLink.title:""));else $("a").each(function(){if(this.href&&this.rel==imageLink.rel)opts.imageArray.push(new Array(this.href,
opts.displayTitle?this.title:""))})}if(opts.imageArray.length>1){for(i=0;i<opts.imageArray.length;i++)for(j=opts.imageArray.length-1;j>i;j--)if(opts.imageArray[i][0]==opts.imageArray[j][0])opts.imageArray.splice(j,1);while(opts.imageArray[imageNum][0]!=imageLink.href)imageNum++}var arrayPageScroll=getPageScroll();var lightboxTop=arrayPageScroll[1]+arrayPageSize[3]/10;var lightboxLeft=arrayPageScroll[0];$("#lightbox").css({top:lightboxTop+"px",left:lightboxLeft+"px"}).show();if(!opts.slideNavBar)$("#imageData").hide();
changeImage(imageNum)}function changeImage(imageNum){if(opts.inprogress==false){opts.inprogress=true;opts.activeImage=imageNum;$("#loading").show();$("#lightboxImage").hide();$("#hoverNav").hide();$("#prevLink").hide();$("#nextLink").hide();if(opts.slideNavBar){$("#imageDataContainer").hide();$("#imageData").hide();doChangeImage()}else doChangeImage()}}function doChangeImage(){imgPreloader=new Image;imgPreloader.onload=function(){var newWidth=imgPreloader.width;var newHeight=imgPreloader.height;if(opts.fitToScreen){var arrayPageSize=
getPageSize();var ratio;var initialPageWidth=arrayPageSize[2]-2*opts.borderSize;var initialPageHeight=arrayPageSize[3]-200;if(imgPreloader.height>initialPageHeight){newWidth=parseInt(initialPageHeight/imgPreloader.height*imgPreloader.width);newHeight=initialPageHeight}else if(imgPreloader.width>initialPageWidth){newHeight=parseInt(initialPageWidth/imgPreloader.width*imgPreloader.height);newWidth=initialPageWidth}}$("#lightboxImage").attr("src",opts.imageArray[opts.activeImage][0]).width(newWidth).height(newHeight);
resizeImageContainer(newWidth,newHeight)};imgPreloader.src=opts.imageArray[opts.activeImage][0]}function end(){disableKeyboardNav();$("#lightbox").hide();$("#overlay").fadeOut();$("select, object, embed").show()}function preloadNeighborImages(){if(opts.loopImages&&opts.imageArray.length>1){preloadNextImage=new Image;preloadNextImage.src=opts.imageArray[opts.activeImage==opts.imageArray.length-1?0:opts.activeImage+1][0];preloadPrevImage=new Image;preloadPrevImage.src=opts.imageArray[opts.activeImage==
0?opts.imageArray.length-1:opts.activeImage-1][0]}else{if(opts.imageArray.length-1>opts.activeImage){preloadNextImage=new Image;preloadNextImage.src=opts.imageArray[opts.activeImage+1][0]}if(opts.activeImage>0){preloadPrevImage=new Image;preloadPrevImage.src=opts.imageArray[opts.activeImage-1][0]}}}function resizeImageContainer(imgWidth,imgHeight){opts.widthCurrent=$("#outerImageContainer").outerWidth();opts.heightCurrent=$("#outerImageContainer").outerHeight();var widthNew=Math.max(250,imgWidth+
opts.borderSize*2);var heightNew=imgHeight+opts.borderSize*2;opts.xScale=widthNew/opts.widthCurrent*100;opts.yScale=heightNew/opts.heightCurrent*100;wDiff=opts.widthCurrent-widthNew;hDiff=opts.heightCurrent-heightNew;$("#imageDataContainer").animate({width:widthNew},opts.resizeSpeed,"linear");$("#outerImageContainer").animate({width:widthNew},opts.resizeSpeed,"linear",function(){$("#outerImageContainer").animate({height:heightNew},opts.resizeSpeed,"linear",function(){showImage()})});if(hDiff==0&&
wDiff==0)if(jQuery.browser.msie)pause(250);else pause(100);$("#prevLink").height(imgHeight);$("#nextLink").height(imgHeight)}function showImage(){$("#loading").hide();$("#lightboxImage").fadeIn("fast");updateDetails();preloadNeighborImages();opts.inprogress=false}function updateDetails(){$("#numberDisplay").html("");if(opts.imageArray[opts.activeImage][1])$("#caption").html(opts.imageArray[opts.activeImage][1]).show();if(opts.imageArray.length>1){var nav_html;nav_html=''/*opts.strings.image+(opts.activeImage+
1)+opts.strings.of+opts.imageArray.length*/;if(!opts.disableNavbarLinks){if(opts.activeImage>0||opts.loopImages)nav_html='<a title="'+opts.strings.prevLinkTitle+'" href="#" id="prevLinkText">'+opts.strings.prevLinkText+"</a>"+nav_html;if(opts.activeImage+1<opts.imageArray.length||opts.loopImages)nav_html+='<a title="'+opts.strings.nextLinkTitle+'" href="#" id="nextLinkText">'+opts.strings.nextLinkText+"</a>"}$("#numberDisplay").html(nav_html).show()}if(opts.slideNavBar)$("#imageData").slideDown(opts.navBarSlideSpeed);
else $("#imageData").show();var arrayPageSize=getPageSize();$("#overlay").height(arrayPageSize[1]);updateNav()}function updateNav(){if(opts.imageArray.length>1){$("#hoverNav").show();if(opts.loopImages){$("#prevLink,#prevLinkText").show().click(function(){changeImage(opts.activeImage==0?opts.imageArray.length-1:opts.activeImage-1);return false});$("#nextLink,#nextLinkText").show().click(function(){changeImage(opts.activeImage==opts.imageArray.length-1?0:opts.activeImage+1);return false})}else{if(opts.activeImage!=
0)$("#prevLink,#prevLinkText").show().click(function(){changeImage(opts.activeImage-1);return false});if(opts.activeImage!=opts.imageArray.length-1)$("#nextLink,#nextLinkText").show().click(function(){changeImage(opts.activeImage+1);return false})}enableKeyboardNav()}}function keyboardAction(e){var o=e.data.opts;var keycode=e.keyCode;var escapeKey=27;var key=String.fromCharCode(keycode).toLowerCase();if(key=="x"||key=="o"||key=="c"||keycode==escapeKey)end();else if(key=="p"||keycode==37)if(o.loopImages){disableKeyboardNav();
changeImage(o.activeImage==0?o.imageArray.length-1:o.activeImage-1)}else{if(o.activeImage!=0){disableKeyboardNav();changeImage(o.activeImage-1)}}else if(key=="n"||keycode==39)if(opts.loopImages){disableKeyboardNav();changeImage(o.activeImage==o.imageArray.length-1?0:o.activeImage+1)}else if(o.activeImage!=o.imageArray.length-1){disableKeyboardNav();changeImage(o.activeImage+1)}}function enableKeyboardNav(){$(document).bind("keydown",{opts:opts},keyboardAction)}function disableKeyboardNav(){$(document).unbind("keydown")}
};$.fn.lightbox.parseJsonData=function(data){var imageArray=[];$.each(data,function(){imageArray.push(new Array(this.url,this.title))});return imageArray};$.fn.lightbox.defaults={fileLoadingImage:"images/loading.gif",fileBottomNavCloseImage:"images/closelabel.gif",overlayOpacity:0.8,borderSize:10,imageArray:new Array,activeImage:null,inprogress:false,resizeSpeed:350,widthCurrent:250,heightCurrent:250,xScale:1,yScale:1,displayTitle:true,navbarOnTop:false,slideNavBar:false,navBarSlideSpeed:350,displayHelp:false,
strings:{help:" \u2190 / P - previous image\u00a0\u00a0\u00a0\u00a0\u2192 / N - next image\u00a0\u00a0\u00a0\u00a0ESC / X - close image gallery",prevLinkTitle:"previous image",nextLinkTitle:"next image",prevLinkText:"&laquo; Previous",nextLinkText:"Next &raquo;",closeTitle:"close image gallery",image:"Image ",of:" of "},fitToScreen:false,disableNavbarLinks:false,loopImages:false,imageClickClose:true,jsonData:null,jsonDataParser:null}})(jQuery);

//side image lightbox
$("#gallery .images a img").parent().attr('rel','gallery[p]').lightbox({ fitToScreen: true,fileLoadingImage : '/assets/lightbox/loading.gif',fileBottomNavCloseImage : '/assets/lightbox/close.gif'});
$('#enlarge a').click(function(){
	$("#gallery .images a:first").trigger('click');
});

	}

	/* Home Page Banner */
	if($('#banner').length){
		// insert dots to dom
		var bannerCount = $('#banner img').length;
		if(bannerCount>1){
			var pag = $('#banner').after('<ul id="banner-pagination"></ul>');
		}
		//set up cycle plugin. Switch dots on slide change
		$('#banner').cycle({
			timeout:8000,
 			   pager:  '#banner-pagination', 
 			   pagerAnchorBuilder: function(idx, slide) { 
 			       return '<li><a href="#">'+idx+'</a></li>'; 
 			   } 
		});
		//remove blank links
		$('#banner a[href=],#banner a[href^=#]').css('cursor','default').click(function(){ return false; });
	}

	if($('#careerform').length){

		//contact form
		$('#loading').hide();
		$('#careerform').submit(function(){
			//validate
			var errors = false;
			$('input','#careerform').each(function(){
				if($(this).val().replace(/\s*/,'')==''){
					$(this).focus(function(){
						$(this).parent().removeClass('validate')
					}).parent().addClass('validate');
					errors = true;
				}
			});
			
			if(errors){
				return false;
			}
			
			//send
			$('#loading').show();
			$('#careerform').hide();
			return true;
		});	

	}

	if($('#contact').length){
		//select first empty field
		$('input').filter(function(){
			return $(this).val()==''? true:false;
		})[0].focus();

	
		//form toggles
		$('input[name=consultant]').change(function(r){
			$(this).attr('checked')?$('.toggledisplay').show():$('.toggledisplay').hide();
		}).trigger('change');
	
		//phone area code check
		$('input[name=phone]').blur(function(){
			var val = $(this).val();
			var number = val.replace(/[^0-9]/g,'');
			$(this).parent().find('.help').remove();
			if(val=='') return;
			if(/^04/.test(number) && number.length<10){
					$(this).parent().find('label').after('<span class="help">Please check your mobile number</span>');
					$(this).focus(function(){
						$(this).parent().removeClass('validate')
					}).parent().addClass('validate');
			}else if(number.length<10){
					$(this).parent().find('label').after('<span class="help">Please add two digit area code - e.g. 08</span>');
					$(this).focus(function(){
						$(this).parent().removeClass('validate')
					}).parent().addClass('validate');
			}else if(number.length>10){
					$(this).parent().find('label').after('<span class="help">You number is to long. It should be no more than 10 digits</span>');
					$(this).focus(function(){
						$(this).parent().removeClass('validate')
					}).parent().addClass('validate');
			}else{
				$(this).parent().removeClass('validate');
			}
		});
	
		//form submit
		$('#contact').submit(function(){
			//validate
			var errors = false;
			$('input[name=fname],input[name=lname],input[name=email],input[name=phone]','#contact').each(function(){
				if($(this).val().replace(/\s*/,'')==''){
					$(this).focus(function(){
						$(this).parent().removeClass('validate')
					}).parent().addClass('validate');
					errors = true;
				}
			});

			$('.toggledisplay:visible select[name=displayvillage]','#contact').each(function(){
				if($(this).val()=='(please select)'){
					$(this).change(function(){
						$(this).parent().removeClass('error')
					}).parent().addClass('error');
					//alert('Please select a display village.');
					errors = true;
				}
			});
		
			//capture anything else
			$('input[name=phone]').trigger('blur');
			if($('.validate','#contact').length) errors = true;
		
			if(errors){
				window.scroll(0,200);
				return false;
			}
		
			window.scroll(0,100);
			
		
			//send
			//$('#contact').css('opacity',0.2).css('cursor','wait');
			$('.col-third-sml','#contact').hide().before('<div class="col-third-sml" id="load"><p style="padding:5px;background:#fffbdd;"><strong>Sending... <em>Please Wait</em></strong></p></div>');
			//$('input[type=submit]','#contact').val('Sending... Please Wait')[0].disabled='disabled';
			document.title='Loading...';
			
			$.post('/ajax/contact.php?ajax=true',$('#contact').serializeArray(),function(r){
				window.scroll(0,0);
				//$('#contact').css('opacity',1).css('cursor','default');$('input[type=submit]','#contact').val('Already sent.. Thanks!');
				document.title='Sent! - Rivergum Homes';
				
				r=$.parseJSON(r);
				$('.col-third-sml .ok,.col-third-sml .error').remove();
				if(!r.ok){
					$('#load').remove();
					$('.col-third-sml','#contact').show();
					$('.col-third-sml h3').after('<div class="'+(r.ok?'ok':'error')+'">'+r.message+'</div>');
				}else{
					$('#load').html('<p class="ok">'+r.message+'</p>');
				}
			});
			return false;
		});
		
		//save form values to cookie monster
		$('#contact input,#contact textarea').bind('blur',function(){
			//save values
			$.cookie('rg_cform',$('#contact').serialize(),{'path':'/'});
		});

		//load values
		if($.cookie('rg_cform')){
			var inputs = $.unserialize($.cookie('rg_cform'));
			for(input in inputs){
				var name = input;
				var value = inputs[input];
				$('input[name='+name+'],textarea[name='+name+']').each(function(){
					if($(this).attr('type')=='radio'||$(this).attr('type')=='checkbox'){
						($(this).val()==value)?$(this).attr('checked','checked'):$(this).removeAttr('checked');
					}else{
						$(this).val(value)
					}
				});
			}
		}
	}


},
job:{
	//career page - called from iframe to update display
	trigger_finish:function(heading,message){
		$('#loading').hide();
		$('.error,.ok').hide();
		if(message=='false'){
			$('#loading').after('<div class="error">'+heading+'</div>');$('#careerform').show();
		}else $('#loading').after('<div class="ok"><strong>'+heading+'</strong><br />'+message+'</div>');
	}
},









browser:{
	items:[],//holds selected items for saving
	init:function(){
	
		// -- setup filter buttons
		//floorplan buttons
		$('.opts-list a').click(function(){
			$(this).parent().parent().find('a').removeClass('a');
			$(this).addClass('a');
			rivergum.browser.apply_filters();
			return false;
		});
		//custom check buttons
		$('.options .check-list a').click(function(){
			$(this).toggleClass('a');
			rivergum.browser.apply_filters();
			return false;
		});
		//select dropdowns
		$('.options select').live('change',function(){
			rivergum.browser.apply_filters();
			return false;
		});


		// -- init sliders
		//slidebar and functions
		$(".slider").slider({
			slide:function(e,y){
				var container = $(this).parent();
				rivergum.browser.slide_control(container,y.value,false);
			},
			change:function(e,y){
				var container = $(this).parent();
				rivergum.browser.slide_control(container,y.value,true);
			},
			start:function(){
				//$(this).parent().find('li').removeClass('unavailable');//.find('.img').css('opacity',1);
			}
		});
		//slider on item click
		$(".views li").live('click',function(){
			var container = $(this).parent().parent();
			var idx = container.find('li').index($(this));
			var amount = container.find('li').length;
			
			//quick bug fix (if one image only it does not slide back into place)
			if(amount==1) container.find('ul').css('margin-left',255)
			
			rivergum.browser.slide_control(container,(100/(amount-1))*idx,true,$(this).hasClass('available')?true:false);
		});
		$("#facade-flow li.a,#floorplan-flow li.a").live('mouseup',function(){
			var img = $(this).attr('data-img');
			var floorplan = $(this).parent().parent().attr('id')=='floorplan-flow';
			var height = floorplan?600:375;
			var width = floorplan?600:500;
			$(this).dialog({
				content:'<div style="width:'+width+'px;height:'+height+'px;padding:10px;text-align:center;"><img src="'+img+'" alt="" /></div>'
			});
		});
		$("#hl-flow li.a").live('mouseup',function(){
			var id = $(this).attr('data-id');
			//show more info lightbox
			rivergum.browser.otherbrowser_moreinfo_box($(this),id);
			return false;
		});
		
		// -- button
		//add button
		$('.home-add').click(function(){
			if($('#facade-flow').length){//home browser

				var facadeid = $('#facade-flow .a.available').attr('data-id');
				var floorplanid = $('#floorplan-flow .a.available').attr('data-id');
				if(!facadeid||!floorplanid){ alert('Please click on a facade or floor plan\nto select a House Combo.'); return false;}
				
				//get facade data row
				for(var i=0;i<rivergum.browser.facades.length;i++){
					if(rivergum.browser.facades[i][0]==facadeid){
						var facadedata = rivergum.browser.facades[i];i=999;
					}
				}
		
				//get floorplan data row
				for(var i=0;i<rivergum.browser.floorplans.length;i++){
					if(rivergum.browser.floorplans[i][0]==floorplanid){
						var floorplandata = rivergum.browser.floorplans[i];i=999;
					}
				}
		
				//get package data row
				for(var i=0;i<rivergum.browser.home_packages.length;i++){
					if(rivergum.browser.home_packages[i][1].indexOf('|'+facadeid+'|')>=0 && rivergum.browser.home_packages[i][2].indexOf('|'+floorplanid+'|')>=0){
						var package = rivergum.browser.home_packages[i];i=999;
					}
				}

				if(!package){ alert('Sorry, Combo Unavailable'); return false;}
				if(!facadedata||!floorplandata) return false;

				var comboprice = (facadedata[5]*1>-1&&floorplandata[15]*1>-1)?facadedata[5]*1  +  floorplandata[15]*1:-1;
				comboprice = (comboprice>1?'From: $'+comboprice.comma():'')

				
				rivergum.browser.add_selection_homebrowser([
					facadeid,//facadeid
					floorplanid,//floorplanid
					facadedata[2][1],//facadeimage
					package[0],//packagename
					facadedata[3],//facadename
					floorplandata[1],//floorplanname
					floorplandata[12],//floorplantext
					floorplandata[13],//floorplanspecs
					floorplandata[2][1],//floorplanimg
					
					facadedata[2][2],//facade large image
					floorplandata[2][2],//floorplan large img
					
					[floorplandata[3],floorplandata[4],floorplandata[5],floorplandata[6],floorplandata[7],floorplandata[8]]//house specs ie bathrooms etc.
					
					,floorplandata[14]//min land width
					,floorplandata[1]+' '+/*facade filtername*/facadedata[1]//pack name 2nd line
					
					,comboprice//combo price
				]);

			}else{//other browsers
			
				var packageid = $('#hl-flow .a').attr('data-id');
			
				//get package data row
				for(var i=0;i<rivergum.browser.house_packages.length;i++){
					if(rivergum.browser.house_packages[i][0]==packageid){
						var package = rivergum.browser.house_packages[i];
						break;
					}
				}
			
				if(!packageid){ alert('Please click on a home to make a selection'); return false;}

				rivergum.browser.add_selection_otherbrowser([
					packageid,//packageid
					package[5][1][1],//facadeimage
					package[1],//packagename
					package[5][0],//facadename
					package[3][0],//floorplanname
					package[7],//floorplantext
					package[8],//floorplanspecs
					package[3][2][1],//floorplanimg
					
					package[5][1][2],//facade large image
					package[3][2][2],//floorplan large img
					
					[package[6][0],package[6][1],package[6][2],package[6][3],package[6][4],package[6][5]]//house specs ie bathrooms etc.
					
					,package[13]?package[14]:package[12]//file
				]);

			}
			return false;
		});
		
		//save button
		$('.share a').click(function(){
			if(rivergum.browser.items.length<1) return false;
		
			//cut to saved items to 10 items, till someone complains
			rivergum.browser.items = rivergum.browser.items.splice(0,11);
			$.cookie('rg_browser',rivergum.browser.items.join('|'),{'path':'/'});
		});
		
		
		//-- trigger load
		$('.options a.a:last').trigger('click');
		//$(".views li:first").trigger('click');
		
		//clear scrolling action (set in apply_filters)
		$('.views ul').bind('mousedown',function(){
			clearInterval(rivergum.browser.slide);
			$('#play-scroll').fadeIn();
		});
		
		// setup right left slider buttons
		$('.views ul').each(function(){
			var container = $(this);
			var elpos = $(this).offset();
			var elheight = $(this).height();
			var elwidth = $(this).parent().width();

			$('<a href="" class="browser-pag left">&lsaquo;####</a>').css({
				position:'absolute',
				top:elpos.top+(elheight/2)-20,
				left:'50%',
				'margin-left':-245
			}).appendTo('body').click(function(){
				$('#play-scroll').fadeIn();
				clearInterval(rivergum.browser.slide);
				var count = container.find('li').length;
				if(count<2) return false;
				var offset = container.css('margin-left').replace('px','');
				var goto_idx = Math.abs((offset*1-255)/240)-1;
				goto_idx = goto_idx?Math.round(goto_idx):0;
				goto_idx = goto_idx<0?count-1:goto_idx;
				container.find('li').eq(goto_idx).trigger('click');
				return false;
			});

			$('<a href="" class="browser-pag right">####&rsaquo;</a>').css({
				position:'absolute',
				top:elpos.top+(elheight/2)-20,
				left:'50%',
				'margin-left':445
			}).appendTo('body').click(function(){
				$('#play-scroll').fadeIn();
				clearInterval(rivergum.browser.slide);
				var count = container.find('li').length;
				if(count<2) return false;
				var offset = container.css('margin-left').replace('px','');
				var goto_idx = Math.abs((offset*1-255)/240)+1;
				goto_idx = goto_idx?Math.round(goto_idx):0;
				goto_idx = goto_idx>=count?0:goto_idx;
				container.find('li').eq(goto_idx).trigger('click');
				return false;
			});
		});
		
		// setup resume play button
		var pos = $('.browser').offset();
		$('<a href="" id="play-scroll">&rsaquo; Resume Scrolling</a>').css({
			position:'absolute',
			top:pos.top,
			left:'50%',
			'margin-left':365
		}).appendTo('body').click(function(){
			//rivergum.browser.apply_filters();
			
//resume browser scrolling. (note this is a mod of from the funcion below)
		//-- start browser scroll
		clearInterval(rivergum.browser.slide);
		$('#play-scroll').hide();
		$('.views li.a').removeClass('a');
		$('.slider').fadeOut();
		var count = $('.views ul:first li').length;
		if(count>1){
			var els = $('.views ul');
			var move = els.eq(0).css('margin-left').replace('px','')*1;

			var revertoffset = -((count-1)*240)-30;

			rivergum.browser.slide = setInterval(function(){
				move = move-1;
				//console.log(move,revertoffset,move<revertoffset);
				if(move<revertoffset) move = 650;
				els.css('margin-left',move);
			},20)
		}else{
			$(".views li:first").trigger('click');
		}
		//end mod
			return false;
		}).hide();
	},
	//get all browser filters and set handler
	apply_filters:function(){
		var filterdata = [];
	
		//custom check buttons
		var selected = [];
		$('.options .check-list a.a').each(function(){
			var value = $(this).attr('data-value');
			var name = $(this).parent().parent().attr('data-name');
			var nameidx = $(this).parent().parent().attr('data-nameidx')*1;
			selected.push([nameidx,name,value]);
		});
		filterdata.push(selected);
		
		//select dropdowns
		$('.options select').each(function(){
			var value = $(this).val();
			var name = $(this).attr('data-name');
			var nameidx = $(this).attr('data-nameidx')*1;
			filterdata.push([nameidx,name,value]);
		});
		
		//floorplans buttons
		var options = [];
		var nameidx = $('.opts-list:first').attr('data-nameidx')*1;
		$('.opts-list').each(function(){
			$('.opts-list').each(function(){
				var valueidx = $(this).attr('data-valueidx')*1;
				var value = $(this).find('.a').attr('data-value')*1;
				options.push([valueidx,value]);
			});
		});
		filterdata.push([nameidx,options]);

		//set to filter handler by browser type
		if($('#facade-flow').length){
			//home browser
			rivergum.browser.load_browserdata_home(filterdata);
		}else{
			//other browsers
			rivergum.browser.load_browserdata_other(filterdata);
		}
		
		//trigger slider
		//$(".views li:first").trigger('click');

		//-- start browser scroll
		clearInterval(rivergum.browser.slide);
		$('#play-scroll').hide();
		$('.slider').fadeOut();
		var count = $('.views ul:first li').length;
		if(count>1){
			var els = $('.views ul');
			var move = 255;
			var revertoffset = -((count-1)*240)-30;

			rivergum.browser.slide = setInterval(function(){
				move = move-1;
				//console.log(move,revertoffset,move<revertoffset);
				if(move<revertoffset) move = 650;
				els.css('margin-left',move);
			},20)
		}else{
			$(".views li:first").trigger('click');
		}
	},
	
	//slide control functionality
	slide_control:function(container,slidepercent,fix,donttriggerupdate){
		var amount = container.find('li').filter(':visible').length;
		var count = ((slidepercent*(amount-1))/100);

		if(amount<2) container.find('.slider').fadeOut();
		else container.find('.slider').fadeIn();

		//move items slider to location
		if(fix){
			count = Math.round(count);
			container.find('.slider a').animate({'left':(100/(amount-1))*count+'%'},100);
			container.find('ul').animate({'margin-left':-(240*count)+255},300);

			//add class to active item
			count=isNaN(count)?0:count;
			var el = container.find('li').removeClass('a').eq(count).addClass('a');
			
			//function to not allow updating of other row
			if(donttriggerupdate){
				return;
			}
			//set to filter handler by browser type
			if($('#facade-flow').length){
				//home browser
				rivergum.browser.slider_update_browserhome(container,el,count/*idx*/);
			}else{
				//other browsers
				rivergum.browser.slider_update_browserother(container,el,count/*idx*/);
			}
		}else{
			container.find('ul').css('margin-left',-(240*count)+255);
		}
	},
	
	//filter handler - home browser data
	load_browserdata_home:function(filterdata){
		//loop through floor plans and get available based on data
			var available_floorplans = [];
			for(var i=0;i<rivergum.browser.floorplans.length;i++){
				//window.data = filterdata;
				//console.log([rivergum.browser.floorplans[i][11],filterdata[2][2]]);
				if(filterdata[2][2]!=='-1' && rivergum.browser.floorplans[i][11]!==filterdata[2][2]) continue;//construction type

				var fp_filters = filterdata[3][1];
				
				if(
					(fp_filters[0][1]!==-1&& fp_filters[0][1]!==rivergum.browser.floorplans[i][3]*1)//stories
				||	(fp_filters[1][1]!==-1&& fp_filters[1][1]!==rivergum.browser.floorplans[i][4]*1)//beds
				||	(fp_filters[2][1]!==-1&& fp_filters[2][1]!==rivergum.browser.floorplans[i][5]*1)//living areas
				||	(fp_filters[3][1]!==-1&& fp_filters[3][1]!==rivergum.browser.floorplans[i][6]*1)//bathrooms
				||	(fp_filters[4][1]!==-1&& fp_filters[4][1]!==rivergum.browser.floorplans[i][7]*1)//car spaces
				) continue;
				
				available_floorplans.push(rivergum.browser.floorplans[i]);
				
			}
			

		//loop through facades and get available based on data
			//get filters
			var filters = '';
			for(var i=0;i<filterdata[0].length;i++){
				filters += filterdata[0][i][2]+'|';
			}
			//alert(filters);
			//--range filter
			var range = $('.options input[name=range]').val();

			//get facades
			var available_facades = [];
			for(var i=0;i<rivergum.browser.facades.length;i++){
				//if(filterdata[1][2]!=='-1' && rivergum.browser.facades[i][4]!==filterdata[1][2]) continue;//range filter

				if(range!==rivergum.browser.facades[i][4].toLowerCase()) continue;	

	
				if(filters.indexOf(rivergum.browser.facades[i][1].toLowerCase()+'|')>=0)//has available name
					available_facades.push(rivergum.browser.facades[i]);
			}


			//loop through homepackages and select available floorplans and facades
			var facadesout=[],floorplanout=[],filter_packname=[];
			for(var i=0;i<rivergum.browser.home_packages.length;i++){
				var hasfloorplan = [];
				var hasfacade = [];

				//range filter
				if(filterdata[1][2]!=='-1' && rivergum.browser.home_packages[i][0]!==filterdata[1][2]) continue;
				
				for(var ii=0;ii<available_facades.length;ii++)
				{
					if(rivergum.browser.home_packages[i][1].indexOf('|'+available_facades[ii][0]+'|')>=0) 
						hasfacade.push(available_facades[ii]);
				}
				
				for(var ii=0;ii<available_floorplans.length;ii++)
				{
					if(rivergum.browser.home_packages[i][2].indexOf('|'+available_floorplans[ii][0]+'|')>=0) 
						hasfloorplan.push(available_floorplans[ii]);
				}
				
				
				
				if(hasfacade.length>0&&hasfloorplan.length>0){
					
					//console.log(rivergum.browser.home_packages[i]);
					filter_packname.push(rivergum.browser.home_packages[i][0]);//pre populate range filter
					facadesout = $.merge(hasfacade,facadesout);
					floorplanout = $.merge(hasfloorplan,floorplanout);
				}
			}

			//package name filter - update filter dom. only once
			if($('select[data-name=range] option').length<2){
				filter_packname = filter_packname.unique().sort();
				var sf_out = '<option value="-1">(All Homes)</option>';
				for(var iii=0;iii<filter_packname.length;iii++) sf_out += '<option>'+filter_packname[iii]+'</option>';
				$('select[data-name=range]').html(sf_out);
			}

			//console.log(floorplanout,facadesout);
		
		//ouput floorplans the facades to dom
			var floorplanout_html = '';
			for(var i=0;i<floorplanout.length;i++){
				floorplanout_html += '<li data-id="[id]" data-img="[lrgimg]"><div class="img"><img alt="" src="[img]"></div><div class="label">[name]<br />[stats]<div class="widthtxt">To suit [width]m wide block</div></div></li>'.replace('[id]',floorplanout[i][0]).replace('[name]',floorplanout[i][1]).replace('[img]',floorplanout[i][2][0]).replace('[lrgimg]',floorplanout[i][2][2]).replace('[stats]','<span class="sicon a'+floorplanout[i][4]+'"></span><span class="sicon b'+floorplanout[i][5]+'"></span><span class="sicon c'+floorplanout[i][6].replace('.','-')+'"></span><span class="sicon d'+floorplanout[i][7]+'"></span>').replace('[width]',floorplanout[i][14]);
			}
			$('#floorplan-flow ul').html(floorplanout_html);
			
			var facadeout_html = '';
			for(var i=0;i<facadesout.length;i++){
				facadeout_html += '<li data-id="[id]" data-img="[lrgimg]"><div class="img"><img alt="" src="[img]"></div><div class="label">[name]</div></li>'.replace('[id]',facadesout[i][0]).replace('[name]',facadesout[i][3]).replace('[img]',facadesout[i][2][0]).replace('[lrgimg]',facadesout[i][2][2]);//.replace('[facade]',facadesout[i][1]);
			}
			$('#facade-flow ul').html(facadeout_html);
			
			$('#nohomes').remove();
			if(floorplanout.length<1||facadesout.length<1){
				$('.slider').fadeOut();
				$('<div id="nohomes" style="position:absolute;width:730px;text-align:center;font-weight:bold;font-size:130%;height:30px;top:'+($('#facade-flow').offset().top+100)+'px;left:'+$('#facade-flow').offset().left+'px">No homes found that<br />match your criteria</div>').appendTo('body');
			}
			
	},
	
	//filter handler - other browsers
	load_browserdata_other:function(filterdata){
		//loop through and get available packages
		
			//get facade filters
			var fafilters = '';
			for(var i=0;i<filterdata[0].length;i++){
				fafilters += filterdata[0][i][2]+'|';
			}
		
			//check investment home filters
			if($('#hl-flow.inv').length){
				//get facade filters - note: edit key if position changed
				var ffilters = '';
				for(var i=0;i<filterdata[0].length;i++){
					ffilters += filterdata[0][i][2]+'|';
				}
				var available_packages = [],filter_suburb_options=[],filter_estate_options=[];
				for(var i=0;i<rivergum.browser.house_packages.length;i++){
				
					// -- edit keys below when changing filters - investment homes
					
					filter_suburb_options.push(rivergum.browser.house_packages[i][12]);
					filter_estate_options.push(rivergum.browser.house_packages[i][10]);
					
					var rent = Math.round(rivergum.browser.house_packages[i][9].replace(',','').replace('$',''));
					var price = Math.round(rivergum.browser.house_packages[i][11].replace(',','').replace('$',''));


					if(filterdata[1][2]!=='-1' && rivergum.browser.house_packages[i][12]!==filterdata[1][2]) continue;//suburb name
					
					if(filterdata[2][2]!=='-1' && rivergum.browser.house_packages[i][10]!==filterdata[2][2]) continue;//estate
					if(filterdata[3][2]!=='-1' && !(price>=filterdata[3][2].split('-')[0]*1&&price<=filterdata[3][2].split('-')[1]*1)) continue;//price
					if(filterdata[4][2]!=='-1' && !(rent>=filterdata[4][2].split('-')[0]*1&&rent<=filterdata[4][2].split('-')[1]*1)) continue;//rent

					//facade name
					if(fafilters.indexOf(rivergum.browser.house_packages[i][3][0].toLowerCase()+'|')<1) continue;

					var fp_filters = filterdata[5][1];

					// -- end edit
					
					if(
						(fp_filters[0][1]!==-1&& fp_filters[0][1]!==rivergum.browser.house_packages[i][6][0]*1)//stories
					||	(fp_filters[1][1]!==-1&& fp_filters[1][1]!==rivergum.browser.house_packages[i][6][1]*1)//beds
					||	(fp_filters[2][1]!==-1&& fp_filters[2][1]!==rivergum.browser.house_packages[i][6][2]*1)//living areas
					||	(fp_filters[3][1]!==-1&& fp_filters[3][1]!==rivergum.browser.house_packages[i][6][3]*1)//bathrooms
					||	(fp_filters[4][1]!==-1&& fp_filters[4][1]!==rivergum.browser.house_packages[i][6][4]*1)//car spaces
					) continue;

					available_packages.push(rivergum.browser.house_packages[i]);
					
				}

				//update suburb filter dom. only once
				if($('select[data-name=suburb] option').length<2){
					filter_suburb_options = filter_suburb_options.unique();
					var sf_out = '<option value="-1">(All Suburbs)</option>';
					for(var iii=0;iii<filter_suburb_options.length;iii++) sf_out += '<option>'+filter_suburb_options[iii]+'</option>';
					$('select[data-name=suburb]').html(sf_out);
				}
				//update estate filter dom. only once
				if($('select[data-name=estate] option').length<2){
					filter_estate_options = filter_estate_options.unique();
					var sf_out = '<option value="-1">(All Suburbs)</option>';
					for(var iii=0;iii<filter_estate_options.length;iii++) sf_out += '<option>'+filter_estate_options[iii]+'</option>';
					$('select[data-name=estate]').html(sf_out);
				}
				
				
			//check home & land filters
			}else{
				//get facade filters - note: edit key if position changed
				var ffilters = '';
				for(var i=0;i<filterdata[0].length;i++){
					ffilters += filterdata[0][i][2]+'|';
				}
				var available_packages = [],filter_suburb_options=[];
				for(var i=0;i<rivergum.browser.house_packages.length;i++){
				
					filter_suburb_options.push(rivergum.browser.house_packages[i][9]);
				
					// -- edit keys below when changing filters - home & land packages

					if(filterdata[1][2]!=='-1' && rivergum.browser.house_packages[i][9]!==filterdata[1][2]) continue;//suburb name


					var fp_filters = filterdata[2][1];

					//facade name
					//if(fafilters.indexOf(rivergum.browser.house_packages[i][3][0].toLowerCase()+'|')<1) continue;

					// -- end edit
					if(
						(fp_filters[0][1]!==-1&& fp_filters[0][1]!==rivergum.browser.house_packages[i][6][0]*1)//stories
					||	(fp_filters[1][1]!==-1&& fp_filters[1][1]!==rivergum.browser.house_packages[i][6][1]*1)//beds
					||	(fp_filters[2][1]!==-1&& fp_filters[2][1]!==rivergum.browser.house_packages[i][6][2]*1)//living areas
					||	(fp_filters[3][1]!==-1&& fp_filters[3][1]!==rivergum.browser.house_packages[i][6][3]*1)//bathrooms
					||	(fp_filters[4][1]!==-1&& fp_filters[4][1]!==rivergum.browser.house_packages[i][6][4]*1)//car spaces
					) continue;

					available_packages.push(rivergum.browser.house_packages[i]);

					
				}
			
				//update suburb filter dom. only once
				if($('select[data-name=suburb] option').length<2){
					filter_suburb_options = filter_suburb_options.unique();
					var sf_out = '<option value="-1">(All Suburbs)</option>';
					for(var iii=0;iii<filter_suburb_options.length;iii++) sf_out += '<option>'+filter_suburb_options[iii]+'</option>';
					$('select[data-name=suburb]').html(sf_out);
				}
			
			}
			
			var packageout_html = '';
			for(var i=0;i<available_packages.length;i++){
				packageout_html += '<li data-id="[id]" data-img="[lrgimg]"><div class="img"><img alt="" src="[img]"></div><div class="label">[name]<br /><br />[address]<br />[price]<br />[stats]</div></li>'.replace('[id]',available_packages[i][0]).replace('[name]',available_packages[i][3][1]).replace('[img]',available_packages[i][5][1][0]).replace('[address]',($('#hl-flow.inv').length)?available_packages[i][10]+'<br />'+available_packages[i][13]:available_packages[i][10]).replace('[lrgimg]',available_packages[i][5][1][2]).replace('[stats]','<span class="sicon a'+available_packages[i][6][1]+'"></span><span class="sicon b'+available_packages[i][6][2].replace('.','-')+'"></span><span class="sicon c'+available_packages[i][6][3].replace('.','-')+'"></span><span class="sicon d'+available_packages[i][6][4]+'"></span>').replace('[price]',available_packages[i][11]).replace('.00','');
			}
			$('#hl-flow ul').html(packageout_html);
			
			$('#nohomes').remove();
			if(available_packages.length<1){
				$('.slider').fadeOut();
				$('<div id="nohomes" style="position:absolute;width:730px;text-align:center;font-weight:bold;font-size:130%;height:30px;top:'+($('#hl-flow').offset().top+100)+'px;left:'+$('#hl-flow').offset().left+'px">No homes found that<br />match your criteria</div>').appendTo('body');
			}

	},
	

	//slider on update handle - home browser
	slider_update_browserhome:function(container,el,index){
		//console.log(el.parent().parent().attr('id'),el.parent().parent().attr('id')=='facade-flow');
		//handle facade update
		if(el.parent().parent().attr('id')=='facade-flow'){
			
			//update display
			$('#floorplan-flow li').removeClass('available').css('opacity',0.2).find('.label').hide();
			el.parent().find('li').removeClass('available').css('opacity',0.2).find('.label').hide();
			el.addClass('available');
			
			//get corresponding floorplan ids
			var floorplanids=[],facadeid = el.attr('data-id');
			for(var i=0;i<rivergum.browser.home_packages.length;i++){
				if(rivergum.browser.home_packages[i][1].indexOf('|'+facadeid+'|')>=0)
				floorplanids = floorplanids.concat(rivergum.browser.home_packages[i][2].split('|'));
			}
			//clean up array of ids
			floorplanids = $.grep(floorplanids,function(n,i){return(n);});

			//update display of items
			for(var i=0;i<floorplanids.length;i++){
				$('#floorplan-flow li[data-id='+floorplanids[i]*1+']').addClass('available').css('opacity',1).find('.label').show();
			}
			
			//slide to first image
			if(!$('#floorplan-flow li.a').hasClass('available'))
			$('#floorplan-flow li.available:first').addClass('available').css('opacity',1).find('.label').show().trigger('click');
			
			el.parent().find('li').css('opacity',1).find('.label').show();
			
		//handle floorplan update
		}else{

			//update display
			$('#facade-flow li').removeClass('available').css('opacity',0.2).find('.label').hide();
			el.parent().find('li').removeClass('available').css('opacity',0.2).find('.label').hide();
			el.addClass('available');
			
			//get corresponding floorplan ids
			var facadeids=[],floorplanid = el.attr('data-id');
			for(var i=0;i<rivergum.browser.home_packages.length;i++){
				if(rivergum.browser.home_packages[i][2].indexOf('|'+floorplanid+'|')>=0)
				facadeids = facadeids.concat(rivergum.browser.home_packages[i][1].split('|'));
			}
			//clean up array of ids
			facadeids = $.grep(facadeids,function(n,i){return(n);});

			//update display of items
			for(var i=0;i<facadeids.length;i++){
				$('#facade-flow li[data-id='+facadeids[i]*1+']').addClass('available').css('opacity',1).find('.label').show();
			}
			
			//slide to first image
			if(!$('#facade-flow li.a').hasClass('available'))
			$('#facade-flow li.available:first').addClass('available').css('opacity',1).find('.label').show().trigger('click');
			
			el.parent().find('li').css('opacity',1).find('.label').show();
		
		}


	},
	
	//slider on update handle - other browsers
	slider_update_browserother:function(container,el,index){
		
	},

	add_selection_homebrowser:function(data){
		var identifier = data[0]+'|'+data[1];
		
		var html = '<div data-id="'+identifier+'" class="house-selection"><div class="boxa"><div class="image"><img src="[facadeimg]" alt="" /></div><a class="del" href="#">Remove from selected list</a><a class="more" href="#">More Info</a></div>'
			+'<div class="boxb"><p class="name"><strong>[packname]</strong></p><p class="status">[packname2]</p>[price]<p class="stats">[stats]</p><p class="info">[floorplantext]</p></div>'
			+'<div class="boxc"><h3>Specifications</h3><table><tbody>[floorplanspecs]</tbody></table></div><div class="floorplan"><a href="#"><img src="[floorplanimg]" alt="" /></a></div></div>';
		html= html
			.replace('[facadeimg]',data[2])
			.replace('[packname]',data[3])
			.replace('[packname2]',data[13])
			.replace('[floorplanname]',data[5])
			.replace('[floorplantext]',data[6])
			.replace('[floorplanspecs]',data[7].replace('[split]',''))
			.replace('[floorplanimg]',data[8])
			.replace('[stats]','<span class="sicon a'+data[11][1]+'"></span><span class="sicon b'+data[11][2].replace('.','-')+'"></span><span class="sicon c'+data[11][3].replace('.','-')+'"></span><span class="sicon d'+data[11][4]+'"></span>')
			.replace('[price]',data[14]==''?'':'<p class="price">'+data[14]+'</p>')
			
		//already exists?
		var container = $('.house-selections div[data-id='+identifier+']');
		if(container.length>0) return;
		
		//insert into DOM
		$('.house-selections').prepend(html);
		$('.results .none').hide();
		var container = $('.house-selections div[data-id='+identifier+']');
		
		//add item into array
		rivergum.browser.items.push([data[0],data[1],data[4],data[5]]);

		// -- setup buttons
		//delete
		container.find('.del').click(function(){
			container.remove();
			for(var i=0;i<rivergum.browser.items.length;i++){
				if(rivergum.browser.items[i][0]==data[0]&&rivergum.browser.items[i][1]==data[1]){
					rivergum.browser.items.splice(i,1);
					break;
				}
			}
			if(rivergum.browser.items.length<1) $('.results .none').show();
			return false;
		});

		//more information
		container.find('.more,.floorplan a').click(function(){
			//console.log('more info - lightbox');
			$(this).dialog({
				content:('<div class="more-box"><div class="l"><img class="img" src="'+data[9]+'" alt="" /><p class="name">'+data[3]+'</p><p class="status">'+data[13]+'</p>[price]<p>[stats]</p>'+data[6]+'</div><div class="r"><h3>Specifications</h3><table><tbody>[specs]</tbody></table></div><div class="m"><img class="img" src="'+data[10]+'" alt="" /></div></div>')
				.replace('[stats]','<span class="sicon a'+data[11][1]+'"></span><span class="sicon b'+data[11][2].replace('.','-')+'"></span><span class="sicon c'+data[11][3].replace('.','-')+'"></span><span class="sicon d'+data[11][4]+'"></span>').replace('[specs]',data[7].replace('[split]','</tbody></table><h3 style="margin-top:30px">Land Specifications</h3><table><tbody>')).replace('[price]',data[14]==''?'':'<p class="price">'+data[14]+'</p>')
			});
			return false;
		});
	},

	add_selection_otherbrowser:function(data){
		var identifier = data[0];
		var html = '<div data-id="'+identifier+'" class="house-selection"><div class="boxa"><div class="image"><img src="[facadeimg]" alt="" /></div><a class="del" href="#">Remove from selected list</a><a class="more" href="#">More Info</a></div>'
			+'<div class="boxb"><p class="name"><strong>[packname]</strong></p><p class="status">[packname2]</p><p class="stats">[stats]</p><p class="info">[floorplantext]</p></div>'
			+'<div class="boxc"><h3>Specifications</h3><table><tbody>[floorplanspecs]</tbody></table>[file]</div><div class="floorplan"><a href="#"><img src="[floorplanimg]" alt="" /></a></div></div>';
		html= html
			.replace('[facadeimg]',data[1])
			.replace('[packname]',data[2])//Package Content Identifier

			.replace('[packname2]',data[3]+' '+data[4])//Floor Plan content Identifier, Facade Filter Name
			.replace('[floorplanname]',data[4])
			.replace('[floorplantext]',data[5])
			.replace('[floorplanspecs]',data[6].replace('[split]',''))
			.replace('[floorplanimg]',data[7])
			.replace('[file]',data[11]==''?'':'<br /><a style="color:green;margin-left:15px;display:inline-block;font-size:120%;" href="/'+data[11]+'">Download File</a>')
			//.replace('[floorplanwidth]',data[12])//this is just a copy of width found in specs ...at this stage
			.replace('[stats]','<span class="sicon a'+data[10][1]+'"></span><span class="sicon b'+data[10][2].replace('.','-')+'"></span><span class="sicon c'+data[10][3].replace('.','-')+'"></span><span class="sicon d'+data[10][4]+'"></span>');


		//already exists?
		var container = $('.house-selections div[data-id='+identifier+']');
		if(container.length>0) return;
		
		//insert into DOM
		$('.house-selections').prepend(html);
		$('.results .none').hide();
		var container = $('.house-selections div[data-id='+identifier+']');
		
		//add item into array
		rivergum.browser.items.push([true,data[0],data[2],data[3],data[4]]);

		// -- setup buttons
		//delete
		container.find('.del').click(function(){
			container.remove();
			for(var i=0;i<rivergum.browser.items.length;i++){
				if(rivergum.browser.items[i][0]==data[0]){
					rivergum.browser.items.splice(i,1);
					break;
				}
			}
			if(rivergum.browser.items.length<1) $('.results .none').show();
			return false;
		});

		//more information
		container.find('.more,.floorplan a').click(function(){
			//show more info lightbox
			rivergum.browser.otherbrowser_moreinfo_box($(this),data[0]);
			return false;
		/*
			$(this).dialog({
				content:('<div class="more-box"><div class="l"><img class="img" src="'+data[8]+'" alt="" /><p>[stats]</p><p class="name">'+data[2]+' - '+data[3]+'</p><p class="status">'+data[4]+'</p>'+data[5]+'</div><div class="r"><h3>Specifications</h3><table><tbody>'+data[6]+'</tbody></table></div><div class="m"><img class="img" src="'+data[9]+'" alt="" /></div></div>').replace('[stats]','<span class="sicon a'+data[10][1]+'"></span><span class="sicon b'+data[10][2].replace('.','-')+'"></span><span class="sicon c'+data[10][3].replace('.','-')+'"></span><span class="sicon d'+data[10][4]+'"></span>')
			});
			return false;
			*/
		});
	},
	otherbrowser_moreinfo_box:function(el,packageid){
				//get package data row
				for(var i=0;i<rivergum.browser.house_packages.length;i++){
					if(rivergum.browser.house_packages[i][0]==packageid){
						var package = rivergum.browser.house_packages[i];
						break;
					}
				}
			
				if(!packageid){return false;}

				data = [
					packageid,//packageid
					package[5][1][1],//facadeimage
					package[1],//packagename
					package[5][0],//facadename
					package[3][0],//floorplanname
					package[7],//floorplantext
					package[8],//floorplanspecs
					package[3][2][1],//floorplanimg
					
					package[5][1][2],//facade large image
					package[3][2][2],//floorplan large img
					
					[package[6][0],package[6][1],package[6][2],package[6][3],package[6][4],package[6][5]]//house specs ie bathrooms etc.
					
					,(/*select correct date 'coz the browsers are a missmatch here*/package[13]?package[13]:package[10])//address
					,(/*select only inv home to show rent*/package[13]?('<br /><br />Rent Yield: $'+package[9].replace('.00','')+'/wk'):'')+'<br />Price: '+package[11].replace('.00','')
				];
				var file = /*select correct file 'coz the browsers are a missmatch here*/package[13]?package[14]:package[12];
				file = file==''?'':'<br /><a style="color:green;" href="/'+file+'">Download File</a>';
				
		el.dialog({
				content:('<div class="more-box"><div class="l"><img class="img" src="'+data[8]+'" alt="" /><p class="name">'+data[2]+'</p><p class="status">'+data[3]+' '+data[4]+'</p><p>[stats]</p>'+data[5]+'</div><div class="r"><h3>Address</h3><p>'+data[11]+data[12]+'<br /><br /></p><br /><h3>Specifications</h3><table><tbody>[specs]</tbody></table>[file]</div><div class="m"><img class="img" src="'+data[9]+'" alt="" /></div></div>').replace('[stats]','<span class="sicon a'+data[10][1]+'"></span><span class="sicon b'+data[10][2].replace('.','-')+'"></span><span class="sicon c'+data[10][3].replace('.','-')+'"></span><span class="sicon d'+data[10][4]+'"></span>').replace('[specs]',data[6].replace('[split]','</tbody></table><h3 style="margin-top:30px">Land Specifications</h3><table><tbody>')).replace('[file]',file)
		});
	
	}
	




}}
$('document').ready(function(){rivergum.init();});





/**
* jQuery Cookie plugin
*
* Copyright (c) 2010 Klaus Hartl (stilbuero.de)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
jQuery.cookie = function (key, value, options) {
    // key and at least value given, set cookie...
    if (arguments.length > 1 && String(value) !== "[object Object]") {
        options = jQuery.extend({}, options);

        if (value === null || value === undefined) {
            options.expires = -1;
        }

        if (typeof options.expires === 'number') {
            var days = options.expires, t = options.expires = new Date();
            t.setDate(t.getDate() + days);
        }
        
        value = String(value);
        
        return (document.cookie = [
            encodeURIComponent(key), '=',
            options.raw ? value : encodeURIComponent(value),
            options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
            options.path ? '; path=' + options.path : '',
            options.domain ? '; domain=' + options.domain : '',
            options.secure ? '; secure' : ''
        ].join(''));
    }

    // key and possibly options given, get cookie...
    options = value || {};
    var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
    return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};


//Cycle
(function($){var ver="2.99";if($.support==undefined){$.support={opacity:!($.browser.msie)};}function debug(s){$.fn.cycle.debug&&log(s);}function log(){window.console&&console.log&&console.log("[cycle] "+Array.prototype.join.call(arguments," "));}$.expr[":"].paused=function(el){return el.cyclePause;};$.fn.cycle=function(options,arg2){var o={s:this.selector,c:this.context};if(this.length===0&&options!="stop"){if(!$.isReady&&o.s){log("DOM not ready, queuing slideshow");$(function(){$(o.s,o.c).cycle(options,arg2);});return this;}log("terminating; zero elements found by selector"+($.isReady?"":" (DOM not ready)"));return this;}return this.each(function(){var opts=handleArguments(this,options,arg2);if(opts===false){return;}opts.updateActivePagerLink=opts.updateActivePagerLink||$.fn.cycle.updateActivePagerLink;if(this.cycleTimeout){clearTimeout(this.cycleTimeout);}this.cycleTimeout=this.cyclePause=0;var $cont=$(this);var $slides=opts.slideExpr?$(opts.slideExpr,this):$cont.children();var els=$slides.get();if(els.length<2){log("terminating; too few slides: "+els.length);return;}var opts2=buildOptions($cont,$slides,els,opts,o);if(opts2===false){return;}var startTime=opts2.continuous?10:getTimeout(els[opts2.currSlide],els[opts2.nextSlide],opts2,!opts2.backwards);if(startTime){startTime+=(opts2.delay||0);if(startTime<10){startTime=10;}debug("first timeout: "+startTime);this.cycleTimeout=setTimeout(function(){go(els,opts2,0,!opts.backwards);},startTime);}});};function handleArguments(cont,options,arg2){if(cont.cycleStop==undefined){cont.cycleStop=0;}if(options===undefined||options===null){options={};}if(options.constructor==String){switch(options){case"destroy":case"stop":var opts=$(cont).data("cycle.opts");if(!opts){return false;}cont.cycleStop++;if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);}cont.cycleTimeout=0;$(cont).removeData("cycle.opts");if(options=="destroy"){destroy(opts);}return false;case"toggle":cont.cyclePause=(cont.cyclePause===1)?0:1;checkInstantResume(cont.cyclePause,arg2,cont);return false;case"pause":cont.cyclePause=1;return false;case"resume":cont.cyclePause=0;checkInstantResume(false,arg2,cont);return false;case"prev":case"next":var opts=$(cont).data("cycle.opts");if(!opts){log('options not found, "prev/next" ignored');return false;}$.fn.cycle[options](opts);return false;default:options={fx:options};}return options;}else{if(options.constructor==Number){var num=options;options=$(cont).data("cycle.opts");if(!options){log("options not found, can not advance slide");return false;}if(num<0||num>=options.elements.length){log("invalid slide index: "+num);return false;}options.nextSlide=num;if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);cont.cycleTimeout=0;}if(typeof arg2=="string"){options.oneTimeFx=arg2;}go(options.elements,options,1,num>=options.currSlide);return false;}}return options;function checkInstantResume(isPaused,arg2,cont){if(!isPaused&&arg2===true){var options=$(cont).data("cycle.opts");if(!options){log("options not found, can not resume");return false;}if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);cont.cycleTimeout=0;}go(options.elements,options,1,!options.backwards);}}}function removeFilter(el,opts){if(!$.support.opacity&&opts.cleartype&&el.style.filter){try{el.style.removeAttribute("filter");}catch(smother){}}}function destroy(opts){if(opts.next){$(opts.next).unbind(opts.prevNextEvent);}if(opts.prev){$(opts.prev).unbind(opts.prevNextEvent);}if(opts.pager||opts.pagerAnchorBuilder){$.each(opts.pagerAnchors||[],function(){this.unbind().remove();});}opts.pagerAnchors=null;if(opts.destroy){opts.destroy(opts);}}function buildOptions($cont,$slides,els,options,o){var opts=$.extend({},$.fn.cycle.defaults,options||{},$.metadata?$cont.metadata():$.meta?$cont.data():{});if(opts.autostop){opts.countdown=opts.autostopCount||els.length;}var cont=$cont[0];$cont.data("cycle.opts",opts);opts.$cont=$cont;opts.stopCount=cont.cycleStop;opts.elements=els;opts.before=opts.before?[opts.before]:[];opts.after=opts.after?[opts.after]:[];if(!$.support.opacity&&opts.cleartype){opts.after.push(function(){removeFilter(this,opts);});}if(opts.continuous){opts.after.push(function(){go(els,opts,0,!opts.backwards);});}saveOriginalOpts(opts);if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){clearTypeFix($slides);}if($cont.css("position")=="static"){$cont.css("position","relative");}if(opts.width){$cont.width(opts.width);}if(opts.height&&opts.height!="auto"){$cont.height(opts.height);}if(opts.startingSlide){opts.startingSlide=parseInt(opts.startingSlide);}else{if(opts.backwards){opts.startingSlide=els.length-1;}}if(opts.random){opts.randomMap=[];for(var i=0;i<els.length;i++){opts.randomMap.push(i);}opts.randomMap.sort(function(a,b){return Math.random()-0.5;});opts.randomIndex=1;opts.startingSlide=opts.randomMap[1];}else{if(opts.startingSlide>=els.length){opts.startingSlide=0;}}opts.currSlide=opts.startingSlide||0;var first=opts.startingSlide;$slides.css({position:"absolute",top:0,left:0}).hide().each(function(i){var z;if(opts.backwards){z=first?i<=first?els.length+(i-first):first-i:els.length-i;}else{z=first?i>=first?els.length-(i-first):first-i:els.length-i;}$(this).css("z-index",z);});$(els[first]).css("opacity",1).show();removeFilter(els[first],opts);if(opts.fit&&opts.width){$slides.width(opts.width);}if(opts.fit&&opts.height&&opts.height!="auto"){$slides.height(opts.height);}var reshape=opts.containerResize&&!$cont.innerHeight();if(reshape){var maxw=0,maxh=0;for(var j=0;j<els.length;j++){var $e=$(els[j]),e=$e[0],w=$e.outerWidth(),h=$e.outerHeight();if(!w){w=e.offsetWidth||e.width||$e.attr("width");}if(!h){h=e.offsetHeight||e.height||$e.attr("height");}maxw=w>maxw?w:maxw;maxh=h>maxh?h:maxh;}if(maxw>0&&maxh>0){$cont.css({width:maxw+"px",height:maxh+"px"});}}if(opts.pause){$cont.hover(function(){this.cyclePause++;},function(){this.cyclePause--;});}if(supportMultiTransitions(opts)===false){return false;}var requeue=false;options.requeueAttempts=options.requeueAttempts||0;$slides.each(function(){var $el=$(this);this.cycleH=(opts.fit&&opts.height)?opts.height:($el.height()||this.offsetHeight||this.height||$el.attr("height")||0);this.cycleW=(opts.fit&&opts.width)?opts.width:($el.width()||this.offsetWidth||this.width||$el.attr("width")||0);if($el.is("img")){var loadingIE=($.browser.msie&&this.cycleW==28&&this.cycleH==30&&!this.complete);var loadingFF=($.browser.mozilla&&this.cycleW==34&&this.cycleH==19&&!this.complete);var loadingOp=($.browser.opera&&((this.cycleW==42&&this.cycleH==19)||(this.cycleW==37&&this.cycleH==17))&&!this.complete);var loadingOther=(this.cycleH==0&&this.cycleW==0&&!this.complete);if(loadingIE||loadingFF||loadingOp||loadingOther){if(o.s&&opts.requeueOnImageNotLoaded&&++options.requeueAttempts<100){log(options.requeueAttempts," - img slide not loaded, requeuing slideshow: ",this.src,this.cycleW,this.cycleH);setTimeout(function(){$(o.s,o.c).cycle(options);},opts.requeueTimeout);requeue=true;return false;}else{log("could not determine size of image: "+this.src,this.cycleW,this.cycleH);}}}return true;});if(requeue){return false;}opts.cssBefore=opts.cssBefore||{};opts.cssAfter=opts.cssAfter||{};opts.cssFirst=opts.cssFirst||{};opts.animIn=opts.animIn||{};opts.animOut=opts.animOut||{};$slides.not(":eq("+first+")").css(opts.cssBefore);$($slides[first]).css(opts.cssFirst);if(opts.timeout){opts.timeout=parseInt(opts.timeout);if(opts.speed.constructor==String){opts.speed=$.fx.speeds[opts.speed]||parseInt(opts.speed);}if(!opts.sync){opts.speed=opts.speed/2;}var buffer=opts.fx=="none"?0:opts.fx=="shuffle"?500:250;while((opts.timeout-opts.speed)<buffer){opts.timeout+=opts.speed;}}if(opts.easing){opts.easeIn=opts.easeOut=opts.easing;}if(!opts.speedIn){opts.speedIn=opts.speed;}if(!opts.speedOut){opts.speedOut=opts.speed;}opts.slideCount=els.length;opts.currSlide=opts.lastSlide=first;if(opts.random){if(++opts.randomIndex==els.length){opts.randomIndex=0;}opts.nextSlide=opts.randomMap[opts.randomIndex];}else{if(opts.backwards){opts.nextSlide=opts.startingSlide==0?(els.length-1):opts.startingSlide-1;}else{opts.nextSlide=opts.startingSlide>=(els.length-1)?0:opts.startingSlide+1;}}if(!opts.multiFx){var init=$.fn.cycle.transitions[opts.fx];if($.isFunction(init)){init($cont,$slides,opts);}else{if(opts.fx!="custom"&&!opts.multiFx){log("unknown transition: "+opts.fx,"; slideshow terminating");return false;}}}var e0=$slides[first];if(opts.before.length){opts.before[0].apply(e0,[e0,e0,opts,true]);}if(opts.after.length){opts.after[0].apply(e0,[e0,e0,opts,true]);}if(opts.next){$(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,1);});}if(opts.prev){$(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,0);});}if(opts.pager||opts.pagerAnchorBuilder){buildPager(els,opts);}exposeAddSlide(opts,els);return opts;}function saveOriginalOpts(opts){opts.original={before:[],after:[]};opts.original.cssBefore=$.extend({},opts.cssBefore);opts.original.cssAfter=$.extend({},opts.cssAfter);opts.original.animIn=$.extend({},opts.animIn);opts.original.animOut=$.extend({},opts.animOut);$.each(opts.before,function(){opts.original.before.push(this);});$.each(opts.after,function(){opts.original.after.push(this);});}function supportMultiTransitions(opts){var i,tx,txs=$.fn.cycle.transitions;if(opts.fx.indexOf(",")>0){opts.multiFx=true;opts.fxs=opts.fx.replace(/\s*/g,"").split(",");for(i=0;i<opts.fxs.length;i++){var fx=opts.fxs[i];tx=txs[fx];if(!tx||!txs.hasOwnProperty(fx)||!$.isFunction(tx)){log("discarding unknown transition: ",fx);opts.fxs.splice(i,1);i--;}}if(!opts.fxs.length){log("No valid transitions named; slideshow terminating.");return false;}}else{if(opts.fx=="all"){opts.multiFx=true;opts.fxs=[];for(p in txs){tx=txs[p];if(txs.hasOwnProperty(p)&&$.isFunction(tx)){opts.fxs.push(p);}}}}if(opts.multiFx&&opts.randomizeEffects){var r1=Math.floor(Math.random()*20)+30;for(i=0;i<r1;i++){var r2=Math.floor(Math.random()*opts.fxs.length);opts.fxs.push(opts.fxs.splice(r2,1)[0]);}debug("randomized fx sequence: ",opts.fxs);}return true;}function exposeAddSlide(opts,els){opts.addSlide=function(newSlide,prepend){var $s=$(newSlide),s=$s[0];if(!opts.autostopCount){opts.countdown++;}els[prepend?"unshift":"push"](s);if(opts.els){opts.els[prepend?"unshift":"push"](s);}opts.slideCount=els.length;$s.css("position","absolute");$s[prepend?"prependTo":"appendTo"](opts.$cont);if(prepend){opts.currSlide++;opts.nextSlide++;}if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){clearTypeFix($s);}if(opts.fit&&opts.width){$s.width(opts.width);}if(opts.fit&&opts.height&&opts.height!="auto"){$s.height(opts.height);}s.cycleH=(opts.fit&&opts.height)?opts.height:$s.height();s.cycleW=(opts.fit&&opts.width)?opts.width:$s.width();$s.css(opts.cssBefore);if(opts.pager||opts.pagerAnchorBuilder){$.fn.cycle.createPagerAnchor(els.length-1,s,$(opts.pager),els,opts);}if($.isFunction(opts.onAddSlide)){opts.onAddSlide($s);}else{$s.hide();}};}$.fn.cycle.resetState=function(opts,fx){fx=fx||opts.fx;opts.before=[];opts.after=[];opts.cssBefore=$.extend({},opts.original.cssBefore);opts.cssAfter=$.extend({},opts.original.cssAfter);opts.animIn=$.extend({},opts.original.animIn);opts.animOut=$.extend({},opts.original.animOut);opts.fxFn=null;$.each(opts.original.before,function(){opts.before.push(this);});$.each(opts.original.after,function(){opts.after.push(this);});var init=$.fn.cycle.transitions[fx];if($.isFunction(init)){init(opts.$cont,$(opts.elements),opts);}};function go(els,opts,manual,fwd){if(manual&&opts.busy&&opts.manualTrump){debug("manualTrump in go(), stopping active transition");$(els).stop(true,true);opts.busy=0;}if(opts.busy){debug("transition active, ignoring new tx request");return;}var p=opts.$cont[0],curr=els[opts.currSlide],next=els[opts.nextSlide];if(p.cycleStop!=opts.stopCount||p.cycleTimeout===0&&!manual){return;}if(!manual&&!p.cyclePause&&!opts.bounce&&((opts.autostop&&(--opts.countdown<=0))||(opts.nowrap&&!opts.random&&opts.nextSlide<opts.currSlide))){if(opts.end){opts.end(opts);}return;}var changed=false;if((manual||!p.cyclePause)&&(opts.nextSlide!=opts.currSlide)){changed=true;var fx=opts.fx;curr.cycleH=curr.cycleH||$(curr).height();curr.cycleW=curr.cycleW||$(curr).width();next.cycleH=next.cycleH||$(next).height();next.cycleW=next.cycleW||$(next).width();if(opts.multiFx){if(opts.lastFx==undefined||++opts.lastFx>=opts.fxs.length){opts.lastFx=0;}fx=opts.fxs[opts.lastFx];opts.currFx=fx;}if(opts.oneTimeFx){fx=opts.oneTimeFx;opts.oneTimeFx=null;}$.fn.cycle.resetState(opts,fx);if(opts.before.length){$.each(opts.before,function(i,o){if(p.cycleStop!=opts.stopCount){return;}o.apply(next,[curr,next,opts,fwd]);});}var after=function(){opts.busy=0;$.each(opts.after,function(i,o){if(p.cycleStop!=opts.stopCount){return;}o.apply(next,[curr,next,opts,fwd]);});};debug("tx firing("+fx+"); currSlide: "+opts.currSlide+"; nextSlide: "+opts.nextSlide);opts.busy=1;if(opts.fxFn){opts.fxFn(curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}else{if($.isFunction($.fn.cycle[opts.fx])){$.fn.cycle[opts.fx](curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}else{$.fn.cycle.custom(curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}}}if(changed||opts.nextSlide==opts.currSlide){opts.lastSlide=opts.currSlide;if(opts.random){opts.currSlide=opts.nextSlide;if(++opts.randomIndex==els.length){opts.randomIndex=0;}opts.nextSlide=opts.randomMap[opts.randomIndex];if(opts.nextSlide==opts.currSlide){opts.nextSlide=(opts.currSlide==opts.slideCount-1)?0:opts.currSlide+1;}}else{if(opts.backwards){var roll=(opts.nextSlide-1)<0;if(roll&&opts.bounce){opts.backwards=!opts.backwards;opts.nextSlide=1;opts.currSlide=0;}else{opts.nextSlide=roll?(els.length-1):opts.nextSlide-1;opts.currSlide=roll?0:opts.nextSlide+1;}}else{var roll=(opts.nextSlide+1)==els.length;if(roll&&opts.bounce){opts.backwards=!opts.backwards;opts.nextSlide=els.length-2;opts.currSlide=els.length-1;}else{opts.nextSlide=roll?0:opts.nextSlide+1;opts.currSlide=roll?els.length-1:opts.nextSlide-1;}}}}if(changed&&opts.pager){opts.updateActivePagerLink(opts.pager,opts.currSlide,opts.activePagerClass);}var ms=0;if(opts.timeout&&!opts.continuous){ms=getTimeout(els[opts.currSlide],els[opts.nextSlide],opts,fwd);}else{if(opts.continuous&&p.cyclePause){ms=10;}}if(ms>0){p.cycleTimeout=setTimeout(function(){go(els,opts,0,!opts.backwards);},ms);}}$.fn.cycle.updateActivePagerLink=function(pager,currSlide,clsName){$(pager).each(function(){$(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);});};function getTimeout(curr,next,opts,fwd){if(opts.timeoutFn){var t=opts.timeoutFn.call(curr,curr,next,opts,fwd);while(opts.fx!="none"&&(t-opts.speed)<250){t+=opts.speed;}debug("calculated timeout: "+t+"; speed: "+opts.speed);if(t!==false){return t;}}return opts.timeout;}$.fn.cycle.next=function(opts){advance(opts,1);};$.fn.cycle.prev=function(opts){advance(opts,0);};function advance(opts,moveForward){var val=moveForward?1:-1;var els=opts.elements;var p=opts.$cont[0],timeout=p.cycleTimeout;if(timeout){clearTimeout(timeout);p.cycleTimeout=0;}if(opts.random&&val<0){opts.randomIndex--;if(--opts.randomIndex==-2){opts.randomIndex=els.length-2;}else{if(opts.randomIndex==-1){opts.randomIndex=els.length-1;}}opts.nextSlide=opts.randomMap[opts.randomIndex];}else{if(opts.random){opts.nextSlide=opts.randomMap[opts.randomIndex];}else{opts.nextSlide=opts.currSlide+val;if(opts.nextSlide<0){if(opts.nowrap){return false;}opts.nextSlide=els.length-1;}else{if(opts.nextSlide>=els.length){if(opts.nowrap){return false;}opts.nextSlide=0;}}}}var cb=opts.onPrevNextEvent||opts.prevNextClick;if($.isFunction(cb)){cb(val>0,opts.nextSlide,els[opts.nextSlide]);}go(els,opts,1,moveForward);return false;}function buildPager(els,opts){var $p=$(opts.pager);$.each(els,function(i,o){$.fn.cycle.createPagerAnchor(i,o,$p,els,opts);});opts.updateActivePagerLink(opts.pager,opts.startingSlide,opts.activePagerClass);}$.fn.cycle.createPagerAnchor=function(i,el,$p,els,opts){var a;if($.isFunction(opts.pagerAnchorBuilder)){a=opts.pagerAnchorBuilder(i,el);debug("pagerAnchorBuilder("+i+", el) returned: "+a);}else{a='<a href="#">'+(i+1)+"</a>";}if(!a){return;}var $a=$(a);if($a.parents("body").length===0){var arr=[];if($p.length>1){$p.each(function(){var $clone=$a.clone(true);$(this).append($clone);arr.push($clone[0]);});$a=$(arr);}else{$a.appendTo($p);}}opts.pagerAnchors=opts.pagerAnchors||[];opts.pagerAnchors.push($a);$a.bind(opts.pagerEvent,function(e){e.preventDefault();opts.nextSlide=i;var p=opts.$cont[0],timeout=p.cycleTimeout;if(timeout){clearTimeout(timeout);p.cycleTimeout=0;}var cb=opts.onPagerEvent||opts.pagerClick;if($.isFunction(cb)){cb(opts.nextSlide,els[opts.nextSlide]);}go(els,opts,1,opts.currSlide<i);});if(!/^click/.test(opts.pagerEvent)&&!opts.allowPagerClickBubble){$a.bind("click.cycle",function(){return false;});}if(opts.pauseOnPagerHover){$a.hover(function(){opts.$cont[0].cyclePause++;},function(){opts.$cont[0].cyclePause--;});}};$.fn.cycle.hopsFromLast=function(opts,fwd){var hops,l=opts.lastSlide,c=opts.currSlide;if(fwd){hops=c>l?c-l:opts.slideCount-l;}else{hops=c<l?l-c:l+opts.slideCount-c;}return hops;};function clearTypeFix($slides){debug("applying clearType background-color hack");function hex(s){s=parseInt(s).toString(16);return s.length<2?"0"+s:s;}function getBg(e){for(;e&&e.nodeName.toLowerCase()!="html";e=e.parentNode){var v=$.css(e,"background-color");if(v&&v.indexOf("rgb")>=0){var rgb=v.match(/\d+/g);return"#"+hex(rgb[0])+hex(rgb[1])+hex(rgb[2]);}if(v&&v!="transparent"){return v;}}return"#ffffff";}$slides.each(function(){$(this).css("background-color",getBg(this));});}$.fn.cycle.commonReset=function(curr,next,opts,w,h,rev){$(opts.elements).not(curr).hide();if(typeof opts.cssBefore.opacity=="undefined"){opts.cssBefore.opacity=1;}opts.cssBefore.display="block";if(opts.slideResize&&w!==false&&next.cycleW>0){opts.cssBefore.width=next.cycleW;}if(opts.slideResize&&h!==false&&next.cycleH>0){opts.cssBefore.height=next.cycleH;}opts.cssAfter=opts.cssAfter||{};opts.cssAfter.display="none";$(curr).css("zIndex",opts.slideCount+(rev===true?1:0));$(next).css("zIndex",opts.slideCount+(rev===true?0:1));};$.fn.cycle.custom=function(curr,next,opts,cb,fwd,speedOverride){var $l=$(curr),$n=$(next);var speedIn=opts.speedIn,speedOut=opts.speedOut,easeIn=opts.easeIn,easeOut=opts.easeOut;$n.css(opts.cssBefore);if(speedOverride){if(typeof speedOverride=="number"){speedIn=speedOut=speedOverride;}else{speedIn=speedOut=1;}easeIn=easeOut=null;}var fn=function(){$n.animate(opts.animIn,speedIn,easeIn,function(){cb();});};$l.animate(opts.animOut,speedOut,easeOut,function(){$l.css(opts.cssAfter);if(!opts.sync){fn();}});if(opts.sync){fn();}};$.fn.cycle.transitions={fade:function($cont,$slides,opts){$slides.not(":eq("+opts.currSlide+")").css("opacity",0);opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.cssBefore.opacity=0;});opts.animIn={opacity:1};opts.animOut={opacity:0};opts.cssBefore={top:0,left:0};}};$.fn.cycle.ver=function(){return ver;};$.fn.cycle.defaults={activePagerClass:"activeSlide",after:null,allowPagerClickBubble:false,animIn:null,animOut:null,autostop:0,autostopCount:0,backwards:false,before:null,cleartype:!$.support.opacity,cleartypeNoBg:false,containerResize:1,continuous:0,cssAfter:null,cssBefore:null,delay:0,easeIn:null,easeOut:null,easing:null,end:null,fastOnEvent:0,fit:0,fx:"fade",fxFn:null,height:"auto",manualTrump:true,next:null,nowrap:0,onPagerEvent:null,onPrevNextEvent:null,pager:null,pagerAnchorBuilder:null,pagerEvent:"click.cycle",pause:0,pauseOnPagerHover:0,prev:null,prevNextEvent:"click.cycle",random:0,randomizeEffects:1,requeueOnImageNotLoaded:true,requeueTimeout:250,rev:0,shuffle:null,slideExpr:null,slideResize:1,speed:1000,speedIn:null,speedOut:null,startingSlide:0,sync:1,timeout:4000,timeoutFn:null,updateActivePagerLink:null};})(jQuery);
// redefine Cycle's updateActivePagerLink function 
$.fn.cycle.updateActivePagerLink = function(pager, currSlideIndex) { 
    $(pager).find('li a').removeClass('a') .filter('a:eq('+currSlideIndex+')').addClass('a'); 
}; 



/*
	Custom Dialog/Lightbox box
*/
$.fn.dialog = function(options){
	var options   = options || {};

	//Add box to DOM Once
	if($('#dialogbox').length<1){ $('<div id="dialogbox"><div id="dialogbox-content"></div></div><div id="dialogbox-overlay"></div><div id="dialogbox-close"><a href="">&times; Close</a></div>').appendTo($('body'));$(window).resize(onresize);$(window).scroll(onresize);}


	var dialogbox = $('#dialogbox');
	var content = $('#dialogbox-content');
	var overlay = $('#dialogbox-overlay');
	var close_button = $('#dialogbox-close');
	options.hide_close = options.hide_close ? true : false;

	//Element to load from - handle one element
	var element = $(this).eq(0);

	//load dialog box
	load();

	function onresize(){
		if(!$('#dialogbox:visible').length) return;
		var size = _getPageSize();
		var scroll = _getPageScroll();
		overlay.css({width:size.windowWidth,height:size.windowHeight});
		var position = size.windowHeight<dialogbox.height()?'absolute':'fixed';
		var dialogbox_top = size.windowHeight<dialogbox.height()?(position=='absolute'?dialogbox.offset().top:scroll.y+15):(size.windowHeight/2)-(dialogbox.height()/2);
		dialogbox.css({top:dialogbox_top,position:position,left:size.windowWidth/2-(dialogbox.width()/2)});
		var closeX = dialogbox.offset().left+dialogbox.width()-close_button.width();
		close_button.css({top:dialogbox_top-close_button.height(),left:closeX,position:position});
	};
	
	function load(){
		overlay.css('opacity',0.8).show();
		overlay.unbind('click');//.click(function(){	if(!options.hide_close){ $.dialog_close();}	});
		close_button.unbind('click').click(function(){	$.dialog_close();return false;	}).hide();
		content.hide();
		
		//size to element position (for zoom effect)
		if(dialogbox.filter(':hidden').length){
			var scroll = _getPageScroll();
			dialogbox.css({width:element.width(),height:element.height(),top:element.offset().top-scroll.y,left:element.offset().left-scroll.x});
		}

		//hide flash (cannot be overlayed)
		$('embed').css('visibility','hidden');
		
		//if is image is supplied & set max width/height
		if(options.image){
			
			//Show Loading Icon
			options.hide_close = 1;
			loaded('<div class="loading">loading...</div>');
			options.hide_close = 0;
			html = '<img class="box-img" src="'+options.image+'" />';
			$(html).load(function(){
				close_button.hide();
				//set max width / height - return new values
				var newsize = _newsize($(this).attr('width'),$(this).attr('height'),800,1000);
				
				html = $(html).attr({width:newsize.width,height:newsize.height}).click(function(){close();});
				loaded(html);
			});
		//if html content is supplied
		}else if(options.content){
			loaded();
		}
	};
	function loaded(html){
		var html = html || options.content;
		dialogbox.show();

		//get content width/height & limit to max width
		//var height = $(html).attr('height') || parseInt($(html).css('height')) || options.width || 100;
		//var width = $(html).attr('width') || parseInt($(html).css('width')) || options.height || 100;
		
		//change width to actual content if we can
		content.hide().html(html);
		
		var width = options.width || content.width() || 300;
		var height = options.height || content.height() || 300;
		
		//Animate to new position
		var size = _getPageSize();
		var scroll = _getPageScroll();
		var dialogbox_top = size.windowHeight<height?scroll.y+15:(size.windowHeight/2)-(height/2);
		var position = size.windowHeight<height?'absolute':'fixed';
		dialogbox.css({position:position});
		close_button.hide();
		dialogbox.stop().animate({width:width,height:height,top:dialogbox_top,left:size.windowWidth/2-(width/2)},300,function(){
			content.fadeIn();
			
			//position and show close button
			var closeX = dialogbox.offset().left+dialogbox.width()-close_button.width();
			var closeY = dialogbox.offset().top-close_button.height();
			var closePosition = dialogbox.css('position');
			if(!options.hide_close){
				close_button.css({left:closeX,top:closeY,position:closePosition}).fadeIn();
			}
			
			//trigger callback function
			if(options.callback) options.callback(this);
			onresize();
		});

	};
	
	$.dialog_close = function(){
		overlay.hide();
		dialogbox.stop().hide();
		close_button.hide();
		$('embed').css('visibility','visible');
	};
	$.dialog_update_size = function(){
    if(!$('#dialogbox:visible').length) return false;
		var width = $('#dialogbox-content').width();
		var height = $('#dialogbox-content').height();
		//Animate to new position
		var size = _getPageSize();
		var scroll = _getPageScroll();
		var dialogbox_top = size.windowHeight<height?scroll.y+15:(size.windowHeight/2)-(height/2);
		var position = size.windowHeight<height?'absolute':'fixed';
		dialogbox.css({position:position});
		dialogbox.animate({width:width,height:height,top:dialogbox_top,left:600-(width/2)},function(){
			onresize();
		});
	};
	
	/**
	 * getPageSize() by quirksmode.com
	 */
	function _getPageSize() {
		var xScroll, yScroll;
		if (window.innerHeight && window.scrollMaxY) {	
			xScroll = window.innerWidth + window.scrollMaxX;
			yScroll = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}
		var windowWidth, windowHeight;
		if (self.innerHeight) {	// all except Explorer
			if(document.documentElement.clientWidth){
				windowWidth = document.documentElement.clientWidth; 
			} else {
				windowWidth = self.innerWidth;
			}
			windowHeight = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else if (document.body) { // other Explorers
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}	
		// for small pages with total height less then height of the viewport
		if(yScroll < windowHeight){
			pageHeight = windowHeight;
		} else { 
			pageHeight = yScroll;
		}
		// for small pages with total width less then width of the viewport
		if(xScroll < windowWidth){	
			pageWidth = xScroll;		
		} else {
			pageWidth = windowWidth;
		}
		return {
			width:pageWidth,
			height:pageHeight,
			windowWidth:windowWidth,
			windowHeight:windowHeight
		};
	};

	/*
	getPageScroll() by quirksmode.com
	 */
	function _getPageScroll() {
		var xScroll, yScroll;
		if (self.pageYOffset) {
			yScroll = self.pageYOffset;
			xScroll = self.pageXOffset;
		} else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
			yScroll = document.documentElement.scrollTop;
			xScroll = document.documentElement.scrollLeft;
		} else if (document.body) {// all other Explorers
			yScroll = document.body.scrollTop;
			xScroll = document.body.scrollLeft;	
		}
		return {
			x:xScroll,
			y:yScroll
		};
	};
	/*
	resize values by paul collett
	 */
	function _newsize(currentWidth,currentHeight,maxWidth,maxHeight){
		var ratioWidth = maxWidth/currentWidth;
		var ratioHeight = maxHeight/currentHeight;
		
		if(currentWidth>currentHeight){//landscape
		    var newWidth = maxWidth;
		    var newHeight = Math.ceil(currentHeight*ratioWidth);
		}else{//portarait or correct ratio
		    var newHeight = maxHeight;
		    var newWidth = Math.ceil(currentWidth*ratioHeight);
		}	
		return {width:newWidth,height:newHeight};	
	}

}

//provide a unique function for arrays
/*
Array.prototype.unique = function( b ) {
 var a = [], i, l = this.length;
 for( i=0; i<l; i++ ) {
  if( a.indexOf( this[i], 0, b ) < 0 ) { if(this[i]==''){ continue; } a.push( this[i] ); }
 }
 return a;
};
*/
Array.prototype.unique =
  function() {
    var a = [];
    var l = this.length;
    for(var i=0; i<l; i++) {
      for(var j=i+1; j<l; j++) {
        // If this[i] is found later in the array
        if (this[i] === this[j])
          j = ++i;
      }
      if(this[i]==''){ continue; }
      a.push(this[i]);
    }
    return a;
  };

//make sure loggin ain't cause some probz
if (typeof(window["console"]) == "undefined"){ console={log:function(){}} }


//get obj from jquery seraijkkslse of a form
(function($){
$.unserialize = function(serializedString){
var str = unescape(decodeURI(serializedString.replace(/\+/gi,' ')));
var pairs = str.split('&');
var obj = {}, p, idx, val;
for (var i=0, n=pairs.length; i < n; i++) {
p = pairs[i].split('=');
idx = p[0];

if (idx.indexOf("[]") == (idx.length - 2)) {
// Eh um vetor
var ind = idx.substring(0, idx.length-2)
if (obj[ind] === undefined) {
obj[ind] = [];
}
obj[ind].push(p[1]);
}
else {
obj[idx] = p[1];
}
}
return obj;
};
})(jQuery);


//format price
Number.prototype.comma = function(){
	nStr = this+'';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}
