﻿﻿/**
 * @section:    Plugins
 */
(function($){$.fn.closeDOMWindow=function(settings){if(!settings){settings={}}var run=function(passingThis){if(settings.anchoredClassName){var $anchorClassName=$('.'+settings.anchoredClassName);$anchorClassName.fadeOut('fast',function(){if($.fn.draggable){$anchorClassName.draggable('destory').trigger("unload").remove()}else{$anchorClassName.trigger("unload").remove()}});if(settings.functionCallOnClose){settings.functionCallAfterClose()}}else{var $DOMWindowOverlay=$('#DOMWindowOverlay');var $DOMWindow=$('#DOMWindow');$DOMWindowOverlay.fadeOut('fast',function(){$DOMWindowOverlay.trigger('unload').unbind().remove()});$DOMWindow.fadeOut('fast',function(){if($.fn.draggable){$DOMWindow.draggable("destroy").trigger("unload").remove()}else{$DOMWindow.trigger("unload").remove()}});$(window).unbind('scroll.DOMWindow');$(window).unbind('resize.DOMWindow');if($.fn.openDOMWindow.isIE6){$('#DOMWindowIE6FixIframe').remove()}if(settings.functionCallOnClose){settings.functionCallAfterClose()}}};if(settings.eventType){return this.each(function(index){$(this).bind(settings.eventType,function(){run(this);return false})})}else{run()}};$.closeDOMWindow=function(s){$.fn.closeDOMWindow(s)};$.fn.openDOMWindow=function(instanceSettings){var shortcut=$.fn.openDOMWindow;shortcut.defaultsSettings={anchoredClassName:'',anchoredSelector:'',borderColor:'#ccc',borderSize:'4',draggable:0,eventType:null,fixedWindowY:100,functionCallOnOpen:null,functionCallOnClose:null,height:500,loader:0,loaderHeight:0,loaderImagePath:'',loaderWidth:0,modal:0,overlay:1,overlayColor:'#000',overlayOpacity:'85',positionLeft:0,positionTop:0,positionType:'centered',width:500,windowBGColor:'#fff',windowBGImage:null,windowHTTPType:'get',windowPadding:10,windowSource:'inline',windowSourceID:'',windowSourceURL:'',windowSourceAttrURL:'href'};var settings=$.extend({},$.fn.openDOMWindow.defaultsSettings,instanceSettings||{});shortcut.viewPortHeight=function(){return self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight};shortcut.viewPortWidth=function(){return self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth};shortcut.scrollOffsetHeight=function(){return self.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop};shortcut.scrollOffsetWidth=function(){return self.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft};shortcut.isIE6=typeof document.body.style.maxHeight==="undefined";var sizeOverlay=function(){var $DOMWindowOverlay=$('#DOMWindowOverlay');if(shortcut.isIE6){var overlayViewportHeight=document.documentElement.offsetHeight+document.documentElement.scrollTop-4;var overlayViewportWidth=document.documentElement.offsetWidth-21;$DOMWindowOverlay.css({'height':overlayViewportHeight+'px','width':overlayViewportWidth+'px'})}else{$DOMWindowOverlay.css({'height':'100%','width':'100%','position':'fixed'})}};var sizeIE6Iframe=function(){var overlayViewportHeight=document.documentElement.offsetHeight+document.documentElement.scrollTop-4;var overlayViewportWidth=document.documentElement.offsetWidth-21;$('#DOMWindowIE6FixIframe').css({'height':overlayViewportHeight+'px','width':overlayViewportWidth+'px'})};var centerDOMWindow=function(){var $DOMWindow=$('#DOMWindow');if(settings.height+50>shortcut.viewPortHeight()){$DOMWindow.css('left',Math.round(shortcut.viewPortWidth()/2)+shortcut.scrollOffsetWidth()-Math.round(($DOMWindow.outerWidth())/2))}else{$DOMWindow.css('left',Math.round(shortcut.viewPortWidth()/2)+shortcut.scrollOffsetWidth()-Math.round(($DOMWindow.outerWidth())/2));$DOMWindow.css('top',Math.round(shortcut.viewPortHeight()/2)+shortcut.scrollOffsetHeight()-Math.round(($DOMWindow.outerHeight())/2))}};var centerLoader=function(){var $DOMWindowLoader=$('#DOMWindowLoader');if(shortcut.isIE6){$DOMWindowLoader.css({'left':Math.round(shortcut.viewPortWidth()/2)+shortcut.scrollOffsetWidth()-Math.round(($DOMWindowLoader.innerWidth())/2),'position':'absolute'});$DOMWindowLoader.css({'top':Math.round(shortcut.viewPortHeight()/2)+shortcut.scrollOffsetHeight()-Math.round(($DOMWindowLoader.innerHeight())/2),'position':'absolute'})}else{$DOMWindowLoader.css({'left':'50%','top':'50%','position':'fixed'})}};var fixedDOMWindow=function(){var $DOMWindow=$('#DOMWindow');$DOMWindow.css('left',settings.positionLeft+shortcut.scrollOffsetWidth());$DOMWindow.css('top',+settings.positionTop+shortcut.scrollOffsetHeight())};var showDOMWindow=function(instance){if(arguments[0]){$('.'+instance+' #DOMWindowLoader').remove();$('.'+instance+' #DOMWindowContent').fadeIn('fast',function(){if(settings.functionCallOnOpen){settings.functionCallOnOpen()}});$('.'+instance+'.closeDOMWindow').click(function(){$.closeDOMWindow();return false})}else{$('#DOMWindowLoader').remove();$('#DOMWindow').fadeIn('fast',function(){if(settings.functionCallOnOpen){settings.functionCallOnOpen()}});$('#DOMWindow .closeDOMWindow').click(function(){$.closeDOMWindow();return false})}};var urlQueryToObject=function(s){var query={};s.replace(/b([^&=]*)=([^&=]*)b/g,function(m,a,d){if(typeof query[a]!='undefined'){query[a]+=','+d}else{query[a]=d}});return query};var run=function(passingThis){settings.windowSourceID=$(passingThis).attr('href')||settings.windowSourceID;settings.windowSourceURL=$(passingThis).attr(settings.windowSourceAttrURL)||settings.windowSourceURL;settings.windowBGImage=settings.windowBGImage?'background-image:url('+settings.windowBGImage+')':'';var urlOnly,urlQueryObject;if(settings.positionType=='anchored'){var anchoredPositions=$(settings.anchoredSelector).position();var anchoredPositionX=anchoredPositions.left+settings.positionLeft;var anchoredPositionY=anchoredPositions.top+settings.positionTop;$('body').append('<div class="'+settings.anchoredClassName+'" style="'+settings.windowBGImage+';background-repeat:no-repeat;padding:'+settings.windowPadding+'px;overflow:auto;position:absolute;top:'+anchoredPositionY+'px;left:'+anchoredPositionX+'px;height:'+settings.height+'px;width:'+settings.width+'px;background-color:'+settings.windowBGColor+';border:'+settings.borderSize+'px solid '+settings.borderColor+';z-index:10001"><div id="DOMWindowContent" style="display:none"></div></div>');if(settings.loader&&settings.loaderImagePath!==''){$('.'+settings.anchoredClassName).append('<div id="DOMWindowLoader" style="width:'+settings.loaderWidth+'px;height:'+settings.loaderHeight+'px;"><img src="'+settings.loaderImagePath+'" /></div>')}if($.fn.draggable){if(settings.draggable){$('.'+settings.anchoredClassName).draggable({cursor:'move'})}}switch(settings.windowSource){case'inline':$('.'+settings.anchoredClassName+" #DOMWindowContent").append($(settings.windowSourceID).children());$('.'+settings.anchoredClassName).unload(function(){$('.'+settings.windowSourceID).append($('.'+settings.anchoredClassName+" #DOMWindowContent").children())});showDOMWindow(settings.anchoredClassName);break;case'iframe':$('.'+settings.anchoredClassName+" #DOMWindowContent").append('<iframe frameborder="0" hspace="0" wspace="0" src="'+settings.windowSourceURL+'" name="DOMWindowIframe'+Math.round(Math.random()*1000)+'" style="width:100%;height:100%;border:none;background-color:#fff;" class="'+settings.anchoredClassName+'Iframe" ></iframe>');$('.'+settings.anchoredClassName+'Iframe').load(showDOMWindow(settings.anchoredClassName));break;case'ajax':if(settings.windowHTTPType=='post'){if(settings.windowSourceURL.indexOf("?")!==-1){urlOnly=settings.windowSourceURL.substr(0,settings.windowSourceURL.indexOf("?"));urlQueryObject=urlQueryToObject(settings.windowSourceURL)}else{urlOnly=settings.windowSourceURL;urlQueryObject={}}$('.'+settings.anchoredClassName+" #DOMWindowContent").load(urlOnly,urlQueryObject,function(){showDOMWindow(settings.anchoredClassName)})}else{if(settings.windowSourceURL.indexOf("?")==-1){settings.windowSourceURL+='?'}$('.'+settings.anchoredClassName+" #DOMWindowContent").load(settings.windowSourceURL+'&random='+(new Date().getTime()),function(){showDOMWindow(settings.anchoredClassName)})}break}}else{if(settings.overlay){$('body').append('<div id="DOMWindowOverlay" style="z-index:10000;display:none;position:absolute;top:0;left:0;background-color:'+settings.overlayColor+';filter:alpha(opacity='+settings.overlayOpacity+');-moz-opacity: 0.'+settings.overlayOpacity+';opacity: 0.'+settings.overlayOpacity+';"></div>');if(shortcut.isIE6){$('body').append('<iframe id="DOMWindowIE6FixIframe"  src="blank.html"  style="width:100%;height:100%;z-index:9999;position:absolute;top:0;left:0;filter:alpha(opacity=0);"></iframe>');sizeIE6Iframe()}sizeOverlay();var $DOMWindowOverlay=$('#DOMWindowOverlay');$DOMWindowOverlay.fadeIn('fast');if(!settings.modal){$DOMWindowOverlay.click(function(){$.closeDOMWindow()})}}if(settings.loader&&settings.loaderImagePath!==''){$('body').append('<div id="DOMWindowLoader" style="z-index:10002;width:'+settings.loaderWidth+'px;height:'+settings.loaderHeight+'px;"><img src="'+settings.loaderImagePath+'" /></div>');centerLoader()}$('body').append('<div id="DOMWindow" style="background-repeat:no-repeat;'+settings.windowBGImage+';overflow:auto;padding:'+settings.windowPadding+'px;display:none;height:'+settings.height+'px;width:'+settings.width+'px;background-color:'+settings.windowBGColor+';border:'+settings.borderSize+'px solid '+settings.borderColor+'; position:absolute;z-index:10001"></div>');var $DOMWindow=$('#DOMWindow');switch(settings.positionType){case'centered':centerDOMWindow();if(settings.height+50>shortcut.viewPortHeight()){$DOMWindow.css('top',(settings.fixedWindowY+shortcut.scrollOffsetHeight())+'px')}break;case'absolute':$DOMWindow.css({'top':(settings.positionTop+shortcut.scrollOffsetHeight())+'px','left':(settings.positionLeft+shortcut.scrollOffsetWidth())+'px'});if($.fn.draggable){if(settings.draggable){$DOMWindow.draggable({cursor:'move'})}}break;case'fixed':fixedDOMWindow();break;case'anchoredSingleWindow':var anchoredPositions=$(settings.anchoredSelector).position();var anchoredPositionX=anchoredPositions.left+settings.positionLeft;var anchoredPositionY=anchoredPositions.top+settings.positionTop;$DOMWindow.css({'top':anchoredPositionY+'px','left':anchoredPositionX+'px'});break}$(window).bind('scroll.DOMWindow',function(){if(settings.overlay){sizeOverlay()}if(shortcut.isIE6){sizeIE6Iframe()}if(settings.positionType=='centered'){centerDOMWindow()}if(settings.positionType=='fixed'){fixedDOMWindow()}});$(window).bind('resize.DOMWindow',function(){if(shortcut.isIE6){sizeIE6Iframe()}if(settings.overlay){sizeOverlay()}if(settings.positionType=='centered'){centerDOMWindow()}});switch(settings.windowSource){case'inline':$DOMWindow.append($(settings.windowSourceID).children());$DOMWindow.unload(function(){$(settings.windowSourceID).append($DOMWindow.children())});showDOMWindow();break;case'iframe':$DOMWindow.append('<iframe frameborder="0" hspace="0" wspace="0" src="'+settings.windowSourceURL+'" name="DOMWindowIframe'+Math.round(Math.random()*1000)+'" style="width:100%;height:100%;border:none;background-color:#fff;" id="DOMWindowIframe" ></iframe>');$('#DOMWindowIframe').load(showDOMWindow());break;case'ajax':if(settings.windowHTTPType=='post'){if(settings.windowSourceURL.indexOf("?")!==-1){urlOnly=settings.windowSourceURL.substr(0,settings.windowSourceURL.indexOf("?"));urlQueryObject=urlQueryToObject(settings.windowSourceURL)}else{urlOnly=settings.windowSourceURL;urlQueryObject={}}$DOMWindow.load(urlOnly,urlQueryObject,function(){showDOMWindow()})}else{if(settings.windowSourceURL.indexOf("?")==-1){settings.windowSourceURL+='?'}$DOMWindow.load(settings.windowSourceURL+'&random='+(new Date().getTime()),function(){showDOMWindow()})}break}}};if(settings.eventType){return this.each(function(index){$(this).bind(settings.eventType,function(){run(this);return false})})}else{run()}};$.openDOMWindow=function(s){$.fn.openDOMWindow(s)}})(jQuery);
$.fn.semantictabs=function(passedArgsObj){args={panel:'panel',head:'h2',active:':first',activate:false};for(var argName in passedArgsObj){args[argName]=passedArgsObj[argName]}if(args.activate){return this.each(function(){var container=jQuery(this);container.find("."+args.panel).hide();container.find("ul.tabs li").removeClass("active");container.find("div."+args.panel+":eq("+args.activate+")").show();container.find("ul.tabs li:eq("+args.activate+")").addClass("active")})}else{return this.each(function(){var container=jQuery(this);container.parent().find("."+args.panel).hide();container.find("div."+args.panel+args.active).show();container.prepend("<ul class=\"tabs semtabs\"></ul>");container.find("."+args.panel).each(function(){var title=$(this).find(args.head).text();this.title=title;container.find("ul.tabs").append("<li><a href=\"javascript:void(0);\">"+title+"</a></li>")});container.find("ul li"+args.active).addClass("active");container.find("ul.tabs li").click(function(){container.find("."+args.panel).hide();container.find("ul.tabs li").removeClass("active");if(($.browser.msie&&$.browser.version.substr(0,1)=='6')){container.find("div."+args.panel+"[title='"+jQuery(this).text()+"']").css({display:'inline'})}else{container.find("div."+args.panel+"[title='"+jQuery(this).text()+"']").show()}jQuery(this).addClass("active");if(($('body').attr('id')=='administration'&&$.browser.msie&&$.browser.version.substr(0,1)=='7')){jQuery('#carpenter div.grid_5, #carpenter div.grid_3').css({'margin-left':'0'});jQuery('#overall_search div.grid_5').css({'margin-left':'0'})}});container.find("#remtabs").click(function(){container.find("ul.tabs").remove();container.find("."+args.container+" ."+args.panel).show();container.find("#remtabs").remove()})})}};
jQuery.fn.extend({selectbox:function(options){return this.each(function(){new jQuery.SelectBox(this,options)})}});if(!window.console){var console={log:function(msg){}}}jQuery.SelectBox=function(selectobj,options){var opt=options||{};opt.inputClass=opt.inputClass||"selectbox";opt.containerClass=opt.containerClass||"selectbox-wrapper";opt.hoverClass=opt.hoverClass||"current";opt.currentClass=opt.selectedClass||"selected";opt.debug=opt.debug||false;var elm_id=selectobj.id;var active=-1;var inFocus=false;var hasfocus=0;var $select=$(selectobj);var $container=setupContainer(opt);var $input=setupInput(opt);$select.hide().before($input).before($container);init();$input.click(function(){if(!inFocus){$container.toggle()}}).focus(function(){if($container.not(':visible')){inFocus=true;$container.show()}}).keydown(function(event){switch(event.keyCode){case 38:event.preventDefault();moveSelect(-1);break;case 40:event.preventDefault();moveSelect(1);break;case 13:event.preventDefault();$('li.'+opt.hoverClass).trigger('click');break;case 27:hideMe();break}}).blur(function(){if($container.is(':visible')&&hasfocus>0){if(opt.debug)console.log('container visible and has focus')}else{hideMe()}});function hideMe(){hasfocus=0;$container.hide()}function init(){$container.append(getSelectOptions($input.attr('id'))).hide();var width=$input.css('width');$container.width(width)}function setupContainer(options){var container=document.createElement("div");$container=$(container);$container.attr('id',elm_id+'_container');$container.addClass(options.containerClass);return $container}function setupInput(options){var input=document.createElement("input");var $input=$(input);$input.attr("id",elm_id+"_input");$input.attr("type","text");$input.addClass(options.inputClass);$input.attr("autocomplete","off");$input.attr("readonly","readonly");$input.attr("tabIndex",$select.attr("tabindex"));return $input}function moveSelect(step){var lis=$("li",$container);if(!lis)return;active+=step;if(active<0){active=0}else if(active>=lis.size()){active=lis.size()-1}lis.removeClass(opt.hoverClass);$(lis[active]).addClass(opt.hoverClass)}function setCurrent(){var li=$("li."+opt.currentClass,$container).get(0);var ar=(''+li.id).split('_');var el=ar[ar.length-1];$select.val(el);$input.val($(li).html());return true}function getCurrentSelected(){if($select.attr('id')=='search_radius'){$select.val(escape($input.val()).split('%20km')[0])}else{$select.val($input.val())}return $select.val()}function getCurrentValue(){return $input.val()}function getSelectOptions(parentid){var select_options=new Array();var ul=document.createElement('ul');$select.children('option').each(function(){var li=document.createElement('li');li.setAttribute('id',parentid+'_'+$(this).val());li.innerHTML=$(this).html();if($(this).is(':selected')){$input.val($(this).html());$(li).addClass(opt.currentClass)}ul.appendChild(li);$(li).mouseover(function(event){hasfocus=1;if(opt.debug){console.log('over on : '+this.id)}jQuery(event.target,$container).addClass(opt.hoverClass)}).mouseout(function(event){hasfocus=-1;if(opt.debug){console.log('out on : '+this.id)}jQuery(event.target,$container).removeClass(opt.hoverClass)}).click(function(event){var fl=$('li.'+opt.hoverClass,$container).get(0);if(opt.debug){console.log('click on :'+this.id)}$('li.'+opt.currentClass).removeClass(opt.currentClass);$(this).addClass(opt.currentClass);setCurrent();hideMe();if($(this).parents('#tag_form form').size()){getCurrentSelected();$(this).parents('form').submit()}})});return ul}};
(function(){var $$;$$=jQuery.fn.flash=function(htmlOptions,pluginOptions,replace,update){var block=replace||$$.replace;pluginOptions=$$.copy($$.pluginOptions,pluginOptions);if(!$$.hasFlash(pluginOptions.version)){if(pluginOptions.expressInstall&&$$.hasFlash(6,0,65)){var expressInstallOptions={flashvars:{MMredirectURL:location,MMplayerType:'PlugIn',MMdoctitle:jQuery('title').text()}}}else if(pluginOptions.update){block=update||$$.update}else{return this}}htmlOptions=$$.copy($$.htmlOptions,expressInstallOptions,htmlOptions);return this.each(function(){block.call(this,$$.copy(htmlOptions))})};$$.copy=function(){var options={},flashvars={};for(var i=0;i<arguments.length;i++){var arg=arguments[i];if(arg==undefined)continue;jQuery.extend(options,arg);if(arg.flashvars==undefined)continue;jQuery.extend(flashvars,arg.flashvars)}options.flashvars=flashvars;return options};$$.hasFlash=function(){if(/hasFlash\=true/.test(location))return true;if(/hasFlash\=false/.test(location))return false;var pv=$$.hasFlash.playerVersion().match(/\d+/g);var rv=String([arguments[0],arguments[1],arguments[2]]).match(/\d+/g)||String($$.pluginOptions.version).match(/\d+/g);for(var i=0;i<3;i++){pv[i]=parseInt(pv[i]||0);rv[i]=parseInt(rv[i]||0);if(pv[i]<rv[i])return false;if(pv[i]>rv[i])return true}return true};$$.hasFlash.playerVersion=function(){try{try{var axo=new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');try{axo.AllowScriptAccess='always'}catch(e){return'6,0,0'}}catch(e){}return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g,',').match(/^,?(.+),?$/)[1]}catch(e){try{if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){return(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}}catch(e){}}return'0,0,0'};$$.htmlOptions={height:240,flashvars:{},pluginspage:'http://www.adobe.com/go/getflashplayer',src:'#',type:'application/x-shockwave-flash',width:320};$$.pluginOptions={expressInstall:false,update:true,version:'6.0.65'};$$.replace=function(htmlOptions){this.innerHTML='<div class="alt">'+this.innerHTML+'</div>';jQuery(this).addClass('flash-replaced').prepend($$.transform(htmlOptions))};$$.update=function(htmlOptions){var url=String(location).split('?');url.splice(1,0,'?hasFlash=true&');url=url.join('');var msg='<p>This content requires the Flash Player. <a href="http://www.adobe.com/go/getflashplayer">Download Flash Player</a>. Already have Flash Player? <a href="'+url+'">Click here.</a></p>';this.innerHTML='<span class="alt">'+this.innerHTML+'</span>';jQuery(this).addClass('flash-update').prepend(msg)};function toAttributeString(){var s='';for(var key in this)if(typeof this[key]!='function')s+=key+'="'+this[key]+'" ';return s};function toFlashvarsString(){var s='';for(var key in this)if(typeof this[key]!='function')s+=key+'='+encodeURIComponent(this[key])+'&';return s.replace(/&$/,'')};$$.transform=function(htmlOptions){htmlOptions.toString=toAttributeString;if(htmlOptions.flashvars)htmlOptions.flashvars.toString=toFlashvarsString;return'<embed '+String(htmlOptions)+'/>'};if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}})();
jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options.expires=-1}var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000))}else{date=options.expires}expires='; expires='+date.toUTCString()}var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('')}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break}}}return cookieValue}};
jQuery.fn.extend({getUrlParam:function(strParamName){strParamName=escape(unescape(strParamName));var returnVal=new Array();var qString=null;if($(this).attr("nodeName")=="#document"){if(window.location.search.search(strParamName)>-1){qString=window.location.search.substr(1,window.location.search.length).split("&")}}else{if($(this).attr("src")!="undefined"){var strHref=$(this).attr("src");if(strHref.indexOf("?")>-1){var strQueryString=strHref.substr(strHref.indexOf("?")+1);qString=strQueryString.split("&")}}else{if($(this).attr("href")!="undefined"){var strHref=$(this).attr("href");if(strHref.indexOf("?")>-1){var strQueryString=strHref.substr(strHref.indexOf("?")+1);qString=strQueryString.split("&")}}else{return null}}};if(qString==null){return null};for(var i=0;i<qString.length;i++){if(escape(unescape(qString[i].split("=")[0]))==strParamName){returnVal.push(qString[i].split("=")[1])}};if(returnVal.length==0){return null}else{if(returnVal.length==1){return returnVal[0]}else{return returnVal}}}});
jQuery.fn.delay=function(time,func){this.each(function(){setTimeout(func,time)});return this};
$(document).ready(function(){

    /**
     * @section:    Start page
     * @subsection:    Accordion FAKE!
     */
    $('#accordion dt').each(function(){
        var __cN = $(this).attr('class');
        $(this).addClass('ui-state-default').siblings('.' + __cN).height($(this).siblings('.' + __cN).height()).hide();
        $(this).siblings('dd:hidden').children().hide();
        $(this).hover(function(){
            $('dt.ui-state-active').removeClass('ui-state-active').addClass('ui-state-default');
            $(this).removeClass('ui-state-default').addClass('ui-state-active');
            $(this).siblings('dd.' + __cN).slideDown().siblings('dd:visible').slideUp().children().fadeOut('fast');
            $('dd.' + __cN).children().each(function(){
                $(this).delay(250, function(){
                    $('dd.' + __cN + ' *').fadeIn('slow');
                });
            })
        }, function(){ })
    })
    
    /**
     * @subsection:    Image Grid
     */
    scaleGridImages(); //function: see below!
    /**
     * Tab panels
     * Remove class for no-script scenario
     */
    $('.noJS').removeClass('noJS');
    
    
    /**
     * Showroom listing
     */
    $('select.layer_input').selectbox();
    $('#search_carpenter_form .selectbox:first, #haefele_contact_form .selectbox').addClass('layer_81');
    $('#sidebar #search_carpenter_form .selectbox:last').addClass('layer_154');
    $('#header_content #search_carpenter_form .selectbox:last').addClass('layer_135');
    $('#main form .form_row #country_input').addClass('required');
    
    /**
     * @section:    Header
     * @subsection:    Header slider
     */
    if ($('#header_panel').size()) {
        if ($.cookie('header_slider') == 'closed') {
            $('#header_panel').hide();
            $('#header_panel li a span').hide();
            $('#header_panel_trigger').toggle(function(){
                $('#header_panel').slideDown('slow');
                $(this).css({
                    'background-position': '0 0px'
                }).delay(500, function(){
                    $('#header_panel li a span').fadeIn('slow');
                });
				$.cookie('header_slider', null);
                $.cookie('header_slider', 'open', { path: '/'});
            }, function(){
                $('#header_panel li a span').fadeOut('slow');
                $(this).delay(300, function(){
                    $('#header_panel').slideUp('slow');
                    $.cookie('header_slider', null);
                    $.cookie('header_slider', 'closed', { path: '/'});
                }).css({
                    'background-position': '0 -56px'
                });
            })
        } else {
			if (!$.cookie('header_slider') || $.cookie('header_slider') == 'open') {
				$('#header_panel ul').show();
				$('#header_panel_trigger').css({
					'background-position': '0 0'
				}).toggle(function(){
					$('#header_panel li a span').fadeOut('slow');
					$(this).delay(300, function(){
						$('#header_panel').slideUp('slow');
						$.cookie('header_slider', null);
						$.cookie('header_slider', 'closed', { path: '/'});
					}).css({
						'background-position': '0 -56px'
					});
				}, function(){
					$('#header_panel').slideDown('slow');
					$(this).css({
						'background-position': '0 0px'
					}).delay(500, function(){
						$('#header_panel li a span').fadeIn('slow');
					});
					$.cookie('header_slider', null);
					$.cookie('header_slider', 'open', { path: '/'});
				});
			}
        };
    }

    
    /**
     * @subsection:    search form
     */
    $('#header #header_search form').each(function(){
        var _label = $(this).children('label');
        var _labelText = $(_label).text();
        
        var _input = $(this).children('input[type=text]');
        var _inputVal = $(_input).val();
        
        $(_input).val(_labelText);
        $(_label).hide();
        
        $(_input).focus(function(){
            if ($(this).val() == _labelText) {
                $(this).val('');
            }
        });
        $(_input).blur(function(){
            if ($(this).val() == '') {
                $(this).val(_labelText);
            }
        });
    })
    
    $('#search_carpenter_form input').each(function(){
        if ($(this).attr('id') == 'postal_code') {
            var _label = $(this).prev('label');
            var _labelText = $(this).prev('label').text();

            if($(this).val() == "") {
                $(this).val(_labelText);
            }
            
            _label.hide();
            
            $(this).focus(function(){
                if ($(this).val() == _labelText) {
                    $(this).val('');
                }
            }).blur(function(){
                if ($(this).val() == '') {
                    $(this).val(_labelText);
                }
            });
        }
    })

    
    /**
     * Carpenter search hidden filed:
     */
    $('input#js_enabled').val('true');
    
    /**
     * Carpenter search: Cookies
     */
    
    $('#search_carpenter_form').submit(function(){
        var __p = $(this).find('#postal_code').val();
        var __r = escape($(this).find('#search_radius_input').val()).split('%20km')[0].replace("+", "");
        var __c = $(this).find('#search_country_input').val();
        
        $.cookie('postal_code', __p, { path: '/'});
        $.cookie('search_radius', __r, { path: '/'});
        $.cookie('search_country', __c, { path: '/'});
        
        // Save partner types in cookies
        $(this).find("input.cbx_image").each(function(){
            var cbx = $(this)[0];
            var cbxID = $(this).attr("id");
            $.cookie(cbx.id, cbx.checked, { path: '/'});
        });
    })
    
    if ($('#carpenter_search').size() != 0) {
        if ($.cookie('postal_code')) {
            $(this).find('#postal_code').val($.cookie('postal_code'));
            $(this).find('#search_radius_input').val($.cookie('search_radius') + ' km');
            $(this).find('#search_radius').val($.cookie('search_radius').replace("+", ""));
            $(this).find('#search_country_input,#search_country').val($.cookie('search_country'));
            
            // Load partner types from cookies an display them
            $(".partner_types input.cbx_image").each(function(){
                var cbxType = $(this)[0];
                var cookieVal = $.cookie(cbxType.id);
                if(cookieVal == "true"){
                    $(cbxType).attr("checked", "checked");
                }
                else{
                    $(cbxType).removeAttr("checked");
                }
            });
        }
    }
    
    /**
     * @section:    Carpenter detail page
     * @subsection:    Tabs
     */
    $('#carpenter .tabs,#event_tabs').semantictabs();
    
    /**
     * @subsection:     Prepare forms
     */
    $('#main form .form_row #country_input, #main form .form_row #salutation_input').prev('label').hide();
    $('#main form .form_row, #main form .form_row .form_pair, #dialog_sendAFriend form .form_pair').each(function(){
        if ($(this).children('input[type=text], textarea').size() && $(this).children('label').size()) {
            var _label = $(this).children('label');
            var _labelText = $(this).children('label').text();
            
            var _input = $(this).children('input[type=text], textarea');
            var _inputVal = $(this).children('input[type=text], textarea').val();
            
            if(!$(_input).val()){
                $(_input).val(_labelText);
            }
            
            $(_label).hide();
            
            $(_input).each(function(){
                $(this).focus(function(){
                    if ($(this).val() == _labelText) {
                        $(_input).val('');
                    }
                }).blur(function(){
                    if ($(this).val() == '') {
                        $(this).val(_labelText);
                    }
                });
            })
        }
    })
    
    if (!($.browser.msie && $.browser.version.substr(0, 1) == '6')) {
        $('#contact_message .submit, #become_partner_form .submit, #haefele_contact_form .submit, #haefele_home_order .submit, #partner_profile .submit').each(function(){
            var __button = $(this).find('input[type=submit]');
            $(__button).hide();
            $(this).append('<a class="gray_right_small" href="javascript:void(0);"><span>' + __button.val() + '</span></a>');
            $(this).find('.gray_right_small').click(function(){
                $(__button).click();
            })
        })
    }
    
    $('#main form #btn_send, input#btn_SendAFriend').click(function(){
        var error = false;
        $(this).parents('form').find('.required').each(function(){
            var _label = $(this).prev('label').text();
            var _val = $.trim($(this).val());
            var _type = $(this).attr("type");
            // Validate textboxes
            if(_type != "checkbox" && this.tagName != "DIV" && (_val == '' || _val == _label)){
                $(this).addClass('error').siblings('span.error').hide();
                $(this).siblings('span.error:not(.special)').fadeIn().css({'display':'block'});
                error = true;
            }
            // Validate checkboxes
            else if(_type == "checkbox" && !$(this).is(':checked')) {
                $(this).addClass('error').siblings('span.error').fadeIn().css({'display':'block'});
                error = true;
            }
            else if(this.tagName == "DIV" && $(this).hasClass('cbx_list') && $(this).find("input:checked").length <= 0) {
                 $(this).siblings('span.error').fadeIn().css({'display':'block'});
                 error = true;
            }
            else{
                $(this).removeClass('error').siblings('span.error').hide();
                // Check length of input. Should be max. 100 signs for each field (out of textarea)
                if(this.tagName == "INPUT" && _val.length > 100){
                    var spanError = $(this).next('span.error.special')[0];
                    // Set standard message
                    var errMsg = "Input have to be less then 100 signs.";
                    // Get language dependet message if available
                    if(typeof getMessagesByKey == 'function'){
                        errMsg = getMessagesByKey("FormInputToLong");
                    }
                    if(spanError == undefined && spanError == null) {
                        spanError = $("<span>").attr("class", "error special").css({'display':'block'}).text(errMsg);
                        $(this).after(spanError);
                    }
                    else {
                        $(this).next('span.error.special').css({'display':'block'}).html(errMsg);
                    }
                    
                    $(this).addClass('error');
                    error = true;
                }
                // Check the length of the customer number which must be 7 signs
                else if(this.id == "customer_number" && _val.length != 7){
                    var spanError = $(this).next('span.error.special')[0];
                    // Set standard message
                    var errMsg = "Customer number seems to be invalid";
                    // Get language dependet message if available
                    if(typeof getMessagesByKey == 'function'){
                        errMsg = getMessagesByKey("FormInputInvalidCustomer");
                    }
                    if(spanError == undefined && spanError == null) {
                        spanError = $("<span>").attr("class", "error special").css({'display':'block'}).text(errMsg);
                        $(this).after(spanError);
                    }
                    else {
                        $(this).next('span.error.special').css({'display':'block'}).html(errMsg);
                    }
                    
                    $(this).addClass('error');
                    error = true;
                }
                else {
                    $(this).next('span.error').hide();
                }
            }
        });
        if (error == true) {
            $('input.error:first').focus();
            return false;
        }
        else {     
            $(this).parents('form').find('input[type=text]:not(.required), textarea:not(.required)').each(function(){
                $(this).val("");
            });
        }
    });
    
    /**
     * @subsection: Object detail page - Lightboxes
     */
    $('#dialog_container_wantThis, #dialog_container_sendAFriend, #showroom_container_flash').addClass('hidden');
    
    //generate close button
    var __dialogCloseImage = $('<img/>').css({position:'absolute',top:'8px',right:'8px',zIndex: '1000'}).attr('src', 'fe_assets/img/buttons/btn_TB_close.png');
    //generate closing link
    var __dialogCloseLink = $('<a/>').attr('href', '#').addClass('closeDOMWindow');
    //wrap link around button and prepend it to "lightbox" content
    __dialogCloseLink.append(__dialogCloseImage);
    $('#dialog_wantThis, #dialog_sendAFriend').prepend(__dialogCloseLink);
    
    $('#wantThis').click(function(){
        $.openDOMWindow({
            width: 472,
            height: 395,
            windowPadding: 0,
            borderSize: 4,
            borderColor: '#fff',
            windowSourceID: '#dialog_container_wantThis'
        });
        return false;
    });
    $('#sendAFriend').click(function(){
        $.openDOMWindow({
            width: 512,
            height: 700,
            windowPadding: 0,
            borderSize: '4',
            borderColor: '#fff',
            windowSourceID: '#dialog_container_sendAFriend'
        });
        return false;
    });
    
    $('#showroom_opener, div.subject_area_header div.image img').click(function(){
        $.openDOMWindow({
            width: 992,
            height: 650,
            windowPadding: 0,
            borderSize: '4',
            borderColor: '#fff',
            windowSourceID: '#showroom_container_flash'
        });
        return false;
    })
    
    // Need for IE6, IE7 they don't change markup, when forms will be replaced
    var tmpPostUrl;
    
    $('#wantThis').click(function(){
        // Change checkbox images
        $(".sidebar_content.second #search_carpenter_form input.cbx_image").removeClass("black").addClass("black_border");
        SetCheckboxImages(false);
        
        // Get post URLs
        var postUrlWithObject = $('#lb_carp_search p a').attr("href");
        var postUrlWithoutObject = $('.sidebar_content.second #search_carpenter_form').attr('action');
        tmpPostUrl = postUrlWithoutObject;
        
        // Hide link which should only be shown when js is not activated
        $('#lb_carp_search p').css("display", "none");
        // Insert original carpenter search form into lightbox "want this" and fake form into sidebar
        var originalFormData = $('.sidebar_content.second').children();
        $(originalFormData).attr('action', postUrlWithObject);
        $('#lb_carp_search p').before(originalFormData);
        var fakeFormData = $(originalFormData).clone();
        $(fakeFormData).attr('action', postUrlWithoutObject);
        $('.sidebar_content.second').append(fakeFormData);
         
        $('#dialog_wantThis .dialog_content').css({height: '365px'})
    });
    
    $('#dialog_wantThis .closeDOMWindow img').click(function(){
        //Fading out the form
        $(this).delay(500, function(){
            // Get old url
            var postUrlWithoutObject = $('.sidebar_content.second #search_carpenter_form').attr('action');
            
            // Insert original form into sidebar and remove the fake form
            var originalFormData = $('#lb_carp_search #search_carpenter_form, #lb_carp_search h3');
            // Set old url for carpenter search form
            $(originalFormData[1]).attr('action', tmpPostUrl);
            var cntSidebar = $('.sidebar_content.second');
            cntSidebar.children().remove();
            cntSidebar.append(originalFormData);
        });
        
        // Change checkbox images
        $("#lb_carp_search #search_carpenter_form input.cbx_image").removeClass("black_border").addClass("black");
        SetCheckboxImages(false);
    });
    
    /**
     * @section:    Search results
     * @subsection: Tabs
     */
    $('.result_tabs').semantictabs();
    
    /**
     * Tabs SET ID
     */
    var __j = 1;
    $('.semtabs li a').each(function(){
        $(this).attr('id', 'tabbed_content_' + __j);
        __j++;
    })
    
    /**
     * Tabs GET ID and click!
     */
    var __t = $(document).getUrlParam('t');
    if (__t != '' && __t != 'undefined') {
        $('#tabbed_content_' + __t).click();
    }
    
    $('#carpenter .portrait a').click(function(){
        $('#tabbed_content_3').click();
        return false;
    })
    
    /**
     * Init checkbox images
     */
    SetCheckboxImages(true);
    
    /**
     * Init roue planner
     */
     $("#route_planner #process_route").click(function(event){
        // Validate fields
        var error = false;
        $(this).parents('#route_planner').find('.required').each(function(){
            var _val = $.trim($(this).val());
            if(_val == ''){
                $(this).addClass('error').siblings('span.error').fadeIn().css({'display':'block'});
                error = true;
            }
            else{
                $(this).removeClass('error').next('span.error').hide();
            }
        });
        
        if (error == true) {
            $('input.error:first').focus();
        }
        else {     
            // Get data for start
            var start = $("#start").val();
            var geocoder = new GClientGeocoder();
            geocoder.getLocations(start, function(response){
                if (!response || response.Status.code != 200) {
                    ShowRoutePlannnerMessage(getMessagesByKey("StartNotFound"));
                    return;
                } 
                else {
                    var placemarkStart = response.Placemark[0];

                    // Get data for aim
                    var aim = $("#aim").val();
                    var geocoder = new GClientGeocoder();
                    geocoder.getLocations(aim, function(response){
                        if (!response || response.Status.code != 200) {
                            ShowRoutePlannnerMessage(getMessagesByKey("AimNotFound"));
                            return;
                          } 
                          else {
                            // Clear last result if exist
                            $("#direction #current_route").empty();
                            $("#direction #current_route_temp").empty()
                            // Create request query
                            var localPlacemarkStart = placemarkStart;
                            var placemarkAim = response.Placemark[0];
                            var strStart = "from: " + localPlacemarkStart.Point.coordinates[1] + ", " + localPlacemarkStart.Point.coordinates[0];
                            var strAim = " to: " + placemarkAim.Point.coordinates[1] + ", " + placemarkAim.Point.coordinates[0];
                            
                            var directionsPanel = document.getElementById("current_route_temp");
                            if(directions == undefined) {
                                directions = new GDirections(null, directionsPanel);                            
                                GEvent.addListener(directions, "error", HandleRoutePlannerErrors);
                                GEvent.addListener(directions, "load", function(response){
                                    ShowRouteOnMap(response);
                                });
                            }
                            directions.load(strStart + strAim, {getPolyline:true});
                          }
                    });
                }
            });
        }
        
        event.preventDefault();
     });
     
     $("#switch_route").click(function(){
        var tmpStart = $("#start").val();
        $("#start").val($("#aim").val());
        $("#aim").val(tmpStart);
        $("#process_route").click();
     });
     
     $("#print_route").click(function(event){
        window.print();
        event.preventDefault();
     });
});

