/* The index of the array is the PF PID. The value is the Wine.com PID */

var wineProductsBaseURL = "http://www.wine.com/v6/giftcenter/proflowersproduct.aspx?product_id=";
var wineProductsNoProdURL = "http://www.wine.com/v6/giftcenter/proflowers.aspx";
var wineProductsRefCode = "&S="; 
var wineProductsRefCodeNoProd = "?S="; 
var wineProductsCatID = "&CID=";
var wineProductsOmRef = "&pvref=";
var wineProductsOmCat = "&pvcatid=";
var wineProductsOmBrand = "&pvcobrand=";
var wineProductsOmPid = "&pvpid=";
var wineProductsOmSort = "&pvsort=";

var giftCardsBaseURL = "http://proflowers.cardways.com/CP001/ClientInterface/CreateGiftCard.asp?cltid=144&cardtype=bifold" ;
var redEGiftCardsBaseURL = "http://redenvelope.cardways.com/CP001/ClientInterface/CreateGiftCard.asp?cltid=145&cardtype=bifold";
var gcQueryPartner = "&p=";
var gcQueryLoc = "&l=";
var gcQueryRef = "&r=";
var gcQueryCat = "&c=";
var giftCardMagicNumber = "$10.00";

var floristExpressBaseURL = "http://www.floristexpress.net/products/"

var giftCardProducts = []; 
/* Testing example below for gift cards. */
/*
giftCardProducts[41648] = "41648";
giftCardProducts[40805] = "40805"; 
giftCardProducts[19973857] = "19973857";
*/
/* ProFlowers productID */
giftCardProducts[30001117] = "30001117"; 
/* ProFlowers 2nd productID */
giftCardProducts[30001677] = "30001677"; 
/* RedE productID */
giftCardProducts[30001471] = "30001471";

var wineProductsArray = [];
/* Testing example below for wine products. */  

/*
wineProductsArray[30000122] = "96526";
wineProductsArray[40735] = "93459";
wineProductsArray[21322193] = "93459";
*/
 
/* Main set of productIDs */
wineProductsArray[30000036] = "96542";
wineProductsArray[30000083] = "96537";
wineProductsArray[30000084] = "96528";
wineProductsArray[30000037] = "96529";
wineProductsArray[30000038] = "96540";
wineProductsArray[30000039] = "96533";
wineProductsArray[30000085] = "96543";
wineProductsArray[30000086] = "96544";
wineProductsArray[30000040] = "96541";
wineProductsArray[30000087] = "96538";
wineProductsArray[30000041] = "96530";
wineProductsArray[30000042] = "96527";
wineProductsArray[30000043] = "96539";
wineProductsArray[30000090] = "96545";
wineProductsArray[30000044] = "96534";
wineProductsArray[30000045] = "96531";
wineProductsArray[30000088] = "96536";
wineProductsArray[30000046] = "96526";
wineProductsArray[30000058] = "96532";
wineProductsArray[30000089] = "96535";
wineProductsArray[30002079] = "97563";
wineProductsArray[30002080] = "97564";
wineProductsArray[30002257] = "97734";
wineProductsArray[30002258] = "97735";
wineProductsArray[30002259] = "97736";
wineProductsArray[30002260] = "97737";
wineProductsArray[30002965] = "98059";
wineProductsArray[30004358] = "99883";
wineProductsArray[30004359] = "99883";
/* Father's Day wine product(s). */  
wineProductsArray[30003686] = "98999";



var floristExpressProductsArray = [];

/* Testing example below for florist express. */  
/*JUN SiteTests -PIR 18625 FLE products on PF- SM */
floristExpressProductsArray[30003816] = "how_sweet_it_is.htm?" + "refcode=" + getGroup() + "&pfc=1"; 
floristExpressProductsArray[30003817] = "make_a_wish.htm?" + "refcode=" + getGroup() + "&pfc=1"; 
floristExpressProductsArray[30003818] = "sunny_smiles.htm?" + "refcode=" + getGroup() + "&pfc=1"; 
floristExpressProductsArray[30003819] = "1_dozen_long_stemmed_red_roses.htm?" + "refcode=" + getGroup() + "&pfc=1"; 
floristExpressProductsArray[30002944] = "warm_thoughts_arrangement.htm?" + "refcode=" + getGroup() + "&pfc=1"; 

floristExpressProductsArray[30002939] = "gentle_thoughts_spray.htm?refcode=PFF&pfc=1";
floristExpressProductsArray[30002940] = "basket_of_light.htm?refcode=PFF&pfc=1";
floristExpressProductsArray[30002941] = "basket_of_faith.htm?refcode=PFF&pfc=1";
floristExpressProductsArray[30002942] = "celebration_of_life_standing_spray.htm?refcode=PFF&pfc=1";
floristExpressProductsArray[30002943] = "white_promises_spray.htm?refcode=PFF&pfc=1";
floristExpressProductsArray[30002945] = "remembering_forever.htm?refcode=PFF&pfc=1";
floristExpressProductsArray[30002946] = "brighter_blessings_casket_spray.htm?refcode=PFF&pfc=1";
floristExpressProductsArray[30002947] = "deluxe_pure_white_casket_spray.htm?refcode=PFF&pfc=1";
floristExpressProductsArray[30002948] = "graceful_tribute_casket_spray.htm?refcode=PFF&pfc=1";





var prevPID; 

var brand = getBrand(location); 
var group = getGroup();
var ref = (GetQueryStringParam("ref") == false) ? "NoRef" : GetQueryStringParam("ref");
var loc = "ProdLink";

