// scrolling div
scrollStep=1; timerUp=""; timerDown=""; function toTop(id){document.getElementById(id).scrollLeft=0; } 
function scrollDivRight(id){clearTimeout(timerDown);document.getElementById(id).scrollLeft+=scrollStep;
if(document.getElementById(id).scrollLeft>=document.getElementById(id).scrollWidth-300)
document.getElementById("right").style.visibility='hidden';if(document.getElementById(id).scrollLeft>0 && document.getElementById(id).scrollWidth>300)
document.getElementById("left").style.visibility='visible';//alert(document.getElementById(id).scrollLeft);
timerDown=setTimeout("scrollDivRight('"+id+"')",10) } 
function scrollDivLeft(id){ clearTimeout(timerUp);document.getElementById(id).scrollLeft-=scrollStep;
if(document.getElementById(id).scrollLeft==0)document.getElementById("left").style.visibility='hidden';
if(document.getElementById(id).scrollLeft < document.getElementById(id).scrollWidth-300)document.getElementById("right").style.visibility='visible';
timerUp=setTimeout("scrollDivLeft('"+id+"')",10); } 
function toBottom(id){document.getElementById(id).scrollLeft=document.getElementById(id).scrollWidth;} 
function stopMe(){ clearTimeout(timerDown); clearTimeout(timerUp); }


// COLAPSABLE DIV
var timerlen = 5;var slideAniLen = 250;var timerID = new Array();var startTime = new Array();var obj = new Array();var endHeight = new Array();var moving = new Array();var dir = new Array();
function slidedown(objname){if(moving[objname])return;if(document.getElementById(objname).style.display != "none")return; // cannot slide down something that is already visible
moving[objname] = true;dir[objname] = "down";startslide(objname);}
function slideup(objname){if(moving[objname])return;if(document.getElementById(objname).style.display == "none")return; // cannot slide up something that is already hidden
moving[objname] = true;dir[objname] = "up";startslide(objname);}
function startslide(objname){obj[objname] = document.getElementById(objname);endHeight[objname] = parseInt(obj[objname].style.height);startTime[objname] = (new Date()).getTime();if(dir[objname] == "down"){obj[objname].style.height = "1px";}obj[objname].style.display = "block";timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);}
function slidetick(objname){var elapsed = (new Date()).getTime() - startTime[objname];if (elapsed > slideAniLen)endSlide(objname);else {var d =Math.round(elapsed / slideAniLen * endHeight[objname]);if(dir[objname] == "up")d = endHeight[objname] - d;obj[objname].style.height = d + "px";}return;}
function endSlide(objname){clearInterval(timerID[objname]);if(dir[objname] == "up")obj[objname].style.display = "none";obj[objname].style.height = endHeight[objname] + "px";delete(moving[objname]);delete(timerID[objname]);delete(startTime[objname]);delete(endHeight[objname]);delete(obj[objname]);delete(dir[objname]);return;}
function toggleSlide(objname){if(document.getElementById(objname).style.display == "none"){// div is hidden, so let's slide down
slidedown(objname);}else{ // div is not hidden, so slide up
slideup(objname);}}
function $Obj(v) { return(document.getElementById(v));}

// send vote
var q_votetype ='',starNum='';
function sendVote(o){
    starNum=o.id.substr(4);
    var v=parseInt($Obj('starUser'+starNum).innerHTML);
    q_votetype = $Obj('paramname'+starNum).innerHTML;
    var params="q_votetype="+q_votetype+"&q_vote="+v;
    myRequest = new ajaxObject('/component/accommodation/functions/vote.jx?cocoon-view=debug-raw&acco_id='+$Obj('acco_id').innerHTML+'&'+params,processData,"ratemess");
    myRequest.update('','GET');
    /*
    var message = $Obj('ratemess');
    message.innerHTML='Thanking you for voting '+$Obj('startitle'+starNum).innerHTML+v+'%';
    message.style.display="";
    setTimeout("$Obj('ratemess').style.display='none'",5000);
    */
    if(starNum=='0')
        $Obj('feedback'+starNum).style.display="";
    return false;
}

// send Feedback
function sendFeedback(){
   var v=$Obj('feedbacktext'+starNum);
   if(v && v.value && v.value.length>0){
        myRequest = new ajaxObject('/component/accommodation/functions/vote.jx?cocoon-view=debug-raw&acco_id='+$Obj('acco_id').innerHTML+'&q_feedback='+v.value+'&q_votetype='+q_votetype,processData,"ratemess");
        myRequest.update('','GET');
        $Obj('feedback'+starNum).style.display='none';
        /*
        var message = $Obj('ratemess');
        message.innerHTML='Thanking you for sharing your views!';
        message.style.display="";
        setTimeout("$Obj('ratemess').style.display='none'",3000);
        */
        return false;
   }
}

