var dragtab=false, dragport=false;
var z,x,y, noTabs, noPorts, origPort, newPort, curEdit, curTab, searchNum=1, catNum=1, maxTabs, origTab, origTabPos, noOwn, origPortX, origPortY;
var T = new Array();
var TC = new Array();
var portPos = new Array();
var portCode = new Array();
var tabCode = new Array();
var ownPort = new Array();

addTab = function(tab) {
    if (tab==curTab)
    {
        document.getElementById("tabs").innerHTML=document.getElementById("tabs").innerHTML + '<li id="tab'+tab+'" class="dropdown-button" style="background:url(images/tab-sel.png) repeat-x;"><div id="txt'+tab+'" class="text" style="visibility:visible; background:url(images/tab-left-sel.png) no-repeat;" onmouseover="this.style.cursor=\'pointer\';" onclick="setCurrentTab('+tab+');"><a id="txtA'+tab+'"></a></div><div id="img'+tab+'" class="btn" style="background:url(images/tab-right-sel.png) no-repeat;">&nbsp;</div></li>';
    }
    else
    {
        document.getElementById("tabs").innerHTML=document.getElementById("tabs").innerHTML + '<li id="tab'+tab+'" class="dropdown-button"><div id="txt'+tab+'" class="text" style="visibility:visible" onmouseover="this.style.cursor=\'pointer\';" onclick="setCurrentTab('+tab+');"><a id="txtA'+tab+'"></a></div><div id="img'+tab+'" class="btn">&nbsp;</div></li>';
    }
}

setCurrentTab = function(tab) {
    curTab=tab;
    window.location.href="default.html?tab="+tab;
}

search = function() {
if (searchNum==1 && catNum==1)
    {
        window.location.href = "http://www.google.com/search?q="+document.getElementById("searchbar").value;
    }
if (searchNum==1 && catNum==2)
    {
        window.location.href = "http://images.google.com/images?q="+document.getElementById("searchbar").value;
    }
if (searchNum==1 && catNum==3)
    {
        window.location.href = "http://maps.google.com/maps?q="+document.getElementById("searchbar").value;
    }
if (searchNum==1 && catNum==4)
    {
        window.location.href = "http://video.google.com/videosearch?q="+document.getElementById("searchbar").value;
    }
if (searchNum==2 && catNum==1)
    {
        window.location.href = "http://search.yahoo.com/search?p="+document.getElementById("searchbar").value;
    }
if (searchNum==2 && catNum==2)
    {
        window.location.href = "http://images.search.yahoo.com/search/images?p="+document.getElementById("searchbar").value;
    }
if (searchNum==2 && catNum==3)
    {
        window.location.href = "http://news.search.yahoo.com/search/news?p="+document.getElementById("searchbar").value;
    }
if (searchNum==2 && catNum==4)
    {
        window.location.href = "http://video.search.yahoo.com/search/video?p="+document.getElementById("searchbar").value;
    }
if (searchNum==3 && catNum==1)
    {
        window.location.href = "http://www.altavista.com/web/results?q="+document.getElementById("searchbar").value;
    }
if (searchNum==3 && catNum==2)
    {
        window.location.href = "http://www.altavista.com/image/results?q="+document.getElementById("searchbar").value;
    }
if (searchNum==3 && catNum==3)
    {
        window.location.href = "http://www.altavista.com/audio/results?q="+document.getElementById("searchbar").value;
    }
if (searchNum==3 && catNum==4)
    {
        window.location.href = "http://www.altavista.com/video/results?q="+document.getElementById("searchbar").value;
    }
if (searchNum==4 && catNum==1)
    {
        window.location.href = "http://www.bing.com/search?q="+document.getElementById("searchbar").value;
    }
if (searchNum==4 && catNum==2)
    {
        window.location.href = "http://www.bing.com/images/search?q="+document.getElementById("searchbar").value;
    }
if (searchNum==4 && catNum==3)
    {
        window.location.href = "http://www.multimap.com/maps/?q="+document.getElementById("searchbar").value;
    }
if (searchNum==4 && catNum==4)
    {
        window.location.href = "http://www.bing.com/videos/search?q="+document.getElementById("searchbar").value;
    }
if (searchNum==5 && catNum==1)
    {
        window.location.href = "http://search.aol.com/aol/search?query="+document.getElementById("searchbar").value;
    }
if (searchNum==5 && catNum==2)
    {
        window.location.href = "http://search.aol.com/aol/image?query="+document.getElementById("searchbar").value;
    }
if (searchNum==5 && catNum==3)
    {
        window.location.href = "http://search.aol.com/aol/news?query="+document.getElementById("searchbar").value;
    }
if (searchNum==5 && catNum==4)
    {
        window.location.href = "http://video.aol.com/video-search/query/"+document.getElementById("searchbar").value;
    }
if (searchNum==6 && catNum==1)
    {
        window.location.href = "http://www.ask.com/web?q="+document.getElementById("searchbar").value;
    }
if (searchNum==6 && catNum==2)
    {
        window.location.href = "http://images.ask.com/pictures?q="+document.getElementById("searchbar").value;
    }
if (searchNum==6 && catNum==3)
    {
        window.location.href = "http://news.ask.com/news?q="+document.getElementById("searchbar").value;
    }
if (searchNum==6 && catNum==4)
    {
        window.location.href = "http://www.ask.com/video?q="+document.getElementById("searchbar").value;
    }
}

addBlank = function(pos) {
    var col = ((pos-1) % 4)+1;
	var el = document.getElementsByTagName("div");
			for (var j=0; j<el.length; j++)
			{
				 if (el[j].id == ("column"+col))
				{
                    el[j].innerHTML=el[j].innerHTML+'<div class="content2">&nbsp;</div>';
				}	
			}
}

dean = function() {
	var el = document.getElementsByTagName("div");
			for (var j=0; j<el.length; j++)
			{
				 if (el[j].className.indexOf("search-dropdown-box") != -1)
				{
                    el[j].style.display="none";
				}	
			}
}

initPage = function() {
	loadOptions();
//	var query = location.search.substring(1); 
//    var pairs = query.split("&"); 
//    for(var i = 0; i < pairs.length; i++) 
//    { 
//        var pos = pairs[i].indexOf('='); 
//        if (pos == -1) continue; 
//        if (pairs[i].substring(0,pos)=="tab") 
//            {curTab = pairs[i].substring(pos+1);} 
//    } 
//	initTabs();
    if (document.all)
	{
	    document.getElementById("makeHomepage").style.display = "block";
	}
	else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
	{
	    document.getElementById("makeHomepageFF").style.display = "block";
	}
//	loadOwnPorts();
//	initPorts();
//	introPage();
}

initTabs = function() {
maxTabs = Math.floor((document.getElementById("header").offsetWidth-250)/110);
noTabs = getNoTabs();
document.getElementById("tabs").innerHTML="";
for(var i=1;i <= noTabs;i++) {
addTab(i);
document.getElementById("tab"+i).firstChild.firstChild.innerHTML = getTab(i);
}
if (noTabs>=maxTabs) {document.getElementById("addtab").style.visibility="hidden";}
if (noTabs>=7)
    {document.getElementById("xxx").style.minWidth=300+110*noTabs;}
else
    {document.getElementById("xxx").style.minWidth=1000;}
}

