function hidediv(obj, options) {
 if(Element.visible(obj)) {
  Effect.Fade(obj, options);
 }
}

function showdiv(obj, options) {
 if(!Element.visible(obj)) {
  Effect.Appear(obj, options);
 }
}

function quickhidediv(obj) {
  hidediv(obj, { duration: 0.5 });
}

function quickshowdiv(obj) {
  showdiv(obj, { duration: 0.5 });
}

function onload_checkcookie() {
  if(getCookie("licenseagree") == "1.2") {
    hidediv('import', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
    hidediv('license', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
    hidediv('outdiv', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
    showdiv('vmxdiv', { queue: {position: 'end', scope: 'divs'}, duration: 0.5 });

    showdiv('aboutbtn', { duration: 0.33 });
    showdiv('licbtn', { duration: 0.33 });
    showdiv('vmxbtn', { duration: 0.33 });
    showdiv('importbtn', { duration: 0.33 });
  } else {
    hidediv('outdiv', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
    hidediv('vmxdiv', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
    hidediv('about', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
    showdiv('license', { queue: {position: 'end', scope: 'divs'}, duration: 0.5 });
    hidediv('vmxbtn', { duration: 0.33 });
    hidediv('licbtn', { duration: 0.33 });
    hidediv('aboutbtn', { duration: 0.33 });
    hidediv('importbtn', { duration: 0.33 });
  }
}

function importvmx() {
  readvmx();
  showform();
}

function showform() {
 hidediv('import', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('license', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('outdiv', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('about', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });

 showdiv('aboutbtn', { duration: 0.33 });
 showdiv('licbtn', { duration: 0.33 });
 showdiv('vmxbtn', { duration: 0.33 });
 showdiv('importbtn', { duration: 0.33 });

 showdiv('vmxdiv', { queue: {position: 'end', scope: 'divs'}, duration: 0.5 });
 deleteCookie('licenseagree');
 setCookie('licenseagree', '1.2', 'Fri, 01-Jan-2020 00:00:01 GMT');
}

function showlicense() {
 hidediv('import', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('outdiv', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('vmxdiv', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('about', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('vmxbtn', { duration: 0.33 });
 hidediv('licbtn', { duration: 0.33 });
 hidediv('aboutbtn', { duration: 0.33 });
 hidediv('importbtn', { duration: 0.33 });
 showdiv('license', { queue: {position: 'end', scope: 'divs'}, duration: 0.5 });
}

function showimport() {
 hidediv('license', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('outdiv', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('vmxdiv', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('about', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('vmxbtn', { duration: 0.33 });
 hidediv('licbtn', { duration: 0.33 });
 hidediv('aboutbtn', { duration: 0.33 });
 hidediv('importbtn', { duration: 0.33 });
 showdiv('import', { queue: {position: 'end', scope: 'divs'}, duration: 0.5 });
}

function showabout() {
 hidediv('import', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('outdiv', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('vmxdiv', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('license', { queue: {position: 'front', scope: 'divs'}, duration: 0.5 });
 hidediv('vmxbtn', { duration: 0.33 });
 hidediv('licbtn', { duration: 0.33 });
 hidediv('aboutbtn', { duration: 0.33 });
 hidediv('importbtn', { duration: 0.33 });
 showdiv('about', { queue: {position: 'end', scope: 'divs'}, duration: 0.5 });
}

var drive = new Array("0", "1", "2", "3", "4", "5", "6", "8", "9", "a", "b", "c", "d", "e", "f");
var s_vramsize, s_svgamaxsize;
var s_memsize, s_ethcount;
var s_ide0count, s_ide1count;
var s_scsi0count, s_scsi1count, s_scsi2count, s_scsi3count;

function newSliderPair( tag, onChange ) {
	var form = $("vmxform");
	if(!tag)
		return;

	if(!onChange)
		onChange = '';

	eval( 's_' + tag + ' = new Control.Slider("slider-input-' + tag + '", "slider-' + tag + '", {' +
	"	axis: 'horizontal', minimum: 0, maximum: (form." + tag + ".length-1)," +
	'	range: $R(0, (form.'+ tag +'.length-1)),' +
	'	onChange: function (v) {' +
	'		var form = $("vmxform");' +
	'		var i = parseInt(v + 0.4);' +
	'' +
	'		if(form.' + tag + '.selectedIndex != i) {' +
	'			form.' + tag + '.selectedIndex = i;' +
	'		}' +
	'		if(v != i) s_' + tag + '.setValue(i);' +
	onChange +
	'	},'+
	'	onSlide: function (v) {' +
	'		var form = $("vmxform");' +
	'		var i = parseInt(v + 0.4);' +
	'' +
	'		if(form.' + tag + '.selectedIndex != i)' +
	'			form.' + tag + '.selectedIndex = i;' +
//	onChange +
	'	}' +
	'});' +
	's_' + tag + '.trackLength=200;' +
	's_' + tag + '.setValue(form.' + tag + '.selectedIndex);' +
	'' +
	'form.' + tag + '.onchange = function () {' +
	'	s_' + tag + '.setValue(this.selectedIndex);' +
	onChange +
	'};'
	);
}

function ethcount_onchange() {
   var form = $("vmxform");
   switch(form.ethcount.selectedIndex) {
    case 1:
     quickshowdiv("ethernet0");
     hidediv("ethernet1");
     hidediv("ethernet2");
     hidediv("ethernet3");
     break;
    case 2:
     quickshowdiv("ethernet0");
     quickshowdiv("ethernet1");
     hidediv("ethernet2");
     hidediv("ethernet3");
     break;
    case 3:
     quickshowdiv("ethernet0");
     quickshowdiv("ethernet1");
     quickshowdiv("ethernet2");
     hidediv("ethernet3");
     break;
    case 4:
     quickshowdiv("ethernet0");
     quickshowdiv("ethernet1");
     quickshowdiv("ethernet2");
     quickshowdiv("ethernet3");
     break;
    default:
     hidediv("ethernet0");
     hidediv("ethernet1");
     hidediv("ethernet2");
     hidediv("ethernet3");
   }
};

function idecount_onchange(tag) {
   var form = $("vmxform");
   var count = eval("form.ide" + tag + "count.selectedIndex");
   switch(count) {
    case 1:
     quickshowdiv("ide"+ tag +"0");
     quickhidediv("ide"+ tag +"1");
     break;
    case 2:
     quickshowdiv("ide"+ tag +"0");
     quickshowdiv("ide"+ tag +"1");
     break;
    default:
     quickhidediv("ide"+ tag +"0");
     quickhidediv("ide"+ tag +"1");
   }
};

function scsicount_onchange(tag) {
	var form = $("vmxform");
	var count = eval("form.scsi" + tag + "count.selectedIndex");
	if(count>0) {
		quickshowdiv("scsi" + tag);
		quickshowdiv("scsi" + tag + "7");
	} else {
		quickhidediv("scsi" + tag);
		quickhidediv("scsi" + tag + "7");
	}
	var i;
	for(i=0; i<15; i++) {
		if(i>=count) {
			quickhidediv("scsi" + tag + drive[i]);
		} else {
			quickshowdiv("scsi" + tag + drive[i]);
		}
	}
};

function initsliders() {
  var form = $("vmxform");
  var i;

  newSliderPair('memsize', '');
  newSliderPair('svgamaxsize', '');
  newSliderPair('vramsize', '');

  newSliderPair('ethcount', 'ethcount_onchange();');

  quickshowdiv("ethernet0");
  quickhidediv("ethernet1");
  quickhidediv("ethernet2");
  quickhidediv("ethernet3");

  newSliderPair('ide0count', 'idecount_onchange("0");');

  quickshowdiv("ide00");
  quickhidediv("ide01");

  newSliderPair('ide1count', 'idecount_onchange("1");');

  quickshowdiv("ide10");
  quickhidediv("ide11");


  newSliderPair('scsi0count', 'scsicount_onchange("0");');
  quickhidediv("scsi0");
  for(i=0; i<15; i++)
    quickhidediv("scsi0" + drive[i]);

  newSliderPair('scsi1count', 'scsicount_onchange("1");');
  quickhidediv("scsi1");
  for(i=0; i<15; i++)
    quickhidediv("scsi1" + drive[i]);

  newSliderPair('scsi2count', 'scsicount_onchange("2");');
  quickhidediv("scsi2");
  for(i=0; i<15; i++)
    quickhidediv("scsi2" + drive[i]);

  newSliderPair('scsi3count', 'scsicount_onchange("3");');
  quickhidediv("scsi3");
  for(i=0; i<15; i++)
    quickhidediv("scsi3" + drive[i]);

}

function usb_present_onClick() {
  var form = $("vmxform");
  if(form.usb_present.checked) {
    form.usb_generic_autoconnect.disabled=false;
  } else {
    form.usb_generic_autoconnect.disabled=true;
  }
};

function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}

function loadincludes() {
  var elm, panel, incl;

  pane = $("center-panel");
  incl = getElementsByClassName(pane, 'div', 'panel-include');
  if(incl) {
     for( i=0, elm; elm=incl[i++]; ) {
       clientSideInclude(elm.id, elm.id+'.html');
     }
  }

  pane = $("tab-pane-1");
  incl = getElementsByClassName(pane, 'div', 'tab-page');

  if(incl) {
     for( i=0, elm; elm=incl[i++]; ) {
       clientSideInclude(elm.id, elm.id+'.html');
     }
  }

  clientSideInclude("tips-panel", 'tips/windowsxp.html');
}

function do_onload() {
  loadincludes();
  initsliders();
  setupAllTabs();
  if(NiftyCheck()) {
    Rounded("div.shadow","bottom","transparent","#5E6369", "small");
    Rounded("div.group","all","#5E6369","#7D9BC6","small smooth");
    Rounded("div.inner","bottom","#7D9BC6","#C4D1E6","small smooth");
    Rounded("div#header","top","#000","#FFF","smooth");
    Rounded("div#footer","bottom","#000","#9FA9B3","smooth");
    Rounded("div.title","top","#7D9BC6","#FFF","small smooth");
//    Rounded("div.tab-pane","bottom","#7D9BC6","#C4D1E6","small smooth");
  }
  onload_checkcookie();
}

function setethdev(x) {
 var form = $("vmxform");
  form.ethernet0_virtualdev.selectedIndex=x;
  form.ethernet1_virtualdev.selectedIndex=x;
  form.ethernet2_virtualdev.selectedIndex=x;
  form.ethernet3_virtualdev.selectedIndex=x;
}

function setscsidev(x) {
 var form = $("vmxform");
  form.scsi0_virtualdev.selectedIndex=x;
  form.scsi1_virtualdev.selectedIndex=x;
  form.scsi2_virtualdev.selectedIndex=x;
  form.scsi3_virtualdev.selectedIndex=x;
}

function guestosChanged(x) {
 
  setethdev(0);
  setscsidev(1);
  s_memsize.setValue(8);


  switch(x.toLowerCase()) {
	case "darwin":
		clientSideInclude("tips-panel", 'tips/darwin.html');
		setethdev(0);
		s_memsize.setValue(8);
		break;

	case "freebsd":
		clientSideInclude("tips-panel", 'tips/freebsd.html');
		setethdev(0);
		s_memsize.setValue(8);
		break;

	case "vmkernel":
	case "os2experimental":
	case "other":
		clientSideInclude("tips-panel", 'tips/default.html');
		setethdev(0);
		s_memsize.setValue(8);
		break;

	case "solaris10":
	case "solaris9":
	case "solaris8":
	case "solaris7":
	case "solaris6":
	case "solaris":
		clientSideInclude("tips-panel", 'tips/solaris.html');
		setethdev(0);
		s_memsize.setValue(8);
		break;

	case "linux":
	case "other26xlinux":
	case "other24xlinux":
	case "ubuntu":
	case "turbolinux":
	case "mandrake":
	case "sjds":
	case "nld9":
	case "sles":
	case "suse":
	case "rhel4":
	case "rhel3":
	case "rhel2":
	case "redhat":
		clientSideInclude("tips-panel", 'tips/linux32.html');
		setethdev(0);
		s_memsize.setValue(8);
		break;

	case "winvista":
	case "longhorn":
	case "winnetbusiness":
	case "winnetenterprise":
	case "winnetstandard":
	case "winnetweb":
	case "winxppro":
	case "winxphome":
		clientSideInclude("tips-panel", 'tips/windowsxp.html');
		setethdev(0);
		s_memsize.setValue(8);
		break;

	case "win2000advserv":
	case "win2000serv":
	case "win2000pro":
	case "winnt":
		clientSideInclude("tips-panel", 'tips/windowsnt.html');
		setethdev(0);
		s_memsize.setValue(4);
		break;

	case "winme":
	case "win98":
	case "win95":
		clientSideInclude("tips-panel", 'tips/windows9x.html');
		setethdev(0);
		s_memsize.setValue(3);
		break;

	case "netware6":
	case "netware5":
	case "netware4":
	case "netware":
		clientSideInclude("tips-panel", 'tips/netware.html');
		setethdev(0);
		s_memsize.setValue(4);
		break;

	case "win31":
	case "windows":
	case "dos":
		clientSideInclude("tips-panel", 'tips/msdos.html');
		setethdev(0);
		s_memsize.setValue(2);
		break;

	case "other-64":
		clientSideInclude("tips-panel", 'tips/default64.html');
		setethdev(1);
		s_memsize.setValue(8);
		break;

	case "freebsd-64":
		clientSideInclude("tips-panel", 'tips/freebsd64.html');
		setethdev(1);
		s_memsize.setValue(8);
		break;

	case "otherlinux-64":
	case "other26xlinux-64":
	case "other24xlinux-64":
	case "ubuntu-64":
	case "sles-64":
	case "suse-64":
	case "rhel4-64":
	case "rhel3-64":
		clientSideInclude("tips-panel", 'tips/linux64.html');
		setethdev(1);
		s_memsize.setValue(8);
		break;

	case "winvista-64":
	case "longhorn-64":
	case "winnetenterprise-64":
	case "winnetstandard-64":
	case "winxppro-64":
		clientSideInclude("tips-panel", 'tips/windows64.html');
		setethdev(1);
		s_memsize.setValue(8);
		break;

	case "solaris10-64":
		clientSideInclude("tips-panel", 'tips/solaris64.html');
		setethdev(1);
		s_memsize.setValue(10);
		break;
  }
}