
var xmlReq = new Array();
var xmlReqProcessed = new Array();
var countedProps = new Array();
var countedIds = new Array();
var countedNames = new Array();

var productGroupName;
var products = [];
var productsTapijten = [];
var listG = [];
var propsList ="";
var requestCount =0;
var itemsNumber=0;
var specIdsG;
var fixedValuesG = {};
var fillFunctions = [];
var currentItem = 0;
var size = 0;

function handler(){
	if (xmlReq1.readyState == 4) {
		if (xmlReq1.status == 200) {
			json = evalJSONRequest(xmlReq1);
			testCompare(json['ids']);
		}
		else
		{
			
		}
	}
}

function testCompare (skuIds){
    list = "";
	if (skuIds.length > 0){
		for( i = 0; i<skuIds.length;i++){
			list = list + skuIds[i]+",";
		}
		list = list.substring(0,list.length-1);
		listG = list.split(",");
		initOverview( listG, "Tapijten");
		showProducts(10);
	}
}

var showError = function (err){
        //alert ( err );
		//window.location.reload();
        }

function initOverview( productsList, pgName){

    productsTapijten = productsList;
    productGroupName=pgName;
}

function showProducts(p){
    pd = _g('productData');
    pd.innerHTML = "";
	
	if (_param("start")){
    start = parseInt(_param("start"));
    }else{
            start = 0;
    }

    size = productsTapijten.length;
    var ppp = parseInt(p);
    var c = start + ppp;
    var constStart = start;
	k = 0;
	var rows = (size - (size % 3))/3;
	var pd = _g('productData');
	
	var html="";
	html += '<table width="543" cellspacing="0" cellpadding="0" border="0" summary="table">';
	for (i=0;i< rows;i++){
		html += '<tr id="row_'+i+'"></tr>';
	}
	html += '</table>';

	pd.innerHTML += toHTML(html);
	

	
    for (var i = 0 ; i< size; i++) {
//        alert (i + ":" + c + ":" + products.length);
	if ( productsTapijten[i] != null ) {
		//alert(parseInt(productsTapijten[i]));
		importSpec(parseInt(productsTapijten[i]));
		
	}
    }
	/*
		var modulo = size % ppp;
		var allPages = (size - modulo) / ppp + 1;
		var currentPage = (start + ppp) /ppp;
        var str ="";
	    var trb = _g("linksBottom");
		trb.innerHTML = "";
		
		str += '<div class="over_2_select">';
		//left arrow
        	if (start > 0 ){
			str += '<div class="over_1_select_left"><a href="?subtype='+nameValue+'&key='+keyValue+'&start='+(start - ppp)+'" class="over_1_select_link"><img style="position:relative;top:1px;" src="'+imgUrl+'over_arrow_left.gif" width="28" height="11" border="0" alt="" />Vorige</a></div>';
	    	}
			else
			{
			str += '<div class="over_1_select_left">&nbsp;</div>';
			}
			str += '<div class="over_1_select_center"><span style="text-transform: uppercase;font-weight: bold;">'+subCollectieName+'</span>&nbsp;&nbsp;'+currentPage+'&nbsp;['+allPages+']</div>';
		//right arrow
		if (start+ppp < size ){
			//trb.innerHTML += "<a class=\"pr_more_link\" onclick=\"this.href+=checkedStr()\"  href=\"?start="+ (start + ppp) + (_param('skuIds')?'\&skuIds=' + _param('skuIds'):'')  + "&checkedProducts=" + "\" ><img src=\"http://85.17.176.217:8080/out/Proluna/assets/images/vector_right.gif\" width=\"7\" height=\"9\" border=\"0\" alt=\"\" /></a></div>";		
			str += '<div class="over_1_select_right"><a href="?subtype='+nameValue+'&key='+keyValue+'&start='+(start + ppp)+'" class="over_1_select_link">Volgende<img style="position:relative;top:1px;" src="'+imgUrl+'over_arrow_right.gif" width="28" height="11" border="0" alt="" /></a></div>';
	        }
		str += '</div>';
		trb.innerHTML = str;
	        //trb.innerHTML += link.innerHTML;
			*/
}