//check Email
function checkEmail(email) {var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;if (!filter.test(email)) {return false;}return true;}
function splitAndCheckEmail(tostring){var mySplitResult = tostring.split(",");for(i = 0; i < mySplitResult.length; i++){if(!checkEmail(jQuery.trim(mySplitResult[i])))return mySplitResult[i];}}

// add/remove bookmark
function executeFunction(e){ 
    myRequest = new ajaxObject(e.href,processData ,'message');
    myRequest.update('','GET');
    return false;
}

// open homepage
function homepage(link){ myRequest = new ajaxObject(link);myRequest.update('','GET');}

// send mail 
function sendMail(){
    var to = document.getElementById('__to-email').value;
    if(!to){
        displayEmailError('');return false;
    }
    var invalid=splitAndCheckEmail(to);
    if(invalid){
        displayEmailError(invalid);return false;
    }
    var params = "__to-email="+to;
    var mess = document.getElementById('__message').value;
    if(mess) params += "&__message="+mess;
    var subject = document.getElementById('__subject').value;
    if(subject) params += "&__subject="+subject;
    myRequest = new ajaxObject('/component/accommodation/functions/recommand.jx?cocoon-view=debug-raw&acco_id='+$Obj('acco_id').innerHTML+'&'+params,processRecommandationData ,'message');
    myRequest.update('','GET');
    //document.getElementById('emailerror').style.display='none';
}

function displayEmailError(invalid){
    alert("Invalid Email address "+invalid+"!");
    /*
    document.getElementById('emailerror').innerHTML="Invalid Email address "+invalid+"!";
    document.getElementById('emailerror').style.display='';
    */
    document.getElementById('sendbutton').disabled=false;
}

// call back function for bookmark
function processData(responseText, responseStatus,responseXML,container) {
  message=document.getElementById(container);
  if (responseStatus==200) {
    if(message){
        message.innerHTML = responseText;
        message.style.display="";
        setTimeout("hideDiv(message)",10000);
    }
  } else {
    //alert(responseStatus + ' -- Error Processing Request');
  }
  /*
  message=document.getElementById(container);
  if (responseStatus==200) {
    var mess = responseXML.documentElement.firstChild;
    if(mess && getInnerText(mess)=='true')
        message.innerHTML = 'Bookmark saved sucessufuly !';
    else
        message.innerHTML = 'Bookmark could not be saved!';
    message.style.display="";
    setTimeout("hideDiv(message)",10000);
  } else {
    //alert(responseStatus + ' -- Error Processing Request');
  }
  */
}

//call back function for sending mail
function processRecommandationData(responseText, responseStatus,responseXML,container) {
  message=document.getElementById(container);
  if (responseStatus==200) {
    if(message){
        message.innerHTML = responseText;
        document.getElementById('sendbutton').disabled=false;
        toggleSlide('emailDiv');
        message.style.display="";
        setTimeout("hideDiv(message)",10000);
    }
  } else {
    //alert(responseStatus + ' -- Error Processing Request');
  }
  /*
  message=document.getElementById(container);
  if (responseStatus==200) {
    var mess = responseXML.documentElement.firstChild;
    if(mess && getInnerText(mess)=='true'){
        message.innerHTML = 'Thank You for sharing this accommodation!';
        document.getElementById('sendbutton').disabled=false;
        toggleSlide('emailDiv');}
    else
        message.innerHTML = 'Problems occured while sending mail!';
    message.style.display="";
    setTimeout("hideDiv(message)",10000);
  } else {
    //alert(responseStatus + ' -- Error Processing Request');
  }
  */
}

// call calender called when the page is loaded
function loadCalendar(){if(document.getElementById('callink')){var url=document.getElementById('callink').href;
if(url){var calendar = document.getElementById('calendar');calendar.innerHTML = "<p>Loading...<\/p>";
var myRequest = new ajaxObject(url, processTabberData ,document.getElementById('calendar'));myRequest.update('','GET');}}}
// called to refresh the calender
function reloadCalendar(elem,param){
	var url=elem.href;
	loading('loading','calendardata');
	var myRequest = new ajaxObject(url, processTabberData ,document.getElementById('calendar'));myRequest.update('','GET');}
