function str_replace(search, replace, subject) {
    return subject.split(search).join(replace);
}
window.addEvent('domready', function() {

    var url="includes/php/getData.php";
//    alert("test search");

    var getSalonsData=function(searchMode){
        if ($('postcode').value.length>2)
        {
            var urlParams="mode=getSalonsData&searchMode="+searchMode+"&postcode="+$('postcode').value+"&distance="+$('distance').value+"&units="+$('units').value+"&salon_id="+$('salon_id').value;
//            $('replyDiv').innerHTML=url+'?'+urlParams;
            var jsonRequest = new Request.JSON({url: url+'?'+urlParams, onComplete: function(reply){
//                alert(reply.length);
                var results="";
                var tableRow="";
                var directResults="";
                var radialResults="";
                var dirRes=0;
                var radRes=0;

                if (!reply[0]["error"])
                {
                    if (searchMode=="mainSearch")
                    {
                        reply.each(function(dataRow){

                            if (dataRow.logo && dataRow.description!="") tableRow="<tr class=\"dataRow\" id=\""+dataRow.salon_id+"\">";
                            else tableRow="<tr>";
                            if (dataRow.logo) tableRow+="<td width=\"100\"><img src=\"images/logos/"+dataRow.logo+"\" title=\""+dataRow.salon_name+"\"></td>";
                            else tableRow+="<td width=\"150\"></td>";
                            tableRow+="<td width=\"280\"><b>"+dataRow.salon_name+"</b><br>"+dataRow.salon_addr_1+" "+dataRow.salon_addr_2+"<br>"+dataRow.salon_suburb+"<br>"+dataRow.salon_postcode+"</td><td width=\"100\" valign=\"top\"><b>"+dataRow.salon_phone+"</b></td>";
                            tableRow+="</tr>";

                            if (dataRow.salon_postcode==$('postcode').value)
                            {
                                if (dirRes<10) directResults+=tableRow;
                                dirRes++;
                            }
                            else
                            {
                                if (radRes<10) radialResults+=tableRow;
                                radRes++;
                            }
                        });
                        $('searchResults').innerHTML="<p><b>Salons in your postcode "+$('postcode').value+" are:</b></p><table class=\"replyTable\">"+directResults+"</table><br /><hr><br /><br />Show also salons within <input type=\"radio\" name=\"distanceCheck\" id=\"d10\" value=\"10\" onclick=\"document.getElementById('distance').value=10;document.getElementById('searchSubmit').click();\" "+(($('distance').value==10)?" checked":"")+"/> 10 <input type=\"radio\" name=\"distanceCheck\" id=\"d25\" value=\"25\" onclick=\"document.getElementById('distance').value=25;document.getElementById('searchSubmit').click();\" "+(($('distance').value==25)?" checked":"")+"/> 25 km<p><b>Salons within "+$('distance').value+" km from your postcode "+$('postcode').value+" are:</b></p><table class=\"replyTable\">"+radialResults+"</table>";
                        $$('.dataRow').each(function(row){
                            var id=row.get('id');
                            $(id).addEvent("mouseover",function(){
                                $(id).setStyle('background-color','#E0E0E0');
                                $(id).setStyle('cursor', 'pointer');
                            });
                            $(id).addEvent("mouseout",function(){
                                $(id).setStyle('background-color','');
                                $(id).setStyle('cursor', 'auto');
                            });
                            $(id).addEvent('click',function(){
                                $('salon_id').value=id;
                                var xy=$(id).getCoordinates();

                                $('searchDetails').setStyle('top',xy.top+xy.height+"px");
                                $('searchDetails').setStyle('left',xy.left+"px");
                                getSalonsData.run(["salonSearch"]);
                            });
                        });
                    }
                    else if (searchMode=="salonSearch")
                    {
                        var dataRow=reply[0];
                        var salonDetails="<div style=\"text-align:right;\"><a href=\"#\" onclick=\"document.getElementById('searchDetails').style.display='none';\">X</a></div>";
                        var i=1;
                        var days=new Array('Mon','Tue','Wed','Thu','Fri','Sat','Sun');

                        if (dataRow.logo) salonDetails+="<img src=\"images/logos/"+dataRow.logo+"\" title=\""+dataRow.salon_name+"\"/><br /><br />";
                        salonDetails+="<b>"+dataRow.salon_name+"</b><br />";
                        salonDetails+=dataRow.salon_addr_1+" "+dataRow.salon_addr_2+"<br />"+dataRow.salon_suburb+" "+dataRow.salon_postcode+"<br />Ph: "+dataRow.salon_phone;
                        if (dataRow.email) salonDetails+="<br /><br />Email address: <a href=\"mailto:"+dataRow.email+"\">"+dataRow.email+"</a>";
                        if (dataRow.url) salonDetails+="<br /><br />Visit website: <a target=\"_blank\" href=\""+dataRow.url+"\">"+dataRow.url+"</a>";
                        if (dataRow.description) salonDetails+="<br /><br />"+str_replace("|||","<br>",dataRow.description)+"<br />";
                        var pic="";

                        if (dataRow.pic1) salonDetails+="<br /><br /><img src=\"images/"+dataRow.pic1+"\"/>";
                        if (dataRow.pic2) salonDetails+="<img src=\"images/"+dataRow.pic2+"\"/>";
                        if (dataRow.pic3) salonDetails+="<img src=\"images/"+dataRow.pic3+"\"/><br /><br />";

                        if (dataRow.hoursOpening) salonDetails+="<br /><b>Opening Hours:</b><br />"+dataRow.hoursOpening;

                        $('searchDetails').innerHTML=salonDetails;
                        $('searchDetails').setStyle('display','block');
                    }
                }
                else alert(reply[0]["error"]);
            }}).get({});
        }
        else alert("Please, enter the real postcode");
    };

    $('searchSubmit').addEvent('click',function(){getSalonsData.run(["mainSearch"]);});
    $('searchForm').addEvent('submit',function(){getSalonsData.run(["mainSearch"]); return false;});

});