function scaleGridImages(){
    $('.grid_cell').each(function(){
    
        var __x, __y, __width, __height;
        var __class = $(this).attr('class').split(' ')[1];
        
        switch (__class) {
            case "grid_size_120x80":
                __x = '8';
                __y = '5';
                __width = '120';
                __height = '80';
                break;
            case "grid_size_120x164":
                __x = '8';
                __y = '12';
                __width = '120';
                __height = '164';
                break;
            case "grid_size_244x164":
                __x = '8';
                __y = '6';
                __width = '244';
                __height = '164';
                break;
            case "grid_size_244x332":
                __x = '8';
                __y = '10';
                __width = '244';
                __height = '332';
                break;
            case "grid_size_368x248":
                __x = '8';
                __y = '5';
                __width = '368';
                __height = '248';
                break;
        }
        
        //strings to integers
        __x = parseInt(__x);
        __y = parseInt(__y);
        __width = parseInt(__width);
        __height = parseInt(__height);
        
        var __hoverWidth = __width + __x;
        var __hoverHeight = __height + __y;
        
        var __z = $(this).css('zIndex');
        
        var __d = $(this).children('.description');
        var __dH = __d.height();
        var __dW = __d.width();
        var __dP = 2 * (parseInt($(this).children('.description').css('paddingTop')));
        
        var __objI = $(this).children('img');
        
        var __img = $('<img />').attr('src', 'fe_assets/img/blank.gif').css({ // IE needs this image so the cells do not collapse on what IE thinks is a mouseout!
            position: 'absolute',
            top: '0',
            left: '0'
        });
        
        var __link = __d.find('a').attr('href');
        var __newLink = $('<a />').attr('href', __link);
        $(this).find('img').wrap(__newLink);
        $(this).children().css({
            cursor: 'pointer'
        }).click(function(){
            document.location.href = __link;
        })
        
        if ($.browser.msie) {
            $(this).hover(function(){ // IE needs its own loop so the transparent GIF is placed above the actual content and therefore prevents the grid cell from collapsing to early
                $(this).addClass('hover').width(__hoverWidth).append(__img);
                __objI.width(__objI.width() + __x).height(__objI.height() + __y);
                __img.width(__hoverWidth).height(__hoverHeight + __dH + __dP).css({
                    zIndex: '1001',
                    cursor: 'pointer'
                }).click(function(){ //support for a crippled browser
                    document.location.href = __link;
                });
            }, function(){
                __img.width('1').height('1');
                $(this).removeClass('hover').width($(this).parents('.grid_cell').css('width'));
                __objI.width(__width).height(__height);
            });
        } else {
            $(this).children().css({
                cursor: 'pointer'
            });
            $(this).hover(function(){
                $(this).width(__hoverWidth).find('img').width(__hoverWidth);
                $(this).find('a').css({
                    zIndex: '1001'
                });
            }, function(){
                $(this).removeClass('hover').width(__width).find('img').width(__width);
                $(this).find('a').css({
                    zIndex: __z
                });
            })
        }
    })
}