getTab = function(tab) {
    var cook;
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf("tabs=") == 0) 
		    {
		        cook = c.substring(5,c.length);
		        var charpos = 1;
		        for(var j=1; j <= tab; j++) {
		            chars = 2 + charpos + getCode(cook.charAt(charpos));
		            if (j==tab) {tabCode[tab]=getCode(cook.charAt(charpos+1)); return cook.substring(charpos+2, chars);}
		            charpos = chars;  
		        }
		    }
	}
	tabCode[tab]=tab;
	if (tab==1) {return "Popular";}
	if (tab==2) {return "Your Ports";}
}

getNoTabs = function() {
    var cook;
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf("tabs=") == 0) 
		{
		    cook = c.substring(5,c.length);
		    return getCode(cook.charAt(0));
		}
	}
	return 2;
}

Rename = function(tab) {
	if (document.getElementById("txt"+tab).style.visibility=='visible') {
    	document.getElementById("NameField"+tab).value = document.getElementById("txt"+tab).firstChild.innerHTML;
	    document.getElementById("NameField"+tab).style.visibility = 'visible';
	    document.getElementById("txt"+tab).style.visibility = 'hidden';
		document.getElementById("xxx").onselectstart="";
		document.getElementById("NameField"+tab).focus();
		document.getElementById("NameField"+tab).select();
		document.getElementById("NameField"+tab).style.textAlign='center';
	}
}

SetName = function(tab) {
	document.getElementById("txt"+tab).firstChild.innerHTML = document.getElementById("NameField"+tab).value;
	document.getElementById("NameField"+tab).style.visibility = 'hidden';
	document.getElementById("txt"+tab).style.visibility = 'visible';
		document.getElementById("xxx").onselectstart= function() { return false ;};
    saveTabs();
}

saveTabs = function() {
    var cook = "tabs="+getChar(noTabs);
    var Exp = new Date("January 1, 3000");

    for(var i=1;i <= noTabs;i++)
    {
        cook = cook + tabLength(document.getElementById("tab"+i).firstChild.firstChild.innerHTML) + getChar(tabCode[i]) + document.getElementById("tab"+i).firstChild.firstChild.innerHTML;
    }
    document.cookie = cook+"; path=/; expires="+Exp.toGMTString();
    saveOwnPorts();
}

StopEnter =	function() {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if(keyCode==13) {event.keyCode=9;}
}

function drags(e){
    if (!document.all)
    {
        if (e.target.id.substring(0,3)=="txt" || e.target.className=="btn")
        {
            dragtab=true;
        	document.body.style.MozUserSelect="none";
            if (e.target.id.substring(0,4)=="txtA")
            {
                z=e.target.parentNode;
            }
            else
            {
                z=e.target;
            }
            for(var i=1;i <= noTabs;i++)
            {
                T[i] = document.getElementById("tab"+i).firstChild.firstChild.innerHTML;
                TC[i] = tabCode[i];
                document.getElementById("tab"+i).style.left = document.getElementById("tab"+i).offsetLeft+"px";
            }
            document.getElementById("addtab").style.left = (document.getElementById("addtab").offsetLeft - 0)+"px";
            temp1=parseInt(z.parentNode.style.left);
            x=e.clientX;
            z.parentNode.style.zIndex=100;
            z.parentNode.style.mozOpacity=0.5;
            z.parentNode.style.filter="alpha(opacity: 50)";
	        z.parentNode.style.opacity=0.5;
            origTab = tabCode[curTab];
            origTabPos = parseInt(z.parentNode.style.left);
            for(var i=1;i <= noTabs;i++)
            {
                document.getElementById("tab"+i).style.position = "absolute";
            }
            document.getElementById("addtab").style.position = "absolute";
        }
        if (e.target.className.substring(0,4)=="port" || e.target.className=="content1" || e.target.className=="body" || e.target.className=="bigporttxt")
        {
            dragport=true
        	document.body.style.MozUserSelect="none"
            if (document.getElementById("portMenu").parentNode.id != "container")
                {document.getElementById("container").appendChild(document.getElementById("portMenu"));}
            if (e.target.className=="content1")
            {
                z=e.target.parentNode.parentNode.parentNode.parentNode;
            }
            else if (e.target.className=="portcontent")
            {
                z=e.target.parentNode.parentNode.parentNode.parentNode.parentNode;
            }
            else if (e.target.className=="body")
            {
                z=e.target.parentNode.parentNode.parentNode;
            }
            else
            {
                z=e.target.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
            }
            for(var i=1;i <= noPorts;i++)
            {
                document.getElementById("port"+i).style.left = document.getElementById("port"+i).offsetLeft+"px";
                document.getElementById("port"+i).style.top = (document.getElementById("port"+i).offsetTop + document.getElementById("port"+i).parentNode.offsetTop)+"px";
                document.getElementById("port"+i).style.height = document.getElementById("port"+i).offsetHeight+"px";
                document.getElementById("port"+i).style.width = document.getElementById("port"+i).offsetWidth+"px";
            }
            document.getElementById("footer").style.top = (document.getElementById("footer").offsetTop + document.getElementById("footer").parentNode.offsetTop + 25)+"px";
            document.getElementById("footer").style.width = (document.getElementById("footer").offsetWidth-36)+"px";
            temp1=parseInt(z.style.left);
            temp2=parseInt(z.style.top);
            z.style.zIndex=100;
            z.style.mozOpacity=0.5;
            z.style.filter="alpha(opacity: 50)";
	        z.style.opacity=0.5;
            document.getElementById("Columns").style.zIndex=100;
            x=e.clientX;
            y=e.clientY;
            origPortX = parseInt(z.style.left);
            origPortY = parseInt(z.style.top);
            for(var i=1;i <= noPorts;i++)
            {
                document.getElementById("port"+i).style.position = "absolute";
            }
            document.getElementById("footer").style.position = "absolute";
            origPort = Math.round(parseInt(z.style.top) / z.offsetHeight)*4+Math.round(parseInt(z.style.left) / z.parentNode.offsetWidth)+1;
        }
    }
    else
    {
        if (event.srcElement.id.substring(0,3)=="txt" || event.srcElement.className=="btn")
        {
            dragtab=true;
            if (event.srcElement.id.substring(0,4)=="txtA")
            {
                z=event.srcElement.parentNode;
            }
            else
            {
                z=event.srcElement;
            }
            for(var i=1;i <= noTabs;i++)
            {
                T[i] = document.getElementById("tab"+i).firstChild.firstChild.innerHTML;
                TC[i] = tabCode[i];
                document.getElementById("tab"+i).style.left = document.getElementById("tab"+i).offsetLeft;
            }
            addtab.style.left = addtab.offsetLeft-5;
            temp1=z.parentNode.style.pixelLeft;
            x=event.clientX;
            y=event.clientY;
            z.parentNode.style.zIndex=100;
	        z.parentNode.style.filter="alpha(opacity: 50)";
            origTab = tabCode[curTab];
            origTabPos = parseInt(z.parentNode.style.left);
            origTabNo = parseInt((origTabPos + 76)/110);
            for(var i=1;i <= noTabs;i++)
            {
                document.getElementById("tab"+i).style.position = "absolute";
            }
            addtab.style.position = "absolute";
        }
        if (event.srcElement.className.substring(0,4)=="port" || event.srcElement.className=="content1" || event.srcElement.className=="body" || event.srcElement.className=="bigporttxt")
        {
            dragport=true
            if (document.getElementById("portMenu").parentNode.Id != "container")
                {document.getElementById("container").appendChild(document.getElementById("portMenu"));}
            if (event.srcElement.className=="content1")
            {
                z=event.srcElement.parentNode.parentNode.parentNode.parentNode;
            }
            else if (event.srcElement.className=="portcontent")
            {
                z=event.srcElement.parentNode.parentNode.parentNode.parentNode.parentNode;
            }
            else if (event.srcElement.className=="body")
            {
                z=event.srcElement.parentNode.parentNode.parentNode;
            }
            else
            {
                z=event.srcElement.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
            }
            for(var i=1;i <= noPorts;i++)
            {
                document.getElementById("port"+i).style.left = document.getElementById("port"+i).offsetLeft + document.getElementById("port"+i).parentNode.offsetLeft;
                document.getElementById("port"+i).style.top = document.getElementById("port"+i).offsetTop + document.getElementById("port"+i).parentNode.offsetTop;
                document.getElementById("port"+i).style.height = document.getElementById("port"+i).offsetHeight;
                document.getElementById("port"+i).style.width = document.getElementById("port"+i).offsetWidth;
            }
            footer.style.top = footer.offsetTop + footer.parentNode.offsetTop + 25;
            temp1=z.style.pixelLeft;
            temp2=z.style.pixelTop;
            z.style.zIndex=100;
	        z.style.filter="alpha(opacity: 50)";
            document.getElementById("Columns").style.zIndex=100;
            origPortX = parseInt(z.style.left);
            origPortY = parseInt(z.style.top);
            x=event.clientX;
            y=event.clientY;
            for(var i=1;i <= noPorts;i++)
            {
                document.getElementById("port"+i).style.position = "absolute";
            }
            footer.style.position = "absolute";
            footerright.style.position = "absolute";
            origPort = Math.round(z.style.pixelTop / z.offsetHeight)*4+Math.round(z.style.pixelLeft / z.parentNode.offsetWidth)+1;
        }
    }
}

