function lvinit( )
{
    initA( );
 
    if(!document.all)
    {
        //fix a weird pixel bug that happens in everything other than ie
        //var lgpainting = document.getElementById('ipainting');

        // these objects are not in every page used by this function
        // check to see if they exist first -- wbs 10/27/05
        if(document.getElementById('mBlock0'))
           var mblock0 = document.getElementById('mBlock0');
        if(document.getElementById('lgcenter'))
           var lgcenter = document.getElementById('lgcenter');
        if(document.getElementById('lgpainting'))
          var lgpainting = document.getElementById('lgpainting');

        if(lgpainting.clientHeight)
        {
        	  if(document.getElementById('mBlock0'))
        	  {
        	  	 var mblock0 = document.getElementById('mBlock0');
               mblock0.style.height = (lgpainting.clientHeight) + "px";
               lgcenter.style.height = mblock0.style.height;
            }
        }
    }
}

function fixPixelBug( ){
    if(document.getElementById("mgalleryID") || document.getElementById("sPostcard")){
        if(!document.all){
            //fix a weird pixel bug that happens in everything other than ie
            //a similar piece of code to this is in 3 different spots, one for
            //the products, one in lvinit, and this one.
            //This one is a little more complicated because of multiple framed images.
            //The problem happens with an img inside a div, it puts a 1 pixel
            //margin on the bottom of the image that cannot be taken care of
            //by style sheets because of the variable length of the image.
            //I may have overlooked something, so if you can find a way to
            //do it with style sheets, more power to you.
            var tds = document.getElementsByTagName("td");
            for(var i = 0; i < tds.length; i++){
                if(tds[i].className == "scenter"){

                    var sdivs = tds[i].getElementsByTagName("div");
                    var scenter = tds[i];
                    var spainting = "";
                    var mblock0 = "";
                    var j;
                    for(j = 0; j < sdivs.length; j++){
                        if(sdivs[j].className == 'mBlock0'){
                            mblock0 = sdivs[j];
                            break;
                        }
                    }
                    var simgs = mblock0.getElementsByTagName("img");
                    for(j = 0; j < simgs.length; j++){
                        if(simgs[j].className == "spainting"){
                            spainting = simgs[j];
                        }
                    }
                    if(spainting.clientHeight){
                        mblock0.style.height = (spainting.clientHeight) + "px";
                        scenter.style.height = mblock0.style.height;
                    }
                }
            }
        }

    }

}


//##############################################################
//##############  Product Image Functions ######################
//##############################################################
//var framearray is set in the head of the document
//also displays info about the current selection

var oA = new Array( );
var curChecked;
var warned = false;
var curFrame = "";

