
// Generic DIV rotation. Needs to follow specific convention: <div id="autoShow_GROUP_X" class="hideDiv"> where X is a number from 1 to *
function autoshow(group){
var numDivs=0;
x=document.getElementsByTagName("div");

for (i=0;i<x.length;i++){
if(x[i].id.match("autoShow_"+group+"_"))++numDivs;
}

var randomNum = Math.floor(Math.random()*numDivs);
++randomNum;
document.getElementById("autoShow_"+group+"_"+randomNum).style.display="block";

}



// adds an onload function without overriding previous onload handlers
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
	window.onload = func;
  } else {
	window.onload = function() {
	  if (oldonload) {
		oldonload();
	  }
	  func();
	}
  }
}

// function used in device matrix pages
function selectDevice(target) {
    if (target != "") {
        for(i=0; i < document.forms[1].length; i++) {
            document.forms[1].elements[i].selectedIndex = 0;
        }
        document.location = target;
    }
}

// function used in device matrix pages
function filterDevice() {
    target = document.getElementById("sort").deviceSearch.options[document.getElementById("sort").deviceSearch.selectedIndex].value;
    document.location = target;
}

// Functions needed in abstract tool pages

function selectProduct(target) {
    if (target != "") {
        document.location = target;
    }
}

// download of single file (abstract tool page)
function singleFile2() {

    var parameter = document.getElementById("version").fileUri.value;
    var split = parameter.lastIndexOf('*');
    var fileName = parameter.substring(split+1, parameter.length);
    var path = parameter.substring(0, split); 

    var DLMethod1 = "s";
    //var DLMethod1 = "a";
    //if(document.getElementById("version").downloadMethod[0].checked) { DLMethod1 = "s"; }

    if(DLMethod1 == "a") {startdm(path, fileName); } else { document.location = path; }
}

// download of multiple file (abstract tool page)
function getDLMethod() {

    var parameter = document.getElementById("version").fileId.options[document.getElementById("version").fileId.selectedIndex].value;
    var split = parameter.lastIndexOf('*');
    var fileName = parameter.substring(split+1, parameter.length);
    var path = parameter.substring(0, split);

    var DLMethod = "s";
    //var DLMethod = "a";
    //if(document.getElementById("version").downloadMethod[0].checked) { DLMethod = "s"; }

    if(DLMethod == "a") { startdm(path, fileName); } else { document.location = path; }
}

// download with download manager (abstract tool page)
function startdm(uri, fileName) {

    var now = new Date();
    var windowName = now.getFullYear() + "" + now.getMonth() + "" + now.getDate() + "" + now.getHours() + "" + now.getMinutes() + "" 
+ now.getSeconds();
    var url="/dynamic/download_manager.html?url=" + uri + "&filename=" + fileName;
    //var url = "/downloadmanager/check_disc2?URI=" + uri + "&btype=" + escape(checkSystem());

    
MM_openBrWindow(url,windowName,"toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=420,height=330");
}

// request serial number (abstract tool page)
function requestSerial() {
    var fileId = "";
    if (document.getElementById("version").fileIdSerial) {
        var parameter = document.getElementById("version").fileIdSerial.options[document.getElementById("version").fileIdSerial.selectedIndex].value;
        var split = parameter.indexOf('-');
        var productName = parameter.substring(0,split);
        var productVersion = parameter.substring(split+1,parameter.length);
    } else {
        alert("Failed");
    }
    var url = "/product_request_serial?productName=" + productName + "&productVersion=" + productVersion;
    if (url != "") {
        document.location = url;
    }
}

//abstract tool page
function getGenericURI() {
    var id = document.getElementById('linkURL');
    var parameter = document.getElementById("version").fileId.options[document.getElementById("version").fileId.selectedIndex].value;
    var split = parameter.lastIndexOf('*');
    var path = parameter.substring(0, split);
    
    id.href = path;
}