function rest(e){
    if (!document.all)
    {
        if (dragtab==true) {
            dragtab=false;
            var lm, dm
            for(var i=1;i <= noTabs;i++) {
            lm = HowManyBiggerFox(parseInt(document.getElementById("tab"+i).style.left));
            SetTabPos(i, lm);
            }
            dm=parseInt(z.parentNode.style.left);
            for(var i=1;i <= noTabs;i++) {
                document.getElementById("tab"+i).style.position="";
                document.getElementById("tab"+i).style.left = "";
                if (tabCode[i] == origTab) {lm=i;}
            }
            document.getElementById("addtab").style.position="";
            document.getElementById("addtab").style.left="";
            saveTabs();
            if (origTabPos != dm) {setCurrentTab(lm);}
            if (origTabPos == dm) {setCurrentTab(parseInt((dm-12)/108 + 1.2));}
          	document.body.style.MozUserSelect="undefined";
        }
        if (dragport==true) {
            dragport=false;
            document.getElementById("binicon").style.backgroundImage="url(./images/bin_tab.png)";
            document.getElementById("Columns").style.zIndex=30;
            if (e.clientY < 125 && e.clientY > 105 && e.clientX > 32 && e.clientX-25 < (110*noTabs))
            {
                var newTab, origContent
                for(var i=1;i <= noPorts;i++) {
                    document.getElementById("port"+i).style.position="";
                    document.getElementById("port"+i).style.left="";
                    document.getElementById("port"+i).style.top="";
                    document.getElementById("port"+i).style.height = "";
                    document.getElementById("port"+i).style.width = "";
                    if (portPos[i] == origPort) {origContent = portCode[i];}
                }
                document.getElementById("footer").style.position="";
                document.getElementById("footer").style.left="";
                document.getElementById("footer").style.width="";
                newTab = Math.round((e.clientX+27) / 110);
                if (newTab != curTab)
                {
                    deletePort(origPort ,true);
                    curTab = newTab;
                    if (curTab<1) {curTab=1;}
                    if (curTab>noTabs) {curTab=noTabs;}
                    initTabs();
                    loadPorts();
                    addNewPort(origContent);
                }
            }
            else
            {
               if (parseInt(z.style.left)==origPortX && parseInt(z.style.top)==origPortY)
                {
                    if (z.firstChild.firstChild.childNodes[1].firstChild.innerHTML!="")
                    {
                        window.location.href=z.firstChild.firstChild.childNodes[1].firstChild.childNodes[2].href;
                    }
                }
                newPort = Math.round(parseInt(z.style.top) / z.offsetHeight)*4+Math.round(parseInt(z.style.left) / z.parentNode.offsetWidth)+1;
                if (newPort < 1)
                {
                    newPort = origPort;
                } 
                for(var i=1;i <= noPorts;i++) {
                    document.getElementById("port"+i).style.position="";
                    document.getElementById("port"+i).style.left="";
                    document.getElementById("port"+i).style.top="";
                    document.getElementById("port"+i).style.height = "";
                    document.getElementById("port"+i).style.width = "";
                }
                document.getElementById("footer").style.position="";
                document.getElementById("footer").style.left="";
                document.getElementById("footer").style.width="";
                swapPorts(origPort, newPort);
	            var el = document.getElementsByTagName("div");
			            for (var j=0; j<el.length; j++)
			            {
				             if (el[j].id.substring(0,6) == "column")
				            {
                                el[j].innerHTML="";
				            }	
			            }
                var portNo = 1;
                for(var i=1;i <= portPos[noPorts];i++) {
                    if (portPos[portNo]==i)
                    {
                        addPort(portNo,i);
                        document.getElementById("portcontent"+portNo).innerHTML = getPort(portNo);
                        portNo = portNo + 1;
                    }
                    else
                    {
                        addBlank(i);
                    }
                }
                savePorts();
            }
        }
      	document.body.style.MozUserSelect="undefined";
    }
    else
    {
        document.getElementById("binicon").style.backgroundImage="url(./images/bin_tab.png)";
        if (dragtab==true) {
            z.parentNode.style.filter="alpha(opacity: 100)";
            dragtab=false;
            var lm, dm
            if (event.clientY < 113 && event.clientY > 87 && event.clientX < 51 && event.clientX > 22)
            {
                var origPos;
                for(var i=1;i <= noTabs;i++)
                {
                    document.getElementById("tab"+i).style.position="";
                    document.getElementById("tab"+i).style.left = "";
                    if (tabCode[i] == origTabNo) {lm=i;}
                }
                addtab.style.position="";
                addtab.style.left="";
                footer.style.position="";
                footer.style.left="";
                deleteTabMenu(origTabNo);
            }
            else
            {
                for(var i=1;i <= noTabs;i++)
                {
                    lm = HowManyBigger(document.getElementById("tab"+i).style.pixelLeft);
                    SetTabPos(i, lm);
                }
                dm=z.parentNode.style.pixelLeft;
                for(var i=1;i <= noTabs;i++)
                {
                    document.getElementById("tab"+i).style.position="";
                    document.getElementById("tab"+i).style.left = "";
                    if (tabCode[i] == origTab) {lm=i;}
                }
                addtab.style.position="";
                addtab.style.left="";
                saveTabs();
                if (origTabPos != dm) {setCurrentTab(lm)};
            }
        }
        if (dragport==true) {
            z.parentNode.style.filter="alpha(opacity: 100)";
            document.getElementById("Columns").style.zIndex=30;
            dragport=false;
            if (event.clientY < 113 && event.clientY > 87 && event.clientX < 51 && event.clientX > 22)
            {
                var origPos;
                for(var i=1;i <= noPorts;i++) {
                    document.getElementById("port"+i).style.position="";
                    document.getElementById("port"+i).style.left="";
                    document.getElementById("port"+i).style.top="";
                    document.getElementById("port"+i).style.height = "";
                    document.getElementById("port"+i).style.width = "";
                    if (portPos[i] == origPort) {origPos = i;}
                }
                footer.style.position="";
                footer.style.left="";
                closePort(origPos);
            }
        else if (event.clientY < 113 && event.clientY > 87 && event.clientX > 52 && event.clientX-5 < (110*noTabs))
            {
                var newTab, origContent
                for(var i=1;i <= noPorts;i++) {
                    document.getElementById("port"+i).style.position="";
                    document.getElementById("port"+i).style.left="";
                    document.getElementById("port"+i).style.top="";
                    document.getElementById("port"+i).style.height = "";
                    document.getElementById("port"+i).style.width = "";
                    if (portPos[i] == origPort) {origContent = portCode[i];}
                }
                footer.style.position="";
                footer.style.left="";
                newTab = Math.round((event.clientX+27) / 110);
                if (newTab != curTab)
                {
                    closePort(origPort ,true);
                    var prevTab = curTab;
                    curTab = newTab;
                    if (curTab<1) {curTab=1;}
                    if (curTab>noTabs) {curTab=noTabs;}
                      loadPorts();
                      addNewPort(origContent);
                      curTab = prevTab;
                      setCurrentTab(curTab);
                }
            }
            else
            {
                if (parseInt(z.style.left)==origPortX && parseInt(z.style.top)==origPortY)
                {
                    if (z.firstChild.firstChild.children[1].firstChild.innerHTML!="")
                    {
                        dragtab=false;
                        dragport=false;
                        window.location.href=z.firstChild.firstChild.children[1].firstChild.children[2].href;
                    }
                }
                newPort = Math.round(z.style.pixelTop / z.offsetHeight)*4+Math.round(z.style.pixelLeft / z.parentNode.offsetWidth)+1;
                if (newPort < 1)
                {
                    newPort = origPort;
                } 
                for(var i=1;i <= noPorts;i++) {
                    document.getElementById("port"+i).style.position="";
                    document.getElementById("port"+i).style.left="";
                    document.getElementById("port"+i).style.top="";
                    document.getElementById("port"+i).style.height = "";
                    document.getElementById("port"+i).style.width = "";
                }
                footer.style.position="";
                footer.style.left="";
                swapPorts(origPort, newPort);
                var el = document.getElementsByTagName("div");
		                for (var j=0; j<el.length; j++)
		                {
			                 if (el[j].id.substring(0,6) == "column")
			                {
                                el[j].innerHTML="";
			                }	
		                }
                var portNo = 1;
                for(var i=1;i <= portPos[noPorts];i++) {
                    if (portPos[portNo]==i)
                    {
                        addPort(portNo,i);
                        document.getElementById("portcontent"+portNo).innerHTML = getPort(portNo);
                        portNo = portNo + 1;
                    }
                    else
                    {
                        addBlank(i);
                    }
                }
                savePorts();
            }
        }
    }
    dragtab=false;
    dragport=false;
}

