function makeRequest(){
        if(window.ActiveXObject){
                return new ActiveXObject("Msxml2.XMLHTTP");
        }
        // Firefox, Mozilla, Opera
        else {
                return new XMLHttpRequest();
        }
}

function getX(node) {
       var curleft = 0;
       if(node.offsetParent)
       while(1){
               curleft += node.offsetLeft;
               if(!node.offsetParent) break;
               node = node.offsetParent;
       }
       else if(node.x)
              curleft += node.x;
       return curleft;
}

function getY(node) {
       var curtop = 0;
       if(node.offsetParent)
       while(1){
               curtop += node.offsetTop;
               if(!node.offsetParent) break;
               node = node.offsetParent;
       }
       else if(node.y)
              curtop += node.y;
       return curtop;
}

function displayPNG(fileName, width, height, alt) {
   var source;

   if (getBrowser("agent") == "MSIE" && getBrowser("version") != "7.0") {
      if (alt) {
         source = "<span onmouseover=\"javascript:showLabel('"+ alt +"',event)\" onmouseout=\"javascript:hideLabel('"+ alt +"')\" style=\"width:"+ width +"px;height:"+ height +"px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ fileName +"');\"><img class=\"png\" src=\""+ fileName +"\" width="+ width +" height="+ height +" border=0></span>";
      }
      else {
         source = "<span style=\"width:"+ width +" px;height:"+ height +"px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ fileName +"');\"><img class=\"png\" src=\""+ fileName +"\" width=$width height="+ height +" border=0></span>";
      }
   }
   else {
      if (alt) {
         source = "<img src=\""+ fileName +"\" width="+ width +" height="+ height +" border=0 onmouseover=\"javascript:showLabel('"+ alt +"',event)\" onmouseout=\"javascript:hideLabel('"+ alt +"',event)\">";
      }
      else {
         source = "<img src=\""+ fileName +"\" width="+ width +" height="+ height +" border=0 align='left'>";
      }
   }

   return source;
}



function getBrowser(what) {
   var nav = navigator.userAgent;
   var browser_agent, browser_version;

	if (nav =="") { return false; }

	if (what == "version" || what == "agent") {

		if (nav.indexOf('MSIE') > -1) {
			var version = nav.indexOf("MSIE");
			browser_version = nav.substring(version+5, version+8);
			browser_agent = 'IE';
		}
		else if (nav.indexOf('Opera') > -1) {
			var version = nav.indexOf("Opera");
			browser_version = nav.substring(version+6, version+9);
			browser_agent = 'Opera';
		}
		else if (nav.indexOf('Firefox') > -1) {
			var version = nav.indexOf("Firefox");
			browser_version = nav.substring(version+8, version+11);
			browser_agent = 'Firefox';
		}
		else if (nav.indexOf('Netscape') > -1) {
			var version = nav.indexOf("Netscape");
			browser_version = nav.substring(version+9, version+12);
			browser_agent = 'Netscape';
		}

		if (what == "version") { return browser_version; }
		else if (what == "agent")   { return browser_agent; }

	} // end if

}



function showswitch() {
   if(document.getElementById('subhandle').src != syncer_uri +'?action=handles.sub') {
      document.getElementById('subhandle').src = syncer_uri +'?action=handles.sub';
   }
   document.getElementById('switch').style.visibility='visible';
}

function showMenu(menu) {
   // Copying data using InnerHTML could be faster, using this for now

   // Show selected menu
   document.getElementById(menu + '_button').className = 'menu_hide';
   document.getElementById(menu + '_menu').className = 'menu_show';

   var now = new Date();
   setCookie("menu_"+ menu, "true", new Date(now.getTime() + 1000 * 60 * 60 * 24), "/");
}

function showButton(menu) {
   // Copying data using InnerHTML could be faster, using this for now

   // Hide selected menu
   document.getElementById(menu + '_button').className = 'menu_show';
   document.getElementById(menu + '_menu').className = 'menu_hide';

   var now = new Date();
   setCookie("menu_"+ menu, "false", new Date(now.getTime() + 1000 * 60 * 60 * 24), "/");
}

var cOpen = null;
var cRow = null;
var inPopup = false;

