﻿// JScript File
//
//	Desciption	:	This javascript file is created to segregate the AJAX code
//					from the C# code behind server source code.
//				
//	Author		:	Katerina Kostrioukova
//	Revisions	:


//Creating the instance of the XmlHttpRequest
// branch for native XMLHttpRequest object

// CONSTANTS	
var COMPLETE		        = 4;
var OK  			        = 200;	
var SlideShowInterval;
var SlideShowFlag = true;
var AjaxSlideShowUrl = "";
var TimeInterval = 1;


var imageClient = null;
var slideClient = null;

//branch for Firefox version
if (window.XMLHttpRequest)
{
	imageClient = new XMLHttpRequest();
	slideClient = new XMLHttpRequest();
} 

//branch for IE/Windows ActiveX version
else if (window.ActiveXObject)
{
	imageClient = new ActiveXObject("Microsoft.XMLHTTP");
	slideClient = new ActiveXObject("Microsoft.XMLHTTP");	
}


//===============================================================
//Sending information to server
function getImage(AjaxServerUrl, id)
{  
    //slideClient = null;
    if (SlideShowInterval != null)
        clearInterval(SlideShowInterval);
    
    var url = AjaxServerUrl + "?id=" + id
    //var currentDate = new Date();    
    //var url = AjaxServerUrl + "?date=" + currentDate;    
	imageClient.open("GET", url);
	imageClient.onreadystatechange = getImageBack;			
	imageClient.send(null);				
}

//Waiting and processing server response
function getImageBack(response)
{	
	try
	{    
		if(imageClient.readyState == COMPLETE && imageClient.status == OK)
		{	    		    
	    	//branch for Firefox version
			if (document.implementation.createDocument)//Firefox
			{			  
			    //Get Image  
 				//var rowCount = imagetClient.responseXML.getElementsByTagName("NewDataSet")[0].childNodes.length;
			    			    				
            }
			//branch for IE/Windows ActiveX version
			else if (document.all)//IE
			{				
			    var result = imageClient.responseText;
                var resultArray = result.split(";");
                
                var imageId = resultArray[0];
                var nextImageId = resultArray[1];
                var previousImageId = resultArray[2];
                
                //var imageId = GetId(imageClient.responseText);
			    //var photo2 = window.document.getElementById("ctl00_PlaceHolderMain_ClassifiedContentControl1_ClassifiedMain1_ClassifiedDetails1_ImageGallery1_photo");
			    var photo2 = window.document.getElementById("mainImage");		    
			    var imgPrevious = window.document.getElementById("_ctl0_PlaceHolderMain_Albumpanel1_Albumpicturepage1_imgPrevious");
			    var imgNext = window.document.getElementById("_ctl0_PlaceHolderMain_Albumpanel1_Albumpicturepage1_imgNext");
			    
				var photo2HTML = ReplaceHtml(photo2.outerHTML, imageId);
				photo2.outerHTML = photo2HTML;
				
                imgPrevious.outerHTML = ReplaceId(imgPrevious.outerHTML, previousImageId);
                imgNext.outerHTML = ReplaceId(imgNext.outerHTML, nextImageId);
            }        	
	    }
	}
	catch(err)
	{
		alert(err.message);
	}			      
}

function GetId(html)
{
	var index1 = html.indexOf("id=");
    var tmpHtml = html.substring(index1+3);	
	var index2 = tmpHtml.indexOf(" ");
	var result = tmpHtml.substring(0);
	return result;
}		

function ReplaceHtml(html, imageId)
{
	var index1 = html.indexOf("p=");
    var s1 = html.substring(0, index1+11);	
    var s2 = imageId;
    var tmp =  html.substring(index1+11);
    var index2 = tmp.indexOf("&");
    var s3 =  tmp.substring(index2);
	//var re = '\"';
	var result = s1 + s2 + s3;
	return result;
}		

function ReplaceId(html, imageId)
{
	var index1 = html.indexOf(",");
	var index2 = html.indexOf(" src");
    var s1 = html.substring(0, index1 + 1);	
    var s2 = imageId;
    var s3 =  html.substring(index2 - 2);
	var result = s1 + s2 + s3;
	return result;
}		
//===================================================
//Sending information to server
function getSlideShow(AjaxServerUrl)
{  
    if (SlideShowInterval != null)
    {
        try
        {
	        clearInterval(SlideShowInterval);
	    }
	    catch (ex)
	    {
	    }
	}
	
	AjaxSlideShowUrl = AjaxServerUrl;
	
    SlideShowInterval =	setInterval('SlideShowRecursion()', TimeInterval * 1000);  	
    //SlideShowInterval =	setInterval('SlideShowRecursion()', 5 * 1000);  	
}


//Sending information to server
function SlideShowRecursion()
{
	try
	{   
		//callBack;				
		if (!SlideShowFlag)
			return;
		
		var currentDate = new Date();    
        var url = AjaxSlideShowUrl + "?date=" + currentDate;
        //var url = "/tirexbricks/GetSlideShowImage.aspx?date=" + currentDate;
	    slideClient.open("GET", url);
	    slideClient.onreadystatechange = getSlideShowBack;
        SlideShowFlag = false;	    
        slideClient.send(null);	
        
	}
	catch(ex)
	{
		alert(ex.message);
	}
}


//Waiting and processing server response
function getSlideShowBack(response)
{	
	try
	{    
		if(slideClient.readyState == COMPLETE && slideClient.status == OK)
		{	
		
            SlideShowFlag = true;
            	    	
            //branch for Firefox version
			if (document.implementation.createDocument)//Firefox
			{			  
			    //Get Image  
 				//var rowCount = imagetClient.responseXML.getElementsByTagName("NewDataSet")[0].childNodes.length;
			    			    				
            }
			//branch for IE/Windows ActiveX version
			else if (document.all)//IE
			{						               
                var imageId = GetId(slideClient.responseText);
			    var photo2 = window.document.getElementById("mainImage");
			        
				var photo2HTML = ReplaceHtml(photo2.outerHTML, imageId);
				photo2.outerHTML = photo2HTML;
                
                //Assign the transition effect
                //photo2.style.filter = "blendTrans(duration=2)";           				
                //photo2.filters.blendTrans.apply();                       //Apply the transition effect
                //photo2.filters.blendTrans.play();                        //Play the effect and display the new image
            }        	
	    }
	}
	catch(err)
	{
		alert(err.message);
	}			      
}

function setTimeInterval(ddl)
{
    //slideClient = null;
    if (SlideShowInterval != null)
        clearInterval(SlideShowInterval);

    TimeInterval = ddl.options[ddl.selectedIndex].value;    
}
