/* <![CDATA[ */

/*
 * COMMON SITE FUNCTIONS FOR INDUSTRIEVIERTEL.AT
 * Version: 1.0(30/08/2011)
 * Copyright (c) 2011 Bernhard Stranz
 * Requires: jQuery v1.4+
*/
$(document).ready(function(){

	//if google map layer !empty initMap
	if ($("#cm_map").length>0) { cm_load();}

	/*
	$(".project-details-trigger").click(function(){
			$(this).toggleClass("active").next().slideToggle("slow");
			//$(".project-details").slideToggle("slow");
		});
	*/	

	//Seitenanfang verbergen, erst bei Seitenscroll zeige
	$(function(){
		var menu = $('#menuHud'),
			pos = menu.offset();
			$(window).scroll(function(){
				if($(this).scrollTop() > pos.top+menu.height() && menu.hasClass('menuHudDefault')){
					menu.fadeOut('fast', function(){
						$(this).removeClass('menuHudDefault').addClass('menuHudFixed').fadeIn('fast');
					});
				} else if($(this).scrollTop() <= pos.top && menu.hasClass('menuHudFixed')){
					menu.fadeOut('fast', function(){
						$(this).removeClass('menuHudFixed').addClass('menuHudDefault').fadeIn('fast');
					});
				}
			});
	
	});


	//newsletter signup
	 $("#signup").submit(function() {  
     var anrede = $('#anrede').attr('value');  
     var firstname = $('#firstname').attr('value');  
     var lastname  = $('#lastname').attr('value');  
     var organisation = $('#organisation').attr('value');  
     var email     = $('#email').attr('value');  
     var lang     = $('#lang').attr('value');  
         $.ajax({  
             type: "GET",  
             url: "http://www.industrieviertel.at/wp-content/themes/revi/newsletter_store-address.php",  
             data: "ajax=true&anrede="+anrede+"&firstname="+firstname+"&lastname="+lastname+"&organisation="+organisation+"&email="+email+"&lang="+lang,  
			 success: function(response) {
				$("#response").html(response);
			  }
			});
     return false;  
     });  
	
	
	// placeholder text
	$('[placeholder]').focus(function() {
	  var input = $(this);
	  if (input.val() == input.attr('placeholder')) {
		input.val('');
		input.removeClass('placeholder');
	  }
	}).blur(function() {
	  var input = $(this);
	  if (input.val() == '' || input.val() == input.attr('placeholder')) {
		input.addClass('placeholder');
		input.val(input.attr('placeholder'));
	  }
	}).blur();
	$('[placeholder]').parents('form').submit(function() {
	  $(this).find('[placeholder]').each(function() {
		var input = $(this);
		if (input.val() == input.attr('placeholder')) {
		  input.val('');
		}
	  })
	});


///////////////////////////////////////////////////////////////////////////////
// FONT RESIZER
///////////////////////////////////////////////////////////////////////////////

	//min font size
    var min=12; 
 
    //max font size
    var max=16;
     
    //grab the default font size
    var reset = $('p').css('fontSize');
     
    //font resize these elements
    var elm = $('.entry-text p, .entry-content, .content-right-text p, .content-right ul li, .tbl-vorstand'); 
     
    //set the default font size and remove px from the value
    var size = str_replace(reset, 'px', '');
     
    //Increase font size
    $('a.fontSizePlus').click(function() {
         
        //if the font size is lower or equal than the max value
        if (size<=max) {
             
            //increase the size
            size++;
             
            //set the font size
            elm.css({'fontSize' : size});
        }
         
        //cancel a click event
        return false;  
         
    });
 
    $('a.fontSizeMinus').click(function() {
 
        //if the font size is greater or equal than min value
        if (size>=min) {
             
            //decrease the size
            size--;
             
            //set the font size
            elm.css({'fontSize' : size});
        }
         
        //cancel a click event
        return false;  
         
    });
     
    //Reset the font size
    $('a.fontReset').click(function () {
         
        //set the default font size
         elm.css({'fontSize' : reset});    
    });
         
 
//A string replace function
function str_replace(haystack, needle, replacement) {
    var temp = haystack.split(needle);
    return temp.join(replacement);
}

///////////////////////////////////////////////////////////////////////////////
// SMOOTH SCROLLING ANCHOR TAGS
///////////////////////////////////////////////////////////////////////////////

$('a[href*=#]').click(function() {

      // duration in ms
      var duration=1000;

      // easing values: swing | linear
      var easing='swing';

      // get / set parameters
      var newHash=this.hash;
      var target=$(this.hash+', a[name='+this.hash.slice(1)+']').offset().top;
      var oldLocation=window.location.href.replace(window.location.hash, '');
      var newLocation=this;

      // make sure it's the same location      
      if(oldLocation+newHash==newLocation)
      {
         // set selector
         if($.browser.safari) var animationSelector='body:not(:animated)';
         else var animationSelector='html:not(:animated)';

         // animate to target and set the hash to the window.location after the animation
         $(animationSelector).animate({ scrollTop: target }, duration, easing, function() {

            // add new hash to the browser location
            window.location.href=newLocation;
         });

         // cancel default click action
         return false;
      }
   });


///////////////////////////////////////////////////////////////////////////////
// SITEFUNTCTIONS
///////////////////////////////////////////////////////////////////////////////

	//$(document).pngFix();	
	ConcentResize();
    $(window).resize(ConcentResize);
    $(document).resize(ConcentResize);
	if ($("#map").length>0) { initMap(); }


	//tweets
	$('#twitter').jTweetsAnywhere({
		username: 'Regionalverband',
		count: 3,
		showFollowButton: false
	});


	//subnav anim
	 $("ul#nav-sub li a").not("ul#nav-sub li a.active").hover(function(){
				$(this).stop().animate({
					paddingLeft: "10px"
					}, 200);
				}, function(){
					$(this).stop().animate({
					paddingLeft: "7px"
				}, 200);
		});
			
 }); //document ready