// show hide fun for calendar data
function showDetails(img){var loading = document.getElementById('d|'+img.id);loading.style.left = getX(img)+10 + 'px';
loading.style.top = getY(img) +15+ 'px';loading.style.display = 'block';}

function hideDetails(img){var loading = document.getElementById('d|'+img.id);loading.style.display = 'none';}
function getY( oElement ){var iReturnValue = 0;while( oElement != null ) {iReturnValue += oElement.offsetTop;oElement = oElement.offsetParent;}return iReturnValue;} function getX( oElement){var iReturnValue = 0;while( oElement != null ){iReturnValue += oElement.offsetLeft;oElement = oElement.offsetParent;}return iReturnValue;}
//called when hovered over the chart
var lastday;
function showdate(e,obj)
{
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY)
	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;
	}
	
	var oX = getX(obj);var oY = getY(obj);
	//var oX = obj.offsetLeft;var oY = obj.offsetTop;
	//while(obj.parentNode){// finds the absolute position of the object
	//oX=oX+obj.parentNode.offsetLeft;
	//oY=oY+obj.parentNode.offsetTop;
	//if(obj==document.getElementsByTagName('body')[0]){break}
	//else{obj=obj.parentNode;}
	//}
	var mX=posx-oX;//relative X
	var mY=posy-oY;//relative Y
	
	if(mX && mY && mX-48>0){
	    var day = parseInt((mX-48)/1.66);
	    var doc = document.getElementById(day);
	    if(doc){
	        doc.style.backgroundColor="red";
	        lastel = document.getElementById(lastday);
	        if(lastel)
	            lastel.style.backgroundColor="";
	        lastday=day;
	        var mp=document.getElementById('mapmap');
	        mp.innerHTML=document.getElementById('dt|'+day).innerHTML+':'+document.getElementById('d|'+day).innerHTML;
	        mp.style.top = posy+10+'px';mp.style.left=posx+10+'px';
	        document.body.appendChild(mp);
	        document.getElementById('mapmap').style.display="";
	    }
	}
	
}

//load map 
var map;var geocoder;var baseIcon;var gmarkers=[];var accomarkers=[];var bounds;
function load() {
    if(document.getElementById("map")){
        map = new google.maps.Map2(document.getElementById("map"));
        geocoder = new google.maps.ClientGeocoder();
        map.setCenter(new google.maps.LatLng(20.00, 0.0), 3);
        map.addControl(new google.maps.LargeMapControl());
        map.addControl(new google.maps.MapTypeControl());
        map.addControl(new google.maps.OverviewMapControl);
        map.setMapType(G_HYBRID_MAP) ;
        baseIcon = new google.maps.Icon();
        baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
        baseIcon.iconSize = new google.maps.Size(20, 34);
        baseIcon.shadowSize = new google.maps.Size(37, 34);
        baseIcon.iconAnchor = new google.maps.Point(9, 34);
        baseIcon.infoWindowAnchor = new google.maps.Point(9, 2);
        baseIcon.infoShadowAnchor = new google.maps.Point(18, 25);
        if(document.getElementById('latitude') && document.getElementById('longitude')){
            bounds = new GLatLngBounds();
            if(document.getElementById('latitude').value && document.getElementById('longitude').value){
                var pro = new AccoMarker("1", document.getElementById('address').value, document.getElementById('latitude').value,document.getElementById('longitude').value);
                map.setCenter(pro.location,15);
            }else{
                var address=document.getElementById('address').value+', '+document.getElementById('country').value+', '+document.getElementById('continent').value;
                showAddress(address);
                map.setZoom(map.getBoundsZoomLevel(bounds));
                map.setCenter(bounds.getCenter());
            }
        }
        if(typeof(panoramiophotos) !== 'undefined' && panoramiophotos){
        	var panicon = new GIcon();
        	panicon.image = "/images/map/marker/panmarker.png";
        	panicon.shadow = "/images/map/marker/panshadow.png";
        	panicon.iconSize = new GSize(18, 18);
        	panicon.shadowSize = new GSize(22, 22);
        	panicon.iconAnchor = new GPoint(9, 9);
        	panicon.infoWindowAnchor = new GPoint(9, 0);
        	
        	var panimdiv=document.getElementById('panimages');
        	var panouterdiv=document.getElementById('panimagesouter');
        	if(panouterdiv && panoramiophotos.length>0)
        		panouterdiv.style.display='';
        	for (var i = 0; i < panoramiophotos.length; i++)
    		{
        		var markerpan = createPanMarker(panicon,panoramiophotos[i])
        	    map.addOverlay(markerpan);
        		if(panimdiv){
        			var panimurl=panoramiophotos[i].photo_file_url;
        			panimdiv.innerHTML+=" " +
        					"<a title='<a class=\"viewinpanoramio\" target=\"_blank\" href="+panoramiophotos[i].photo_url+">" +
        							"View this photo by <strong>"+panoramiophotos[i].owner_name+"</strong> in Panoramio</a>' rel=\"prettyPhoto[galleryTwo]\"" +
        									"href="+panimurl.replace(/small/, "medium")+"> " +
        											"<img style='margin-right:2px;border:1px solid #DEDEDE' src='"+panimurl.replace(/small/, "square")+"' alt='"+panoramiophotos[i].photo_title+"'></img>";
        		}
    		}
        	$(".gallery-p a[rel^='prettyPhoto[galleryTwo]']").prettyPhoto({theme: 'light_rounded'});
        }
   }
}

