// java script for common utilities
function trim(strString){
var intLoop=0;

    for(intLoop=0; intLoop < strString.length; )
    {
            if(strString.charAt(intLoop)==" ")
                    strString = strString.substring(intLoop+1, strString.length);
            else
                    break;
    }

    for(intLoop = strString.length-1; intLoop>=0; intLoop = strString.length-1)
    {
            if(strString.charAt(intLoop)==" ")
                    strString = strString.substring(0,intLoop);
            else
                    break;
    }
    return strString;
}

function GetXMLHTTPConnection()
{
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
		 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
		 xmlhttp = false;
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}
	if (!xmlhttp && window.createRequest) {
		try {
			xmlhttp = window.createRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}
return xmlhttp;
}

//Transforms given XML using XSL and returns output.
function getHtmlFragment(xmlUrl, xslUrl) {
    var xslStylesheet;
    var xsltProcessor = new XSLTProcessor();
    //load the xml file
    var xmlSource = getResponseXml(xmlUrl).responseXML;
    //load the xsl file into the xslt Processor
    xslStylesheet = getResponseXml(xslUrl).responseXML;
    xsltProcessor.importStylesheet(xslStylesheet);
    return xsltProcessor.transformToFragment(xmlSource, document);
}

//Gets the xml DOM Object from given xml url
function getSyncResponseXml(xmlUrl) {
    var xmlHttp = new GetXMLHTTPConnection();
    xmlHttp.open("GET", xmlUrl, false);
    xmlHttp.send(null);
	var responseXML = xmlHttp.responseXML;    
    if (responseXML != null ) {
        return responseXML.documentElement;
    }
    return null;
}


function displayNext(raceId) {
var next = parseInt(raceId) + 1;
nextObj = document.getElementById ("race"+next);
if (nextObj != null) {
	nextObj.style.display = "";
	currObj = document.getElementById ("race"+raceId);
	currObj.style.display = "none";
}
}
function displayPrevious(raceId) {
var prev = parseInt(raceId) - 1;
nextObj = document.getElementById ("race"+prev);
if (nextObj != null) {
	nextObj.style.display = "";
	currObj = document.getElementById ("race"+raceId);
	currObj.style.display = "none";
}
}

function loadFile(fileURL, checkLoc) {
	var url = window.location.protocol + "//" + window.location.host+"/loadfile.jsp?fileURL="+fileURL;
	if (checkLoc == 'Y'){
		url = url+"&verifyLocation=Y";
	}
	window.open(url,'','fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes');
}


function loadCBFile(track, subFolder, fileURL) {
	window.open(window.location.protocol + "//" + window.location.host+"/loadfile.jsp?fileURL=/"+track+"/"+subFolder+"/"+fileURL,'','fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes');
}

function FormatNumber(value)
{
	return CommaFormatted(value);
}
function CommaFormatted(amount)
{
	var delimiter = ","; // replace comma if desired
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(typeof d=='undefined' || d.length < 1) { amount = n; }
	else { amount = n + '.' + d; }
	amount = minus + amount;
	return amount;
}
function getDemilitedArray(stringValue, delimitChar, rangeSeparator) {
    var delimitedArr = new Array();
    if (stringValue == null || stringValue == "") return delimitedArr;
    var index =0;
    var temp = stringValue;
    temp = trim(temp);
    while(temp.length > 0) {
        var commaIndex=temp.indexOf(delimitChar);
        if (commaIndex != -1) {
            var individualVal =temp.substring(0,commaIndex);
            if (rangeSeparator != null && individualVal.indexOf(rangeSeparator) != -1) {
                var startRange=individualVal.substring(0,individualVal.indexOf(rangeSeparator));
                var endRange=individualVal.substring(individualVal.indexOf(rangeSeparator)+1);
                for (var i=startRange; i <= endRange; i++){
                    if (isNaN(i)) { delimitedArr[index]=i; i=parseInt(i);}
                    else delimitedArr[index]=i;
                    index++;
                }
            } else {
                    delimitedArr[index]=individualVal;
                    index++;
            }
            temp = temp.substring(commaIndex+1);
        } else {
            var individualVal=temp;
            if (individualVal.indexOf(rangeSeparator) != -1) {
                var startRange=individualVal.substring(0,individualVal.indexOf(rangeSeparator));
                var endRange=individualVal.substring(individualVal.indexOf(rangeSeparator)+1);
                for (var i=startRange; i <= endRange; i++){
                    if (isNaN(i)) { delimitedArr[index]=i; i=parseInt(i);}
                    else delimitedArr[index]=i;
                    index++;
                }
            } else {
                    delimitedArr[index]=individualVal;
                    index++;
            }
            temp="";
        }
    }
    return delimitedArr;
}

