
var ajax = new AjaxClient();
var imgPreloader = 'http://images.ciao.com/iuk/images/icons/preloader.gif';
var imgZuruck = 'http://images.ciao.com/ide/images/icons/offer_nav_down.gif';

var heights = new Array();
var criterias = new Array();


//////////////////////////////////////

function expandCriteria( criterionId, categoryId, sString ) {
		
	var params = new Object();	
	params[ 'iCriterionId' ] = criterionId;
	params[ 'iCategoryId' ] = categoryId;	
	params[ 'sLocation' ] = document.location.pathname;

	
	ajax.extraParams['criterionId'] = criterionId
	
	cbExpandCriteriaLoading();
	
	ajax.onSuccess = cbExpandCriteriaSuccess;
	//ajax.onLoading = cbExpandCriteriaLoading;
	ajax.onError = cbExpandCriteriaError;
	ajax.call( '/ajax.php', 'GET', 'NavigableOffersAjaxHandler', 'getValuesForCriterion', params );
}

function cbExpandCriteriaSuccess( result ) {
	var criterionId = result[ 'criterionId' ];	
	var elementId = 'listOfCriteria' + criterionId;
	var back_link = result['strings']['back'];
	var itemCount = result['count'];	
	var line = '';
	var i = 0;
	
	document.getElementById( 'preLoader' + criterionId ).style.display = 'none'
	document.getElementById( 'divZuruck' + criterionId ).style.display = 'block'
		
	document.getElementById( elementId ).style.height = 250 + 'px';
	document.getElementById( elementId ).style.overflow = 'auto';
			
	if( itemCount > 0 && itemCount <= 2 ) {		
		
		for( i; i<result.values.length; i++ ) {
			v = result.values[i];
			line = '<a href="' + v['url'] + '">' + v['name'] + '</a> <span class="subnr">(' + v['count'] + ')</span><br />';
			document.getElementById( elementId ).innerHTML += line;
		}
		
	} else {
		for( keyVar in result.values_by_letter ) {
			line = '<div class="hdl" id="letterDiv' + keyVar + 'ForId' + criterionId +'">';
			document.getElementById( elementId ).innerHTML += line;
			document.getElementById( 'letterDiv' + keyVar + 'ForId' + criterionId  ).innerHTML += keyVar;
			document.getElementById( elementId ).innerHTML += '</div>';
			document.getElementById( elementId ).innerHTML +=  '<ul id="letter' + keyVar + 'ForId' + criterionId +'">';
			v = result.values_by_letter[keyVar];
			var i = 0;
			for( i; i<v.length; i++ ) {
				res = v[i];
				line = '<li><a href="' + res['url'] + '">' + res['name'] + '</a> <span>(' + res['count'] + ')</span></li>';
				document.getElementById( 'letter' + keyVar + 'ForId' + criterionId ).innerHTML += line;
			}
			document.getElementById( elementId ).innerHTML += '</ul>';
		}		
	}
		
}

function cbExpandCriteriaLoading() {
		
	criterionId = ajax.extraParams[ 'criterionId' ];
	var elementId = 'listOfCriteria' + criterionId;	
		
	// Save current data
	heights[criterionId] = document.getElementById( 'listOfCriteria' + criterionId ).offsetHeight;	
	criterias[criterionId] = document.getElementById( elementId ).innerHTML;
	
	document.getElementById( elementId ).innerHTML = '';		
	document.getElementById( 'preLoader' + criterionId ).style.display = 'block'	
}

function cbExpandCriteriaError( errorMessage, result ) {
	var criterionId = result[ 'criterionId' ];
	var elementId = 'moreCriteria' + criterionId;
	document.getElementById( elementId ).innerHTML = 'error2: ' + errorMessage + '|';
}

//////////////////////////////////////

function changeSelectedCriteria( criterionId, categoryId, sString, sLocation ) {
	var params = new Object();
	params[ 'iCriterionId' ] = criterionId;
	params[ 'iCategoryId' ] = 900001;	
	params[ 'sLocation' ] = sLocation;
	
	ajax.extraParams['criterionId'] = criterionId
	
	cbChangeSelectedCriteriaLoading();
		
	ajax.onSuccess = cbChangeSelectedCriteriaSuccess;
	//ajax.onLoading = cbChangeSelectedCriteriaLoading;
	ajax.onError = cbChangeSelectedCriteriaError;
	ajax.call( '/ajax.php', 'GET', 'NavigableOffersAjaxHandler', 'getValuesForCriterion', params );
}

function cbChangeSelectedCriteriaSuccess( result ) {
	var criterionId = result[ 'criterionId' ];
	var elementId = 'chosenCriteria' + criterionId;
	var back_link = result['strings']['back'];
	var itemCount = result['count'];
	var line = '';
	var i = 0;

	document.getElementById( elementId ).innerHTML = '';
	document.getElementById( 'cpLoader' + criterionId ).style.display = 'none'
	
	//debugToDiv( result, 'moreCriteriaCell102', 0)
	
	for( i; i<result.values.length; i++ ) {
		
		v = result.values[i];
		line = '<a href="' + v['url'] + '">' + v['name'] + '</a> <span class="subnr">(' + v['count'] + ')</span><br />';
		document.getElementById( elementId ).innerHTML += line;
		
	}
	
	//document.getElementById( 'cpZuruck' + criterionId ).style.display = 'block'
	document.getElementById( 'cpZuruckContainer' + criterionId ).style.display = 'block'
	
	//document.getElementById( elementId ).innerHTML += '<a href="javascript:closeSelectedCriteriaList(\'' + elementId + '\');">' + back_link + '</a><br />';
}

function closeSelectedCriteriaList( elementId ) {
	document.getElementById( 'chosenCriteria' + elementId ).innerHTML = '';
	//document.getElementById( 'cpZuruck' + elementId ).style.display = 'none';
	document.getElementById( 'cpZuruckContainer' + criterionId ).style.display = 'none'
}

function hideCriteriaValues( elementId ) {
	var element = 'listOfCriteria' + elementId;	
		
	document.getElementById( element ).innerHTML = criterias[elementId]
	document.getElementById( element ).style.display = 'block';
	document.getElementById( element ).style.overflow = 'hidden';
	document.getElementById( element ).style.height = ( heights[elementId] + 10 ) + 'px';
	document.getElementById( 'divZuruck' + elementId ).style.display = 'none'
}

function cbChangeSelectedCriteriaLoading() {
	
	criterionId = ajax.extraParams['criterionId']
	var elementId = 'chosenCriteria' + criterionId;
	
	// Set the paragraph-container for preloader
	//var p = document.createElement('p');
	//p.setAttribute( 'id', 'cpLoader' + criterionId );
	//p.setAttribute( 'class', 'offerCategoryLoading' );
	//document.getElementById( elementId ).appendChild(p);
	
	// Add preloader image
	//var img = document.createElement('img');
	//img.src = imgPreloader;
	//img.width = 16;
	//img.height = 16;	
	//img.align = 'absmiddle';
	
	// Put it all together
	//document.getElementById( 'cpLoader' + criterionId ).appendChild(img);	
	//document.getElementById( 'cpLoader' + criterionId ).innerHTML += ' ' + sString;
	document.getElementById( 'cpLoaderContainer' + criterionId ).style.display = 'block'
	document.getElementById( 'cpLoader' + criterionId ).style.display = 'block'
}

function cbChangeSelectedCriteriaError( errorMessage, result ) {
	var criterionId = response[ 'criterionId' ];
	var elementId = 'chosenCriteria' + criterionId;
	document.getElementById( elementId ).innerHTML = 'error: ' + errorMessage + '|';
}