function frameImage(fid){

    if(!document.getElementById){
        if(!warned){
            alert("You must download a newer web browser to take full advantage of this site's features.");
            warned = true;
        }
        return;
    }
	    var agt=navigator.userAgent.toLowerCase();

    // *** BROWSER VERSION ***
    // Note: On IE5, these return 4, so use is_ie5up to detect IE5.
    var is_major = parseInt(navigator.appVersion);
    var is_minor = parseFloat(navigator.appVersion);
	if (agt.indexOf('safari/125') > 0 && !warned ) {
	warned = true;
	alert("The version of the browser you are using (Safari 1.2) will limit some of the functionality of this site.  Please consider upgrading.");
	}
	displayLoading();
    var fdir = pframes[fid];
    curFrame = fid;

    if (!fid) {
	fid = 2;
	}


    //alert(fdir + "++++++" + fid);

    var i;

    var icenter = document.getElementById('icenter');
    //var ipainting = document.getElementById('ipainting');

    var mblock0 = document.getElementById('mBlock0');

    var psel = document.getElementById("poptionselect");
    var pind = psel.options[psel.selectedIndex].value;
    w = iWidths[pind] * 12;
    h = iHeights[pind] * 12;
    //ipainting.width = null;

    if(icenter.clientHeight){
        if(icenter.clientHeight < icenter.clientWidth){
            w = iHeights[pind] * 12;
            h = iWidths[pind] * 12;
        }
    }

    //ipainting.style.width = w + "px";
    //ipainting.style.height = h + "px";
    //alert(ipainting.style.width + " - " + w + "x" + h);

    var mosel = document.getElementById("moptionselect0");
    
    i = 0;
    var rootSelected = true;//default to true so the bottom mat doesn't trigger an error
    var alreadyWarned = false;
    var mPadArray = new Array( );
    var mPadIDs = new Array( );
    var mVal = "";
    var moselCookie = "";
    var hideAllMats = false;
    while(mosel){
        mVal = mosel.options[mosel.selectedIndex].value;

        if(iCanHaveMats[pind] == '0' && mVal != ""){
            if(i == 0){
                //alert("Mat option not available for selected dimensions");
                hideAllMats = true;
            }
            mosel.selectedIndex = 0;
        }
        /*
        if(i > 0){
            if(mosel.selectedIndex > 0 && !rootSelected){
                if(!alreadyWarned){
                    //alert("You must have the all previous mat options selected to select additional mats.");
                    alreadyWarned = true;
                }
                mosel.selectedIndex = 0;
            }
        }
        */
        if(mosel.selectedIndex > 0){
            rootSelected = true;
        }
        else{
            rootSelected = false;
        }

        mVal = mosel.options[mosel.selectedIndex].value;
        if(i > 0){
            moselCookie += "*";
        }
        moselCookie += mVal;

        //build the padding array
        //there are n+1 mBlocks where n is the number of mat options ordered from 0 to n
        //mBlock0 just holds the border information for
        //mBlock(i + 1) holds the padding information for mosel(i)
        //The actual calculations are in the next block
        mPadArray[i] = matWidths[mVal];
        mPadIDs[i] = mVal;
        if(!mPadArray[i]){
            mPadArray[i] = 0;
        }

        //this would be extremely inefficient for a large number of mats
        //but the number of mats should realisticly never be higher than
        //3 or 4, so it won't hurt any.  If you ever need hundreds of mats
        //I suggest you rewrite this.  Anyway, we're looking for skipped mats.
        if(i > 0){
            if(mPadArray[i] > 0){
                for(var j = 0; j < i; j++){
                    if(mPadArray[j] > 0){
                        if(mPadArray[j] - mPadArray[i] > 0){
                            mPadArray[j] -= mPadArray[i];
                        }
                    }
                }
            }
        }

        i++;
        mosel = document.getElementById("moptionselect" + i);
    }

    for(i = 0; i < mPadArray.length; i++){
        var matid = mPadIDs[i];
        if(!matid || matid == ""){
            matid = 0;
            if(i == 0){
                hideAllMats = true;
            }
        }
        var mpadding = mPadArray[i] * 8;
        var mBlock = document.getElementById('mBlock' + parseInt(i + 1));
        var mBlockNext = document.getElementById('mBlock' + i);

        if(hideAllMats){
        	  document.getElementById("moptionselect0").disabled = true;
        	  document.getElementById('moptionselect1').disabled = true;
        	  setcookie('moptionselect', '');
        }
        else if(matid != 0){
        	document.getElementById("moptionselect0").disabled = false;
        	document.getElementById('moptionselect1').disabled = false;
            if(matBG[matid] != ""){
            }
            else if(matColors[matid] != ""){
            }
        }
        else{
        	noMats = false;
        	document.getElementById("moptionselect0").disabled = false;
        	document.getElementById('moptionselect1').disabled = false;
        }
    }




    document.getElementById('frameid').value = fid;
    //alert(document.getElementById('frameid').value);
    //$src = buildFrameURL($_REQUEST['imgSrc'], $_REQUEST['frameId'], $_REQUEST['dimensionID'], array($_REQUEST['mat0'], $_REQUEST['mat1']));

    var imsrc = document.getElementById('prodImgSrc').value;

if(hideAllMats){
   var getUrl = 'include/buildFrameURL.php?imgSrc=' + imsrc + '&frameId=' + fid + '&dimensionID=' + pind;
   document.getElementById('da-Iframe').src='/include/buildFrameURL.php?imgSrc=' + imsrc + '&frameId=' + fid + '&dimensionID=' + pind;
}
else {
   var getUrl = 'include/buildFrameURL.php?imgSrc=' + imsrc + '&frameId=' + fid + '&dimensionID=' + pind + '&mat0=' + mPadIDs[0] + '&mat1=' + mPadIDs[1];
   document.getElementById('da-Iframe').src='/include/buildFrameURL.php?imgSrc=' + imsrc + '&frameId=' + fid + '&dimensionID=' + pind + '&mat0=' + mPadIDs[0] + '&mat1=' + mPadIDs[1];
}
    //if (getCookie("Debug") == "On") alert("frameImage();");
	  //var getUrl = 'include/buildFrameURL.php?imgSrc=' + imsrc + '&frameId=' + fid + '&dimensionID=' + pind + '&mat0=' + mPadIDs[0] + '&mat1=' + mPadIDs[1];
    //document.getElementById('da-Iframe').src='/include/buildFrameURL.php?imgSrc=' + imsrc + '&frameId=' + fid + '&dimensionID=' + pind + '&mat0=' + mPadIDs[0] + '&mat1=' + mPadIDs[1];
    if (document.getElementById('purchaseOption').value == 'framed') {
    setcookie('frameoption', fid);
    setcookie('poptionselect', psel.options[psel.selectedIndex].value);
    setcookie('moptionselect', moselCookie);
    } else {
     setcookie('frameoption', '');
    setcookie('poptionselect', '');
    setcookie('moptionselect', '');
    }

    updateFramePrice( );
	updateBackToGallery( );
    updateEmailFriendLink( );

}//end of function frameImage

