var t1arr;
var t2arr;
var t3arr;
IE=document.all;
//document.onload=alert(document.getElementById("maindiv").childNodes.length);;
document.onclick=null;
document.onmouseup=null;
var iteration = 1; 
var xpos;
var ypos;
var nxpos;
var nypos;
var dob=null;
var bounel=null;
var mxpos;
var mypos;
var oxpos;
var oypos;
var cob=null;
var elx;
var ely;
var maindiv;
var leftArr=new Array();
var topArr=new Array();
var containerLeft;
var containerTop;

var today = new Date();
var exp   = new Date(today.getTime()+999*24*60*60*1000);
var cookieName = 'homepage';
var str="";


// ******** Creating AJAX Instance START **************

if (window.XMLHttpRequest)  // For Mozilla, Safari,...
	http_request = new XMLHttpRequest();
else if (window.ActiveXObject)  // For IE
{
	try
     	{
          	http_request = new ActiveXObject("Msxml2.XMLHTTP");
     	}
     	catch (e)
     	{
     		try {
            	http_request = new ActiveXObject("Microsoft.XMLHTTP");
           	} catch (e) {}
     	}
}
if (!http_request)
{
	alert('Giving up :( Cannot create an XMLHTTP instance)');
}

// ******** Creating AJAX Instance END **************


function setCookie(name, value, expires, path, domain, secure) 
{
	document.cookie = name+"="+value+";expires="+expires.toGMTString()+"; path=/";
	updatedb(name,value);
}

function getCookie(name) 
{
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) return null;
	} else {
		begin += 2;
	}
	var end = document.cookie.indexOf(";", begin);
	if (end == -1) {
		end = dc.length;
	}
	var cc = unescape(dc.substring(begin + prefix.length, end));
	return unescape(dc.substring(begin + prefix.length, end));
}


function dpos(e)
{
	maindiv=document.getElementById("maindiv");
	if(e==null)
	{

		e=window.event
	}
	if(e.clientX)
	{
		xpos=parseInt(e.clientX);
		ypos=parseInt(e.clientY);
	}
	else
	{
		xpos=parseInt(e.pageX);
		ypos=parseInt(e.pageY);
		
	}

	dob.style.zIndex="2";

	if(IE)
	{
		dob.style.filter='alpha(opacity=50)';
	}
	else
	{
		dob.style.opacity=".50";
	}
	nypos=(ypos-mypos);
	nxpos=(xpos-mxpos);
	celex=bounel.style.top;
	if(nxpos <= (leftArr[1]-80))
	{
		bounel.style.left=leftArr[0]+"px";

		if(nypos <= (topArr[1]-100))
		{
			bounel.style.top=topArr[0]+"px";
			
		}
		else if( nypos <= (topArr[2]-100))
		{
			bounel.style.top=topArr[1]+"px";
			
		}
		else if( nypos <= (topArr[3]-100))
		{
			bounel.style.top=topArr[2]+"px";
			
		}
		else if( nypos <= (topArr[4]-100))
		{
			bounel.style.top=topArr[3]+"px";
			
		}
		else if( nypos <= (topArr[5]-100))
		{
			bounel.style.top=topArr[4]+"px";
			
		}
		else
		{
			bounel.style.top=topArr[5]+"px";
		}	
			
	}
	else if(nxpos > (leftArr[0]+ 100))
	{
		bounel.style.left=leftArr[1]+"px";

		if( nypos <= (topArr[1]-100))
		{
			bounel.style.top=topArr[0]+"px";
			
		}
		else if( nypos <= (topArr[2]-100))
		{
			bounel.style.top=topArr[1]+"px";
			
		}
		else if( nypos <= (topArr[3]-100))
		{
			bounel.style.top=topArr[2]+"px";
			
		}
		else if( nypos <= (topArr[4]-100))
		{
			bounel.style.top=topArr[3]+"px";
			
		}
		else if( nypos <= (topArr[5]-100))
		{
			bounel.style.top=topArr[4]+"px";
			
		}
		else
		{
			bounel.style.top=topArr[5]+"px";
		}	

		
	}
	else
	{
		if( nypos <= (topArr[1]-75))
		{
			bounel.style.top=topArr[0]+"px";
			
		}
		else if( nypos <= (topArr[2]-100))
		{
			bounel.style.top=topArr[1]+"px";
			
		}
		else if( nypos <= (topArr[3]-100))
		{
			bounel.style.top=topArr[2]+"px";
			
		}
		else if( nypos <= (topArr[4]-100))
		{
			bounel.style.top=topArr[3]+"px";
			
		}
		else if( nypos <= (topArr[5]-100))
		{
			bounel.style.top=topArr[4]+"px";
			
		}
		else
		{
			bounel.style.top=topArr[5]+"px";
		}	
		
	} 
	 
	for(var dele=0;dele < maindiv.childNodes.length;dele++)
	{
		if(maindiv.childNodes[dele].style.left==bounel.style.left && maindiv.childNodes[dele].style.top==bounel.style.top)
		{
			maindiv.childNodes[dele].style.left=oxpos+"px";
			maindiv.childNodes[dele].style.top=oypos+"px";
			oypos=parseInt(bounel.style.top);
			oxpos=parseInt(bounel.style.left);
		}	
	}

	dob.style.top=nypos+"px";
	dob.style.left=nxpos+"px";
	document.onmouseup=drop;

}