/* tooltip (used in registration + profile page) */
function ietruebody(){
return (document.compatMode&&document.compatMode!="BackCompat")?document.documentElement:document.body
}

function tip(t){
try{
if (ns6||ie){
tipobj.innerHTML=t
enabletip=true
return false
}
}catch(err){}
}

function movetip(e){
try{
if (enabletip){
var curX=(ns6)?e.pageX:event.clientX+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY:event.clientY+ietruebody().scrollTop;
var rightedge=ie&&!window.opera?ietruebody().clientWidth-event.clientX-ttip_x:window.innerWidth-e.clientX-ttip_x-20
var bottomedge=ie&&!window.opera?ietruebody().clientHeight-event.clientY-ttip_y:window.innerHeight-e.clientY-ttip_y-20
var leftedge=(ttip_x<0)?ttip_x*(-1):-1000
if (rightedge<tipobj.offsetWidth)
tipobj.style.left=ie?ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px":window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
else if (curX<leftedge)
tipobj.style.left="5px"
else
tipobj.style.left=curX+ttip_x+"px"
if (bottomedge<tipobj.offsetHeight)
tipobj.style.top=ie?ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-ttip_y+"px":window.pageYOffset+e.clientY-tipobj.offsetHeight-ttip_y+"px"
else
tipobj.style.top=curY+ttip_y+"px"
tipobj.style.visibility="visible"
}
}catch(err){}
}

function htip(){
try{
if (ns6||ie){
enabletip=false
tipobj.style.visibility="hidden"
tipobj.style.left="-1000px"
tipobj.style.backgroundColor=''
tipobj.style.width=''
}
}catch(err){}
}

function login(){
	document.location = '/dynamic/after_login.html?url='+encodeURIComponent(document.location);
}

/* end of tooltip */

/*** Functions needed in force_platform.jsp (inside dynamic)***/
function openDirectSFDCLink() {
    var width  = 900;
    var height = 600;
    var left   = (screen.width  - width)/2;
    var top    = (screen.height - height)/2;
    var params = 'width='+width+', height='+height;
    params += ', top='+top+', left='+left;
    params += ', menubar=no';
    params += ', resizable=yes';
    params += ', scrollbars=yes';
    params += ', toolbar=no';

    window.open('https://emea.salesforce.com/secur/login_portal.jsp?orgId=00D20000000Jsbt&amp;portalId=06020000000512f', 'secureLogin', params);
    return false;
}

function hideSFDCInfo() {
	document.getElementById("SFDCInfo").style.display='none';                
}
/*** End of functions needed in force_platform.jsp ***/

/**
 * Helper function for altering <meta>-tags
 * Usage examples:
 *  alterMeta({'PATH.1':'Devices', 'PATH.2':'Search'});  // change value
 *  alterMeta({'meta1':'meta3'}, 'name');  // rename
 *  alterMeta({'PATH.2.LABEL':''});        // delete
 */
function alterMeta(alterMap, valueAttribute, createMissing) {
  if(typeof valueAttribute == 'undefined') valueAttribute='content';
  if(typeof createMissing == 'undefined') createMissing=true;
  var allMetas = document.getElementsByTagName("meta");
  var headEl = document.getElementsByTagName("head")[0];

  for(var n in alterMap) {
    var i = 0;
    for (; i < allMetas.length; i++) {
      if(allMetas[i].getAttribute("name") == n) {
        // if new value is empty, delete the element
        if(alterMap[n] == '')
          headEl.removeChild(allMetas[i]);
        else
          allMetas[i].setAttribute(valueAttribute, alterMap[n]);
        // continue with next one from alterMap
        break;
      }
    }
    // if no such meta tag; create it?
    if(createMissing && i == allMetas.length) {
        var newEl = document.createElement("meta");
        newEl.setAttribute("name", n);
        newEl.setAttribute("content", alterMap[n]);
        headEl.appendChild(newEl)
    }
  }
}

