jQuery(document).ready(function() {

	if (typeof widgetMeteo != "undefined") {
		widgetMeteoInit();	
	}

	jQuery('div.megadropdown').appendTo('body');
	jQuery('#modal_cover').appendTo('body');
	$active_nav = jQuery('ul.level1 > li.active');
	$tabs_data = jQuery('#header-tabs-data');

	jQuery("div.dropdown>ul").each(function(i){
		var $this = jQuery(this); 
		$this.wrap('<div class="dropdown-bg"></div>');
		$this.parent().append('<div class="left"></div><div class="bl"></div><div class="br"></div><div class="bottom"></div><div class="right"></div>');

		$this.parent().parent().parent().hover(
			function () {
				var $dropdown = jQuery(this).children("div.dropdown");
				if (!jQuery(this).hasClass('active')){
					$dropdown.show();
					var $list = $dropdown.find("ul");
					var $div_left = $dropdown.find("div.left");
					$div_left.height($list.innerHeight());
					var $div_right = $dropdown.find("div.right");
					$div_right.height($list.innerHeight());
					var $div_bottom = $dropdown.find("div.bottom");
					$div_bottom.width($list.innerWidth());
				}
			}, 
			function () {
				var $dropdown = jQuery(this).children("div.dropdown");
				$dropdown.hide();
			}
		);
	});
	
	jQuery("ul.level1 > li").click(function() {
		var $this = jQuery(this);
		var elem_id = "#" + $this.attr('id') + "_dropdown";
		if (jQuery(elem_id).length > 0) {
			showMdd($this.attr('id'));
		}
		else {
			// show loader
			$this.addClass("loading");
			$this.find('div.mdd-loader').show();
			// load MDD HTML
			var $tab_id = 0;
			$this.find('span').each(function() {
				if (jQuery(this).attr('id') == 'id_' + $this.attr('id')) {
					$tab_id = jQuery(this).text();
					return false;
				}
			});
			jQuery.ajax({
				cache: true,
				type: "GET",
				timeout: 10000,
				url: $tabs_data.data("mdd_url"),
				data: {"tab_id": $tab_id, "page_code": $tabs_data.data("page_code"), "tab": $tabs_data.data("tab"), "lang": $tabs_data.data("lang")},
				dataType: "jsonp",
				jsonpCallback: "mddJson", 
				success: function(data) {
					jQuery('body').append(data.mdd);
					showMdd($this.attr('id'));
				},
				complete: function(xhr, status) {
					// hide loader
					$this.removeClass("loading");
					$this.find('div.mdd-loader').hide();
				}
			});
		}
	});
	
	jQuery("#modal_cover").click(function() {
		jQuery("div.megadropdown").hide();
		jQuery(this).hide();
		jQuery("ul.level1 > li.mdd-close").removeClass('mdd-close');
		jQuery("ul.level1 > li").removeClass("active");
		$active_nav.addClass('active');
	});

	jQuery(window).resize(function(){
		var mdd_top = jQuery("div.nav-main > ul.level1").offset().top + jQuery("div.nav-main > ul.level1").height() + 1;
		var mdd_left = jQuery("div.nav-main > ul.level1").offset().left + 100;
		var cover_height = (jQuery("body").height() > jQuery(window).height()) ? jQuery("body").height() - mdd_top : jQuery(window).height() - mdd_top;
		var cover_width = (typeof(window.innerWidth)!='undefined'? window.innerWidth : jQuery(window).width()); 
		jQuery("#modal_cover").css({ "top": mdd_top, "left": 0, "height": cover_height, "width": cover_width });
		jQuery("div.megadropdown").css({ "top": mdd_top, "left": mdd_left });
	});

});

function showMdd(tab_id) {
	
	jQuery("ul.level1 > li").removeClass("active");
	jQuery('#'+tab_id).addClass("active");
	var elem_id = "#" + tab_id + "_dropdown";
	if (jQuery(elem_id).length > 0) {
		if (jQuery(elem_id).css("display") == "none") {
			jQuery("div.megadropdown").hide();
			jQuery("ul.level1 > li.mdd-close").removeClass("mdd-close").addClass("mdd-open");
			jQuery('#'+tab_id).toggleClass("mdd-close").toggleClass("mdd-open");
			var mdd_top = jQuery('#'+tab_id).parent().offset().top + jQuery('#'+tab_id).parent().height() + 1;
			var mdd_left = jQuery('#'+tab_id).parent().offset().left + 100;
			jQuery(elem_id).css({ "top": mdd_top, "left": mdd_left }).show();
			var cover_height = (jQuery("body").height() > jQuery(window).height()) ? jQuery("body").height() - mdd_top : jQuery(window).height() - mdd_top;
			var cover_width = (typeof(window.innerWidth)!='undefined'? window.innerWidth : jQuery(window).width()); 
			jQuery("#modal_cover").css({ "top": mdd_top, "left": 0, "height": cover_height, "width": cover_width }).show();
		} else {
			if (jQuery(elem_id).css("display") == "block"){
				jQuery('#'+tab_id).toggleClass("mdd-close").toggleClass("mdd-open");
				jQuery(elem_id).hide();
				jQuery("#modal_cover").hide();
				jQuery("ul.level1 > li").removeClass("active");
				$active_nav.addClass('active');
			}
		}
		//return false;
	}
	
	jQuery('.mdd-header > a.mdd-close').click(function() {
		var elem_id = "#" + jQuery('ul.level1 > li.active').attr('id') + "_dropdown";
		jQuery("ul.level1 > li.active").removeClass("active mdd-close").addClass("mdd-open");		
		jQuery(elem_id).hide();
		jQuery("#modal_cover").hide();			
		return false;	
	});
}

