﻿jQuery(document).ready(function() { 	
	jQuery('#head #search .searchInput input').focus(function() {
		clearField('searchInput');
	});
	jQuery('#head').mouseenter(function() {
		closeMenuDrops();
	});
	jQuery('#content').mouseenter(function() {
		closeMenuDrops();
	});
	var myFocusedForm = 's';
	window.onload = function () {
		placeMenuDrops(true, true);
		prodlayers();
		closelayer();
		openprodlayerlink();
		addThisConfig();
		searchlayerinit();
		chooseCountry();
		mapLinks();
		closeLayersOnBodyClick();
		isSearch();
		HideLoudspeakerIcon();
	}
});
jQuery(window).resize(function() {
	placeMenuDrops(false,true);
});

function chooseCountry() {
	jQuery('.langContainer a').click(function() {
		jQuery('#chooseCountry').slideToggle('fast');
		jQuery('#chooseCountry').mouseenter(function() {
			closeMenuDrops();
		});
	});
}

function closeLayersOnBodyClick() {
	jQuery('.accessorieslayer').mouseenter(function() {
		jQuery('body').unbind('click');
	});
	jQuery('.accessorieslayer').mouseleave(function() {
		jQuery('body').click(function() {
			jQuery('.accessorieslayer').slideUp(0);
		});
	});
}

function clearField(theInput) {
	if (document.getElementById(theInput).defaultValue==document.getElementById(theInput).value) {
		document.getElementById(theInput).value = "";
	}
}

function closeMenuDrops() {
	jQuery('.submenu').css('display','none');
}

function showDrop(id,bool) {
	if (bool == true) {
		id.css('display','block');
	} else {
		id.css('display','none');
	}
}

function placeMenuDrops(top,left) {
	if (jQuery('#menu').length>0 && jQuery('#submenus').length>0) {
		jQuery('#menu ul li').each(
			function(intIndex){
				intIndex += 1;
				if (jQuery('#submenu_c'+intIndex).length>0) {
					if (top == true) {
						jQuery('#submenu_c'+intIndex).css( 'top', jQuery('#c'+intIndex).offset().top );
					}
					if (left == true) {
						jQuery('#submenu_c'+intIndex).css( 'left', jQuery('#c'+intIndex).offset().left );
					}
					jQuery('#c'+intIndex).mouseenter(function() { //mouseover på huvudmenyn
						closeMenuDrops();
						showDrop(jQuery('#submenu_c'+intIndex),true);
					});
					jQuery('#submenu_c'+intIndex).mouseleave(function() { //mouseout på undermenyn
						showDrop(jQuery('#submenu_c'+intIndex),false);
						jQuery('#c'+intIndex+' a').removeClass('hover');
					});
					jQuery('#submenu_c'+intIndex).mouseenter(function() { //mouseover på undermenyn
						jQuery('#c'+intIndex+' a').addClass('hover');
					});
					if (!jQuery('#submenus').mouseover() && !jQuery('#menu').mouseover()) {
						closeMenuDrops();
					}
				}
			}
		);
	}
}

function prodlayers() {
	if (jQuery('.prodlayer').length>0 && jQuery('.btn.learnmore').length>0) {
		//jQuery('.prodlayer').slideToggle(0);
		jQuery('.btn.learnmore').click(function() {
			showprodlayer = '#'+jQuery(this).attr('rel');
			jQuery(showprodlayer).slideToggle('normal', function () {
				if (jQuery(showprodlayer+'link').attr('href') == 'javascript:;') {
					jQuery(showprodlayer+'link').attr('href','#!/'+jQuery(showprodlayer+'link').attr('rel'));
				} else {
					jQuery(showprodlayer+'link').attr('href','javascript:;');
					makeMoreBtn(jQuery(showprodlayer+' .btn'),'fwd float right');
				}
			});
		});
	}
}

