//Guideline @ 2009 Jun 24
//Each time changing content, increase file's version number at style2.jin
var rl = 0;

var ie = 0;
var ns = 0;
var mz = 0;
var kq = 0;
var op = 0;

var glb_version;
var glb_platform;

detectBrowser();

if (!mz && !ns && !ie && !op && !kq)
{
	alert("The layer javascript is not supported in this browser!");
} else {
	rl = 1;
}

function IsPressEnter(myfield,e) {
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return false;
	if (keycode == 13){
	   return true;
	} else
	   return false;
}

function WindowIsClosed (win) {
	try{ 
		if (win==null){return true;}
		if( ( ua.indexOf('gecko')!=-1||ua.indexOf('msie')!=-1)&& ua.indexOf('win')!=-1) {			
			if(typeof(win.closed) == 'unknown') { return true;}//permission denied error
			if (win && win.closed) { return true;}//permission denied error
		}
	}
	catch(err) {
			return true;
	}
	return false;
}

function AddToBookmarks (url,title) { 
	if (window.sidebar) { 
		window.sidebar.addPanel(title, url, ""); 
	} else if( document.all ) { 
		window.external.AddFavorite( url, title); 
	} else if( window.opera && window.print ) { 
		return true; 
	} 
}  

function IsChrome(){
	var var_useragent = navigator.userAgent.toLowerCase();
	if (var_useragent.indexOf("chrome") > -1) {	
		return false; //return true;
	}
	return false;
}
function detectBrowser()
{
	var var_useragent = navigator.userAgent.toLowerCase();
	glb_version = parseInt(navigator.appVersion);
	if (var_useragent.indexOf("win") > -1) { glb_platform = "win"; }
	else if (var_useragent.indexOf("mac") > -1) { glb_platform = "mac";}
	else if (var_useragent.indexOf("linux") > -1) {	glb_platform = "linux";}
	else { glb_platform = "other";}

	// detecting konqueror
	if ((var_useragent.indexOf("konqueror") != -1 || var_useragent.indexOf("safari") != -1) &&
		document.getElementById && document.getElementsByTagName &&
		document.childNodes && document.nodeName) {
		kq = 1;
		return;
	}

	//detecting opera
	if ((var_useragent.indexOf("opera") != -1 || var_useragent.indexOf("Opera") != -1) && // bugfix for opera 6.0
		document.getElementById) {
		op = 1;
		return;
	}

	if (var_useragent.indexOf("mozilla") != -1 && glb_version >= 4) {
		// detecting mozilla
		if (document.getElementById && 	document.getElementsByTagName &&
			document.childNodes && document.hasAttributes &&
			document.nodeName) {
			mz = 1;
			return;
		} else if (glb_version < 5)// detecting netscape
		{
			ns = 1;
			return;
		}
	}
};

var ua        = navigator.userAgent.toLowerCase(); 
var is_pc_ie  = ( (ua.indexOf('msie') != -1 ) && ( ua.indexOf('win') != -1 ) && ( ua.indexOf('opera') == -1 ) && ( ua.indexOf('webtv') == -1 ) );

function swapMe(obj, up, down) { 
    obj.style.background = "url("+down+")"; 
    obj.onmouseup = function() { 
        obj.style.background = "url("+up+")"; 
    } 
    obj.onmouseout = function() { 
        obj.style.background = "url("+up+")"; 
    } 
} 

function swapMeImg(img, up, down) { 
	img.setAttribute("src",down);
    img.onmouseup = function() { 
		img.setAttribute("src",up);
    } 
    img.onmouseout = function() { 
        img.setAttribute("src",up);
    } 
} 

function SwapImage(img,file){
	img.setAttribute("src","images/"+file);
}

function RestoreImage(img,file){
	img.setAttribute("src","images/"+file);
}

function ChangeImage(img,file){
	img.setAttribute("src",file);
}

function ChangeLink(a,link){
	if(link == null) a.href="";
	if(link.indexOf("://") ==-1)
		link = "http://"+link;
	a.href = link;
}
var preloads=[]; 

function preload(){
    for (i=0;i<preload.arguments.length;i++){
        preloads[preloads.length] = new Image()
        preloads[preloads.length - 1].src = preload.arguments[i]
    }
}