addNewTab = function() {
}

addNewPort = function(content) {
}

tabLength = function(str) {
var ans = getChar(str.length);
return ans;
}

function move(e){
    if (!document.all)
    {
        if (e.button==0&&dragtab){
            var mx = temp1+e.clientX-x;
            if (z.id.substring(0,3)=="txt" || z.id.substring(0,3)=="img") {
               z.parentNode.style.left=mx+"px";
            }
            return false
        }
        if (e.button==0&&dragport){
            var mx = temp1+e.clientX-x;
            var my = temp2+e.clientY-y;
            if (z.id.substring(0,4)=="port") {
                z.style.left=mx+"px";
                z.style.top=my+"px";
                if (e.clientY < 125 && e.clientY > 105 && e.clientX < 42 && e.clientX > 17)
                {
document.getElementById("binicon").style.backgroundImage="";
                }
                else
                {
                    document.getElementById("binicon").style.backgroundImage="url(./images/bin_tab.png)";
                }

            }
            return false
        }
    }
    else
    {
        if (event.button==1&&dragtab){
            var mx = temp1+event.clientX-x;
            if (z.id.substring(0,3)=="txt" || z.id.substring(0,3)=="img") {
                z.parentNode.style.pixelLeft=mx;
                if (event.clientY < 113 && event.clientY > 87 && event.clientX < 51 && event.clientX > 22)
                {
                    document.getElementById("binicon").style.backgroundImage="url(./images/bin.png)";
                }
                else
                {
                    document.getElementById("binicon").style.backgroundImage="url(./images/bin_tab.png)";
                }
            }
            return false
        }
        if (event.button==1&&dragport){
            var mx = temp1+event.clientX-x;
            var my = temp2+event.clientY-y;
            if (z.id.substring(0,4)=="port") {
                z.style.pixelLeft=mx;
                z.style.pixelTop=my;
                if (event.clientY < 113 && event.clientY > 87 && event.clientX < 51 && event.clientX > 22)
                {
                    document.getElementById("binicon").style.backgroundImage="url(./images/bin.png)";
                }
                else
                {
                    document.getElementById("binicon").style.backgroundImage="url(./images/bin_tab.png)";
                }
            }
            return false
        }
    }
}

function HowManyBigger(xa) {
var rs=0;
for(var i=1;i <= noTabs;i++) {
    if (document.getElementById("tab"+i).style.pixelLeft>xa) {rs=rs+1;}
}
return (noTabs-rs);
}

function HowManyBiggerFox(xa) {
var rs=0;
for(var i=1;i <= noTabs;i++) {
    if (parseInt(document.getElementById("tab"+i).style.left)>xa) {rs=rs+1;}
}
return (noTabs-rs);
}

function SetTabPos(tb, tp) {
if (tp<1) {tp=1;}
if (tp>noTabs) {tp=noTabs;}
document.getElementById("tab"+tp).firstChild.firstChild.innerHTML=T[tb];
tabCode[tp] = TC[tb];
}

addTabMenu = function(tab) {
    maxTabs = Math.floor((document.getElementById("header").offsetWidth-250)/110);
    if (noTabs<maxTabs) 
    { 
        document.getElementById("tabOption"+tab).style.display="none";
        addNewTab();
        for(var i=noTabs;i > (tab+1);i--) {
            document.getElementById("tab"+i).firstChild.firstChild.innerHTML=document.getElementById("tab"+(i-1)).firstChild.firstChild.innerHTML;
        }
        document.getElementById("tab"+(tab+1)).firstChild.firstChild.innerHTML="New Tab";
        saveTabs();
    }
}

deleteTabMenu = function(tab) {

    var Exp = new Date("January 1, 3000");
    if (noTabs>1)
    {
        maxTabs = Math.floor((document.getElementById("header").offsetWidth-250)/110);
        document.getElementById("tabOption"+tab).style.display="none";
        document.cookie = "ports"+getChar(tabCode[tab])+"=A; path=/; expires="+Exp.toGMTString();
        for(var i=tab;i<noTabs;i++) {
            document.getElementById("tab"+i).firstChild.firstChild.innerHTML=document.getElementById("tab"+(i+1)).firstChild.firstChild.innerHTML;
            tabCode[i] = tabCode[i+1];
        }
        document.getElementById("tabs").removeChild(document.getElementById("tab"+noTabs));
        tabCode[noTabs]=0;
        noTabs--;
        if (noTabs<maxTabs)
            {document.getElementById("addtab").style.visibility="visible";}
        else
            {document.getElementById("addtab").style.visibility="hidden";}
        if (noTabs>=7)
            {document.getElementById("xxx").style.minWidth=300+110*noTabs;}
        else
            {document.getElementById("xxx").style.minWidth=1000;}
        saveTabs();
        if (tab=curTab) {setCurrentTab(1);}
    }
}

