﻿ function $() {
  var elements = new Array();

  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);

    if (arguments.length == 1) 
      return element;

    elements.push(element);
  }

  return elements;
}
 
document.ready = function(){
 
	addEnlargeHTML();
	maximiseLeftNav();
	toggleOpen();
	hideContextualHelp();	
	toggleContextualHelp();
	
	
	loadLargeImage();
	
	
	// simple enlarge links on the homepage
	if($("#home").length > 0){
		// Style the homepage and maximize links using JS
		maximiseHomepageLinks();
		
	}
	
	if($("#accessories").length > 0){
		// Style the homepage and maximize links using JS
		maximiseAccessoriesLinks();
		
	}
}

function maximiseHomepageLinks() {

	$("li", "#homeAbstracts").bind("click", function(e){
		var linkIs = $("a", this)[0].href;
		window.location = linkIs;
	}); 
	$("li", "#homeAbstracts").css({cursor:"pointer"});
}

function maximiseAccessoriesLinks() {
	
	$(".listBox").bind("click", function(e){
		var linkIs = $("a", this)[0].href;
		window.location = linkIs;
	}); 
	$(".listBox").css({cursor:"pointer"});
}

function maximiseLeftNav() {

	$("li", ".deviceBox").bind("click", function(e){
		if ($("a", this).length > 0) {			
			var linkis = $("a", this)[0].href;
			window.location = linkis;
		}
	});
	$("li", ".deviceBox").css({cursor:"pointer"});
}

function loadLargeImage() {
	$(".enlargeImage").wrapInner("<a href='#'></a>");
	$("a", ".enlargeImage").bind("click", function(e){
		
		var newLargerImage = $("img", this)[0].src;
		var newSmallerImage = $(".largeImage")[0].src;
		
		newLargerImage = newLargerImage.replace(".jpg","-large.jpg");
		newSmallerImage = newSmallerImage.replace("-large.jpg",".jpg");
		$("img", this)[0].src = newSmallerImage;
		$(".largeImage")[0].src = newLargerImage;
		
	return false;
    	});
}	
	
function addEnlargeHTML() {
	
	// accessories pages don't require amn enlarge image and so use 2 classes accessories, accessoriesSub
	if ($(".accessoriesSub").length == 0) {
		if ($("#accessories").length == 0) {
			$(".prodThumb").append("<p class='imgActions'> <a href='#'>Enlarge &amp; <br/>ratings</a></p>");
		}
		displayProduct();
		maximiseMoreDetails();
	}

}

function displayProduct() {
	
	
	
	if($(".productLink").length > 0 && $("#accessories").length == 0) {
		
		for (var x = 0; x <= $(".productLink").length - 1; x++)
   		{	
			var Heading = $(".productLink")[x];
			var containingDiv = $(Heading).parent();
			
			var containingDiv = containingDiv[0];
			$(containingDiv).css({ cursor:"pointer"});
			
			var insertHTML = "<p class='moreDetails'>More details</a></p>"	
			$(containingDiv).append(insertHTML);
		}
		$("div", ".listBox").bind("mouseout",function(){

      			$(this).css({border:"1px solid white",background:"none"});
   		 });
		$("div", ".listBox").bind("mouseover", function(e){
			$(this).css({border:"1px solid #f0bc08",borderTop:"1px solid white",backgroundImage:"url(../Images/bg-box-on.gif)",backgroundRepeat:"repeat-x",backgroundPosition:"0 100%"})
		});

	}
	
	$(".prodThumb").bind("click", function(e){
				 
		 try
		 {
			 var strProductName = "#" + $(this).parents("div.listBox")[0].id;
			 if ($(strProductName + "-enlarge").css("display") != "block"){
				
				insertAdditionalDetails(strProductName);
				var thisPosX = e.pageX + 10 + "px";
				var thisPosY = e.pageY + 50 + "px";
				
				if(e.pageX > ($(document).width() - 410))
				{
					thisPosX = $(document).width() - 420;
				}
	       			$(strProductName + "-enlarge").css({top:thisPosY,left:thisPosX});
	       			$(".productEnlarge").hide();
				$(strProductName + "-enlarge").show("slow");
			 }
		 }
		 catch(err)
		 {
			
		 }
		 return false;
    	});
}