function viewprogress (doc,b) {
	obj=doc.getElementById("ProgressLayer");
	if(obj){
		if (b)
			obj.style.visibility="visible";
		else
			obj.style.visibility="hidden";
	}
}

function resizeHandler (doc) {    
    obj=doc.getElementById("ProgressLayer");	
	if(obj){
	    obj.style.width=getWindowWidth()+"px";
		obj.style.height=getWindowHeight()+"px";
	}
}

// functions to get the window dimensions
function getWindowWidth(){
	var var_windowwidth = 0;
	if (op || ns || kq)	{
		var_windowwidth = window.innerWidth;
	} else if (mz)	{
		if (window.SIZER_LAYER && window.SIZER_LAYER.offsetWidth < window.innerWidth) 	{
			var_windowwidth = window.SIZER_LAYER.offsetWidth;
		} else	{
			var_windowwidth = window.innerWidth;
		}
	} else if (ie) {
		var_windowwidth = document.body.clientWidth;
	}
	return var_windowwidth;
};

function getWindowHeight() {
	var var_windowheight = 0;
	if (op || ns || kq) {
		var_windowheight = window.innerHeight;
	} else if (mz) {
		if (window.SIZER_LAYER && window.SIZER_LAYER.offsetHeight < window.innerHeight) {
			var_windowheight = window.SIZER_LAYER.offsetHeight;
		} else	{
			var_windowheight = window.innerHeight;
		}
	} else if (ie) {
		var_windowheight = document.body.clientHeight;
	}
	return var_windowheight;
};

window["WindowRef"]= new Array();
var mywin = null;
var mysync = false;
var hasparent = (parent!=null);
var hasopener = (window.opener!=null);

var reloaded = false;

function openpopup(url,name,w,h){
	name = name.replace("[","_");
	name = name.replace("]","_");
	winpops=window.open(url,name,"width="+w+",height="+h+",status=1,scrollbars=yes,resizable=yes");
	if (url.match(/^transformer/))
		return;
	addChild(window,winpops);	
	if (winpops!=null && (typeof(WindowIsClosed) == 'function' && !WindowIsClosed(winpops)))
		try{winpops.blur(); winpops.focus();}catch(err){}
}

function openpopup_new(url,name,w,h){
	name = name.replace("[","_");
	name = name.replace("]","_");
	winpops=window.open(url,name,"width="+w+",height="+h+",status=1,scrollbars=yes,resizable=yes");
	if (url.match(/^transformer/))
		return winpops;
	addChild(window,winpops);	
	if (winpops!=null && (typeof(WindowIsClosed) == 'function' && !WindowIsClosed(winpops)))
		try{ winpops.blur(); winpops.focus();}catch(err){}
	return winpops;
}

function openpopup2(url,name,w,h){
	winpops=window.open(url,name,"width="+w+",height="+h+",status=1,scrollbars=yes,resizable=yes");	
	winpops.blur(); winpops.focus();
}

function openNewWindow(url,name,w,h){
OpenWin = this.open(url, name, "width="+w+",height="+h+",toolbar=yes,menubar=yes,location=yes,scrollbars=yes,resizable=yes");
}

function isChild(parentwin, winpops) {
	if (parentwin==null)
		return true;

	if (parentwin && !parentwin.closed && (parentwin.WindowRef!=null)) {		
	for (var i=0; i<parentwin.WindowRef.length; i++) {
			if (parentwin && (!parentwin.closed) && (parentwin.WindowRef!=null)) {
			if(parentwin.WindowRef[i]==winpops) 
				return true;
	}
		}
	}
	return false;
}

function addChild(parentwin, winpops) {
	var found = false;
	try{			
		var ua = navigator.userAgent;
		if( ( ua.indexOf('Gecko')!=-1||ua.indexOf('MSIE')!=-1)&& ua.indexOf('Win')!=-1) {
			if (parentwin && !parentwin.closed && winpops && !winpops.closed) {		
				if (parentwin.WindowRef==null)
					parentwin.WindowRef = new Array();
				if (parentwin && !parentwin.closed) {	
					for (var i=0; i<parentwin.WindowRef.length; i++) {
						if(parentwin.WindowRef[i]==winpops) found = true;
					}
				}
				if (!found) {
					if (parentwin && !parentwin.closed && winpops && !winpops.closed)
						parentwin.WindowRef[parentwin.WindowRef.length] = winpops;
				}
			}
		} else if (parentwin !=null) {
			if (parentwin.WindowRef==null)
				parentwin.WindowRef = new Array();
			for (var i=0; i<parentwin.WindowRef.length; i++) {
				if(parentwin.WindowRef[i]==winpops) found = true;
			}
			if (!found) {
				if (parentwin && !parentwin.closed && winpops && !winpops.closed)
					parentwin.WindowRef[parentwin.WindowRef.length] = winpops;
			}
		}
	} catch(err) {
	}
}

