var meetme = new Object();

meetme.url=new Object();
meetme.url.signin_facebook='/signin/facebook';
meetme.url.geolocation='/geolocation';
meetme.url.static_server='';
meetme.url.markers='/images/markers.png';
meetme.url.marker=new Array();
meetme.url.marker['user']='/images/marker-user.png';
meetme.url.marker['networking']='/images/marker-networking.png';
meetme.url.marker['socializing']='/images/marker-socializing.png';
meetme.url.marker['dating']='/images/marker-dating.png';
meetme.url.marker['networking_favorite']='/images/marker-networking-fav.png';
meetme.url.marker['socializing_favorite']='/images/marker-socializing-fav.png';
meetme.url.marker['dating_favorite']='/images/marker-dating-fav.png';
meetme.url.google_maps='http://maps.googleapis.com/maps/api/js?sensor=false';

meetme.lang = new Object();
meetme.tmp = new Object();
meetme.fb=new Object();
meetme.status = new Object();
meetme.status.is_loading=0;

meetme.user=new Object();
meetme.user.map_position=new Object();
meetme.user.map_position.latitude=0;
meetme.user.map_position.longitude=0;


/* --------------------------------------------------------------------- */
/* Basic                                                                 */
/* --------------------------------------------------------------------- */

meetme.emptyFunc = function () {}

meetme.debug = function (arg) {
    try {
        console.debug(arg);
    } catch (error) { }
}

meetme.say = function (arg) {
    if ($("#onscreendebug").length < 1) {
        $('body').append('<div id="onscreendebug"></div>');
    }
    $("#onscreendebug").append('<span>'+arg+"</span><br>");
    if ($("#onscreendebug").height() > $(window).height()) {
        $("#onscreendebug").css('top',$(window).height()-$("#onscreendebug").height());
    }
}

meetme.cookieSet = function (c_name,value,expiredays) {
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())+";path=/";
}

meetme.cookieGet = function (c_name) {
    if (document.cookie.length>0) {
        c_start=document.cookie.indexOf(c_name + "=");
        if (c_start!=-1) { 
            c_start=c_start + c_name.length+1; 
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1) c_end=document.cookie.length;
            return unescape(document.cookie.substring(c_start,c_end));
        } 
    }
    return "";
}

meetme.scriptLoad = function (url,callback) {
    var html_doc=document.getElementsByTagName('head')[0];
    js=document.createElement('script');
    js.setAttribute('type','text/javascript');
    js.setAttribute('charset','utf-8');
    js.setAttribute('src', url);
    if (callback!=null) {
        try {
            if ($.browser.opera) {
                js.onload=callback();
            } else if (! $.browser.msie) {
                js.onload=callback;
            }
        } catch (e) {
            js.onload=callback;
        }
        js.onreadystatechange = function () {
            if (js.readyState == 'loaded' || js.readyState == "complete") {
                callback();
            }
        }
    }
    html_doc.appendChild(js);
}


meetme.languageGetText = function (key) {
    var text='';
    eval ('text=meetme.lang.'+key);
    return text;
}


meetme.newWindow = function (url) {
    setTimeout(function () {
        var w=window.open(url);
        w.focus();
    },1);
    return false;
}


meetme.refreshPage = function (url) {
    if (typeof url != "string") {
        url=window.location.href;
    }
    //url=url.replace(/#geolocation.+/i,"");
    url=url.replace(/#.+/i,"");
    $('body').append('<form id="refresh_page" style="display: none;" method="post" action="'+url+'"></form>');
    $('#refresh_page').submit();

}



/* --------------------------------------------------------------------- */
/* Exec Once After                                                       */
/* --------------------------------------------------------------------- */

meetme.execOnceAfterTryExecute = function (function_name) {
    if (typeof meetme.tmp.exec_once_after[function_name] != 'object' ) {
        return;
    }
    var fobj=meetme.tmp.exec_once_after[function_name].pop();
    if (fobj && meetme.tmp.exec_once_after[function_name].length<=1) {
       eval(function_name+'()');
    }
}

meetme.execOnceAfter = function (function_name,execution_delay) {
    if (typeof meetme.tmp.exec_once_after != 'object') {
        meetme.tmp.exec_once_after=new Array();
    }
    if (! meetme.tmp.exec_once_after[function_name] ) {
        meetme.tmp.exec_once_after[function_name]=new Array();
    }
    meetme.tmp.exec_once_after[function_name][meetme.tmp.exec_once_after.length]=new Array();
    var element=new Object();
    element.function_name=function_name;
    meetme.tmp.exec_once_after[function_name].push(element);
    setTimeout("meetme.execOnceAfterTryExecute('"+function_name+"');",execution_delay);
}


/* --------------------------------------------------------------------- */
/* URL related                                                           */
/* --------------------------------------------------------------------- */

meetme.urlGetFragmentArray = function () {
    var params=new Array();
    var url=window.location.href;
    if (url.indexOf('#')>0) {
        var hash = url.substring(url.indexOf('#')+1);
        var hparams=hash.split('\&');
        for (var i = 0; i < hparams.length; i++) {
            var nv=hparams[i].split('=',2);
            if (nv[0]) {
                params[nv[0]]=nv[1];
            }
        }
    }
    return params;
}

meetme.getUrlParam = function (name,url) {
    if (! url) {
        url=window.location.href;
    }
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(url);
    if(results == null) {
        return "";
    } else {
        return decodeURIComponent(results[1].replace(/\+/g, " "));
    }
}

meetme.getUrlHashParam = function (name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\#&]" + name + "=([^&]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if(results == null) {
        return "";
    } else {
        return decodeURIComponent(results[1].replace(/\+/g, " "));
    }
}


/* --------------------------------------------------------------------- */
/* GEOLOCATION                                                           */
/* --------------------------------------------------------------------- */

meetme.geolocationGooglePostProd = function (position) { }

meetme.geolocationGoogleCancelPostProd = function (position) { }

meetme.geolocationGoogle = function (address) {
    //meetme.debug('geolocation google');
    geocoder=new google.maps.Geocoder();
    geocoder.geocode( {
        'address': address
      },
      function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            var position=new Object();
            position.coords=new Object();
            position.coords.latitude=results[0].geometry.location.lat();
            position.coords.longitude=results[0].geometry.location.lng();
            position.is_set_manually=1; // use this in meetme.geolocationSendPostProd
            //meetme.geolocationSend(position);
            meetme.tmp.new_position=position;
            var msg=new Object();
            msg.title=meetme.lang.geolocation_popup_title;
            msg.text='<div id="enterlocation">'+meetme.lang.geolocation_popup_success
              +'<span class="note-success"><p><b>'+results[0].formatted_address+'</b></span></div>';
            msg.controls='<input id="popup_btn_close" type="button" value="'+meetme.lang.change_location_accept+'" onclick="meetme.popUpClose(); meetme.geolocationGooglePostProd(meetme.tmp.new_position);">';
            msg.controls=msg.controls+'<input id="popup_btn_set_manualy" type="button" value="'+meetme.lang.change_location_change+'" onclick="meetme.geolocationPopUp();">';
            meetme.popUp(msg);
            $('#popup_btn_close').focus();
            $.colorbox.resize();
        } else {
            $('.result-error').html('<span class="note-error">'+meetme.lang.geolocation_popup_error+'</span>');
            $.colorbox.resize();
        }
      }
    );
}