renameTabMenu = function(tab) {
document.getElementById("tabOption"+tab).style.display="none";
Rename(tab);
}

initPorts = function() {
var portNo = 1;
loadPorts();
for(var i=1;i <= portPos[noPorts];i++) {
if (portPos[portNo]==i)
{
    addPort(portNo,i);
    document.getElementById("portcontent"+portNo).innerHTML = getPort(portNo);
    portNo = portNo + 1;
}
else
{
addBlank(i);
}
}
if (noPorts==40) {document.getElementById("addport").style.visibility="hidden";} 
}

addPort = function(port, pos) {
    var col = ((pos-1) % 4)+1;
	var el = document.getElementsByTagName("div");
			for (var j=0; j<el.length; j++)
			{
				 if (el[j].id == ("column"+col))
				{
                    el[j].innerHTML=el[j].innerHTML+'<div class="placeholder" id="port'+port+'"><div class="box"><div class="inner"><div class="title"><div class="bg"><div class="portcontent"><ul class="controls"><li><a href="javascript:void(0);" onclick="editPort('+port+');" class="edit">edit</a></li><li class="close"><a href="javascript:void(0);" onclick="closePort('+port+');">close</a></li><li id="portBut'+port+'" class="dropdown-button"><a href="javascript:void(0);" onmouseover="showMenu('+port+');" class="open-popup">open popup</a></li></ul><div class="text" id="title'+port+'"></div></div></div></div><div class="body"><div class="content1" id="portcontent'+port+'">&nbsp;</div></div><div class="btm"><a class="expand-button"><span></span></a></div></div></div></div>';
				}	
			}
}

showMenu = function(port) {
    if (document.getElementById("portMenu").parentNode.id != ("portBut"+port))
    {
//        var footPos = findPosY(document.getElementById("footer"));
        var footPos = 650;
        if (parseInt(navigator.appVersion)>3) {
            if (navigator.appName=="Netscape") {
                footPos = window.innerHeight;
            }
            if (navigator.appName.indexOf("Microsoft")!=-1) {
                footPos = document.body.offsetHeight;
            }
        }
        
        footPos = footPos + document.documentElement.scrollTop;

        document.getElementById("portBut"+port).appendChild(document.getElementById("portMenu"));
        document.getElementById('Columns').style.zIndex=200;
        
        if ((portPos[port] % 4) == 0)
        {
            document.getElementById("portMenu").style.marginLeft = "-132px";
            document.getElementById("portSub1").style.marginLeft = "-362px";
            document.getElementById("portSub2").style.marginLeft = "-264px";
            document.getElementById("portSub3").style.marginLeft = "-264px";
            document.getElementById("portSub4").style.marginLeft = "-264px";
            document.getElementById("portSub5").style.marginLeft = "-264px";
            document.getElementById("portSub6").style.marginLeft = "-264px";
            document.getElementById("portSub7").style.marginLeft = "-264px";
            document.getElementById("portSub8").style.marginLeft = "-264px";
            document.getElementById("portSub9").style.marginLeft = "-264px";
            document.getElementById("portSub10").style.marginLeft = "-264px";
            document.getElementById("portSub11").style.marginLeft = "-264px";
            document.getElementById("portSub12").style.marginLeft = "-264px";
            document.getElementById("portSub13").style.marginLeft = "-264px";
            document.getElementById("portSub14").style.marginLeft = "-264px";
            document.getElementById("portSub15").style.marginLeft = "-264px";
            document.getElementById("portSub16").style.marginLeft = "-264px";
            document.getElementById("portSub17").style.marginLeft = "-264px";
            document.getElementById("portSub18").style.marginLeft = "-264px";
            document.getElementById("portSub19").style.marginLeft = "-264px";
            document.getElementById("portSub20").style.marginLeft = "-264px";
            document.getElementById("sub1").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub1").style.backgroundPosition = "2px 6px";
            document.getElementById("sub2").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub2").style.backgroundPosition = "2px 6px";
            document.getElementById("sub3").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub3").style.backgroundPosition = "2px 6px";
            document.getElementById("sub4").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub4").style.backgroundPosition = "2px 6px";
            document.getElementById("sub5").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub5").style.backgroundPosition = "2px 6px";
            document.getElementById("sub6").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub6").style.backgroundPosition = "2px 6px";
            document.getElementById("sub7").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub7").style.backgroundPosition = "2px 6px";
            document.getElementById("sub8").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub8").style.backgroundPosition = "2px 6px";
            document.getElementById("sub9").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub9").style.backgroundPosition = "2px 6px";
            document.getElementById("sub10").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub10").style.backgroundPosition = "2px 6px";
            document.getElementById("sub11").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub11").style.backgroundPosition = "2px 6px";
            document.getElementById("sub12").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub12").style.backgroundPosition = "2px 6px";
            document.getElementById("sub13").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub13").style.backgroundPosition = "2px 6px";
            document.getElementById("sub14").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub14").style.backgroundPosition = "2px 6px";
            document.getElementById("sub15").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub15").style.backgroundPosition = "2px 6px";
            document.getElementById("sub16").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub16").style.backgroundPosition = "2px 6px";
            document.getElementById("sub17").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub17").style.backgroundPosition = "2px 6px";
            document.getElementById("sub18").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub18").style.backgroundPosition = "2px 6px";
            document.getElementById("sub19").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub19").style.backgroundPosition = "2px 6px";
            document.getElementById("sub20").style.backgroundImage = "url(images/ico-dropdown_l.gif)";
            document.getElementById("sub20").style.backgroundPosition = "2px 6px";
        }
        else
        {
            document.getElementById("portMenu").style.marginLeft = "-20px";
            document.getElementById("portSub1").style.marginLeft = "-20px";
            document.getElementById("portSub2").style.marginLeft = "-20px";
            document.getElementById("portSub3").style.marginLeft = "-20px";
            document.getElementById("portSub4").style.marginLeft = "-20px";
            document.getElementById("portSub5").style.marginLeft = "-20px";
            document.getElementById("portSub6").style.marginLeft = "-20px";
            document.getElementById("portSub7").style.marginLeft = "-20px";
            document.getElementById("portSub8").style.marginLeft = "-20px";
            document.getElementById("portSub9").style.marginLeft = "-20px";
            document.getElementById("portSub10").style.marginLeft = "-20px";
            document.getElementById("portSub11").style.marginLeft = "-20px";
            document.getElementById("portSub12").style.marginLeft = "-20px";
            document.getElementById("portSub13").style.marginLeft = "-20px";
            document.getElementById("portSub14").style.marginLeft = "-20px";
            document.getElementById("portSub15").style.marginLeft = "-20px";
            document.getElementById("portSub16").style.marginLeft = "-20px";
            document.getElementById("portSub17").style.marginLeft = "-20px";
            document.getElementById("portSub18").style.marginLeft = "-20px";
            document.getElementById("portSub19").style.marginLeft = "-20px";
            document.getElementById("portSub20").style.marginLeft = "-20px";
            document.getElementById("sub1").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub1").style.backgroundPosition = "118px 6px";
            document.getElementById("sub2").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub2").style.backgroundPosition = "118px 6px";
            document.getElementById("sub3").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub3").style.backgroundPosition = "118px 6px";
            document.getElementById("sub4").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub4").style.backgroundPosition = "118px 6px";
            document.getElementById("sub5").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub5").style.backgroundPosition = "118px 6px";
            document.getElementById("sub6").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub6").style.backgroundPosition = "118px 6px";
            document.getElementById("sub7").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub7").style.backgroundPosition = "118px 6px";
            document.getElementById("sub8").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub8").style.backgroundPosition = "118px 6px";
            document.getElementById("sub9").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub9").style.backgroundPosition = "118px 6px";
            document.getElementById("sub10").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub10").style.backgroundPosition = "118px 6px";
            document.getElementById("sub11").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub11").style.backgroundPosition = "118px 6px";
            document.getElementById("sub12").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub12").style.backgroundPosition = "118px 6px";
            document.getElementById("sub13").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub13").style.backgroundPosition = "118px 6px";
            document.getElementById("sub14").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub14").style.backgroundPosition = "118px 6px";
            document.getElementById("sub15").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub15").style.backgroundPosition = "118px 6px";
            document.getElementById("sub16").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub16").style.backgroundPosition = "118px 6px";
            document.getElementById("sub17").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub17").style.backgroundPosition = "118px 6px";
            document.getElementById("sub18").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub18").style.backgroundPosition = "118px 6px";
            document.getElementById("sub19").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub19").style.backgroundPosition = "118px 6px";
            document.getElementById("sub20").style.backgroundImage = "url(images/ico-dropdown_r.gif)";
            document.getElementById("sub20").style.backgroundPosition = "118px 6px";
        }
        if (parseInt((portPos[port]+3)/4) >= parseInt((footPos-140)/160))
        {
            document.getElementById("portMenu").style.marginTop = "-338px";
        }
        else
        {
            document.getElementById("portMenu").style.marginTop = "7px";
        }
    }
    document.getElementById('portSub1').style.display='none';
    document.getElementById('portSub2').style.display='none';
    document.getElementById('portSub3').style.display='none';
    document.getElementById('portSub4').style.display='none';
    document.getElementById('portSub5').style.display='none';
    document.getElementById('portSub6').style.display='none';
    document.getElementById('portSub7').style.display='none';
    document.getElementById('portSub8').style.display='none';
    document.getElementById('portSub9').style.display='none';
    document.getElementById('portSub10').style.display='none';
    document.getElementById('portSub11').style.display='none';
    document.getElementById('portSub12').style.display='none';
    document.getElementById('portSub13').style.display='none';
    document.getElementById('portSub14').style.display='none';
    document.getElementById('portSub15').style.display='none';
    document.getElementById('portSub16').style.display='none';
    document.getElementById('portSub17').style.display='none';
    document.getElementById('portSub18').style.display='none';
    document.getElementById('portSub19').style.display='none';
    document.getElementById('portSub20').style.display='none';

}