var my_win = null;
var my_opener = null;
function checkparent1 (win, opener) {
	my_win = win;
	my_opener = opener;
	if (my_win!=null) {
		try{	
			var ua = navigator.userAgent;
			if(( ua.indexOf('Gecko')!=-1||ua.indexOf('MSIE')!=-1)&& ua.indexOf('Win')!=-1) {
				if ((my_opener!=null)&&(my_opener.closed)) {
					my_win.close();
				} else if (my_opener!=null) {
					addChild(my_opener, my_win);
				} else if (my_opener == null) {
					my_win.close();
				}
				setTimeout("checkparent1(my_win, my_opener);",1000);
			} else {
				if (my_opener== null) {
					my_win.close();
				} else {
					addChild(my_opener, my_win);
				}
				setTimeout("checkparent1(my_win, my_opener);",100);
			} 
		} catch (err) {alert(err);}
	}
}
function checkparent (sync) {
	mysync = sync;
	if (hasparent)
		mywin = parent.window;
	else
		mywin = window;
	checkparent1(mywin, mywin.opener);
}

function checkparent_OLD (sync) {
	mysync = sync;
	if (hasparent)
		mywin = parent.window;
	else
		mywin = window;
		
	if (mywin!=null) {
		if (hasopener) {		
			try{	
				var ua = navigator.userAgent;
				if( ( ua.indexOf('Gecko')!=-1||ua.indexOf('MSIE')!=-1)&& ua.indexOf('Win')!=-1) {
					if ((mywin.opener!=null)&&(mywin.opener.closed)) {
				mywin.close();
					} else if (mywin.opener!=null) {
						addChild(mywin.opener, window);
					} else if (mywin.opener == null) {
						mywin.close();
					}
				} else {
					if (mywin.opener == null) {
						mywin.close();
					} else {
						addChild(mywin.opener, window);
					}
				} 
				setTimeout("checkparent (mysync);",100);
			} catch (err) {
					}
				}
		}
}

function updateParent (winpops) {
	if (winpops!=null) {
		if (winpops.opener==null) {
			winpops.location.reload();
		} else if (!winpops.opener.closed) {
			updateParent (winpops.opener);
		}	
}
}

function inputReadOnly(id,state) {
	var divObj = null;
	if (document.getElementById) {
		divObj = document.getElementById(id);
	} else if(document.all) {
		divObj = document.all(id);
	} else if (document.layers) {
		divObj = document.layers[id];
	}
	if(state && divObj) {
		divObj.readOnly=true;
	} else if(divObj) {		
		divObj.readOnly=false;
	}
} 


function getNumeric (s) {
	var dResult = 0;
	var strOrder="";	
	if (isNaN(Number(s))) {
		dResult = s.substring(0,s.length-1);
		strOrder = s.substring(s.length-1,s.length);
		if (strOrder=="p")
		  dResult*=1e-12;
		else if (strOrder=="n")
		  dResult*=1e-9;
		else if (strOrder=="u")
		  dResult*=1e-6;
		else if (strOrder=="m")
		  dResult*=1e-3;
		else if (strOrder=="c")
		  dResult*=1e-2;
		else if (strOrder=="k")
		  dResult*=1e3;
		else if (strOrder=="K")
		  dResult*=1e3;
		else if (strOrder=="M")
		  dResult*=1e6; 
		else if (strOrder=="g")
		  dResult*=1e9;
		else if (strOrder=="G")
		  dResult*=1e9;
	} else {
		dResult = s;
	}
	return Number(dResult);
}

