// Javascript file to generate chart data for water sites

var viewportwidth = null;
var viewportheight = null;

if (typeof window.innerWidth != 'undefined')
{
  viewportwidth = window.innerWidth,
  viewportheight = window.innerHeight
}
else if (typeof document.documentElement != 'undefined'
  && typeof document.documentElement.clientWidth !=
  'undefined' && document.documentElement.clientWidth != 0)
{
  viewportwidth = document.documentElement.clientWidth,
  viewportheight = document.documentElement.clientHeight
}
else
{
  viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
  viewportheight = document.getElementsByTagName('body')[0].clientHeight
}

function chart_gen(title,site_base,type,sites) {

    var scrOfX = 0, scrOfY = 0;

    if( typeof( window.pageYOffset ) == 'number' ) {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
    } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
    }
    
    //alert("Y: " + scrOfY + "\nX: " + scrOfX + "\nviewheight: " + viewportheight + "\nviewwidth: " + viewportwidth);

    $("#chart_display").css({'visibility' : 'visible', 'display' : 'inline', 'top' : ((scrOfY+(viewportheight/2))-176)+'px', 'left' : ((scrOfX+(viewportwidth/2))-263)+'px'});
    $("#lastUpdate").html("");
    document.getElementById("status").style.visibility = "visible";
    document.getElementById("status_text").style.visibility = "visible";
    document.getElementById("chart").innerHTML = "";
    document.getElementById("status_text").innerHTML = "...Retrieving Data for " + title;
    
    document.getElementById("title").innerHTML = title + " (click and hold to drag)";
    
    var req_count = 0;
    $("#chCont").html(site_base+type);
    
    var sitesSuff = sites;
    var suffHolder = new Array();
    //var sitesSuff = new Array();
    //sitesSuff = [1,2,3,4,5];
    
    for (i = 0; i < sitesSuff.length; i++) {
        var val = sitesSuff[i];
        suffHolder[val] = 1;
    }
    
    var ajaxRequest = new Array();
    var url = new Array();
    var chtt = "";
    if (type == "rt") { chtt = "Real-time+Values" }
    else if (type == "daily" ) { chtt = "Daily+Values" }
    else if (type == "field" ) { chtt = "Field+Measured+Values" }
    var chart_url = "http://chart.apis.google.com/chart?&chtt="+chtt+"&cht=lxy&chd=t:"; //&chds=0,1990,2010|1,40,55"; //&chl=Hello|World
    var chart_formatting = "&chco=ff0000,00ff00,0000ff,ff9900,7300d4,ee1289&chm=o,ff0000,0,-1,8|d,00ff00,1,-1,8|s,0000ff,2,-1,5|x,ff9900,3,-1,8|c,7300d4,4,-1,8|o,ee1289,5,-1,8&chs=469x291&chxt=x,y,x,y" //&chm=o,ff9900,0,-1,10.0|d,ff9900,1,-1,10.0|s,ff9900,0,-1,10.0|c,ff9900,1,-1,10.0|a,ff9900,1,-1,10.0" //&chxr=0,1990,2010|1,40,55"//&chxp=0,25,50,75|1,25,50,75"//&chxl=0:|1995|2000|2005|1:|45|50|55|
    var chart_url_part = new Array();
    
    var x_value = new Array();
    var y_value = new Array();
    
    var x_min = new Array();
    var x_max = new Array();
    var y_min = new Array();
    var y_max = new Array();
    
    var yr_lbl = new Array();
    var yr_lbl_format = "&chxl=0:|";
    var yr_pos_format = "&chxp=0";
    var yr_lbl_add = "";
    
    var field_lbl_set = new Array();
    var daily_yrlbl_set = new Array();
    var rt_tlbl_set = new Array();
    
    for (i = 0; i <= sitesSuff.length-1; i++) {
    
        var suff = sitesSuff[i];
        
        url[i] = "../scripts/php_host.php?site_no=" + escape(site_base + suff) + "&ind=" + suff + "&type=" + type + "&rand=" + (new Date()).getTime();
//        alert(url[i]);
//        return;
        //url[i] = "http://nwis.waterdata.usgs.gov/ca/nwis/gwlevels?site_no=" + site_base + i + "&agency_cd=USGS&format=rdb&Access=0" + "&rand=" + (new Date()).getTime();
        //url[i] = "./" + site_base + i + ".txt?rand=" + (new Date()).getTime();
        ajaxRequest[i] = new Ajax();
        
        // Function to receive data sent from the server
        var handData = function(str) {
            //document.getElementById("dummy").innerHTML = str;
            
            var data = str;
            
            var ind_get = data.split("\n");
            var ind = ind_get[0];
            
            var reqCtl = $("#chCont").html();
            if (reqCtl == site_base+type) { document.getElementById("status_text").innerHTML += "<br />Loading site " + site_base + ind; }
            
            var info = data.split("agency_cd\t");
            var points = data.split("USGS\t");
            var top_loop = points.length - 1;
            var loop_start;
            
            if (type == "rt") { var loop_size = parseInt(135/sitesSuff.length); }
            else { var loop_size = parseInt(180/sitesSuff.length); }
            //statement for if loop_size < 30, then different labeling for daily values ...???/
            if ((top_loop-loop_size) < 1) {
                loop_start = 1;
            } else {
                loop_start = top_loop - loop_size;
            }
            
            var count = 0;
            var no_data = 0;
            x_set = "";
            y_set = "";
            
            if (points[1] != undefined) {
            
                var t = points[1].split("\t");
                var site = t[0];
                var site_length = site.length;
                
                //Gets x and y values for data points
                for (j = loop_start; j <= top_loop; j++) {
                    var point_xy = points[j].split("\t");
                    //var days = 30;
                    if (type == "field") {
                        var x = point_xy[1];
                        var x_year = x.split("-");
                        field_lbl_set[j-loop_start] = point_xy[1];
                        var days = dayDivf(x_year[1]);
                        x = parseFloat(x_year[0]) + parseFloat((parseFloat(x_year[1]-1) + parseFloat(x_year[2])/days)/12);
                    } else if (type == "daily") {
                        var x = point_xy[1];
                        var x_year = x.split("-");
                        daily_yrlbl_set[j-loop_start] = point_xy[1];
                        var days = dayDivf(x_year[1]);
                        x = parseFloat(x_year[0]) + parseFloat((parseFloat(x_year[1]-1) + parseFloat(x_year[2])/days)/12);
                    } else if (type == "rt") { 
                        var x = point_xy[1];
                        var x_date = x.split(" ");
                        var x_year = x_date[0].split("-");
                        var x_time = x_date[1].split(":");
                        rt_tlbl_set[j-loop_start] = point_xy[1];
                        var days = dayDivf(x_year[1]);
                        x = parseFloat(x_year[0]) + parseFloat((parseFloat(x_year[1]-1) + ((parseFloat(x_year[2]-1)+((x_time[0]*1+(x_time[1]*1/60))/24)))/days)/12);
                    }
                    
                    if (type == "field") { var y = parseFloat(point_xy[3]); } 
                    else if (type == "daily" || type == "rt") { var y = parseFloat(point_xy[2]); }
                    
                    if (j < top_loop) {
                        x_set = x_set + x + ",";
                        //temp[i] = x;
                    } else if (j == top_loop) {
                        x_set = x_set + x;
                        //temp[i] = x;
                    }
                    if (j < top_loop) {
                        if (y == "" || isNaN(y)) {
                            y_set = y_set + "-1,";
                        } else {
                            y_set = y_set + y + ",";
                        }
                    } else if (j == top_loop) {
                        if (y == "" || isNaN(y)) {
                            y_set = y_set + "-1";
                        } else {
                            y_set = y_set + y;
                        }
                    }
                    
                }
                //alert("x_set: " + x_set + "\nyset: " + y_set);
                
                temp_x = x_set.split(",");
                temp_y = y_set.split(",");
                for_sort_x = temp_x;
                for_sort_y = temp_y;
                temp_x_2 = for_sort_x.sort(sortNumber);
                temp_y_2 = for_sort_y.sort(sortNumber);
                
                x_min[ind-1] = temp_x_2[0];
                x_max[ind-1] = temp_x_2[temp_x.length - 1];
                y_min[ind-1] = temp_y_2[temp_y.length - 1];
                //y_max[ind-1] = temp_y_2[0];
                
                var tcheck = 0;
                var c = 0;
                while (tcheck < 1) {
                    if (temp_y_2[c] == -1) {
                        tcheck += 0;
                    } else {
                        y_max[ind-1] = temp_y_2[c];
                        tcheck += 1;
                    }
                    c++;
                }
                //alert(y_min[ind-1]);
                
                temp_x = x_set.split(",");
                temp_y = y_set.split(",");
                //min_x = 1990; //temp_x_2[0];
                //max_x = 2010; //temp_x_2[temp_x_2.length - 1];
                //min_y = 10; //temp_y_2[0];
                //max_y = 60; //temp_y_2[temp_y_2.length - 1];
                
                x_value[ind] = new Array();
                y_value[ind] = new Array();
              
                for (k = 0; k < temp_x.length; k++) {
                
                    x_value[ind][k] = temp_x[k];
                    y_value[ind][k] = temp_y[k];
                    
                }
                
                req_count = req_count + 1;
            
            } else { 
            
                x_value[ind] = new Array();
                y_value[ind] = new Array();
            
                x_value[ind][0] = -1;
                y_value[ind][0] = -1;
                
                req_count = req_count + 1;
                
            }
            
            if (req_count == sitesSuff.length) {
            
                var reqCtl = $("#chCont").html();
                if (reqCtl == site_base+type) { document.getElementById("status_text").innerHTML += "<br />Drawing chart"; }
                
                var dchTog = 0;
                for (i = 0; i < suffHolder.length; i++) {
                    if (suffHolder[i] == 1) {
                        if (x_value[i][0] != 1) {
                            dchTog = 1;
                        }
                    }
                }
                
                if (dchTog == 1 && x_min.length != 0) {
                //alert(x_value[1][0]+x_value[2][0]+x_value[3][0]+x_value[4][0]+x_value[5][0]);
                    var temp_x_min = x_min.sort(sortNumber);
                    var temp_y_min = y_min.sort(sortNumber);
                    var temp_x_max = x_max.sort(sortNumber);
                    var temp_y_max = y_max.sort(sortNumber);
                    min_x = parseFloat(temp_x_min[0]);//.toFixed(1);
                    var ymLen = y_min.length-1;
                    while (temp_y_min[ymLen] == "" || temp_y_min[ymLen] == undefined) { ymLen = ymLen - 1; }
                    var xmLen = x_min.length-1;
                    while (temp_x_max[xmLen] == "" || temp_x_max[xmLen] == undefined) { xmLen = xmLen - 1; }
                    min_y = parseFloat(temp_y_min[ymLen]).toFixed(1);
                    min_y = parseFloat(min_y) + 0.1;
                    max_x = parseFloat(temp_x_max[xmLen]);//.toFixed(1);
                    max_y = parseInt(temp_y_max[0]);
                    
                    if (type == "rt") {
                        var tempInit = rt_tlbl_set[0].split(" ");
                        var tempFinal = rt_tlbl_set[rt_tlbl_set.length-1].split(" ");
                        //tempInit = tempInit.split(",");
                        //tempFinal = tempFinal.split(",");
                        var tInit = tempInit[0].split("-");
                        var tFinal = tempFinal[0].split("-");
                        var year = new Array();
                        var month = new Array();
                        var day = new Array();
                        year[0] = tInit[0];
                        year[1] = tFinal[0];
                        month[0] = tInit[1];
                        month[1] = tFinal[1];
                        day[0] = tInit[2];
                        day[1] = tFinal[2];
                        
                        var rt_year = rt_tlbl_set[0].split(" ");
                        var x_year = rt_year[0].split("-");
                        var x_time = rt_year[1].split(":");
                        
                        var rt_year_end = rt_tlbl_set[rt_tlbl_set.length-1].split(" ");
                        var x_year_end = rt_year_end[0].split("-");
                        var x_time_end = rt_year_end[1].split(":");
                        
                        var days = dayDivf(x_year[1]);
                        min_x = parseFloat(x_year[0]) + parseFloat((parseFloat(x_year[1]-1) + ((parseFloat(x_year[2]-1)+((x_time[0]*1+(x_time[1]*1/60))/24)))/days)/12);
                        var days = dayDivf(x_year_end[1]);
                        max_x = parseFloat(x_year_end[0]) + parseFloat((parseFloat(x_year_end[1]-1) + ((parseFloat(x_year_end[2]-1)+((x_time_end[0]*1+(x_time_end[1]*1/60))/24)))/days)/12);
                        
                    } 
                    
                    x_range = max_x - min_x;
                    y_range = max_y - min_y;
                    
                    for (i = 0; i <= sitesSuff.length-1; i++) {
                    
                        var l = sitesSuff[i];
                        
                        for (m = 0; m <= (x_value[l].length-1); m++) {
                            x_value[l][m] = (x_value[l][m] - min_x)*100/x_range;
                            //adjust for realtime values?????**************************
                            if (type == "rt") {
                                x_value[l][m] = parseFloat(x_value[l][m]).toFixed(1);
                                //x_value[l][m] = parseInt(x_value[l][m]);
                            } else {
                                x_value[l][m] = parseInt(x_value[l][m]);
                            }
                            //alert(x_value[l][m]);
                            //return;
                        }
                        for (m = 0; m <= (y_value[l].length-1); m++) {
                            if (y_value[l][m] == -1 || y_value[l][m] == "-1") {
                                y_value[l][m] = -1;
                            } else {
                                y_value[l][m] = (y_value[l][m] - min_y)*100/y_range;
                                y_value[l][m] = parseFloat(y_value[l][m]).toFixed(1); //parseInt(y_value[l][m]);
                            }
                        }
                        //alert(y_value[l]);
                        
                        if (l == sitesSuff[0]) { 
                            chart_url_part[l] = x_value[l] + "|" + y_value[l];
                        } else {
                            chart_url_part[l] = "|" + x_value[l] + "|" + y_value[l];
                        }
                        
                    }
                    
                    //x (year) labeling if statement
                    if (type == "field") {
                    
                        $("#lastUpdate").html("Last update: " + field_lbl_set[field_lbl_set.length-1]);
                        
                        if ((max_x-min_x) > 2) {
                            
                            yr_lbl[0] = parseInt(min_x+1) + "";
                            yr_lbl[1] = parseInt(((max_x-min_x)/4)+min_x) + "";
                            yr_lbl[2] = parseInt(((max_x-min_x)/2)+min_x) + "";
                            yr_lbl[3] = parseInt((3*(max_x-min_x)/4)+min_x) + "";
                            yr_lbl[4] = parseInt(max_x) + "";
                        
                            for (m = 0; m <= 4; m++) {
                                if (yr_lbl[m].length > 0) {
                                    if (m == 0) {
                                        yr_lbl_format += yr_lbl[m] + "|";
                                        yr_pos_format += "," + yr_lbl[m];
                                    } else {
                                        if (yr_lbl[m] == yr_lbl[m-1]) {
                                        
                                        } else {
                                            yr_lbl_format += yr_lbl[m] + "|";
                                            yr_pos_format += "," + yr_lbl[m];
                                        }
                                    }
                                }
                            }
                            
                            yr_lbl_format += "2:|Year|3:|Water-level|below+land|surface+(ft)|";
                            yr_pos_format += "|2,50|3,55,50,45";
                            
                        } else {
                            temp_low = parseInt(min_x) + "";
                            temp_high = parseInt(max_x) + "";
                            
                            if (temp_low == temp_high) {
                                yr_lbl_add = "(" + temp_low + ")";
                                if ((parseInt(temp_low) + 0.25) > min_x) {
                                    yr_lbl[0] = parseInt(temp_low) + 0.25;
                                    yr_lbl_format += "April|";
                                    yr_pos_format += "," + yr_lbl[0];
                                } else if ((parseInt(temp_low) + 0.5) > min_x) {
                                    yr_lbl[0] = parseInt(temp_low) + .5 + "";
                                    yr_lbl_format += "July|";
                                    yr_pos_format += "," + yr_lbl[0];
                                } else if ((parseInt(temp_low) + 0.75) > min_x) {
                                    yr_lbl[0] = parseInt(temp_low) + .75 + "";
                                    yr_lbl_format += "October|";
                                    yr_pos_format += "," + yr_lbl[0];
                                }
                                if ((parseInt(temp_high) + 0.75) < max_x) {
                                    yr_lbl[1] = parseInt(temp_high) + .75 + "";
                                    yr_lbl_format += "October|";
                                    yr_pos_format += "," + yr_lbl[1];
                                } else if ((parseInt(temp_high) + 0.5) < max_x) {
                                    yr_lbl[1] = parseInt(temp_high) + .5 + "";
                                    yr_lbl_format += "July|";
                                    yr_pos_format += "," + yr_lbl[1];
                                } else if ((parseInt(temp_high) + 0.25) < max_x) {
                                    yr_lbl[1] = parseInt(temp_high) + .25 + "";
                                    yr_lbl_format += "April|";
                                    yr_pos_format += "," + yr_lbl[1];
                                }
                            } else if (temp_high > temp_low) {
                                if ((parseInt(temp_low) + 0.25) > min_x) {
                                    yr_lbl[0] = parseInt(temp_low) + 0.25;
                                    yr_lbl_format += "April (" + temp_low + ")|";
                                    yr_pos_format += "," + yr_lbl[0];
                                } else if ((parseInt(temp_low) + 0.5) > min_x) {
                                    yr_lbl[0] = parseInt(temp_low) + .5 + "";
                                    yr_lbl_format += "July (" + temp_low + ")|";
                                    yr_pos_format += "," + yr_lbl[0];
                                } else if ((parseInt(temp_low) + 0.75) > min_x) {
                                    yr_lbl[0] = parseInt(temp_low) + .75 + "";
                                    yr_lbl_format += "October (" + temp_low + ")|";
                                    yr_pos_format += "," + yr_lbl[0];
                                }
                                if ((parseInt(temp_high) + 0.75) < max_x) {
                                    yr_lbl[1] = parseInt(temp_high) + .75 + "";
                                    yr_lbl_format += "October (" + temp_high + ")|";
                                    yr_pos_format += "," + yr_lbl[1];
                                } else if ((parseInt(temp_high) + 0.5) < max_x) {
                                    yr_lbl[1] = parseInt(temp_high) + .5 + "";
                                    yr_lbl_format += "July (" + temp_high + ")|";
                                    yr_pos_format += "," + yr_lbl[1];
                                } else if ((parseInt(temp_high) + 0.25) < max_x) {
                                    yr_lbl[1] = parseInt(temp_high) + .25 + "";
                                    yr_lbl_format += "April (" + temp_high + ")|";
                                    yr_pos_format += "," + yr_lbl[1];
                                }
                                
                                yr_lbl[2] = parseInt(temp_high);
                                yr_lbl_format += "Jan (" + temp_high + ")|";
                                yr_pos_format += "," + yr_lbl[2].toFixed(2);
                            } 
                            
                            yr_lbl_format += "2:|Year+" + yr_lbl_add + "|3:|Water-level|below+land|surface+(ft)|";
                            yr_pos_format += "|2,50|3,55,50,45";
                            
                        }
                    } else if (type == "daily") {
                        
                        var tempInit = daily_yrlbl_set[0].split("-");
                        var tempFinal = daily_yrlbl_set[daily_yrlbl_set.length-1].split("-");
                        var year = new Array();
                        var month = new Array();
                        var day = new Array();
                        year[0] = tempInit[0];
                        year[1] = tempFinal[0];
                        month[0] = tempInit[1];
                        month[1] = tempFinal[1];
                        day[0] = tempInit[2];
                        day[1] = tempFinal[2];
                        
                        $("#lastUpdate").html("Last update: " + daily_yrlbl_set[daily_yrlbl_set.length-1]);
                        
                        temp_low = parseInt(min_x) + "";
                        temp_high = parseInt(max_x) + "";
                        
                        if (year[0] == year[1]) {
                        
                            yr_lbl_add = "(year:+" + year[0] + ")";
                            var pos;
                                
                            if ( parseInt(month[0])+2 <= parseInt(month[1])) {
                                if (min_x < parseInt(year[0]) && parseInt(year[0]) < max_x) { 
                                    yr_lbl_format += "Jan|";
                                    pos = parseInt(year[0]);
                                    yr_pos_format += "," + pos;
                                }
                                if (min_x < parseInt(year[0])+.08333333 && parseInt(year[0])+.08333333 < max_x) {
                                    yr_lbl_format += "Feb|";
                                    pos = parseInt(year[0])+.08333333;
                                    yr_pos_format += "," + pos; 
                                }
                                if (min_x < parseInt(year[0])+.16666667 && parseInt(year[0])+.16666667 < max_x) {
                                    yr_lbl_format += "Mar|";
                                    pos = parseInt(year[0])+.16666667;
                                    yr_pos_format += "," + pos; 
                                }
                                if (min_x < parseInt(year[0])+.25 && parseInt(year[0])+.25 < max_x) {
                                    yr_lbl_format += "Apr|";
                                    pos = parseInt(year[0])+.25;
                                    yr_pos_format += "," + pos; 
                                }
                                if (min_x < parseInt(year[0])+(1/3) && parseInt(year[0])+(1/3) < max_x) {
                                    yr_lbl_format += "May|";
                                    pos = parseInt(year[0])+.3333333; 
                                    yr_pos_format += "," + pos; 
                                } 
                                if (min_x < parseInt(year[0])+.4166667 && parseInt(year[0])+.4166667 < max_x) {
                                    yr_lbl_format += "Jun|";
                                    pos = parseInt(year[0])+.4166667;
                                    yr_pos_format += "," + pos;
                                } 
                                if (min_x < parseInt(year[0])+.5 && parseInt(year[0])+.5 < max_x) {
                                    yr_lbl_format += "Jul|";
                                    pos = parseInt(year[0])+.5;
                                    yr_pos_format += "," + pos; 
                                }
                                if (min_x < parseInt(year[0])+.5833337 && parseInt(year[0])+.5833337 < max_x) {
                                    yr_lbl_format += "Aug|";
                                    pos = parseInt(year[0])+.5833337;
                                    yr_pos_format += "," + pos; 
                                } 
                                if (min_x < parseInt(year[0])+.6666667 && parseInt(year[0])+.6666667 < max_x) {
                                    yr_lbl_format += "Sep|";
                                    pos = parseInt(year[0])+.6666667; 
                                    yr_pos_format += "," + pos;
                                }
                                if (min_x < parseInt(year[0])+.75 && parseInt(year[0])+.75 < max_x) {
                                    yr_lbl_format += "Oct|";
                                    pos = parseInt(year[0])+.75; 
                                    yr_pos_format += "," + pos; 
                                }
                                if (min_x < parseInt(year[0])+.8333333 && parseInt(year[0])+.8333333 < max_x) {
                                    yr_lbl_format += "Nov|";
                                    pos = parseInt(year[0])+.8333333; 
                                    yr_pos_format += "," + pos; 
                                }
                                if (min_x < parseInt(year[0])+.9166667 && parseInt(year[0])+.9166667 < max_x) {
                                    yr_lbl_format += "Dec|";
                                    pos = parseInt(year[0])+.9166667; 
                                    yr_pos_format += "," + pos; 
                                } 
                            
                            } else { //day[0] > d[1] || day[0] == 1
                                var lblct = 0;
                                var lbltrack = new Array();
                                if (min_x < parseInt(year[0]) && parseInt(year[0]) < max_x) { 
                                    yr_lbl_format += "Jan|";
                                    pos = parseInt(year[0]);
                                    yr_pos_format += "," + pos;
                                    lblct += 1;
                                }
                                if (min_x < parseInt(year[0])+.08333333 && parseInt(year[0])+.08333333 < max_x) {
                                    yr_lbl_format += "Feb|";
                                    pos = parseInt(year[0])+.08333333;
                                    yr_pos_format += "," + pos; 
                                    lblct += 1;
                                }
                                if (min_x < parseInt(year[0])+.16666667 && parseInt(year[0])+.16666667 < max_x) {
                                    yr_lbl_format += "Mar|";
                                    pos = parseInt(year[0])+.16666667;
                                    yr_pos_format += "," + pos; 
                                    lblct += 1;
                                }
                                if (min_x < parseInt(year[0])+.25 && parseInt(year[0])+.25 < max_x) {
                                    yr_lbl_format += "Apr|";
                                    pos = parseInt(year[0])+.25;
                                    yr_pos_format += "," + pos; 
                                    lblct += 1;
                                }
                                if (min_x < parseInt(year[0])+(1/3) && parseInt(year[0])+(1/3) < max_x) {
                                    yr_lbl_format += "May|";
                                    pos = parseInt(year[0])+.3333333; 
                                    yr_pos_format += "," + pos; 
                                    lblct += 1;
                                } 
                                if (min_x < parseInt(year[0])+.4166667 && parseInt(year[0])+.4166667 < max_x) {
                                    yr_lbl_format += "Jun|";
                                    pos = parseInt(year[0])+.4166667;
                                    yr_pos_format += "," + pos;
                                    lblct += 1;
                                } 
                                if (min_x < parseInt(year[0])+.5 && parseInt(year[0])+.5 < max_x) {
                                    yr_lbl_format += "Jul|";
                                    pos = parseInt(year[0])+.5;
                                    yr_pos_format += "," + pos; 
                                    lblct += 1;
                                }
                                if (min_x < parseInt(year[0])+.5833337 && parseInt(year[0])+.5833337 < max_x) {
                                    yr_lbl_format += "Aug|";
                                    pos = parseInt(year[0])+.5833337;
                                    yr_pos_format += "," + pos; 
                                    lblct += 1;
                                } 
                                if (min_x < parseInt(year[0])+.6666667 && parseInt(year[0])+.6666667 < max_x) {
                                    yr_lbl_format += "Sep|";
                                    pos = parseInt(year[0])+.6666667; 
                                    yr_pos_format += "," + pos;
                                    lblct += 1;
                                }
                                if (min_x < parseInt(year[0])+.75 && parseInt(year[0])+.75 < max_x) {
                                    yr_lbl_format += "Oct|";
                                    pos = parseInt(year[0])+.75; 
                                    yr_pos_format += "," + pos; 
                                    lblct += 1;
                                }
                                if (min_x < parseInt(year[0])+.8333333 && parseInt(year[0])+.8333333 < max_x) {
                                    yr_lbl_format += "Nov|";
                                    pos = parseInt(year[0])+.8333333; 
                                    yr_pos_format += "," + pos; 
                                    lblct += 1;
                                }
                                if (min_x < parseInt(year[0])+.9166667 && parseInt(year[0])+.9166667 < max_x) {
                                    yr_lbl_format += "Dec|";
                                    pos = parseInt(year[0])+.9166667; 
                                    yr_pos_format += "," + pos; 
                                    lblct += 1;
                                }         
                                
                                if (lblct == 1) {
                                    var lblFirst = 12*(min_x-year[0])+1;
                                    var days = dayDivf(parseInt(lblFirst));
                                    dayPortion = parseInt((lblFirst-parseInt(lblFirst))*days);
                                    
                                    if (parseInt(lblFirst) == 1) { yr_lbl_format += "Jan+"+dayPortion+"|"; }
                                    else if (parseInt(lblFirst) == 2) { yr_lbl_format += "Feb+"+dayPortion+"|"; }
                                    else if (parseInt(lblFirst) == 3) { yr_lbl_format += "Mar+"+dayPortion+"|"; }
                                    else if (parseInt(lblFirst) == 4) { yr_lbl_format += "Apr+"+dayPortion+"|"; }
                                    else if (parseInt(lblFirst) == 5) { yr_lbl_format += "May+"+dayPortion+"|"; }
                                    else if (parseInt(lblFirst) == 6) { yr_lbl_format += "Jun+"+dayPortion+"|"; }
                                    else if (parseInt(lblFirst) == 7) { yr_lbl_format += "Jul+"+dayPortion+"|"; }
                                    else if (parseInt(lblFirst) == 8) { yr_lbl_format += "Aug+"+dayPortion+"|"; }
                                    else if (parseInt(lblFirst) == 9) { yr_lbl_format += "Sep+"+dayPortion+"|"; }
                                    else if (parseInt(lblFirst) == 10) { yr_lbl_format += "Oct+"+dayPortion+"|"; }
                                    else if (parseInt(lblFirst) == 11) { yr_lbl_format += "Nov+"+dayPortion+"|"; }
                                    else if (parseInt(lblFirst) == 12) { yr_lbl_format += "Dec+"+dayPortion+"|"; }
                                    
                                    yr_pos_format += "," + min_x;
                                } else if (lblct == 0) {
                                    var lblFirst = 12*(min_x-year[0])+1;
                                    var lblLast = 12*(max_x-year[0])+1;
                                    var days = dayDivf(parseInt(lblFirst));
                                    dayPortion = parseInt((lblFirst-parseInt(lblFirst))*days);
                                    dayPortion2 = parseInt((lblLast-parseInt(lblLast))*days)+1;
                                    
                                    if (parseInt(lblFirst) == 1) { yr_lbl_format += "Jan+"+dayPortion+"|Jan+"+dayPortion2+"|"; }
                                    else if (parseInt(lblFirst) == 2) { yr_lbl_format += "Feb+"+dayPortion+"|Feb+"+dayPortion2+"|"; }
                                    else if (parseInt(lblFirst) == 3) { yr_lbl_format += "Mar+"+dayPortion+"|Mar+"+dayPortion2+"|"; }
                                    else if (parseInt(lblFirst) == 4) { yr_lbl_format += "Apr+"+dayPortion+"|Apr+"+dayPortion2+"|"; }
                                    else if (parseInt(lblFirst) == 5) { yr_lbl_format += "May+"+dayPortion+"|May+"+dayPortion2+"|"; }
                                    else if (parseInt(lblFirst) == 6) { yr_lbl_format += "Jun+"+dayPortion+"|Jun+"+dayPortion2+"|"; }
                                    else if (parseInt(lblFirst) == 7) { yr_lbl_format += "Jul+"+dayPortion+"|Jul+"+dayPortion2+"|"; }
                                    else if (parseInt(lblFirst) == 8) { yr_lbl_format += "Aug+"+dayPortion+"|Aug+"+dayPortion2+"|"; }
                                    else if (parseInt(lblFirst) == 9) { yr_lbl_format += "Sep+"+dayPortion+"|Sep+"+dayPortion2+"|"; }
                                    else if (parseInt(lblFirst) == 10) { yr_lbl_format += "Oct+"+dayPortion+"|Oct+"+dayPortion2+"|"; }
                                    else if (parseInt(lblFirst) == 11) { yr_lbl_format += "Nov+"+dayPortion+"|Nov+"+dayPortion2+"|"; }
                                    else if (parseInt(lblFirst) == 12) { yr_lbl_format += "Dec+"+dayPortion+"|Dec+"+dayPortion2+"|"; }
                                    
                                    yr_pos_format += "," + min_x + "," + max_x;
                                }
                                
                            }
                         
                        } else {
                            if (day[0] < day[1] && day[0] != 1) {
                                if (month[0] == 12) { yr_lbl_format += "Dec+"+(day[0]-0)+"|Jan+("+year[1]+")|"; }
                                
                                yr_lbl[0] = parseInt(temp_low) + (month[0]-1)/12;
                                yr_pos_format += "," + yr_lbl[0].toFixed(2);
                                
                                yr_lbl[1] = parseInt(temp_low) + (month[0])/12;
                                yr_pos_format += "," + yr_lbl[1].toFixed(2);
                            } else {
                                if (month[0] == 11) { yr_lbl_format += "Dec|Jan+("+year[1]+")|"; }
                                if (month[0] == 12) { yr_lbl_format += "Jan+("+year[1]+")|Feb|"; }
                                
                                yr_lbl[0] = parseInt(temp_low) + (month[0])/12;
                                yr_pos_format += "," + yr_lbl[0].toFixed(2);
                                
                                yr_lbl[1] = parseInt(temp_low) + ((month[0]*1)+1)/12;
                                yr_pos_format += "," + yr_lbl[1].toFixed(2);
                            }
                        }
                        
                        yr_lbl_format += "2:|Date+"+yr_lbl_add+"|3:|Water-level|below+land|surface+(ft)|";
                        yr_pos_format += "|2,50|3,55,50,45";
                            
                    } else if (type == "rt") {
                        
                        var tempInit = rt_tlbl_set[0].split(" ");
                        var tempFinal = rt_tlbl_set[rt_tlbl_set.length-1].split(" ");
                        //tempInit = tempInit.split(",");
                        //tempFinal = tempFinal.split(",");
                        var tInit = tempInit[0].split("-");
                        var tFinal = tempFinal[0].split("-");
                        var year = new Array();
                        var month = new Array();
                        var day = new Array();
                        year[0] = tInit[0];
                        year[1] = tFinal[0];
                        month[0] = tInit[1];
                        month[1] = tFinal[1];
                        day[0] = tInit[2];
                        day[1] = tFinal[2];
                        
                        temp_low = parseInt(min_x) + "";
                        temp_high = parseInt(max_x) + "";
                        
//                        alert(tempInit[0]);
//                        alert(tempFinal[0]);
                        
                        var rt_year = rt_tlbl_set[0].split(" ");
                        var x_year = rt_year[0].split("-");
                        var x_time = rt_year[1].split(":");
                        
                        var rt_year_third = rt_tlbl_set[parseInt((rt_tlbl_set.length-1)/3)].split(" ");
                        var x_year_third = rt_year_third[0].split("-");
                        var x_time_third = rt_year_third[1].split(":");
                        
                        var rt_year_2third = rt_tlbl_set[parseInt((rt_tlbl_set.length-1)*2/3)].split(" ");
                        var x_year_2third = rt_year_2third[0].split("-");
                        var x_time_2third = rt_year_2third[1].split(":");
                        
                        var rt_year_end = rt_tlbl_set[rt_tlbl_set.length-1].split(" ");
                        var x_year_end = rt_year_end[0].split("-");
                        var x_time_end = rt_year_end[1].split(":");
                        
                        if (day[0] == day[1]) {
                        
                            yr_lbl_add = "(" + month[0] + "/" + day[0] + "/" + year[0] + ")";
                            
                        } else { 
                              
                            yr_lbl_add = "(" + month[0] + "/" + day[0] + "/" + year[0] + "-" + month[1] + "/" + day[1] + "/" + year[1] + ")";
                            
                        }
                            
                        //add all labels for real time data and all conditions
                        
                        yr_lbl_format += rt_year[1] + "|";
                        yr_lbl_format += rt_year_third[1] + "|";
                        yr_lbl_format += rt_year_2third[1] + "|";
                        yr_lbl_format += rt_year_end[1] + "|";
                        
                        //gets days right for labels
                        var days = dayDivf(x_year[1]);
                        yr_lbl[0] = parseFloat(x_year[0]) + parseFloat((parseFloat(x_year[1]-1) + ((parseFloat(x_year[2]-1)+((x_time[0]*1+(x_time[1]*1/60))/24)))/days)/12);
                        yr_pos_format += "," + yr_lbl[0].toFixed(4);
                        
                        var days = dayDivf(x_year_third[1]);
                        yr_lbl[1] = parseFloat(x_year_third[0]) + parseFloat((parseFloat(x_year_third[1]-1) + ((parseFloat(x_year_third[2]-1)+((x_time_third[0]*1+(x_time_third[1]*1/60))/24)))/days)/12);
                        yr_pos_format += "," + yr_lbl[1].toFixed(5);
                        
                        var days = dayDivf(x_year_2third[1]);
                        yr_lbl[2] = parseFloat(x_year_2third[0]) + parseFloat((parseFloat(x_year_2third[1]-1) + ((parseFloat(x_year_2third[2]-1)+((x_time_2third[0]*1+(x_time_2third[1]*1/60))/24)))/days)/12);
                        yr_pos_format += "," + yr_lbl[2].toFixed(5);
                        
                        var days = dayDivf(x_year_end[1]);
                        yr_lbl[3] = parseFloat(x_year_end[0]) + parseFloat((parseFloat(x_year_end[1]-1) + ((parseFloat(x_year_end[2]-1)+((x_time_end[0]*1+(x_time_end[1]*1/60))/24)))/days)/12);
                        yr_pos_format += "," + yr_lbl[3].toFixed(4);
                                
                        yr_lbl_format += "2:|Date+"+yr_lbl_add+"|3:|Water-level|below+land|surface+(ft)";
                        yr_pos_format += "|2,50|3,55,50,45";
                            
                    }
                    
                    chart_formatting = chart_formatting + "&chxr=0," + min_x.toFixed(7) + "," + max_x.toFixed(7) + "|1," + min_y + "," + max_y + "&chdl=";
                    
                    var shCount = 0;
                    for (i = 0; i < suffHolder.length; i++) {
                        if (suffHolder[i] == 1) {
                            if (shCount < sitesSuff.length-1) {
                                chart_formatting += site_base + sitesSuff[shCount] + "|";
                            } else {
                                chart_formatting += site_base + sitesSuff[shCount];
                            }
                            shCount++;
                        }
                    }
                    
                    chart_formatting += yr_lbl_format + yr_pos_format;
                
                } else {
                    document.getElementById("chart").innerHTML = "Unable to generate chart. The NWIS (National Water Information System) data source may currently be down for the selected sites.";
                    no_data = 1;
                    document.getElementById("status").style.visibility = "hidden";
                    document.getElementById("status_text").style.visibility = "hidden"
                }
                
                for (i = 0; i <= sitesSuff.length-1; i++) {
                    
                    var suff = sitesSuff[i];
                    //alert(chart_url_part[suff]);
                    chart_url = chart_url + chart_url_part[suff];
                }
                
                chart_url = chart_url + chart_formatting;
                //alert(chart_url.length);
                //alert(x_value[1][0]);
                var reqCtl = $("#chCont").html();
                
                if (chart_url.length > 2020) {
                    document.getElementById("chart").innerHTML = "Unable to generate chart due to limitations on data display.";
                    document.getElementById("status").style.visibility = "hidden";
                    document.getElementById("status_text").style.visibility = "hidden"
                } else if (no_data == 0 && reqCtl == site_base+type) {
                    document.getElementById("chart").innerHTML = "<img src='" + chart_url + "' />";
                    document.getElementById("status").style.visibility = "hidden";
                    document.getElementById("status_text").style.visibility = "hidden"
                }
                //document.write(chart_url);
                
                return chart_url;
                
            }   
	          
	    }
	    
	    ajaxRequest[i].doGet(url[i], handData);
    }
    
    function dayDivf(mo) {
        if (mo == "02") { dayDiv = 28; } 
        else if (mo == "01" || mo == "03" || mo == "05" || mo == "07" || mo == "08" || mo == "10" || mo == "12") { dayDiv = 31; } 
        else { dayDiv = 30; }
        
        return dayDiv;
    }	
 
}
	
