
/*******************************************************************
    P H O T O  R O T A T E  S C R I P T
********************************************************************/

pRpath="http://www.1upBanners.com/photorotator/"; 
//pRpath="http://localhost/photorotator/";

 /*
  * By this function we can make the dynamic script tag
  * By the dynamic script we can call any server side page instantly and execute that page
  */

function pRdynamicScript(src, id)
{
	//Add the dynamic script into the head of the requested page.
	var registerScript=document.createElement("script");
	registerScript.src=pRpath+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 pRdeleteScript(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 pRsetContainer(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 Photos from the server
  */

function photopreload(cat)
{
	var postId=Math.ceil(Math.random()*1000);
	
	pRsetContainer("banner"+postId, "test", false);
	pRsetContainer("banners"+postId, "Loading..", true);
	pRsetContainer("ban_des"+postId, "test", false);
	
	inc(pRpath+"js/tool_tip/wz_tooltip.js");
	inc(pRpath+"js/tool_tip/tip_balloon.js");
	
	pRdynamicScript("in/photo.php?jsonp=photoCallback&cat="+cat+"&ele=banner"+postId, "photoJson");
	if(navigator.appName!='Microsoft Internet Explorer')
		pRdeleteScript("photoJson");
	pRstart(0, postId);
}

 /*
  * Callback function
  * When the server side page will execute by the dynamic script tag
  * that will produce the responce in JSON object
  */

function photoCallback(result, ele)
{
	var photoDetailsObj=eval('('+result+')');
	document.getElementById(photoDetailsObj.ele).innerHTML=photoDetailsObj.photo_details;
	var postId=photoDetailsObj.ele.substring(6);
	pRstart(0, postId);
}

 /*
  * Rotate the photos
  */

function pRstart(str, postId)
{
	var bannerArr=Array();
	var bannerValuesArr=Array();
	var bannerImage='';
	var banner_image="";
	var banner_url="";
	var banner_interval="";
	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];
			banner_tt_status=bannerValuesArr[4];
			banner_des_status=bannerValuesArr[5];
			
			bannerImage="";
			bannerImage+="<a href='"+banner_url+"' target='_blank'><img src='"+pRpath+"upload/"+banner_image+"'";
			if(banner_tt_status=="1")
				bannerImage+=" onmousemove='dispTip()'";
			bannerImage+=" onmouseout='UnTip()'/></a>";
			if(banner_des_status=="1")
				bannerImage+="<div style='width:158px; margin-left:1px; background-color:#FFFFFF; color:#000000; text-align:justify; padding:5px'>"+banner_desc+"</div>";
				
			document.getElementById("banners"+postId).innerHTML=bannerImage;
			
			var nex=str+1;
			if(nex>bannerCount-1)
				nex=0;
				
			var t=setTimeout("pRstart("+nex+","+postId+")", banner_interval*1000);
		}
		
	}
	else
	{
		var t=setTimeout("pRstart(0, "+postId+")", 1);
	}
}

 /*
  * Similar to dynamic script
  * it is for tool tip
  *-------------------------------------------------------------------
  * NOTE : Append with body will show 'operation aborted error' in IE
  *-------------------------------------------------------------------
  */

function inc(filename)
{
	var b=document.getElementsByTagName('head').item(0);
	script=document.createElement('script');
	script.src=filename;
	script.type="text/javascript";
	b.appendChild(script);
}
 
 /*
  * For tool tip display
  * This tool tip downloaded from the internet
  * Unknown site
  */

function dispTip()
{
	Tip(banner_desc, BALLOON, true, BALLOONIMGPATH, pRpath+'js/tool_tip/tip_balloon/', ABOVE, true);
}