function getTitle(port) {
var portstr = portString(portCode[port], false);
var titleLength = getCode(portstr.charAt(0));
return portstr.substring(1, titleLength);
}

function getPort(port) {
    if (portCode[port] == 'zz')
    {
        return "<BR><div></div><a class='emptyPort1' onmousedown='return false' href='javascript:editPort("+port+");' onclick='javascript:editPort("+port+");'>"+port+"</a><BR><a class='emptyPort2' onmousedown='return false' onclick='javascript:editPort("+port+");'>click to add site</a>";
    }
    else
    {
        return boxContent(portCode[port]);
    }
}

function boxContent(item){
var portstr = portString(item, true);
var titleLength = getCode(portstr.charAt(0));
return portstr.substring(titleLength, portstr.length);
}

function savePorts() {
    var Exp = new Date("January 1, 3000");
    var cook = "ports"+getChar(tabCode[curTab])+"="+getChar(noPorts);
    for(var i=1;i <= noPorts;i++) {
        cook = cook + getChar(portPos[i]) + portCode[i];
    }
    document.cookie = cook+"; path=/; expires="+Exp.toGMTString();
}

function loadPorts() {
    var cook;
    var tot = 0;
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf("ports"+getChar(tabCode[curTab])+"=") == 0) 
		    {
		        cook = c.substring(7,c.length)+"  ";
		        noPorts=getCode(cook.charAt(0));
		        if (noPorts>=0)
		        {
		            for(var j=1; j <= noPorts; j++) {
		                portPos[j] = getCode(cook.charAt(j*3-2));
		                portCode[j] = cook.substring(j*3-1,j*3+1);
		            }
		            return;
		        }
		    }
	}
    if (tabCode[curTab]==1)
    {
    	noPorts = 12;
        portCode[1] = "AA";
        portCode[2] = "AB";
        portCode[3] = "AC";
        portCode[4] = "AD";
        portCode[5] = "AE";
        portCode[6] = "AF";
        portCode[7] = "AI";
        portCode[8] = "AJ";
        portCode[9] = "AK";
        portCode[10] = "BB";
        portCode[11] = "AM";
        portCode[12] = "AN";
     }
     else
     {
    	noPorts = 12;
        portCode[1] = "zz";
        portCode[2] = "zz";
        portCode[3] = "zz";
        portCode[4] = "zz";
        portCode[5] = "zz";
        portCode[6] = "zz";
        portCode[7] = "zz";
        portCode[8] = "zz";
        portCode[9] = "zz";
        portCode[10] = "zz";
        portCode[11] = "zz";
        portCode[12] = "zz";
     }
    for(var j=1; j <= noPorts; j++) {
        portPos[j] = j;
    }
}

swapPorts = function(a,b) {
var port1 = 0;
var port2 = 0;
for(var j=1; j <= noPorts; j++) {
    if (portPos[j] == a) {port1=j;}
    if (portPos[j] == b) {port2=j;}
}
var tempCode = portCode[port1];
if (port2>0)
{
    portCode[port1] = portCode[port2];
    portCode[port2] = tempCode;
}
else
{
    if (b > a)
        {
        if (b > portPos[port1+1]) 
        {
            for(var j=port1; j <= noPorts; j++) {
                if (portPos[j+1]>b || j==noPorts) {
                    portPos[j] = b;
                    portCode[j] = tempCode;
                    j=noPorts;
                }
                else
                {
                portPos[j] = portPos[j+1];
                portCode[j] = portCode[j+1];
                }
            }
        }
        else
        {
            portPos[port1] = b;
        }
    }
    else
        {
        if (b <= portPos[port1-1]) 
        {
            for(var j=port1; j >= 1; j--) {
                if (portPos[j-1]<b || j==1) {
                    portPos[j] = b;
                    portCode[j] = tempCode;
                    j=1;
                }
                else
                {
                portPos[j] = portPos[j-1];
                portCode[j] = portCode[j-1];
                }
            }
        }
        else
        {
            portPos[port1] = b;
        }
    }
}
}

function getFreePort() {
    var nextFree = 1;
    for(var j=1; j <= noPorts; j++) {
        if (portPos[j] != nextFree)
        {
            return nextFree;
        }
        else
        {
            nextFree++;
        }
    }
}

insertPort = function(portNo, code) {
    for(var j=noPorts; j > portNo; j--)
    {
            portPos[j] = portPos[j-1];
            portCode[j] = portCode[j-1];
    }
    portPos[portNo] = portNo;
    portCode[j] = code;   
}

clearPort = function(portNo) {
portCode[portNo] = "zz";
drawPorts();
savePorts();
}

drawPorts = function() {
    if (document.getElementById("portMenu").parentNode.Id != "container")
    {
        document.getElementById("container").appendChild(document.getElementById("portMenu"));
    }

	var el = document.getElementsByTagName("div");
	for (var j=0; j<el.length; j++)
	{
		if (el[j].id.substring(0,6) == "column")
		{
            el[j].innerHTML="";
		}	
	}
    var portNo = 1;
    for(var i=1;i <= portPos[noPorts];i++) {
        if (portPos[portNo]==i)
        {
            addPort(portNo,i);
            document.getElementById("portcontent"+portNo).innerHTML = getPort(portNo);
            portNo++;
        }
        else
        {
            addBlank(i);
        }
    }
}