///////////////////////////////////////////////////////////////////////////////
// FOOTER POSITION
///////////////////////////////////////////////////////////////////////////////

function ConcentResize() {
        var w = $(window);
        var H = w.height();
        var W = w.width();
        var hdrHeight = $('#header').height();
        var pgHeight = $('#content-wrap').height();
        var ftrHeight = $('#footer-wrap').height();
        var fPos;
        fPos = (H - ((hdrHeight + 20) + pgHeight) - ftrHeight);
        if (fPos > 0) {
            if (typeof document.body.style.maxHeight !== "undefined") {
                $('#footer-wrap').css({
                    'margin-top': fPos
                })
            }
        }
    }

///////////////////////////////////////////////////////////////////////////////
// EMAIL SCRAMBLER
///////////////////////////////////////////////////////////////////////////////

function e(a){var b,c;c='';for(b=0;b<a.length;b++){c=String.fromCharCode(a.charCodeAt(b)^1)+c;}return c;}
function f(a){var b=e(a);document.write(e(';numh`l#<gdsi!`=')+b+e('?#')+b+e('?`.='));}



function loadLibrarys() {
  google.load("maps", "2", {"callback" : cm_load});
  google.load("jquery", "1.6.3");
}


function initLoader(key) {
  var script = document.createElement("script");
  script.src = "http://www.google.com/jsapi?key="+key+"&callback=loadLibrarys";
  script.type = "text/javascript";
  document.getElementsByTagName("head")[0].appendChild(script);
}

var cm_map;
var cm_mapMarkers = [];
var cm_mapHTMLS = [];
var htmls = [];  
var to_htmls = [];  
var from_htmls = [];  
var i = 0; 
// Change these parameters to customize map
var param_wsId = "od6";
var param_ssKey = "0AgPSxnAqgNf8dGVyY25HdHRIMFJQTjdZR29aTXlvTUE";
var param_useSidebar = true;
var param_titleColumn = "empfaenger";
var param_strasseColumn = "strasse";
var param_latColumn = "latitude";
var param_lngColumn = "longitude";
var param_rankColumn = "plz";
var param_ortColumn = "ort";
var param_websiteColumn = "website";
var param_iconType = "blue";
var param_iconOverType = "orange";