function unMakeExpandMenu(){
   if(cOpen != null){
      unGrowDiv(cOpen, 240, 0);
      inPopup = false;
      if(cRow){
         unMarkRow(cRow);
      }
   }

   document.body.onclick = null;

   cRow = null;
   cOpen = null;
}



function makeExpandMenu(evt, resource, type, server, username, lock_status){
   var id = type +"_"+ server.substring(0,5) +"_"+ username;
   var cursor = getPosition(evt);

   document.body.onclick = null;


   if(cOpen != null && cOpen != id){
      unMakeExpandMenu();
   }


   if(type == "alias")
      var maxHeight = 157;

   else if(type == "ftp")
      var maxHeight = 179;

   else if(type == "db")
      var maxHeight = 157;

    else if(type == "backup")
      var maxHeight = 157;

    else if(type == "ftpbackup")
      var maxHeight = 157;

    else if(type == "sslview")
      var maxHeight = 157;


   if(!document.getElementById(id)){
      var div = document.createElement("div");

      div.className = "divexpand"
      if(type == "alias"){
         div.innerHTML = '<p class="headexpand">'+ username +' op '+ server +'&nbsp;&nbsp; <a onMouseover="this.style.cursor=\'pointer\'" onClick="unMakeExpandMenu();">[x]</a></p>' +
                     '<div>'+
                     '<a class="lnkexpand" href="?action=users.password&type=email&server='+ server +'&username='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/key1.png", 16, 16) +' Wachtwoord wijzigen</a>' +
                     '<a class="lnkexpand" href="?action=alias.add&type=exiuser&server='+ server +'&username='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/window_mail.png", 16, 16) +' Emailadres koppelen</a>' +
                     '<a class="lnkexpand" href="?action=spamvirus.listprofiles&server='+ server +'&username='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/shield_preferences.png", 16, 16) +' Spamfilter instellingen</a>' +
                     '<a class="lnkexpand" href="?action=backups.listtarballs&type=mail&server='+ server +'&name='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/first_aid.png", 16, 16) +' Backup beheer</a>' +
                     '<a class="lnkexpand" href="?action=users.status&type=email&server='+ server +'&username='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/"+ (lock_status == 1 ? 'lock.png' : 'lock_open.png'), 16, 16) +' '+ (lock_status == 1 ? 'Gebruiker blokkeren' : 'Gebruiker deblokkeren') +'</a>' +
                     '<a class="lnkexpand" href="?action=users.delete&type=email&server='+ server +'&username='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/delete2.png", 16, 16) +' Gebruiker verwijderen</a></div>';
         div.style.width = "240px";
         div.style.height = "10px";
      }

      else if(type == "ftp"){
         div.innerHTML = '<p class="headexpand">'+ username +' op '+ server +'&nbsp;&nbsp; <a onMouseover="this.style.cursor=\'pointer\'" onClick="unMakeExpandMenu();">[x]</a></p>' +
                     '<div>'+
                     '<a class="lnkexpand" href="?action=users.password&type=ftp&server='+ server +'&username='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/key1.png", 16, 16) +' Wachtwoord wijzigen</a>' +
                     '<a class="lnkexpand" href="?action=dns.add&type=vhost&server='+ server +'&username='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/window_gear2.png", 16, 16) +' Domein koppelen</a>' +
                     '<a class="lnkexpand" href="javascript:newManager2(\''+ server +'\',\''+ username +'\');">'+ displayPNG("/syncer/images/icons/16x16/server_client_exchange.png", 16, 16) +' Bestands beheer</a>' +
                     '<a class="lnkexpand" href="?action=tasks.create&server='+ server +'&username='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/alarmclock.png", 16, 16) +' Taak toevoegen</a>' +
                     '<a class="lnkexpand" href="?action=backups.listtarballs&type=ftp&server='+ server +'&name='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/first_aid.png", 16, 16) +' Backup beheer</a>' +
                     '<a class="lnkexpand" href="?action=users.status&type=ftp&server='+ server +'&username='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/"+ (lock_status == 1 ? 'lock.png' : 'lock_open.png'), 16, 16) +' '+ (lock_status == 1 ? 'Gebruiker blokkeren' : 'Gebruiker deblokkeren') +'</a>' +
                     '<a class="lnkexpand" href="?action=users.delete&type=ftp&server='+ server +'&username='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/delete2.png", 16, 16) +' Gebruiker verwijderen</a></div>';

         div.style.width = "240px";
         div.style.height = "10px";
      }

      else if(type == "db"){
         div.innerHTML = '<p class="headexpand">'+ username +' op '+ server +'&nbsp;&nbsp; <a onMouseover="this.style.cursor=\'pointer\'" onClick="unMakeExpandMenu();">[x]</a></p>' +
                     '<div>'+
                     '<a class="lnkexpand" href="?action=db.password&server='+ server +'&db='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/key1.png", 16, 16) +' Wachtwoord wijzigen</a>' +
                     '<a class="lnkexpand" href="http://'+ server +'/phpmyadmin/" target="_blank">'+ displayPNG("/syncer/images/icons/16x16/data_view.png", 16, 16) +' Database beheren</a>' +
                     '<a class="lnkexpand" href="?action=backups.listtarballs&type=mysql&server='+ server +'&name='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/first_aid.png", 16, 16) +' Backup beheer</a>' +
                     '<a class="lnkexpand" href="?action=db.delete&server='+ server +'&db='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/delete2.png", 16, 16) +' Database verwijderen</a></div>';

         div.style.width = "240px";
         div.style.height = "10px";
      }

      else if(type == "ftpbackup"){
         div.innerHTML = '<p class="headexpand"> Actions &nbsp;&nbsp; <a onMouseover="this.style.cursor=\'pointer\'" onClick="unMakeExpandMenu();">[x]</a></p>' +
                     '<div>'+
                     '<a class="lnkexpand" href="?action=backups.download&type=ftp&server='+ server +'&name='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/first_aid.png", 16, 16) +' Download Backup Tarball</a></div>';

         div.style.width = "240px";
         div.style.height = "10px";
      }

      else if(type == "backup"){
         div.innerHTML = '<p class="headexpand"> Actions &nbsp;&nbsp; <a onMouseover="this.style.cursor=\'pointer\'" onClick="unMakeExpandMenu();">[x]</a></p>' +
                     '<div>'+
                     '<a class="lnkexpand" href="?action=backups.download&server='+ server +'&name='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/first_aid.png", 16, 16) +' Download Backup Tarball</a>' +
                     '<a class="lnkexpand" href="?action=backups.restore&server='+ server +'&name='+ username +'">'+ displayPNG("/syncer/images/icons/16x16/first_aid.png", 16, 16) +' Restore Backup Tarball</a></div>';


         div.style.width = "240px";
         div.style.height = "10px";
      }

       else if(type == "sslview"){
          div.innerHTML = '<p class="headexpand">'+ server +'&nbsp;&nbsp; <a onMouseover="this.style.cursor=\'pointer\'" onClick="unMakeExpandMenu();">[x]</a></p>' +
                     '<div>'+
                     '<a class="lnkexpand" href="?action=ssl.ssldetail&id='+ username +'&server='+ server +'">'+ displayPNG("/syncer/images/icons/16x16/certificate_information.png", 16, 16) +' Certificaat details</a>'+
					'<a class="lnkexpand" href="?action=ssl.enroll&id='+ username +'&server='+ server +'">'+ displayPNG("/syncer/images/icons/16x16/certificate_new.png", 16, 16) +' Certificaat aanmelden</a>'+
					'</div>';

         div.style.width = "240px";
         div.style.height = "10px";
      }


      div.style.top = cursor.y;
      div.style.left = cursor.x;
      div.id = id;

      document.body.appendChild(div);

      growDiv(id, 240, maxHeight);
      markRow(resource);

      inPopup = true;
      cOpen = id;
      cRow = resource;

      setTimeout("document.body.onclick = unMakeExpandMenu", 100);
   }
   else{
      if(document.getElementById(id).style.visibility == "hidden"){
         var div = document.getElementById(id);
         div.style.width = "240px";
         div.style.height = "10px";
         div.style.top = cursor.y;
         div.style.left = cursor.x;
         div.style.visibility = "visible";

         cOpen = id;
         cRow = resource;
         inPopup = true;

         growDiv(id, 375, maxHeight);
         markRow(resource);

         setTimeout("document.body.onclick = unMakeExpandMenu", 100);
      }
      else{
         unMakeExpandMenu();
      }
   }

}


