var bnNav = {
    setCsXSLTCookie:function(yesOrNo){
        this.setCookie("csxslt",yesOrNo);
    },
    checkIfSupported: function(){
       XslParams.paramsCollection["transform"] = "y";
       var result = XmlUtil.xslTransform("/include/xxl/navbar/navTest.xml","/include/xxl/navbar/navTest.xsl");
       if (result && result=="Pass")
            this.setCsXSLTCookie("yes");
       /*if (result.firstChild) {
            if (result.firstChild.nodeValue=="Pass")
                this.setCsXSLTCookie("yes"); 
       }
       else if (result=="Pass") {
            this.setCsXSLTCookie("yes");
       }*/
    },
    render: function(xmlUrl,xslUrl){
        var nav = XmlUtil.xslTransform(xmlUrl,xslUrl,"navContainer");     
        if (nav==null)
            this.setCsXSLTCookie("no");
        /*    
        if (document.getElementById("promo") && document.getElementById("promo").textContent) {
            document.getElementById("promo").innerHTML = document.getElementById("promo").textContent;    
        }
        */
    },
    getCookie: function(Name) {
        var search = Name + "="   
        if (document.cookie.length > 0) { // if there are any cookies 
             offset = document.cookie.indexOf(search)       
             if (offset != -1) { // if cookie exists          
             offset += search.length          
             // set index of beginning of value 
             end = document.cookie.indexOf(";", offset)          
             // set index of end of cookie value         
             if (end == -1)             
 	            end = document.cookie.length         
	            return unescape(document.cookie.substring(offset, end))      
	            }    
            }
    },
    setCookie: function(c_name,value,days) {
        if(days){
            (time = new Date()).setTime(new Date().getTime()+days*24*60*60*1000);
            var exp = '; expires='+time.toGMTString();
        }else{
            var exp='';
        }
        document.cookie=c_name+"="+value+exp+"; domain=barnesandnoble.com;path=/";
    },
    buildPromo: function(PID, isMember, sourceID) {
		elm = document.getElementById('hb-members');
		if (!elm) return;
		
		var cdsPage = "http://www.barnesandnoble.com/promo/cds_bannerpromo.asp?PID=";
		if (isMember)
		    cdsPage = "http://www.barnesandnoble.com/promo/cds_bannerpromo_mbr.asp?PID=";
		
		elm.removeAttribute("style");
		
		elm.innerHTML = "";
		var promoIframe = document.createElement("iframe");
		promoIframe.setAttribute("id","promoIframe");
		if (sourceID=="") {
			promoIframe.src = cdsPage + PID;
        } else {
			promoIframe.src = cdsPage + PID + "&xx=" + sourceID;
        }	
		promoIframe.scrolling = "no";
        promoIframe.setAttribute("frameBorder", 0);
        elm.appendChild(promoIframe);
     }
}

// ************************************************************************************************
// The following code is for the iframed CDS promo on Search Results and Product Pages
// ************************************************************************************************

var jsIframe_js = true;

function makeIframeWithPID (pid, host, url, qs, width, height, kw) {
	var iSrc;
	var iHost;
	var iURL;
	var iQS;
	var iWidth;
	var iHeight;
	var iKw;
	if (!host) {
		iHost = "www.barnesandnoble.com";
	} else {
		iHost = host;	
	}
	if (!url) {
		iURL = "newsletters/kmp_iframe_cds2.asp";
	} else {
		iURL = url;	
	}
	if (!qs) {
		iQS = "";
	} else {
		iQS = "&"+qs;	
	}
	if (!width) {
		iWidth = "192";
	} else {
		iWidth = width;	
	}
	if (!height) {
		iHeight = "183";
	} else {
		iHeight = height;	
	}
	
	if (!kw) {
		iKw = "";
	} else {
		iKw = "&kw="+kw;	
	}
	
	if (!pid) {
		alert("A PID is required to create the js iframe!");
		return(true);
	} else if (!IsNumeric(pid)) {
		alert("The PID must be numeric to create the js iframe!");
		return(true);	
	} else {
		document.write("<iframe src=\"http://" + iHost + "/" + iURL + "?pid=" + pid + iQS + iKw + "\" width=\"" + iWidth + "\" height=\"" + iHeight + "\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\"\/><\/iframe>");
		return(true);
	}			
}

function IsNumeric(sText) {
	var ValidChars = "0123456789";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}
	return IsNumber;
}