function createPanMarker(panicon,panphoto){
	var markerpan = new GMarker(new GLatLng(panphoto.latitude, panphoto.longitude), panicon);
	var p = panphoto;
	var html ="<div id='infowin' style='height:" + (p.height + 50) + "px; width:" + (p.width + 10) + "px'>" +
			"<p><a id='photo_infowin' target='_blank' href='" + p.photo_url + "'>" + "<img border=0 width='" + p.width + "' height='" + p.height + "' src='" + p.photo_file_url + "'></a>"+ 
			//"<p><a target='_blank' class='photo_title' href='" + p.photo_url + "'>" + p.photo_title + "</a></p>" + 
			"<div style='text-align:left;font:9px'>Author:<a target='_blank' class='photo_title' href='" + p.owner_url + "'>" + p.owner_name+ "</a><br/>" + 
			
			"<p style='font-size:6px'><a href='http://www.panoramio.com/' target='_blank'><img src='/map/images/panoramio.gif' alt='Panoramio logo' border=0/><\/a><br/>" +
			"Photos provided by Panoramio are under the copyright of their owners</p></div>" +"</div>" + "</div>";
	GEvent.addListener(markerpan, "click", function() {
		markerpan.openInfoWindowHtml(html);
      });
      return markerpan;
}

function showAddress(add) {geocoder.getLatLng(add,function(point) {if (point) {new AccoMarker("1",add.replace(/,/,'<br/>'),point.lat(),point,lng());}else{document.getElementById('map').innerHTML='Location could not be located'}});}
function hideDiv(message){message.style.display="none";}

// slide show start
function slideshow(obj){
        var height = 620;
        var width = 605;
        var innerHeight = 0;
  		var innerWidth = 0;
  		document.featured1.src='/icons/loader.gif';

  		if ( window.innerWidth && window.innerHeight ) 	                                                    
  		{	//for Netscape
	    innerHeight = window.innerHeight;
    	innerWidth = window.innerWidth;
		} else if ( document.body.clientWidth && document.body.clientHeight ) 
  		{	// for IE
    		innerHeight = document.body.clientHeight;
    		innerWidth = document.body.clientWidth;
  		}
	  	document.getElementById("slidshow").style.width=(innerWidth)+ "px";
	  	document.getElementById("slidshow").style.height=(innerHeight+500) + "px";
	  	document.getElementById("slidshow").style.display = "";
	  	document.featured1.height=540;
	  	if(innerHeight<height){
	  		height=innerHeight-10;
	  		document.featured1.height=innerHeight-90;
	  	}
	  	if(innerWidth<width){
	  		width=innerWidth-10;
	  		document.featured1.width=innerWidth-20;
	  		$Obj(disimages).style.width=innerWidth-60;
	  	}
	  	document.getElementById("comps").style.top = parseInt((innerHeight - height)/2,10) + "px";
	    document.getElementById("comps").style.left = parseInt((innerWidth - width)/2,10) + "px";
	    document.getElementById("comps").style.width=width+ "px";
	  	document.getElementById("comps").style.height=height + "px";
	  	//document.featured1.src=obj.firstChild.src.replace(/web/, "screen");
	  	testImage(obj.firstChild);
	  	if(document.getElementById('display')){
	  		document.getElementById("disimages").innerHTML=document.getElementById('display').innerHTML;
	  		var nodes= document.getElementById("disimages");
	  		var no = nodes.getElementsByTagName("img");
	  		for(i=0;i<no.length;i++){
	  			var im = no[i];
	  			//im.onmouseover=function () {document.featured1.src='/icons/loader.gif';document.featured1.src=this.src.replace(/web/, "screen");}
	  			im.onmouseover=function () {testImage(this);}
	  		}
	  	}
}