function growDiv(id, width, height)
{
   var div = document.getElementById(id);

   var newWidth = parseInt(div.style.width) + 10;
   var newHeight = parseInt(div.style.height) + 10;

   if(newWidth < width){
      div.style.width = newWidth +"px";
   }
   else{
      div.style.width = width +"px";
   }

   if(newHeight < height){
      div.style.height = newHeight +"px";
   }
   else{
      div.style.height = height +"px";
   }

   if (parseInt(div.style.width) < width  || parseInt(div.style.height) < height) {
      my_timeout = setTimeout("growDiv('"+ id +"', "+ width +", "+ height +");", 10);
   }
}

function unGrowDiv(id, width, height)
{
   var div = document.getElementById(id);

   var newWidth = parseInt(div.style.width) - 20;
   var newHeight = parseInt(div.style.height) - 20;

   if(newWidth > width){
      div.style.width = newWidth +"px";
   }
   else if(width == 0){
      div.style.width = 1 +"px";
   }

   if(newHeight > height){
      div.style.height = newHeight +"px";
   }
   else if(height == 0){
      div.style.height = 1 +"px";
   }

   if (parseInt(div.style.width) > width+20  || parseInt(div.style.height) > height+20) {
      my_timeout = setTimeout("unGrowDiv('"+ id +"', "+ width +", "+ height +");", 20);
   }
   else if(width == 0 || height == 0){
      div.style.visibility = "hidden";
   }
}


