var cR = true;
var map = false;

if (!cookiesEnabled)
    alert("Cookies must be enabled to use this site!");

function cookiesEnabled() 
{var c = new Cookie('test');c.write();try {Cookie.read('test');}catch(e) {return false;}c.remove();return true;}

function isNumberKey(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode
    if ((charCode > 31 && (charCode < 48 || charCode > 57)) && charCode != 46 && charCode != 44)
	return false;
    return true;
}

function checkRegForm(form)
{
    cR = true;
    with (form) 
    {
	cR = cE(form, reg_username,"errUsername",cR);
	cR = cE(form, reg_email,"errEmail",cR);
	if (form.reg_email_confirm.value != "notdefined")
	{
	    cR = cE(form, reg_email_confirm,"errEmailDiff",cR);    
	    if (form.reg_email.value != form.reg_email_confirm.value)
	    {
		showElement("errEmailDiff")
		cR = false;
	    } else {
		hideElement("errEmailDiff")
	    }
	}	
	if (form.reg_visualverify.value != "notdefined")
	    cR = cE(form, reg_visualverify, "errVV",cR);    

    }

    if (cR == false) {hideElement('indicator');}

    return cR
}

function checkRegFormRest(form)
{
    cR = true;
    with (form) 
    {
	cR = cE(form, reg_localname,"errLocalname",cR);
        cR = cE(form, reg_address, "errAddress",cR);    
        cR = cE(form, reg_zip, "errZIP",cR);    
        cR = cE(form, reg_city, "errCity",cR);    
	if (coordinates == "")
	    getMapPoint();
    }
    if (cR == false) {hideElement('indicator');}
	
    return cR
}

function checkOrderForm(form)
{
    cR = true;
    with (form) 
    {
	cR = cE(form, reg_localname,"errLocalname",cR);
        cR = cE(form, reg_firstname, "errFirstname",cR);    
	cR = cE(form, reg_lastname, "errLastname",cR);    
        cR = cE(form, reg_address, "errAddress",cR);    
        cR = cE(form, reg_zip, "errZIP",cR);    
        cR = cE(form, reg_city, "errCity",cR);    
	cR = cE(form, reg_telephone, "errTelephone",cR);    
        cR = cE(form, reg_email, "errEmail",cR);    
	cR = cE(form, reg_birthday, "errBirthday",cR);    
	if (document.getElementById('acceptAGB').checked == false)
	{
    	    document.getElementById('errAGB').style.backgroundColor = "red";
	    showElement('errAGB');
	    cR == false;
	}
	else
	{
	    hideElement('errAGB');	
	}
    }
    
    if (cR == false) {hideElement('indicator');}	
    return cR
}

function cE(form, id, error, check)
{
    if(id.value == 0)
    {
        id.style.backgroundColor = "red";
	id.focus();
	showElement(error);
	check = false;
    } else {
        id.style.backgroundColor = "white"
	hideElement(error);
    }
    return check;
}
function selectedchars(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode
    if(charCode > 31 && (charCode < 40 || charCode > 122))
	return false;
    return true;
}

function showElement(id)
{
    if (document.getElementById) {  
    	document.getElementById(id).style.display = "block";
    } else {
	document.all.id.style.display = "block";
    }
}

function hideElement(id) {
    if (document.getElementById) {
	document.getElementById(id).style.display = 'none';
    } else {
        document.id.display = 'none';
    }
}

function swElement(id){
    if (document.getElementById) {
	if (document.getElementById(id).style.display == 'none')
	    showElement(id)
	else
	    hideElement(id)
    } else {
        if (document.id.display == 'none')
	    showElement(id)
	else
	    hideElement(id)
    }
}

