﻿window.size = function() {
    var w = 0;
    var h = 0;
    if (!window.innerWidth) {
        if (!(document.documentElement.clientWidth == 0)) {
            w = document.documentElement.clientWidth;
            h = document.documentElement.clientHeight;
        } else {
            w = document.body.clientWidth;
            h = document.body.clientHeight;
        }
    } else {
        w = window.innerWidth;
        h = window.innerHeight;
    }
    return { width: w, height: h };
};

window.center = function() {
    var hWnd = (arguments[0] != null) ? arguments[0] : { width: 0, height: 0 };
    var _x = 0;
    var _y = 0;
    var offsetX = 0;
    var offsetY = 0;
    if (!window.pageYOffset) {
        if (!(document.documentElement.scrollTop == 0)) {
            offsetY = document.documentElement.scrollTop;
            offsetX = document.documentElement.scrollLeft;
        }else {
            offsetY = document.body.scrollTop;
            offsetX = document.body.scrollLeft;
        }
    }else {
        offsetX = window.pageXOffset;
        offsetY = window.pageYOffset;
    }
    _x = ((this.size().width - hWnd.width) / 2) + offsetX;
    _y = ((this.size().height - hWnd.height) / 2) + offsetY;
    return { x: _x, y: _y };
};

function IVImageLoaded(ThisImage) {
    var img = new Image();
    changeOpac(1, ThisImage.id);
    ThisImage.style.display = 'inline';
    img.src = ThisImage.src;
    img.style.display = 'none';
    document.body.appendChild(img);
    img.onload = new function() {
        if (img.height > 0 && img.width > 0) {
            ThisImage.height = img.height;
            ThisImage.width = img.width;
        }
        new Effect.Fade(ThisImage, { queue: 'end', duration: 0.2, from: 0, to: 1 });
        $('divLoading').style.display = 'none';
    };
};

function OpenImage() {
    var Images = new Array();
    Images = $("IVImageArrayString").value.split(';');
    var CurrentImageNo = parseInt($("IVSelectedImageCount").value);
    var newWin = window.open(unescape(Images[CurrentImageNo]).replace(/\+/g, "%20"), "Image", "status=0,toolbar=0, resizable=1, scrollbars=1");
	if(!newWin)
	{
		newWin = window.open('',title, options);
		newWin.location.href = unescape(Images[CurrentImageNo].replace(/\+/g, "%20"));
	}
    //window.open(unescape(Images[CurrentImageNo]), 'Image', "status=0,toolbar=0, resizable=1, scrollbars=1");
};

function ViewImage(ProductID, SelectedImage) {
    if ($('ivOpaqueBackground') != null) {
        document.body.removeChild($('ivOpaqueBackground'));
    }
    if ($('ivContainerDiv') != null) {
        document.body.removeChild($('ivContainerDiv'));
    }
    OpaqueBackground = document.createElement('div');
    OpaqueBackground.style.backgroundColor = 'black';
    OpaqueBackground.style.position = 'absolute';
    OpaqueBackground.style.top = '0%';
    OpaqueBackground.style.left = '0%';
    OpaqueBackground.style.width = '100%';
    OpaqueBackground.style.height = '100%';
    OpaqueBackground.style.zIndex = '1001';
    OpaqueBackground.id = 'ivOpaqueBackground';
    var htmlheight = document.body.parentNode.scrollHeight;
    var windowheight = window.innerHeight;
    if (htmlheight < windowheight) {
        OpaqueBackground.style.height = windowheight + "px";
    } else {
        OpaqueBackground.style.height = htmlheight + "px";
    }
    document.body.appendChild(OpaqueBackground);

    var left;
    var top;
    point = window.center({width:680, height:630});
    left = point.x;
    top = point.y;
    if (top < 20) {
        top = 20;
    }
    if (left < 0) {
        left = 0;
    }
    ContainerDiv = document.createElement('div');
    ContainerDiv.style.width = '680px';
    ContainerDiv.style.height = '630px';
    ContainerDiv.style.position = "absolute";
    ContainerDiv.style.zIndex = '1002';
    ContainerDiv.style.textAlign = 'left';
    ContainerDiv.style.display = 'none';
    ContainerDiv.id='ivContainerDiv'
    document.body.appendChild(ContainerDiv);
    ContainerDiv.style.top = top+"px";
    ContainerDiv.style.left = left+"px";
    changeOpac(0, 'ivOpaqueBackground');
    new Effect.Fade('ivOpaqueBackground', { queue: 'front', duration: 1, from: 0, to: 0.6 });
    new Effect.Grow('ivContainerDiv', { queue: 'end' });
    var url = forceRecacheXMLHTTP('ImageViewer.asp?ProductID='+ProductID+'&SelectedImage=' + escape(SelectedImage));
    if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            ContainerDiv.innerHTML = '<div class="IVMainDiv">' + xhr.responseText + "</div>";
        }
    };
    xhr.open('GET', url, true);
    xhr.send(null);
};

