// WinWin Generic Javascript function

function queryParm(parm) {
	// extracts a parameter from the url
	var result = ""
	var urlsearch = location.search
	parm = parm + "="
	var pos1 = urlsearch.indexOf(parm,0)
	if (pos1>-1) {
		pos1 = pos1 + parm.length
		var pos2 = urlsearch.indexOf("&",pos1)
		if (pos2>-1) {
			result = urlsearch.substring(pos1,pos2)
		}
		else
		{
			result = urlsearch.substring(pos1,urlsearch.length)
		}
	}
	else
	{
		result = ""
	}
	return result
}

function select_options_load(ctrlID,rows,valueTag,textTag,blankAtTop,newOpt) {
    var ctrl = document.getElementById(ctrlID)
    var startpos = 0

    if (blankAtTop!="") {
        // Add Blank at top
        var opt = new Option("")
        ctrl.options[0] = opt
        ctrl.options[0].value = ""
        ctrl.options[0].text = ""
        startpos += 1
    }

    if (newOpt!="") {
        // Add New Option
        var opt = new Option(newOpt)
        ctrl.options[1] = opt
        ctrl.options[1].value = "NEW"
        ctrl.options[1].text = newOpt
        startpos += 1
    }

    for (i=0;i<rows.length;i++) {
        //var thisrow=xmldoc.documentElement.childNodes(i)
        var thisrow = rows.item(i)

        var opt = new Option(thisrow.selectNodes(valueTag).item(0).text)
        ctrl.options[i+startpos] = opt
        ctrl.options[i+startpos].value = thisrow.selectNodes(valueTag).item(0).text
        ctrl.options[i+startpos].text = thisrow.selectNodes(textTag).item(0).text
    }

}

function oiXMLTransform(styleSheetURL,sortTag,sortColumn,sortDirection,selectTag,selectColumn,selectValue) {
	// Transforms the xml data into xhtml

    oiProcessingMsg(" loading ","oiprocessingmsg")

    xsl.load(styleSheetURL)

	// Check for a valid stylesheet
	//if (xsl.documentElement=="parserError") {
    if (!xsl) {
	    // This is not a valid stylesheet
	    alert("Error: Invalid or missing style sheet '" + styleSheet +"'")
	    return
	}

	if (sortTag) {
		// Set the initial sort column and direction
        var p = xsl.selectSingleNode(sortTag)
        if (p) {
            p.setAttribute("select",sortColumn)
        } else {
            alert("Error: Sort Tag not found " + sortTag)
            return
        }
    } else {
        //alert("here")
        //var html = call(styleSheetURL,"")
        //alert("html = " + html.xml)
        //datafromoi.innerHTML = html.xml
        //return
    }

    if (selectTag) {
        // Set the seletion criteria.
        var p = xsl.selectSingleNode(selectTag)
        //var tablename = xsl.selectSingleNode(selectTag+).name
        //var tablename = xsl.getElementsById("tablename")
        //tablename = ""
        //alert("tablename = " + tablename)
	    //p.setAttribute("select","/rows/row["+selectColumn+"='" + selectValue + "']")
	    p.setAttribute("select","//row["+selectColumn+"='" + selectValue + "']")
    }

    // transform the XML and load it into the page.
    //document.getElementById("datafromoi").innerHTML = xmldoc.transformNode(xsl)
    datafromoi.innerHTML = xmldoc.transformNode(xsl)

    // Set focus to the first control on a form
    //var ctrls = document.forms[0].elements
    //ctrls[0].focus()
    var idcolumn = document.getElementById("idcolumn")
    if (idcolumn) {
        var idctrl = document.getElementById(idcolumn.value)

        // make sure that the id control is not hidden, readonly or disabled.
        //if (idctrl.disabled==false) {
        //    if (idctrl.readonly)==false) {
        //        if (idctrl.type!="hidden") {
        //            idctrl.focus()
        //        }
        //    }
       // }
    }
    oiProcessingMsg("","oiprocessingmsg")
}

function defaultDate() {
    var today = new Date()
    var fullDate = today.getDate() + "/" + (today.getMonth() +1) + "/" + today.getFullYear()
return fullDate
}

function defaultTime() {
    var today = new Date()
    var h=today.getHours()
    var m=today.getMinutes()
    // add a zero in front of numbers<10
    if (m<10) {
        m = "0" + m
    }
    var time = h + ":" + m
    return time
}

function showColumnHelp(ctrl)  {
    // Displays the help stored in the title attribute in a popup window

    var html = "<p align=\"center\" style=\"font-size: 10pt\"><b>Help for " + ctrl.name + "</b></p>"
    html += "<p align=\"left\" style=\"position: relative; left: 5px; width: 225px\">" + ctrl.title + "</p>"
    //html += "<p align=\"center\" style=\"position: relative; bottom: 5px; text-align: center\">Click outside this box to close</p>"

    var p=window.createPopup()
    var pbody=p.document.body
    pbody.style.backgroundColor="#F0E68C"
    pbody.style.fontFamily = "Arial"
    pbody.style.fontSize = "8pt"
    pbody.style.border="solid black 1px"
    pbody.innerHTML=html
    p.show(150,150,250,250,document.body)
}

function call(url,xmlIsland){
   var xslDoc=new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
   xslDoc.async=false
   var rsltDoc=new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
   var xslTemplate=new ActiveXObject("MSXML2.XSLTemplate");
   //alert("ulr = " + url)
   xslDoc.load(url);
   //alert("here")
   xslTemplate.stylesheet=xslDoc

   var xslProc=xslTemplate.createProcessor();
   xslProc.input=xmldoc;

   xslProc.output=rsltDoc;
   if (arguments.length >2 &&
      arguments.length % 2 == 0){
      for (var i=0;
         i<Math.floor((arguments.length)/2)-1;
         i++){
         paramName=arguments[2*i+2];
         paramValue=arguments[2*i+3];
         xslProc.addParameter(paramName,paramValue);
         }
      }

   xslProc.transform();
   return rsltDoc;
   }

function showRecords(sortKey,sortOrder){
   var htmlDoc=
      call(_ShowRecords,records,"sortKey",
      sortKey,"sortOrder",sortOrder);
   window.container.innerHTML=htmlDoc.xml;
}

function trim(text) {
    // removes leading spaces, extra spaces in between words and trailing spaces\
    var newtext = ""
    var textlen = text.length

    for (i=0;i<textlen;i++) {
        thischar = text.substr(i,1)
        nextchar = text.substr(i+1,1)

        if (thischar==" ") {
            if (nextchar==" ") {
                // skip this extra space
            } else {
                // remove any leading spaces
                if (newtext=="") {
                    // remove leading spaces
                }else{
                    newtext = newtext + thischar
                }
            }
         } else {
            newtext = newtext + thischar
         }
    }
    return newtext
}