// This file contains javascript functions used by flynet code.

var sortOrder = 1;
var isLoading = false;

// Ajax functions

function makeRequest(url, oid, load)
{
	// if load is not defined show load-bar
	if (typeof(load)=='undefined') {
		var load=true;
	}
	if (typeof(oid)=='undefined') {
		var oid=null;
		load=false;
	}
    
	url = url + "&cachets=" + Math.floor(Math.random()*10000000);
	
	if (load) loading();
	$.get(url, function(data) {
		$('#'+oid).html(data);
		if (load) loaded();
			updateMetaData(url);
	});
}

/*
function updateMetatags() {
	var title = "FSAirlines - Enjoy a new dimension of flightsimming";
	var description = "Create and manage your own Virtual Airline and compete against other VAs in a simulated environment or just sign up as a pilot and earn your money by flying for your favourite airline.";
	var keywords = "Virtual Airlines,challange,competition,manage,pilots,client,flight tracker,microsoft flight simulator,fsx,fs2004,flightsim,routes,fleet,logbook,flightplan,free,finances";

	var metatags = document.getElementsByTagName('meta');
	var fsinfo = document.getElementsByTagName('meta_info');
	if (fsinfo.length > 0) {
		title = fsinfo[0].getAttribute('title');
		description = fsinfo[0].getAttribute('description');
		keywords = fsinfo[0].getAttribute('keywords');
	}
	parent.document.title = title;

	if (metatags) {
		for (cnt = 0; cnt < metatags.length; cnt++) {
		        var name = metatags[cnt].getAttribute("name");
		        var content = metatags[cnt].getAttribute("content");

		        if (metatags[cnt].getAttribute("name") == "description")
		              metatags[cnt].setAttribute("content", description);
			
				if (metatags[cnt].getAttribute("name") == "keywords")
		              metatags[cnt].setAttribute("content", keywords);
	    }
	}
}
*/
function stripCommas(v1)
{
   var len = v1.length;
   var i;
   var j = 0;
   
   for(i = 0; i < len; i++)
   {
      if (v1.substr(i,1) == ".") j = i;
   }
   
   if (j > 0)
   {
      return v1.substr(0,j).replace(/\./g, "") + v1.substr(j,len-j);
   }
   else
   {
      return v1.replace(/\./g, "");
   }
}

function sortCompare(a, b)
{
    var v1 = sortData[a][0].toLowerCase();
    var v2 = sortData[b][0].toLowerCase();
    var n1 = sortData[a][1];
    var n2 = sortData[b][1];

    if (v1 == v2) return 0;

    if (isNaN(n1) && isNaN(n2))
    {
        if (v1 > v2) return sortOrder;
        return sortOrder * -1;
    }
    else if (isNaN(n1))
    {
        return sortOrder;
    }
    else if (isNaN(n2))
    {
        return sortOrder * -1
    }
    else
    {
        if (n1 == n2)
        {
            if (v1 > v2) return sortOrder;
            return sortOrder * -1;
        }

        if (n1 > n2) return sortOrder;
        return sortOrder * -1;
    }
}

