﻿// Author: Gao Xiang
// Create Date: 2008-08-19

//attach event
//example: addEvent(window,"onload",StartFunc) 
function addEvent(elementObj,eventName,func){ 
    if (elementObj.attachEvent) { 
        elementObj.attachEvent(eventName,func); 
    } 
    else{ 
        eventName = eventName.substring(2,eventName.length); 
        elementObj.addEventListener(eventName,func,false); 
    } 
}

//preload swap images to cache on page load
function PreloadSwapImages() { 
    var doc=document; 
    if (doc.images) { 
        if (!doc.CacheSwapImages) 
            doc.CacheSwapImages = new Array();

        var j = doc.CacheSwapImages.length;
        var args = PreloadSwapImages.arguments;
        for (var i=0 ; i < args.length ; i++) {
            if (args[i].indexOf("#") != 0) { 
                doc.CacheSwapImages[j] = new Image; 
                doc.CacheSwapImages[j++].src = args[i];
            }
        }
    }
}

//preload zoom images to cache on page load
function PreloadZoomImages() { 
    var doc=document; 
    if (doc.images) { 
        if (!doc.CacheZoomImages) 
            doc.CacheZoomImages = new Array();

        var j = doc.CacheZoomImages.length;
        var args = PreloadZoomImages.arguments;
        for (var i=0 ; i < args.length ; i++) {
            if (args[i].indexOf("#") != 0) { 
                doc.CacheZoomImages[j] = new Image; 
                doc.CacheZoomImages[j++].src = args[i];
            }
        }
    }
}

//restore origin src to current src (on mouse out)
function RestoreSwapImage() {
    var img; 
    var imgs = document.ImageObjects; 
    for (var i = 0 ; imgs && i < imgs.length && (img = imgs[i]) && img.oSrc ; i++) 
        img.src = img.oSrc;
}

//find image object by name in document
function FindImageObj(imgName, doc) { 
    var p,i,img;  
    
    if (!doc) 
        doc=document; 
        
    if ((p = imgName.indexOf("?")) > 0 && parent.frames.length) {
        doc = parent.frames[imgName.substring(p + 1)].document; 
        imgName = imgName.substring(0 , p);
    }
    
    if (!(img = doc[imgName]) && doc.all) 
        img = doc.all[imgName]; 
        
    for (i = 0 ; !img && i < doc.forms.length ; i++) 
        img = doc.forms[i][imgName];
        
    for (i = 0 ; !img && doc.layers && i < doc.layers.length ; i++) 
        img = FindImageObj(imgName , doc.layers[i].document);
        
    if (!img && document.getElementById) 
        img = document.getElementById(imgName); 
        
    return img;
}

//swap image (on mouse over)
//param1: image name
//param2: default is ''
//param3: image src
//param4: default is 1
function SwapImage() { 
    var j = 0;
    var img;
    var args = SwapImage.arguments; 
    
    document.ImageObjects = new Array(); 
    
    for (var i = 0 ; i < (args.length-2) ; i += 3) {
        if ((img = FindImageObj(args[i])) != null) {
            document.ImageObjects[j++] = img; 
            if (!img.oSrc) //oSrc property use to save origin src
                img.oSrc = img.src; 
            var newSrc = args[i+2]; //i+2 is image src
            if (newSrc !=null && newSrc.length > 0)
                img.src = newSrc;
        }
    }
}

//change other picture
function ChangeZoomPic(isNext , imgId) {
    var img = $get(imgId);
    var doc = document; 
    var count;
    if (img != null && doc.CacheZoomImages != null && doc.CacheZoomImages.length > 0) {
        count = doc.CacheZoomImages.length;
        
        if (!doc.ZoomIndex) 
            doc.ZoomIndex = 0;
            
        if (isNext == true)
            doc.ZoomIndex = doc.ZoomIndex + 1;
        else
            doc.ZoomIndex = doc.ZoomIndex - 1;
            
        if (doc.ZoomIndex >= count)
            doc.ZoomIndex = 0;  
                      
        if (doc.ZoomIndex < 0)
            doc.ZoomIndex = count - 1;
            
        img.src = doc.CacheZoomImages[doc.ZoomIndex].src;
    }
}

//show product picture to zoom
function ShowZoomPic(imgIndex , imgId) {
    var img = $get(imgId);
    var doc = document; 
    if (img != null 
        && doc.CacheZoomImages != null 
        && doc.CacheZoomImages.length > 0 
        && imgIndex >= 0 
        && imgIndex < doc.CacheZoomImages.length) {

        img.src = doc.CacheZoomImages[imgIndex].src;
    }
}


