var win;

$(document).ready( function() {

    if (document.getElementById('TopicSubject')) {
        document.getElementById('TopicSubject').focus();
    } else if (document.getElementById('ReplyMessage')) {
            document.getElementById('ReplyMessage').focus();
    }


    if(document.getElementById('cakeSqlLog')) {
        $('a#acakeSqlLog').toggle(
            function(){  $('#cakeSqlLog').show();},
            function(){  $('#cakeSqlLog').hide();}
        );
    }

    $('a.external').each( function(){
            this.target='_blank';
            if( this.title == '' ) {  this.title = this.href; }
            this.title += ' [new window]';
    });

    $('a.popup').click(function() { popup(this.href,800,600); return false;});

    if (document.getElementById('keybrand') && document.getElementById('keyarea')) {
        livesearch();
    }

    if (document.getElementById('map')) {
        maphover();
    }

    if(document.getElementById('navigator')) {
        /*
        $('#navigator li.map a').click(function() {
            fName = this.href.replace('swear/','swear/bare/');
            $('#loading').show();
            $('#right').load(fName,maphover);
            return false;
        });
        */
    }
    if(document.getElementById('loading')) {
        $('#loading').hide();
    }
});


//common JS function
function popup(page,w,h) {

    var winl = (screen.width-w)/2;
    var wint = (screen.height-h)/2;

    var settings ='height='+h+', width='+w+', top='+wint+', left='+winl+', scrollbars=1, toolbar=0, resizable=1, modal=1';

    if(win && !win.closed) {
        win.close();
    }
    win=window.open(page,'popup',settings);

    if(window.focus) {
        win.window.focus();
    }
}

function noscroll(page,w,h) {

    var winl = (screen.width-w)/2;
    var wint = (screen.height-h)/2;

    var settings ='height='+h+', width='+w+', top='+wint+', left='+winl+', scrollbars=0, toolbar=0, resizable=0, modal=1';

    if(win && !win.closed) {
        win.close();
    }
    win=window.open(page,'popup',settings);

    if(window.focus) {
        win.window.focus();
    }
}


//change option elements of select oSel with lines from aLines 
//oSel must to be an select element 
//(use getElementById('id of select') in caller function
//aLines must to have all lines in format value###title 
//(lines without ### will be ignored)

function changeSelect(oSel,aLines) {
    var iSel=0;
    var opt; //array obtain after split('###')
    oSel.length=0;  //remove old elements
    for(var i=0;i<aLines.length;i++) {
        opt=aLines[i].split("###");
        if(opt.length >= 2) { //ignore line without ###
            oSel[iSel++]=new Option(opt[1],opt[0]);
        }
    }
}

function updater(id, state) {

    oImg  = document.getElementById(id);

    if(oImg) {
        if(state == "on") {
            oImg.src = oImg.src.replace(id+'-on.gif',id+'.gif');
        } else {
            oImg.src = oImg.src.replace(id+'.gif',id+'-on.gif');
        }
    }
}


var retFalse = function() {
    return false;
}