meetme.geolocationPopUp = function () {
    //meetme.debug('geoloc popup');
    msg=new Object();
    msg.title=meetme.lang.geolocation_popup_title;
    msg.text='<div id="enterlocation">'+meetme.lang.geolocation_popup_text+'<p><input id="location_text" type="text" name="location_text" value=""><div class="result-success"></div><div class="result-error"></div></div>';
    msg.controls='<input id="popup_btn_locate" type="button" value="'
      +meetme.lang.geolocation_popup_btn_locate+'" onclick="meetme.geolocationGoogle($(\'#location_text\').val());">';
    msg.controls=msg.controls+'<input id="popup_btn_cancel" type="button" value="'+meetme.lang.cancel+'" onclick="meetme.popUpClose(); meetme.geolocationGoogleCancelPostProd()">';
    meetme.popUp(msg);
    $('#location_text').focus();
    $('#location_text').keypress(function(e) {
        if (e.which == 13) {
            meetme.geolocationGoogle($('#location_text').val());
        }
    });
}


meetme.geolocationSendPostProd = function (position) { }

meetme.geolocationUnchangedPostProd = function (position) { }

meetme.geolocationSend = function (position,options) {
    var server_url=meetme.url.geolocation
      +"?latitude=" + position.coords.latitude
      +"&longitude=" + position.coords.longitude
      +"&altitude="+position.coords.altitude
      +"&accuracy=" + position.coords.accuracy
      +"&altitude_accuracy="+position.coords.altitudeAccuracy
      +"&heading="+position.coords.heading
      +"&speed="+position.coords.speed;

    if (position.coords.latitude !=0 && position.coords.longitude !=0
      && meetme.user.is_signed_in > 0
      && ( meetme.user.map_position.longitude != position.coords.longitude
      || meetme.user.map_position.latitude != position.coords.latitude ) ) {
      // && ( Math.abs(meetme.user.map_position.longitude - position.coords.longitude) > 0.002
      // || Math.abs(meetme.user.map_position.latitude - position.coords.latitude) > 0.002 ) ) {
        meetme.tmp.new_position=position;
        if (options && options.skip_popup) {
            meetme.user.map_position.longitude=position.coords.longitude;
            meetme.user.map_position.latitude=position.coords.latitude;
            $('body').append('<iframe onload="meetme.geolocationSendPostProd(meetme.tmp.new_position);" src="'+server_url+'" style="display: none;"></iframe>');
        } else {
            meetme.geolocationSendPostProd(position);
        }
    } else {
        if (options && options.force_automatic_detection) {
            meetme.geolocationSendPostProd(position);
        } else {
            meetme.geolocationUnchangedPostProd(position);
        }
    }
}

meetme.geolocationDetectGoogleMapsLoaded = function (options) {
    if (! options) {
        options=meetme.tmp.geolocation_detect_options;
    }
    if (typeof options != "object") {
        options=new Object;
        options.skip_popup=0;
        options.manualiy_if_unchanged=0;
    }
    if (navigator.geolocation) {
        if (options.skip_popup==1) {
            navigator.geolocation.getCurrentPosition(function (position) { meetme.geolocationSend(position,options); });
        } else {
            navigator.geolocation.getCurrentPosition(function (position) { meetme.geolocationSend(position,options); }, meetme.geolocationPopUp);
        }
    } else {
        if (options.skip_popup!=1) {
            meetme.geolocationPopUp();
        }
    }

    if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
}

meetme.geolocationDetect = function (options) {
    //meetme.debug('geolocation detect');
    try {
        var tmp=google.maps.GeocoderStatus;
        meetme.geolocationDetectGoogleMapsLoaded(options);
    } catch (e) {
        meetme.tmp.geolocation_detect_options=options;
        meetme.scriptLoad(
            meetme.url.google_maps+"&callback=meetme.geolocationDetectGoogleMapsLoaded"
        );
    }
}


/* My Location Button Click */

meetme.myLocationButtonClickGeolocationSendPostProd = function (position) {

    if (position.is_set_manually != 1 ) {
/*
        if (  meetme.tmp.user_map_position_longitude != meetme.user.map_position.longitude
          || meetme.tmp.user_map_position_latitude != meetme.user.map_position.latitude ) {
*/
            meetme.tmp.new_position=position;
            var latlng=new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
            
            geocoder=new google.maps.Geocoder();
            geocoder.geocode({ 'latLng': latlng }, function(results, status) {
                var address='';
                if (status == google.maps.GeocoderStatus.OK) {
                    address=results[0].formatted_address;
                }
                var msg=new Object();
                msg.title=meetme.lang.change_location_detected;
                msg.text=meetme.lang.change_location_detected_description_01+'<p>';
                if (address != '') {
                    msg.text=msg.text+'<span class="note-success"><b>'+address+'</b></span>';
                } else {
                    msg.text=msg.text+meetme.lang.change_location_detected_description_02;
                }
                msg.controls='<input id="popup_btn_close" type="button" value="'+meetme.lang.change_location_accept+'" onclick="meetme.popUpClose(); meetme.myLocationButtonClickGeolocationForceSend(meetme.tmp.new_position); ">';
                msg.controls=msg.controls+'<input id="popup_btn_set_manually" type="button" value="'+meetme.lang.change_location_set_manually
                  +'" onclick="meetme.geolocationGoogleCancelPostProd = function () { };  meetme.geolocationPopUp();">';
                meetme.popUp(msg);
                $('#popup_btn_close').focus();
            });

//        }
    }
}

meetme.myLocationButtonClickGeolocationForceSend = function (position) {
    if (meetme.is_mode_mobile) {
        meetme.geolocationSendPostProd = function () {};
    } else {
        meetme.geolocationSendPostProd = meetme.refreshPage;
    }
    var options=new Object();
    options.skip_popup=1;
    meetme.tmp.new_position=position;
    meetme.geolocationSend(meetme.tmp.new_position,options);
}

meetme.myLocationButtonClickGeolocationGooglePostProd = function (position) {
    if (meetme.is_mode_mobile) {
        meetme.geolocationSendPostProd = function () {};
    } else {
        meetme.geolocationSendPostProd = meetme.refreshPage;
    }
    var options=new Object();
    options.skip_popup=1;
    meetme.tmp.new_position=position;
    meetme.geolocationSend(meetme.tmp.new_position,options);
}

meetme.myLocationButtonClickGeolocationUnchangedPostProd = function (position) {
    if (position.is_set_manually != 1 ) {
        meetme.geolocationPopUp();
    }
}

meetme.myLocationButtonClickGoggleMapsLoaded = function (options) {
    if (! options) {
        options=meetme.tmp.my_location_button_click_options;
    }
    meetme.tmp.user_map_position_longitude=meetme.user.map_position.longitude;
    meetme.tmp.user_map_position_latitude=meetme.user.map_position.latitude;

    meetme.geolocationGooglePostProd = meetme.myLocationButtonClickGeolocationGooglePostProd;
    meetme.geolocationSendPostProd = meetme.myLocationButtonClickGeolocationSendPostProd;
    meetme.geolocationUnchangedPostProd = meetme.myLocationButtonClickGeolocationUnchangedPostProd;

    msg = new Object();
    // msg.width='459';
    msg.title=meetme.lang.change_location_my_location;
    msg.text=meetme.lang.change_location_choose_detection_method;

    var button_style='';
    if (meetme.is_mode_mobile) {
        button_style='style="width: 100%;"';
    }

    msg.controls='<input id="popup_btn_automatic" '+button_style+' type="button" value="'+meetme.lang.change_location_automatic_detection
      +'"onclick="meetme.geolocationUnchangedPostProd = function () { if (!meetme.is_mode_mobile) { meetme.refreshPage(); } }; meetme.geolocationDetect({force_automatic_detection: 1});">';
    msg.controls=msg.controls+'<input id="popup_btn_set_manually" '+button_style+'type="button" value="'+meetme.lang.change_location_set_manually
      +'" onclick="meetme.geolocationGoogleCancelPostProd = function () { };  meetme.geolocationPopUp();">';

    meetme.popUp(msg);
    $('#popup_btn_automatic').focus();
}

