// TODO: write in template
var stPid = 22;
var currentForm = 1;
var listView = false;
var immo = {
		
	ajaxUrl		:	'/index.php?eID=tx_immo_search'
	,filter		:	{
						'stPid' : stPid
					}
	,init		:	function(){
						this.init();
					}
	,initListeners : function(){
						if(window.location.hash.indexOf('#tab')>-1){
							var tabId = parseInt(window.location.hash.replace('#tab',''));
							if(tabId > 0 && tabId < 4){
								this.onTabChange('tab' + tabId);
							}
						}
						// switch tabs
						$('#quicksearch-tabs a').bind(
							'click',
							 this,
							this.onTabChange
						);
						
						// form elements
						$('#quicksearch [name^="tx_immo_pi1"]').bind(
							'change',
							this,
							this.onFormChange
							
						);
					}
	
	,updateResultCount : function(){
							data = $('#quicksearchform' + currentForm).serializeArray();
							var hasData = false;
							for(i=0;i<data.length;i++){
								if(data[i].name != 'tx_immo_pi1[searchCategory]' && data[i].value != 0){
									hasData = true;
								}
							}
							if(!hasData){
								this.hideResults();
								return;
							}
							data.push({'name':'stPid','value':22});
							//debug(data);
							$.ajax(
								this.ajaxUrl,
								{
									data:data
									,dataType : 'json'
									,success : this.showResults
								}
							);
						}

	,onTabChange	:	function(param){
							if(typeof param == 'string'){
								var currentTabId = param;
							}
							else if(typeof param == 'object'){
								var currentTabId = $(param.target).parent().attr('class');
								param.target.blur();
							} else {
								return;
							}
							$('#quicksearch').removeAttr('class');
							currentForm = currentTabId.replace('tab','');
							$('#quicksearch').addClass('state-' + currentForm);
							window.location.hash = currentTabId;
							return false;
						}
	,onFormChange	:	function(evt){
							var self = evt.data;
							el = $(evt.target);
							if(el.attr('type')=='checkbox'){
								//alert(el.attr('name') + ':' + el.attr('checked'));
								self.updateResultCount(el.attr('name'),el.attr('checked'));
							}
							else {
								self.updateResultCount(el.attr('name'),el.val());
							}
							this.blur();
						}
	,showResults	:	function(data, textStatus){
						$('#quicksearchform' + currentForm + ' .showResults').show();			
						if(data.treffer && data.treffer > 0){
								$('#quicksearchform' + currentForm + ' .resultCount').text(data.treffer + ' Objekte');
								$('#quicksearchform' + currentForm + ' .showResults input.submitbtn').show();
							}
							else {
								$('#quicksearchform' + currentForm + ' .resultCount').text('Keine Treffer');
								$('#quicksearchform' + currentForm + ' .showResults input.submitbtn').hide();
							}
						}
	,hideResults	:	function(){
							$('#quicksearchform' + currentForm + ' .resultCount').text('');
							$('#quicksearchform' + currentForm + ' .showResults input.submitbtn').hide();
						}
	,updateMerkButtons:	function(){
							var uids = getCookie(cookieName);
							if(uids){
								uidArr = uids.split(',');
								for(var i =0;i<uidArr.length;i++ ){
									if($('#merkenButton_' + uidArr[i]).length){
										$('#merkenButton_' + uidArr[i]).attr('src','/fileadmin/templates/images/entfernen.png');
										$('#merkenButton_' + uidArr[i]).attr('title','Vom Merkzettel entfernen');
									}
								}
							}
						}
}

function debug(o){
	if(typeof console != 'undefined'){
		console.log(o);
	}
}

$(document).ready(
	function(e){
		immo.initListeners();
		immo.updateMerkButtons();
	}
);

var cookieName = 'gisinger';

var addedToWatchlistMessage = 'Das Objekt wurde auf die Merkliste gesetzt';
var removedFromWatchlistMessage = 'Das Objekt wurde von der Merkliste entfernt';

function addToWatchList(uid){
	debug('addToWatchList: ' + uid);
	if(getCookie(cookieName) && inArray(getCookie(cookieName).split(','),uid)){
		removeFromWatchList(uid);
		return;
	}
	status = setCookie(cookieName,uid);
	$('#merkenButton_' + uid).attr('src','/fileadmin/templates/images/entfernen.png');
	$('#merkenButton_' + uid).attr('title','Vom Merkzettel entfernen');
	updateWatchlist();
	/**
	if(!listView){
		var img = $('#tx_immo_main_img').attr('src');
		debug(img);
		var objekttitel = $('#column2medium h1').text();
		debug(objekttitel);
		var ort = $('#column2medium h3').text();
		debug(ort);
		var preis = $('span#preisWrap').text();
		debug(preis);
		var itemLink = window.location.href;
	} else {
		
		var img = $('#listItemImage' + uid + ' img').attr('src');
		debug(img);
		var objekttitel = $('#listItemText' + uid + ' h2 span').text();
		debug(objekttitel);
		var ort = $('#listItemText' + uid + ' span.ortWrap').text();
		debug(ort);
		var preis = $('#listItemText' + uid + ' span.preisWrap').text();
		debug(preis);
		var itemLink = $('#listItemText' + uid + ' h2 a').attr('href');
		debug(itemLink);
	}
	*/
	//alert(addedToWatchlistMessage);
	return false;
}