function livesearch() {

  //$('#search-submit').hide();

  var brandfield = document.getElementById('keybrand');
  var areafield  = document.getElementById('keyarea');

  var brandform   =  document.getElementById('searchbrand');
  var areaform   =  document.getElementById('searcharea');

  brandfield.setAttribute('autocomplete', 'off');
  areafield.setAttribute('autocomplete', 'off');

  brandform.onsubmit = retFalse;
  areaform.onsubmit  = retFalse;


  brandfield.onkeyup = function() {
    if (this.t) { clearTimeout(this.t); }
    this.t = setTimeout('branddoit()', 700);
  }

  areafield.onkeyup = function() {
    if (this.t) {  clearTimeout(this.t);  }
    this.t = setTimeout('areadoit()', 700)
  }


  brandfield.onfocus = function() {
    areafield.value = '';
    if (areafield.t) {  clearTimeout(areafield.t); }
    //$('#arearesults').html('<div class="explain">Enter region/city</div>');
    $('#arearesults').empty();
  }

  areafield.onfocus = function() {
    brandfield.value = '';
    if (brandfield.t) {
        clearTimeout(brandfield.t);
    }
    //$('#brandresults').html('<div class="explain">Enter brand</div>');
    $('#brandresults').empty();
  }
}

 var refreshBrandLinks = function() {
    //refreshResultLinks('#brandresults');
    $('#loading').hide();
 }
 var refreshAreaLinks = function() {
    
    //refreshResultLinks('#arearesults');
    $('#loading').hide();
 }


 function branddoit() {
    searchdoit('brand');
 }
 function areadoit() {
    searchdoit('area');
 }
 
 function searchdoit(divId) {
    var searchfield = document.getElementById('key'+divId);
    var keywords = searchfield.value;
    if(keywords) {
        var sform = document.getElementById('search'+divId);
        var filename = sform.action.replace('swear/','swear/bare/')+'/'+escape(keywords);
        $('#loading').show();
        if(divId == 'brand') {
            $('#'+divId+'results').load(filename,refreshBrandLinks);
        } else {
            $('#'+divId+'results').load(filename,refreshAreaLinks);
        }
    } else {
        $('#'+divId+'results').empty();
    }
 }


 function refreshResultLinks(divId) {
    $(divId+' dd').find('a').click(
        function() {
            var sCont = this.href.replace('swear/','swear/bare/');
            $(divId+' dd').find('a').each(function() {this.className=''});
            this.className = 'on';
            $('#loading').show();
            $('#right').load(sCont,refreshRightLinks)
            return false;
        }
    );

    $(divId+' dt').find('a').click(
        function() {
            var sCont = this.href.replace('swear/','swear/bare/');
            $('#loading').show();
            if(divId == '#brandresults') {
                $(divId).load(sCont,refreshBrandLinks);
            } else {
                $(divId).load(sCont,refreshAreaLinks);
            }
            return false;
        }
    );
    $('#loading').hide();
 }


 var refreshRightLinks = function() {

    $('#right').find('a').each( function() {
        if(this.rel == 'external') {
            this.target = '_blank';
            if( this.title == '' ) {
                this.title = this.href;
            }
            this.title += ' [open in new window]';
        } else {
            this.onclick = function() {
                $('#loading').show();
                hideresults();
                var sCont = this.href.replace('swear/','swear/bare/');
                $('#right').load(sCont,refreshRightLinks);
                return false;
        }
      }
    });
    $('#loading').hide();
 }
 
function hideresults() {
    $('#keybrand').val('');
    $('#keyarea').val('');
    //$('#brandresults').html('<div class="explain">Enter brand</div>');
    //$('#arearesults').html('<div class="explain">Enter region/city</div>');
    $('#brandresults').empty();
    $('#arearesults').empty();

}

var maphover = function() {
    // show hovered city and menu
    hideresults();

    /*
    $('a#brands').click(function() {
        $('#loading').show();
        fName = this.href.replace('swear/','swear/bare/');
        $('#right').load(fName,maphover);
        return false;
    });
    $('a#stores').click(function() {
        $('#loading').show();
        fName = this.href.replace('swear/','swear/bare/');
        $('#right').load(fName,maphover);
        return false;
    });
    */
    $('ul#map li').each(function() {
        var anch  = document.getElementById('a'+this.id);
        anch.onclick = function() {
            return false;
        }
        anch.title='';
        this.fName = anch.href.replace('swear/','swear/bare/').replace('/map/','/livesearchmap/');
        this.cont  = document.getElementById('c'+this.id);
        $(this).hover(
            function() {
                if (this.t) { clearTimeout(this.t);}
                this.t = setTimeout('loadinmap("'+this.id+'")', 300);
            },
            function() {
                if (this.t) { clearTimeout(this.t); }
                this.t = setTimeout('removefrommap("'+this.id+'")', 300);
            }
       );
    });
    $('#loading').hide();
}

function loadinmap(idLi) {
    var oLi=document.getElementById(idLi);
    $('#loading').show();
    $(oLi.cont).load(oLi.fName,refreshMapLinks);
}

function removefrommap(idLi) {
    var oLi=document.getElementById(idLi);
    oLi.cont.innerHTML = '';
}

var refreshMapLinks = function(idLi) {
    /*
    $('#right dd').find('a').click(
        function() {
            $('#loading').show();
            fName = this.href.replace('swear/','swear/bare/');
            $('#right').load(fName,refreshRightLinks);
            return false;
        }
    );
    */
    $('#loading').hide();
}

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else {
        var expires = "";
    }
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}