meetme.myLocationButtonClick = function (options) {
    try {
        var tmp=google.maps.GeocoderStatus;
        meetme.myLocationButtonClickGoggleMapsLoaded(options);
    } catch (e) {
        meetme.tmp.my_location_button_click_options=options;
        meetme.scriptLoad(
            meetme.url.google_maps+"&callback=meetme.myLocationButtonClickGoggleMapsLoaded"
        );
    }
}


/* --------------------------------------------------------------------- */
/* PopUps                                                                */
/* --------------------------------------------------------------------- */

meetme.startLoading = function () {
    meetme.status.is_loading=1;
    var style='';
    var height=70;
    if ($.browser.opera) {
        height=100;
        style='style="padding-top: 20px;"';
    }
    var html='<div id="loading" '+style+' ><img style="vertical-align:middle" src="'+meetme.url.static_server+'/images/loading.gif">'+meetme.lang.loading+'</div>';

    var options=new Object();
    options.transition='none';
    options.close='';
    options.width=250;
    options.height=height;
    options.overlayClose=false;
    options.opacity=0;
    options.scrolling=false;
    options.html=html;
    $.colorbox(options);

    $('#cboxWrapper').css('position','fixed');
    $('#cboxWrapper').css('left',$(window).width()/2-125);
    if (meetme.is_mode_fb) {
        $('#cboxWrapper').css('top',300);
        $('#cboxWrapper').css('left',340);
    } else {
        $('#cboxWrapper').css('top',($(window).height()-height)/2);
    }
    $('#cboxLoadedContent').css('height',height-10);
    $('#cboxClose').css('display','none');
    $('#cboxOverlay').css('display','none');

}

meetme.stopLoading = function () {
    $.colorbox.close();
    setTimeout('meetme.status.is_loading=0',500);
}

meetme.mPopUp = function (args) {
    meetme.tmp.mpopup_scroll_y=$(document).scrollTop();
    meetme.tmp.mpopup=new Object();
    meetme.tmp.mpopup.header=new Object();
    meetme.tmp.mpopup.header.title=new Object();
    meetme.tmp.mpopup.header.leftbtn=new Object();

    var html='';
    if (args.header && args.header.title) {
        meetme.tmp.mpopup.header.title.html=$('#header .title').html();
        $('#header .title').html(args.header.title);
    }
    meetme.tmp.mpopup.header.leftbtn.html=$('#header .leftbtn').html();
    if (args.header && args.header.leftbtn) {
        if (args.header.leftbtn.url.indexOf('javascript:') >= 0) {
            $('#header .leftbtn').html('<a onclick="'+args.header.leftbtn.url+'"><div class="i-'+args.header.leftbtn.type+'"></div></a>');
        } else {
            $('#header .leftbtn').html('<a onclick="window.location.href=\''+args.header.leftbtn.url+'\';"><div class="i-'+args.header.leftbtn.type+'"></div></a>');
        }
    } else {
        $('#header .leftbtn').html('<a onclick="meetme.mPopUpClose();"><div class="i-back"></div></a>');
    }
    if (args.content) {
        html=html+args.content;
    }
    if (args.buttons) {
        for (var i = 0; i < args.buttons.length; i++) {
            html=html+'<a class="btn-rounded btn-color-2" onclick="window.location.href=\''+args.buttons[i].url+'\';">';
            html=html+'<span class="inner">'+args.buttons[i].text+'</span></a><br>';
        }
        html=html+'<a class="btn-rounded btn-color-light" onclick="meetme.mPopUpClose()">';
        html=html+'<span class="inner">'+meetme.lang.cancel+'</span></a><br>';
    }

    $('body').append('<div id="mobile-popup"><div class="mobile-popup-inner">'+html+'</div></div>');
    $('#mobile-popup').height($(document).height()-$('#content').offset().top);
    $('#mobile-popup').show();
    $('body').css('overflow', 'hidden');
    window.top.scrollTo(1,1);
}

meetme.mPopUpClose = function () {
    $('body').css('overflow', 'auto');
    window.top.scrollTo(1,meetme.tmp.mpopup_scroll_y);
    $('#mobile-popup').remove();
    $('#header .title').html(meetme.tmp.mpopup.header.title.html);
    $('#header .leftbtn').html(meetme.tmp.mpopup.header.leftbtn.html);    
}

meetme.popUp = function (args) {
    if (typeof args != "object") {
        var scalarvar=args;
        args=new Object;
        args.text=scalarvar;
    }
    if (! args.title) {
        args.title='';
    }
    if (! args.text) {
        args.text='';
    }
    var focus_close_btn=0;
    if ((! args.controls) || args.controls=='') {
        args.controls='<input class="popup-btn-close" type="button" value="'+meetme.lang.close+'" onclick="$.colorbox.close();">';
        focus_close_btn=1;
    }

    var ie7fix='';
    if ($.browser.msie && $.browser.version.slice(0,1) < 8) {
        ie7fix='<div style="height: 10px;"></div>';
    }

    var close_icon='<div class="i-popup_close" onclick="meetme.popUpClose();"></div>';
    var title=close_icon+'<div class="popup-title">'+args.title+'</div>';
    var body='<div class="popup-body">'+args.text+ie7fix;
    var controls='<div class="popup-controls"><hr>'+args.controls+'</div>';

    var popup_width=400;
    var mobile_width=279;

    var mobile_width_css='';
    if (meetme.is_mode_mobile) {
        mobile_width_css='width: '+mobile_width+'px';
    }

    $('body').append('<table id="controls" class="popup-controls" style="display: none; '+mobile_width_css+'"><tr><td>'+controls+'</td></tr></table>');
    var controls_width=$('#controls').width();
    var controls_height=$('#controls').height()-30;
    $('#controls').remove();
    if (controls_width > 100 && popup_width < controls_width + 50 ) {
        popup_width=controls_width + 50;
    }

    if (args.width) {
        popup_width=args.width;
    }
    if (meetme.is_mode_mobile) {
        popup_width=mobile_width;
    }

    body=body+'<div style="height: '+controls_height+'px;"></div>';
    var html_code=title+body;

    var options=new Object ();
    options.transition='none';
    options.width=popup_width;
    options.overlayClose=false;
    options.opacity=0;
    options.html=html_code;

    if (meetme.is_mode_fb) {
        options.top=200;
    }

    $.colorbox(options);

/*
    $('#cboxWrapper').css('position','fixed');
    $('#cboxWrapper').css('left',$(window).width()/2-200);
    $('#cboxWrapper').css('top',($(window).height()-300)/2);
*/

    $('#cboxLoadedContent').css('margin-bottom','-'+controls_height+'px');
    $('.popup-controls').remove();
    $('#cboxContent').append(controls);
    $('#cboxLoadedContent').css('overflow','hidden');
    $('#cboxClose').css('display','none');

    if (ie7fix != '') {
        $('.popup-controls').css('margin-top','-35px');
    }

    $.colorbox.resize();

    if (focus_close_btn) {
        $('.popup-btn-close').focus();
    }

    $(document).bind('cbox_closed', function(){
        $('.popup-controls').remove();
    });    
}

meetme.popUpClose = function (args) {
    $.colorbox.close();
}

/* --------------------------------------------------------------------- */
/* Hide NOTES                                                            */
/* --------------------------------------------------------------------- */

meetme.hideEmptyNotesBox = function (notes_box) {
    if (notes_box.children('div').length == 0 ) {
        notes_box.hide('slow', function() {
            notes_box.remove();
        });
    }
}

meetme.hideNote = function (note_id) {
    $('#'+note_id).hide('slow', function(){ 
        notes_box=$('#'+note_id).parent();
        $('#'+note_id).remove(); 
        meetme.hideEmptyNotesBox(notes_box);
    });
}