function closelayer() {
	if (jQuery('.closeprodlayer').length>0) {
		jQuery('.closeprodlayer').click(function() {
			showprodlayer = '#'+jQuery(this).attr('rel');
			jQuery(showprodlayer).slideUp('normal');
		});
	}
	if (jQuery('.closeaccessorieslayer').length>0) {
		jQuery('.closeaccessorieslayer').click(function() {
			showaccessorieslayer = '#'+jQuery(this).attr('rel');
			jQuery(showaccessorieslayer).slideUp(0);
		});
	}
	if (jQuery('.closesearchlayer').length>0) {
		jQuery('.closesearchlayer').click(function() {
			jQuery('#searchlayer').slideUp('fast');
			jQuery('#search .searchContainer .searchInput').append('<input type="text" id="searchInput" value=""/>');
			jQuery('#search .searchContainer .searchInput #searchInput').val(jQuery('#searchlayer .searchContainer .searchInput #searchInputLayer').val());
			jQuery('#searchlayer .searchContainer .searchInput #searchInputLayer').remove();
		});
	}
	if (jQuery('.closechooseCountry').length>0) {
		jQuery('.closechooseCountry').click(function() {
			jQuery('#chooseCountry').slideUp('fast');
		});
	}
	if (jQuery('.closemaplayer').length>0) {
		jQuery('.closemaplayer').click(function() {
			jQuery('.maplayer').slideUp('fast');
			
		});
	}
	if (jQuery('.closeguidemap').length>0) {
		jQuery('.closeguidemap').click(function() {
			jQuery('.guidemap').slideUp('fast');
			
		});
	}
}

function openprodlayerlink() {
	thisUrl = "" + window.location;
	if (thisUrl.indexOf('#!/') != -1) {
		thisAnchor = thisUrl.substr(thisUrl.indexOf('#!/')+3, thisUrl.length);
		thisMoreBtn = jQuery('#'+thisAnchor +' .btn');
		thisLink = jQuery('#'+thisAnchor+'link');
		thisAnchor = jQuery('#'+thisAnchor);
		jQuery(thisLink).attr('href','javascript:;');
		thisAnchor.slideToggle(0);
		makeMoreBtn(thisMoreBtn,'fwd float right');
		goTaAnchor();
	}
}

function goTaAnchor() {
	var elem = window.location.hash.replace('#!/', '#');
    if(elem) {
         jQuery.scrollTo(elem);
    }
}

function defaultSlider(elem) {
	jQuery(elem).nivoSlider({
		effect:'fold', //Specify sets like: 'fold,fade,sliceDown'
		slices:10,
		animSpeed:250, //Slide transition speed
		pauseTime:3000,
		startSlide:0, //Set starting Slide (0 index)
		directionNav:true, //Next & Prev
		directionNavHide:false, //Only show on hover
		controlNav:false, //1,2,3...
		controlNavThumbs:false, //Use thumbnails for Control Nav
		controlNavThumbsFromRel:false, //Use image rel for thumbs
		controlNavThumbsSearch: '.jpg', //Replace this with...
		controlNavThumbsReplace: '_thumb.jpg', //...this in thumb Image src
		keyboardNav:true, //Use left & right arrows
		pauseOnHover:true, //Stop animation while hovering
		manualAdvance:true, //Force manual transitions
		captionOpacity:0.8, //Universal caption opacity
		beforeChange: function(){},
		afterChange: function(){},
		slideshowEnd: function(){}, //Triggers after all slides have been shown
		lastSlide: function(){}, //Triggers when last slide is shown
		afterLoad: function(){} //Triggers when slider has loaded
	});
}

function addThisConfig() {
	return addthis_config = {
	  services_compact: 'email, gmail, facebook, twitter, print, favorites, more',
	  services_expanded : 'email, facebook, twitter, print, favorites, bitly, bloggy, digg, gmail, google, live, pusha'
	}
}

function showaccessories(id) {
	jQuery('#accessoriespop'+id).css( 'top', jQuery('#'+id).offset().top );
	jQuery('#accessoriespop'+id).slideToggle(0);
}

function makeMoreBtn(elem,classes) {
	if (elem.length>0) { /* !#¤IE7! :( */
		elem.addClass(classes);
	}
}

