$(function() {
    $.ajaxSetup({
        error:function(x,e) { 
            global_error('Error in connection');
        }
    });
});
function global_error(msg)
{
    $(".ajax-error").html(msg);
    $(".ajax-error").show();
    setTimeout(function(){
        $(".ajax-error").fadeOut()
    }, 8000);
}

function trim(str)
{
    return str.replace(/^\s+|\s+$/g, '');
}
var G_REGEX_EMAIL = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])$/;
var G_REGEX_DATE = /^(0?[1-9]|[12][0-9]|3[01])[-/\.](0?[1-9]|1[012])[- /\.](19|20)?[0-9]{2}$/;
var G_REGEX_CELLNO = /^(9|8|7)\d{9}$/;
var G_REGEX_LAND = /^\d{8}$/;
var G_REGEX_LAND_EXT = /^[1-9]\d*$/;
var G_REGEX_NUM_GUESTS = /^[1-9]\d*$/;

function is_email(str)
{
    if(is_blank(str)) { 
        return false;
    }
    str = trim(str);
    return G_REGEX_EMAIL.test(str);
}

function is_date(str)
{
    if(is_blank(str)) { 
        return false; 
    }
    str = trim(str); 
    return G_REGEX_DATE.test(str);
}

function is_cellno(str)
{
    if(is_blank(str) )
    {
        return false;
    }
    str = trim(str); 
    return G_REGEX_CELLNO.test(str);
}

function is_landline(str)
{
    if(is_blank(str) )
    {
        return false;
    }
    str = trim(str);
    return G_REGEX_LAND.test(str);
}
function is_landline_ext(str)
{
    if(is_blank(str) )
    {
        return false;
    }
    str = trim(str);
    return G_REGEX_LAND_EXT.test(str);
}

function is_num_guests(str)
{
    if(is_blank(str) )
    {
        return false;
    }
    str = trim(str);
    return G_REGEX_NUM_GUESTS.test(str);
}
function is_blank(str)
{
    if(str == undefined)
    {
        return true;
    }
    if(str == null)
    {
        return true;
    }
    str = trim(str); 
    return ( str.length == 0 );
}
/** general utility funcitons ****/
function li_wrap(str)
{
    return '<li>'+str+'</li>';
}
function ul_wrap(str)
{
    return '<ul>'+str+'</ul>';
}
function hb_getId(element, prefix)
{
    var str = $(element).attr('id');
    return str.replace(prefix,'');
}

function hb_getJQId(id_val)
{
    return  id_val.replace(/:/g,"\\:").replace(/\./g,"\\.");
}

function hb_hasId(element, id_str)
{
    return ($(element).attr('id') == id_str);
}

function hb_hasClass(element, class_str)
{
    return ($(element).attr('class') == class_str);
}
function hb_parsetime(time_str)
{
    var time_ranges = time_str.split(':');
    if(time_ranges.length == 0) 
    {
        return false;
    }
    var time_arr = Array();
    for(var i=0; i < time_ranges.length; i++)
    {
        var times = time_ranges[i].split('-');
        if(times.length != 2)
        {
            return false;
        }
        var mins1_str = trim(times[0]); 
        var mins2_str = trim(times[1]); 
        if( isNaN(mins1_str) || isNaN(mins2_str) )
        {
            return false;
        }
        var mins1 = parseInt(mins1_str);
        var mins2 = parseInt(mins2_str);
        time_arr.push(Array(mins1,mins2));
    }
    return time_arr;
}

/* end utility functions */

/* extending jquery here */
jQuery.fn.center = function() { 
    this.css('position', 'absolute'); 
    this.css('top', "50px");
    this.css('left', ($(window).width() - this.width()) / 2+$(window).scrollLeft()+"px");
    return this;
}

function hb_menu_url(id, name, cstring, lname)
{
    var cstr = hb_tokenize_cstring(cstring);
    var loc = hb_tokenize_cstring(lname); 
    var namestr = hb_tokenize_cstring(name);
    return '/restaurant-menu/'+id+'/'+namestr+'/'+cstr+'/'+loc;
}