function findExternalProducts() {   
    if (document.getElementsByTagName){   
        var links = document.getElementsByTagName("a");
        var numFound = 0; 
        var productPID;
        var numLinks = links.length;
        for (var i=0; i < numLinks; i++) {        
            productPID = getPID (links[i].href);

            if ( productPID != "" ){
                if ( !doWineProducts( productPID, links[i] ) ){
                    if(!doGiftCardProducts( productPID, links[i] )){
                        doFloristExpressProducts(productPID, links[i]); 
                    }
                } 
            }
        }
    }
}

function doWineProducts( productPID, link ) {
    if ( wineProductsArray[productPID] ) {
		var pos = getViewPos(link);
        link.href = wineProductsBaseURL + wineProductsArray[productPID] + wineProductsRefCode + brand + "_" + loc + "_" + group + "_" + ref + wineProductsCatID + brand + 
						"_" + loc + "_" + group + "_" + ref + wineProductsOmRef + ref + wineProductsOmCat + group + wineProductsOmBrand + brand + wineProductsOmSort + pos + wineProductsOmPid + productPID;
        link.target = "_blank";
        return true;
    }
}

function doGiftCardProducts( productPID, link ){
    var result = false;

    /* Check for gift card products. */
    if ( giftCardProducts[productPID] ){
        result = true;
        
        /* Helps us track where we are. */ 
        if ( prevPID == "" | prevPID != productPID ){
            prevPID = productPID; 
            numFound = 0;
        }
        numFound++;
        if ( brand.toUpperCase().match("RED") != null ){
            link.href = redEGiftCardsBaseURL;
        }
        else{   
            link.href = giftCardsBaseURL;   
        }
        
        link.target="_blank";
        link.href += gcQueryPartner + brand + gcQueryLoc + loc + gcQueryCat + group + gcQueryRef + ref;
        
        if ( numFound == 1 ){
            /* Adjust strikethrough pricing styles - getElement method. */ 
            
            eltemp = link.nextSibling; 
            
            if ( eltemp != null ){
                /* Adjust strikethrough pricing styles - navigation method. */ 
                 el = link.nextSibling.nextSibling;                  

                if ( el != null && el.hasChildNodes ){
                    el = el.firstChild;
                }

                if ( el != null ){
                    if ( el.innerHTML == giftCardMagicNumber ){
                        el.className = 'productPrice';
                        el.style.textDecoration = 'none';
                        el.innerHTML = el.innerHTML + " - ";
                    }
                }
            }

        }
    }    
    
    return result;
}

function doFloristExpressProducts( productPID, link ){
   if ( floristExpressProductsArray[productPID] ) {
        link.href = floristExpressBaseURL + floristExpressProductsArray[productPID];
        link.target = "_blank";
        return true;
   
   } 
}

function getViewPos( url )
{
	name = "viewpos";
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( url );
	if( results == null )
		return "";
	else
		return results[1];
}

function getPID( url ){
    var regExPattern = /-\d+\?/; /* find one or more occurences of a digit [ \d+ ] prefixed by [ - ] and suffixed by [ \? ] */
    
    var result = url.match( regExPattern);
    if (result != null){ 
        var returnValue = result[0];
        returnValue = returnValue.replace("-", "");
        returnValue = returnValue.replace("?", "");
        
        if ( parseInt(returnValue) ){
            return returnValue;
        }
    }
    else{
        if ( GetQueryStringParam("pid") != false )
        return GetQueryStringParam("pid");
    }
    return ("");   
}

function getBrand( url )
{
    loc = url.hostname;
    
    if ( loc.toUpperCase().match("REDENVELOPE") != null ){
        return "RED";
    }   
    else if ( loc.toUpperCase().match("PROFLOWERS") != null ){
        return "PFC";
    }
    else if ( loc.toUpperCase().match("CHERRYMOONFARMS") != null ){
        return "CMF";
    }
    else if ( loc.toUpperCase().match("SECRESTSPOON") != null ){
        return "SSS";
    }
    
    return "NoBrand";
}

function getGroup(){
    var grp = ( location.pathname.lastIndexOf("-") != -1 ) ? location.pathname.substring(location.pathname.lastIndexOf("-")+1,location.pathname.length) : "NoGroup"; 
    if ( grp == "NoGroup" ) grp = ( GetQueryStringParam("catid") != false ) ? GetQueryStringParam("catid") : "NoGroup"; 
    if ( grp == "NoGroup" ) grp = ( GetQueryStringParam("pageid") != false ) ? GetQueryStringParam("pageid") : "NoGroup"; 
    if ( grp != "NoGroup" ) grp += ( GetQueryStringParam("code") != false ) ? "_" + GetQueryStringParam("code") : ""; 
    return grp; 
}

function openCardURL( linkLoc ){
	var cardURL = (brand.toUpperCase().match("RED") != null ) ? redEGiftCardsBaseURL : giftCardsBaseURL;
    cardURL += gcQueryPartner + brand + gcQueryLoc + linkLoc + gcQueryCat + group + gcQueryRef + ref;
    if ( GetQueryStringParam("test") == "true" ) alert(cardURL);
    window.open(cardURL,"_blank")
}

function openWineURL( linkLoc ){
    var wineURL = wineProductsNoProdURL + wineProductsRefCodeNoProd + brand + "_" + linkLoc + "_" + group + "_" + ref + wineProductsCatID + brand + "_" + linkLoc + "_" + 
		group + "_" + ref  + wineProductsOmRef + ref + wineProductsOmCat + linkLoc + wineProductsOmBrand + brand + wineProductsOmSort + wineProductsOmPid;
    if ( GetQueryStringParam("test") == "true" ) alert(wineURL);
	window.open(wineURL, "_blank");
}