function widgetMeteoInit() {	
	var identifier = widgetMeteo.id;
	var locId = jQuery.cookie('header_meteo_loc_' + widgetMeteo.lang);
	
	jQuery(".wdg-select").ycselectbox();
	
	if (locId === null) {
		locId =	widgetMeteo.locId;
	}	
	requestMeteoData(locId);
	
	
	jQuery('#'+identifier+'-cities').change(function(){
		var newRegion = jQuery('#'+identifier+'-cities').val();		
		var oldHref = jQuery("#detailLink").attr("href");
		var splArray = oldHref.split("region=");
		jQuery("#detailLink").attr("href", splArray[0] + "region=" + newRegion );
		requestMeteoData(newRegion);
	});
	
}

function requestMeteoData(locId) {
	var identifier = widgetMeteo.id;
	
	jQuery.ajax({
		type: "GET",
		url: widgetMeteo.jsonUrl+locId+'&lang='+widgetMeteo.lang,
		dataType: "jsonp",
		data: {'ms':new Date().getTime()},
		success: function(json) {
			jQuery('#' + identifier + '-cities').find('a').html(json.cityname);
			jQuery('#meteoText').html(json.text);
			jQuery('#detailLink').attr('href', widgetMeteo.searchUrl+json.city);
			jQuery('#temp').html(json.temp);
			jQuery('#imageSymb').attr('src', widgetMeteo.imgHost + 'i/'+json.imageSymb);			
			jQuery.cookie('header_meteo_loc_' + widgetMeteo.lang, json.city, { expires: 365, path: '/' });
		},
		error: function(request, status, error) {
			jQuery('#meteoText').html('Communication Error: Try again later.');
		}
	});	
}

/* Search frontend v2 start */
function triggerSearch(
	crossDomainCallbackDomain, 
	urlPrefix, 
	searchString, 
	region, 
	lang, 
	sref, 
	storeValuesInCookie, 
	searchTarget) {
	
	//empty searchString not allowed
	if (searchString == "") {
		return;
	}
	// search collection mapping
	var r = null;
	switch (region) {
		case 'res':
			r = 'sw_res';
			break;
		case 'csu':
			r = 'sw_hlp';
			break;
		case 'sme':
			r = "sw_sme";
			break;
		case 'cbu':
			r = 'sw_cbu';
			break;
		case 'ghq':
			r = 'sw_ghq';
			break;
		case 'shop':
			r = 'sw_oshop';
			break;	
		case 'bw':
		default:
			r = 'bluewin';
			break;	
	}
	
	//var url = urlPrefix+"index.php?searchTerm="+escape(searchString)+"&tab="+tab+"&filter="+filter+"&sref="+$.base64Encode(sref)+"&r="+region+"&lang="+lang+"&xd="+$.base64Encode(crossDomainCallbackDomain);
	sref = eliminateUrlParam(sref, 'sref');
	var url = urlPrefix + "index.php?q=" + escape(searchString) + "&lang=" + lang + "&r=" + r + "&xd=" + jQuery.base64Encode(crossDomainCallbackDomain) + "&sref=" + jQuery.base64Encode(sref);
	//console.log("region = " + region);
	//console.log(url);
	//searchCrossDomainSrc = url;
	
	/*
	if (searchTarget == '_blank') {
		window.open(url, 'Search');
	}
	else {
		window.location = url;
	}
	*/
	window.location = url;
}

function eliminateUrlParam(url, param) {
	var back = '';
    var hash;
    
    if (url.indexOf('?') == -1) {
    	return url;
    }
    
    var temphash = url.split('?');    
    var hashes = temphash[1].split('&');
    
    for(var i = 0; i < hashes.length; i++)
    {    	
        hash = hashes[i].split('=');
        if (hash[0] != param) {        	
        	if (back != '') {
        		back += '&';
        	}        	
        	back += hash[0] + '=' + hash[1] ;
        }
    }
    
    back = temphash[0] + '?' + back;
    
    return back;
}
/* Search frontend v2 end */

