var $j = jQuery.noConflict();

$j(document).ready(function() {      
    // This is more like it!
    $j('#language a').updateLanguageSwitchURL();
	
    $j('#fPriceTo').setMiniumPrice();
    
    if( ($j('.fOpenhouse').length > 0) && ($j('body').hasClass('p86')) ) {
    	$j('body').addClass('openhouse');
    }
	
    // initialize scrollable
    $j(".scrollable").scrollable({
    	items : '.latestEntries',
    	circular : true
    });
    	
    $j('#woningDetails a.tab').addTabClickEvent('#woningDetails');	
    $j('#woningDetails .view').showSelectedView();
    $j('#woningDetails #tab3 #powermaildiv_uid6 input').setWoningAddress();
    
    if( $j('input.message').length > 0 ){
      var address = $j('title').text();
      var urlLink = '<a href="'+window.location.href+'">'+window.location.href+'</a>';
      $j('input.message').attr('value', encodeURIComponent(address+'\n'+urlLink) );
    }
    
    $j('#nieuw-woningaanbod a.tab').addTabClickEvent('#nieuw-woningaanbod');    
    
    $j('#team .default').addTabs('#team', 'h3');
    $j('#team a.tab').addTabClickEvent('#team');
    
    $j('.uitklap').click(function(){
        var t = $j(this);
        $j('.uitklap').height(0);
        $j('.uitklap').removeClass('open');
        $j(this).height($j('.csc-default', $j(this) ).height());
        $j(this).addClass('open');
    });
    $j('.uitklap:first').trigger('click');
    
    $j('.middleShadowCE, .bottomShadowCE, #team').addShadow();
    
    $j('.imgEffect1').slideShow('.csc-textpic-imagewrap');

    $j('.items').cycle({
        fx:     'fade',
        speed:   300,
        timeout: 10000,
        pause:   1,
    	pauseOnPagerHover: 1,
        pager:  '#main_navi',
	pagerAnchorBuilder: function(idx, fade) {
            return '<li><a href=#>&nbsp;</a></li>';
	}
    });

    $j('#headerImgs ul').cycle({
            fx:     'fade',
            speed:   300,
            pause:   1,
    	    pauseOnPagerHover: 1,
            timeout: 6000
    });
    
    if( $j('.imgsContainer .imgMask').length > 12 ){
      $j('.imgsContainer').pager(12);
    }
    $j('.imgMask').showLargeImg();
    
    //hide-show notice msg for woningDetails
    if( $j('#woningDetails .tab').length > 0){
        $j('.status').hide();
        if( $j('#displaytab1').hasClass('selected') ){
    	   $j('.status').show();
        }
    }
});


/**
 * update woning field for mail
 *
 */
 (function($) {
  $.fn.setWoningAddress = function() {
  	var woningAddress = $('#contentTitle').text();
  	$(this).attr('value', woningAddress);
  }
})(jQuery); 

/**
 * set minimum price selected
 *
 */
 (function($) {
  $.fn.setMiniumPrice = function() {
  	$(this).change(function(){
  	   var getMax = $("#fPriceTo option:selected").val();
  	   var getMin = $("#fPriceFrom option:selected").val();
  	   if(getMax <= getMin){
  	   	var iter = $("#fPriceTo option:selected").index();
  	   	$("#fPriceFrom option").eq(iter).attr("selected", true);
  	   }
  	});
  }
})(jQuery); 

(function($) {
  $.fn.showSelectedView = function() {    
    //anchor in URL update view
    var hash=location.hash;
    if($('.powermail_mandatory_js').length){
      var errMsgChrLen = $('.powermail_mandatory_js').html().length;
    }
    if($('.form_response').length){
      var formReplyMsgChrLen = $('.form_response').html().length;
    }
    if((errMsgChrLen > 1)||(formReplyMsgChrLen > 1)){
    	$('a#displaytab3').trigger('click');
    	if(formReplyMsgChrLen > 1){
    	   alert( $('.form_response').text() );
    	}
    }else if(hash){
    	var parts = hash.split('p');
    	if(parts.length > 1){
    	   //set view selected fotos #tab3
    	   $('a#displaytab3').trigger('click');
    	} else {
    	  var parts = hash.split('k');
    	  if(parts.length > 1){
           //set view selected kenmerken #tab2
           $('a#displaytab2').trigger('click');
          }
    	} 
    }	
  }
})(jQuery); 

/**
 * max images with pager
 */
(function($) {
$.fn.pager = function(pageItems){
	$(this).before('<ul id="tabItems"></ul>');
	
	var items = $('.imgMask', this).length;
	var pages = Math.ceil( 1*items/pageItems);
	var iter = 1;
	$('.imgMask', this).each(function(){
		desc = Math.ceil( 1*iter/pageItems);
		$(this).attr('data', desc);
		iter++;
	});
	var i=0;
	for (i=0;i<pages;i++){
		var z = i+1;
		var strSelected = '';
		if(i == 0){
		 strSelected = 'selected';
		}
		$("ul#tabItems").append('<li><a data="#fragment-'+z+'" class="pager '+strSelected+'" id="pager-'+z+'"><span>'+z+'</span></a></li>');
		$(".imgMask[data='"+z+"']").wrapAll('<div data="#fragment-'+z+'" id="fragment-'+z+'" class="pagerWindow '+strSelected+'"></div>');
	};
	
	$('.pager').click(function(){
		//remove def style
		$('.pager').removeClass('selected');
		$('div[data='+$(this).attr('data')+'] ,a[data='+$(this).attr('data')+']').addClass('selected');
		
		//reset view displayed
		$('.pagerWindow').hide();
		//show window
		$('div[data='+$(this).attr('data')+']').show();
	});
  };
})(jQuery); 