meetme.hideSuccessNotes = function (notes_box_id) {
    if ($('#'+notes_box_id).children('div').length == $('#'+notes_box_id).children('div.note-success').length 
      && $('#'+notes_box_id).children('div.note-success').length > 0) {
        $('#'+notes_box_id).hide('slow', function() {
            $('#'+notes_box_id).remove();
        });
    } else {
        $('#'+notes_box_id).children('div.note-success').hide('slow', function() { });
    }
}

/* --------------------------------------------------------------------- */
/* HOMEPAGE size adjustments                                             */
/* --------------------------------------------------------------------- */

meetme.homepageAdjustSizes = function () {
    var min_content_height=540;
    var max_content_height=750;
    var width=$(window).width();
    var height=$(window).height();

    var diff=height-640;
    if (diff < 0) {
        diff=0;
    }
    var space=diff/20;
    if (space > 13) {
        space=13;
    }

    $('#info-meetme').height()-115;

    var topmenu_top=Math.round(space*7);
    var topmenu_bottom=Math.round(space*2);
    var smartphones_top=Math.round(space*3);
    var infonetworking_top=Math.round(space*2);
    if (infonetworking_top > 20) {
       infonetworking_top=20;
    }
    var infotext_adj=115-$('#info-meetme').height();
    if (infotext_adj > 0) {
        infotext_adj=0;
    }
    var infomeetme_top=Math.round(space*4.6)+infotext_adj;
    if (infomeetme_top < 0 ) {
        infomeetme_top=0;
    }
    
    var content_height=min_content_height+topmenu_top+topmenu_bottom+infomeetme_top+Math.round(smartphones_top/2)+Math.abs(infotext_adj);
    var signup_padding=10+Math.round(space*1.5);

    $('#content').css('height',content_height+'px');
    $('#topmenu').css('padding-top',topmenu_top+'px');
    $('#topmenu').css('padding-bottom',topmenu_bottom+'px');
    $('#smartphones').css('margin-top',smartphones_top+'px');
    $('#info-networking').css('margin-top',infonetworking_top+'px');
    $('#info-meetme').css('margin-top',infomeetme_top+'px');
    $('#signup').css('padding',signup_padding+'px');

    $('#language-popup').css('top',(topmenu_top)+'px');
}


/* --------------------------------------------------------------------- */
/* ACCOUNT MENU                                                          */
/* --------------------------------------------------------------------- */

meetme.accountPulldownShow = function (element) {
    var panel_left=$('#account-pulldown-btn').offset().left+$('#account-pulldown-btn').outerWidth(true)-$('#account-pulldown').outerWidth(true);
    var panel_top=$('#account-pulldown-btn').offset().top+$('#account-pulldown-btn').outerHeight(true)-5;
    if (meetme.html_direction == 'rtl') {
        panel_left=$('#account-pulldown-btn').offset().left;
    }
    $('#account-pulldown').css('left',panel_left);
    $('#account-pulldown').css('top',panel_top);
    $('#account-pulldown').show();
    $('#account-pulldown-btn').removeClass('unact');
    $('#account-pulldown-btn').addClass('act');
    if (element == 'menu') {
        meetme.tmp.account_menu_disable_btn_close=1;
    }
}
meetme.accountPulldownHide = function (element) {
    if (element == 'menu' || meetme.tmp.account_menu_disable_btn_close != 1) {
//        meetme.say('do hide '+element+' '+meetme.tmp.account_menu_disable_btn_close);
        $('#account-pulldown').hide();
        $('#account-pulldown-btn').removeClass('act');
        $('#account-pulldown-btn').addClass('unact');
        meetme.tmp.account_menu_disable_btn_close=0;
    }
}


/* --------------------------------------------------------------------- */
/* SEARCH RESULTS & FAVORITES                                            */
/* --------------------------------------------------------------------- */

meetme.openProfilePage = function (link) {  
    var params=meetme.urlGetFragmentArray();
    params['limit']=meetme.resultset.next_offset;
    var url=meetme.searchBuildUrl(params);

    if (meetme.is_mode_mobile) {
        var scrollbar_position=Math.round(Math.abs($('#resultlist.overview').offset().top-$("#resultlist-wrapper").offset().top));
        if (meetme.is_mode_mobile) {
            scrollbar_position=$(document).scrollTop();
        }
        meetme.cookieSet('scrbr',scrollbar_position,2);
    }

    window.location.href=url;
    window.location.href=link;
//    meetme.newWindow(link);
    return false;
}

meetme.quickSearchSubmit = function () {
    var search_url=$("#quicksearchform").attr("action");
    if ((! meetme.map) || (! meetme.map.ajax_args)) {
        if (! meetme.map) {
            meetme.map=new Object();
        }
        meetme.map.ajax_args=new Array();
    }
    meetme.map.ajax_args['keywords']=$('#keywords').val();
    meetme.map.ajax_args['gender']=$('#gender').val();
    meetme.map.ajax_args['is_looking_for_gender']=$('#islookingforgender').val();
    meetme.map.ajax_args['is_looking_for_gender_m']=$('#is_looking_for_gender_m').val();
    meetme.map.ajax_args['is_looking_for_gender_f']=$('#is_looking_for_gender_f').val();
    meetme.map.ajax_args['looking_for_age_from']=$('#agemin').val();
    meetme.map.ajax_args['looking_for_age_to']=$('#agemax').val();
    if ((! meetme.resultset ) || meetme.resultset.type != 'search') {
        $('#quicksearchform').submit();
    } else {
        meetme.searchUpdate(meetme.map.gmap,meetme.resultset.profiles,meetme.map.ajax_args);
    }
}


meetme.searchAdjustSizes = function (args) {
    var height=$(window).height()-$('#resultlist-wrapper').offset().top-10;

    var min_height=$('#lsb-common').offset().top + $('#lsb-common').outerHeight();
    if (min_height < $(window).height() ) {
        var diff_height=Math.abs(min_height - $(window).height());
        footer_height=$('#footer').outerHeight()+20;
        if (diff_height > footer_height) {
            diff_height=footer_height;
        }
        height=height-diff_height;
    }

    var content_offset=$('#content').offset().left;
    if (meetme.html_direction == 'rtl') {
        content_offset='240';
    }
    width=$(window).width()-content_offset-50;
    minwidth=$('.uline .minwidth').css('width');
    minwidth=minwidth.replace('px','');
    if ($(window).width() < minwidth) {
        width=$(document).width()-content_offset-50;
    }

    var resultlist_min_width=340;
    var resultlist_max_width=500;
    var resultlist_width=width/100*40;

    if (resultlist_width<resultlist_min_width) {
        resultlist_width=resultlist_min_width;
    }
    if (resultlist_width>resultlist_max_width) {
        resultlist_width=resultlist_max_width;
    }

    // adjust width only if we have google map on the page 
    if ($('#gmap_canvas').length > 0 ) {
        $('#resultlist-wrapper').width(resultlist_width);
    }

    $('#resultlist').width(resultlist_width-40);
    $('#resultlist-wrapper .viewport').height(height);

    var scrollbar_update_position='relative';
    if (args) {
        if (args.scrollbar_reset) {
            scrollbar_update_position='';
        }
    }

    $('#resultlist-wrapper').tinyscrollbar_update(scrollbar_update_position);
//    setTimeout("$('#resultlist-wrapper').tinyscrollbar_update('"+scrollbar_update_position+"')",500);
//    setTimeout("$('#resultlist-wrapper').tinyscrollbar_update('"+scrollbar_update_position+"')",1000);

    $('#gmap_canvas').height(height);
    $('#gmap_canvas').width(width-resultlist_width-0); // don't know why there was -20
    if (meetme.map.gmap) {
        google.maps.event.trigger(meetme.map.gmap, 'resize');
    }

    $('#load_more_btn').css('margin-left',(resultlist_width-$('#load_more_btn').width())/2);
}


