// JavaScript Document
var timer;
var recno=0;
var repeatloop=1;
var playlist=new Array();
var playlistlength=0;
var playstatus="pause";
var pausetime=1000;
function createxmlhttpobject()
{
	var xmlhttp1;	
	if (window.XMLHttpRequest)
  	{
  		xmlhttp1=new XMLHttpRequest();
		return xmlhttp1;
  	}
	else if (window.ActiveXObject)
  	{
  		xmlhttp1=new ActiveXObject("Microsoft.XMLHTTP");
		return xmlhttp1;
  	}
	else
  	{
  		alert("Your browser does not support XMLHTTP!");
		return false;
  	}
}
function ltrim(argvalue) {

  while (1) {
    if (argvalue.substring(0, 1) != " ")
      break;
    argvalue = argvalue.substring(1, argvalue.length);
  }

  return argvalue;
}

//rtrim function
function rtrim(argvalue) {

  while (1) {
    if (argvalue.substring(argvalue.length - 1, argvalue.length) != " ")
      break;
    argvalue = argvalue.substring(0, argvalue.length - 1);
  }

  return argvalue;
}

//trim function
function trim(argvalue) {
  var tmpstr = ltrim(argvalue);

  return rtrim(tmpstr);

}
function showhide(ctrl,stat)
{
	if(document.getElementById(ctrl))
	{
		document.getElementById(ctrl).style.display = stat;
	}
}
function isDate(inputStr)
{
	date_arr=inputStr.split('-');
	if(date_arr.count<2)
	{
		return false;	
	}
	else
	{
		return checkDate(date_arr[1],date_arr[0],date_arr[2]);
	}
	
}

function getplaylist(bid,scale,boxdate,boxtime,plid,clear)
{
	if(clear==1) recno=0;
	changeplaystatus();
	repeatloop=0;
	
	var xmlhttp;	
	xmlhttp=createxmlhttpobject();
	if(xmlhttp == false) return;
	
	var params = "datatype=getplaylist&boxid_pr=" + bid + "&scale=" + scale + "&boxdate=" + boxdate + "&boxtime=" + boxtime + "&plid=" + plid;
	
	xmlhttp.open("POST","webpreview_ops.php",true);
	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp.setRequestHeader("Content-length", params.length);
	xmlhttp.setRequestHeader("Connection", "close");
	xmlhttp.onreadystatechange=function()
  	{
		if(xmlhttp.readyState == 4 && xmlhttp.status == 200) 
		{
			var outstr=xmlhttp.responseText;
			if(outstr.indexOf("~~~~~~~~~~")>0)
			{
				showhide('loader','none');
				playlist=outstr.split("~~~~~~~~~~");
				playlistlength=playlist.length-2;
				playbtn();
			}
			else
			{
				playlist=[];
				playlistlength=0;
		    }
		}
	}
	xmlhttp.send(params);		
} 
function getskin(bid,scale,boxdate,boxtime,plid)
{
	var xmlhttp;	
	xmlhttp=createxmlhttpobject();
	if(xmlhttp==false) return;
	var params = "datatype=getskin&boxid_pr=" + bid + "&scale=" + scale + "&boxdate=" + boxdate + "&boxtime=" + boxtime + "&plid=" + plid;
	xmlhttp.open("POST","webpreview_ops.php",true);
	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp.setRequestHeader("Content-length", params.length);
	xmlhttp.setRequestHeader("Connection", "close");
	xmlhttp.onreadystatechange=function()
  	{
  		if(xmlhttp.readyState == 4 && xmlhttp.status == 200) 
		{
			document.getElementById("skin_id").innerHTML=trim(xmlhttp.responseText);		
		}
	}
	xmlhttp.send(params);
}
function getimage()
{
		pausetime=1000;
		//highlight the record
		if(recno>playlistlength) recno=0;
		
			outstr=playlist[recno];
			imgprp=new Array("","","","","");
			if(outstr.indexOf("`````")>0)
			{
				imgprp=outstr.split("`````");
				
				if(document.getElementById("areaplr_"+ trim(imgprp[1])).value!=trim(imgprp[4]) || playlistlength<3)
				{
					tranisitiontime=0;
					if(trim(imgprp[5])!=-1)
					{
						oplrid=document.getElementById("areaplr_"+ trim(imgprp[1])).value;
						document.getElementById("area_" + trim(imgprp[1])).innerHTML = document.getElementById("area_" + trim(imgprp[1])).innerHTML + "<div class=\"transition_overlay\" id=\"newimage\">" +  trim(imgprp[0]) + "</div>";
						aduration=1000;
						if(trim(imgprp[5])==4) aduration=500;
						animate_transition("area_" + trim(imgprp[1]), "image_" + oplrid, "newimage", trim(imgprp[5]), aduration);		
						tranisitiontime=aduration;
					}
					pausetime=trim(imgprp[2]) * 1000;
					document.getElementById("areaplr_"+ trim(imgprp[1])).value=trim(imgprp[4]);
					
					window.setTimeout(function () {
									document.getElementById("area_" + trim(imgprp[1])).innerHTML=trim(imgprp[0]); 
									}, tranisitiontime);	
					
					
				}
				
				if(imgprp[0].indexOf("CODEBASE=\"http://www.apple.com/qtactivex/qtplugin.cab\"")>0) 
				{
					pausetime=8000;
					clearar=0;
					if(trim(imgprp[3])=="Yes")
					{
						clearar=trim(imgprp[1]);
					}
					window.setTimeout('getmovietime('+clearar+')', pausetime);
					
				}
				else
				{
						if(trim(imgprp[3])=="Yes")
						{
							window.setTimeout('cleararea('+trim(imgprp[1])+')', pausetime);	
						}
						if(repeatloop==1)
						{
							recno = recno + 1;
							timer=window.setTimeout('getimage()', pausetime);
						}
				}
			}
		
}
function getmovietime(arid)
{
	var movie=document.movieid;
	
	if(movie.GetDuration) pausetime=parseInt(movie.GetDuration()/movie.GetTimeScale() - 8)*1000;	
	
	if(pausetime<0) pausetime=0; 
	if(repeatloop==1)
	{
			recno = recno + 1;
			if(arid!=0) window.setTimeout('cleararea('+arid+')', pausetime);
			timer=window.setTimeout('getimage()', pausetime);			
	}
}

