   	/***********************************************************************************************
	
	Copyright (c) 2005 - Alf Magne Kalleland post@dhtmlgoodies.com
	
	UPDATE LOG:
	
	March, 10th, 2006 : Added support for a message while large image is loading
	
	Get this and other scripts at www.dhtmlgoodies.com
	
	You can use this script freely as long as this copyright message is kept intact.
	
	***********************************************************************************************/ 
   	
	var displayWaitMessage=true;	// Display a please wait message while images are loading?
  	
   		
	var activeImage = false;
	var imageGalleryLeftPos = false;
	var imageGalleryWidth = false;
	var imageGalleryObj = false;
	var maxGalleryXPos = false;
	var slideSpeed = 0;
	var imageGalleryCaptions = new Array();
	
	var previewImage;
	
	function startSlide(e)
	{
		if(document.all)e = event;
		var id = this.id;
		this.getElementsByTagName('IMG')[0].src = '../images/gif/' + this.id + '_over.gif';	
		if(this.id=='arrow_right'){
			slideSpeedMultiply = Math.floor((e.clientX - this.offsetLeft) / 5);
			slideSpeed = -1*slideSpeedMultiply;
			slideSpeed = Math.max(-10,slideSpeed);
		}else{			
			slideSpeedMultiply = 10 - Math.floor((e.clientX - this.offsetLeft) / 5);
			slideSpeed = 1*slideSpeedMultiply;
			slideSpeed = Math.min(10,slideSpeed);
			if(slideSpeed<0)slideSpeed=10;
		}
	}
	
	function releaseSlide()
	{
		var id = this.id;
		this.getElementsByTagName('IMG')[0].src = '../images/gif/' + this.id + '.gif';
		slideSpeed=0;
	}
		
	function gallerySlide()
	{
		if(slideSpeed!=0){
			var leftPos = imageGalleryObj.offsetLeft;
			leftPos = leftPos/1 + slideSpeed;
			if(leftPos>maxGalleryXPos){
				leftPos = maxGalleryXPos;
				slideSpeed = 0;
				
			}
			if(leftPos<minGalleryXPos){
				leftPos = minGalleryXPos;
				slideSpeed=0;
			}
			
			imageGalleryObj.style.left = leftPos + 'px';
		}
		setTimeout('gallerySlide()',20);
		
	}
	
	function showImage()
	{
		if(activeImage){
			activeImage.style.filter = 'alpha(opacity=50)';	
			activeImage.style.opacity = 0.5;
		}	
		this.style.filter = 'alpha(opacity=100)';
		this.style.opacity = 1;	
		activeImage = this;	
	}
	
	function initSlideShow()
	{
		document.getElementById('arrow_left').onmousemove = startSlide;
		document.getElementById('arrow_left').onmouseout = releaseSlide;
		document.getElementById('arrow_right').onmousemove = startSlide;
		document.getElementById('arrow_right').onmouseout = releaseSlide;
		
		imageGalleryObj = document.getElementById('theImages');
		imageGalleryLeftPos = imageGalleryObj.offsetLeft;
		imageGalleryWidth = document.getElementById('galleryContainer').offsetWidth - 80;
		maxGalleryXPos = imageGalleryObj.offsetLeft; 
		minGalleryXPos = imageGalleryWidth - document.getElementById('slideEnd').offsetLeft;
		var slideshowImages = imageGalleryObj.getElementsByTagName('IMG');
		for(var no=0;no<slideshowImages.length;no++){
			slideshowImages[no].onmouseover = showImage;
		}
		
		var divs = imageGalleryObj.getElementsByTagName('DIV');
		for(var no=0;no<divs.length;no++){
			if(divs[no].className=='imageCaption')imageGalleryCaptions[imageGalleryCaptions.length] = divs[no].innerHTML;
		}
		gallerySlide();
	}
	
	function showPreview(productId, imagePath,imageIndex, tag, numOptions){
		var subImages = document.getElementById('chocolateImage');
		subImages.src = '../' + imagePath;
        //changeSelectedImage(imagePath);	
        removePreviewImage();
		
		hideUnWantedTextLines(numOptions);
        drawTextLines(numOptions);
		
	    var productIdElement = document.getElementById('productId');
        productIdElement.value = productId;
	}
	
	function removePreviewImage() {
		var previewImage = document.getElementById('uploadChocolateImage');
		previewImage.src='../images/gif/transparent.gif';
	}
	
	function hideUnWantedTextLines(numOptions) {
		for(var no= numOptions;no<4;no++){
     
		   var orderTextLineId = document.getElementById("textLine" + no);
		   var textLineId      = document.getElementById("line" + no);

		   textLineId.value = "";
		   
		   setDisplayToNone(textLineId);
		   hideElement(orderTextLineId);
		}
	}

	function drawTextLines(numOptions) {
		for(var no=0;no<numOptions;no++){
   
		   var orderTextLineId = document.getElementById("textLine" + no);
		   var textLineId      = document.getElementById("line" + no);

		   setDisplayToInline(textLineId) ;
		   viewElement(orderTextLineId);
		}
	}
	
	function hideElement(elementId) {
		   elementId.style.visibility="hidden";
	}

	function viewElement(elementId) {
		   elementId.style.visibility="visible";
	}

	function setDisplayToNone(elementId) {
		   elementId.style.display = "none";
	}

	function setDisplayToInline(elementId) {
		   elementId.style.display = "inline";
	}

	
	function addTextToImage() {
		showProcessedImage();
	}
	
	
	function hideWaitMessageAndShowCaption(imageIndex)
	{
		document.getElementById('waitMessage').style.display='none';	
		document.getElementById('largeImageCaption').innerHTML = imageGalleryCaptions[imageIndex];
		document.getElementById('largeImageCaption').style.display='block';
		
	}
	
	function changeSelectedImage(imagePath) {
	  previewImage = imagePath;
	  showProcessedImage();	
	}
	
	
	function showProcessedImage() {

      if (previewImage == null) {
      	alert("An image must be selected before adding any text");
      }	else {
      	var text = document.getElementById('textForImg');
		var obj = document.getElementById('compositeimgdiv');
		obj.innerHTML = '<IMG src=\'http://localhost/Site/ext/design/ChocolateDesignerImageProcessing.php' +
		                '?pic='       + previewImage + 
		                '&type='      + 'gif' +
		                '&text='      + getTextLines() + 
		                '&fontsize='  + selectComboBoxValue('fontsize') + 
		                '&font='      + selectComboBoxValue('font') + 
		                '&fontColour='+ getFontColour() + '\'>';	
      }
	}
	
   
   function selectComboBoxValue(comboBoxId) {
   	 var combobox = document.getElementById(comboBoxId);
     selIdx = combobox.selectedIndex;
     if (selIdx == -1) {selIdx = 0;}
     newSel = combobox.options[selIdx].value;
     return newSel;
   }

    //
    // Font Colour handling
    //
	lck=0; fontColour = '#000000';
	function lockFontColour(hval) {
		if ( lck == 0 )	{
			fontColour = hval;
			applyTextColourToTextBox(fontColour);
		}
	}
	
	function lockColourChooser(){
		if (lck == 0) {
		  lck = 1;
		} else	{
		  lck = 0;
		}
	}
	
	function getFontColour() {
		return fontColour.substring(1, fontColour.length);
	}


    function getTextLines() {
      var inputTextArea = document.getElementById('inputTextArea');
      return doublenewlines(inputTextArea.value); 
    }
    
    function doublenewlines(text) { 
    	var doublenewlinesRE = /([^\n])\n([^\n])/g;
    	text = text.replace(/(\r\n|\r|\n)/g, '\n'); 
    	var newText = text.replace(doublenewlinesRE, "$1|$2");
    	return newText; 
    }
    
    
    
    function applyTextColourToTextBox(fontColour) {
    	document.getElementById('inputTextArea').style.color = fontColour;
    }
  
    function initOrderPage() {
		drawTextLines(2);
        initSlideShow();	
	}
	
   window.onload = initOrderPage;