function swElements(id)
{
    if (document.getElementById) {
	if (document.getElementById(id).style.display == 'none')
	    Effect.BlindDown(id, { duration: 0.5 });
	else
	    Effect.BlindUp(id, { duration: 0.5 });
    } else {
        if (document.id.display == 'none')
	    Effect.BlindDown(id, { duration: 0.3 });
	else
	    Effect.BlindUp(id, { duration: 0.3 });
    }
}

function selectDate(id,day,month,year)
{
    id = "from";
    if (document.getElementById) {
	document.getElementById(id+'day').value=day;
	document.getElementById(id+'month').value=month;
	document.getElementById(id+'year').value=year;
    } else {
        document.id.display = 'none';
    }    
    id = "to";
    if (document.getElementById) {
	document.getElementById(id+'day').value=day;
	document.getElementById(id+'month').value=month;
	document.getElementById(id+'year').value=year;
    } else {
        document.id.display = 'none';
    }    
}

function checkMenuForm(form)
{
    cR = true;
    with (form) 
    {
	cR = cE(form, name,"errName",cR);
	cR = cE(form, price,"errPrice",cR);

    }
    return cR
}

var searchnameaddress = "";

function setlatlen(form)
{
    with(form)
    {
	if (searchnameaddress == '')
	{
	    showElement("searchnoinput");
	    return false;
	}
	    hideElement("searchnoinput");
	if (searchnameaddress == 'name')
	{
	    form.submit();
	    return false;
	}
	if ((form.address.value == ""))
	    form.address.value = "Wien";

	form.restname.value = '';
        fulladdress = form.address.value + "," + form.country.value;

	sb = document.getElementById("searchbutton");
	sb.style.width = "25px";
	sb.style.height = "25px";
	sb.src = "./img/ajax-loader.gif";
	
	geocoder = new GClientGeocoder();	
	geocoder.getLocations(fulladdress,function(result)
	{
	    if (result.Status.code == G_GEO_SUCCESS)
	    { 	   
		if (result.Placemark.length > 2) 
		{ 
                    document.getElementById("moreaddresses").innerHTML = "Meinten Sie:";
                    for (var i=0; i<result.Placemark.length; i++) 
		    {
                	var p = result.Placemark[i].Point.coordinates;
	    		sb.src = "./img/buttons/search.png";
			sb.style.width = "100px";
			sb.style.height = "35px";			    
        		showElement('notfound');
                	document.getElementById("moreaddresses").innerHTML += "<br>"+(i+1)+": <a href='#' onclick='document.forms.getLocation.address.value =\""+result.Placemark[i].address+"\";setlatlen(document.forms.getLocation);'>"+result.Placemark[i].address+"</a>";
		    }
		    return false;
		}
		else
		{
		    place = result.Placemark[0];
            	    form.lat.value = place.Point.coordinates[1];
		    form.len.value = place.Point.coordinates[0];
		    form.submit();
		}
	    } else {
	        sb.src = "./img/buttons/search.png";
		sb.style.width = "100px";
		sb.style.height = "35px";
				    
    		showElement('notfound');
	    }
	}
    );
    }
    return false;
}

function init()
{
    if (window.initialize)
	initialize();
}

function updateCharCount(id,maxChars)
{
    var str=document.postcomment.comment.value
    if (str.length > maxChars)
    {
	document.postcomment.comment.value = document.postcomment.comment.value.substring(0, maxChars);
    }
    document.getElementById('charsleft').innerHTML = maxChars - str.length;
}
function clearTimer()
{
    isHovered=false;
}			    

function hideTTs()
{
    var marker = map.getFirstMarker();
    while (marker != null)
    {
        marker.hideTooltip();
	marker.blink(false,0);
        marker = map.getNextMarker();
    }
}
function updateToDate(id,value)
{
    toid = 'to'+id.substring(4,10);
//    alert(toid);
    toval = document.getElementById(toid).value;
    if (value >= toval)
	document.getElementById(toid).value = value;
}

var currentspot = null;

