// Detect Browser and load proper DSL Sheet
var BrowserVer = navigator.appName + navigator.appVersion;
var BrowserCode;

if (BrowserVer.indexOf('Netscape4') != -1)
{
	document.write('<LINK REL=stylesheet HREF="css/dsl_ns4.css" TYPE="text/css">');
	BrowserCode = 'N4';
}
else if (BrowserVer.indexOf('Netscape5') != -1)
{
	document.write('<LINK REL=stylesheet HREF="css/dsl_ns6.css" TYPE="text/css">');
	BrowserCode = 'N5';
}
else 
{
	document.write('<LINK REL=stylesheet HREF="css/dsl_ie.css" TYPE="text/css">');
	BrowserCode = 'IE';
}
function ViewThisPDF(obj, src)
{
	var PDFname 
	if (src == 'icon')
	    if (BrowserCode == 'IE')
    	    PDFname = obj.parentElement.parentElement.children[6].innerText;//2
    	else
    	    PDFname = obj.parentNode.parentNode.childNodes[7].childNodes[0].nodeValue;//3
/* TODO: this branch is to handle double-click if possible
	else 
	    PDFname = obj.innerText;
*/
//alert ("32:" + PDFname + "|");
	if (PDFname != '' && PDFname != ' ') {
//alert ('about to get ' + PDFname);
//			window.open('datasheets/' + PDFname + ' datasheet.pdf');
            window.open('../datasheets/' + PDFname);
		} else {
			alert('There is no Datasheet available for this part number.  Please notify site admin.');
		}
}
//function ViewPDF() //(obj)
//{	// Check for nothing selected and show error messages
//    var selvalues = getselectedvalues(gvMain, false);
//	if (selvalues == '') {
//			alert('You haven\'t selected a Datasheet to view.');
//			return false; 
//	}
//	if (selvalues.indexOf('|') == -1) {
//		var PDFname = selvalues; //obj.options[obj.selectedIndex].value
//		if (PDFname != '') {
//alert ('about to get ' + PDFname);
//			PDFname = 'dsIQ18120QTA08.pdf'; //TODO: debug only
//			window.open('datasheets/' + PDFname);
//		} else {
//			alert('There is no Datasheet available for this part number.  Please notify site admin.');
//		}
//	} else {
//	    alert('You may only select one Datasheet to view at a time.\nPlease select multiple items (up to six) when comparing curves.');
//	}
//}
function getselectedvalues(objmulti,curve)  //TODO: get rid of second parameter & related code
{
    var tempstr = '';
    var tempstr2 = '';
    var frm = document.forms[0];
    for (j=0; j<frm.elements.length; j++) {
        if (frm.elements[j].id.indexOf ('SelectThis') != -1) {
            if (frm.elements[j].checked == true) {
                if (tempstr != '') { tempstr = tempstr +  "|" };
                //TODO: extract just partnumber here (for curves)
                if (curve == true) {
                    if (BrowserCode == 'IE')
        			    tempstr2 = frm.elements[j].parentElement.parentElement.parentElement.children[2].innerText;
        			else
        			    tempstr2 = frm.elements[j].parentNode.parentNode.parentNode.parentNode.childNodes[3].innerHTML;
        	    }
                else {//need a better way here... branch not used now
                    if (BrowserCode == 'IE')
                        tempstr2 = frm.elements[j].parentElement.parentElement.parentElement.children[2].innerText + ' Datasheet.pdf';
                    else
                        tempstr2 = frm.elements[j].parentNode.parentNode.parentNode.parentNode.childNodes[3].innerHTML + ' Datasheet.pdf';
                }
			    tempstr = tempstr + tempstr2;
            }
   		}
    }	
    return tempstr;
}
// Count number of elements in a string by delimiter.
function countelements(strsearch,strdelimiter)
{
	var stringarray = strsearch.split(strdelimiter);
	return stringarray.length;
}
function comparecurves(objmulti, curvetype)
{
	var tempstr = '';
	tempstr = getselectedvalues(objmulti, true);	
	var selcount = countelements(tempstr,'|');
	if (selcount == 1) { 
		alert('You must select at least two Datasheets\nin order to compare ' + curvetype + ' curves.');
		return false;	
	} else if (selcount > 6) {
		alert('You have selected ' + selcount + ' Datasheets but you can only compare six curves at a time.\nPlease deselect ' + (selcount - 6).toString() + ' Datasheets and try again.');
		return false;
	}
	document.getElementById("desiredCurveType").value = curvetype;
    document.getElementById("desiredCurves").value = tempstr;
//alert ("about to open: " + "curvepdf.asp?StrPNList=" + tempstr + "&StrCurveType=" + curvetype);
    frm = document.getElementById("frmCurves").submit();
//	window.open('curves.aspx?StrPNList=' + tempstr + '&StrCurveType=' + curvetype);
//		window.open('curvepdf.asp?StrPNList=' + tempstr + '&StrCurveType=' + curvetype);
}


// Trap if enter key pressed on reverse lookup.  If enter is pressed equate it
// to clicking the locate button.
function OnEnter()
{ 	
		Locate(document.datasheet.enterpart.value, document.datasheet.locatefound);
		return false; 
		
}