function testImage(imgmain) {
	document.featured1.src='/icons/loader.gif';
	var tester=new Image();
	tester.onload=function () {document.featured1.src=imgmain.src.replace(/web/, "screen");};
	tester.onerror=function () {document.featured1.src=imgmain.src;};
	tester.src=imgmain.src.replace(/web/, "screen");
}

//search price 
function getPrice(button){
    loading('priceloading','priceform');
	var params = '';
	var timemin = document.getElementById('timeminprice').value;
    if(!timemin){
    	alert('from date cannot be null!');$Obj('priceloading').style.display = 'none';button.disabled=false;return false;}
    params +='q_timemin='+timemin+'&';
    var timemax = document.getElementById('timemaxprice').value;
    if(!timemax){
    	alert('to date cannot be null!');$Obj('priceloading').style.display = 'none';button.disabled=false;return false;}
    params +='q_timemax='+timemax+'&';
    
    var q_persons = $Obj('q_personsprice').value;
    if(q_persons) params += 'q_persons='+q_persons+'&';
    else{alert('Select the number of persons travelling!');$Obj('priceloading').style.display = 'none';button.disabled=false;return false;}
    var q_kids = $Obj('q_kids').value;
    if(q_kids) params += 'q_kids='+q_kids+'&';
    params +='1=1';
    var myRequest = new ajaxObject($Obj('linkforprice').href+'&'+params, processPriceData,'pricedata');
    myRequest.update('','GET');
    button.disabled=false;
}
//call back function for price
function processPriceData(responseText, responseStatus,responseXML,container) {
	  if (responseStatus==200) {
	    if(container && document.getElementById(container)){
	        document.getElementById(container).innerHTML = responseText;
	        $Obj('priceloading').style.display = 'none'
	    }
	  } else {
	    //alert(responseStatus + ' -- Error Processing Request');
	  }
	}
function loading(load,container,width) {
    var loading = document.getElementById(load);
    var data = document.getElementById(container);
    if(loading && data){
    loading.style.height = data.offsetHeight+'px';
    loading.style.left = getX(data) + 'px';
    loading.style.top = getY(data) + 'px';

    if(width)loading.style.width= width;
    else loading.style.width= data.offsetWidth+'px';
    loading.style.display = 'block';}
}
// toogle slider div (Unterkunft)
var fromtext="";var totext="";
var minsl =0;var maxsl =0;var valsl;
function toggleSliderdiv(){
    if(fromtext==""){
        fromtext=$("#datefromtext").html();
        totext=$("#datetotext").html();
    }
    if($('input[name=flexi]').is(':checked')){
        $("#datefromtext").html(flfromtext);
        $("#datetotext").html(fltotext);
    }else{
        $("#datefromtext").html(fromtext);
        $("#datetotext").html(totext);
    }
    // Slider
    $("#slidertogglediv").toggle("slow");
    $("#slider").slider({range: "min",min: minsl,max: maxsl,value:valsl,animate: true,slide: function(event, ui) {$("#q_days").val(ui.value);}});
    $('#q_days').keyup(function(){
			var slider1Value = +$("#q_days").attr("value"); 
			if(slider1Value >= minsl && slider1Value <= maxsl){
				$("#slider").slider('option', 'value', parseInt(slider1Value));
				valsl = slider1Value;
			}else{
				//alert('Please enter a value between '+slider1Min+' and '+slider1Max);
				$("#q_days").val(valsl);
				return false;
			}
		});
    
    updateSliderValues();
}

function updateSliderValues(){
    var dateMin = $("#timemin").datepicker("getDate");var dateMax = $("#timemax").datepicker("getDate");
    if(dateMin!= null && dateMax!= null){
        var one_day=1000*60*60*24;
        minsl=1;
        maxsl = Math.ceil(((dateMax.getTime()-dateMin.getTime())/one_day));
        valsl = maxsl>7?7:maxsl;
        $("#q_days").val(valsl);
        $('#slider').slider('option', 'min', minsl);
        $('#slider').slider('option', 'max', maxsl);
        $('#slider').slider('option', 'value', valsl);
    }
}