function MessageBox(p_type, p_message, p_id){
    var type = p_type;
    var message = p_message;
    var cssClass;
    this.id = p_id;
    
    this.GetHtml = function(){
        var messageText = $("<p>");
        messageText.append(message);
        
        var messageContainer = $("<div>");
        messageContainer.attr("id", this.id);
        
        // Get css class 
        switch (type) {
            case "default":
                cssClass = "messagebox_info";
                break;
            case "error":
                cssClass = "messagebox_error";
                break;
            case "success":
                cssClass = "messagebox_success";
                break;
        }
        
        messageContainer.attr("class", cssClass);
        messageContainer.append(messageText);
        return messageContainer;
    }
}

function LoadingLayer() {
    var loadingLayer = $("<div>").addClass("ajax_preloader");
    var innerLayer = $("<div>").css({
        position: 'absolute',
        left: '50%',
        top: '50%',
        overflow: 'visible'
    })
    var imgLoading = $("<img>").attr("src", "fe_assets/img/icons/ajax_preloader.gif").css({
        position: 'absolute',
        top: '-16px',
        left: '-16px'
    });
    innerLayer.append(imgLoading);
    loadingLayer.append(innerLayer);
    return loadingLayer;
}

function parseXml(xml){
//    if (jQuery.browser.msie) {
//        var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
//        xmlDoc.loadXML(xml);
//        xml = xmlDoc;
//    }
    return xml;
}