function chart_gen_infowindow(site_base,marker) {
    
    //document.getElementById("frame").src = "";
    document.getElementById("chart").innerHTML = "";
    marker.openInfoWindowHtml("<div id='marker_info'><div id='status_image_info' style='position: relative; left: 100px; top: 0px; height: 300px; width: 475px'><img style='position: relative; top: 140px; left: 65px' alt='loading image' src='/scripts/ajax-loader.gif' /><br/><div style='position: relative; top: 155px; left: -35px'>... Loading Chart Data for sites " + site_base + "1-5 ...</div></div></div>");
    //marker.openInfoWindowHtml("<img alt='loading image' src='/scripts/ajax-loader.gif' /><br/>... Loading Chart Data for sites " + site_base + "1-5 ...");
    
    var req_count = 0;
    
    var ajaxRequest = new Array();
    var url = new Array();
    var chart_url = "http://chart.apis.google.com/chart?cht=lxy&chd=t:"//&chds=0,1990,2010|1,40,55"; //&chl=Hello|World
    var chart_formatting = "&chco=ff0000,00ff00,0000ff,ff9900,7300d4&chm=o,ff0000,0,-1,8|d,00ff00,1,-1,8|s,0000ff,2,-1,8|x,ff9900,3,-1,8|c,7300d4,4,-1,8&chs=475x300&chxt=x,y,x,y" //&chm=o,ff9900,0,-1,10.0|d,ff9900,1,-1,10.0|s,ff9900,0,-1,10.0|c,ff9900,1,-1,10.0|a,ff9900,1,-1,10.0" //&chxr=0,1990,2010|1,40,55"//&chxp=0,25,50,75|1,25,50,75"//&chxl=0:|1995|2000|2005|1:|45|50|55|
    var chart_url_part = new Array();
    
    var x_value = new Array();
    var y_value = new Array();
    
    var x_min = new Array();
    var x_max = new Array();
    var y_min = new Array();
    var y_max = new Array();
    
    var yr_lbl = new Array();
    var yr_lbl_format = "&chxl=0:|";
    var yr_pos_format = "&chxp=0";
    var yr_lbl_add = "";
    
    for (i = 1; i <= 5; i++) {
        
        url[i] = "../scripts/php_host.php?site_no=" + escape(site_base + i) + "&rand=" + (new Date()).getTime();
        
        //url[i] = "http://nwis.waterdata.usgs.gov/ca/nwis/gwlevels?site_no=" + site_base + i + "&agency_cd=USGS&format=rdb" + "&rand=" + (new Date()).getTime();
        //url[i] = "./" + site_base + i + ".txt?rand=" + (new Date()).getTime();
        ajaxRequest[i] = new Ajax();
        
        // Create a function that will receive data sent from the server
        var handData = function(str) {
            //document.getElementById("dummy").innerHTML = str;
            var data = str;
            var info = data.split("agency_cd\t");
            var points = data.split("USGS\t");
            var top_loop = points.length - 1;
            var count = 0;
            x_set = "";
            y_set = "";
            
            var t = points[1].split("\t");
            var site = t[0];
            var site_length = site.length;
            var ind = site.slice(site.length - 1);
            
            for (j = 1; j <= top_loop; j++) {
                var point_xy = points[j].split("\t");
                var x = point_xy[1];
                var x_year = x.split("-");
                //x = x_year[0];
                x = parseFloat(x_year[0]) + parseFloat((parseFloat(x_year[1]-1) + parseFloat(x_year[2])/30)/12);
                var y = point_xy[3];
                
                if (j < top_loop) {
                    x_set = x_set + x + ",";
                    //temp[i] = x;
                } else if (j == top_loop) {
                    x_set = x_set + x;
                    //temp[i] = x;
                }
                if (j < top_loop) { 
                    y_set = y_set + y + ",";
                } else if (j == top_loop) {
                    y_set = y_set + y;
                }
                
            }
            
            temp_x = x_set.split(",");
            temp_y = y_set.split(",");
            for_sort_x = temp_x;
            for_sort_y = temp_y;
            temp_x_2 = for_sort_x.sort(sortNumber);
            temp_y_2 = for_sort_y.sort(sortNumber);
            
            x_min[ind-1] = temp_x_2[0];
            x_max[ind-1] = temp_x_2[temp_x.length - 1];
            y_min[ind-1] = temp_y_2[temp_y.length - 1];
            y_max[ind-1] = temp_y_2[0];
            
            temp_x = x_set.split(",");
            temp_y = y_set.split(",");
            //min_x = 1990; //temp_x_2[0];
            //max_x = 2010; //temp_x_2[temp_x_2.length - 1];
            //min_y = 10; //temp_y_2[0];
            //max_y = 60; //temp_y_2[temp_y_2.length - 1];
            
            x_value[ind] = new Array();
            y_value[ind] = new Array();
          
            for (k = 0; k < temp_x.length; k++) {
                
                x_value[ind][k] = temp_x[k];
                y_value[ind][k] = temp_y[k];
                
            }
            
            req_count = req_count + 1;
            
            if (req_count == 5) {
            
                var temp_x_min = x_min.sort(sortNumber);
                var temp_y_min = y_min.sort(sortNumber);
                var temp_x_max = x_max.sort(sortNumber);
                var temp_y_max = y_max.sort(sortNumber);
                min_x = parseFloat(temp_x_min[0]);//.toFixed(1);
                min_y = parseFloat(temp_y_min[y_min.length-1]).toFixed(1);
                min_y = parseFloat(min_y) + 0.1;
                max_x = parseFloat(temp_x_max[x_min.length-1]);//.toFixed(1);
                max_y = parseInt(temp_y_max[0]);
            
                x_range = max_x - min_x;
                y_range = max_y - min_y;
                
                for (l = 1; l <= 5; l++) {
                    
                    for (m = 0; m <= (x_value[l].length-1); m++) {
                        x_value[l][m] = (x_value[l][m] - min_x)*100/x_range;
                        x_value[l][m] = parseInt(x_value[l][m]); //parseFloat(x_value[l][m]).toFixed(1);
                    }
                    for (m = 0; m <= (y_value[l].length-1); m++) {
                        y_value[l][m] = (y_value[l][m] - min_y)*100/y_range;
                        y_value[l][m] = parseFloat(y_value[l][m]).toFixed(1); //parseInt(y_value[l][m]); 
                    }
                    //alert(y_value[l]);
                    
                    if (l == 1) {
                        chart_url_part[l] = x_value[l] + "|" + y_value[l];
                    } else {
                        chart_url_part[l] = "|" + x_value[l] + "|" + y_value[l];
                    }
                    
                }
                
                if ((max_x-min_x) > 2) {
                    
                    yr_lbl[0] = parseInt(min_x+1) + "";
                    yr_lbl[1] = parseInt(((max_x-min_x)/4)+min_x) + "";
                    yr_lbl[2] = parseInt(((max_x-min_x)/2)+min_x) + "";
                    yr_lbl[3] = parseInt((3*(max_x-min_x)/4)+min_x) + "";
                    yr_lbl[4] = parseInt(max_x) + "";
                
                    for (m = 0; m <= 4; m++) {
                        if (yr_lbl[m].length > 0) {
                            if (m == 0) {
                                yr_lbl_format += yr_lbl[m] + "|";
                                yr_pos_format += "," + yr_lbl[m];
                            } else {
                                if (yr_lbl[m] == yr_lbl[m-1]) {
                                
                                } else {
                                    yr_lbl_format += yr_lbl[m] + "|";
                                    yr_pos_format += "," + yr_lbl[m];
                                }
                            }
                        }
                    }
                    
                    yr_lbl_format += "2:|Year|3:|Water-level|below+land|surface+(ft)|";
                    yr_pos_format += "|2,50|3,55,50,45";
                    
                } else {
                
                    temp_low = parseInt(min_x) + "";
                    temp_high = parseInt(max_x) + "";
                    
                    if (temp_low == temp_high) {
                        yr_lbl_add = "(" + temp_low + ")";
                        if ((parseInt(temp_low) + 0.25) > min_x) {
                            yr_lbl[0] = parseInt(temp_low) + 0.25;
                            yr_lbl_format += "April|";
                            yr_pos_format += "," + yr_lbl[0];
                        } else if ((parseInt(temp_low) + 0.5) > min_x) {
                            yr_lbl[0] = parseInt(temp_low) + .5 + "";
                            yr_lbl_format += "July|";
                            yr_pos_format += "," + yr_lbl[0];
                        } else if ((parseInt(temp_low) + 0.75) > min_x) {
                            yr_lbl[0] = parseInt(temp_low) + .75 + "";
                            yr_lbl_format += "October|";
                            yr_pos_format += "," + yr_lbl[0];
                        }
                        if ((parseInt(temp_high) + 0.75) < max_x) {
                            yr_lbl[1] = parseInt(temp_high) + .75 + "";
                            yr_lbl_format += "October|";
                            yr_pos_format += "," + yr_lbl[1];
                        } else if ((parseInt(temp_high) + 0.5) < max_x) {
                            yr_lbl[1] = parseInt(temp_high) + .5 + "";
                            yr_lbl_format += "July|";
                            yr_pos_format += "," + yr_lbl[1];
                        } else if ((parseInt(temp_high) + 0.25) < max_x) {
                            yr_lbl[1] = parseInt(temp_high) + .25 + "";
                            yr_lbl_format += "April|";
                            yr_pos_format += "," + yr_lbl[1];
                        }
                    }
                    
                    yr_lbl_format += "2:|Year+" + yr_lbl_add + "|3:|Water-level|below+land|surface+(ft)|";
                    yr_pos_format += "|2,50|3,55,50,45";
                
                }
                
                //var extra = "&chxl=0:|" + yr_lbl[0] + "|" + yr_lbl[1] + "|" + yr_lbl[2] + "|" + yr_lbl[3] + "|" + yr_lbl[4] + "|2:|Year|3:|Water-level|below+land|surface+(ft)|&chxp=0," + yr_lbl[0] + "," + yr_lbl[1] + "," + yr_lbl[2] + "," + yr_lbl[3] + "," + yr_lbl[4] + "|2,50|3,55,50,45";   
                chart_formatting = chart_formatting + "&chxr=0," + min_x + "," + max_x + "|1," + min_y + "," + max_y + "&chdl=" + site_base + "1|" + site_base + "2|" + site_base + "3|" + site_base + "4|" + site_base + "5" + yr_lbl_format + yr_pos_format;
                
                for (i = 0; i <= sitesSuff.length-1; i++) {
                    
                    var suff = sitesSuff[i];
                    
                    chart_url = chart_url + chart_url_part[suff];
                    
                }
                
                chart_url = chart_url + chart_formatting;
                //alert(chart_url.length);
                if (chart_url.length > 2000) {
                    //document.getElementById("frame").src = "./no_chart.htm";
                    marker.openInfoWindowHtml("nada");
                } else {
                    document.getElementById("marker_info").innerHTML = "<img src='" + chart_url + "' />";
                    //marker.openInfoWindowHtml("<img src='" + chart_url + "' />");
                    //document.getElementById("frame").src = chart_url;
                    document.getElementById("status").style.visibility = "hidden";
                }
                //document.write(chart_url);
                return chart_url;
                
            }   
	          
	    }
	    
	    ajaxRequest[i].doGet(url[i], handData);
    }
    
}

function sortNumber(a,b) {
    return a - b;
}

var simpleEncoding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

function simpleEncode(valueArray,maxValue) {

    var chartData = ['s:'];
        for (var i = 0; i < valueArray.length; i++) {
            var currentValue = valueArray[i];
            if (!isNaN(currentValue) && currentValue >= 0) {
                chartData.push(simpleEncoding.charAt(Math.round((simpleEncoding.length-1) * currentValue / maxValue)));
            }
            else {
                chartData.push('_');
            }
        }
    return chartData.join('');
}

function close_chart() {
    $("#chart_display").css({'visibility' : 'hidden'});
    $("#status").css({'visibility' : 'hidden'});
    $("#status_text").css({'visibility' : 'hidden'});
}