function mousePopup(id,dontZoom)
{
    var waypoints = true;
    if (currentspot == id)
	return;
    currentspot = id;
    var start = map.getMarkerById(0);
    var marker = map.getMarkerById(id);
    hideTTs();
    marker.blink(true,600);
    bnd = map.getBounds();

    if (!bnd.contains(marker.getLatLng()))
    {
//	map.panTo(marker.getPoint());
	map.zoomToMarkers(60,0,id);
    }
    document.getElementById("map_details").innerHTML = marker.title;
    var pts = [];
    pts[0] = start.getPoint();
    pts[1] = marker.getPoint();
    modes = "";
    if (waypoints)
    {
	if (dist = Math.round(pts[0].distanceFrom(pts[1])) > 500)
	{
	    modes = "G_TRAVEL_MODE_WALKING";
	    gdir.clear()
	    gdir.loadFromWaypoints(pts, {travelMode:G_TRAVEL_MODE_DRIVING,preserveViewport:true});
	}
    }
}
function submitenter(id,e)
{
var keycode;if (window.event) keycode = window.event.keyCode;else if (e) keycode = e.which;else return true;
if (keycode == 13){setlatlen(id);return false;}else{return true;}
}

function checkMenuOnly(evt)
{
    if (!isNumberKey(evt))
	return false;
    if (document.getElementById('onlywithmenus').checked == false)
    {    
	document.getElementById('onlywithmenus').checked = true;
    }
}

function checkPrice()
{
    if (document.getElementById('onlywithmenus').checked == false)
    {    
	document.getElementById('pricehigh').value = "";
    }
    
}

function screenHeight()
{
//temp fix
    return screen.availHeight-200;
}function GetXMLHttpRequest() 
{
    var object = null;  
    if (window.XMLHttpRequest) 
    {
        object = new XMLHttpRequest();
    } 
    else if (window.ActiveXObject) 
    {
        try
        {
            object = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
        }
        
        if (object == null)
        {
            try
            {
                object = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)
            {
            }
        }
    }
    
    if (object == null)
    {
        alert("Your browser does not support AJAX");
    }
    return object;
}

function ProcessRequest() 
{
    if (XMLHttpRequestObject.readyState == 4) 
    {
        if (XMLHttpRequestObject.status == 200) 
        {
            var result = Parse();
            if (result)
            {
                // Update HTML based on the result
            }
        } 
        else
        {
            // An error has occurred.
        }
    }
}

var XMLHttpRequestObject = new Array();
function claimRest(id,uid,pwd)
{
	if (XMLHttpRequestObject == null)
	{
        	XMLHttpRequestObject = new Array();
        }
                
        if(XMLHttpRequestObject[id] != null)
        {
 	       return;
        }
	
        var requestObject = GetXMLHttpRequest();
        if (requestObject)
        {
            XMLHttpRequestObject[id] = new Object();
            XMLHttpRequestObject[id].requestObject = requestObject;

            requestObject.onreadystatechange = new Function ("OnClaimProcess('" + id + "')");
            document.getElementById('claimsubmit').value = "Bitte warten...";
            document.getElementById('claimsubmit').disabled = true;
    	    var txt = document.getElementById('claimtxt').value;

            var params = "id=" + id + 
                '&' + "uid=" + uid + 
                '&' + "pwd=" + pwd +
		'&' + "txt=" + txt; 
            var url = baseURL + "/claimrestaurant.php" + "?" + params;    
            requestObject.open("GET", url, true);
            requestObject.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded; charset=UTF-8" );
            requestObject.send("");        

        }
}

function OnClaimProcess(id)
{
    if (XMLHttpRequestObject[id] != null &&
        XMLHttpRequestObject[id].requestObject &&
        XMLHttpRequestObject[id].requestObject.readyState == 4) 
    {

        if (XMLHttpRequestObject[id].requestObject.status == 200) 
        {
    	    var result = XMLHttpRequestObject[id].requestObject.responseText;
            XMLHttpRequestObject[id] = null;
            document.getElementById('claimsubmit').value = "gesendet!";
	    document.getElementById('claimsentinfo').style.display = "block";
        }
	else
	{
	    // http error handling
	}
    }
}

