// FUNCTIONS
var initTripSearch;
var buildNavi;
var initSelectedTripList;
var showAvailableThemes;
var loadCountryTabsByCookie;

//global settings and variables BEGIN
var cookieTrips = 'drtigges-reiseliste';
var cookieTabs = 'drtigges-tab';
var rows = {}; // for all trip data
var find = {};
var cur = {};
var sg = false; // page contains "Sondergruppen"-Content

var tripUrl = '/trips/search.json';	// default trip-JSON
var hotelUrl = '/trips/hotels.json';	// default hotel-JSON

var useActionTracking = true;
sg = jQuery('.SONDERGRUPPEN').length;

var doAllTheNeedfulThings = function(){
	// page countryInfos
	jQuery('#countryInfoTabs').doOnce(function(){
		loadCountryTabsByCookie(this);
	}); // country infos
		
	// load page-controller (sidebar etc.)
	jQuery.xLazyLoader({
		js: ['/javascripts/smsT/generalContents.js']
	});
		
	buildNavi(); // build main-navi
	// add action tracking
	addActionTracking();
	// load expressFinder
	jQuery('#exFi').doOnce(function(){
		jQuery.xLazyLoader({
			js: ['/javascripts/smsT/expressFinder.js']
		});
	});
	// page trip-styles, specials
	jQuery(".themeContainer").doOnce(function(){
		showAvailableThemes(this)
	});
	initSelectedTripList(); // special selected trips, e.g. "Auslese", "Reisen der Woche" etc.

};

loadCountryTabsByCookie = function($tabs){
	var tabCookie = jQuery.cookie(cookieTabs);
	var tab = 0;
	// try to get tab to select from cookie
	if (!_.isNull(tabCookie) && tabCookie.length) {
		var code = $tabs.eq(0).attr('rel');		
		var pages = tabCookie.split('@@');
		for (var i=0; i<pages.length; i+=1){
			var tmp = pages[i].split('::');
			if (tmp[0] == 'C' + code.toUpperCase()) {
				tab = tmp[1];
				break;
			} 
		}
	}
	// init tabs
	jQuery("#countryInfoTabs").tabs({
		selected:tab,
		cookie:null,
		select: function(event,ui) {
			updateTabCookie(ui.index,$(this).attr('rel').toUpperCase(),'C');}	
	});
};

showAvailableThemes = function(that){
	for (var i=0;i<DATA.meta.styles.length;i+=1){
		jQuery(that).find('.rTeas.' + DATA.meta.styles[i].c).removeClass('dn');
	}
};

buildNavi = function(){	
	// mainNavi
	jQuery('#mainNavi').doOnce(function(){
		var that = jQuery(this);
		jQuery('a.main').mouseenter(function(){that.addClass(jQuery(this).attr('id'));});
		jQuery('a.main').mouseleave(function(){that.attr('className','');});
		jQuery(".sMCt").mouseenter(function(){
			jQuery(this).css({left:'1px'});
			jQuery('#mainNavi').addClass(jQuery(this).attr('id'));
		});
		jQuery(".sMCt").mouseleave(function(){
			jQuery(this).css({left:''});
			jQuery('#mainNavi').attr('className','');
		});
	});

	jQuery('#regNav a').mouseenter(function(){
		jQuery(this).parent().addClass('cur');
		jQuery('#navCtrList [rel=' + jQuery(this).attr('rel') + ']').addClass('vis');
	});
	jQuery('#regNav a').mouseleave(function(){
		jQuery(this).parent().removeClass('cur');
		jQuery('#navCtrList .g').removeClass('vis');
	});
	
	jQuery('#navCtrList .g').mouseenter(function(){
		jQuery(this).addClass('visH');
		jQuery('#regNav a[rel=' + jQuery(this).attr('rel') + ']').parent('li').addClass('curH');
	});
	jQuery('#navCtrList .g').mouseleave(function(){
		jQuery(this).removeClass('visH');
		jQuery('#regNav a[rel=' + jQuery(this).attr('rel') + ']').parent('li').removeClass('curH');
	});
	
	if (jQuery.browser.msie && parseInt(jQuery.browser.version.substr(0, 1)) <= 6) {
		// close IE6-Warning
		jQuery('.dontUseThisBrowser .icRem').click(function(){
			jQuery('.dontUseThisBrowser').remove();
		});
	}
};