function insertAdditionalDetails(strProductName) {
	if($("h3", strProductName + "-enlarge").length > 0){
		
	}
	else
	{
		var container = $(strProductName)[0]
		var heading = $("h3", container)[0]
		$(strProductName + "-enlarge").prepend("<h3><a href='' class='close'>Close</a>" + $(heading).text() + " </h3>");
		$(".close", strProductName + "-enlarge").bind("click", function(e){
			$(".productEnlarge").hide("slow");
			return false;
		});
		
		$(strProductName + "-enlarge").append("<p class='clear moreDetailsButton'><a href='" + $("a" ,"h3", strProductName)[0].href +"'>" + $(".moreDetails" , strProductName).html() +"</a></p>")
	}
}

function maximiseMoreDetails(){

	var linkAreasForMax = $("div:eq(1)", ".listBox");
	
	for (var x = 0; x <= linkAreasForMax.length - 1; x++)
   	{
		$(linkAreasForMax[x]).bind("click", function(e){
			var divContaineris = $(this).parents("div.listBox")[0].id;
			var parContainer = $(".productLink", "#" + divContaineris)[0];
			var linkis = $("a", parContainer)[0];
			window.location = linkis;
		});	
   	}
	
}

function toggleOpen(){

	var browser = "standard";
	
	if (jQuery.browser.msie) {
	  if(parseInt(jQuery.browser.version) < 7)
	  {
	  	browser = "non-standard";
	  }
	}
	
	if ($(".open").length > 0)
	{
		$(".displayHelp").hide();
		$(".open").prepend("<a href='#'>Open</a>");
	}
	
	if ($(".close").length > 0)
	{
		$(".close").prepend("<a href='#'>Close</a>");
	}
	
	$(".open").bind("click", function(e){
		
		if ($(".open").length > 0)
		{
			$("a", ".open").text("Close");
			$(".open")[0].className = "close";			
		}
		else
		{
			$("a", ".close").text("Open");
			$(".close")[0].className = "open";
			
			
		}

		if (jQuery.browser.msie) {
		  if(parseInt(jQuery.browser.version) < 7)
		  {
			$(".displayHelp").toggle();
		  }else
		  {
			$(".displayHelp").slideToggle("slow");
		  }
		}
		else {
		$(".displayHelp").slideToggle("slow");
		}
		
		
		return false;
		
	});
	
	$(".close").bind("click", function(e){
		
		if ($(".open").length > 0)
		{
			$("a", ".open").text("Close");
			$(".open")[0].className = "close";
			
			
		}
		
		else
		{
			$("a", ".close").text("Open");
			$(".close")[0].className = "open";			
		}
		
		if (jQuery.browser.msie) {
		  if(parseInt(jQuery.browser.version) < 7)
		  {
			$(".displayHelp").toggle();
		  }else
		  {
			$(".displayHelp").slideToggle("slow");
		  }
		}
		else {
		$(".displayHelp").slideToggle("slow");
		}
		
		return false;
		
	});
}

function toggleContextualHelp() {

     $(".contextHelp").css({ cursor:"pointer"});
     
     	$(".contextHelp").click(function (e) {

		$(".contextHelpHide").hide();

		var thisPos = e.pageX + 10 + "px";
		var thisContainer = $(this).parents("div.deviceBox")[0];
		var thisToolTip = $(".contextHelpHide", thisContainer)[0];
		$(thisToolTip).css({ border:"1px solid #b1b6b9", padding:"3px",backgroundColor:"white",width:"200px",position:"absolute", left:thisPos});
		var thisH2 = $("h2", thisContainer)[0];
		$(thisH2).css({ float:"left"});

		$(".contextHelpHide", thisContainer).show("slow");

		$(".contextHelpHide", thisContainer).oneTime("20s", function(e) {
			closeInTime();	
		});
	});
    
     	$(".contextHelp").mouseout(function (e) {
     		$(".contextHelpHide").hide("slow");
      	});
}

function closeInTime() {
	$(".contextHelpHide").hide("slow");
}


function hideContextualHelp() {
	$(".contextHelpHide").hide();
}

function issueValidationChange(ddl,rfvID)
{
      if (ddl.options[ddl.selectedIndex].value == '3') {
            document.getElementById(rfvID).enabled = true;
      } else {
            document.getElementById(rfvID).enabled = false;
      }
 }