function favorite(id,uid,pwd)
{
	if (XMLHttpRequestObject == null)
	{
        	XMLHttpRequestObject = new Array();
        }
                
        if(XMLHttpRequestObject[id] != null)
        {
 	       return;
        }
	
        var requestObject = GetXMLHttpRequest();
        if (requestObject)
        {
            XMLHttpRequestObject[id] = new Object();
            XMLHttpRequestObject[id].requestObject = requestObject;
            
            requestObject.onreadystatechange = new Function ("OnFavProcess('" + id + "')");

            var params = "id=" + id + 
                '&' + "uid=" + uid + 
                '&' + "pwd=" + pwd; 
            var url = baseURL + "/favorite_now.php" + "?" + params;
            
            requestObject.open("GET", url, true);
            requestObject.setRequestHeader( "Content-Type" , "application/x-www-form-urlencoded; charset=UTF-8" );
            requestObject.send("");
                
            var txt = document.getElementById('working');
            if (txt)
            {
                txt.innerHTML = "Updating..."; 
            }
        }
}

function changeFavCount(incrdecr)
{
    var favcount = document.getElementById('favcount');
    var i = parseInt(favcount.innerHTML);
    if (incrdecr == "incr")
    {
	i=i+1;
    }
    else
    {
	i=i-1;
    }
	favcount.innerHTML = i;        
}

function OnFavProcess(id)
{
    if (XMLHttpRequestObject[id] != null &&
        XMLHttpRequestObject[id].requestObject &&
        XMLHttpRequestObject[id].requestObject.readyState == 4)
    {
        if (XMLHttpRequestObject[id].requestObject.status == 200)
        {
            var result = XMLHttpRequestObject[id].requestObject.responseText;

            var txt = document.getElementById('fav');
            var wrk = document.getElementById('working');
            var favcount = document.getElementById('favcount');
            if (result == 1)
            {
                txt.innerHTML = "unFavorite!";
                changeFavCount("incr");
                wrk.innerHTML = "hinzugef&uuml;gt!";
            }
            else if (result == 0)
            {
                txt.innerHTML = "Favorite!";
                changeFavCount("decr");
                wrk.innerHTML = "gel&ouml;scht!";
            }
            else if (result == "loginfirst")
            {
                wrk.innerHTML = "Bitte zuerst einloggen!";
            }
            else
            {
                wrk.innerHTML = "Unbekannte Antwort";
            }

            XMLHttpRequestObject[id] = null;
        }
        else
        {
            var wrk = document.getElementById('working');
            if (wrk)
            {
                wrk.value = "Fehler - " + XMLHttpRequestObject[id].requestObject.status;
            }
        }
    }
}

var timer = null;

function abPos(o) { var o=(typeof(o)=='object'?o:$(o)), z={X:0,Y:0}; while(o!=null) { z.X+=o.offsetLeft; z.Y+=o.offsetTop; o=o.offsetParent; }; return(z); }
function starrating(e,id) 
{
    clearTimeout(timer);
    if (!e) e=window.event;
    if (e.pageX || e.pageY) {x2 = e.pageX;} else if (e.clientX){x2 = e.clientX + document.body.scrollLeft+ document.documentElement.scrollLeft;}
    x1=abPos(id).X;
    x1+=document.getElementById("rating_bar").parentNode.scrollLeft;
    x=Math.round((x2-x1)/5)*5;

    document.getElementById("rating").style.width = x+"px";
}

function ratenow(e,picid){
    val=document.getElementById("rating").style.width;
    val=val.substring(0,val.indexOf("p"));
    url=document.URL.replace(/&rate=([0-9]*)/g,'');
    url=url + "&rate=" + val;
//    if (url.indexOf("id") == -1){url += "&id=" + picid;}
    location.href = url;
}