// Google Maps functions
var map;
var markers = [];
var routes = [];
var directions;

function ShowMap(containerID, lat, lng, zoom){
    if (!GBrowserIsCompatible()) {
        return;
    }
    
    // Create location icon
    var locationIcon = new GIcon();
    locationIcon.image = "fe_assets/img/search/el_gmapmarker_loc.png";
    locationIcon.iconSize = new GSize(21, 20);
    locationIcon.iconAnchor = new GPoint(10, 10);
    locationIcon.infoWindowAnchor = new GPoint(10, 10);
    
    // Show map
    var tmpMap = new GMap2(document.getElementById(containerID));
    tmpMap.setUIToDefault();
    tmpMap.removeMapType(G_PHYSICAL_MAP);
    tmpMap.addControl(new GMapTypeControl());
    tmpMap.setMapType(G_NORMAL_MAP);
    
    var point = new GLatLng(lat, lng);
    tmpMap.setCenter(point, zoom);
    var marker = new GMarker(new GLatLng(lat, lng), {
        icon: locationIcon,
        clickable: false
    });
    // Save marker in array
    markers["center"] = marker;
    
    tmpMap.addOverlay(marker);
    
    return tmpMap;
}

function ShowMapWithMarker(containerID, lat, lng, xmlInfoWindow, zoom){
    if (!GBrowserIsCompatible()) {
        return;
    }
    
    // Show map
    map = new GMap2(document.getElementById(containerID));
    map.setUIToDefault();
    map.removeMapType(G_PHYSICAL_MAP);
    map.addControl(new GMapTypeControl());
    map.setMapType(G_NORMAL_MAP);
    
    var point = new GLatLng(lat, lng);
    map.setCenter(point, zoom);
    
    return ShowMarker(map, point, 1, xmlInfoWindow);
}

