var maxCompareItems = 3;
var compareArrayClosed = 0;
var showCompare = '';
var compareLink = '';

var activePage = 1;
var oldPage;
var numberOfPages;
var heightArray = new Array();

var strHref = window.location.href;
var printView = 0;

window.addEvent('domready', function(){
	if(activePageFromServer != false)activePage = activePageFromServer;
  
	if (strHref.indexOf("?") > -1){
		var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
		var aQueryString = strQueryString.split("&");
		aQueryString.each(function(item){
			if(item == "print=1"){
				printView = 1;
			}
		});
	}
  
	if(numberOfActiveCompare == 3){
		setCompareArrayClosed();
	}
	numberOfPages = numberOfSites;
	for(var i=1;i<=numberOfPages;i++){
		heightArray[i] = $('rehadb_list_page' + i).scrollHeight;
	}
	
	if($('rehadb_compare_btn')) {
		$('rehadb_compare_btn').addClass('compare_inactive');
	}
	if(numberOfFacilities != 0) {
		setPageStatus();
	} 
	refreshCompareList();
  
	if($('compare_overlay')){
		$('compare_overlay').addEvent('mouseover',function(e){
			var test = e;
			if($('rehadb_compare_btn').hasClass('compare_inactive')){
				var positionArray = e.page;
				var infoDiv = new Element('div',{'id':'rehadb_compare_infodiv'});
				$(infoDiv).set('html', 'Sie m&uuml;ssen mindestens 2 Einrichtungen ausw&auml;hlen');
				$(infoDiv).setStyles({left:positionArray.x-195,top:positionArray.y+5});
				var bodyTag = $$('body');
				$(infoDiv).inject(bodyTag[0]);
				$(infoDiv).addEvent('mouseout',function(){
					$(infoDiv).dispose();
				});
			}
			else $('rehadb_compare_btn').addClass('hover_effect');
		});
		$('compare_overlay').addEvent('mouseout',function(){
			if($('rehadb_compare_btn').hasClass('hover_effect'))$('rehadb_compare_btn').removeClass('hover_effect');
			if($('rehadb_compare_infodiv'))$('rehadb_compare_infodiv').dispose();
		});
	}
});

function showpage(id){
	if (id == activePage) return;
	else {
		oldPage = activePage;
		activePage = id;
		setPageStatus();
	}
}

function setResultNumber(){
	var firstItem = ((activePage-1) * maxItemsperPage)+1;
	var lastItem = activePage * maxItemsperPage;
	if(lastItem>numberOfFacilities){
		lastItem = numberOfFacilities;
	}
	$('rehadb_itemfrom').innerHTML = firstItem+' ';
	$('rehadb_itemto').innerHTML = lastItem+' ';
	
	if(activePage>1){
		$('foot_back').set('html', '<a href="javascript:void();" onclick="showpage('+(activePage-1)+')" class="foot_back"></a>');
	} else{
		$('foot_back').set('html', '');
	}
	if(numberOfPages>1 && activePage<numberOfPages){
		$('foot_forward').set('html', '<a href="javascript:void();" onclick="showpage('+(activePage+1)+')" class="foot_forward"></a>');
	} else{
		$('foot_forward').set('html', '');
	}
}

function setPageStatus(){
	$('rehadb_list_page'+activePage).setStyle('height', heightArray[activePage]);
	$('rehadb_list_page'+activePage).addClass('act_page');
	if(printView==0 && numberOfPages>1){
		$('rehadb_pagebrowser_link'+activePage).addClass('act_pagebrowser_tab');
		$('rehadb_pagebrowser_link'+activePage).setStyle('background-image','url(/fileadmin/reha-verzeichnis.de/images/pagebrowser_btn_active.gif)');
	}
	if(oldPage){
		$('rehadb_list_page'+oldPage).setStyle('height',0);
		$('rehadb_list_page'+oldPage).removeClass('act_page');
		if(printView==0 && numberOfPages>1){
			$('rehadb_pagebrowser_link'+oldPage).removeClass('act_pagebrowser_tab');
			$('rehadb_pagebrowser_link'+oldPage).setStyle('background-image','url(/fileadmin/reha-verzeichnis.de/images/pagebrowser_btn.gif)');
		}
	}
	setResultNumber();
}

