// Work out the seasonal theme
var theme;
$A(document.getElementsByTagName("link")).findAll( function(s) {
	matches = (s.href && s.href.match(/(spring|summer|autumn|winter)\.css/));													
	if(matches) theme = matches[1];
});

/* With this, you can mouseover child elements (i.e. stuff within the div) of a div that has an onmouseover, and it doesn't count it as an onmouseout*/
(function () {
  function respondToMouseOver(event)
  {
    var target = event.element();
    if (event.relatedTarget && !event.relatedTarget.descendantOf(target))
      target.fire('mouse:enter');
  }
  
  function respondToMouseOut(event) {
    var target = event.element();
    if (event.relatedTarget && !event.relatedTarget.descendantOf(target))
      target.fire('mouse:leave');
  }
    
  Object.extend(document, {
    enableMouseEnterLeave: function()
    {
      if (Prototype.Browser.IE)
        document
          .observe('mouseenter', function(event) { event.element().fire('mouse:enter'); })
          .observe('mouseleave', function(event) { event.element().fire('mouse:leave'); });
      else
        document
          .observe('mouseover', respondToMouseOver)
          .observe('mouseout', respondToMouseOut);
    },
    
    disableMouseEnterLeave: function()
    {
      if (Prototype.Browser.IE)
        document
          .stopObserving('mouseenter', function(event) { event.element().fire('mouse:enter'); })
          .stopObserving('mouseleave', function(event) { event.element().fire('mouse:leave'); });
      else
        document
          .stopObserving('mouseover', respondToMouseOver)
          .stopObserving('mouseout', respondToMouseOut);
    }
  });
})();

Effect.RaiseOut = function(element) {
  element = $(element);
  var oldStyle = {
    top: element.getStyle('top'),
    left: element.getStyle('left'),
    opacity: element.getInlineOpacity() };
  return new Effect.Parallel(
    [ new Effect.Move(element, {x: 0, y: -20, sync: true }), 
      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],
    Object.extend(
      { duration: 0.3,
        beforeSetup: function(effect) {
          effect.effects[0].element.makePositioned(); 
        },
        afterFinishInternal: function(effect) {
          effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);
        } 
      }, arguments[1] || { }));
};



Effect.DropIn = function(element) {

  element = $(element);
  Element.setOpacity(element, 0);
  element.show();
  var oldTop = element.style.top;
  var oldLeft = element.style.left;
  var pos = Position.cumulativeOffset(element);
   return new Effect.Parallel(
    [ new Effect.MoveBy(element, 20, 0, { sync: true }), 
      new Effect.Opacity(element, { sync: true, from:0.0, to: 1.0 }) ],
    Object.extend(
      { duration: 0.3,
        beforeSetup: function(effect) { 
          Element.makePositioned(effect.effects[0].element); 
          Element.setOpacity(element, 0);
          element.style.position = 'absolute'; 
          element.style.top = (pos[1]-20) + 'px'; 
        }
      }, arguments[1] || {}));
}

