function updateImage(csv) {
	httpObj = createXMLHttpRequest(doUpdate);
	if (httpObj) {
		httpObj.open("GET", csv, true);
		httpObj.send(null);
	}
}

function doUpdate() {
	if ((httpObj.readyState == 4) && (httpObj.status == 200)) {
		var ajax_filter = createAjaxFilter();
		var text = ajax_filter(httpObj.responseText);
		var arr = parseText(text);
		
		for( key in arr ){
			if( !key ) continue;
			shuffle(arr[key]);
			var productData = arr[key][0];
			
			var node = document.getElementById(key);
			if(node){
				var imgTags = node.getElementsByTagName("img");
				if(imgTags && imgTags[0]) imgTags[0].src = 	productData[1];			
				var aTags = node.getElementsByTagName("a");
				if(aTags && aTags[0]) aTags[0].href = productData[0];			
			}
		}
	}
}

function parseText(str) {
	var CR = String.fromCharCode(13);
	var LF = String.fromCharCode(10);
	var lineData = str.split(LF);

	var result = new Array();
	for (var i = 0; i < lineData.length; i++) {
		var cells = lineData[i].split(",");
		var key = cells[0];
		var value = cells.slice(1);
		
		if( !result[key] ) result[key] = new Array();
		result[key].push(value);
	}
	return result;
}

function createAjaxFilter(){
	if (navigator.appVersion.indexOf("KHTML") > -1) {
		return function(t) {
			var esc = escape(t);
			return (esc.indexOf("%u") < 0 && esc.indexOf("%") > -1) ? decodeURIComponent(esc) : t
		}
	} else {
		return function(t) {
			return t
		};
	}
}

function shuffle(list) {
	var i = list.length;
	while (--i) {
		var j = Math.floor(Math.random() * (i + 1));
		if (i == j) continue;
		var k = list[i];
		list[i] = list[j];
		list[j] = k;
	}
	return list;
}

function createXMLHttpRequest(cbFunc){
    var XMLhttpObject = null;
    try{
        XMLhttpObject = new XMLHttpRequest();
    }catch(e){
        try{
            XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e){
            try{
                XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
            }catch(e){
                return null;
            }
        }
    }
    if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc;
    return XMLhttpObject;
}