function markRow(row){
   if(!inPopup){
   	row.className = "rowselectviewmark"
   }
}

function unMarkRow(row){
   if(!inPopup){
   	row.className = "rowselectview";
   }
}



// [Cookie] Clears a cookie
function clearCookie(cookieName){
        var now = new Date();
        var yesterday = new Date(now.getTime() - 1000 * 60 * 60 * 24);
        this.setCookie(cookieName, 0, yesterday);
}

// [Cookie] Sets value in a cookie
function setCookie(cookieName, cookieValue, expires, path) {
   document.cookie =
          escape(cookieName) + '=' + escape(cookieValue)
          + (expires ? '; expires=' + expires.toGMTString() : '')
          + (path ? '; path=' + path : '');
}


// [Cookie] Gets a value from a cookie
function getCookie(cookieName) {
   var cookieValue = '';
   var posName = document.cookie.indexOf(escape(cookieName) + '=');
   if (posName != -1) {
          var posValue = posName + (escape(cookieName) + '=').length;
          var endPos = document.cookie.indexOf(';', posValue);
          if (endPos != -1) cookieValue = unescape(document.cookie.substring(posValue, endPos));
          else cookieValue = unescape(document.cookie.substring(posValue));
   }
   return (cookieValue);
}


function getPosition(e) {
    e = e || window.event;
    var cursor = {x:0, y:0};
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    }
    else {
        cursor.x = e.clientX +
            (document.documentElement.scrollLeft ||
            document.body.scrollLeft) -
            document.documentElement.clientLeft;
        cursor.y = e.clientY +
            (document.documentElement.scrollTop ||
            document.body.scrollTop) -
            document.documentElement.clientTop;
    }
    return cursor;
}

function updateHelpbox(ht) {
   document.getElementById('helpbox').innerHTML=ht;
}

function showLabel(notice,evt) {
   cursor = getPosition(evt);

   if(!document.getElementById('label')){
      initLabel();
   }

   if(!inPopup){
      document.getElementById('label').style.left = cursor.x+10;
      document.getElementById('label').style.top = cursor.y+10;

      document.getElementById('label').style.visibility='visible';
      document.getElementById('notice').innerHTML=notice;
   }
}

function hideLabel() {
   document.getElementById('label').style.visibility='hidden';
}