meetme.searchAroundMe = function (link) {
    if (! link) {
        link = '/';
    }
    $('body').append('<form id="form_aroundme" style="display: none;" action="'+link+'" method="post"><input type="hidden" name="mode" value="aroundme"></form>');
    $('#form_aroundme').submit();    
}

meetme.searchLoadMoreClick = function () {
    var profile_count=0;
    for (key in meetme.resultset.profiles) {
        profile_count++;
    }
    var url_params=new Object();
/*
    if (meetme.map.gmap_center) {
        url_params['c_lat']=meetme.map.gmap_center.lat();
        url_params['c_lng']=meetme.map.gmap_center.lng();
    } 
*/
    if (meetme.map.c_latitude) {
        url_params['c_lat']=meetme.map.c_latitude;
        url_params['c_lng']=meetme.map.c_longitude;
    }
/*
    url_params['sw_lat']=meetme.map.gmap_bounds.getSouthWest().lat();
    url_params['sw_lng']=meetme.map.gmap_bounds.getSouthWest().lng();
    url_params['ne_lat']=meetme.map.gmap_bounds.getNorthEast().lat();
    url_params['ne_lng']=meetme.map.gmap_bounds.getNorthEast().lng();
*/
    //meetme.say('stored values '+meetme.map.sw_latitude+' '+meetme.map.gmap_bounds.getSouthWest().lat());
    url_params['sw_lat']=meetme.map.sw_latitude;
    url_params['sw_lng']=meetme.map.sw_longitude;
    url_params['ne_lat']=meetme.map.ne_latitude;
    url_params['ne_lng']=meetme.map.ne_longitude;

    if (meetme.map.ajax_args['keywords']) {
        url_params['keywords']=meetme.map.ajax_args['keywords'];
    }
    url_params['offset']=meetme.resultset.next_offset;
    url_params['limit']=20;
    if (meetme.status.is_loading<1 && profile_count< meetme.resultset.max_profiles) {
        meetme.searchUpdate(meetme.map.gmap,meetme.resultset.profiles,url_params,undefined,undefined,1);
    }
}

meetme.searchBuildUrl = function (params) {
    if (params == undefined ) {
        params=new Array();
    }
    var url_params=new Array();
    var url_hash_keys_string='zoom c_lat c_lng sw_lat sw_lng ne_lat ne_lng keywords limit offset';
    var url_hash_keys=url_hash_keys_string.split(' ');

    for (i=0; i<url_hash_keys.length; i++) {
        key=url_hash_keys[i];
        if (params[key] == undefined) {
            params[key]='';
        }
        url_params[key]=params[key];
    }
    if (! meetme.tmp.ajax_load_count) {
        meetme.tmp.ajax_load_count=0;
    }
    meetme.tmp.ajax_load_count++;

    url_params['ajax_load_count']=meetme.tmp.ajax_load_count;

    if (! url_params['limit']) {
        url_params['limit']=meetme.resultset.next_offset;
    }
    if (url_params['offset']) {
        url_params['limit']=url_params['limit']*1+url_params['offset']*1;
    }
    delete url_params['offset'];
    if (url_params['keywords']=='' && meetme.map.ajax_args['keywords']) {
        url_params['keywords']=meetme.map.ajax_args['keywords'];
    }
   
    if (meetme.map.gmap && url_params['zoom']=='') {
        url_params['zoom']=meetme.map.gmap.getZoom();
    }

    if (url_params['c_lat']=='') {
        url_params['c_lat']=meetme.map.c_latitude;
        url_params['c_lng']=meetme.map.c_longitude
    }
    if (url_params['sw_lat']=='' && meetme.map.sw_latitude!=undefined) {
        url_params['sw_lat']=meetme.map.sw_latitude;
        url_params['sw_lng']=meetme.map.sw_longitude;
        url_params['ne_lat']=meetme.map.ne_latitude;
        url_params['ne_lng']=meetme.map.ne_longitude;
    }

    try {
        var scrollbar_position=Math.round(Math.abs($('#resultlist.overview').offset().top-$("#resultlist-wrapper").offset().top));
        if (meetme.is_mode_mobile) {
            scrollbar_position=$(document).scrollTop();
        }
        url_params['scrollbar']=scrollbar_position;
    } catch (e) {}

    var new_hash='#';
    for (key in url_params) {
        new_hash=new_hash+key+'='+url_params[key]+'&';
    }

    var new_url=url=window.location.href;
/*
    if (url.indexOf('?') > 0) {
        new_url=url.substring(0,url.indexOf('?'));
    }
*/
    if (url.indexOf('#') > 0) {
        new_url=url.substring(0,url.indexOf('#'));
    }
//    meetme.debug(new_url+ ' ...  ' + new_hash+'<');
    return new_url+new_hash;
}

meetme.searchTryUpdate = function () {    
    if (typeof meetme.tmp.search_stack != 'object' ) {
        return;
    }
    var args=meetme.tmp.search_stack.pop();
    if (meetme.tmp.search_stack.length<1) {
        eval('meetme.searchUpdate('+args[0]+','+args[1]+','+args[2]+')');
    }
}

meetme.searchPrepareUpdate = function (arg1,arg2,arg3) {
    if (typeof meetme.tmp.search_stack != 'object' ) {
        meetme.tmp.search_stack=new Array();
    }
    meetme.tmp.search_stack[meetme.tmp.search_stack.length]=[arg1,arg2,arg3];
    setTimeout('meetme.searchTryUpdate()',1000);
}

meetme.searchUpdate = function (map,profiles,new_url_params,center_lat,center_lng,add_only) {
    meetme.status.is_loading=1;
    if (add_only == 1) {
        var html='<div id="loading"><img align="center" src="'+meetme.url.static_server+'/images/loading.gif">'+meetme.lang.loading
          +'</div><div style="height: 20px;"></div>';
        $('#more_profiles_here').html(html);
    } else {
        if (! meetme.is_mode_mobile) {
            meetme.startLoading();
        }
        for (mmid in profiles) {
            profiles[mmid].is_old=1;
        }
        if (map) {
            meetme.map.gmap_bounds=map.getBounds();
            meetme.map.gmap_center=map.getCenter();
        }
    }

    var url=meetme.map.search_url+'?';
 
    var url_params=new Object();
    url_params['ajax']=1;
    if (map && ! meetme.is_mode_mobile) {
        url_params['zoom']=map.getZoom();
        url_params['c_lat']=map.getCenter().lat();
        url_params['c_lng']=map.getCenter().lng();
        if (map.getBounds()) {
            url_params['sw_lat']=map.getBounds().getSouthWest().lat();
            url_params['sw_lng']=map.getBounds().getSouthWest().lng();
            url_params['ne_lat']=map.getBounds().getNorthEast().lat();
            url_params['ne_lng']=map.getBounds().getNorthEast().lng();
        }
        url_params['w']=$('#gmap_canvas').width();
        url_params['h']=$('#gmap_canvas').height();
    }
    if (meetme.resultset.next_offset>50) {
        url_params['limit']=meetme.resultset.next_offset;
    }
    
    for (key in new_url_params) {
//        meetme.debug(key+' '+url_params[key]);
        url_params[key]=new_url_params[key];
    }
    for (key in url_params) {
        if (key =='offset' && url_params[key]==0) {
            continue;
        }
        if (url_params[key] != undefined ) {
            url=url+'&'+key+'='+url_params[key];
        }
    }

    // meetme.debug('SEARCH URL '+url+'<');

    $.get(url,function(data) {
        $('#more_profiles_here').html('');
        if (add_only == 1) {
            $('#more_profiles_here').before(data);
        } else {
            $('#resultlist').html(data);
            $(window).scrollTop(0);
        }
        if (! (meetme.is_mode_mobile || meetme.is_mode_fb) ) {
            meetme.gmapUpdateMarkers(map,meetme.resultset.profiles);
            if (meetme.map.is_new) {
                meetme.gmapUpdateCoordinates(map,meetme.resultset.profiles,1);
            }
            var args=new Object();
            if (add_only != 1) {
                args.scrollbar_reset=1;
            }
            meetme.searchAdjustSizes(args);
        }
        meetme.stopLoading();
        
        // params to url
        if (url_params['from_url']) {
            if (isNaN(url_params['scrollbar'])) {
                url_params['scrollbar']=0;
            }
            if (meetme.resultset.next_offset == url_params['limit'] ) {
                url_params['scrollbar']=url_params['scrollbar']*1;
                if (meetme.is_mode_mobile) {
                    window.top.scrollTo(0,url_params['scrollbar']);
                } else {
                    $('#resultlist-wrapper').tinyscrollbar_update(url_params['scrollbar']);
                }
            }
            if (! (meetme.is_mode_mobile || meetme.is_mode_fb) ) {
                meetme.gmapUpdateCoordinates(map,meetme.resultset.profiles,1);
            }
        } else {
            var params=new Array();            
            var new_url=meetme.searchBuildUrl();
            window.location.href=new_url;
        }
        meetme.searchUpdatePostProd();
    });
}


