/*
 *  localization_controls_at.js (AT Version)
 *  this js-file contains js-code for the localization forms
 *    
 */

var formDefaultStr = "Ihre Ortsstelle";
var furtherVendorsOpen = false;


/**
 * binds actions to different events on localization form elements
 * @return
 */
function initLocalizationFormControls(doktype, offertypePageUid)
{
	// localization events ---------
	$("#localization-form-marginal-unlocalized input.localize-search-img").click(function(e) {
		setLocalization_explicit_at($('select#zip').val(),$("#localization-form-marginal-unlocalized"));	
		return false;
	});
	
	$('input#zip').keypress(function (e) {
		return keyCheck(e,$('input#zip').val(),$("#filterForm"));
	});
	
	$("#localize-form input.localize-search-img").click(function(e) {
		if($('select#localize_search_input').val() == -1) {
			resetLocalization(doktype, offertypePageUid);
		} else {
			setLocalization_explicit_at($('select#localize_search_input').val(),$("#localize-form"));
		}
		return false;	
	});
	
	$("select#localize_search_input").keypress(function (e) {
		return keyCheck(e,$('select#localize_search_input').val(),$("#localize-form"));
	});

	// search form: zip field
	$("select#tx_jo_zip").keypress(function (e) {
		return keyCheck(e,$('select#tx_jo_zip').val(),$("#filterForm"));
	});
	
	$("#filterForm input.localize-search-img").click(
		function(e) {
			return tx_jo_checkGermanZipcode($('select#tx_jo_zip').val())
		}
	);
	
	// reset localization events --------------
	$("#localization-form-marginal-localized .zipinfo a.reset-link").click(function(e) {
		resetLocalization(doktype,offertypePageUid);
		return false;
	});
	
	$("li#header-reset-localization-link a").click(function(e) {
		resetLocalization(doktype,offertypePageUid);
		return false;
	});
		
	
	// other events ----------------------------
	
	// fold out and in the "weitere anbieter" box  
	$('a#fold-inout-vendors').click(function(e){ 
		toggleFurtherVendors($('a#fold-inout-vendors')); 
		return false;
	});	
	
	$('a#fold-inout-vendors').parent().find('strong').click(function(e){ 
		toggleFurtherVendors($('a#fold-inout-vendors').parent().find('strong')); 
		return false;
	});
	
}

/**
 * shows all localization forms localized with a zip
 */
function showLocalizationForms_localized(zip)
{	
	// marginal col localization menue
	$("#localization-form-marginal-unlocalized").hide();
	$("#localization-form-marginal-localized .zipinfo big").html(regions[zip]);
	$("#localization-form-marginal-localized").show();
	
	// header localization menue
	if(tx_jo_checkGermanZipcode(zip)) {
		$("form#localize-form").addClass("localized");
		
		$("form#localize-form a.unlocalizedinfobtn").hide();
		$("form#localize-form a.localizedinfobtn").show();
		
		$("select#localize_search_input option").each(function(index) {
		    if($(this).val()==zip) {
		    	$(this).attr("selected", "selected");
		    }
		});
//		$("select#tx_jo_zip option").each(function(index) {
//		    if($(this).val()==zip) {
//		    	$(this).attr("selected", "selected");
//		    }
//		});
	}
}

/**
 * shows default state of a form
 */
function showLocalizationForms_unlocalized()
{
	$("#localization-form-marginal-localized").hide();
	$("#localization-form-marginal-unlocalized").show();
}

/**
 * shows an error message in the localization forms
 */
function form_showErrorMessage(form)
{		
	$("div#error-2").show();
	jQuery(form).addClass('errorneous');
}

/**
 * shows an error message in the localization forms
 */
function form_hideErrorMessage()
{
	var form = jQuery('#localization-form-marginal-unlocalized');
	if(form.length > 0) {
		jQuery('#localization-form-marginal-unlocalized').removeClass('errorneous');
	}
	$("#localization-form-marginal-unlocalized .error").hide();
}


/**
 * reset the active localization
 * @param doktype Doktype (see ext_tables.php for values)
 * @param offertypePageUid Current offer page uid. If NULL or undefined, no redirect will be executed.
 */
function resetLocalization(doktype, offertypePageUid)
{
	removeAllLocalizations();	
	
	switch(doktype)
	{
		case 54 : 
		case 58 :
			if(typeof(offertypePageUid) !== 'undefined' && offertypePageUid != null) {
				// go to next parent angebotsart page
				tx_jo_redirectToPageUid(offertypePageUid);
			} else {
				// stay on actual page			
				window.location.href = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
			}
						
		break;		
		default :
			// stay on actual page			
			window.location.href = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
		
		break;
	}	
}


function render_VendorList(items)
{
	var tempListItem_HTML = '';
	var tempListItem_Title = '';		
		
	$.each(items, function(j,dataObj)
	{			
		tempListItem_HTML = '';
		tempListItem_Title = '';
		
		var itemPartsArr = new Array();
		
		dataObj['title_teaser'] = tx_jo_urldecode(dataObj['title_teaser']);
		dataObj['tx_jo_address_city'] = tx_jo_urldecode(dataObj['tx_jo_address_city']);
		dataObj['tx_jo_address_zip'] = tx_jo_urldecode(dataObj['tx_jo_address_zip']);
		dataObj['url'] = tx_jo_urldecode(dataObj['url']);
		
		if(dataObj['title_teaser'].length > 0)
			itemPartsArr.push(dataObj['title_teaser']);
		
		if(dataObj['tx_jo_address_zip'].length > 0 || dataObj['tx_jo_address_city'].length > 0 )
			itemPartsArr.push(dataObj['tx_jo_address_zip'] + " " + dataObj['tx_jo_address_city']);
					
		tempListItem_Title = itemPartsArr.join(" / ");
		tempListItem_HTML += '<li>' + tx_jo_getPageLink(dataObj['uid'],tempListItem_Title,"link-list-link",dataObj['url']) + '</li>';	
		
		if(j < 3)
		{
			$("#providerbox ul.first-vendors").append(tempListItem_HTML);
		} else {
			$("#providerbox ul.further-vendors").append(tempListItem_HTML);
		}			
	});
			
	$("#providerbox").show();
	if(items.length > 3)
	{
		$("#providerbox .foldout-link-wrap").show();
	}
}

function toggleFurtherVendors(element) {
	if(!furtherVendorsOpen)									
	{													
		jQuery('#providerbox').find('.further-vendors').parent().slideDown('normal', function() {furtherVendorsOpen=true; element.parent().parent().addClass('open'); element.parent().find('strong').html('Schlie&szlig;en');});
	}
	else
		jQuery('#providerbox').find('.further-vendors').parent().slideUp('normal', function() {furtherVendorsOpen=false; element.parent().parent().removeClass('open'); element.parent().find('strong').html('Weitere Anbieter'); });
} 

function keyCheck(e, inputObjValue, formObj)
{	
	var keycode;

	if (window.event)
		keycode = window.event.keyCode;

	else if (e)
		keycode = e.which;

	else
		return true;
		
	// Enter
	if(keycode == 13)
	{				
		if(inputObjValue.length == 5) {
			setLocalization_explicit_at(inputObjValue,formObj);
		} else { 
			return false;
		}
	}

	// Zahlen
	if (47 < keycode && keycode < 58)
		return true;

	// Steuerzeichen
	var kcok = new Array(8, 10, 13, 46, 0);
	while (kcok.length > 0)
	{
		if (keycode == kcok.pop())
			return true;
	}
	return false;
}