// This function takes an object name and checks each of it's elements
// for an occurance of the checkvalue.  Returns true if it's found.
function dupecheck(objname,checkvalue)
{
    var numelems = objname.options.length;

    for (var x = 0; x < numelems; x++)
    {
	    if (objname[x].value == checkvalue)
	    {
		    return true;
	    }
    }
    return false;
}
function refreshmessage(message)
{
	// IE 5, NS6
	if (document.getElementById) 
		{
		document.getElementById("statusmessage_display").innerHTML= message;
		}
	// IE 4.0
	else if (document.all) 
		{
	    document.all.statusmessage_display.innerText = message;
		} 
}
function ResetLocate()
{
		document.datasheet.locatefound.options.length = 0 ;
		document.datasheet.enterpart.value = '';
		//document.datasheet.locatefound[0] = new Option(Get_nbsp(114),'empty')
		document.datasheet.enterpart.focus();
}
// dummy function for the button click hrefs
function buttonclick()
{

}
// Function to check for enter key in reverse lookup
function checkenter()
{
	if (window.event.keyCode == 13) 
	{
		document.datasheet.locateenter.value='Locate';
	}
}
// There's a bug in IE 5.0 where you can't directly add a form element cross frame.
// http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q237/8/31.asp&NoWebContent=1
// Instead we pass the fieldname fieldvalue and an object that points to the form element and add the new option 
// within the frame where the element resides.
function addoption(fieldname,fieldvalue,objelement,blnselected)
{
	objelement[objelement.length] = new Option(fieldname,fieldvalue)
	objelement.options[objelement.length-1].selected = blnselected;
}
function OpenWindow(URL)
{
	if (document.all || document.layers) 
	{
	   var w = screen.availWidth;
	   var h = screen.availHeight;
	}
	var popW = 750, popH = 570;
	var leftPos = (w-popW)/2, topPos = (h-popH)/2;
	var thewindow=window.open(URL,"thewindow","menubar=yes,width=" + popW + ",height=" + popH + ",top=" + topPos + ",left=" + leftPos + ",toolbar=no,scrollbars=yes,location=no,directories=no,resizable=yes"); 

	thewindow.focus();
}
function setWorkingMsg()
{
    document.getElementById("WkgMsg").style.visibility = "visible";
//    document.all.WkgMsg.style.visibility = "visible";
}
function imgDS_onclick()
{
    return ViewPDF();
}
function imgEffic_onclick()
{
    return comparecurves(document.getElementById('gvMain'),'efficiency');
}
function imgDerating_onclick()
{
    return comparecurves(document.getElementById('gvMain'),'derating');
}
/* Using modified select_deselectAll script function of my original one,
   from Developerfusion.com forum members - ketcapli & thombo
   Forum Post - [http://www.developerfusion.co.uk/forums/topic-22773] */
function select_deselectAll (chkVal, idVal) 
{
	var frm = document.forms[0];
    if (idVal.indexOf('SelectThis') != -1 && chkVal == true){
    	var AllAreSelected = true;
        for (i=0; i<frm.length; i++) {
            if (frm.elements[i].id.indexOf('SelectThis') != -1 && frm.elements[i].checked == false){
            	AllAreSelected = false;
            	break;
            }
        }
        if(AllAreSelected == true){
           	for (j=0; j<frm.length; j++) {
           		if (frm.elements[j].id.indexOf ('SelectAll') != -1) {
           			frm.elements[j].checked = true;
           			break;
           		}
           	}
        }
	} else {
        for (i=0; i<frm.length; i++) {
            if (idVal.indexOf ('SelectAll') != -1) {
            	if(chkVal == true) {
            		frm.elements[i].checked = true;
            	} else {
            		frm.elements[i].checked = false;
            	}
            } else if (idVal.indexOf('SelectThis') != -1 && frm.elements[i].checked == false) {
            	for (j=0; j<frm.length; j++) {
            		if (frm.elements[j].id.indexOf ('SelectAll') != -1) {
            			frm.elements[j].checked = false;
            			break;
            		}
            	}
            }
        }
	}
}
function highlightCheckBxRow(chkbx) 
{
	if (chkbx.id.indexOf ('SelectThis') != -1) {
        if (chkbx.checked) {
               	    if (BrowserCode == 'IE')
                   		chkbx.parentElement.parentElement.parentElement.style.backgroundColor='#C0C0FF';
                   	else
                   	    chkbx.parentNode.parentNode.parentNode.style.backgroundColor='#C0C0FF';
        } else { 
               	    if (BrowserCode == 'IE')
                   		chkbx.parentElement.parentElement.parentElement.style.backgroundColor='#FFFFFF';
                   	else
                   	    chkbx.parentNode.parentNode.parentNode.style.backgroundColor='#FFFFFF';
        }
   } else {
       	var frm = document.forms[0];
        for (h = 0; h < frm.length; h++) { 
           	if (frm.elements[h].id.indexOf ('SelectThis') != -1) {
               	if (chkbx.id.indexOf ('SelectAll') != -1 && chkbx.checked) {
               	    if (BrowserCode == 'IE')
                   		frm.elements[h].parentElement.parentElement.parentElement.style.backgroundColor='#C0C0FF';
                   	else
                   	    frm.elements[h].parentNode.parentNode.parentNode.style.backgroundColor='#C0C0FF';
               	} else {
               	    if (BrowserCode == 'IE')
               		    frm.elements[h].parentElement.parentElement.parentElement.style.backgroundColor='#FFFFFF';
                   	else
                   	    frm.elements[h].parentNode.parentNode.parentNode.style.backgroundColor='#FFFFFF';
               	}
            }
        } //loop
	} 
}