function hb_review_url(id,name,cstring,lname)
{
    var cstr = hb_tokenize_cstring(cstring);
    var loc = hb_tokenize_cstring(lname);
    var namestr = hb_tokenize_cstring(name);
    return '/review-restaurant/'+namestr+'/'+id+'/'+cstr+'/'+loc;
}

function hb_restaurant_url(id,name,cstring, lname)
{
    var cstr = hb_tokenize_cstring(cstring);
    var loc = hb_tokenize_cstring(lname);
    var namestr = hb_tokenize_cstring(name);
    return '/restaurant/'+namestr+'/'+id+'/'+cstr+'/'+loc;
}

function hb_tokenize_cstring(cstring)
{
    var str = trim(cstring);
    str = str.toLowerCase();
    str = str.replace(/[^a-z0-9 -]/g,'');
    str = str.replace(/[\s-]+/g,'-');
    return str;
}

function hb_time_str(timestr)
{
    var rangeTokens = timestr.split(':');
    var isfirst = true;
    var str = '';
    for(var i=0; i < rangeTokens.length; i++) {
        if( !isfirst) { 
            str += ' and '; 
        }
        else { 
            isfirst = false;
        }
        var timeTokens = rangeTokens[i].split('-'); 
        if(timeTokens.length < 2) { 
            return timestr; 
        }
        var time1 = hb_time(timeTokens[0]);
        var time2 = hb_time(timeTokens[1]);
        str += time1 +' to '+time2;
    }
    return str;
}

function hb_time(minStr)
{
    var minsVal = parseInt(minStr);
    var ampm = 'AM';
    var hours = Math.floor(minsVal/60);
    if(hours >= 12) { 
        if(hours != 12) { 
            hours = hours - 12; 
        }
        ampm = 'PM'; 
    }
    var mins = minsVal % 60; 
    var str = hours+':'+mins+' '+ampm;
    return str;
}

var G_HB_CHK_HOME = { 
    hideSpeed : undefined, 
    homeURI : false, 
    isSet : function() { 
        var v = $.cookie('hb_home'); 
        if(v == null) { 
            return false; 
        }
        else { 
            if(v == this.homeURI) { 
                return true; 
            }
            else { 
                return false;
            }
        }
    }, 
    set : function() { 
        if(this.homeURI === false) { 
            return false; 
        }
        $.cookie('hb_home', this.homeURI, {expires:360, path:'/'}); 
        location.reload();
    }, 
    set2 : function () { 
        if(this.homeURI === false) { 
            return false; 
        }
        $.cookie('hb_home', this.homeURI, {expires:360, path:'/'}); 
    }, 
    init : function () { 
        var self = this; 
        $('#set-home-set').click(function(e) { 
            self.set();
            $('#set-home').hide(this.hideSpeed);
            return false;
        });
        $('.set-home-set').click(function(e) { 
            self.set2();
            return true;
        });
        $('#home-faq-checked').click(function(e) { 
            $.cookie('hb_faq', 't', {expires:360, path:'/'}); 
            window.open('/faq1');
        });
        if( ! this.isSet()) { 
            $('#set-home').show();
        }
        $.cookie('hb_visit', 't', {expires:360, path:'/'}); 
    }
};

jQuery.cookie=function(b,j,m){if(typeof j!="undefined"){m=m||{};if(j===null){j="";m.expires=-1}var e="";if(m.expires&&(typeof m.expires=="number"||m.expires.toUTCString)){var f;if(typeof m.expires=="number"){f=new Date();f.setTime(f.getTime()+(m.expires*24*60*60*1000))}else{f=m.expires}e="; expires="+f.toUTCString()}var l=m.path?"; path="+(m.path):"";var g=m.domain?"; domain="+(m.domain):"";var a=m.secure?"; secure":"";document.cookie=[b,"=",encodeURIComponent(j),e,l,g,a].join("")}else{var d=null;if(document.cookie&&document.cookie!=""){var k=document.cookie.split(";");for(var h=0;h<k.length;h++){var c=jQuery.trim(k[h]);if(c.substring(0,b.length+1)==(b+"=")){d=decodeURIComponent(c.substring(b.length+1));break}}}return d}};