function initLabel(){
   if(!document.getElementById('label')){
      var div = document.createElement("div");
      div.setAttribute('id', 'label');
      div.style.position = "absolute";
      div.style.visibility = "hidden";
      div.innerHTML = "<table cellpadding=5 cellspacing=1 border=0 bgcolor='#FF6600'><tr><td class='notice' id='notice'></td></tr></table>";
      document.getElementsByTagName('body')[0].appendChild(div);
   }
};

var scroller1txt = "";
var scroller2txt = "";
function scroller(){

   var scrll = document.getElementById('scroller1');
   if(scrll){
      if(scrll.getElementsByTagName("img").length > 30){
         scrll.getElementsByTagName("span")[0].style.marginLeft = "-1px";
         scrll.getElementsByTagName("nobr")[0].innerHTML = scroller1txt;
      }

      if(scroller1txt == ""){
         scroller1txt = scrll.getElementsByTagName("span")[0].getElementsByTagName("nobr")[0].innerHTML;
      }
      for(var i=0; i<scrll.getElementsByTagName("span").length; i++){
         var elm = scrll.getElementsByTagName("span")[i];
            elm.style.marginLeft = (parseInt(elm.style.marginLeft)-1) + "px";

         if((parseInt(elm.style.marginLeft)*-1) > (parseInt(elm.clientWidth)-200)){
            elm.getElementsByTagName("nobr")[0].innerHTML += scroller1txt;
         }
      }
   }


   var scrll = document.getElementById('scroller2');
   if(scrll){
      if(scrll.getElementsByTagName("img").length > 30){
         scrll.getElementsByTagName("span")[0].style.marginLeft = "-1px";
         scrll.getElementsByTagName("nobr")[0].innerHTML = scroller2txt;
      }

      for(var i=0; i<scrll.getElementsByTagName("span").length; i++){
         if(scroller2txt == ""){
            scroller2txt = scrll.getElementsByTagName("span")[0].getElementsByTagName("nobr")[0].innerHTML;
         }
         var elm = scrll.getElementsByTagName("span")[i];
            elm.style.marginLeft = (parseInt(elm.style.marginLeft)-1) + "px";

         if((parseInt(elm.style.marginLeft)*-1) > (parseInt(elm.clientWidth)-200)){
            elm.getElementsByTagName("nobr")[0].innerHTML += scroller2txt;
      }
   }

      setTimeout("scroller()", 30);
   }
}



var wom = new Array();

function addInit(func)
{
	wom[wom.length]=func;
}

function goInit()
{
	for(var i = 0;i < wom.length;i++)
		eval(wom[i]);
}

function init()
{
	window.onload=goInit;
}


function passwordChanged(pwdid,eve)
{
	//alert("here");
	var strength = document.getElementById("myspan");
	var strongRegex = new RegExp("^(?=.{10,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
	var mediumRegex = new RegExp("^(?=.{6,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
	var enoughRegex = new RegExp("(?=.{3,}).*", "g");
	//var pwd = obj;
	var pwd = document.getElementById(pwdid);
	//var btnid = document.getElementById("btn_mail_submit");
	valid = true;
    //alert(pwd.value);
	if (pwd.value.length==0) {
		strength.innerHTML = "<span style='color:#6C6C6C'><img src='/syncer/images/0-strength.gif' width=53 height=9>&nbsp;Not Rated</span>";
	} else if (false == enoughRegex.test(pwd.value)) {
		strength.innerHTML = "<span style='color:#FF0000'><img src='/syncer/images/1-strength.gif' width=53 height=9>&nbsp;Weak</span>";
	} else if (strongRegex.test(pwd.value)) {
		strength.innerHTML = "<span style='color:#008000'><img src='/syncer/images/3-strength.gif' width=53 height=9>&nbsp;Strong</span>";
		valid = false;
	} else if (mediumRegex.test(pwd.value)) {
		strength.innerHTML = "<span style='color:#FFA500'><img src='/syncer/images/2-strength.gif' width=53 height=9>&nbsp;Medium</span>";
		valid = false;
	} else {
		strength.innerHTML = "<span style='color:#FF0000'><img src='/syncer/images/1-strength.gif' width=53 height=9>&nbsp;Weak</span>";
	}
    //btnid.disabled = valid;
}
addInit('scroller()');