meetme.searchUpdatePostProd = function () {
    // this function, when needed, should be overwritten in template
}

meetme.gmapUpdateMarkers = function (map,profiles) {
    var msg='';
    for (key in profiles) {
        if (profiles[key].is_old==1) {
            profiles[key].marker.setMap(null);
            try {
                profiles[key].infowindow.setMap(null);
            } catch (e) {}
            delete profiles[key];
        } else if (profiles[key].is_new==1) {
            meetme.gmapAddMarker(map,profiles[key]);
            profiles[key].is_new==0;
        }
    }
}


meetme.gmapShowInfo = function(map,profile) {

    try {
        meetme.tmp.infowindow.setMap(null);
    } catch(e) {}

    meetme.tmp.infowindow = new google.maps.InfoWindow({ content: profile.infowindow });
    meetme.tmp.infowindow.open(map,profile.marker);

/*
    if (! meetme.tmp.infowindow ) {
        meetme.tmp.infowindow = new google.maps.InfoWindow({ content: profile.infowindow });
    }
    meetme.tmp.infowindow.setContent(profile.infowindow);
    meetme.tmp.infowindow.open(map,profile.marker);
*/
}

meetme.gmapCloseInfo = function(map,profile) {

    try {
        meetme.tmp.infowindow.setMap(null);
    } catch(e) {}
/*
    meetme.tmp.infowindow.close(map,profile.marker);
    meetme.tmp.infowindow.setContent('');
*/
}

meetme.gmapMarkerImageShadow = function (type) {
    var image = new google.maps.MarkerImage('/images/markers.png',
        new google.maps.Size(16, 35),
        new google.maps.Point(21,0),
        new google.maps.Point(8, 32)
    );
    var shadow = new google.maps.MarkerImage('/images/markers.png',
        new google.maps.Size(30, 35),
        new google.maps.Point(104,0),
        new google.maps.Point(0, 32)
    );
    if (type == 'socializing') {
        image = new google.maps.MarkerImage('/images/markers.png',
            new google.maps.Size(16, 35),
            new google.maps.Point(40,0),
            new google.maps.Point(8, 32)
        );
    }
    if (type == 'dating') {
        image = new google.maps.MarkerImage('/images/markers.png',
            new google.maps.Size(18, 35),
            new google.maps.Point(58,0),
            new google.maps.Point(8, 35)
        );
        shadow = new google.maps.MarkerImage('/images/markers.png',
            new google.maps.Size(35, 34),
            new google.maps.Point(137,0),
            new google.maps.Point(0, 34)
        );
    }
    if (type=='favorite') {
        image = new google.maps.MarkerImage('/images/markers.png',
            new google.maps.Size(19, 35),
            new google.maps.Point(77,0),
            new google.maps.Point(9, 32)
        );
        shadow = new google.maps.MarkerImage('/images/markers.png',
            new google.maps.Size(40, 34),
            new google.maps.Point(172,0),
            new google.maps.Point(0, 34)
        );
    }
    if (type=='user') {
        image = new google.maps.MarkerImage('/images/markers.png',
            new google.maps.Size(16, 35),
            new google.maps.Point(0,0),
            new google.maps.Point(8, 32)
        );
        shadow = new google.maps.MarkerImage('/images/markers.png',
            new google.maps.Size(30, 35),
            new google.maps.Point(104,0),
            new google.maps.Point(0, 32)
        );
    }
    var result=new Object();
    result.image=image;
    result.shadow=shadow;
    return result;
}

meetme.gmapAddMarker = function (map,profile) {
    var latlng = new google.maps.LatLng(profile.lat,profile.lng);
    var icon = '';
    var zindex=Math.round(Math.abs(20000-profile.lat*100 ));
    
    var marker_type=profile.type_code;
    if (profile.is_favorite) {
        marker_type='favorite';
        zindex=zindex+504;
    }

    var marker=meetme.gmapMarkerImageShadow(marker_type);

    if (profile.marker == null) {
        profile.marker=new google.maps.Marker({
          position: latlng,
          map: map,
          draggable: false,
          title: profile.firstname+' '+profile.lastname,
          animation: google.maps.Animation.DROP,
          icon: marker.image,
          shadow: marker.shadow,
          zIndex: zindex
        });
    }

/*
    if (meetme.user.profile.type_code) {
        icon=meetme.url.static_server+meetme.url.marker[meetme.user.profile.type_code];
    }
    if (profile.is_favorite) {
        icon=meetme.url.static_server+meetme.url.marker[meetme.user.profile.type_code+'_favorite'];
    }
    if (profile.marker == null) {
        profile.marker=new google.maps.Marker({
          position: latlng,
          map: map,
          draggable: false,
          title: profile.firstname+' '+profile.lastname,
          animation: google.maps.Animation.DROP,
          icon: icon,
          zIndex: 504
        });
    }
*/
    if (profile.infovindow == null) {
        var iw_content='<div class="gmap-info">';
        iw_content=iw_content+'<div class="title">'+profile.firstname+' '+profile.lastname+'</div>';
        if (profile.thumb != '') {
            iw_content=iw_content+'<img class="thumb" src="'+profile.thumb+'">';
        }

        iw_content=iw_content+' '+profile.age_text+'<br>';
        iw_content=iw_content+profile.description+'</div>';
        profile.infowindow = new google.maps.InfoWindow({ content: iw_content });
    }
    $('#profile-'+profile.mmid).mouseenter(function() { 
        profile.infowindow.open(map,profile.marker); 
    });
    $('#profile-'+profile.mmid).mouseleave(function() { 
        profile.infowindow.close(map,profile.marker); 
    });

/*
    if (profile.infowindow == null) {
        var iw_content='<div class="gmap-info">';
        iw_content=iw_content+'<div class="title">'+profile.firstname+' '+profile.lastname+'</div>';
        if (profile.thumb != '') {
            iw_content=iw_content+'<img class="thumb" src="'+profile.thumb+'">';
        }

        iw_content=iw_content+' '+profile.age_text+'<br>';
        iw_content=iw_content+profile.description+'</div>';
        profile.infowindow = iw_content;
    }
    $('#profile-'+profile.mmid).mouseenter(function() {
        meetme.gmapShowInfo(map,profile); 
    });
    $('#profile-'+profile.mmid).mouseleave(function() { 
        meetme.gmapCloseInfo(map,profile); 
    });
*/
    google.maps.event.addListener(profile.marker, 'mouseover', function() {
        $('#profile-'+profile.mmid).addClass('bg-highlighted-'+profile.type_code);
        var max_top=$('#resultlist-wrapper .overview').height()-$('#resultlist-wrapper').height();
        var top=$('#profile-'+profile.mmid).offset().top-$('#resultlist-wrapper .overview').offset().top;
        top=(Math.abs(top));
        if ((max_top > 0 && max_top < top) || max_top < 1 ) {
            top='bottom';
        }
        $('#resultlist-wrapper').tinyscrollbar_update(top);
        //meetme.gmapShowInfo(map,profile);
        profile.infowindow.open(map,profile.marker);
    });
    google.maps.event.addListener(profile.marker, 'mouseout', function() {
        $('#profile-'+profile.mmid).removeClass('bg-highlighted-'+profile.type_code);
        // meetme.gmapCloseInfo(map,profile);
        profile.infowindow.close(map,profile.marker);
    });
    google.maps.event.addListener(profile.marker, 'click', function() {
        //window.location.href=profile.profile_view_url;
        //meetme.newWindow(profile.profile_view_url);
        meetme.openProfilePage(profile.profile_view_url);
    });

    return profile;
}