function addCompare(facilityName,facilityID){
	var isInArray = 0;
	var uidInArray;
	
	for(var i=0; i<maxCompareItems; i++){
		if(compareArray[i] != null && compareArray[i]['id'] == facilityID){
			isInArray = 1;
			uidInArray = i;
		}
	}
	if(isInArray == 1){
		removeFromCompare(uidInArray);
		compareArrayClosed = 0;
	}
	else {
		if(compareArrayClosed == 0){
			pushToCompare(facilityName,facilityID);
		}
		else {
			alert(unescape('Sie k%F6nnen nur max. 3 Einrichtungen miteinander vergleichen!'));
			$('compareChckID' + facilityID).checked = false;
		}
	}
	refreshCompareList();
}

/** 
 * push the data to first free space in compareArray
 * 
 * @param {Object} facilityName
 * @param {Object} facilityID
 */
function pushToCompare(facilityName,facilityID){
	compareArray.sort();
	var dataset = new Array();
	dataset['id'] 	= facilityID;
	dataset['name'] = facilityName;
	
	for(var i=0;i<maxCompareItems;i++){
		if(compareArray[i] == null){
			compareArray[i] = dataset;
			if(i==2){
				setCompareArrayClosed();
			}
			break;
		}
	}
}

/**
 * removed facility entry from Array
 * @param {Object} uidInArray
 */
function removeFromCompare(uidInArray){
	if(uidInArray < 2){
		for(var i=uidInArray; i<2; i++) {
			compareArray[i] = compareArray[i+1]
		}
	}
	compareArray[2] = null;
}

function refreshCompareList(){
	var listOfFacilities = '';
	var listOfIDs = new Array();
	var url = window.location.search;
	var getParams = url.split('&');
	var getParamInArray = null;
	for(var i=0; i<getParams.length; i++){
		if(getParams[i].indexOf('rehaID=') != -1){
			getParamInArray = i;
		}
	}
	var counter = 0;
	var compareLinkNew;

	for(var i=0;i<compareArray.length; i++){
		if (compareArray[i] && compareArray[i] != null) {
			//listOfFacilities += '<span class="facility_in_compare">' + compareArray[i]['name'] + '</span>';
			listOfIDs.push(compareArray[i]['id']);
			counter++;
		}
	}

	if(counter > 1){
		$$('.rehadb_compare_btn')[0].removeClass('compare_inactive');
    $('rehadb_compare_btn').disabled = false;
    if($('compare_overlay'))$('compare_overlay').dispose();
		$$('.rehadb_compare_btn')[0].href = compareLinkNew;
    
	}else {
		$$('.rehadb_compare_btn')[0].addClass('compare_inactive');
    $('rehadb_compare_btn').disabled = true;
    if(!$('compare_overlay')){
      var overlayDiv = new Element('span',{'id':'compare_overlay'});
      $(overlayDiv).inject('compare_outer');
      $(overlayDiv).addEvent('mouseover',function(e){
        var positionArray = e.page;
        var infoDiv = new Element('div',{'id':'rehadb_compare_infodiv'});
        $(infoDiv).set('html', 'Sie m&uuml;ssen mindestens 2 Einrichtungen ausw&auml;hlen');
        $(infoDiv).setStyles({left:positionArray.x-195,top:positionArray.y+5});
        var bodyTag = $$('body');
        $(infoDiv).inject(bodyTag[0]);
        $(infoDiv).addEvent('mouseout', function(){
          $(infoDiv).dispose();
        });
      });
      $(overlayDiv).addEvent('mouseout',function(){
        if($('rehadb_compare_infodiv'))$('rehadb_compare_infodiv').dispose();
      });
    }
		$$('.rehadb_compare_btn')[0].href = '';
	}
}

function setCompareArrayClosed(){
	compareArrayClosed = 1;
}