function NextImage() {
    clearTimeout(Timeout);
    var Images = new Array();
    Images = $("IVImageArrayString").value.split(';');
    var CurrentImageNo = parseInt($("IVSelectedImageCount").value);
    var TotalImages = parseInt($("IVTotalImageCount").value);
    if (CurrentImageNo != TotalImages) {
        CurrentImageNo++;
        if (CurrentImageNo == TotalImages) {
            $('IVRightArrow').style.display = 'none';
        } else {
            $('IVRightArrow').style.display = 'inline';
        }
        if (CurrentImageNo == 0) {
            $('IVLeftArrow').style.display = 'none';
        } else {
            $('IVLeftArrow').style.display = 'inline';
        }
        $("IVSelectedImageCount").value = CurrentImageNo
        $("IVSpanSelectedImageCount").innerHTML = CurrentImageNo+1;
        new Effect.Fade($('IVMainImage'), { queue: 'front', duration: 0.3, from: 1, to: 0 })
        Timeout = setTimeout("$('divLoading').style.display='block';$('IVMainImage').src = 'Includes/ImageViewerImage.asp?Image=" + escape(Images[CurrentImageNo]) + "';", 400);
    }
};

var Timeout;
function PrevImage() {
    clearTimeout(Timeout);
    var Images = new Array();
    Images = $("IVImageArrayString").value.split(';');
    var CurrentImageNo = parseInt($("IVSelectedImageCount").value);
    var TotalImages = parseInt($("IVTotalImageCount").value);
    if (CurrentImageNo != 0) {
        CurrentImageNo--;
        if (CurrentImageNo == TotalImages) {
            $('IVRightArrow').style.display = 'none';
        } else {
            $('IVRightArrow').style.display = 'inline';
        }
        if (CurrentImageNo == 0) {
            $('IVLeftArrow').style.display = 'none';
        } else {
            $('IVLeftArrow').style.display = 'inline';
        }
        $("IVSelectedImageCount").value = CurrentImageNo
        $("IVSpanSelectedImageCount").innerHTML = CurrentImageNo+1;
        new Effect.Fade($('IVMainImage'), { queue: 'front', duration: 0.3, from: 1, to: 0 })
        Timeout = setTimeout("$('divLoading').style.display='block';$('IVMainImage').src = 'Includes/ImageViewerImage.asp?Image=" + escape(Images[CurrentImageNo]) + "';", 400);
    }
};

function CloseImageViewer() {
    new Effect.Shrink('ivContainerDiv', { queue: 'front', duration: 0.5 });
    new Effect.Fade('ivOpaqueBackground', { queue: 'end', duration: 1, from: 0.6, to: 0 });
    setTimeout("HideImageViewer();", 1000);
};

function HideImageViewer() {
    document.body.removeChild($('ivOpaqueBackground'));
    document.body.removeChild($('ivContainerDiv'));
};

function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
};

function forceRecacheXMLHTTP(url) {
    if (url.indexOf('ts=') == -1) {
        if (url.indexOf('?') == -1) {
            url = url + '?ts=' + Date.parse(new Date());
        } else {
            url = url + '&ts=' + Date.parse(new Date());
        }
    } else {
        replacedate = 'ts=' + Date.parse(new Date());
        url = url.replace(/ts=.{13}/, replacedate);
    }
    return url;
};


document.onkeyup = function(e) {
    if (!e) {
        if (window.event) {
            e = window.event;
        } else {
            return;
        }
    }
    if (typeof (e.keyCode) == 'number') {
        e = e.keyCode;
    } else if (typeof (e.which) == 'number') {
        e = e.which;
    } else if (typeof (e.charCode) == 'number') {
        e = e.charCode;
    } else {
        return;
    }
    if (e == 27 && $('IVMainImage') != undefined) {
        CloseImageViewer()
    }
    if (e == 37 && $('IVMainImage') != undefined) {
        PrevImage();
    }
    if (e == 39 && $('IVMainImage') != undefined) {
        NextImage();
    }
};

function PrintImage() {
    var Images = new Array();
    Images = $("IVImageArrayString").value.split(';');
    var CurrentImageNo = parseInt($("IVSelectedImageCount").value);
    window.open("/includes/PrintImage.asp?Image=" + escape(Images[CurrentImageNo]), "Print_Image", "width=50px, height=50px");
};