function swapImg(obj) {
      if (getCookie("Debug") == "On") {
        //alert("swapImg();");
      }
    if (document.getElementById('showImg').src != obj.src) {
      // Fix image hang issue...  BH  9/18/06
  	  document.getElementById('showImg').src=obj.src;
  	};
}
function updateBackToGallery() {
	    //alert(document.referrer);
	    if (document.getElementById('prodImgSrc').value.indexOf("VTWB00011")>0 && document.getElementById('frameid').value == '2') {
	     alert(document.getElementById('backToGallery').href + " " + 'http://' + location.hostname + '/' + location);
	    }
		if (document.getElementById('backToGallery').href.indexOf("viewCart") > 0) {
			document.getElementById('backToGallery').href = "/content/p/9/catid/" + document.getElementById('backToCatId').value;
			if(document.getElementById('backToGalleryTop'))
			  document.getElementById('backToGalleryTop').href = "/content/p/9/catid/" + document.getElementById('backToCatId').value;
		} 
		else if (document.getElementById('backToGallery').href == 'http://' + location.hostname + '/' || document.getElementById('backToGallery').href == location) {
		  eraseCookie('moptionselect');
		  document.getElementById('backToGallery').href = document.referrer;
		  if(document.getElementById('backToGalleryTop'))
		    document.getElementById('backToGalleryTop').href = document.referrer;
		}
}
function displayLoading() {
	document.getElementById('showImg').src="/images/loading.gif";
}
function changePurchaseOption(str) {
	document.getElementById('purchaseOption').value = str;
	if (str != 'framed') {
	document.getElementById('showImg').src=document.getElementById('prodImgSrc').value;
	} else {
		frameImage(document.getElementById('frameid').value);
	}
}