function drag(el,e,tel)
{
	maindiv=document.getElementById("maindiv");
	if(dob==null)
	{
		dob=el;
		cob=tel;
		cob.style.cursor="default";
		oxpos=parseInt(dob.style.left);
		oypos=parseInt(dob.style.top);
		bounel=document.getElementById("boun");
		bounel.style.left=oxpos+"px";
		bounel.style.top=oypos+"px";
		bounel.style.visibility="visible";
		elx=dob.style.left;
		ely=dob.style.top;
		if(e==null)
		{
			e=window.event
		}
		if(e.clientX)
		{
			xpos=parseInt(e.clientX);
			ypos=parseInt(e.clientY);
		}
		else
		{
			xpos=parseInt(e.pageX);
			ypos=parseInt(e.pageY);
		}
		mxpos=xpos-oxpos;
		mypos=ypos-oypos;
		document.onmousemove=dpos;
	}

	for(var i=1;i<=9;i++)
	{
		var tzid='tz'+i;
		document.getElementById(tzid).style.visibility='visible'
	}	
}


function drop()
{
var ctop;
var cleft;
maindiv=document.getElementById("maindiv");

		if(dob!=null)
		{
			
			dob.style.left=bounel.style.left;
			dob.style.top=bounel.style.top;
			document.onmousemove=null;
			document.onmouseup=null;	
			cob.style.cursor="move";
			
			if(IE)
			{
				dob.style.filter='alpha(opacity=100)';
			}
			else
			{
				dob.style.opacity="1";
			}
			dob.style.zIndex="1";
			bounel.style.visibility="hidden";
			cob=null;
			dob=null;
		
		}
		for(var dele=0;dele < maindiv.childNodes.length;dele++)
		{
			var lp=maindiv.childNodes[dele].id;
			ctop=parseInt(maindiv.childNodes[dele].style.top)-containerTop;
			cleft=parseInt(maindiv.childNodes[dele].style.left)-containerLeft;
//			document.cookie=lp+"="+ctop+":"+cleft+";expires="+ckedate.toGMTString();
		}
//		sortf('onload','onload');	
}


function setpos(el)
{
	dob=el;
	dob.style.top=el.style.top;
	dob.style.left=el.style.left;
	dob=null;

}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function placeelements()
{
	str  = getCookie("homepage");
	str1 = getCookie("count");

	if(str=="" || str==null)
	{
		str = "tz1**tz2**tz3**tz4**tz5**tz6**tz7**tz8**tz9**tz10**tz11**tz12";
		setCookie(cookieName,str, exp);
	}

	if(str1=="" || str1==null)
	{
		str1 = "tz1:5**tz2:5**tz3:5**tz4:5**tz5:5**tz6:5**tz7:5**tz8:5**tz9:5**tz10:5**tz11:5**tz12:5";
		setCookie('count',str1, exp);
	}

	containerLeft=findPosX(document.getElementById("container")) - 5;	
	containerTop=findPosY(document.getElementById("container")) + 5;
	
	if(containerLeft==-6)
		containerLeft = 129;
	var announce = document.getElementById('announce_div');
	if(announce!=null && announce.style.display=='block')
		var ann_div_height=190;
	else
		var ann_div_height=10; 

	containerTop=180;
	containerTop=180+ann_div_height;

	var tempLeft=containerLeft;
	var tempTop=containerTop;
	
	leftArr[0]=containerLeft;
	leftArr[1]=containerLeft+375;

	topArr[0]=containerTop;
	topArr[1]=containerTop+230;
	topArr[2]=containerTop+460;
	topArr[3]=containerTop+690;
	topArr[4]=containerTop+920;
	topArr[5]=containerTop+1150;

	var ck,j=0,z=0;
	var ckarr;

	var cook = getCookie("homepage");
	var arr = cook.split("**");

	var len = arr.length;
	var row = Math.floor((len/2))+(len%2);
//	var row = Math.floor((len/2));
	var hgt = (row*230)+7;
	var hgt = (row*230)+7+ann_div_height;

	var tmp = document.getElementById('main');
	tmp.style.height = hgt+'px';
	
//	document.getElementById('tz_main').style.display = "block";
//	document.getElementById('tz_main').style.position = "absolute";
//	document.getElementById('tz_main').style.left = leftArr[0]+"px";
//	document.getElementById('tz_main').style.top = topArr[0]+"px";

	for(var i=0;i<arr.length;i++)
	{
		var tmp = document.getElementById(arr[i]);
		ck=getposition(tmp);
		if(ck=="")
		{
//			alert(arr[i]);
			document.getElementById(arr[i]).style.display = "block";
			document.getElementById(arr[i]).style.position = "absolute";
			document.getElementById(arr[i]).style.left = leftArr[j]+"px";
			document.getElementById(arr[i]).style.top = topArr[z]+"px";
			if(j>=1)
			{
				j=0;z++;
			}
			else
				j++;
		}
		else
		{
			ckarr=ck.split(":");
			document.getElementById(arr[i]).style.position = "absolute";
			document.getElementById(arr[i]).style.top =(containerTop+parseInt(ckarr[0]))+"px";
			document.getElementById(arr[i]).style.left =(containerLeft+parseInt(ckarr[1])) + "px" ;
		}
	}
}