/* Advisor additional functions */




function doPost(str, handler){
	xmlReq1 = MochiKit.Async.getXMLHttpRequest();
	//alert(str);
    xmlReq1.open("POST",urlService,true);
    xmlReq1.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
    xmlReq1.onreadystatechange = handler;
    xmlReq1.send(str);
}


function fillValuesValue(uniqueId,valuesId,groupId,specId)
{
	//alert(functions);
	var str = "actionId=" + valuesId + "&groupId=" + groupId + "&specIds=" + specId + "&langId=" + langId;
	var fixedValues = {};

	
	d = loadJSONDoc(urlService+ "?" + str );
	d.addCallback(fillHandlerJSONValue, uniqueId,specId); 
	d.addErrback(JSONerr); 
}


function fillHandlerJSON(uniqueId,specIds,json){
	for(j=0;j<specIds.length;j++){
             sid = specIds[j];
             js = json["spec_"+sid];
             sel = getElement(uniqueId);
             opt = createDOM("Option",{"value":sid},js["label"])
             appendChildNodes(sel,opt);
        }
}

function getCount(countId,groupId,nameId,valueId){

	fixedValuesG = {};
	var str = "actionId=" + countId + "&groupId=" + groupId;
	
	str += "&" + nameId + "=" + valueId;
	str += "&langId=" + langId;
	doPost(str,handler);
}

function processSearch (valuesId ,groupId, specId){

	var str = "actionId=" + valuesId + "&groupId=" + groupId + "&specIds=" + specId + "&langId=" + langId;

	d = loadJSONDoc(urlService+ "?" + str );
	d.addCallback(getCountMain,specId); 
	d.addErrback(JSONerr); 
	}

function getCountMain(specId,json){

      js = json["spec_"+specId];
      ja = js["values"];
	  for (i=0;i<ja.length;i++){
			if (ja[i]!="")
				itemsNumber += 1;
	  }
      for(k=0;k<ja.length;k++){
				if (ja[k]!=""){
			    str = "actionId=67&groupId=81&col_" + specId + "=" +ja[k]+ "&langId=" + langId;
				doPost2(str,handler2);
				countedNames[k] = ja[k];
				}
				
	  }
	
}

function doPost2(str, handler2){
	xmlReq[requestCount] = MochiKit.Async.getXMLHttpRequest();
    xmlReq[requestCount].open("POST",urlService,true);
    xmlReq[requestCount].setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
    xmlReq[requestCount].onreadystatechange = handler2;
    xmlReq[requestCount].send(str);
    xmlReqProcessed[requestCount] = 0;
    requestCount += 1;
}

function handler2(){
	for(i=0;i<requestCount;i++)
	{
	if (xmlReq[i].readyState == 4 && xmlReqProcessed[i]==0)  {
		if (xmlReq[i].status == 200) 
			 {
			//alert(i);
			json = evalJSONRequest(xmlReq[i]);
			xmlReqProcessed[i] = 1;	
			countedProps[i] = json['ids'].length;	

			list ="";
			skuTable = json['ids'];
			for( j = 0; j<skuTable.length;j++){
				list = list + skuTable[j]+",";
				}
			list = list.substring(0,list.length-1);
			countedIds[i] = list;
			
	if (i == itemsNumber - 1){
	propsList ="";
	for (i=0;i<countedIds.length;i++)
	{
		propsList += countedIds[i] + ",";		
	}
	propsList = propsList.substring(0,propsList.length - 1);
	listG = propsList.split(",");
	initOverview( listG, "Tapijten");
	showProducts2(10);
	}
			}
			
		}

	}
	//alert("i:"+i);
	//alert("items:"+itemsNumber);

}