/**
 * Loads map and calls function to load in worksheet data.
 */
function cm_load() {  
  if (GBrowserIsCompatible()) {
	// create the map
    cm_map = new GMap2(document.getElementById("cm_map"));
	cm_map.setUIToDefault();
    //cm_map.addControl(new GSmallMapControl());
    //cm_map.addControl(new GMapTypeControl());
    cm_map.setCenter(new GLatLng( 47.8128329,16.2432296), 8);
    cm_getJSON();
  } else {
    alert("Sorry, the Google Maps API is not compatible with this browser");
  } 
}

/**
 * Function called when marker on the map is clicked.
 * Opens an info window (bubble) above the marker.
 * @param {Number} markerNum Number of marker in global array
 */
function cm_markerClicked(markerNum) {
  cm_mapMarkers[markerNum].openInfoWindowHtml(cm_mapHTMLS[markerNum]);
}

function cm_markerHover(markerNum) {
  cm_mapMarkers[markerNum].setImage(markerNum.getIcon().imageOver);
}

/**
 * Function that sorts 2 worksheet rows from JSON feed
 * based on their rank column. Only called if column is defined.
 * @param {rowA} Object Represents row in JSON feed
 * @param {rowB} Object Represents row in JSON feed
 * @return {Number} Difference between row values
 */
function cm_sortRows(rowA, rowB) {
  var rowAValue = parseFloat(rowA["gsx$" + param_titleColumn].$t);
  var rowBValue = parseFloat(rowB["gsx$" + param_titleColumn].$t);

  return rowAValue - rowBValue;
}

/** 
 * Called when JSON is loaded. Creates sidebar if param_sideBar is true.
 * Sorts rows if param_rankColumn is valid column. Iterates through worksheet rows, 
 * creating marker and sidebar entries for each row.
 * @param {JSON} json Worksheet feed
 */       