function set_hovers() {
 	// Set up mouseenter, mouseleave and onclick events for the panels 
  	
	$$('li.panel_33').each(function(el){
		el.observe('mouseover', function() {
			
			el.setStyle({
				background: 'url("/images/layout/' + theme + '/smallBoxY.png") no-repeat',
				cursor: 'pointer'
			});
		});
		el.observe('mouseout', function() {
    		el.setStyle({
				background: 'url("/images/layout/' + theme + '/smallBox.png") no-repeat'
			});
		});
	});
	
	$$('li.panel_50').each(function(el){
		el.observe('mouseover', function() {
			
			el.setStyle({
				background: 'url("/images/layout/' + theme + '/50BoxY.png") no-repeat',
				cursor: 'pointer'
			});
		});
		el.observe('mouseout', function() {
			el.setStyle({
				background: 'url("/images/layout/' + theme + '/50Box.png") no-repeat'
			});
		});
	});

	$$('li.panel_67').each(function(el){
		el.observe('mouseover', function() {
			
			el.setStyle({
				background: 'url("/images/layout/' + theme + '/middleBoxY.png") no-repeat',
				cursor: 'pointer'
			});
		});
		el.observe('mouseout', function() {
			el.setStyle({
				background: 'url("/images/layout/' + theme + '/middleBox.png") no-repeat'
			});
		});
	});
	
	$$('li.panel_100').each(function(el){
		el.observe('mouseover', function() {
		
			el.setStyle({
				background: 'url("/images/layout/' + theme + '/bigBoxY.png") no-repeat',
				cursor: 'pointer'
			});
		});
		el.observe('mouseout', function() {
			el.setStyle({
				background: 'url("/images/layout/' + theme + '/bigBox.png") no-repeat'
			});
		});
	});
		
	
	
	$$('div.property').each(function(el){
		el.observe('mouseover', function() {
			//('.sb-border') { background:#bbb; }
			el.setStyle({
				background: 'url("/images/layout/' + theme + '/results-box-hover.png") no-repeat',
				cursor: 'pointer'
			});
		});
		el.observe('mouseout', function() {
			el.setStyle({
				background: 'url("/images/layout/' + theme + '/results-box.png")'
			});
		});
	});
	
	
	$$('div.property_showcase').each(function(el){
		el.observe('mouseover', function() {
		
			el.setStyle({
				background: 'url("/images/results-showcase-box-hover.png") no-repeat',
				cursor: 'pointer'
			});
		});
		el.observe('mouseout', function() {
			el.setStyle({
				background: 'url("/images/results-showcase-box.png") no-repeat'
			});
		});
	});
	
	
	
	$$('.panel').each(function(el){
	
		el.observe('click', function(sub_el) {
			
			if($(Event.element(sub_el)).inspect()=='<a>') return true; // If they have clicked an actual link within the div, we d not need to go any further.
			
			// This bit grabs the link that has class "mainlink" to use as the onclick url
			var link = $(el).down('a.mainlink');
			if (typeof(link)!='undefined'){
				document.location.href = link;			
			}
						
		 });
	
	});
	
	var out;
	
	$('JG').observe('mouseover', function(el) {
		if(out) clearTimeout(out);
		new Effect.DropIn('myjg');
	});
	$('JG').observe('mouseout', function(el) {
		out = setTimeout("new Effect.RaiseOut('myjg', true)", 300);
	});
}

Event.observe(window, 'load', set_hovers);


function toggle_div(div_id, display){
	
	if(display==true) {
		$(div_id).show();
	}
	else{
		$(div_id).hide();
	}
	return true;
}

function refresh_div(div_id){
	$(div_id).hide();
	Effect.Appear(div_id, {duration:0.3});
	return true;
}


function toggle_div_fade(div_id, display){
	
	if(display==true) {
		Effect.Appear(div_id, {duration:0.3});
	}
	else{
		Effect.Fade(div_id, {duration:0.3});
		//$(div_id).style.display = "none";
	}
	return true;
}

function appear_if_not_visible(div_id){
	if(!Element.visible(div_id)){
		Effect.Appear(div_id, {duration:0.3});
	}
	return true;
}

var up = false;

function toggle_affiliates(){
	var factor = 1;
	if(up==false) {
		$('affclick').hide();
		$('window').show();
		new Effect.Move('affbox', { x: 0, y: -60 });
		up = true;
	}
	else{
		new Effect.Move('affbox', { x: 0, y: 60 });
		$('affclick').show();
		$('window').hide();
		up = false;
	}
	return true;
}


function do_preload(){
	
	// set image list
	images = new Array();
	images[0] = '/images/layout/'+theme+'/smallBoxY.png';
	images[1] = '/images/layout/'+theme+'/middleBoxY.png';
	images[2] = '/images/layout/'+theme+'/50BoxY.png';
	images[3] = '/images/layout/'+theme+'/bigBoxY.png';
	images[4] = '/images/my-jg-hover.png';
	
	// start preloading
	for(i=0; i<images.size(); i++){
		$('window').insert( { before: '<img src="'+images[i]+'" style="display:none;" alt=""/>'});
	}
	
	
	
	
}
Event.observe(window, 'load', do_preload);


// Now bung in rel=external hack
Event.observe(window, 'load', function() {
    $$('a[rel="external"]').each(function(link){
        if(link.readAttribute('href') != '' && link.readAttribute('href') != '#'){
            link.writeAttribute('target','_blank');
        }
    });
});