/* AJAX OBJECTS & FUNCTIONS */

function getSubTypes(typeId) {
	if(typeId != null && typeId != "") {
		var ajaxurl = "/Ajax/getSubTypes?typeid="+typeId;
		_gaq.push(['_trackPageview', ajaxurl]);
		$.ajax({
			type: "GET",
			url: ""+ajaxurl,
			dataType: "XML",
			success: function(data){
				emptyField("subtype-search");
				
				$(data).find("subtype").each(function(){
					$('<option value="'+$(this).find("id").text()+'">'+$(this).find("name").text()+'</option>').appendTo("#subtype-search");
				});
			}
		});
	}
}

function getCities(typeId, subTypeId, entityUrlName) {
	if(typeId != "" && subTypeId != "" || entityUrlName != "") {
		var ajaxurl = "/Ajax/getCities?typeid="+typeId+"&subtypeid="+subTypeId+"&entityurlname="+entityUrlName;
		_gaq.push(['_trackPageview', ajaxurl]);
		$.get(""+ajaxurl,
			function(xml){
				emptyField("city-search");
				
				$(xml).find("city").each(function(){
					$('<option value="'+$(this).find("id").text()+'">'+$(this).find("name").text()+'</option>').appendTo("#city-search");
				});
			}, "XML");
	}
}

function getEntities(typeId, subTypeId) {
	if(typeId != null && typeId != "") {
		var ajaxurl = "/Ajax/getEntities?typeid="+typeId+"&subtypeid="+subTypeId;
		_gaq.push(['_trackPageview', ajaxurl]);
		$.get(""+ajaxurl,
			function(data){
				emptyField("entity-search");
				$(data).find("entity").each(function(){
					$('<option value="'+$(this).find("urlname").text()+'">'+$(this).find("name").text()+'</option>').appendTo("#entity-search");
				});
				getCities(typeId, subTypeId, "");
			}, "XML");
	}
}

function getResult(fromRecord, toRecord) {
	var typeId 		= $("#type-search").val();
	var subTypeId 	= $("#subtype-search").val();
	var cityId 		= $("#city-search").val();
	var entityUrlName = $("#entity-search").val();
	var districtNumber = $("#district-search").val();
	var text = document.getElementById("quicksearch-text").value;
	var city = document.getElementById("quicksearch-city").value;
	var only_open = $("#only_open").val();
	
	var urlstring;
	if ((text != null && text != "") || (city != null && city != "" )){
		urlstring = "/Ajax/getAddressesHtml?text="+urlEncode(text)+"&city="+urlEncode(city)+"&cityid="+cityId+"&district="+districtNumber+"&only_open="+only_open+"&from="+fromRecord+"&to="+toRecord;
	} else {
		urlstring = "/Ajax/getAddressesHtml?typeid="+typeId+"&subtypeid="+subTypeId+"&cityid="+cityId+"&district="+districtNumber+"&entityurlname="+entityUrlName+"&only_open="+only_open+"&from="+fromRecord+"&to="+toRecord;
	}
	
	_gaq.push(['_trackPageview', urlstring]);
	
	$("#loading-screen").show();
	 $.ajax({
		url: ""+urlstring,
		processData: false,
		dataType: "html",
		type: "GET",
		cache: false,
		success: function(html) {
			if(fromRecord == 0)
				$("#result-list").empty(); 
			
			$("#result-list").append(html);
			
			var total_count = parseInt($("#total_result_count").val());
			
			if($("#search_title").length > 0)
				$("#search-title-tag").html($("#search_title").val());
			else
				$("#search-title-tag").html("Nyitvatartás");
			
			if(fromRecord == 0) {
				if(total_count != null)
					$("#result_count_text").html(total_count);
				else
					$("#result_count_text").html("0");
			}
			
			$("#loading-screen").hide();
			
			$("#currentListSize").val(toRecord);
			
			if(total_count > toRecord)
				$("#load-more-results").show();
			else
				$("#load-more-results").hide();
		}
	});
}