function showProducts2(p){
    pd = _g('productData');
    pd.innerHTML = "";
	
	if (_param("start")){
    start = parseInt(_param("start"));
    }else{
            start = 0;
    }

    size = productsTapijten.length;
    var ppp = parseInt(p);
    var c = start + ppp;
    var constStart = start;
    for (var i = start ; (i < c && i< size ) ; i++) {
//        alert (i + ":" + c + ":" + products.length);
	if ( productsTapijten[i] != null ) {
		//alert(parseInt(productsTapijten[i]));

			importSpec(parseInt(productsTapijten[i]));
		}

    }
        	
		var modulo = size % ppp;
		var allPages = (size - modulo) / ppp + 1;
		var currentPage = (start + ppp) /ppp;	
		var str ="";	
	    var trb = _g("linksBottom");
		str = "";
		//trb.innerHTML = "<div class=\"page_nr\">";
		str += '<div class="over_2_select">';
		//left arrow
        	if (start > 0 ){
			str += '<div class="over_1_select_left"><a href="?start='+(start - ppp)+'" class="over_1_select_link"><img style="position:relative;top:1px;" src="'+imgUrl+'over_arrow_left.gif" width="28" height="11" border="0" alt="" />Vorige</a></div>';
	    	}
			else
			{
			str += '<div class="over_1_select_left">&nbsp;</div>';
			}
			str += '<div class="over_1_select_center"><span style="text-transform: uppercase;font-weight: bold;">'+collectieName+'</span>&nbsp;&nbsp;'+currentPage+'&nbsp;['+allPages+']</div>';
		//right arrow
		if (start+ppp < size ){
			str += '<div class="over_1_select_right"><a href="?start='+(start + ppp)+'" class="over_1_select_link">Volgende<img style="position:relative;top:1px;" src="'+imgUrl+'over_arrow_right.gif" width="28" height="11" border="0" alt="" /></a></div>';
	        }
      
		str += '</div>';
		trb.innerHTML = str;
	        //trb.innerHTML += link.innerHTML;
}


function fillHandlerJSONValue(uniqueId,specId,json){
		if (pageType =="detail"){
				pd = _g('links_'+uniqueId);
			}
			else
			{
				pd = _g('links');
			}
		html ="";
         js = json["spec_"+specId];
         ja = js["values"];
	html += '<ul class="sp_ul_2">';
    for(k=0;k<ja.length;k++){
	properName = ja[k];

	while (properName.match(" "))
	{
		properName = properName.replace(" ","_");
	}
		if (ja[k]!= ""){
			if (pageType =="detail"){
				html +='<li class="sp_li_2"><a href="'+ url + typeName+'.html?subtype='+properName+'&key='+specId+'" name="col_'+specId+'" id="'+uniqueId+'" class="sp_li_link_2">'+ja[k]+'</a><br />';
			}
			else
			{
				html += '<li class="sp_li_2"><a href="?subtype='+properName+'&key='+specId+'" name="col_'+specId+'" id="'+uniqueId+'" class="sp_li_link_2">'+ja[k]+'</a><br />';
			}
	}
	}
	html += '</ul>';
	pd.innerHTML += html;
}

function JSONerr(err){
	alert("Error:" + err);
}

/*
function _param(name) {
   var url = window.location.href;
   var paramsStart = url.indexOf("?");

   if(paramsStart != -1){

      var paramString = url.substr(paramsStart + 1);
      var tokenStart = paramString.indexOf(name);

      if(tokenStart != -1){

         paramToEnd = paramString.substr(tokenStart + name.length + 1);
         var delimiterPos = paramToEnd.indexOf("&");

         if(delimiterPos == -1){
            return paramToEnd;
         }
         else {
            return paramToEnd.substr(0, delimiterPos);
         }
      }
   }

}

*/
/*From products.js*/
function importSpec ( skuId){

        dataurl = url +skuId+".json"
                var d = loadJSONDoc( dataurl );
                        d.addCallback( processJSON );
                                d.addErrback ( showError );
                                }
								
                                