function getposition(ele)
{
	if (document.cookie.length>0)
  	{
		sind=document.cookie.indexOf(ele+ "=");
		if (sind!=-1)
  		{ 
			sind=sind + ele.length+1; 
    			lind=document.cookie.indexOf(";",sind);
    			if (lind==-1) lind=document.cookie.length;
    			return unescape(document.cookie.substring(sind,lind));
  		}
  	}
	return "";
}

//function to display edit div
function edit_disp(id)
{
	if((document.getElementById(id).style.display) == "block")
		document.getElementById(id).style.display = "none";
	else
		document.getElementById(id).style.display = "block";

}

function disp(id)
{
	document.getElementById(id).style.display = "none";
}


function enter_data(val,id,loading,i)
{
//	alert ("entered");
	if(loading=="yes")
	{
		var matchstr = "tz"+val;
		str = getCookie("count");
		var ss = str.split("**");
		for (var it=0;it<ss.length;it++)
		{
			var dd = ss[it].split(":");
			if(dd[0]==matchstr)
			{
				var xx=dd[1];
				break;
			}
		}
//		alert("val="+val+",id="+id+",xx="+xx+",i="+i);		
		send_request(val,id,xx,i);
	}
	else
	{	
//		alert ("entered");

		var yy = document.getElementById("units"+val);
		var xx = yy.options[yy.selectedIndex].value;
		if(xx!='')
		{
			send_request(val,id,xx,i);
			set_count(val,xx);
		}
	}
}


function set_count(val,xx)
{
	var matchstr = "tz"+val;
	str = getCookie("count");
//	alert ("str="+str);
	var ss = str.split("**");
	for (var it=0;it<ss.length;it++)
	{
		var dd = ss[it].split(":");
		if(dd[0]==matchstr)
			ss[it]=matchstr+":"+xx;
	}
	var st = ss.join('**');
	setCookie('count',st,exp);
}

function send_request(val,id,xx,i)
{
	var obj = http_request+i;
	if (window.XMLHttpRequest)  // For Mozilla, Safari,...
		var obj = new XMLHttpRequest();
	else if (window.ActiveXObject)  // For IE
	{
	try
     	{
          	obj = new ActiveXObject("Msxml2.XMLHTTP");
     	}
     	catch (e)
     	{
     		try {
            	obj = new ActiveXObject("Microsoft.XMLHTTP");
           	} catch (e) {}
     	}
	}
//	alert (obj);
	obj.onreadystatechange = function() { filldata(obj,val,id); };
    	obj.open('GET', "./getdata.php?query="+val+"&count="+xx, true);
    	obj.send(null);
	
}

function filldata(http_request,val,id)
{
//	alert ("val="+val+"id="+id);
	var ele = document.getElementById("content"+val);
	if (http_request.readyState == 4)
  	{
    		if (http_request.status == 200)
    		{
      		var rdate = http_request.responseText;
//			alert (rdate);
			disp(id);	
			ele.innerHTML=rdate;
		}
		else
		{
			ele.innerHTML="<img border=0 src='../images/load.gif'>";
		}
	}	
}


/***************************************
	function to close divs
***************************************/

function close_div(ele)
{
	var id = ele.parentNode.parentNode.parentNode.parentNode.id;
	str = getCookie("homepage");
	var ss = str.split("**");
	for (var it=0;it<ss.length;it++)
	{
		if(ss[it]==id)
			ss.splice(it,1);
	}
	var st = ss.join('**');
	setCookie(cookieName,st, exp);
	
//	alert (ss.indexOf(id)); // works only in firefox.
	ele.parentNode.parentNode.parentNode.parentNode.style.display='none';
	placeelements();
}


function updatedb(name,value)
{
	http_request.onreadystatechange = function() { alertContents(http_request); };
    	http_request.open('GET', "./updatedb.php?name="+name+"&value="+value, true);
    	http_request.send(null);
}

function alertContents(http_request)
{
	if (http_request.readyState == 4)
  	{
    		if (http_request.status == 200)
    		{
      		var rdate = http_request.responseText;
		}
		else
		{}
	}
}


function loaddata()
{
	var cook = getCookie("homepage");
	var arr = cook.split("**");
	for(var i=2;i<arr.length;i++)
	{
		var val = arr[i].replace('tz','');
		var id  = arr[i]+"_edit";
//		alert(val+id);
		enter_data(val,id,'yes',i);		
	}	
}