function sortTable(p_tid, p_column)
{
    var i;
    var j;
    var v1;
    var v2;
    var rev = 0;
    sortData = new Array();
    var sortTemp = new Array();
    sortOrder = 1;
    var r;
    var xclass;
        
    var table = document.getElementById(p_tid);

    if (table)
    {
        for (i = 0; i < table.rows[0].cells.length; i++)
        {
            v1 = table.rows[0].cells[i].innerHTML;
            v2 = 0;
            
            if (!v1 || v1.length == 0) continue;

            if ((j = v1.toLowerCase().search("<img")) > 0) // This was the previous sort by column
            {
                v2 = 1;

                if (v1.search("arrowup.gif") > j && i == p_column)
                {
                    rev = 1;
                    sortOrder = -1;
                }

                v1 = v1.substring(0,j).concat("</A>");
            }

            if (i == p_column)
            {
                v2 = 1;
                if ((j = v1.search("</A>")) > 0)
                {
                   v1 = v1.substring(0,j);
                }
                v1 = v1.concat("<img src=/pics/");

                if (rev) v1 = v1.concat("arrowdown.gif");
                else v1 = v1.concat("arrowup.gif");

                v1 = v1.concat(" border=0></A>");
            }

            if (v2 == 1)
            {
                table.rows[0].cells[i].innerHTML = v1;
            }
        }

        for (i = 0; i < table.rows.length - 1; i++)
        {
            if (table.rows[0].cells.length > table.rows[i+1].cells.length)
            {
                table.deleteRow(i+1);
                i--;
                continue;
            }

            v1 = table.rows[i+1].cells[p_column].innerText;
            if (!v1)
            {
                // v1 = stripTags(table.rows[i+1].cells[p_column].innerHTML);
                v1 = table.rows[i+1].cells[p_column].innerHTML;
            }

            v2 = stripCommas(v1)
            v2 = parseFloat(v2);
            r = table.rows[i+1].innerHTML;
			sortData[i] = [v1, v2, r];
            sortTemp[i] = i;
        }

        sortTemp.sort(sortCompare);

        if (table.moveRow)
        {
            var outertd = document.getElementById(p_tid + "_td");
            if (outertd)
            {
                v1 = outertd.innerHTML;
                if ((v2 = v1.search("<TR")) > 0)
                {
                    v1 = v1.substring(0,v2);
                    v1 += table.rows[0].outerHTML;
                    for (i = 0; i < table.rows.length - 1; i++)
                    {
                        v1 += table.rows[sortTemp[i]+1].outerHTML;
                    }
                    v1 += "</table>";

                    outertd.innerHTML = v1;
                }
            }
            else
            {
                for (i = 0; i < sortTemp.length; i++)
                {
                    if (sortTemp[i] != i)
                    {
                        table.moveRow(sortTemp[i]+1,i+1);
                        for (j = i+1; j < sortTemp.length; j++)
                        {
                            if (sortTemp[j] < sortTemp[i]) sortTemp[j]++;
                        }
                    }
                }
            }
        }
        else
        {
            for (i = 0; i < table.rows.length - 1; i++)
            {
                table.rows[i+1].innerHTML = sortData[sortTemp[i]][2];
            }
        }

	for (i = 1; i < table.rows.length; i++)
	{
	    xclass = table.rows[i].cells[0].className;
	    
	    if (xclass == 'td1' && (i % 2 == 0))
	    {
	    	for (j = 0; j < table.rows[i].cells.length; j++)
	    	{
	    	    if (table.rows[i].cells[j].className == xclass) 
	    	        table.rows[i].cells[j].className = "td2";
	    	}
	    }
	    else if (xclass == 'td2' && (i % 2 == 1))
	    {
	    	for (j = 0; j < table.rows[i].cells.length; j++)
	    	{
	    	    if (table.rows[i].cells[j].className == xclass) 
	    	    	table.rows[i].cells[j].className = "td1";
	    	}
	    }
	}
    }
}


function makePostRequest(url, data, oid, load)
{
	// if load is not defined show load-bar
	if (typeof(load)=='undefined') {
		var load=true;
	}
	if (typeof(oid)=='undefined') {
		var oid=null;
		load=false;
	}

	if (load) loading();
	$.post(url, data, function(data){
			$('#'+oid).html(data);
			if (load) loaded();
		});
}

function isIE() {
	if ($.browser.msie) {
		return true;
	}
	else return false;
}

function loading() {
	if (isLoading) return;
	var loading = document.getElementById("loading");
	var mainText = document.getElementById("container");
	
	if  (loading == null) {
		loading = document.createElement("div");
		
		loading.setAttribute('id', 'loading');
		mainText.appendChild(loading);
	}
	
	$("#loading").html("<center><img src='pics/loading.gif' id='symbol' /><br />...loading...</center>");
	$("#loading").addClass('loading');
	$("#loading").fadeIn(100);
	isLoading=true;
	
	// max 10 seconds
	setTimeout("loaded()", 30000);
}

function loaded() {
	if (!isLoading) return;
	setTimeout("$('#loading').fadeOut(1000)", 500);
	setTimeout("isLoading=false", 1500);
}

function updateLimit(chk, id)
{
	var obj=document.getElementById(id);
	
	if (chk.checked)
	{
		obj.disabled=true;
		obj.value='';
	}
	else
	{
		obj.disabled=false;
		obj.value='0';
	}
}

function setImage(id, img) {
	document.getElementById(id).src = img;
}

function openDialog(id, request) {
	var dialog = document.getElementById(id);
	var mainText = document.getElementById("MainText");
	
	if  (dialog == null) {
		dialog = document.createElement("div");
		
		dialog.setAttribute('id', id);
		mainText.appendChild(dialog);
	}
	
	makeRequest(request, id, false);

	$('#'+id).dialog({ width: 'auto', height: 'auto', modal: true, resizable: false });
	$('#'+id).dialog('open');
}

function updateMetaData(url) {
	if (url.search("index_right.php5?") == -1) {
		var vars = getUrlVars(url);
		if (typeof(vars['status'])!='undefined') $.get('meta_ajax.php5?status='+vars['status']+'&p='+vars['p']+'&va='+vars['va'], function(data) { 
			if (data != "") {
				vars = getUrlVars(data);
				updateMetaTags(vars['title'], vars['description'], vars['keywords']);
			}
		});
	}
}

function updateMetaTags(title, description, keywords) {
	$("title").attr("content", title);
	$("meta[name=description]").attr("content", description);
	$("meta[name=keywords]").attr("content", keywords);
	document.title = title;
}

function getUrlVars(url) {
	var vars = {};
	var parts = url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {vars[key] = value;});
	return vars;
}