//reverse of getNumeric
function getNumericFormat (aNum) {
	if (!isFinite(aNum))
		return "Infinite";
	if (isNaN(aNum))
		return "NaN";
	var sNum = 0;
	var dNum = Math.abs(aNum);

	if (dNum >= 0 && dNum < 1E-38)
		sNum = "0";
	else if (dNum<1e-18)//dNum == 0
		sNum = "" + dNum;
	else if (dNum >= 0 && dNum < 1E-15)
		sNum = "" + dNum;
	else if (dNum >= 0 && dNum < 1E-9)
		sNum = Math.round(dNum*1E15)/1E3+"p";
	else if (dNum >= 1E-9 && dNum < 1E-6)
		sNum = Math.round(dNum*1E12)/1E3+"n";
	else if (dNum >= 1E-6 && dNum < 1E-3)
		sNum = Math.round(dNum*1E9)/1E3+"u";
	else  if (dNum >= 1E-3 && dNum < 1)
		sNum = Math.round(dNum*1E3)/1E3+"";
	else  if (dNum >= 1 && dNum < 1E3)
		sNum = Math.round(dNum*1E3)/1E3;
	else if (dNum >= 1E3 && dNum < 1E6)
		sNum = Math.round(dNum)/1E3+"k";
	else if (dNum >= 1E6 && dNum < 1E9)
		sNum = Math.round(dNum)/1E6+"M";
	else if (dNum >= 1E9)
		sNum = Math.round(dNum)/1E9+"G";

	return (aNum<0) ? "-"+sNum : sNum;
}

function BoundValue(obj, val){
	if (getNumeric(obj.value)>Number(val)){
		alert('The value is greater than the limit ('+val+' m)');
		obj.value = val;
	}
}

function addOptions(selbox, text, value) {
	if (selbox.options[0].value == " ") {
		selbox.options.length = 0;
	}
	var fnd = 0;
	for (n=0;n<selbox.length;n++){
		if(selbox.options[n].text == text){
			fnd = 1;
		}
	}
	if (!fnd) {
		var index = selbox.options.length;
		selbox.options[index] = new Option(text, index);
		selbox.options[index].value = value;
	}
}

function clearOptions(selbox) {
	selbox.options.length = 0;
}

function delOptions(selbox, text) {
	if (selbox.options[0].value != " ") {
		nomatch = new Array();
		for (n=0;n<selbox.length;n++){
			if(selbox.options[n].text != text){
				nomatch[nomatch.length] = 
					new Array(selbox.options[n].value, selbox.options[n].text);
			}
		}
		clearOptions(selbox);
		if (nomatch.length == 0) {
			selbox.options[0]= new Option("Select entries from the list at left"," ");
		} else {
			for (n=0;n<nomatch.length;n++){
				selbox.options[n] = new Option(nomatch[n][1], nomatch[n][0]);
			}
		}
	}
}

function updateLang (slang) {
	if (document.updateLangForm) {		
		document.updateLangForm.sLang.value = slang;
		document.updateLangForm.submit();
	}
}

function hidestatus(){
window.status=''
return true
}

if (document.layers)
document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT | Event.MOUSEMOVE)

document.onmouseover=hidestatus
document.onmousein=hidestatus

function openAnalysisWindow(sDesignator, tempID,
							sintegrated,bTransformerAnalysis,
							ComponentType,iNumberOfSeries,
							iNumberOfParallel,iNumberOfStack,
							tmpFile, iWdgIdx, 
							allWire,PS_Number,bIsCircuitOnly){
		var slink = '../component_analysis.jsp?designator='+sDesignator+'&componentType='+ComponentType+'&integrated='+sintegrated+'&PS_Number='+PS_Number; 
		slink+='&tmpID='+tempID;
		if(tmpFile != 'null')
			slink+='&tmpFile='+tmpFile;
			slink+='&tmpPP='+iNumberOfParallel;
			slink+='&tmpSS='+iNumberOfSeries;
		if(iNumberOfStack != -1)
			slink+='&tmpStacked='+iNumberOfStack;
		
		if(iWdgIdx != -1)
		slink+='&tmpWdgIdx='+iWdgIdx;
		slink+='&allwire='+allWire;
		if(bIsCircuitOnly!= null && bIsCircuitOnly == 'yes')
		slink+='&circuitOnly='+bIsCircuitOnly;
		openpopup(slink,''+PS_Number+'_'+sDesignator+'_comp_analysis',505,535);
}

function common(){
//alert("This is common");
}