meetme.gmapFitToMarkers = function (map, profiles, user, set_listeners) {
    var bounds=new google.maps.LatLngBounds();
    for (mmid in profiles) {
        LatLng=new google.maps.LatLng(profiles[mmid].lat,profiles[mmid].lng);
        bounds.extend(LatLng);
    }
    if (user && user.map_position.latitude != 0 ) {
        LatLng=new google.maps.LatLng(user.map_position.latitude,user.map_position.longitude);
        bounds.extend(LatLng);
    }

    var listeners_set=0;
    if (meetme.map.gmap_listener_zoom_changed != null) {
        listeners_set=1;
        google.maps.event.removeListener(meetme.map.gmap_listener_zoom_changed);
        google.maps.event.removeListener(meetme.map.gmap_listener_dragend);
    } 
    meetme.map.gmap.fitBounds(bounds);

    if (listeners_set || set_listeners) {
         meetme.gmapAddListeners(meetme.map.gmap,meetme.map.params);
    }    

    var zoom = map.getZoom();
    if (zoom>18) {
        map.setZoom(18);
    }
}

meetme.gmapUpdateCoordinates = function (map,profiles,set_listeners) {
    var bounds=new google.maps.LatLngBounds();
/*
    LatLng=new google.maps.LatLng(meetme.map.sw_latitude,meetme.map.sw_longitude);
    bounds.extend(LatLng);
    LatLng=new google.maps.LatLng(meetme.map.ne_latitude,meetme.map.ne_longitude);
    bounds.extend(LatLng);
*/

    for (key in profiles) {
        LatLng=new google.maps.LatLng(profiles[key].lat,profiles[key].lng);
        bounds.extend(LatLng);
    }

    var listeners_set=0;
    if (meetme.map.gmap_listener_zoom_changed != null) {
        listeners_set=1;
        google.maps.event.removeListener(meetme.map.gmap_listener_zoom_changed);
        google.maps.event.removeListener(meetme.map.gmap_listener_dragend);
    }
    var old_zoom=map.getZoom();
    meetme.map.gmap.fitBounds (bounds);
    if (old_zoom < map.getZoom()) {
        map.setZoom(old_zoom);
    }
    var center=new google.maps.LatLng(meetme.map.c_latitude,meetme.map.c_longitude);
    meetme.map.gmap.setCenter(center);

    if (listeners_set || set_listeners) {
        meetme.gmapAddListeners(meetme.map.gmap,meetme.map.params);
    }

    var zoom = map.getZoom();
    if (zoom>18) {
        map.setZoom(18);
    }

}

meetme.gmapUpdate = function (args) {

    var listeners_set=0;
    if (meetme.map.gmap_listener_zoom_changed != null) {
        listeners_set=1;
        google.maps.event.removeListener(meetme.map.gmap_listener_zoom_changed);
        google.maps.event.removeListener(meetme.map.gmap_listener_dragend);
    }
    if (args['zoom']) {
        args['zoom']=args['zoom']*1;
        meetme.map.gmap.setZoom(args['zoom']);
        setTimeout("meetme.map.gmap.setZoom("+args['zoom']+")",500);
    }
    if (args['c_lat']) {
        args['c_lat']=args['c_lat']*1;
        args['c_lng']=args['c_lng']*1;
        var center=new google.maps.LatLng(args['c_lat'],args['c_lng']);
        meetme.map.gmap.setCenter(center);
    }
    var zoom = meetme.map.gmap.getZoom();
    if (zoom>18) {
        meetme.map.gmap.setZoom(18);
    }
    if (listeners_set) {
        meetme.gmapAddListeners(meetme.map.gmap,meetme.map.params);
    }
}

meetme.gmapAddListeners = function (map,args) {
    if (args == null) {
        args=meetme.map.args;
    }
    if (meetme.map.search_url) {
        meetme.map.gmap_listener_zoom_changed=google.maps.event.addListener(map, 'zoom_changed', function() {
            var cmd='meetme.searchPrepareUpdate("'+args.str_gmap+'","'+args.str_profiles+'","'+args.str_ajax_args+'")';
            setTimeout(cmd,1);
        });
        meetme.map.gmap_listener_dragend=google.maps.event.addListener(map, 'dragend', function() {
            var cmd='meetme.searchPrepareUpdate("'+args.str_gmap+'","'+args.str_profiles+'","'+args.str_ajax_args+'")';
            setTimeout(cmd,1);
        });
    } 
}


meetme.gmapInitialize = function (args) {
    var mapOptions = {
//      maxZoom: 19,
      minZoom: 2,
      zoom: 10,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      center: new google.maps.LatLng(args.c_lat, args.c_lng)
    };

    if (args.zoom>0) {
        mapOptions.zoom=args.zoom;
    }

    var map = new google.maps.Map(document.getElementById(args.div_id),mapOptions);

    if (args.user_lat != 0 && args.user_lng != 0) {

        var marker=meetme.gmapMarkerImageShadow('user');

        meetme.map.current_user_marker=new google.maps.Marker({
            position: new google.maps.LatLng(args.user_lat,args.user_lng),
            map: map,
            draggable: false,
            title: meetme.lang.you,
            icon: marker.image,
            shadow: marker.shadow,
            zIndex: 100008
        });
    }

    if (args.sw_lat && args.zoom == 0) {
        var bounds=new google.maps.LatLngBounds();
        LatLng=new google.maps.LatLng(args.sw_lat,args.sw_lng);
        bounds.extend(LatLng);
        LatLng=new google.maps.LatLng(args.ne_lat,args.ne_lng);
        bounds.extend(LatLng);
        map.fitBounds(bounds);
    }

    return map;
}


/* init google map for one user */