deletePort = function(portNo, draw) {
    for(var i=portNo;i < noPorts;i++)
    {
        portPos[i] = portPos[i+1];
        portCode[i] = portCode[i+1];
    }
    noPorts--;
    if (draw) {drawPorts();}
    savePorts();
}

closePort = function(portNo) {
    if (portCode[portNo].charCodeAt(0)==32)
    {
        ownPort[getCode(portCode[portNo].charAt(1))]="";
    }
    if (portPos[portNo] <= 16)
    {
        clearPort(portNo);
    }
    else
    {
        deletePort(portNo, true);
    }
}

setColumnsHeight = function() {
    maxTabs = Math.floor((document.getElementById("header").offsetWidth-250)/110);
    if (noTabs<maxTabs)
        {document.getElementById("addtab").style.visibility="visible";}
    else
        {document.getElementById("addtab").style.visibility="hidden";}
}

editPort = function(portNo) {
    var own;
    
    if (portCode[portNo].charCodeAt(0) == 32)
    {
        own=getCode(portCode[portNo].charAt(1));
        if (portCode[portNo]=="zz")
        {
            window.location.href = "NewPort.aspx?tab="+tabCode[curTab]+"&port="+portPos[portNo]+"&own="+own+"&tabpos="+curTab;
        }
        else
        {
            window.location.href = "ChangePort.aspx?tab="+tabCode[curTab]+"&port="+portPos[portNo]+"&own="+own+"&tabpos="+curTab;
        }
    }
    else
    {
        own=noOwn+1;
        newOne=true;
        if (portCode[portNo]=="zz")
        {
            window.location.href = "NewPort.aspx?tab="+tabCode[curTab]+"&port="+portPos[portNo]+"&own="+own+"&tabpos="+curTab;
        }
        else
        {
            window.location.href = "ChangePort.aspx?tab="+tabCode[curTab]+"&port="+portPos[portNo]+"&own="+own+"&tabpos="+curTab+"&new=1";
        }
    } 
}

setSearch = function(item, save) {
    if (item==1)
    {
        document.getElementById("curSearch").innerHTML = "Google";
        document.getElementById("chosenEngine").style.backgroundImage = "url(images/searchicon_google.gif)";
    }
    if (item==2)
    {
        document.getElementById("curSearch").innerHTML = "Yahoo";
        document.getElementById("chosenEngine").style.backgroundImage = "url(images/searchicon_yahoo.gif)";
    }
    if (item==3)
    {
        document.getElementById("curSearch").innerHTML = "AltaVista";
        document.getElementById("chosenEngine").style.backgroundImage = "url(images/searchicon_altavista.gif)";
    }
    if (item==4)
    {
        document.getElementById("curSearch").innerHTML = "Bing";
        document.getElementById("chosenEngine").style.backgroundImage = "url(images/searchicon_bing.gif)";
    }
    if (item==5)
    {
        document.getElementById("curSearch").innerHTML = "Aol";
        document.getElementById("chosenEngine").style.backgroundImage = "url(images/searchicon_aol.gif)";
    }
    if (item==6)
    {
        document.getElementById("curSearch").innerHTML = "Ask";
        document.getElementById("chosenEngine").style.backgroundImage = "url(images/searchicon_ask.gif)";
    }
    document.getElementById("engine").style.display="none";
    searchNum = item;
    setCategories(item);
    setCategory(1, false);
    if (save) {saveOptions();}
}

function saveOptions() {
    var showStatus = 0;
    var Exp = new Date("January 1, 3000");
    if (document.getElementById("btnHide").style.display=="none") {showStatus = 1;}
    var cook = "options="+getChar(searchNum)+getChar(catNum)+getChar(curTab)+getChar(showStatus);
    document.cookie = cook+"; path=/; expires="+Exp.toGMTString();
}

function loadOptions() {
    var cook;
	var ca = document.cookie.split(';');
    curTab=1;
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf("options=") == 0) 
		{
	        cook = c.substring(8,c.length);
	        chars = getCode(cook.charAt(0));
	        setSearch(chars, false);
	        chars = getCode(cook.charAt(1));
//	        setCategory(chars, false);
	        setCategory(1, false);
//	        setCategories(searchNum);
	        chars = getCode(cook.charAt(2));
	        curTab = chars;
	        chars = getCode(cook.charAt(3));
	        if(chars==1)
	        {hideHeader();}
		}
    }
}

setCategory = function(item, save) {
    document.getElementById("cat1").style.fontWeight = "normal";
    document.getElementById("cat2").style.fontWeight = "normal";
    document.getElementById("cat3").style.fontWeight = "normal";
    document.getElementById("cat4").style.fontWeight = "normal";
    switch (item) {
        case 1: document.getElementById("cat1").style.fontWeight = "bold"; break
        case 2: document.getElementById("cat2").style.fontWeight = "bold"; break
        case 3: document.getElementById("cat3").style.fontWeight = "bold"; break
        case 4: document.getElementById("cat4").style.fontWeight = "bold"; break
    }
    catNum = item;
    if (save) {saveOptions();}
}

setCategories = function(item) {
    switch (item) {
        case 1: document.getElementById("cat1").innerHTML = "web";
                document.getElementById("cat2").innerHTML = "images";
                document.getElementById("cat3").innerHTML = "maps";
                document.getElementById("cat4").innerHTML = "video"; 
                break
        case 2: document.getElementById("cat1").innerHTML = "web";
                document.getElementById("cat2").innerHTML = "images";
                document.getElementById("cat3").innerHTML = "news";
                document.getElementById("cat4").innerHTML = "video"; 
                break
        case 3: document.getElementById("cat1").innerHTML = "web";
                document.getElementById("cat2").innerHTML = "images";
                document.getElementById("cat3").innerHTML = "audio";
                document.getElementById("cat4").innerHTML = "video"; 
                break
        case 4: document.getElementById("cat1").innerHTML = "web";
                document.getElementById("cat2").innerHTML = "images";
                document.getElementById("cat3").innerHTML = "maps";
                document.getElementById("cat4").innerHTML = "video"; 
                break
        case 5: document.getElementById("cat1").innerHTML = "web";
                document.getElementById("cat2").innerHTML = "images";
                document.getElementById("cat3").innerHTML = "news";
                document.getElementById("cat4").innerHTML = "video"; 
                break
        case 6: document.getElementById("cat1").innerHTML = "web";
                document.getElementById("cat2").innerHTML = "images";
                document.getElementById("cat3").innerHTML = "news";
                document.getElementById("cat4").innerHTML = "video"; 
                break
    }
}

setPortContent = function(code) {
    port=document.getElementById("portMenu").parentNode.id;
    port=port.substring(7,port.length);
    portCode[port] = code;
    drawPorts();
    savePorts();
}

