$(document).ready(function () {


  // fix css background pngs in IE6
  var ie55 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 5.5") != -1);
  var ie6 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1);
  if (jQuery.browser.msie && (ie55 || ie6)) {

    // select all img elements with pngs and add pngfix class
    $("img[src$=.png]").each(function () {
      $(this).addClass("pngfix");
    });
    // select all elements with png bg and add pngfix class
    $("*").each(function () {
      //console.log(this + "--");
      if (!$(this).hasClass('overlay')) {
        var bgIMG = jQuery(this).css('background-image');
        if (bgIMG.indexOf(".png") != -1) {
          $(this).addClass("pngfix");
        }
      }
    });
    // run the png fix
    DD_belatedPNG.fix('.pngfix');
  }

  Cufon.replace('.cufon', {
    hover: true,
    fontFamily: 'Neo Tech'
  });
  Cufon.replace('.nav ul li a', {
    hover: true,
    fontFamily: 'Neo Tech'
  });
  Cufon.replace('.main_content h1.cufon', {
    fontFamily: 'NeoMedium'
  });
  Cufon.replace('.results h2.cufon', {
    fontFamily: 'NeoMedium'
  });
  Cufon.now();

  $('.scrollable').scrollable();


  $('.nav li div').mouseenter(function () {
    $(this).parent().addClass('hoverstate_on');
    $(this).parent().removeClass('hoverstate_off');
    $(this).parent().children('a').mouseenter();
  });
  $('.nav li div').mouseleave(function () {
    $(this).parent().removeClass('hoverstate_on');
    $(this).parent().addClass('hoverstate_off');
    $(this).parent().children('a').mouseleave();
    //Cufon.refresh('.nav a');
  });


  findASite.init();

  caseStudy.init();
  caseStudy.caseLoop.init();
  fontSizer.init();
});

var findASite = {
  searchShowing: false,
  init: function () {
    if ($('.map_container').length != 0) {
      $('.postcode').click(function () {
        if ($(this).val() == 'Enter Postcode or Suburb') {
          $(this).val('');
        }
      });
      findASite.attachHandlers();
      if ($('.results_scroller .contr').length > 0) {
        findASite.hideFinder();
      }
      //findASite.hideResultsCont();
    }
  },
  attachHandlers: function () {
    var hider = $('<span></span>').addClass('hider').html("&laquo; Hide Search");
    //var rhider = $('<span></span>').addClass('rhider').html("&laquo; Hide Results");
    $(hider).click(function () {
      if (findASite.searchShowing) {
        findASite.hideFinder();
        findASite.searchShowing = false;
      } else {
        findASite.showFinder();
        findASite.searchShowing = true;
      }
    });
    /*$(rhider).toggle(function () {
    findASite.showResultsCont();
    }, function () {
    findASite.hideResultsCont();
    });*/
    $('.find_site').prepend(hider);
    //$('.results').prepend(rhider);
  },
  showFinder: function () {
    $('.map_search_container').height('auto');
    $('.hider').html("&laquo; Hide Search");
    //findASite.hideResults();
    findASite.searchShowing = true;
  },
  hideFinder: function (that) {
    $('.map_search_container').height('28px');
    $('.hider').html("&raquo; Show Search");
    /*if ($('.results .contr').length != 0) {
    findASite.showResults();
    findASite.searchShowing = false;
    }*/
  },
  showResults: function () {
    //var wd = $('.results .contr').length * 192;
    //$('.results_scroller').width(wd);
      $('.results').show();
      findASite.hideFinder();
      findASite.searchShowing = false;

  },
  hideResults: function () {
    $('.results').hide();
  },
  showResultsCont: function () {
    $('.results .contr').show();
    $('.results').height('420px');
    $('.rhider').html("&laquo; Hide Results");
  },
  hideResultsCont: function () {
    $('.results .contr').hide();
    $('.results').height('25px');
    $('.rhider').html("&raquo; Show Results");
  }

}

var fontSizer = {
	fontLevel: 2,
	init: function () {
		fontSizer.attachHandlers();
	},
	attachHandlers: function () {
		$('.font_size').click(function () {
			fontSizer.adjustFontSize();
		});
	},
	adjustFontSize: function () {
		switch (this.fontLevel) {
			case 1:
				fontSizer.changeFontSize(13);
				fontSizer.fontLevel = 2;
				break;
			case 2:
				fontSizer.changeFontSize(15);
				fontSizer.fontLevel = 3;
				break;
			case 3:
				fontSizer.changeFontSize(11);
				fontSizer.fontLevel = 1;
				break;
		}
	},
	changeFontSize: function (fs) {
		$('.main_content, .main_content p, .main_content ul').css('fontSize', fs + 'px');
		$('p.summary').css('fontSize', (fs + 2) + 'px');
		//$('.links').css('fontSize', (fs - 2) + 'px');
		$('.popular_products ul').css('fontSize', (fs - 1) + 'px');
		$('.main_content').children('h2, h3, h4').css('fontSize', (fs + 1) + 'px');
	}
}

var caseStudy = {
	init: function () {
		$('.case_studies .subnav').data('showing', false);
		$('.case_studies .case')
			.filter(function (index) {
				$(this).attr('rel', index);
				$('.case_studies .subnav li').eq(index).attr('rel', index);
				return index > 0;
			}).hide();
		$('.case_studies .subnav h2').click(function () {
			if (caseStudy.caseLoop.timer != null) { clearInterval(caseStudy.caseLoop.timer); }
			if ($(this).parent().data('showing')) {
				caseStudy.hideSubnav();
			} else {
				caseStudy.showSubnav();
			}
		});
		$('.case_studies .subnav li').click(function () {
			caseStudy.swapCase(this);
		});
	},
	showSubnav: function () {
		$('.case_studies .subnav').animate({
			'top': '-=100'
		}, 500, 'swing').data('showing', true);
	},
	hideSubnav: function () {
		$('.case_studies .subnav').animate({
			'top': '+=100'
		}, 400, 'swing').data('showing', false);
	},
	swapCase: function (that, cnt) {
		$('.case_studies .case:visible').hide();
		var r = $(that).attr('rel') || cnt;
		$('.case_studies .case[rel=' + r + ']').show(0, function () {
			if(  $('.case_studies .subnav').data('showing') ) {
				caseStudy.hideSubnav();
			 }
		});
		//console.log(r + ", " + caseStudy.caseLoop.current + ", " + caseStudy.caseLoop.count);
	},
	caseLoop: {
		init: function () {
			caseStudy.caseLoop.count = $('.case_studies .case').length;
			caseStudy.caseLoop.loop();
		},
		count: 0,
		current: 0,
		timer: {},
		loop: function () {
			caseStudy.caseLoop.timer = setInterval('caseStudy.caseLoop.caseRotate()', 5000);
		},
		caseRotate: function () {
			++caseStudy.caseLoop.current;
			var cnt = caseStudy.caseLoop.current;
			if (cnt < caseStudy.caseLoop.count) {
				caseStudy.swapCase(null, cnt);
				//console.log('continue');
			} else {
				var cnt = 0;
				caseStudy.swapCase(null, cnt);
				caseStudy.caseLoop.current = 0;
				//console.log('wrap');
			}
		}
	}

}