function starreset(e,p) 
{
    clearTimeout(timer);
    timer = setTimeout("resetnow(" + p + ")",1000);
}

function resetnow(p)
{
    document.getElementById("rating").style.width = p;
}

function conf_delete(theLink){var is_confirmed = confirm('Sind Sie sicher? Restaurant und Menus werden unwiderruflich geloescht!');if (is_confirmed) {theLink.href += '&is_js_confirmed=1';}return is_confirmed;}

function facebook_onload(already_logged_into_facebook) {
  // user state is either: has a session, or does not.
  // if the state has changed, detect that and reload.
  FB.ensureInit(function() {
      FB.Facebook.get_sessionState().waitUntilReady(function(session) {
          var is_now_logged_into_facebook = session ? true : false;

          // if the new state is the same as the old (i.e., nothing changed)
          // then do nothing
          if (is_now_logged_into_facebook == already_logged_into_facebook) {
            return;
          }

          // otherwise, refresh to pick up the state change
          refresh_page();
        });
    });
}
var orderRecc = null;
function swRecurringOrder(id)
{

    if (id.id == "recurr1")
    {
	e2 = document.getElementById("recurr2");
	orderRecc = 1;
    }
    else
    {
    	e2 = document.getElementById("recurr1");
	orderRecc = 2;
    }
    if (id.checked == false)
	orderRecc = null;
    e2.checked=false;
    updateOrder();
}
var orderReccPrice = null;
function swRecurringDuration(id)
{
    d = id.value;
    orderReccPrice = d;
    document.getElementById("month1").checked = false;
    document.getElementById("month6").checked = false;    
    document.getElementById("month12").checked = false;
    document.getElementById("month"+d).checked = true;
    updateOrder();
}
function swOrderAdd(id)
{
    updateOrder();
}

function updateOrder()
{
    var addPrice = null;
    var recPrice = null;
    text = document.getElementById("selectedServiceRec");
    price = document.getElementById("selectedPriceRec");
    offertext = document.getElementById("selectedServiceAdd");
    offerprice = document.getElementById("selectedPriceAdd");

    offer = document.getElementById("offer1");
    if (offer.checked == true)
    {
	offertext.innerHTML = "Professioneller Eintrag von getlunch";
	offerprice.innerHTML = "19.90";
	addPrice = 19.90;
    }
    else
    {
	offertext.innerHTML = '';
	offerprice.innerHTML = '';
	addPrice = 0.00;
    }
    
    if (orderRecc > 0)
    {
	if (orderRecc == 2)
	{
	    text.innerHTML = "Eintragungs-Abo Web";
	    price.innerHTML = " 9.90";
	    p = 9.90;
	}
	else
	{
	    text.innerHTML = "Eintragungs-Abo Email/FAX";
	    price.innerHTML = "19.90";
	    p = 19.90;
	}
	if (orderReccPrice > 0)
	{
	    if (orderReccPrice == 6)
	    {
	        p = Math.ceil(p*orderReccPrice - ((p/100)*5*orderReccPrice));
		price.innerHTML = p+".00";
	    }
	    if (orderReccPrice == 12)
	    {
		p = Math.ceil(p*orderReccPrice - ((p/100)*10*orderReccPrice));	    
		price.innerHTML = p+".00";  
	    }
	}
	recPrice = p;
    }
    else
    {
	text.innerHTML = "";
	price.innerHTML = "";
    }
    var sum = 0;
    if (addPrice)
	sum += addPrice;
    if (recPrice)
	sum += recPrice;
    if (sum == 29.7999999999999970)
	sum = 29.8;
    sum += '';
    if (sum.split(".")[1] == undefined)
	sum += '.0';

    document.getElementById('sum').innerHTML = sum + '0';
}