var Specs = null;
var processJSON = function (data){

    Specs = data.specs;
    SpecsList = data.specsList;
    productId = data.productsList[ 0 ];
	product = data.products[ productId ];
	productGroup = data.productGroup;
/*	if (currentItem == 0)
	{
		buildTable (SpecsList, Specs);
	}
	*/
    addColumn (SpecsList, Specs,productId, productGroup, product);
	
}

function addColumn(specsList, specs,productId, productGroup, product) {

	var pd = _g('productData');
	
	var x;
	for (x in specs){
		if (specs[x]=="Image")
		{
			imageId = x;
		}
		if (specs[x]=="Machine")
		{
			machineId = x;
		}
		
	}
	currentRow = 'row_' + (currentItem - (currentItem % 3) )/ 3;
	var tr = _g(currentRow);	
	var td = document.createElement('td');
	td.setAttribute("align", "center");
	td.setAttribute("valign", "middle");
	td.setAttribute("class", "mp_foto_td");
	td.setAttribute("className", "mp_foto_td");
	tr.appendChild(td);
	td.innerHTML = '<img  src="'+imgUrl+'/trays/'+product.props[imageId]+'" border="0" alt="" width="94" height="93" />';
//onError=src="'+imgUrl+'/carpets/thumbs/carpet.gif"

	var td1 = document.createElement('td');
	td1.setAttribute('align', 'left');
	//td1.setAttribute("valign", "top");
	td1.setAttribute('class', 'mp_info_td_');
	td1.setAttribute('className', 'mp_info_td_');
	//td1.setAttribute('style', 'padding-top:10px');
	//td1.setAttribute('style','padding-top:10px');

	td1.style.verticalAlign = 'top';
	tr.appendChild(td1);	
	
	td1.innerHTML = '<div style="margin-top: 10px;"><a href="#" onClick="javascript: goToMachine(this);" class="" id="'+groupId+','+titleId+','+product.props[machineId]+'"><img src="'+imgUrl+'/ikonka.gif" width="7" height="7" border="0" alt="" />&nbsp;' + product.props[machineId] + '</a><br /></div>';


	currentItem += 1;
}
	
	function goToMachine(props1, props2, props3){
	//	var props =	object.id;
	//	var machineData = props.split(",");
		getMachine(67,props1,props2,props3);
		
	}
	
	function getMachine(countId,groupId,nameId,valueId){
	fixedValuesG = {};
	var str = "actionId=" + countId + "&groupId=" + groupId;
	
	str += "&" + nameId + "=" + valueId;
	str += "&langId=" + langId;
	doPost(str,handlerMachine);
}

function handlerMachine(){
	if (xmlReq1.readyState == 4) {
		if (xmlReq1.status == 200) {
			json = evalJSONRequest(xmlReq1);
			skuIds = json['ids'];
			list = "";
			if (skuIds.length > 0){
			for( i = 0; i<skuIds.length;i++){
				list = list + skuIds[i]+",";
			}
			list = list.substring(0,list.length-1);
			listG = list.split(",");
			initOverview( listG, pgName);
			/*Redirect to machine*/
			//alert(productsTapijten[0]);
			document.location.href = 'detail_'+pgName+'_'+productsTapijten[0]+'.html';
			}
		}
		else
		{
			
		}
	}
}

	
	function buildTable (specsList, specs){

	var pd = _g('productData');
	
	var html="";
	
	html += '<table cellpadding="0" cellspacing="0" border="0" width="100%">';
	html += '<tr id="first_row"></tr>';
	html += '<tr id="second_row"></tr>';	
	html += '</table>';

	pd.innerHTML += toHTML(html);
}
	
/*Tray gallery*/	
function getCountTray(countId,groupId,nameIds,valueIds){

	fixedValuesG = {};
	var str = "actionId=" + countId + "&groupId=" + groupId;
	
	str += "&" + nameId + "=" + valueId;
	str += "&langId=" + langId;
	doPost(str,handler);
}