function caseCarousel() {
	jQuery(".caseCarousel").jCarouselLite({
		visible: 1,
		btnNext: ".next",
		btnPrev: ".prev"
	});
}

function selectLink(elem) {
	jQuery('.homeHead .externalControl a').removeClass('sel');
	jQuery(elem).addClass('sel');
}

function mapLinks() {

	if (jQuery('.contact .map').length>0) {
		jQuery('.contact .map').click(function() {
			address = jQuery(this).attr('rel');
			jQuery('.maplayer').css( 'top', jQuery(this).offset().top-250 );
			jQuery('.maplayer').slideDown('fast');
			initialize_map('layermap');
			codeAddress('layermap', address);
		});
	}

	if (jQuery('.guidemaplink').length>0) {
		jQuery('.guidemaplink').click(function() {
			showTxt = '#'+jQuery(this).attr('id')+'txt';
			jQuery(showTxt).css( 'top', jQuery('.map').offset().top );
			jQuery(showTxt).css( 'left', jQuery('.map').offset().left );
			jQuery('.guidemap').slideUp('fast');
			jQuery(showTxt).slideDown('fast');
		});
	}
}

function HideLoudspeakerIcon() {
    imgLen = jQuery(".contact input[type=image]").length;

    for (i = 0; i < imgLen; i++) {
        imgObj = jQuery(jQuery(".contact input[type=image]")[i]);
        
        tmpImg = imgObj.attr('src');
    if (tmpImg.indexOf('loudspeaker.png') != -1) {
                imgObj.css("display", "none");
            }
    }
}

function setSpots() {
	jQuery('.guide .spot').click(function() {
		hoverArr = jQuery(this).attr('rel').split(',');
		over = hoverArr[0];
		out = hoverArr[1];
		if (jQuery(this).css("background-image").indexOf(out) > -1) {
			resetSpot();
			jQuery(this).css('background-image','url(' + over + ')');
			showSpotText(jQuery(this).css('z-index'));
			jQuery(this).addClass('sel');
		} else {
			jQuery(this).css('background-image','url(' + out + ')');
			jQuery(this).removeClass('sel');
			showSpotText(0);
		}
	});
}

function showSpotText(i) {
	jQuery('.guideText').css('display','none');
	jQuery('#guideText' + i).css('display','block');
}

function resetSpot() {
	jQuery('.guide .spot').each(function(index) {
		hoverArr = jQuery(this).attr('rel').split(',');
		out = hoverArr[1];
		jQuery(this).removeClass('sel');
		jQuery(this).css('background-image','url(' + out + ')');
	});
}

/*--------- search ajax? ---------*/

function isSearch() {
	jQuery('#search .searchContainer .searchInput #searchInput').focus(function() {
		myFocusedForm = 's';
	});
	jQuery('.scfForm *').focus(function() {
		myFocusedForm = 'c';
	});
}

function togglesearchlayer() {
	jQuery('#searchlayer').slideDown('fast');
}

function searchlayerinit() {
	jQuery('.searchContainer .searchBtn').click(function() {
		togglesearchlayer();
		handleSearchInputs();
	});
	jQuery('body form').submit(function() {
		isSearch();
		if (window.myFocusedForm == 's') {
			togglesearchlayer();
			handleSearchInputs();
			return false;
		}
	});
}

