/* Author : Agus Daud
   Hothouse 2007		*/
   
    var objSafariImage = new Image();
   
    catalogueType = 1;
    cataloguePopupClicked = false;
    showRefineYourSearch = false;
	page_counter = 1;
	
	var max_counter;
	  
	  function add_counter() {
	  	  if (page_counter == max_counter) {
		  	// do nothing
		  } else {
		  	page_counter++;
		  }
	  }
	  
	  function reduce_counter() {
	  	  if (page_counter == 1) {
		  	// do nothing
		  } else {
		  	page_counter--;
		  }
	  }
	  
	  function update_goto() {
	  		var innerHTML = "";
						
			for (i=1;i<=max_counter;i++) { 
				innerHTML = innerHTML + '<option value="'+i+'"> Page '+i+' </option>';
			}

			$("#page_number").html(innerHTML);
			$("#page_number_bottom").html(innerHTML);
	  }
	  
	  function update_goto2() {
	  		var innerHTML = "";
	  		
			innerHTML = innerHTML + '<option value="1">Page 1</option>';
			
			for (i=2;i<max_counter-3;i+=2) {
				innerHTML = innerHTML + '<option value="'+ (i+1) +'"> Page '+i+' & '+(i+1)+' </option>';
			}
			if (max_counter==3) {
				innerHTML = innerHTML + '<option value="'+ i +'">Page '+ i +'</option>';
			} else {
				innerHTML = innerHTML + '<option value="'+ (i+1) +'">Page '+ i +'</option>';
			}
			
			$("#page_number").html(innerHTML);
			$("#page_number_bottom").html(innerHTML);
	  } 
	  
	  function hide_redpopup(name) {
			$('#'+name).hide();
	  }
	  
	  function update_counter() {
	  		$('.catalogue_popup').hide();
			
	  		$("#page_counter").html("Page "+page_counter+" of "+max_counter);
			$("#page_counter_bottom").html("Page "+page_counter+" of "+max_counter);

			$("select#page_number").val(page_counter);
			$("select#page_number_bottom").val(page_counter);
			jsp_update_counter(page_counter);
	  }
	
	  function update_counter2() {
	  		var next_page = page_counter;	  		
	  		var actualPageNumber;
	  		var pageNavigationText;
	  		
			if (next_page < max_counter) {
				next_page++;
			} else if (next_page = max_counter) {
				page_counter--;
			}
			
			$("select#page_number").val(page_counter);
			$("select#page_number_bottom").val(page_counter);
			
			if(page_counter == 1) {
				actualPageNumber = 1;
				pageNavigationText = "Page " + actualPageNumber+" of "+ (max_counter-2);
			} else if (page_counter >= (max_counter-1)) {
				actualPageNumber = max_counter-2;
				pageNavigationText = "Page " + actualPageNumber+" of "+ (max_counter-2);
			} else {
				actualPageNumber = page_counter-1;
				pageNavigationText = "Page "+ actualPageNumber +" & "+(next_page-1)+" of "+ (max_counter-2);			
			}
			
			$("#page_counter").html(pageNavigationText);
			$("#page_counter_bottom").html(pageNavigationText);
			jsp_update_counter(actualPageNumber);
	  } 	

	  
	  function verybigcarousel2_initCallback(carousel,state) {
	  		catalogueType = 2;
			max_counter = carousel.size();
			jQuery('#page_number').bind('change', function() {
				var old_page_counter = page_counter;
				$('#catalogue_popup').css("display", "none");
				page_counter = $(this).attr("value");
				update_counter2();

				if ($.browser.safari && catalogueType == 2 && (page_counter >= (parseInt(carousel.size())-1))) {
				    carousel.next();
				}			
				else if ($.browser.safari && catalogueType == 2 && (old_page_counter >= (parseInt(carousel.size())-1)) && (page_counter == (parseInt(carousel.size())-2))) {
					carousel.prev();
				}
				else {
					carousel.scroll(jQuery.jcarousel.intval($(this).attr("value")));
				}
			});
			
			jQuery('#page_number_bottom').bind('change', function() {
				var old_page_counter = page_counter;
				$('#catalogue_popup').css("display", "none");
				page_counter = $(this).attr("value");
				update_counter2();
				
				if ($.browser.safari && catalogueType == 2 && (page_counter >= (parseInt(carousel.size())-1))) {
				    carousel.next();
				}			
				else if ($.browser.safari && catalogueType == 2 && (old_page_counter >= (parseInt(carousel.size())-1)) && (page_counter == (parseInt(carousel.size())-2))) {
					carousel.prev();
				}
				else {
					carousel.scroll(jQuery.jcarousel.intval($(this).attr("value")));
				}
			});
			
			jQuery('.jcarousel-next').bind('click', function() {
				$('#catalogue_popup').css("display", "none");
				add_counter();
				add_counter();
				update_counter2();
				return false;
			});
			
			jQuery('.jcarousel-prev').bind('click', function() {
				$('#catalogue_popup').css("display", "none");
				reduce_counter();
				reduce_counter();
				update_counter2();
				return false;
			});
					
			jQuery('#mycarousel-prev').bind('click', function() {
				$('#catalogue_popup').css("display", "none");
				reduce_counter();
				reduce_counter();
				update_counter2();
				carousel.prev();
				return false;
			});
			
			jQuery('#mycarousel-prev-bottom').bind('click', function() {
				$('#catalogue_popup').css("display", "none");
				reduce_counter();
				reduce_counter();
				update_counter2();
				carousel.prev();
				return false;
			});
			
			jQuery('#mycarousel-next').bind('click', function() {
				$('#catalogue_popup').css("display", "none");
				old_page_counter = page_counter;
				add_counter();
				add_counter();
				update_counter2();
				if (old_page_counter < (parseInt(carousel.size())-1)) {
					carousel.next();
				}
				return false;
			});
			
			jQuery('#mycarousel-next-bottom').bind('click', function() {
				$('#catalogue_popup').css("display", "none");
				old_page_counter = page_counter;
				add_counter();
				add_counter();
				update_counter2();
				if (old_page_counter < (parseInt(carousel.size())-1)) {
					carousel.next();
				}
				return false;
			});
			
	  }
	  
	  function verybigcarousel_initCallback(carousel,state) {
	  		catalogueType = 1;
			max_counter = carousel.size();
			
			jQuery('#page_number').bind('change', function() {
				page_counter = $(this).attr("value");
				update_counter();
				carousel.scroll(jQuery.jcarousel.intval($(this).attr("value")));				
			});
			
			jQuery('#page_number_bottom').bind('change', function() {
				page_counter = $(this).attr("value");
				update_counter();
				carousel.scroll(jQuery.jcarousel.intval($(this).attr("value")));
			});
			
			jQuery('.jcarousel-next').bind('click', function() {
				add_counter();
				update_counter();
				return false;
			});
			
			jQuery('.jcarousel-prev').bind('click', function() {
				reduce_counter();
				update_counter();
				return false;
			});
					
			jQuery('#mycarousel-prev').bind('click', function() {
				reduce_counter();
				update_counter();
				carousel.prev();
				return false;
			});
			
			jQuery('#mycarousel-prev-bottom').bind('click', function() {
				reduce_counter();
				update_counter();
				carousel.prev();
				return false;
			});
			
			jQuery('#mycarousel-next').bind('click', function() {
				add_counter()
				update_counter();
				carousel.next();
				return false;
			});
			
			jQuery('#mycarousel-next-bottom').bind('click', function() {
				add_counter()
				update_counter();
				carousel.next();
				return false;
			});
			
	  };
	  
	  function smallcarousel_initCallback(carousel,state) {
			max_counter = carousel.size();
	  };
	  
	  function scrollcarousel_itemFirstInCallback (carousel, item, idx, state)
	  {
		    if (state == 'init') {
		        carousel.scroll(page_counter, false);
		    }
		    
		    if (catalogueType == 2 && (page_counter >= (parseInt(carousel.size())-1))) {
			     carousel.next();
			}
	  };
	  
	  //To hide and show top catalogue page to wrap up and down
	  function hide_top_catalogue() {
			 $("div.catalogue_container").slideUp("normal");
			 $("#hide_catalogue").hide();
			 $("#show_catalogue").show();
			 return false;
	  }
	  
	  function show_top_catalogue() {
			 $("div.catalogue_container").show();
			 $("#hide_catalogue").show();
			 $("#show_catalogue").hide();
			 return false;
	  }
	  
	  var tooltip = new Tooltips();
		  
  	  function Tooltips (options) {
  	
  			if ( "undefined" != typeof Tooltips._instantiated) {
  				return (Tooltips._instantiated);	
  			}
  			
  			if ( "undefined" == typeof options) {
  				options = {};	
  			}
  			
  			this.delay = ("undefined" == typeof options.delay) ? 600 : options.delay;
  			this.timeout = new Object();
  			
  			Tooltips._instantiated = this;
  			
  	  };
	  
  	  function hide_red_popup2(e,name,value1, value2) {
	  	  	clearTimeout(tooltip.timeout['#catalogue_popup']);
  			tooltip.timeout['#catalogue_popup'] = null;
  			
  	  		tooltip.timeout['#catalogue_popup'] = setTimeout (function() {
  	  			if(cataloguePopupClicked == true) {
	  				$('#catalogue_popup').css("display", "none");											  
	  			}
	  			cataloguePopupClicked = false;
  			}, tooltip.delay); 
  	  }
  	  
