var _preloaded = new Array();

function body_unload()
{
    if ( typeof( GUnload ) == 'function' ) { GUnload(); }
}

function body_load()
{
    if ( typeof( onPageLoad ) == 'function' ) { onPageLoad(); }
}

function isFunctionExist(name)
{
    var ret = false;
    try {
        if (eval('typeof(' + name + ')') == 'function') ret = true;
    } catch (e) { }
    return ret;
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function find( id )
{
    if ( typeof( document.getElementById ) == 'function' )
        return document.getElementById( id );
    else if ( document.all )
        return eval( 'document.all.' + id );
        
    return null;
}

function trim(str)
{
    return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '')
}

function preload_img( list )
{
    var i;
    for ( i=0; i<list.length; i++ )
    {
        var img = new Image();
        img.src = list[ i ];
        _preloaded[_preloaded.length] = img;
    }
}

function mapNotFound(id)
{
    var d = find(id);
    if (d) d.innerHTML = 'Location not found';
}

function init_map_preview( id, lat, lon ) {
    var holder = find(id);
    if (holder != null) {
        if (GBrowserIsCompatible() && lat != null && lon != null) {
            var map = new GMap2(find(id));
            var point = new GLatLng(lat,lon);
            map.disableDragging();
            map.disableInfoWindow();
            map.disableDoubleClickZoom();
            map.disableContinuousZoom();
            map.disableScrollWheelZoom();
            map.setCenter(point, 13);
            
            map.addOverlay(new GMarker(point));
        } else {
            mapNotFound(id);
        }
    }
}

function init_map( id, lat, lon, holderID ) {
    if (GBrowserIsCompatible() && lat != null && lon != null) {
        var map = new GMap2(find(id));
        var point = new GLatLng(lat,lon);
        map.enableInfoWindow();
        map.enableDoubleClickZoom();
        map.enableContinuousZoom();
        map.disableScrollWheelZoom();
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());        
        map.setCenter(point, 13);
        
        var marker = new GMarker(point);
        map.addOverlay(marker);
        
        if (holderID) {
            var h = find(holderID);
            if (h) {
                var html = h.innerHTML;
                GEvent.addListener(marker,"click", function() {
                    map.openInfoWindowHtml(point, html);
                }); 
                map.openInfoWindowHtml(point, html);
            }
        }
    } else {
        mapNotFound(id);
    }
}

function GetCookie(name) {
    var start = document.cookie.indexOf(name+"=");
    var len = start+name.length+1;
    if (!start && (name != document.cookie.substring(0,name.length))) return null;
    if (start == -1) return null;
    var end = document.cookie.indexOf(";",len);
    if (end == -1) end = document.cookie.length;
    return unescape(document.cookie.substring(len,end));
}

function SetCookie(name,value,expires,path,domain,secure) {
    document.cookie = name + "=" +escape(value) +
        (expires ? ";expires=" + expires.toGMTString() : "") +
        (path ? ";path=" + path : "") +
        (domain ? ";domain=" + domain : "") +
        (secure ? ";secure" : "");
}

function DeleteCookie(name,path,domain) {
    if (GetCookie(name)) document.cookie = name + "=" +
        (path ? ";path=" + path : "") +
        (domain ? ";domain=" + domain : "") +
        ";expires=Thu, 01-Jan-70 00:00:01 GMT";
} 

function GetCellBoundary(id)
{
    var lat = ((Math.floor(id/36000)-9000)*100 - 49)/10000;
    var lon = ((id%36000-18000)*100 - 49)/10000;
    return {lat1:lat,lon1:lon,lat2:lat+0.01,lon2:lon+0.01};
}

function SelDD(dd,text)
{
    for (var i=0; i<dd.options.length; i++) dd.options[i].selected = (dd.options[i].text == text);
}

function SelDDVal(dd,val)
{
    for (var i=0; i<dd.options.length; i++) dd.options[i].selected = (dd.options[i].value == val);
}

function GetDDText(dd)
{
    return (dd.selectedIndex >= 0 ? dd.options[dd.selectedIndex].text : "");
}

function GetDDVal(dd)
{
    return (dd.selectedIndex >= 0 ? dd.options[dd.selectedIndex].value : "");
}

function SelDDFirst(dd)
{
    if (dd.options.length > 0) SelDD(dd, dd.options[0].text);
}

function GetValue(id)
{
    var ctl = $(id);
    return (ctl ? ctl.value : "");
}


function GetDDValue(id)
{
    var dd = $(id);
    return (dd ? GetDDVal(dd) : "");
}

function ClearDD(dd)
{
    for (var i=dd.options.length-1; i>=0; i--) dd.remove(i);
}

function go(url)
{
    document.location.href=url;
    return false;
}

function go_params(params)
{
    var url = document.location.href + (document.location.href.indexOf('?') == -1 ? '?' : '&') + params;
    return go(url);
}

function textbox_button(txtid, btnid) {
    var txt = $(txtid);
    var btn = $(btnid);
    
    if (txt && btn) txt.observe('keydown', function(event) { 
        var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
        if (keyCode == 13) {
            event.stop(); 
            btn.click();
        }
    });
}

function submitForm() {
    var frm = document.forms[0];
    if (frm) frm.submit();
}