function cm_loadMapJSON(json) {
  var usingRank = false;

  if(param_useSidebar == true) {
    var sidebarTD = document.createElement("td");
    sidebarTD.setAttribute("width","150");
    sidebarTD.setAttribute("valign","top");
    var sidebarDIV = document.createElement("div");
    sidebarDIV.id = "cm_sidebarDIV";
    sidebarDIV.style.overflow = "auto";
    sidebarDIV.style.height = "auto";
    sidebarDIV.style.fontSize = "11px";
    sidebarDIV.style.color = "#000000";
    sidebarTD.appendChild(sidebarDIV);
	document.getElementById("sidebar").innerHTML = "";
    document.getElementById("sidebar").appendChild(sidebarDIV);
  }

  var bounds = new GLatLngBounds();	  

  if(json.feed.entry[0]["gsx$" + param_rankColumn]) {
    usingRank = true;
    json.feed.entry.sort(cm_sortRows);
  }

  for (var i = 0; i < json.feed.entry.length; i++) {
    var entry = json.feed.entry[i];
    if(entry["gsx$" + param_latColumn]) {
      var lat = parseFloat(entry["gsx$" + param_latColumn].$t);
      var lng = parseFloat(entry["gsx$" + param_lngColumn].$t);
      var point = new GLatLng(lat,lng);
      var html = "<div style='font-size:12px'>";
      html += "<strong>" + entry["gsx$"+param_titleColumn].$t 
              + "</strong><br>" + entry["gsx$"+param_rankColumn].$t 
              + " " + entry["gsx$"+param_ortColumn].$t 
              + ", " + entry["gsx$"+param_strasseColumn].$t 
              + "<br><a href=\"http://" + entry["gsx$"+param_websiteColumn].$t + "\" target=\"_blank\">"+ entry["gsx$"+param_websiteColumn].$t +"</a>"
              + "<br>";
      var label = entry["gsx$"+param_titleColumn].$t;
      var rank = 0;
      if(usingRank && entry["gsx$" + param_rankColumn]) {
        rank = parseInt(entry["gsx$"+param_rankColumn].$t);
      }
      html += "</div>";

      // create the marker
      var marker = cm_createMarker(point,label,html,rank);
	
	  cm_map.addOverlay(marker);
      cm_mapMarkers.push(marker);


to_htmls[i] = html + '<br><br>Route: <b>Hierher</b> - <a href="javascript:fromhere(' + i + ')" class="readmore">Von hier</a>' +  
         '<br><br>Start Adresse:<form action="http://maps.google.com/maps" method="get" target="_blank">' +  
         '<input type="text" SIZE=40 MAXLENGTH=40 name="saddr" id="saddr" value="" /><br>' +  
         '<INPUT value="Zeige Route" TYPE="SUBMIT">' +  
         '<input type="hidden" name="daddr" id="daddr" value="' + point.lat() + ',' + point.lng() + '"/>' +
         '</form>'; 
   
     from_htmls[i] = html + '<span class="text"><br><br>Route: <a href="javascript:tohere(' + i + ')" class="google">Hierhin</a> - <b>Von hier</b>' +  
        '<br><br>Ziel Addresse:</span><form action="http://maps.google.com/maps" method="get"" target="_blank">' +  
         '<input type="text" SIZE=40 MAXLENGTH=40 name="daddr" id="daddr" value="" /><br>' +  
         '<INPUT value="Zeige Route" TYPE="SUBMIT">' +  
         '<input type="hidden" name="saddr" value="' + point.lat() + ',' + point.lng() +  
             // "(" + name + ")" +   
         '"/>';  
   
     html = html + '<span class="text"><br><br><b>Route berechnen:</b> <a href="javascript:tohere('+i+')" class="readmore">Hierher</a> - <a href="javascript:fromhere('+i+')" class="readmore">Von hier</a></span>';  
	 htmls[i] = html;

      cm_mapHTMLS.push(html);
      bounds.extend(point);
  
      if(param_useSidebar == true) {
        var markerUL = document.createElement("ul");
        var markerLI = document.createElement("li");
        var markerA = document.createElement("a");
        markerA.setAttribute("href","javascript:cm_markerClicked('" + i +"');");
        var sidebarText= "";
        sidebarText += label;
        markerA.appendChild(document.createTextNode(sidebarText));
		markerLI.appendChild(markerA);
        sidebarDIV.appendChild(markerLI);
      } 
    }
  }

  cm_map.setZoom(cm_map.getBoundsZoomLevel(bounds));
  cm_map.setCenter(bounds.getCenter());
}

/**
 * Creates marker with ranked Icon or blank icon,
 * depending if rank is defined. Assigns onclick function.
 * @param {GLatLng} point Point to create marker at
 * @param {String} title Tooltip title to display for marker
 * @param {String} html HTML to display in InfoWindow
 * @param {Number} rank Number rank of marker, used in creating icon
 * @return {GMarker} Marker created
 */
 
 function tohere(i) { 
     cm_mapMarkers[i].openInfoWindowHtml(to_htmls[i]); 
 } 
  
 function fromhere(i) { 
     cm_mapMarkers[i].openInfoWindowHtml(from_htmls[i]); 
 } 
  
   