function ajaxLoadResults() {
	$("#loading-screen").show();
	getResult(0,50);
}

function loadMoreResult() {
	var currentListSize = parseInt($("#currentListSize").val());
	
	if(currentListSize != null)
		getResult(currentListSize, (currentListSize+50));
	else
		getResult(0, 50);
}

function emptyField(field_id) {
	var field = $("#"+field_id);

	switch(field_id) {
		case 'subtype-search': 	field.next("span").html("- Kérem válasszon -"); 
								field.empty().append('<option selected="selected" value="0">- Kérem válasszon -</option>');
								break;
		case 'entity-search': 	field.next("span").html("Bármelyik");
								field.empty().append('<option selected="selected" value="0">Bármelyik</option>');
								break;
		case 'city-search': 	field.next("span").html("Bárhol");
								field.empty().append('<option selected="selected" value="0">Bárhol</option>');
								break;
		case 'district-search': field.next("span").html("-- Kerületek --");
								field.val("0");
								break;
		default: 				field.next("span").html("- Kérem válasszon -");
								field.empty().append('<option selected="selected" value="0">- Kérem válasszon -</option>');
								break;
	}
}

function emptyPostFields() {
	document.getElementById("quicksearch-text").value = "";
	document.getElementById("quicksearch-city").value = "";
}

/* FIX CONTENT HEIGHT */
window.onresize = fix_height;

function fix_height() {
	var screen_height = get_screen_height();
	var frame_obj = document.getElementById("content");
	if(frame_obj) {
		frame_obj.height = screen_height - 281 - 5 + "px";
	}
	
	return false;
}

function get_screen_height() {
   var myHeight = 0;

   if( typeof( window.innerWidth ) == 'number' ) {
       //Non-IE
       myHeight = window.innerHeight;
   } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
       //IE 6+ in 'standards compliant mode'
       myHeight = document.documentElement.clientHeight;
   }
   return myHeight;
}

/* Submit search form on the main page */
function submitQuicksearch(){
	var nameinput = document.getElementById("quicksearch-name");
	var cityinput = document.getElementById("quicksearch-city");
	
	if(nameinput.value != null && cityinput.value != null && (nameinput.value != "" || cityinput.value != "")){
		document.quicksearchform.submit();
	}
}

function submitSearch(){
	var typeinput = document.getElementById("type-search");
	var subtypeinput = document.getElementById("subtype-search");
	
	if(typeinput.value != null && subtypeinput.value != null && (typeinput.value != "0" && subtypeinput.value != "0")){
		document.searchform.submit();
	}
}

function check_tab(e){
	if (window.event)
		var key = window.event.keyCode;
	else
		var key = e.keyCode;
		
	if(key == 13)
		submitQuicksearch();
	return true;
}

function setFocus(){
	var quicksearch_name = document.getElementById("quicksearch-name");
	if(quicksearch_name != null)
		quicksearch_name.focus();
}

function showWeeklyData(id) {
	if($("#additional-info-"+id).height() == 0) {
		$("#additional-info-"+id).animate({height:'50px'}, { duration: 600, complete: function(){
			$(this).children().fadeIn("fast");
		}});
	} else {
		$("#additional-info-"+id).children().fadeOut("fast", function(){
			$(this).parent().animate({height:'0px'}, { duration: 600});
		});
	}
}

