

/************************************************************************
     B A N N E R  R O T A T E  S C R I P T
*************************************************************************/

bnRpath="http://www.1upBanners.com/adrotator/"; 
//bnRpath="http://localhost/adrotator/";

 /*
  * By this function we can meke the dynamic script tag
  * By the dynamic script we can call any server side page instantly and execute that page
  */
function bnRdynamicScript(src, id)
{
	//Add the dynamic script into the head of the requested page.
	var registerScript=document.createElement("script");
	registerScript.src=bnRpath+src;
	if(navigator.appName!='Microsoft Internet Explorer')
		registerScript.id=id;
	registerScript.type="text/javascript";
	registerScript.charset="utf-8";
	var head=document.getElementsByTagName("head")[0];
	head.appendChild(registerScript);
}

 /*
  * After successfull request sending, delete the script tag, 
  * not only the tag, all properties of the script tag will be
  * delete from the memory to avoid the memory leak.
  * in IE this removeChild doesn't work, fortunately an IE is instead of add a new script node,
  * that replace the src property of the script.
  */

function bnRdeleteScript(id)
{
	var script;
	while(script=document.getElementById(id))
	{
		script.parentNode.removeChild(script);
		for(var prop in script)
		{
			delete script[prop];
		}
	}
}
 
 /*
  * Make and place the element
  * This element is using to display (hide) the response from the server
  * If it is append with body, it will append with body at last element
  */

function bnRsetContainer(id, inner, display)
{
//	var span=document.createElement("div");
//	span.id=id;
//	span.innerHTML=inner;
//	if(!display)
//		span.style.display="none";
//	var body=document.getElementsByTagName("body")[0];
//	body.appendChild(span);
	var span='<div id="'+id+'" ';
	if(!display)
		span+='style="display:none" >';
	else
		span+='>';
	span+=inner+'</div>';
	document.writeln(span);
}

 /*
  * Get the all Ads from the server
  */

function adpreload(cat)
{
	var postId=Math.ceil(Math.random()*1000000);
	bnRsetContainer("banner"+postId, "test", false);
	bnRsetContainer("banners"+postId, "Loading..", true);
	bnRsetContainer("ban_des"+postId, "test", false);
	
	bnRdynamicScript("in/banner.php?jsonp=bannerCallback&cat="+cat+"&ele=banner"+postId, "bannerJson");
	if(navigator.appName!='Microsoft Internet Explorer')
		bnRdeleteScript("bannerJson");
}

 /*
  * Callback function
  * When the server side page will execute by the dynamic script tag
  * that will produce the responce in JSON object
  */

function bannerCallback(result, ele)
{
	var bannerDetailsObj=eval('('+result+')');
	document.getElementById(bannerDetailsObj.ele).innerHTML=bannerDetailsObj.banner_details;
	var postId=bannerDetailsObj.ele.substring(6);
	start(0, postId);
}

 /*
  * Rotate the ads
  */

function start(str, postId)
{
	var bannerArr=Array();
	var bannerValuesArr=Array();
	var bannerImage='';
	var banner_image="";
	var banner_url="";
	var banner_interval="";
	var banner_desc="";
	
	banner=document.getElementById("banner"+postId).innerHTML;
	
	if(banner!="test")
	{
		bannerArr=banner.split("###");
		
		bannerCount=bannerArr.length;
		
		if(bannerArr[str]!="")
		{
			bannerValuesArr=bannerArr[str].split("#");
			banner_image=bannerValuesArr[0];
			banner_url=bannerValuesArr[1];
			banner_interval=bannerValuesArr[2];
			banner_desc=bannerValuesArr[3];
			
			bannerImage="<a href='"+banner_url+"' target='_blank'><img src='"+bnRpath+"upload/"+banner_image+"' border='0' /></a>";
			document.getElementById("banners"+postId).innerHTML=bannerImage;
			document.getElementById("ban_des"+postId).innerHTML=banner_desc;
			var nex=str+1;
			if(nex>bannerCount-1)
				nex=0;
				
			var t=setTimeout("start("+nex+","+postId+")", banner_interval*1000);
		}
		
	}
	else
	{
		var t=setTimeout("start(0, "+postId+")", 1000);
	}
}