getOwnPort = function(portNo) {
    var hrefText, titleText, imageText, textText, cha, len, hexColour, fontID, layout=0;

    port = ownPort[portNo];

    cha = getCode(port.charAt(0));
    hrefText = port.substring(4, cha);
    len = getCode(port.charAt(1));
    titleText = port.substring(cha, cha+len);
    cha = cha + len;
    len = getCode(port.charAt(2));
    if (len>0)
    {
        if (port.charCodeAt(cha) == 95 || port.charCodeAt(cha) == 94)
        {
            imageText = 'userLogos/'+port.substring(cha+1, cha+len)+'.jpg';
        }
        else
        {
            imageText = 'Logos/'+port.substring(cha, cha+len)+'.gif';
        }
        layout = 1;
    }
    cha = cha + len;
    len = getCode(port.charAt(3));
    if (len>0)
    {
        textText = port.substring(cha, cha+len);
        layout = layout + 2;
    }

    if (layout == 1)
    {
        return port.substring(1,2)+titleText+"<BR><BR><a href='http://"+hrefText+"'><img class='portimg' src='"+imageText+"'/></a>";
    }
    if (layout == 2)
    {
        hexColour = textText.substring(0,6);
        fontID = textText.substring(6,7);
        textText = textText.substring(7,textText.length);
        return port.substring(1,2)+titleText+"<BR><BR><a href='http://"+hrefText+"'><B style='COLOR: #"+hexColour+"' class='bigporttxt"+fontID+"'>"+textText+"</B></a>";
    }
    if (layout == 3)
    {
        return port.substring(1,2)+titleText+"<BR><BR><a href='http://"+hrefText+"'><img class='portimg' src='"+imageText+"'/><br><B class='porttxt'>"+textText+"</B></a>";
    }
}

if (window.addEventListener)
	window.addEventListener("load", initPage, false);
else if (window.attachEvent)
	window.attachEvent("onload", initPage);
	

loadOwnPorts = function() {
    var cook;
    var tot = 0;
    var port;
    noOwn=0;
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf("own=") == 0) 
	    {
	        noOwn = getCode(c.charAt(4));
	        cook = c.substring(5,c.length);
	        tot = getCode(cook.charAt(1)) + getCode(cook.charAt(2)) + getCode(cook.charAt(3)) + getCode(cook.charAt(4)) - 2;
    		while (tot > 0) 
	        {
	            port = getCode(cook.charAt(0));
                ownPort[port] = cook.substring(1, tot);
                cook = cook.substring(tot, cook.length);
    	        tot = getCode(cook.charAt(1)) + getCode(cook.charAt(2)) + getCode(cook.charAt(3)) + getCode(cook.charAt(4)) - 2;
	        }
	    }
	}
	
//	if (noOwn==0)
//	{
//        ownPort[1] = "ZMBEwww.picturehouses.co.uk/cinema_home_date.aspx?venueId=factPictureHouseAFACT";
//        ownPort[2] = "ZMBEwww.picturehouses.co.uk/cinema_home_date.aspx?venueId=factPictureHouseAFACT";
//        ownPort[3] = "ZMBEwww.picturehouses.co.uk/cinema_home_date.aspx?venueId=factPictureHouseAFACT";
//        noOwn=3;
//    }
}

saveOwnPorts = function(){
    var cook = "own="+getChar(noOwn);
    var Exp = new Date("January 1, 3000");
    for(var i=1;i <= noOwn;i++)
    {
        if(ownPort[i].length>0)
        {
            cook = cook + getChar(i) + ownPort[i];
        }
    }
    document.cookie = cook+"; path=/; expires="+Exp.toGMTString();
}

introPage = function() {

	var ca = document.cookie.split(';');
	var init = false;
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf("init=") == 0) 
	    {
	        init = true;
	    }
    }
    if (init==false)
    {
        var cook = "init=1";
        var Exp = new Date("January 1, 3000");
        document.cookie = cook+"; path=/; expires="+Exp.toGMTString();
        if (document.getElementById("intro_block"))
        {
            document.getElementById("intro_block").style.display = "block";
        }
    }
}

hideHeader = function()
{
    document.getElementById("header").style.display = "None";
    if(document.getElementById("tab-bar")){document.getElementById("tab-bar").style.marginTop = "0";}
    document.getElementById("btnHide").style.display = "None";
    document.getElementById("btnShow").style.display = "Block";
    saveOptions();
}

showHeader = function()
{
    document.getElementById("header").style.display = "Block";
    if(document.getElementById("tab-bar")){document.getElementById("tab-bar").style.marginTop = "4px";}
    document.getElementById("btnShow").style.display = "None";
    document.getElementById("btnHide").style.display = "Block";
    saveOptions();
}

function findPosY(obj)
{
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
}

function showSubMenu(curObj, idNum, size)
{
    document.getElementById('portSub1').style.display='none';
    document.getElementById('portSub2').style.display='none';
    document.getElementById('portSub3').style.display='none';
    document.getElementById('portSub4').style.display='none';
    document.getElementById('portSub5').style.display='none';
    document.getElementById('portSub6').style.display='none';
    document.getElementById('portSub7').style.display='none';
    document.getElementById('portSub8').style.display='none';
    document.getElementById('portSub9').style.display='none';
    document.getElementById('portSub10').style.display='none';
    document.getElementById('portSub11').style.display='none';
    document.getElementById('portSub12').style.display='none';
    document.getElementById('portSub13').style.display='none';
    document.getElementById('portSub14').style.display='none';
    document.getElementById('portSub15').style.display='none';
    document.getElementById('portSub16').style.display='none';
    document.getElementById('portSub17').style.display='none';
    document.getElementById('portSub18').style.display='none';
    document.getElementById('portSub19').style.display='none';
    document.getElementById('portSub20').style.display='none';
    document.getElementById('portSub'+idNum).style.top = "-16px";
    document.getElementById('portSub'+idNum).style.display='block';
    var footPos = 650;
    if (parseInt(navigator.appVersion)>3) {
        if (navigator.appName=="Netscape") {
            footPos = window.innerHeight;
        }
        if (navigator.appName.indexOf("Microsoft")!=-1) {
            footPos = document.body.offsetHeight;
        }
    }

    var botPos = footPos + document.documentElement.scrollTop - document.getElementById('sub'+idNum).offsetParent.offsetTop - findPosY(document.getElementById('bot'+idNum))-30;
//alert(footPos);
//alert(document.getElementById('sub'+idNum).offsetParent.offsetTop);
//alert(findPosY(document.getElementById('bot'+idNum))); 
//alert(document.documentElement.scrollTop);   
   if (botPos<0)
   {
        document.getElementById('portSub'+idNum).style.top = (botPos-16)+"px";
   }
}

function hideSubMenu(idNum)
{
    //document.getElementById('portSub'+idNum).style.display='none';
}

function showSearchMenu()
{
    document.getElementById('engine').style.display='block';
    if (document.getElementById("Columns"))
    {
        document.getElementById("Columns").style.zIndex=30;
    }
}

function hideSearchMenu()
{
    document.getElementById('engine').style.display='none';
    if (document.getElementById("Columns"))
    {
        document.getElementById("Columns").style.zIndex=100;
    }
}

function getCode(letter)
{
    cha = letter.charCodeAt(0);
    if (cha >= 48 && cha <= 57)
    {
        return cha - 48;
    }
    else if (cha >= 65 && cha <= 90)
    {
        return cha - 55;
    }
    else if (cha >= 97 && cha <= 122)
    {
        return cha - 61;
    }
    else
    {
        return -1;
    }
}

function getChar(code)
{
    if (code >= 0 && code <= 9)
    {
        return String.fromCharCode(code + 48);
    }
    else if (code >= 10 && code <= 35)
    {
        return String.fromCharCode(code + 55);
    }
    else if (code >= 36 && code <= 61)
    {
        return String.fromCharCode(code + 61);
    }
    else
    {
        return "";
    }
}

function isEnter(e) {
    e= e || window.event || {};
        var charCode = e.charCode || e.keyCode || e.which;
        if (charCode == 13) {
            search();
        }
}