function differentAddressValidationChange(cb,rfvID1,rfvID2,rfvID3,rfvID4,rfvID5,rfvID6,tb1,tb2,tb3,tb4,tb5,tb6)
{
      if (cb.checked==1) {
            document.getElementById(rfvID1).enabled = true;
            document.getElementById(rfvID2).enabled = true;
            document.getElementById(rfvID3).enabled = true;
            document.getElementById(rfvID4).enabled = true;
            document.getElementById(rfvID5).enabled = true;
            document.getElementById(rfvID6).enabled = true;
            document.getElementById(tb1).disabled=false;
            document.getElementById(tb2).disabled=false;
            document.getElementById(tb3).disabled=false;
            document.getElementById(tb4).disabled=false;
            document.getElementById(tb5).disabled=false;
            document.getElementById(tb6).disabled=false;
      } else {
            document.getElementById(rfvID1).enabled = false;
            document.getElementById(rfvID2).enabled = false;
            document.getElementById(rfvID3).enabled = false;
            document.getElementById(rfvID4).enabled = false;
            document.getElementById(rfvID5).enabled = false;
            document.getElementById(rfvID6).enabled = false;
            document.getElementById(tb1).disabled=true;
            document.getElementById(tb2).disabled=true;
            document.getElementById(tb3).disabled=true;
            document.getElementById(tb4).disabled=true;
            document.getElementById(tb5).disabled=true;
            document.getElementById(tb6).disabled=true;
      }
 }
  function deliveryValidationChange(cb,rfvID1,rfvID2,rfvID3,rfvID4,rfvID5,rfvID6,tb1,tb2,tb3,tb4,tb5,tb6)
{
      if (cb.checked==1) {
            document.getElementById(rfvID1).enabled = false;
            document.getElementById(rfvID2).enabled = false;
            document.getElementById(rfvID3).enabled = false;
            document.getElementById(rfvID4).enabled = false;
            document.getElementById(rfvID5).enabled = false;
            document.getElementById(rfvID6).enabled = false;
            document.getElementById(tb1).disabled=true;
            document.getElementById(tb2).disabled=true;
            document.getElementById(tb3).disabled=true;
            document.getElementById(tb4).disabled=true;
            document.getElementById(tb5).disabled=true;
            document.getElementById(tb6).disabled=true;
            document.getElementById(tb1).value='';
            document.getElementById(tb2).value='';
            document.getElementById(tb3).value='';
            document.getElementById(tb4).value='';
            document.getElementById(tb5).value='';
            document.getElementById(tb6).value='';
            document.getElementById(rfvID1).style.visibility='hidden';
            document.getElementById(rfvID2).style.visibility='hidden';
            document.getElementById(rfvID3).style.visibility='hidden';
            document.getElementById(rfvID4).style.visibility='hidden';
            document.getElementById(rfvID5).style.visibility='hidden';
            document.getElementById(rfvID6).style.visibility='hidden';
      } else {
            document.getElementById(rfvID1).enabled = true;
            document.getElementById(rfvID2).enabled = true;
            document.getElementById(rfvID3).enabled = true;
            document.getElementById(rfvID4).enabled = true;
            document.getElementById(rfvID5).enabled = true;
            document.getElementById(rfvID6).enabled = true;
            document.getElementById(tb1).disabled=false;
            document.getElementById(tb2).disabled=false;
            document.getElementById(tb3).disabled=false;
            document.getElementById(tb4).disabled=false;
            document.getElementById(tb5).disabled=false;
            document.getElementById(tb6).disabled=false;
      }
 }      
 
 function openPopupWindow(name, width, height, url)
 {
    window.open(url, name, 'width=' + width + ',height=' + height + 'resizable=0, menubar=0');
 }
 
 var imgFadeStruct;
 
 function fadeImgIn(id)
 {  
    imgFadeStruct = new Object();
    imgFadeStruct.image = document.getElementById(id);
    imgFadeStruct.alpha = 0;
    
    imgFadeStruct.intervalId = setInterval('fadeIn()', 20);
 }
 
function fadeIn()
 {
    if (imgFadeStruct.alpha > 99) clearInterval(imgFadeStruct.intervalId);

    imgFadeStruct.image.style.opacity = (imgFadeStruct.alpha * 0.01);
    imgFadeStruct.image.style.filter = 'alpha(opacity=' + imgFadeStruct.alpha + ')';   
        
    imgFadeStruct.alpha += 10;
 }
 
 function resetFadeImg(id)
 {
    var image = document.getElementById(id);
    
    image.style.opacity = 0;
    imgFadeStruct.image.style.filter = 'alpha(opacity=0)';
 }
 
    
    
 
    