/** 
 * show large image
 */
(function($) {
  $.fn.showLargeImg = function() {
    var elImg = $(this);
    elImg.click(function(){
    	$('.imgMaskLarge').append( '<div class="loading">Loading</div>');
    	var destSrc = $('img', $(this) ).attr('data');

	//preloader
	var imgBlank = new Image();
	$(imgBlank).load(function(){
	    $('.loading').remove();
	    $('.imgMaskLarge img').attr('src', destSrc);
	}).attr('src', destSrc );
    });
  }
})(jQuery);

/** 
 * add tabs to werknemers
 */
(function($) {
  $.fn.addTabs = function(container, titleTag) {
  	var i = 0;
  	$(container).append('<div id="tabcontainer"></div>');
  	$('.default',container).addClass('view');
  	
	$(this).each(function(i){
	  var target = $(this);  	
	  var tabTitle = $(titleTag, target).text();

	  target.attr('id', 'tab'+i);
	  var strClass = '';
	  if (i == $('.default',container).length -1) strClass='selected';
	  	
	  //add Tab
	  var tab = '<a data="tab'+i+'" class="tab '+strClass+'" id="displayTab'+i+'">'+tabTitle+'</a>';
	  $('#tabcontainer').append(tab);
	  i++;
	});
  }
})(jQuery);

/** 
 * add click event to tabs for divs
 */
(function($) {
  $.fn.addTabClickEvent = function(parentEl) {
  	var target = $(this);  	
	$(this).click(function(){
		//remove def style
		$('.tab').removeClass('selected');
		
		//hide notice msg
		$('.status').hide();
		 
		//update selected tab
		$('a[data='+$(this).attr('data')+']').addClass('selected');
		
		//show notice msg only on tab 1
		if( $(this).attr('data') =='tab1'){
		   $('.status').show();
		}
		
		//reset view displayed
		$(parentEl+' .view').hide();
		
		var id = $(this).attr('data');
		$(parentEl+' #'+id).show();
		
		$('#contentContainerShadow').removeAttr('class');
		$('#contentContainerShadow').addClass($(this).attr('id') );
		
		if( $(this).attr('data') == 'tab4') {
			//reset gmap
			$('#map_canvas').empty().removeAttr('style');
			//start googlemap
			initialize();
		}
	});
  }
})(jQuery); 

/**
 * addShadow
 *
 */
 (function($) {
  $.fn.addShadow = function() {
  	$(this).append('<div class="dropShadow"></div>')
  }
})(jQuery); 

/**
 * slideShow
 *
 */
 (function($) {
  $.fn.slideShow = function(imgThumbnail) {
      var elements = $(this);
       
      //create nav container
      $(this).eq(0).before('<div class="slideshow"><div class="nav_container"><ul id="main_navi"></ul></div><div class="items"></div></div>');
     
      elements.each(function(idx){
          var elImg = $(imgThumbnail + ' img', this);
          var largeImgUrl = elImg.attr('src');
          $('.items').append( this );
      });
  }
})(jQuery); 

/**
 * language switch
 */
(function($) {
  $.fn.updateLanguageSwitchURL = function(){
    Essentials.setURLdetails();
    var myURL = Essentials.getURLdetails();
    var i = myURL.segments.length;
    var el = $(this);
   
    //update logo
    if( $('body').attr('data') == 'english'){
       $('#logo a').attr('href', 'http://'+window.location.hostname+'/en/');
    } else {
       $('#logo a').attr('href', 'http://'+window.location.hostname);
    }
   
    el.click(function(){
        var seg = '';
        if( $(this).attr('id') == 'en'){
            if (myURL.segments[0] == 'en'){
               return false;
            } else {
               seg = 'en/'+myURL.segments[i-1];
            }
        } else {
            if ((myURL.segments[0] == 'en') && (i > 1)){
            	seg = myURL.segments[i - 1];
            } else if ((myURL.segments[0] == 'en') && (i == 1)){
                seg = '';
            } else {
                return false;
            }
        }
        
        location.href = 'http://'+myURL.host + '/' + seg;
        return false;
    });
  };
})(jQuery);

Essentials = {
    compatOldBrowser : false ,
    siteURL: null,
    setCompatOldBrowser : function (){
        if ($j.browser.msie && $j.browser.version.substr(0,1)<7) {
              this.compatOldBrowser = true;
          }
        return null;
    },
    getCompatOldBrowser : function (){
        return this.compatOldBrowser;
    },   
    debugCompatOldBrowser : function(){
        alert( this.getCompatOldBrowser() );
    },
    setURLdetails: function(){
        this.siteURL = this.parseURL(document.location.href);
    },
    getURLdetails: function(){
        return this.siteURL;
    },
    // This function creates a new anchor element and uses location
    // properties (inherent) to get the desired URL data. Some String
    // operations are used (to normalize results across browsers).
    parseURL: function (url) {
        var a =  document.createElement('a');
        a.href = url;
        return {
            source: url,
            protocol: a.protocol.replace(':',''),
            host: a.hostname,
            port: a.port,
            query: a.search,
            params: (function(){
            var ret = {},
            seg = a.search.replace(/^\?/,'').split('&'),
            len = seg.length, i = 0, s;
            for (;i<len;i++) {
                if (!seg[i]) { continue; }
                    s = seg[i].split('=');
                    ret[ unescape(s[0]) ] = s[1];
                }
                return ret;
            })(),
            file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1],
            hash: a.hash.replace('#',''),
            path: a.pathname.replace(/^([^\/])/,'/$1'),
            relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1],
            segments: a.pathname.replace(/^\//,'').split('/')
        };
    }
};
