



function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\\\s)" + className + "(\\\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

var req;
function loadXMLDoc( url, outbin, searchTerm1, searchTerm2 ){
	req = false;
	if( typeof XMLHttpRequest != "undefined" ){
		req = new XMLHttpRequest();
	}
	else if( typeof window.ActiveXObject != "undefined" ){
		try{
			req = new ActiveXObject("Msxml2.XMLHTTP.4.0");
		}
		catch( e ){
			try{
				req = new ActiveXObject("MSXML2.XMLHTTP");
			}
			catch( e ){
				try{
					req = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch( e ){
					req = null;
					document.getElementById(outbin).innerHTML = "Your browser can\'t handle this script\n";
					return;
				}
			}
		}
	}
	if( req ){
		req.onreadystatechange = function(){ processReqChange( outbin, searchTerm1, searchTerm2 ); };
		req.open( "GET", url, true );
		req.send( "" );
	}
}

function processReqChange( outbin, searchTerm1, searchTerm2 ){
	searchTerm1A = searchTerm1.split('|');
	searchTerm2A = searchTerm2.split('|');
	if( req.readyState == 4 ){
		if( req.status == 200 ){
			doc = req.responseXML;
			dumpStuff = "";
			document.getElementById(outbin).innerHTML = dumpStuff;
			retailers =  new Array();
			matches = new Array();
			if ((searchTerm1A == "") || (searchTerm2A == "")){
				document.getElementById('retailersHeaderTextNone').style.display = 'block';	
				document.getElementById('retailersHeaderText').style.display = 'none';
			}
			if ( searchTerm1A != "" ){				
				var root = doc.getElementsByTagName('stores')[0];
				for (var iNode = 0; iNode < root.childNodes.length; iNode++) {/*this iNode corresponds to the store entity (when iNode = 0, the store = AMAZ, when iNode = 1, the store is BEST, etc. */
					var node = root.childNodes.item(iNode);					
					for (e = 0; e < node.childNodes.length; e++) {/*this e corresponds to the nodeName (when e = 0, sibling.nodeName = rid; when e = 1, sibling.nodeName = type, etc.)*/
					  var sibling = node.childNodes.item(e);						 
					  for (d = 0; d < sibling.childNodes.length; d++) {
						var sibling2 = sibling.childNodes.item(d);
						var dontAdd = false;
						var matchStore = false;
						var matchVn = false;
						if (searchTerm1A.length != 2) {
						   if ((sibling.nodeName == 'type') && (sibling2.data == searchTerm1A[0])) { 
							  matchStore = true;
							  }
						}
						else {
							if (sibling.nodeName == 'type') {
							 matchStore = true;
							}
						}
						if (node.nodeName == 'store'){
							for (b = 0; b < searchTerm2A.length; b++) {
								vnTags = node.getElementsByTagName(searchTerm2A[b])[0];
								vn = vnTags.childNodes[0];		
								if (vn.nodeValue == 'true') {
								  matchVn = true;  
								}
							  }

							  ridTags = node.getElementsByTagName('rid')[0];
							  rid = ridTags.childNodes[0];
							  for (c=0; c < matches.length; c++) {/*CHECK TO SEE IF MATCHING STORE IS ALREADY IN THE LIST*/
								  if (rid.nodeValue == matches[c]) {
									  dontAdd = true;	
								  }
							  }

							  if (matchStore && matchVn && !dontAdd) {
								  targ = matches.length + 1;
								  matches.splice(targ,0,rid.nodeValue);
								  logoTags = node.getElementsByTagName('logo')[0];
								  logo = logoTags.childNodes[0];
								  nameTags = node.getElementsByTagName('name')[0];
								  theName = nameTags.childNodes[0];

									trackingTags = node.getElementsByTagName('tracking-url')[0];
									trackingUrl = trackingTags.childNodes[0];
									/*checking to see if there is a second tracking tag in the xml*/
									if ((node.getElementsByTagName('tracking-url2')[0] != null) && (node.getElementsByTagName('tracking-url2')[0] != undefined)) {
										trackingTags2 = node.getElementsByTagName('tracking-url2')[0];
										trackingUrl2 = trackingTags2.childNodes[0];
										t2 = trackingUrl2.nodeValue;
									}
									else {
										t2 = '#';
									}								  	
								  	urlTags = node.getElementsByTagName('url')[0];
									urlUrl = urlTags.childNodes[0];
									if ((urlUrl.nodeValue != '#')) {
									
									hrefValue = '/' + getCurrentCulture() + '/buy/Redirect.aspx?r=' + encodeURIComponent(urlUrl.nodeValue) + '&t=' + encodeURIComponent(trackingUrl.nodeValue) + '&t2=' + encodeURIComponent(t2);
								  	dumpStuff += '<a href="' + hrefValue + '" target="_blank"><img src="/buy/dat/logos/' + logo.nodeValue + '" alt="' + theName.nodeValue + '" title="' + theName.nodeValue +'"/></a>';
									  }
									  else {
										dumpStuff += '<img src="/buy/dat/logos/' + logo.nodeValue + '" alt="' + theName.nodeValue + '" title="' + theName.nodeValue +'"/>';
									  }
							   }						
								
						}
					  
					  }
				
				   }
				   
				}
				
			}
			if (dumpStuff == '') {
				document.getElementById('retailersHeaderTextNone').style.display = 'block';	
				document.getElementById('retailersHeaderText').style.display = 'none';
			}
			else {
				document.getElementById('retailersHeaderText').style.display = 'block';	
				document.getElementById('retailersHeaderTextNone').style.display = 'none';
			}
			document.getElementById(outbin).innerHTML = dumpStuff;
		}
		else{
			document.getElementById(outbin).innerHTML = "There was a problem retrieving the XML data:\n" + req.statusText;
		}
	}
}

function getCurrentCulture() {
    return document.location.pathname.split('/')[1];    
}

var newsItems = new Array();
var controlIn = 1, controlOut = 0;
var inControl = 0, outControl = 1;

function fade(){
	if ( outControl - parseFloat(1/10) >= 0 ){
		inControl += parseFloat(1/10);
		newsItems[controlIn].style.opacity = inControl.toFixed(1);
		newsItems[controlIn].style.filter = 'alpha(opacity=' + inControl.toFixed(1)*100 + ')';
		outControl -= parseFloat(1/10);
		newsItems[controlOut].style.opacity = outControl.toFixed(1);
		newsItems[controlOut].style.filter = 'alpha(opacity=' + outControl.toFixed(1)*100 + ')';
		setTimeout("fade()", 30);
	}
	else{
		inControl = 0;
		outControl = 1;
		newsItems[controlOut].style.zIndex --;
		newsItems[controlIn].style.zIndex ++;
		if( newsItems.length-1 > controlIn ) controlIn++;
		else controlIn = 0;
		if( newsItems.length-1 > controlOut ) controlOut++;
		else controlOut = 0;
	}
}


function set_cookie ( name, value, expires, path, domain, secure ){
  var cookie_string = name + "=" + escape ( value );
	var today = new Date();
	today.setTime( today.getTime() );

	if ( expires ) {
	expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	cookie_string += "; expires=" + expires_date.toGMTString();

  if ( path )
        cookie_string += "; path=" + escape ( path );

  if ( domain )
        cookie_string += "; domain=" + escape ( domain );
  
  if ( secure )
        cookie_string += "; secure";
  document.cookie = cookie_string;
}

function filterRetailers(xmlFile) {
	/*create array of product checkbox group, save each checked product as its corresponding xml tag in Partners.xml */
	  var cbs1 = document.getElementById('modelSelector').getElementsByTagName('input');
	  productCbs = new Array();
	  for (var i = 0; i < cbs1.length; i++ ) {
		  if (cbs1[i].type == 'checkbox') {
			  if (cbs1[i].checked == true) {
				  cbId = cbs1[i].id;
				  if (cbId.indexOf('ctl00_ctl00_MainContentPlaceHolder_MainContentPlaceHolder_Model') != -1) {
					  cbIdArray = cbId.split('ctl00_ctl00_MainContentPlaceHolder_MainContentPlaceHolder_Model');
					  xmlProdTag = 'v' + cbIdArray[1];
				  }
				  else {
					  xmlProdTag = 'accessories';
				  }
				  productCbs.splice(0,0,xmlProdTag);

			  }
		 }
	  }

	 productCbs = productCbs.join("|");
	/*determine which store type is selected */
	  var cbs2 = document.getElementById('storeTypeSelector').getElementsByTagName('input');
		storeTypeCbs = new Array();
	  for (var i = 0; i < cbs2.length; i++ ) {
		  if (cbs2[i].type == 'checkbox') {
			  if (cbs2[i].checked == true) {
				  cbId = cbs2[i].id;
				  cbIdArray = cbId.split('ctl00_ctl00_MainContentPlaceHolder_MainContentPlaceHolder_');
				  xmlStoreTag = cbIdArray[1].toLowerCase();				  
				  storeTypeCbs.splice(0,0,xmlStoreTag);
				  
			  }
		 }
	  }
	storeTypeCbs = storeTypeCbs.join("|");
	loadXMLDoc( xmlFile, 'xmlDump', storeTypeCbs, productCbs );
}

function toggleRadios(thefile,off,on) {
	if (partnersXmlFile == thefile) {
		return
	}
	partnersXmlFile = thefile;
	document.getElementById(off).className = 'radioOff';
	document.getElementById(on).className = 'radioOn';
	filterRetailers(partnersXmlFile);
}


function buzzBubbles() {

    if (document.getElementById("major_news")) {
        for (var i = 0; (a = getElementsByClassName("major_news_item", "div", document.getElementById("major_news"))[i]); i++) {
            a.style.opacity = 0;
            a.style.filter = 'alpha(opacity=0)';
            newsItems.push(a);
        }
        newsItems[newsItems.length - 1].style.opacity = 1;
        newsItems[newsItems.length - 1].style.filter = 'alpha(opacity=100)';
        newsItems[newsItems.length - 1].style.zIndex = 1;
        //if( loadXML() ){ //load big news items
        controlIn = 0;
        controlOut = newsItems.length - 1;
        setInterval("fade()", 6000);
        //loadXML(); //load full list of items
        //}
        //loadXMLDoc( "/buzz.xml", "major_news", "" );
    }

    if (document.getElementById("minor_news")) {
        for (var i = 0; (blurb = getElementsByClassName("article_blurb", "div", document.getElementById("minor_news"))[i]); i++) {
            blurb.onmouseover = function() {
                bubble = getElementsByClassName("article_blurb_bubble", "div", this)[0];
                bubble.style.display = "block";
            }
            blurb.onmouseout = function() {
                bubble = getElementsByClassName("article_blurb_bubble", "div", this)[0];
                bubble.style.display = "none";
            }
        }
    }
}


if (typeof jQuery != 'undefined'){
	function showBubble(){ $(this).parent().parent().parent().find(".mino_personalized_blurb_holder").css("display","block"); }
	function hideBubble(){ $(this).parent().parent().parent().find(".mino_personalized_blurb_holder").css("display","none"); }
	$(document).ready(function(){
		var config = {
			sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)
			interval: 400, // number = milliseconds for onMouseOver polling interval
			over: showBubble, // function = onMouseOver callback (REQUIRED)
			timeout: 0, // number = milliseconds delay before onMouseOut
			out: hideBubble // function = onMouseOut callback (REQUIRED)
		};
		$(".mino_personalized a").hoverIntent( config );
	});
}