function updateEmailFriendLink( ){
    var pid = thisProductID;
    var fid = curFrame;
    var mid = getCookie('moptionselect');
    var encImgUrl = escape(document.getElementById('showImg').src);  // added
    var ef = document.getElementById('emailFriend');
    if(ef){
        var hr = ef.href;
        hr = hr.replace(/pid.*/, "");
        var wallColor = getCookie('wallColor');
        if (document.getElementById('purchaseOption').value != 'photoOnly'){
          var frameid = curFrame;
        }

        //ef.href = (hr + 'pid/' + pid + '/fid/' + fid + '/mid/' + mid);
        ef.href = (hr + 'pid/' + pid);
        if(wallColor){
            ef.href += '/wallColor/' + escape(wallColor);
        }
        //added for framed images on postcard page
        //ef.href += '?imgUrl=' + encImgUrl + "&matid=" + mid + "&frameid=" + fid;
        ef.href += '?imgUrl=' + encImgUrl;  
    }
    return true;
}

function updateFramePrice( ){

  var fid   = document.getElementById('frameid').value;
  var fonly = document.getElementById('framedOnly').value;
  var psel  = document.getElementById("poptionselect");
	var pind  = psel.options[psel.selectedIndex].value;
	document.getElementById('priceIframe').src='/include/PackagePricing.php?frameId=' + fid + '&dimensionID=' + pind + '&framedOnly=' + fonly;

}

var curOption = 0;
var curFrameLink = 0;

function initProduct( ){
    if(!document.getElementById || !document.getElementsByTagName) return;
    if(!document.getElementById('poptionselectcontain')) return;

    var psc = document.getElementById('poptionselectcontain');
    psc.style.visibility = 'visible';

    var ps = document.getElementById('poptionselect');

    var div2show = "";
    div2show = "frame_0_0";

    var dShow = document.getElementById(div2show);

    var msCookie = getCookie('moptionselect');
    var msCookieA = new Array( );
    if(msCookie){
        msCookieA = msCookie.split(/\*/);
        if(msCookieA.length == 0){
            msCookieA = new Array( );
            msCookieA[0] = msCookie;
        }
    }

    var ms = document.getElementById('moptionselect0');

    var i = 0;

    while(ms){
        ms.onchange = function( ){
            updateImageProduct( );
        }
        for(var j = 0; j < ms.options.length; j++){
            if(ms.options[j].value == msCookieA[i]){
                ms.options[j].selected = true;
            }
        }
        i++;
        ms = document.getElementById('moptionselect' + i);
    }



    var pRadios = dShow.getElementsByTagName('input');
    var didCheck = false;
    for(var i = 0; i < pRadios.length; i++){
        var pr = pRadios[i];
        if(pr.type == 'radio'){
            if(pr.checked){
                frameImage(pr.value);
                didCheck = true;
            }
            else{
                pr.checked = false;
            }
        }
    }
    if(!didCheck){
        pRadios[0].checked = true;
        frameImage(pRadios[0].value);
    }

    //ps.selectedIndex = 0;
    ps.onchange = function( ){
        updateImageProduct( );
    }

    var curOption = 0;
    var curFrameLink = 0;


}

function updatePaintingOption( ){
    //alert(poption);
    var pObj = document.getElementById('poptionselect');
    var poObj = pObj.options[pObj.selectedIndex];
    var pindx = poObj.value;

    var dObj = document.getElementById('paintingoption_' + pindx);
    var poiObj = dObj.options[dObj.selectedIndex];
    var indx = poiObj.value;

    var paintingoption = document.getElementById("paintingoption");
    paintingoption.value = indx;
    //alert(paintingoption.value);

}

var isClassic = false;

function updateImageProduct( ){
    frameImage(curFrame);
}

function selChange( ){
    var iObj = this.options[this.selectedIndex];
    var indx = iObj.value;

    switchFrameOptions("0_0");
    isClassic = false;

    var newOptionBlock = document.getElementById('poption_' + indx);
    newOptionBlock.style.visibility = "visible";

    curOption = parseInt(indx);
    curFrameLink = 0;

    updatePaintingOption( );
    updateFramePrice( );
}

