// |SCItem|id::itemId;;attribName::attribValue;;attribName2::attribValue;;attribNameX::attribValue|SCItem|
// http://shopping.netsuite.com/s.nl/c.275594/n.1/sc.7/category.4897/.f?range=31,123,123
var paginationUrls = new Array();
var paginationIndex = 0;
var loadingDiv = 'loadingDiv';
var loadingImg = "http://shopping.netsuite.com/c.332655/site/scripts/ajax-loader.gif";

function injectItems(){
	var rangeUrl = document.URL;
	var formTable = document.getElementById('form0').parentNode.parentNode;
	var hrefs = formTable.getElementsByTagName('a');
	for ( var i=0;i<hrefs.length;i++){
		link = hrefs[i];
		if(link.href.indexOf('range=') != -1 && link.innerHTML.indexOf('img') == -1){
			add_url(link.href)
		}
	}
	if ( paginationUrls.length == 0 || (document.URL+"#") == paginationUrls.toString()) return;
	makeAjaxCall();
}

function add_url(url){
	for(var i =0; i<paginationUrls.length;i++){
		if (paginationUrls[i] == url ){
			return ;
		}
	}
	paginationUrls[paginationUrls.length] = url;
}

function makeAjaxCall(){
	url = paginationUrls[paginationIndex];

	loadingDiv = document.getElementById('loadingDiv');
	loadingDiv.style.display="none";
	
	try {
		var numbers = url.split("range=")[1].split(",");
		loadingDiv.style.display = "block";
		loadingDiv.innerHTML = "<br/><img src='"+loadingImg+"' /><br/>&nbsp;<b>Loading</b>: <br/>"+numbers[0]+"-"+numbers[1]+"/"+numbers[2]+"<br />";
	} catch (e) {}
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	if ( itemctrl.reportMsgs == true){ alert("About to make AJAX CALL TO - "+url);}
	xmlHttp.onreadystatechange=getAndParseItems;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);	
}

function getAndParseItems(){
	try{
		if(xmlHttp.readyState == 4) {
			if(xmlHttp.status == 200) {
				var rStr = xmlHttp.responseText;
				paginationIndex += 1;
				//var rStr = ""
				//Parsing the string
				var crudeSplit = rStr.split('|SCItem|');
				var itemsStrings = new Array();
				
				//Starting from 1 and adding 2 because the string in the start, the end, and between the items is trash html
				items = new Array();
				itemsHtml = new Array();
				for ( var i =1; i<crudeSplit.length;i += 2){
					istr = crudeSplit[i];
					itemObj = parseItemStr(istr);
					//Making and storing the item
					items[items.length] = itemObj;
				}
				
				injectToController(items);
				if ( paginationIndex < paginationUrls.length){
					makeAjaxCall();		
				} else {
					document.getElementById('loadingDiv').style.display="none";
					setTimeout("UNPM();",500);
				}
			}
		}
	} catch ( e) {	}
}

function parseItemStr(istr){
	iParamsAndValues = istr.split(';;');
	iId = iParamsAndValues[0];
	iId = "pItem|"+iId.split('::')[1];
	itemObj = new SC_Item(iId);
	
	//Getting Params for the params Array
	for ( var x=1;x<iParamsAndValues.length;x++){
		apv = iParamsAndValues[x].split('::');
		paramName = apv[0];
		paramValue = apv[1];
		if ( paramName == "Price" ){
			ranges = _addedRanges[paramName];
			rlen = ranges.length;
			pri = exn(paramValue);
			val = 0
			while(rlen--){
				if ( pri >= ranges[rlen][0] && pri < ranges[rlen][1] )
					val = "$" + (ranges[rlen][0]+1) + "- $" + ranges[rlen][1];
			}
			itemObj.addAttribute((itemObj.getId()+x),paramName+"-R",val, "false");
		}
		itemObj.addAttribute((itemObj.getId()+x),paramName,paramValue, "false");
	}
	return itemObj;
}

function injectToController(items){
	for ( var i =0; i<items.length;i++){
		var it = items[i];
		itemctrl.addSC_Item(it);
		itemctrl.addItemIdToShow(it);
	}
	itemctrl.showFilteredItems();
	addFinishLinks();
}

function GetXmlHttpObject() {
	var xmlHttp=null;
	try {
	  // Firefox, Opera 8.0+, Safari
	  xmlHttp=new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}