initSelectedTripList = function(){
	jQuery('#selectedTrips').doOnce(function(){
		var type = jQuery(this).attr('rel');
		jQuery.ajax({
			url: tripUrl,
			type: 'GET',
			dataType: 'text',
			success: function(data){
				rows.travels = data;
				cur.travels = [];
				var search_callback = function(data){
					var i;var l=data.length;
					switch (type) {
					   	case 'ReisenDerWoche':
						   	for(i=0;i<l;i+=1){
								if (data[i].push === true) {cur.travels.push(data[i]);}
							}
						   	break;
						case 'EigeneReiseliste':
							var nr = ownTrips.replace(' ','').split(',');
							for(i=0;i<l;i+=1){if (jQuery.inArray(data[i].nr, nr) >= 0) {cur.travels.push(data[i]);}}
							break;
						// Stile/Tags
					    default:
							if (availableStyles && jQuery.inArray(type,availableStyles) >= 0){								
								for(i=0;i<l;i+=1){if (jQuery.inArray(type, data[i].es) >= 0) {cur.travels.push(data[i]);}}	
							}
							break;
					}
				};
				eval(data);
				jQuery.xLazyLoader({
					js: ['/javascripts/smsT/renderLists.js'],
					success: function(){renderJSON(1);}
				});
			}
		});
	});
};

var addActionTracking = function(){
	if (useActionTracking) {
		// Sidebar Slider
		jQuery('#tripsOfWeekSlider').doOnce(function(){
			this.find('.frame a').live('click', function(){
				_gaq.push(['_trackEvent', 'sidebar', 'pushSlider', jQuery(this).attr('href')]);
			});
		});
		// Sidebar Akkordeon
		jQuery('.g288').doOnce(function(){
			this.find('.accordion a').live('click', function(){
				_gaq.push(['_trackEvent', 'sidebar', 'accordeon', jQuery(this).attr('href')]);
			});
		});
		// Mainnavi
		jQuery('#mainNavi').doOnce(function(){
			// Hauptlinks
			this.find('#navStudy').live('click',function(){
				_gaq.push(['_trackEvent', 'menu', 'mainnavi_region', 'Studienreisen']);			
			});
			this.find('#navLeader').live('click',function(){
				_gaq.push(['_trackEvent', 'menu', 'mainnavi_guides', 'Reiseleiter']);			
			});
			this.find('#navService').live('click',function(){
				_gaq.push(['_trackEvent', 'menu', 'mainnavi_service', 'Service']);			
			});
			// Regionen
			this.find('#sMRegion #regNav a').live('click',function(){
				_gaq.push(['_trackEvent', 'menu', 'mainnavi_region', jQuery(this).text()]);			
			});
			// Länder
			this.find('#sMRegion #navCtrList a').live('click',function(){
				_gaq.push(['_trackEvent', 'menu', 'mainnavi_country', jQuery(this).text()]);
			});
			// Specials
			this.find('#sMRegion td:last a').live('click',function(){
				_gaq.push(['_trackEvent', 'menu', 'mainnavi_specials', jQuery(this).text()]);
			});
			// Reiseleiter
			this.find('#navLeader a').live('click',function(){
				_gaq.push(['_trackEvent', 'menu', 'mainnavi_guides', jQuery(this).text()]);
			});
			// Service
			this.find('#sMService a').live('click',function(){
				_gaq.push(['_trackEvent', 'menu', 'mainnavi_service', jQuery(this).text()]);
			});
		});
	}
};