function updateWatchlist(){
	$.ajax(
			"/index.php?id=335&type=33"
			,{
				'success': function(response) {
								//debug('updateWatchlist:' + response);  
								debug(response);
								$('div#column1 div.tx-immo-pi1').html(response);
							}
				,'cache':false
			}
	);
	//$('div#column1 div.tx-immo-pi1').load("/index.php?id=331&type=33", );
}

function removeFromWatchList(uid,silent){
	//debug('removeFromWatchList: ' + uid);
	unsetCookie(cookieName,uid);
	if($('#merkzettelItem_' + uid).length){
		$('#merkzettelItem_' + uid).remove();
	}
	if($('#merkenButton_' + uid)){
		$('#merkenButton_' + uid).attr('src','/fileadmin/templates/images/merken.png');
		$('#merkenButton_' + uid).attr('title','Zum Merkzettel hinzufügen');
	}
	updateWatchlist();
	if(silent)return true;
	//alert(removedFromWatchlistMessage);
	return false;
}



function setHiddenInputField(){
	if (typeof items != 'undefined') {
		var newValues = [];
		// this means we are on the form page
		for (var i = 0; i < items.length; i++) {
			if(typeof items[i] != 'undefined'){
				newValues.push(items[i].title);
			}
			
		}
		var newValue = newValues.join("\n");
		if ($('#items')) {
			$('#items').value = newValue;
		}
		else {
			//getEl('mailform').insertBefore(createInputElement('Anfrage zu', 'destinations', 'hidden', newValue), getEl('mailform').childNodes[0]);
		}
	}
}

function createInputElement(name,id,type,value){
	var el = document.createElement("input");
	el.setAttribute("name",name);
	el.setAttribute("id",id);
	el.setAttribute("type",type);
	el.setAttribute("value",value);
	return el;
}



function deleteCookie(){
	document.cookie = cookieName + '=';
	window.location.reload();
	return false;
}
 
function setCookie(cookieName,cookieValue,overwrite) {
	
	var path = '/';
	
	if(typeof overwrite == 'undefined'){
		var currentValue = getCookie(cookieName);
	   	if (currentValue != false) {
	   		currentValue = currentValue + '';
			var temp = currentValue.split(',');
			
			if (inArray(temp, cookieValue)) {
	            return 'exists';
			}
			else if(currentValue){
				cookieValue = currentValue + ',' + cookieValue;
			}
		}
	}
	//else debug('overwrite:' + overwrite);
	cookie = cookieName + '=' +escape(cookieValue)	+ ";path=" + path;
	document.cookie = cookie;
	
} 



function unsetCookie(cookieName,cookieValue){
    var currentValues = getCookie(cookieName).split(',');
    //document.cookie = cookieName + '=;expires=Thu, 01-Jan-1970 00:00:01 GMT';
    newValues = removeFromArray(currentValues,cookieValue);
    //debug(newValues);
	setCookie(cookieName,newValues,true);
}

function getCookie(key){
    var pairs = document.cookie.split('; ');
   
    for(var i =0;i < pairs.length;i++){
        tmp =    pairs[i].split('=');    
        if(key == tmp[0] && typeof tmp[1] != 'undefined'){
        	return unescape(tmp[1]);
        }
       
    }
    return false;
}

function compareMailRepeat(){
	if($('#mail1').val() != $('#mail2').val() ||
			$('#mail1').val().length < 5 ||
			$('#mail1').val().indexOf('@') < 3){
		alert('Bitte tragen Sie in beide Felder die gleiche Mailadresse ein');
		return false;
	} 
	return true;
	
}

function inArray(arr,val){
    var j = 0;
    while(j < arr.length){
		if(arr[j] == val)return true;
		j++;
    }
    return false;
}

function removeFromArray(arr,val){
    //debug('removeFromArray: ' + val);
	var newValues = [];    
    var j = 0;
    while( j < arr.length){
    	if(arr[j] != val)newValues.push(arr[j]);
		j++;
    }
    //debug('removedFromArray!: ' + arr.toString());
    return newValues;
}