function handleSearchInputs() {
    if (jQuery('#searchlayer .searchContainer .searchInput #searchInputLayer').length==0) {
        jQuery('#searchlayer .searchContainer .searchInput').append('<input type="text" id="searchInputLayer" value=""/>');
    }
	if (jQuery('#search .searchContainer .searchInput #searchInput').length>0) {
	    jQuery('#searchlayer .searchContainer .searchInput #searchInputLayer').val(jQuery('#search .searchContainer .searchInput #searchInput').val());
	}
	jQuery('#search .searchContainer .searchInput #searchInput').remove();
	makeMoreBtn(jQuery('#searchlayer .searchlayerFloat .left a.btn'),'btn learnmore fwd');
	makeMoreBtn(jQuery('#searchlayer .searchlayerFloat .right a.btn'),'btn learnmore fwd');
	jQuery('#searchlayer .searchInput input').focus(function() {
		clearField('searchInputLayer');
    });
    doSearch();	    
    doSearch();
}
//function freetextsearch() {
//    if (this.timer) clearTimeout(this.timer);
//    this.timer = setTimeout(function () { doSearch(), 300 });
//}
function doSearch() {
    q = jQuery('#searchInputLayer').val()
    jQuery.ajax({
        type: 'POST',
        url: '/ws/search.asmx/FreeTextSearch',
        data: "{'q':'" + q + "'}",
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        timeout: 10000,
        success: function (msg) {
            handleSearchResult(msg.d);
        },
        error: function (xhr, status, error) {
            console.log(error);
        }
    });
}

function handleSearchResult(result) {
    
    jQuery('#productsHitCount').html('(' + result.ProductsHitCount + ')');
    jQuery('#casesHitCount').html('(' + result.CasesHitCount + ')');
    jQuery('#pagesHitCount').html('(' + result.PagesHitCount + ')');
    
    var x = "<div class=\"row\">" +
			"   <div class=\"img\">" +
			"       <div class=\"innerPadding\">" +
			"           <img src=\"${ImageUrl}?mw=86&mh=64\"/>" +
			"       </div>" +
			"   </div>" +
			"   <div class=\"text\">" +
			"       <div class=\"innerPadding\">" +
			"   			<h6 class=\"blue\"><a href=\"${Url}\">${Title}</a></h6>${Description}<a href=\"${Url}\"> >></a>" +
			"       </div>" +
			"   </div>" +
			"   <div class=\"clear\"></div>" +
            "</div>";

    var y = "   <li><a href=\"${Url}\">${Title}</a> </li>"
    
    jQuery.template("itemTemplate", x);
    jQuery.template("pagesTemplate", y);

    // remove siblings
    jQuery('#productListSearchResult .row.odd').remove();
    jQuery('#productListSearchResult .row.even').remove();

    jQuery('#casesListSearchResult .row.odd').remove();
    jQuery('#casesListSearchResult .row.even').remove();

    jQuery('#pagesListSearchResult li').remove();

    // add new items
    jQuery.tmpl("itemTemplate", result.Products).appendTo("#productListSearchResult");
    jQuery.tmpl("itemTemplate", result.Cases).appendTo("#casesListSearchResult");
    jQuery.tmpl("pagesTemplate", result.Pages).appendTo("#pagesListSearchResult");

    // apply odd class
    jQuery('#productListSearchResult .row:even').addClass("odd");
    jQuery('#productListSearchResult .row:odd').addClass("even");
    jQuery('#casesListSearchResult .row:even').addClass("odd");
    jQuery('#casesListSearchResult .row:odd').addClass("even");

    // setup show all link, hide if less than 4
    if (result.ProductsHitCount <= 3 ) {
        jQuery("#productSearchResultLink").hide();
    } else {
        jQuery("#productSearchResultLink").show();
    }
    if (result.CasesHitCount <= 3) {
        jQuery("#casesSearchResultLink").hide();
    } else {
        jQuery("#casesSearchResultLink").show();
    }
    if (result.PagesHitCount <= 3) {
        jQuery("#pagesSearchResultLink").hide();
    }
    else {
        jQuery("#pagesSearchResultLink").show();
    }
    //Create the "More Result"-links
    jQuery("#productSearchResultLink").attr("href", searchResultLink + "?a=Products&q=" + jQuery('#searchInputLayer').val());
    jQuery("#casesSearchResultLink").attr("href", searchResultLink + "?a=Cases&q=" + jQuery('#searchInputLayer').val());
    jQuery("#pagesSearchResultLink").attr("href", searchResultLink + "?a=Pages&q=" + jQuery('#searchInputLayer').val());
}
/*--------- / search ajax? ---------*/

