// holds an instance of XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();

// creates an XMLHttpRequest instance
function createXmlHttpRequestObject()
 {
  // will store the reference to the XMLHttpRequest object
  var xmlHttp;

  // this should work for all browsers except IE6 and older
  try
   {
    // try to create XMLHttpRequest object
    xmlHttp = new XMLHttpRequest();
   }
  catch(e)
   {
    // assume IE6 or older
	var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
									"MSXML2.XMLHTTP.5.0",
									"MSXML2.XMLHTTP.4.0",
									"MSXML2.XMLHTTP.3.0",
									"MSXML2.XMLHTTP",
									"Microsoft.XMLHTTP");
    // try every prog id until one works
	for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
	 {
	  try
	   {
	    // try to create XMLHttpRequest object
		xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
	   }
	  catch (e) {}
	 }
   }
  // return the created object or display an error message
  if (!xmlHttp) return false;
    else return xmlHttp;
 }

// called to read a file from the server
function process(link)
 {
  // only continue if xmlHttp isn't void
  if (xmlHttp)
   {
    // try to connect to the server
	try
	 {
	  xmlHttp.open("GET", link+"&alert", false);
      xmlHttp.send(null);
	  return handleRequestStateChange();
	 }
	// display the error in case of failure
	catch (e)
     {
	  return true;
	 }
   }
    else
	  {
	   return true;
	  }
 }

// function called when the state of the HTTP request changes
function handleRequestStateChange()
 {
  // when readyState is 4, we are ready to read the server response
  if (xmlHttp.readyState == 4)
   {
    // continue only if HTTP status is "OK"
	if (xmlHttp.status == 200)
	 {
	  try
	   {
	    // do something with the response from the server
		return handleServerResponse();
	   }
	  catch(e)
	   {
	    // display error message
		return true;
	   }
	 }
	  else
	    {
		 // display status message
		 return true;
		}
	}
	 else
	   {
	    return false;
	   }
 }

// handles the response received from the server
function handleServerResponse()
 {
  // read the message from the server
  var textResponse = new String;
  textResponse = xmlHttp.responseText;
  // catching potential errors with IE and Opera
  if (!textResponse) return true;

  alert('Товар добавлен в корзину');

  return false;
 }
 
 //===============================================
 
 var imageArr = new Array('/images/2_6_1.jpg','/images/2_6_4.jpg','/images/2_6_5.jpg','/images/2_6_6.jpg','/images/2_6_7.jpg','/images/2_6_8.jpg');
 var img = new Array();
 var counter = 0;
 
 function changeImage(obj) {
	//var rnd = Math.floor(img.length * Math.random()); 
  	if (counter >= imageArr.length) counter = 0;
	obj.src = img[counter++].src;
}
 
 function preloadImages(urls) {
  for (var i=0; i<urls.length; i++) {
    img[img.length] = new Image();
    img[img.length - 1].src = urls[i];
  }
  return img;
}
 
window.onload = function() {
  var obj = document.getElementById("topkamera");
  preloadImages(imageArr);
  
  if (obj.addEventListener) {
    obj.addEventListener("dblclick", function (){changeImage(obj);}, false);
  } else if (obj.attachEvent) {
    obj.attachEvent("ondblclick", function (){changeImage(obj);});
  }
  
};