function red_popup2(e,name,value1, value2) {
  	  	
  	  	cataloguePopupClicked = true;
  	  	
  	    if (tooltip.timeout['#catalogue_popup']) {
  			clearTimeout(tooltip.timeout['#catalogue_popup']);
  			tooltip.timeout['#catalogue_popup'] = null;
  		}
  	  
	  	if($("#popupOfferIdVal").html() != value1) {
	  	  	ajax.autocomplete.resetOfferPopup();
		}
  	  	
  	  	var posx = 0;
  	  	var posy = 0;
  	  	
  	  	if (!e) var e = window.event;
  	  	if (e.pageX || e.pageY) 	{
  	  		posx = e.pageX;
  	  		posy = e.pageY;
  	  	}
  	  	else if (e.clientX || e.clientY) 	{
  	  		posx = e.clientX + document.body.scrollLeft
  	  			+ document.documentElement.scrollLeft;
  	  		posy = e.clientY + document.body.scrollTop
  	  			+ document.documentElement.scrollTop;
  	  	}
  	  	
  	  	//find target object
		if (e.target) targ = e.target;
		else if (e.srcElement) targ = e.srcElement;
		if (targ.nodeType == 3) // defeat Safari bug
			targ = targ.parentNode;
		
  	  	var imgMapCoords = $(targ).attr("coords");
  	  	
  	  	var imgMapCoordsArray = imgMapCoords.split(",");
  	  	
  	  	if (imgMapCoordsArray.length == 4) {
  	  		areaShape = "square";
  	  	} else {
  	  		areaShape = "poly";
  	  		
  	  		polyXCoords = new Array();
  	  		polyYCoords = new Array();
  	  		
  	  		var count = 1;

  	  		while(imgMapCoordsArray.length > 1) {
	  			if(count % 2 == 0) {
	  				polyYCoords[polyYCoords.length] = imgMapCoordsArray.shift();
	  			} else {
	  				polyXCoords[polyXCoords.length] = imgMapCoordsArray.shift();
	  			}
  	  			count = count + 1;
  	 		}
  	 		
  	 		count = 0;
  	 		
			var highestX = 0;
			var lowestX = 1500;
			
  	 		while(count < polyXCoords.length) {
  	 			highestX = Math.max(parseInt(polyXCoords[count]), highestX );
  	 			lowestX = Math.min(parseInt(polyXCoords[count]), lowestX);
  	 			count = count + 1;
  	 		}
  	 		
  	 		count = 0;
			var highestY = 0;
			var lowestY = 1500;
			
  	 		while(count < polyYCoords.length) {
  	 			highestY = Math.max(parseInt(polyYCoords[count]), highestY);
  	 			lowestY = Math.min(polyYCoords[count], lowestY);
  	 			count = count + 1;
  	 		}
  	 		
  	 		imgMapCoordsArray = new Array(lowestX, lowestY, highestX, highestY)
  	  	}

  	  	var img = document.getElementById($(targ).parent().attr("name"));

  	  	var objPosition = findPos(img);

  	  	// posx and posy contain the mouse position relative to the document
  	  	// Do something with this information
  	  	// 232 is the height of the arrow
		
  	  	$('#catalogue_popup').hide();
  	  	
		var browseContainerPosition = findPos(document.getElementById("browse_catalogue_container"));
		
  	  	var middle = (posx-browseContainerPosition[0]);
  	  	
  	    if($("#popupOfferIdVal").html() != value1) {
  	    	$("#popupOfferIdVal").html(value1);
  	    	if (popupDataArray[value1] == null) {
	  	    	$("#OfferIdVal").val(value1);
		  	  	ajax.autocomplete.getOfferDetails(value1,value2);
	  	  	} else {
	  	  		ajax.autocomplete.populateOfferDetail(popupDataArray[value1], value1,value2);
	  	  	}
	  	}	  	
	  	
		var spaceLeft = parseInt(imgMapCoordsArray[0]);
		var spaceRight = $(img).width() - parseInt(imgMapCoordsArray[2]);
		
		var popupPosX = 0;
		var popupPosY = 0;
		$("div.show_redpopup").removeClass("alter");
		
		popupPosX = parseInt(objPosition[0]) + parseInt(imgMapCoordsArray[2]) - 20;
		popupPosY = parseInt(objPosition[1]) + parseInt(imgMapCoordsArray[1]) + parseInt(((parseInt(imgMapCoordsArray[3]) - parseInt(imgMapCoordsArray[1]))) / 2) - 80;
		
		//if (middle > 470) {
		if($(img).width() > 500) {
			if (spaceLeft > spaceRight) {
				$("div.show_redpopup").addClass("alter");
				
				if(imgMapCoordsArray[0] < 300)
					popupPosX = parseInt(objPosition[0]) - 40;
				else
					popupPosX = parseInt(objPosition[0]) + parseInt(imgMapCoordsArray[0]) - 345;
			}
			else if (spaceRight >= spaceLeft) {
				if(imgMapCoordsArray[2] > 380)
					popupPosX = parseInt(objPosition[0]) + $(img).width() - 305;
			}
		}
		
		if (objPosition[0]-browseContainerPosition[0] >= 470) {
			$("div.show_redpopup").addClass("alter");
			popupPosX = parseInt(objPosition[0]) + parseInt(imgMapCoordsArray[0]) - 345;
  	  	}
		
		$("#"+name).css({
	  		display:"block",
	  		position: "absolute",
	  		top: popupPosY + "px",
	  		left: popupPosX + "px"
  	  	});
		
	  }; 
	  
	function resizeImage() {
		if(this.src == null) {
			var popupImage = objSafariImage;
			objSafariImage = new Image();
		}
		else {
			var popupImage = this;
		}
        imgDimensions = getImageDimensions(popupImage);
       
        var maxWidth = 198;
        var maxHeight = 150;
       
        var imgWidth = parseFloat(imgDimensions[0]);
        var imgHeight = parseFloat(imgDimensions[1]);
   
        var xRatio = maxWidth / imgWidth;
        var yRatio = maxHeight / imgHeight;
       
        if ((imgWidth <= maxWidth) && (imgHeight <= maxHeight)) {
           resizedWidth = imgWidth;
           resizedHeight = imgHeight;  
        }
        else if ((xRatio* imgHeight) < maxHeight) {
          resizedHeight = Math.round(xRatio* imgHeight);
          resizedWidth = maxWidth;
        }
        else {
          resizedWidth = yRatio * imgWidth;
          resizedHeight = maxHeight;
        }
       
        popupImage.width = resizedWidth;
        popupImage.height = resizedHeight;
        popupImageArray[popupImage.name] = popupImage;

        displayPopupImage(popupImage);
    }
   
    function getImageDimensions(objImage) {
        return new Array(objImage.width, objImage.height);
    }
   
    function displayPopupImage(objImage) {
		$(".image_content img").attr("src", objImage.src);
		//$(".image_content img").width(parseInt(objImage.width));
        //$(".image_content img").height(parseInt(objImage.height));
        $(".image_content img").css("visibility","visible");
    }
     
    //array used to store cached image data
    popupImageArray = new Array();
	popupDataArray = new Array();

	$(document).ready(function(){
    	var pageInIframe = false;
    	
       	if($("iframe#retailerSite").size() > 0)
       		pageInIframe = true
       		
		
		$(".image_thumbnail").click(function () {
			
			var objClicked = $(this);
			
			var objectId = $(this).attr("id");
			var objectIdArray = new Array();
			
			objectIdArray = objectId.split("__");
			
			var enlargedImageLocation = "enlarge-location_" + objectIdArray[1];

			cataloguePopupClicked = false;
			var continueEnlargeProcess = true;
			
			$("#image-preview-loading").remove();
			$("#image-preview-cancel").remove();
			$("#image-preview-background").remove();
			$("#image-preview-image-container").remove();
			$("#image-preview-background-container").remove();
			$(".embedobject-container").css("visibility", "hidden");
			
			if (tooltip.timeout['#catalogue_popup']) {
				clearTimeout(tooltip.timeout['#catalogue_popup']);
				tooltip.timeout['#catalogue_popup'] = null;
			}

			$("body").append("<div id='image-preview-background'></div>");
			$("body").append("<div id='image-preview-loading'></div><div id='image-preview-cancel'></div>");


			if($.browser.msie6 = $.browser.msie && /MSIE 6\.0/i.test(window.navigator.userAgent) && !/MSIE 7\.0/i.test(window.navigator.userAgent)) {
				$("body").append("<div id='image-preview-background-container'><iframe></iframe></div>");
			}

			var arrayPageSize = getPageSize();
			var arrayPageScroll = getPageScroll();
				
			$("#image-preview-background").show();
			$("#image-preview-background, #image-preview-background-container iframe").css("height", arrayPageSize[1] + "px");
			
			var loadingTopMargin = (arrayPageScroll[1] + ((arrayPageSize[3] - $("#image-preview-cancel").height() - $("#image-preview-loading").height()) / 2));
			$("#image-preview-loading").css("marginTop", loadingTopMargin + "px");
			$("#image-preview-cancel").css("marginTop", (loadingTopMargin+$("#image-preview-loading").height()) + "px");
			
			if(pageInIframe) {
				var offerListParent = $(objClicked).parent().parent().parent();

				if($(offerListParent).attr("id") != undefined && $(offerListParent).attr("id") != null && $(offerListParent).attr("id").search(/offerid/) != -1)
					window.location.hash = $(offerListParent).attr("id");
			}
			
			$("#image-preview-background, #image-preview-cancel").click(function() {
				continueEnlargeProcess = false;
				$("#image-preview-loading").fadeOut("fast");
				$("#image-preview-cancel").fadeOut("fast");
				$("#image-preview-background").remove();
				$("#image-preview-image-container").fadeOut("fast");
				$("#image-preview-background-container").remove();
				$(".embedobject-container").css("visibility", "visible");		
			});
			var embedObject = document.getElementById("normalEmbedobject_"+objectIdArray[1]);
			if (embedObject === null) {
				var preLoadImage = new Image();
				preLoadImage.name = "enlargeImage_111";
				
				preLoadImage.onload=function(){
					$("#image-preview-loading").remove();
					$("#image-preview-cancel").remove();
										
					var max_width = 800;
					var max_height = 600;
							
					var width = preLoadImage.width;
					var height = preLoadImage.height;
					
					var x_ratio = max_width / width;
					var y_ratio = max_height / height;
					
					if ((width <= max_width) && (height <= max_height)) {
					   preLoadImage.width = width;
					   preLoadImage.height = height;   
					}
					else if ((x_ratio * height) < max_height) {
					  preLoadImage.height = Math.ceil(x_ratio * height);
					  preLoadImage.width = max_width;
					}
					else {
					  preLoadImage.width = Math.ceil(y_ratio * width);
					  preLoadImage.height = max_height;
					}
	
					var containerTopMargin = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - preLoadImage.height) / 2));
					
					if (continueEnlargeProcess == true) {
						if (pageInIframe) {
							$(objClicked).parent().parent().prepend("<div id='image-preview-image-container'></div>");
							$("#image-preview-image-container").css("top", "auto");
						} else { 	
							$("body").append("<div id='image-preview-image-container'></div>");
							$("#image-preview-image-container").css("marginTop", containerTopMargin + "px");
						}
						
						$("#image-preview-image-container").css("marginLeft", "-"+(preLoadImage.width/2)+"px");
						$("#image-preview-image-container").append("<img id='image-preview-image' style='width: " + preLoadImage.width + "px;' src='" + preLoadImage.src + "' /><div id='image-preview-close'>Close</div>");	
	
						$("#image-preview-close").click(function() {
							$("#image-preview-background").remove();
							$("#image-preview-image-container").fadeOut("fast");	
							$("#image-preview-background-container").remove();
							$(".embedobject-container").css("visibility", "visible");
						});

						$("#image-preview-image-container").fadeIn("normal");				
					}
				}
	
				preLoadImage.src = $("#" + enlargedImageLocation).val();
			} else {	// video
//					var width = parseInt(paembedObject.style.width.replace(/\D/g,""));
//					var height = parseInt(embedObject.style.height.replace(/\D/g,""));
					eval("var enlargeHtml=embedOfferenImage_"+objectIdArray[1]);
					var width=425;
					var height=355;
					var delPos = enlargeHtml.indexOf("||");
					if (delPos>0) {
						var dimension=enlargeHtml.substring(0,delPos).split(",");
						if (dimension.length>0) {
							width=parseInt(dimension[0]);
							height=parseInt(dimension[1]);
						}
						enlargeHtml=enlargeHtml.substring(delPos+"||".length);
					}
					var containerTopMargin = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - height) / 2));
					$("#image-preview-loading").remove();
					$("#image-preview-cancel").remove();
					$("body").append("<div id='image-preview-image-container'></div>");
					$("#image-preview-image-container").css("marginLeft", "-"+(width/2)+"px");
					$("#image-preview-image-container").css("marginTop", containerTopMargin + "px");
					$("#image-preview-image-container").append(enlargeHtml+"<div id='image-preview-close'>Close</div>");	

					$("#image-preview-close").click(function() {
						$("#image-preview-background").remove();
						$("#image-preview-image-container").fadeOut("fast");	
						$("#image-preview-background-container").remove();
						$(".embedobject-container").css("visibility", "visible");
					});

					$("#image-preview-image-container").fadeIn("normal");						
			}				
			return false;
		});
		
		$("#catalogue_popup")
	   .hover(function () {
			var tipId = "#" + $(this).attr("id");
			cataloguePopupClicked = true;
			if (tooltip.timeout[tipId]) {
				clearTimeout(tooltip.timeout[tipId]);
				tooltip.timeout[tipId] = null;
			}
		}, function () {
			// Restart hide timeout
			var tipId = "#" + $(this).attr("id");
			var tip = $(this);
			tooltip.timeout[tipId] = setTimeout( function() {
				if(cataloguePopupClicked == true) {
	 				tip.css("display", "none");
	 			}
			}, tooltip.delay );
		});
		
		if(!showRefineYourSearch) {
	  		$("#show_continue_outer .refine_your_search").hide();
	  	}

		$("#show_continue_outer .show_search").toggle (
			function(){
				if ($("#show_continue_outer .refine_your_search").css("display") == "none") {
				 	$("#show_continue_outer .refine_your_search").animate({ width: 'show' , opacity: 'show' }, "normal");
				 		
					$('.popup').hide();
					$('.popupContainer').hide();
					
				} else {
					$("#show_continue_outer .refine_your_search").animate({ width: 'hide' , opacity: 'hide' }, "normal"); 
				}

				$(this).addClass("close");
				return false;
			}, function(){
				if ($("#show_continue_outer .refine_your_search").css("display") == "block") {
				 	$("#show_continue_outer .refine_your_search").animate({ width: 'hide' , opacity: 'hide' }, "normal"); 
				} else {
					$("#show_continue_outer .refine_your_search").animate({ width: 'show' , opacity: 'show' }, "normal");
					$('.popup').hide();
					$('.popupContainer').hide();
				}

			 	$(this).removeClass("close");
				return false;
			}
		);
		
		$(".refine_your_search li input").click (
			function(){
				isRefineChecked = $(this).attr("checked");
				if (isRefineChecked) {
					$(this).parent().addClass("active");
					$(this).attr("checked", "checked");
				}
				else {
					$(this).parent().removeClass("active");
					$(this).attr("checked", "");
				}
			}
		);
		
  });