meetme.gmapInitializeOneUser = function (options) {
    var userLatLng = new google.maps.LatLng(options.user.map_position.latitude,options.user.map_position.longitude);
    var icon='';
    if (meetme.user.profile.type_code) {
        icon=meetme.url.static_server+meetme.url.marker[meetme.user.profile.type_code+'_favorite'];
    }
    if (options.user.is_favorite == 1 ) {
        icon=meetme.url.static_server+meetme.url.marker[meetme.user.profile.type_code];
    }

    map_options=new Object();
    if (typeof options.map.options == 'object') {
        map_options=options.map.options;
    }
    map_options.zoom=13;
    map_options.center=userLatLng;
    map_options.mapTypeId=google.maps.MapTypeId.ROADMAP;

    var map = new google.maps.Map(document.getElementById(options.map.canvas), map_options);
    var bounds=new google.maps.LatLngBounds();

    if (options.user.profile.mmid != meetme.user.profile.mmid && options.user.profile.mmid != '' && options.only_meetme_user != 1 ) {
        var icon_type=options.user.profile.type_code;
        if (options.user.is_favorite) {
            icon_type='favorite';
        }
        var marker_icon=meetme.gmapMarkerImageShadow(icon_type);
        var marker = new google.maps.Marker({
            position: userLatLng,
            title: options.user.firstname+' '+options.user.lastname,
            map: map,
            icon: marker_icon.image,
            shadow: marker_icon.shadow
        });

        if (! meetme.tmp.gmap_profile_marker) {
            meetme.tmp.gmap_profile_marker=new Array();
        }
        meetme.tmp.gmap_profile_marker[options.map.canvas]=marker;
        bounds.extend(userLatLng);
    }

    if (options.include_meetme_user || options.only_meetme_user) { 
        
        var userLatLng = new google.maps.LatLng(meetme.user.map_position.latitude,meetme.user.map_position.longitude);       
        var marker_icon=meetme.gmapMarkerImageShadow('user');
        var marker = new google.maps.Marker({
            position: userLatLng,
            title: meetme.lang.you,
            map: map,
            icon: marker_icon.image,
            shadow: marker_icon.shadow
        });
        bounds.extend(userLatLng);
    }
    if (options.map.zoom) {
        map.setZoom(options.map.zoom);
    } else {
        map.fitBounds (bounds);
    }
    
    if (options.map.overlay) {
        var left=$('#'+options.map.canvas).offset().left;
        var top=$('#'+options.map.canvas).offset().top;
        var width=$('#'+options.map.canvas).width();
        var height=$('#'+options.map.canvas).height();

        $('#'+options.map.overlay).css('position','absolute');
        $('#'+options.map.overlay).css('top',$('#'+options.map.canvas).offset().top);
        $('#'+options.map.overlay).css('left',$('#'+options.map.canvas).offset().left);
        $('#'+options.map.overlay).css('width',$('#'+options.map.canvas).width());
        $('#'+options.map.overlay).css('height',$('#'+options.map.canvas).height());
        $('#'+options.map.overlay).css('cursor','pointer');
    }
    return map;
}



/* --------------------------------------------------------------------- */
/* FACEBOOK                                                              */
/* --------------------------------------------------------------------- */

meetme.fbSignInWindow = function () {
    window.open(meetme.url.signin_facebook,'','width=450,height=300');
}

meetme.fbSetPageInfo = function (page) {
    meetme.fb.page = new Object;
    meetme.fb.page.width=page.clientWidth;
    meetme.fb.page.height=page.clientHeight;
}

meetme.fbResizeCanvas = function () {
    FB.Canvas.getPageInfo ( function (page) {
        var new_height=$('#content').height()+$('#content').offset().top+50;
        var min_height=100;
        min_height=page.clientHeight-100;
        if (new_height < min_height) {
            new_height=min_height;
        }
        FB.Canvas.setSize({ height: new_height });
        page.clientInitialHeight=page.clientHeight;
        page.clientHeight=new_height;
        meetme.fbSetPageInfo(page);
        try {
            meetme.fbResizeCanvasPostProd(page);
        } catch (e) {}
    });

}


/* --------------------------------------------------------------------- */
/* AdSense                                                              */
/* --------------------------------------------------------------------- */

meetme.adsenseNumberOfAds = function () {
    var ad_height=100;
    var ad_offset=$('#ads_left').offset().top - $('#lsb-common').offset().top;
    var ad_space=$('#lsb-common').height() - ad_offset;
    var number_of_ads=Math.floor( ad_space / ad_height );
    if (typeof(number_of_ads)!='number' || number_of_ads<1) {
        number_of_ads=1;
    }
    return number_of_ads;
}

meetme.adsenseCustomAds = function (ads_options,google_ads,google_info) {
    var html='<a style="color: #555; text-decoration: none;"';
      html+='href="'+google_info.feedback_url+'">Ads by Google</a><p>';
    for (i = 0; (i < google_ads.length) && (i < meetme.adsenseNumberOfAds() ); i++) {
        if (ads_options.titleBold) {
            html+='<b>';
        }
        html+='<a style="font-size: '+ads_options.fontSizeTitle;
        html+='; color: '+ads_options.colorTitleLink+';" href="';
        html+=google_ads[i].url+'">'+google_ads[i].line1+'</a>';
        if (ads_options.titleBold) {
            html+='</b>';
        }
        html+='<br><span style="font-size: '+ads_options.fontSizeDescription+';">'+google_ads[i].line2+'<br>';
        html+=google_ads[i].line3+'<br>';
        html+='<a style="font-size: '+ads_options.fontSizeDescription;
        html+='; text-decoration: none; color: '+ads_options.colorDomainLink+';" href="'+google_ads[i].url+'">'+google_ads[i].visible_url+'</a><p>';
    }
    $('#'+ads_options.container).html(html);
}


/* --------------------------------------------------------------------- */
/* Resize                                                                */
/* --------------------------------------------------------------------- */

meetme.resizeLeftSidebar = function () {
    try {
        var new_height=$(window).height() - $('#lsb-common').offset().top - $('#footer').outerHeight()-20;
        if (new_height < 180) {
            new_height=180;
        }
        $('#lsb-common').height(new_height);
        $('#lsb-common').css('max-height',new_height+'px');
    } catch (e) {}
}


/* --------------------------------------------------------------------- */
/* ColorBox                                                              */
/* --------------------------------------------------------------------- */

meetme.colorboxInitialize = function () {
    var colorbox_options=new Object();
    colorbox_options.rel='photobox';
    colorbox_options.photo='true';
    colorbox_options.initialWidth=100;
    colorbox_options.initialHeight=100;
    colorbox_options.maxWidth=$(window).width()-$(window).width()/10;
    colorbox_options.maxHeight=$(window).height()-$(window).height()/10;

    if (meetme.is_mode_fb) {
        colorbox_options.top='40';
        colorbox_options.maxWidth='700';
        colorbox_options.maxHeight='600';            
    }

    $(".photobox").colorbox(colorbox_options);

    $(".lightbox").colorbox({
        rel: 'lightbox',
        maxWidth: $(window).width()-$(window).width()/10,
        maxHeight: $(window).height()-$(window).height()/10
    });

}


/* --------------------------------------------------------------------- */
/* Initialize these functions on every page                              */
/* --------------------------------------------------------------------- */

$(document).ready(function() {

    meetme.colorboxInitialize();

    if ($.browser.msie && $.browser.version.slice(0,1) < 9) {
        $('.rounded-8px').corner("8px");
    }

    $('#account-pulldown-btn').mouseover(function() {
        meetme.accountPulldownShow('btn');
    });
    $('#account-pulldown-btn').mouseout(function() {
        meetme.accountPulldownHide('btn');
    });
    $('#account-pulldown-btn').mouseleave(function() {
        meetme.accountPulldownHide('btn');
    });
    $('#account-pulldown').mouseover(function() {
        meetme.accountPulldownShow('menu');
    });
    $('#account-pulldown').mouseout(function() {
        meetme.accountPulldownHide('menu');
    });
    $('#account-pulldown .panel').mouseover(function() {
        meetme.accountPulldownShow('menu');
    });
    $('#account-pulldown a').mouseover(function() {
        meetme.accountPulldownShow('menu');
    });

});

$(window).resize(function() {
    meetme.colorboxInitialize();
    // meetme.resizeLeftSidebar();
});