function ShowMarker(map, point, position, xmlInfoWindow){
    var marker = new GMarker(point, {
        icon: getMapIcon(position),
        clickable: true
    });
    marker.infoWindowOutput = xmlInfoWindow;
    map.addOverlay(marker);
    
    GEvent.addListener(marker, "click", function(){
        this.openInfoWindowHtml(this.infoWindowOutput);
    });
    
    return marker;
}

function getMapIcon(pos){
    var baseIcon = new GIcon(pos);
    baseIcon.image = "/fe_assets/img/search/gmapmarker_no" + pos + ".png";
    baseIcon.shadow = "fe_assets/img/search/el_gmapmarker_shadow.png";
    baseIcon.iconSize = new GSize(20.0, 34.0);
    baseIcon.shadowSize = new GSize(34.0, 34.0);
    baseIcon.iconAnchor = new GPoint(10.0, 34.0);
    baseIcon.infoWindowAnchor = new GPoint(13.0, 34.0);
    return baseIcon;
}

function getRoutePlannerIcon(type){
    var icon = new GIcon();
    icon.image = "/fe_assets/img/search/el_gmapmarker_"+type+".png";
    icon.shadow = "fe_assets/img/search/el_gmapmarker_shadow.png";
    icon.iconSize = new GSize(20.0, 34.0);
    icon.shadowSize = new GSize(34.0, 34.0);
    icon.iconAnchor = new GPoint(10.0, 34.0);
    return icon;
}

