//	Multi-Image and Option Preview scripts
//	Copyright (c) 2007 Y-Times Publications, LLC.
//	All Rights Reserved. Unauthorized duplication prohibited.
//

var currentimage;
var prevSmallImage = null;
var prevLargeImage = null;

function SwapImage(imgname, newimage)
{
    if (newimage)
    {
        currentimage = document.images[imgname].src;
        document.images[imgname].src = newimage;
    }
    else
    {
        document.images[imgname].src = currentimage;
    }
}

var CurrentMainImage = 4;

function SwapMainImage(i)
{
    if (typeof(MedImages) != 'undefined' && MedImages[i] != "")
    {
        document.images["mainimage"].src = MedImages[i];
        CurrentMainImage = i;
        BigImage = BigImages[i];
    }
}

function EnlargeImage()
{
    var bi;
    if (typeof(BigImage) != 'undefined' && BigImage != '')
      bi = BigImage;
    else
      bi = BigImages[CurrentMainImage];

    popup("enlarge.html?" + bi);
}

function popup(src) {
  win = window.open(src,"","top=20,left=20,height=300,width=450,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes")
}

function preloadMedImages()
{
    if (typeof(MedImages) != 'undefined' && MedImages.length > 0)
    {
        var images = new Array();
        for (var i = 0; i < MedImages.length; i++)
        {
            var x = new Image;
            x.src = MedImages[i];
            images[images.length] = x;
        }
    }
}

addEvent(window,'load',preloadMedImages);

// option preview functions
var optionImageLocation = "http://site.simplykidstoys.com/options/";
function getOptionImageName(listValue)
{
    // This function figures out the image file name based on the selected option's value.
    
	var re = /\((\d+)\)/gi;
	var opt = listValue;
	var ma = re.exec(opt);
	
	return(opt.replace("/","_").replace("-","_").toLowerCase());
}

function ChangeOption(e)
{
    prevSmallImage = MedImages[CurrentMainImage];
    if (typeof(BigImage) != "undefined" && BigImage != "")
        prevLargeImage = BigImage;
    else
        prevLargeImage = BigImages[CurrentMainImage];
    
	var list; 
	if (window.event)
	    list = window.event.srcElement;
	else
	    list = e.target;
	var code = window.itemCode;

    var opt = getOptionImageName(list.options[list.selectedIndex].value);
    
	if (true)
	{
		var img = code + "-" + opt + "-small.jpg";
		document.images['mainimage'].src = optionImageLocation + img;
		BigImage = optionImageLocation + code + "-" + opt + "-large.jpg";
		
		if (typeof(BigImages) != "undefined")
		{
		    var x = BigImages.length;
		    if (x > 0)
		    {
		        BigImages[x-1] = BigImage;
		        MedImages[x-1] = optionImageLocation + img;
		    }
		}
	}
}

function optionPreviewInit(optionName, code)
{
    window.itemCode = code;
    
    var frmOrderForm = findOrderForm();
    if (frmOrderForm)
    {
        if (typeof(frmOrderForm[optionName]) != "undefined")
        {
            addEvent(frmOrderForm[optionName],"change",ChangeOption);
            
            var optImgAr = new Array();
            
            for (var i = 0; i < frmOrderForm[optionName].options.length; i++)
            {
                var opt = getOptionImageName(frmOrderForm[optionName].options[i].value);
                var img = new Image();
                img.src = optionImageLocation + code + "-" + opt + "-small.jpg";
                optImgAr[optImgAr.length] = img;
            }
        }
    }
}


// General utility functions

function addEvent(elm, evType, fn, useCapture)
{
	if (elm.addEventListener)
	{
		elm.addEventListener(evType,fn,useCapture);
		return (true);
	}
	else if ( elm.attachEvent )
	{
		var r = elm.attachEvent('on' + evType, fn);
		return (r);
	}
	else
	{
		elm['on' + evType] = fn;
	}
}

function ErrorImage(im)
{
    if (prevSmallImage)
    {
        document.images['mainimage'].src = prevSmallImage;
        BigImage = prevLargeImage;
    }
    else
	    document.images['mainimage'].src = optionImageLocation + "noimage.jpg";
}

function findOrderForm()
{
	for (i = 0; i < document.forms.length; i++)
	{
		if (document.forms[i].action.match("order.store.yahoo") || document.forms[i].action.match("test-order"))
		{
			return( document.forms[i] );
			break;
		}
	}
	return(null);
}
