//TEMP set 1 for test mode w/slide change; 2 for test mode NO slide change
var testmode = 0;
//config for timing (milliseconds between slides)
var delayNext = 5000;
//config for ajax timeout; should be lower than delayNext
var ajaxRequestTimeout = 3500;  

//functions
function ajaxFunction(urlstring){
var xmlHttp;
try
  {  // Firefox, Opera 8.0+, Safari  
  xmlHttp=new XMLHttpRequest();  }
catch (e)
  {  // Internet Explorer  
  try
    {    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");    }
  catch (e)
    {    
	try
      {      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      }
    catch (e)
      {      alert("Your browser does not support AJAX!");      
	  return false;      
	  }    
	}  
  }
  
requestTimeout = setTimeout("function() { xmlHttp.abort(); }",ajaxRequestTimeout);
  
  xmlHttp.onreadystatechange=function()
    {
    if(xmlHttp.readyState==4)
      {
	  if (xmlHttp.status == 200) {
	     clearTimeout(requestTimeout);
	     result = xmlHttp.responseText;
		 resultparts = result.split("~~~");
		 
	     if (testmode > 0) {
		    //alert(resultparts[5]);
			doSlideChange = confirm(str_replace('~~~','\n',result));
			}
			else
			doSlideChange = true;
			
	     if (testmode < 2 && doSlideChange) {
		 	var loadImage    = new Image;
            function imageChange(loadedImage) {
			   //RANDOM TRANSITIONS: random 1=crossfade or crosswipe; 2=which crosswipe 
			   var rndm1=Math.floor(Math.random()*10);
			   var rndm2=Math.floor(Math.random()*12);
			   //var fowstr = "cross wipe";
			   var wwstr = "lr rl tb bt tlbr trbl bltr brtl cve che cc";
			   //var fow = fowstr.split(" ");
			   var ww = wwstr.split(" ");
			   if (rndm1<5) {
			      //define crossfade (image-object, 'new src', 'seconds'[, 'new alt text'])
			      crossfade(document.getElementById('imgrssviewer'), resultparts[0], '1', resultparts[1]);
			      }
				  else {
				  crosswipe(document.getElementById('imgrssviewer'), resultparts[0], '1', ww[rndm2], resultparts[1]);
				  }
               //KEY: 
			   //[0]=new (sized) URL [1]=new CAPTION [2]=new original URL 
			   //[3]=new target [4]=new cue URL [5]=new NAME				  
			   
			   //document.getElementById('imgrssviewer').title = resultparts[1];
			   document.getElementById('imgrssviewer').title = resultparts[5];
			   document.getElementById('imgrssvwrlnk').href = 'http://' + resultparts[5];
			   document.getElementById('imgrssvwrlnk').target = resultparts[3];
			   //cue (hidden div) added 5-8-08
			   document.getElementById('imgrsscue').src = resultparts[4];
			   //added for text divs 7-08 
			   document.getElementById('imgrsstextone').innerHTML = resultparts[5]; //name
			   document.getElementById('imgrsstexttwo').innerHTML = resultparts[1]; //caption
			   }
            loadImage.onLoad = imageChange(loadImage) ;
			loadImage.src = resultparts[0];
			}
		 }
		 else {
		 //alert('There was a problem with the request.');
		 clearTimeout(requestTimeout);
		 abortRequest();
		 }
      }
    }
  xmlHttp.open("GET","includes/displayContent.php?dumptype=slideshow&" + urlstring,true);
  xmlHttp.send(null);
}

function makeGetString () {
   var getString =  "imgrsscrntsrc=" + encodeURI( document.getElementById("imgrssviewer").src ) +
                    "&imgrsscat=" + encodeURI( document.sscat.imgrsscat2.value ) + 
					"&imgrsscmd=" + encodeURI( document.getElementById("imgrsscmd").value ) +
					"&sid=" + Math.random();
   return getString;					
   }

function imgrssGoto(where) {
   document.getElementById("imgrsscmd").value = where;
   var getstr = makeGetString();
   if (testmode > 0) {   
      alert(getstr);
	  }
      ajaxFunction(getstr);
   }

function imgrssJumpto(imgfile) {
   document.getElementById("imgrsscmd").value = "jumpto" + imgfile;
   var getstr = makeGetString();
   if (testmode > 0) {   
      alert(getstr);
	  }
   ajaxFunction(getstr);
   }
   
function imgrssStart() {
   imgrssGoto('next');
      imgrsstimer = setTimeout("imgrssStart()",delayNext);
   }

function imgrssStop() {
   
   if (typeof(imgrsstimer) != "undefined")
      clearTimeout(imgrsstimer);
   }
//SUPPLEMENTAL
function str_replace(search, replace, subject) {
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'    
 
    var f = search, r = replace, s = subject;
    var ra = is_array(r), sa = is_array(s), f = [].concat(f), r = [].concat(r), i = (s = [].concat(s)).length;
 
    while (j = 0, i--) {
        while (s[i] = s[i].split(f[j]).join(ra ? r[j] || "" : r[0]), ++j in f){};
    };
     
    return sa ? s : s[0];
}

function is_array( mixed_var ) {
    // *     example 1: is_array(['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: true
    // *     example 2: is_array('Kevin van Zonneveld');
    // *     returns 2: false
 
    return ( mixed_var instanceof Array );
}