function cm_createMarker(point, title, html, rank) {
  var markerOpts = {};
var cm_baseIcon = new GIcon();
cm_baseIcon.shadow = "http://www.industrieviertel.at/wp-content/themes/revi/images/revi_map_dot_shadow.png"
cm_baseIcon.iconSize = new GSize(16, 16);
cm_baseIcon.shadowSize = new GSize(28, 16);
cm_baseIcon.iconAnchor = new GPoint(0,0);
cm_baseIcon.infoWindowAnchor = new GPoint(9,0);
cm_baseIcon.infoShadowAnchor = new GPoint(18, 25);
  var nIcon = new GIcon(cm_baseIcon);
// Create a base icon for all of our markers that specifies the
// shadow, icon dimensions, etc.


  if(rank > 0 && rank < 100) {
	nIcon.imageOut = "http://www.industrieviertel.at/wp-content/themes/revi/images/revi_map_dot_blue.png";
   	nIcon.imageOver = "http://www.industrieviertel.at/wp-content/themes/revi/images/revi_map_dot_orange.png";
    nIcon.image = nIcon.imageOut; 
  } else { 
    	nIcon.imageOut = "http://www.industrieviertel.at/wp-content/themes/revi/images/revi_map_dot_blue.png";
    	nIcon.imageOver = "http://www.industrieviertel.at/wp-content/themes/revi/images/revi_map_dot_orange.png";
    nIcon.image = nIcon.imageOut;
  }

  markerOpts.icon = nIcon;
  markerOpts.title = title;		 
  var marker = new GMarker(point, markerOpts);
	
	to_htmls[i] = html + '<br><br>Route: <b>Hierher</b> - <a href="javascript:fromhere(' + i + ')" class="readmore">Von hier</a>' +  
         '<br><br>Start Adresse:<form action="http://maps.google.com/maps" method="get" target="_blank">' +  
         '<input type="text" SIZE=40 MAXLENGTH=40 name="saddr" id="saddr" value="" /><br>' +  
         '<INPUT value="Zeige Route" TYPE="SUBMIT">' +  
         '<input type="hidden" name="daddr" id="daddr" value="' + point.lat() + ',' + point.lng() + '"/>' +
         '</form>'; 
   
     from_htmls[i] = html + '<span class="text"><br><br>Route: <a href="javascript:tohere(' + i + ')" class="google">Hierhin</a> - <b>Von hier</b>' +  
        '<br><br>Ziel Addresse:</span><form action="http://maps.google.com/maps" method="get"" target="_blank">' +  
         '<input type="text" SIZE=40 MAXLENGTH=40 name="daddr" id="daddr" value="" /><br>' +  
         '<INPUT value="Zeige Route" TYPE="SUBMIT">' +  
         '<input type="hidden" name="saddr" value="' + point.lat() + ',' + point.lng() +  
             // "(" + name + ")" +   
         '"/>';  
   
     html = html + '<span class="text"><br><br><b>Route berechnen:</b> <a href="javascript:tohere('+i+')" class="readmore">Hierher</a> - <a href="javascript:fromhere('+i+')" class="readmore">Von hier</a></span>';  
	 htmls[i] = html;
	 i++;
	 
	 
  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml(html);
  });
  GEvent.addListener(marker, "mouseover", function() {
    marker.setImage(marker.getIcon().imageOver);
  });
  GEvent.addListener(marker, "mouseout", function() {
    marker.setImage(marker.getIcon().imageOut);
  });
  GEvent.addListener(marker, "infowindowopen", function() {
    marker.setImage(marker.getIcon().imageOver);
  });
  GEvent.addListener(marker, "infowindowclose", function() {
    marker.setImage(marker.getIcon().imageOut);
  });
  
	 
  return marker;
	 
}

/**
 * Creates a script tag in the page that loads in the 
 * JSON feed for the specified key/ID. 
 * Once loaded, it calls cm_loadMapJSON.
 */
function cm_getJSON() {

  // Retrieve the JSON feed.
  var script = document.createElement('script');

  script.setAttribute('src', 'http://spreadsheets.google.com/feeds/list'
                         + '/' + param_ssKey + '/' + param_wsId + '/public/values' +
                        '?alt=json-in-script&callback=cm_loadMapJSON');
  script.setAttribute('id', 'jsonScript');
  script.setAttribute('type', 'text/javascript');
  document.documentElement.firstChild.appendChild(script);
}


/* ]]> */