function ShowRoutePlannnerMessage(message){
    $("#route_planner #js_msg_box").remove();
    var msgBox = new MessageBox("error", message, "js_msg_box");
    $("#route_planner").prepend(msgBox.GetHtml());
}

function ShowRouteOnMap(){
    $("#js_msg_box").remove();
    // Set headline
    $("#route_head").html(getMessagesByKey("DirectionsHead") + $("#aim").val());
    $("#route_head").show();
    // Reset last route if available
    DeleteRouteFromMap();
    //Get the poly line from the GDirections object
    var poly = directions.getPolyline();

    // moves the map to center
    var bounds = new GLatLngBounds(); 
    bounds.extend(poly.getVertex(0));
    bounds.extend(poly.getVertex(poly.getVertexCount() - 1));

    map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
    map.addOverlay(poly);
    routes["polyline"] = poly;

    //Draw icons
    var iconStart = getRoutePlannerIcon("A");
    var markerStart = new GMarker(poly.getVertex(0), iconStart);
    map.addOverlay(markerStart);
    routes["start"] = markerStart;

    var iconAim = getRoutePlannerIcon("B");
    var markerAim = new GMarker(poly.getVertex(poly.getVertexCount()-1), iconAim);
    map.addOverlay(markerAim);
    routes["aim"] = markerAim;
    
    // Draw route description
    if (directions.getNumRoutes() > 0) {
        // Hide carpenter icon on carpenter detail
        if (markers["carpenter"] != undefined) {
            markers["carpenter"].hide();
        }
        
        // Draw headline of start
        var iconStart = $("<div>").attr("class", "icon").html("<span>A</span>");
        var h3Start = $("<h3>").html($("#start").val());
        var cntHeadStart = $("<div>").attr("class", "head").append(iconStart).append(h3Start);
        var cntRoute = $("#current_route");
        $(cntRoute).append(cntHeadStart);
        
        // Create short info about distance and duration
        var shortInfo = directions.getRoute(0).getDistance().html + " (" + directions.getRoute(0).getDuration().html + ")";
        $(cntRoute).append($("<div>").html(shortInfo).attr("id", "short_info"));
        
        // Create table with route steps
        var table = $("<table>").attr("class", "route_steps");
        
        for (var i = 0; i < directions.getRoute(0).getNumSteps(); i++) {
            var tdPos = $("<td>").html((i + 1) + ".").attr("class", "index");
            var tdDesc = $("<td>").html(directions.getRoute(0).getStep(i).getDescriptionHtml()).attr("class", "description");
            var tdDistance = $("<td>").html(directions.getRoute(0).getStep(i).getDistance().html).attr("class", "distance");
            var tr = $("<tr>");
            
            if(i + 1 == directions.getRoute(0).getNumSteps()){
                $(tr).attr("class", "last");
            }
            
            $(tr).append(tdPos).append(tdDesc).append(tdDistance);
            $(table).append(tr);
        }
        
        $(cntRoute).append(table);
        
        // Draw headline of aim
        var iconAim = $("<div>").attr("class", "icon").html("<span>B</span>");
        var h3Aim = $("<h3>").html($("#aim").val());
        var cntHeadAim = $("<div>").attr("class", "head").append(iconAim).append(h3Aim);
        $(cntRoute).append(cntHeadAim);
        
        // Create copyright
        $(cntRoute).append($("<div>").html("©2010 Tele Atlas").attr("id", "copyright"));
        
        $("#direction").slideDown('slow');
     }
     else{
        ShowRoutePlannnerMessage(getMessagesByKey("RouteNotFound"));
     }
}