function cleararea(divtag)
{
	document.getElementById("area_" + divtag).innerHTML="&nbsp;";
}
function getplrid(rno)
{
	if(rno>playlistlength) rno=0;
	outstr=playlist[rno];
	imgprp=outstr.split("`````");
	plrid=imgprp["4"];
	return plrid; 
}
function playbtn()
{	
	if(playstatus=="pause")
	{
		playstatus="play";
		playpreview();
		showhide('playon','block');
		showhide('playoff','none');
		showhide('pauseon','none');
		showhide('pauseoff','block');
	}
	else
	{
		playstatus="pause";
		pausepreview();
		showhide('playon','none');
		showhide('playoff','block');
		showhide('pauseon','block');
		showhide('pauseoff','none');
	}
}
function firstbtn()
{
	changeplaystatus();
	rewindpreview();
}
function lastbtn()
{
	changeplaystatus();
	forwardpreview();
}
function previousbtn()
{
	changeplaystatus();
	previouspreview();
}
function nextbtn()
{
	changeplaystatus();
	nextpreview();
}
function changeplaystatus()
{	
	if(playstatus!="pause")
	{
		pausepreview();
		playbtn();
	}
}
function playpreview()
{
	repeatloop=1;
	getimage();
}
function pausepreview()
{
	recno=recno-1;
	clearTimeout(timer);
}
function rewindpreview()
{
	recno=0;
	repeatloop=0;
	getimage();
}
function forwardpreview()
{
	recno=playlistlength;
	repeatloop=0;
	getimage();
}
function previouspreview()
{
	recno=recno-1;
	if(recno<0) recno=playlistlength;
	repeatloop=0;
	getimage();
}
function nextpreview()
{
	recno=recno+1;
	lastrow=playlistlength;
	if(recno>lastrow) recno=0;
	repeatloop=0;
	getimage();
}
function getlatestdata(bid,scale,clear)
{
	changeplaystatus();
	boxdate=trim(document.getElementById("prdate").value);
	boxtime=trim(document.getElementById("prtime").value);
	playlistidval=trim(document.getElementById("playlist_id").value);
	getplaylist(bid,scale,boxdate,boxtime,playlistidval,clear);		
}
 function preloadimages(imgstrval)
 {
		if(imgstrval.indexOf("~~~~~~~~~~")>0)
		{
			imgarr=imgstrval.split("~~~~~~~~~~");
			for(i=0;i<imgarr.length;i++)
			{
				 imgobj= new Image(100,25);
     			 imgobj.src=imgarr[i];
			}	
		}
 }
 function closepopup()
 {
	var apidiv=parent.document.getElementById("largeapiid");
	apidiv.parentNode.removeChild(apidiv);
	
	var objdiv=parent.document.getElementById("blacknewoverlay");
	objdiv.parentNode.removeChild(objdiv);
 }
  function openpopup(refid)
 {
	var obj;
	/*if(parent.document)
	{
		obj=parent.document;
	}
	else
	{
		obj=document;
	}*/
	obj=parent.document;
	
	var objdiv = parent.document.createElement("div");
	objdiv.id="blacknewoverlay";
	objdiv.style.left='0px';
	objdiv.style.top='0px';
	objdiv.style.width='100%';
	objdiv.style.height='100%';
	objdiv.style.position='absolute';
	objdiv.style.backgroundColor='#000000';
	objdiv.style.zIndex=350;
	objdiv.style.opacity=.50;
	
	obj.body.appendChild(objdiv);
	
		
	var apidiv = obj.createElement("div");
	apidiv.id="largeapiid";
	apidiv.style.left='30%';
	apidiv.style.top='20px';
	//apidiv.style.border='solid 1px #c7c7c7';
	apidiv.style.backgroundColor='transparent';
	apidiv.style.position='absolute';
	apidiv.style.zIndex=450;
	
	var xmlhttp;	
	xmlhttp=createxmlhttpobject();
	if(xmlhttp == false) return;
	var params = "datatype=getrelatedapi&z_apiid_fk=" + refid;
	xmlhttp.open("POST","webpreview_ops.php",true);
	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp.setRequestHeader("Content-length", params.length);
	xmlhttp.setRequestHeader("Connection", "close");
	xmlhttp.onreadystatechange=function()
  	{
		if(xmlhttp.readyState == 4 && xmlhttp.status == 200) 
		{
			apidiv.innerHTML=xmlhttp.responseText;
			obj.body.appendChild(apidiv);
		}
	}
	xmlhttp.send(params);	
}
 function animate_transition(container_id, original_image_id, overlay_image_id, transition_type, duration) {
       	var ANIMATION_DURATION = duration;
        var container = $("#"+container_id);
        var original_image = $("#"+original_image_id);
        var overlay_image = $("#"+overlay_image_id);
        
        var container_width = container.width();
        var container_height = container.height();

        if(transition_type == 0) {
            // fade in transition
            overlay_image.css('left', 0);
            overlay_image.css('top', 0);
            original_image.fadeOut(ANIMATION_DURATION);
            overlay_image.fadeIn(ANIMATION_DURATION);
        } else if (transition_type == 1) {
            // circle out transition
            var maxW = container_width; 
            var maxH = container_height;
            var maxR = Math.sqrt((maxW/2)*(maxW/2) + (maxH/2)*(maxH/2));
            bring_forward(overlay_image);
            overlay_image.css("display", "block");
            overlay_image.css('left', container_width/2);
            overlay_image.css('top', container_height/2);
            overlay_image.css('width', 0);
            overlay_image.css('height', 0);
            
            overlay_image.children('width', 0);
            overlay_image.children('height', 0);
            overlay_image.animate({top : -(maxR-container_height/2), left: -(maxR-container_width/2), width:2*maxR, height:2*maxR}, {
                duration: ANIMATION_DURATION, 
                step:function() {
                    // function for circle out, does not fully work
                    var w = overlay_image.width();
                    var h = overlay_image.height();
                    var radius = Math.sqrt(w*w+h*h);
                    var radius = Math.sqrt(w*w/4+h*h/4);
                    overlay_image.children("img").css("width", w);
                    overlay_image.children("img").css("height", h); 
                    overlay_image.children("img").css("-moz-border-radius", radius);
                    overlay_image.children("img").css("-webkit-border-radius", radius); 
                },
                complete:function() {
                    // animation complete callback
                    overlay_image.children("img").css("-moz-border-radius", 0);
                    overlay_image.children("img").css("-webkit-border-radius", 0); 
                    overlay_image.children("img").css("width", container_width);
                    overlay_image.children("img").css("height", container_height); 
                    overlay_image.css("width", container_width); 
                    overlay_image.css("height", container_height); 
                    overlay_image.css("top", 0);
                    overlay_image.css("left", 0);
                }
            });
        } else if (transition_type == 2) {
            // box out transition
            bring_forward(overlay_image);
            overlay_image.css("display", "block");
            overlay_image.css('left', container_width/2);
            overlay_image.css('top', container_height/2);
            overlay_image.css('width', 0);
            overlay_image.css('height', 0);
            
            overlay_image.children('width', 0);
            overlay_image.children('height', 0);
            overlay_image.animate({top : 0, left: 0, width:container_width, height:container_height}, {
                duration: ANIMATION_DURATION, 
                step:function(){
                    overlay_image.children("img").css("width", overlay_image.css("width"));
                    overlay_image.children("img").css("height", overlay_image.css("height"));
                }
            });
        } else if (transition_type == 3) {
            // gravity bouncer
            bring_forward(overlay_image);
            overlay_image.css("display", "block");
            overlay_image.css('left', 0);
            overlay_image.css('top', -container_height);
            overlay_image.animate({top : 0}, ANIMATION_DURATION, "easeOutBounce", function(){
                original_image.css("display", "none");
            }); 
        } else if (transition_type == 4) {
            // gravity dropdown
            bring_forward(overlay_image);
            overlay_image.css("display", "block");
            overlay_image.css('left', 0);
            overlay_image.css('top', -container_height);
            overlay_image.animate({top : 0}, ANIMATION_DURATION/2, "easeInQuart", function(){
                original_image.css("display", "none");
            }); 
        } else if (transition_type == 5) {
            // slide down
            bring_forward(overlay_image);
            overlay_image.css("display", "block");
            overlay_image.css('left', 0);
            overlay_image.css('top', -container_height);
            overlay_image.animate({top : 0}, ANIMATION_DURATION, "linear", function(){
                original_image.css("display", "none");
            }); 
        } else if (transition_type == 6) {
            // slide up
            bring_forward(overlay_image);
            overlay_image.css("display", "block");
            overlay_image.css('left', 0);
            overlay_image.css('top', container_height);
            overlay_image.animate({top : 0}, ANIMATION_DURATION, function(){
                original_image.css("display", "none");
            }); 
        } else if (transition_type == 7) {
            // slide left 
            bring_forward(overlay_image);
            overlay_image.css("display", "block");
            overlay_image.css('left', container_width);
            overlay_image.css('top', 0);
            overlay_image.animate({left : 0}, ANIMATION_DURATION, function(){
                original_image.css("display", "none");
            }); 
        } else if (transition_type == 8) {
            // slide right 
            bring_forward(overlay_image);
            overlay_image.css("display", "block");
            overlay_image.css('left', -container_width);
            overlay_image.css('top', 0);
            overlay_image.animate({left : 0}, ANIMATION_DURATION, function(){
                original_image.css("display", "none");
            }); 
        } else if (transition_type == 12) {
            // wipe right 
            bring_forward(overlay_image);
            set_to_origin(overlay_image);
            overlay_image.css("display", "block");
            overlay_image.css("width", "0px");
            overlay_image.css("overflow", "hidden");
            overlay_image.animate({width: container_width}, ANIMATION_DURATION, function() {
                original_image.css("display", "none");
            });
        } else if (transition_type == 11) {
            // wipe left
            bring_forward(overlay_image);
            set_to_origin(overlay_image);
            overlay_image.css("display", "block");
            overlay_image.css("overflow", "hidden");
            // the viewport will increase its width from 0 to the container_width
            overlay_image.css("width", "0px");
            overlay_image.css("left", container_width);
            overlay_image.children("img").css("float", "right");
            overlay_image.animate({left:0, width: container_width}, ANIMATION_DURATION, function() {
                original_image.css("display", "none");
            });
        } else if (transition_type == 9) {
            // wipe down
            bring_forward(overlay_image);
            set_to_origin(overlay_image);
            overlay_image.css("display", "block");
            overlay_image.css("height", "0px");
            overlay_image.css("overflow", "hidden");
            overlay_image.animate({height: container_width}, ANIMATION_DURATION, function() {
                original_image.css("display", "none");
            });
        } else if (transition_type == 10) {
            // wipe up 
            bring_forward(overlay_image);
            set_to_origin(overlay_image);
            overlay_image.css("display", "block");
            overlay_image.css("overflow", "hidden");
            // the viewport will increase its width from 0 to the container_width
            overlay_image.css("height", "0px");
            overlay_image.css("top", container_width);
            overlay_image.children("img").css("margin-top", -container_width);
            overlay_image.animate({top:0, height:container_width}, ANIMATION_DURATION, function() {
                original_image.css("display", "none");
            });
            overlay_image.children("img").animate({marginTop: 0}, ANIMATION_DURATION, function() {});
        } else if (transition_type == 13) {
			animate_transition(container_id, original_image_id, overlay_image_id, Math.random()*12);
        }
	}

    function set_to_origin(dom) {
        dom.css('left', 0);
        dom.css('top', 0);
    }

    function bring_forward(dom) {
        dom.css('z-index',  dom.css('z-index')+1);
    }
	