function urlEncode(src) {
	var output = '';
	for (var i=0; i<src.length; i++) {
		var charCode = src.charCodeAt(i);
		if (charCode > 127) {
			output += ('&#' + charCode + ';'); 
		} else {
			output += src.charAt(i);
		}
	}

	output = escape(output);
	output = output.replace(/\//g, '%2F');
	output = output.replace(/\?/g, '%3F');
	output = output.replace(/=/g, '%3D');
	output = output.replace(/&/g, '%26');
	output = output.replace(/@/g, '%40');
	return output;
}

function submitFavoritesEmail() {
	
	var fav_email = $("#favorites_email").val();
	
	if(fav_email != null && fav_email != "") {
		var ajaxurl = "/Ajax/Login";
		_gaq.push(['_trackPageview', ajaxurl]);
		$.ajax({
			url: ""+ajaxurl,
			global: false,
			type: "POST",
			data: ({email : ""+fav_email}),
			dataType: "xml",
			async:false,
			success: function(xml){
				var response = $(xml).find("result").text();
				
				switch(response) {
					case 'BADSYNTAX':  	$("#error_feedback").html("Hibás email cím!");
										break;
										
					case 'INVALIDMX': 	$("#error_feedback").html("A megadott email cím helytelen!");
										break;
										
					case 'TOOSHORT': 	$("#error_feedback").html("A megadott email cím helytelen!");
										break;
										
					case 'OK': 			window.location.href = "/kedvenceim";
										break;
				}
				
				
				},
			error: function(xml) {
				$("#error_feedback").html("A szerver jelenleg nem elérhető, kérjük próbálja meg később!");
			}
		});
	} else {
		$("#error_feedback").html("Kötelező kitölteni!");
	}
}

function addToFavorites(address_id) {
	
	if(address_id != null && address_id != "") {
		$.ajax({
			url: "/Ajax/AddToFavorite?address_id="+address_id,
			global: false,
			type: "GET",
			dataType: "xml",
			async:false,
			success: function(xml){
				var response = $(xml).find("result").text();

				switch(response) {
					case 'NOT_LOGGED_USER': 	window.location.href = "/kedvenceim";
												break;
										
					case 'INVALID_ADDRESS_ID': 	alert("A megadott cím nem létezik.");
												break;
										
					case 'NOT_SUCCESS': 		alert("Hiba történt.");
												break;
										
					case 'OK': 					$("#fav_button_"+address_id).replaceWith('<a class="already_fav"></a>');
												alert("Hozzáadtuk a kedvenceidhez!");
												break;
				}
			},
			error: function(xml) {
				$("#error_feedback").html("A szerver jelenleg nem elérhető, kérjük próbálja meg később!");
			}
		});
	} else {
		
	}
}

function removeFromFavorites(address_id) {
	if(address_id != null && address_id != "") {		
		var confirmDelete = confirm("Biztos, hogy törlöd a kedvencek közül ezt az elemet?")
		if (confirmDelete){
			$.ajax({
			url: "/Ajax/RemoveFavorite?address_id="+address_id,
			global: false,
			type: "GET",
			dataType: "xml",
			async:false,
			success: function(xml){
				var response = $(xml).find("result").text();

				switch(response) {
					case 'NOT_LOGGED_USER': 	window.location.href = "/kedvenceim";
												break;
										
					case 'INVALID_ADDRESS_ID': 	alert("A megadott cím nem létezik.");
												break;
										
					case 'NOT_SUCCESS': 		alert("Hiba történt.");
												break;
										
					case 'OK': 					var result_count = parseInt($("#result_count_text").text());
												var new_result = ""+(result_count-1);
												if(!isNaN(result_count) && result_count != "")
													$("#result_count_text").html(new_result);	
													
												$("#result-item-"+address_id).fadeOut("slow", function(){ $(this).remove(); });
												break;
				}
			},
			error: function(xml) {
				$("#error_feedback").html("A szerver jelenleg nem elérhető, kérjük próbálja meg később!");
			}
		});
		}
	}
}


function submitEmailOnEnter(e) {
	if (window.event)
		var key = window.event.keyCode;
	else
		var key = e.keyCode;
		
	if(key == 13)
		submitFavoritesEmail();
	return true;
}

/* MANAGE COOKIES */

function loadCookieData() {
	$(document).ready(function(){
		
	});
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