function DeleteRouteFromMap(){
    var test = routes["start"];
    if(routes["start"] != undefined){
        routes["start"].remove();
        routes["polyline"].remove();
        routes["aim"].remove();
    }
}

function HandleRoutePlannerErrors(){
	if (directions.getStatus().code == G_GEO_UNKNOWN_DIRECTIONS) {
        ShowRoutePlannnerMessage(getMessagesByKey("RouteNotFound"));
	}
	else {
        ShowRoutePlannnerMessage(getMessagesByKey("UnknownRpSystemError"));
	}
}


function SetCheckboxImages(isInit){
    $('input.cbx_image').each(function(){
        $(this).hide();
        var imgPathActive;
        var imgPathInactive;
        
        // Get icon type by class
        if($(this).hasClass("grey")) {
            imgPathActive = "fe_assets/img/icons/icon_checkbox_active_grey.png";
            imgPathInactive = "fe_assets/img/icons/icon_checkbox_inactive_grey.png";
        }
        else if($(this).hasClass("black")) {
            imgPathActive = "fe_assets/img/icons/icon_checkbox_active_transparent_black.png";
            imgPathInactive = "fe_assets/img/icons/icon_checkbox_inactive_transparent_black.png";
        }
        else if($(this).hasClass("white")) {
            imgPathActive = "fe_assets/img/icons/icon_checkbox_active_transparent_white.png";
            imgPathInactive = "fe_assets/img/icons/icon_checkbox_inactive_transparent_white.png";
        }
         else if($(this).hasClass("black_border")) {
            imgPathActive = "fe_assets/img/icons/icon_checkbox_active_transparent_black_border.png";
            imgPathInactive = "fe_assets/img/icons/icon_checkbox_inactive_transparent_black_border.png";
        }
        
        // Set image by checkbox status
        if ($(this)[0].checked != true) {
            imgPath = imgPathInactive;
        }
        else {
            imgPath = imgPathActive;
        }
        var img;
        
        if(isInit) {
            img = $("<img>");
            $(img).attr("src", imgPath);
            $(img).attr("height", "18");
            $(img).attr("width", "18");
            $(this).after(img);
        }
        else {
            img = $(this).next("img").attr("src", imgPath);
            $(img).unbind('click');
        }
        
        // Set click event on img
        $(img).click(function(){
            var cbx = $(this).prev()[0];
            cbx.checked = !cbx.checked;
            
            if(cbx.checked){
                $(this).attr("src", imgPathActive);
            }
            else {
                $(this).attr("src", imgPathInactive);
            }
            
            $(cbx).change();
        })
    });
}