function switchFrameOptions(indx){
    var indxA = new Array( );
    var tmp;
    switch(indx){
    case "back":
        indxA[0] = curOption;
        tmp = parseInt(curFrameLink) - 1;
        if(document.getElementById('frame_' + curOption + "_" + tmp)){
            indxA[1] = curFrameLink - 1;
        }
        else{
            indxA[1] = curFrameLink;
        }
        indx = indxA[0] + "_" + indxA[1];
        break;
    case "next":
        indxA[0] = curOption;
        tmp = parseInt(curFrameLink) + 1;
        if(document.getElementById('frame_' + curOption + "_" + tmp)){
            indxA[1] = curFrameLink + 1;
        }
        else{
            indxA[1] = curFrameLink;
        }
        indx = indxA[0] + "_" + indxA[1];
        break;
    default:
        indxA = indx.split(/\_/);
        break;
    }

    hideDivs( );
    document.getElementById('frame_' + indx);
    var newOptionBlock = document.getElementById('frame_' + indx);
    newOptionBlock.style.display = "block";

    curOption = parseInt(indxA[0]);
    curFrameLink = parseInt(indxA[1]);

    var anodes = newOptionBlock.getElementsByTagName("a");
    for(var i = 0; i < anodes.length; i++){
        var a = anodes[i];
        if(i == 0 && indxA[1] == 0 && a.innerHTML == "&lt;--"){ a.style.display = "none"; }
        else if(i == 0){a.style.display = "inline"; }

        if(i == anodes.length - 1 && indxA[1] == anodes.length - 3){ a.style.display = "none"; }
        else if(i == anodes.length - 1){a.style.display = "inline"; }

        if(indxA[1] == (i-1)){
            a.style.color = "#DCAF5E";
        }
        else{
            a.style.color = "#FFFFFF";
        }
    }

    return false;
}

function hideDivs( ){
  if(document.getElementById('frameoptionContain')){
    var pc = document.getElementById('frameoptionContain');
    var pd = pc.getElementsByTagName('div');

    for(var i = 0; i < pd.length; i++){
        if(pd[i].className == 'pframes'){
            pd[i].style.display = 'none';
        }
    }
  }
}

function viewLargeImageP( ){
    var mosel = document.getElementById("moptionselect0");

    i = 0;
    var mVal = "";
    var moselCookie = "";
    while(mosel){
        mVal = mosel.options[mosel.selectedIndex].value;
        if(i > 0){
            moselCookie += "*";
        }
        moselCookie += mVal;

        i++;
        mosel = document.getElementById("moptionselect" + i);
    }



    var pid = thisProductID;
	if (document.getElementById('purchaseOption').value != 'photoOnly'){
    var frameid = curFrame;}
	var encImgUrl = escape(document.getElementById('showImg').src);
    var qStr = "pid=" + thisProductID + "&frameid=" + frameid + "&imgUrl=" +  encImgUrl + "&matid=" + moselCookie;

    return viewLargeImage(qStr);
}
function viewLargeImage(qStr){
    var largeImg = window.open("/viewlarge.php?" + qStr, "vlrg", "width=780,height=560,status=no,toolbar=no,resizable=yes,scrollbars=yes");
    largeImg.focus( );
    return false;
}

function viewFrameInfo(fid){
    var fimg = window.open("/framedetail.php?fid=" + fid, "fimg", "width=600,height=520,status=no,toolbar=no,resizable=yes,scrollbars=yes,alwaysRaised=yes");
    return false;
}

var wallc
function selectWallColor( ){
    var wallc = window.open("/selectwallcolor.php?buttonID=tpContain", "ColorTool", "width=256,height=390,status=no,toolbar=no,resizable=no,alwaysRaised=yes");
    return false;
}

function setFrameColor( ){
    var framecolor = document.getElementById("framecolor");
    setcookie("framecolor", framecolor.options[framecolor.selectedIndex].value);
}
function aReload(){
    window.location.href = unescape(window.location.pathname);
}
function setFrameCollection( ){
    var framecollection = document.getElementById("framecollection");
    setcookie("framecollection", framecollection.options[framecollection.selectedIndex].value);
}


//########################################################################
//Favorites/Gallery
//########################################################################

function addToFavorites( ){
    var favs = getCookie('favs');
    var i, j;
    if(!favs){
        favs = "";
    }
    else{
        favA = favs.split(/\|/);
        favs = "";
        j = 0;
        for(i = 0; i < favA.length; i++){
            //alert(favA[i] + " -> " + thisProductID);
            if(favA[i] == thisProductID) continue;
            if(favA[i] == "") continue;
            favs += favA[i] + "|";
            j++;
            if(j == 5) break;
        }

    }

    favs = thisProductID + "|" + favs;
    alert("Added Picture to Favorites");

    //alert(thisProductID);
    favA = favs.split(/\|/);


    setcookie("favs",favs)

    return false;
}


function addToGallery(showConfirmation, returnVal){
    var poptionselect = document.getElementById('poptionselect');
    var poptionselectVal = poptionselect.options[poptionselect.selectedIndex].value;
    var frameoptionVal = curFrame;

    var mosel = document.getElementById('moptionselect0');
    i = 0;
    var mVal = "";
    var moselCookie = "";
    while(mosel){
        mVal = mosel.options[mosel.selectedIndex].value;
        if(i > 0){
            moselCookie += "*";
        }
        moselCookie += mVal;

        i++;
        mosel = document.getElementById("moptionselect" + i);
    }

    var cookieKey = "p" + "-" + thisProductID + "-" + poptionselectVal + "_" + frameoptionVal + "_" + moselCookie;
    var cookieVal = '1';

    var gallery = getCookie('gallery');

    if(!gallery){
        gallery = cookieKey + "::--::" + cookieVal + "<<-->>";
    }

    var galleryA = new Array( );
    galleryA = gallery.split(/\<\<\-\-\>\>/);
    var galArray = new Array( );
    var addNewItem = true;
    for(var i = 0; i < galleryA.length; i++){
        if(i >= 30){
            break;
        }
        var tmp = galleryA[i].split(/\:\:\-\-\:\:/);
        if(!tmp[0] || !tmp[1]){
            continue;
        }
        var k, v;
        k = tmp[0];
        v = tmp[1];
        if(k == cookieKey){
            addNewItem = false;
        }
        if(k){
            if(v){
                galArray[k] = v;
            }
        }
    }
    if(addNewItem){
        galArray[cookieKey] = cookieVal;
    }

    buildGalleryCookie(galArray);

    if(showConfirmation){
        alert("Successfully added item to gallery");
    }

    return returnVal;
}

function buildGalleryCookie(galArray){
    var galString = "";
    for(var i in galArray){
        if(galArray[i]){
            galString += i;
            galString += "::--::";
            galString += galArray[i];
            galString += "<<-->>";
        }
    }
    setcookie('gallery', galString);
}

//########################################################################
//End Favorites/Gallery
//########################################################################

//ID of Daily Iframe tag:

function dyniframesize() {
var iframeids=["priceIframe"];
var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1];
var FFextraHeight=getFFVersion>=0.1? 24 : 0; //extra height in px to add to iframe in FireFox 1.0+ browsers
var dyniframe=new Array();

for (i=0; i<iframeids.length; i++){
if (document.getElementById){ //begin resizing iframe procedure
dyniframe[dyniframe.length] = document.getElementById(iframeids[i]);
if (dyniframe[i] && !window.opera){
dyniframe[i].style.display="block"
if (dyniframe[i].contentDocument && dyniframe[i].contentDocument.body.offsetHeight) //ns6 syntax
dyniframe[i].height = dyniframe[i].contentDocument.body.offsetHeight+FFextraHeight;
else if (dyniframe[i].Document && dyniframe[i].Document.body.scrollHeight) //ie5+ syntax
dyniframe[i].height = dyniframe[i].Document.body.scrollHeight;
}
}
}
}

