xmlResponse = null;
if (!window.XMLHttpRequest){
  window.XMLHttpRequest = function(){
    var types = [    'Microsoft.XMLHTTP',
            'MSXML2.XMLHTTP.5.0',
            'MSXML2.XMLHTTP.4.0',
            'MSXML2.XMLHTTP.3.0',
            'MSXML2.XMLHTTP'    ];
    for (var i = 0; i < types.length; i++){
      try{
        return new ActiveXObject(types[i]);
      }
      catch(e) {}
    }
    return undefined;
  }
}

elm='';

//-- Upload
function uploadImage(fldName, fldValue){
	ajaxUpload(fldName, fldValue);
}

function ajaxUpload(fldName, fldValue){
	uplFile = new XMLHttpRequest();
	uplFile.open('POST', 'xml/upload.php');
  uplFile.onreadystatechange = uploadFinished;
  uplFile.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  uplFile.send(fldName + '=' + fldValue);
	
}
function uploadFinished(){
	if(uplFile.readyState == 4){
		//document.getElementById("fileUpl").style.display = 'inline';
		//document.getElementById("fileUpl").innerHTML = 'lala';		
	}
}

//-- Image Update
function imageUpdate(imageID, field, value, divID){
	setImageField(imageID, field, value);
	divBase = divID.substr(0, divID.length-2);
	elm = document.getElementById(divBase + 'v');
	updateImageDiv(imageID, field);
}

function deleteReaction(reactionID){
	react = new XMLHttpRequest();
	react.open ('POST', '/xml/react.php');
	react.onreadystatechange = handleReact(react);
  react.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  react.send('action=delete&reactionid='+reactionID);
}

function handleReact(react){
	if(react.readyState == 4){
		//document.getElementById("loading").style.display = 'none';
	}
}
function setImageField(imageID, field, value){
	img = new XMLHttpRequest();
  img.open('POST', '/xml/imgset.php');
  img.onreadystatechange = handleImgset;
  img.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  img.send('imageID='+imageID+'&field='+field+'&value='+escape(value));
}

function handleImgset(){
	if(img.readyState == 4){
		//document.getElementById("loading").style.display = 'none';
	}
}

function handleImgColLink(img, imageID){
	if(img.readyState == 4){
		//document.getElementById("loading").style.display = 'none';
		csDiv = document.getElementById('colsel_'+imageID);
		csDiv.innerHTML = 'pending...';
		
		img2 = new XMLHttpRequest();
	  img2.open('POST', '/xml/imgget.php');
	  img2.onreadystatechange = function() { updateCollectionLinkDiv(img2, imageID)};
	  img2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
	  img2.send('imageID='+imageID+'&field[]=tagname&field[]=tagid');		
	  //img2.send('imageID='+imageID+'&field=tagname');		
		
	}
}

function updateCollectionLinkDiv(img, imageID){
	if(img.readyState == 4){
		//document.getElementById("loading").style.display = 'none';
		var response = img.responseXML;
		xmlVal2 = response.getElementsByTagName("value")[1].firstChild.data;

		csDiv = document.getElementById('colsel_'+imageID);

		if(xmlVal2 == "0"){
			csInner = '<div id="ioL_'+imageID+'" class="imgOptionLink" onclick="changeCollection('+imageID+', \'dynDiv\')"> collection </div></div><div id="dynDiv'+imageID+'" class="imgOptionEdit"><div onclick="document.getElementById(\'dynDiv'+imageID+'\').style.display=\'none\';"> [ close ]</div><div id=\'dynDivInner'+imageID+'\' class=\'imgOptionEditInner\'></div></div>';
		}else{
			xmlVal1 = response.getElementsByTagName("value")[0].firstChild.data;
			csInner = '<a href="/collection.php?cid='+xmlVal2+'">'+xmlVal1+'</a> ';
			csInner += '<div id="ioL_'+imageID+'" class="imgOptionLink" onclick="changeCollection('+imageID+', \'dynDiv\')"> [?] </div></div><div id="dynDiv'+imageID+'" class="imgOptionEdit"><div onclick="document.getElementById(\'dynDiv'+imageID+'\').style.display=\'none\';"> [ close ]</div><div id=\'dynDivInner'+imageID+'\' class=\'imgOptionEditInner\'></div></div>';
		}
		csDiv.innerHTML = csInner;

	}
}

function updateImageDiv(imageID, field){
	img = new XMLHttpRequest();
  img.open('POST', '/xml/imgget.php');
  img.onreadystatechange = handleImgget;
  img.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  img.send('imageID='+imageID+'&field='+field);
}

function handleImgget(){
	if(img.readyState == 4){
		//document.getElementById("loading").style.display = 'none';
		var response = img.responseXML;
		xmlVal = response.getElementsByTagName("value")[0].firstChild.data;
		elm.innerHTML = stripslashes(xmlVal);
	}
}

function ajaxDeleteImage(imageID){
	setImageField(imageID, "delete", "delete");
	document.getElementById("delDiv"+imageID).style.display='none';
	//setTimeout('document.getElementById("imagePrv_'+imageID+'").innerHTML = ""', 1);
	if(document.getElementById("imagePrv_"+imageID)){
		setTimeout('document.getElementById("imagePrv_'+imageID+'").style.display="none"',500);
		if(parseInt(document.getElementById("imagePrv_"+imageID).style.width) > 0){
			setInterval('document.getElementById("imagePrv_'+imageID+'").style.width = (parseInt(document.getElementById("imagePrv_'+imageID+'").style.width)/2)+"px"',28);
		}
	}
	//setTimeout('document.location.href="/myphotos"',1500);

}

function ajaxDeleteCollection(collectionID){
	setCollectionField(collectionID, "delete", "delete");
	document.getElementById("delDiv"+collectionID).style.display='none';
	//setTimeout('document.getElementById("prvCol_'+collectionID+'").innerHTML = ""', 1);
	if(document.getElementById("prvCol_"+collectionID)){
		setTimeout('document.getElementById("prvCol_'+collectionID+'").style.display="none"',500);
		if(parseInt(document.getElementById("prvCol_"+collectionID).style.width) > 0){
			setInterval('document.getElementById("prvCol_'+collectionID+'").style.width = (parseInt(document.getElementById("prvCol_'+collectionID+'").style.width)/2)+"px"',28);
		}
	}
	//setTimeout('document.location.href="/myphotos"',1500);

}

function ajaxSwapPrivate(imageID){
	setImageField(imageID, "private", "swap");
}

// -- collections

function handleColset(){
	if(coll.readyState == 4){
		//document.getElementById("loading").style.display = 'none';
	}
}

function setCollectionField(collectionID, field, value){
	coll = new XMLHttpRequest();
  coll.open('POST', '/xml/colset.php');
  coll.onreadystatechange = handleColset;
  coll.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  coll.send('collectionID='+collectionID+'&field='+field+'&value='+escape(value));
}

function newCollection(imageID, collectionName, divID){
	//alert(userID);
	//return true;
	addCollection(collectionName, divID);
	//setImageField(imageID, field, value);
	//divBase = divID.substr(0, divID.length-2);
	//elm = document.getElementById(divBase + 'v');
	//updateImageDiv(imageID, field);
}

function addCollection(collectionName, containerID){
	coll = new XMLHttpRequest();
  coll.open('POST', '/xml/colset.php');
  coll.onreadystatechange = function() {/*updateCollection(imageID, containerID)*/ };
  coll.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  field = 'tagname';
  value = collectionName;
  coll.send('action=new&imageID='+imageID+'&field='+field+'&value='+escape(value));
}


function updateCollection(imageID, collectionID, containerID){
	img = new XMLHttpRequest();
  img.open('POST', '/xml/imgset.php');
  img.onreadystatechange = function() {handleImgColLink(img, imageID) };
  img.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  field = 'collectionid';
  value = collectionID;
  img.send('imageID='+imageID+'&field='+field+'&value='+escape(value));

	divid = containerID + "" + imageID;
	tDiv = document.getElementById(divid);
  tDiv.style.display = 'none';
}

function removeFromCollection(imageID, collectionID, containerID){
	img = new XMLHttpRequest();
  img.open('POST', '/xml/imgset.php');
  img.onreadystatechange = function() {handleImgColLink(img, imageID) };
  img.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  field = 'removeFromCollection';
  value = collectionID;
  img.send('imageID='+imageID+'&field='+field+'&value='+escape(value));

	divid = containerID + "" + imageID;
	tDiv = document.getElementById(divid);
  tDiv.style.display = 'none';
}

function updateCollectionsDiv(imageID, containerID){
	col = new XMLHttpRequest();
  col.open('POST', '/xml/colget.php');
  col.onreadystatechange = function(){ handleColget(imageID, containerID)};
  col.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  col.send('imageID='+imageID);
}

function handleColget(thisImageID, containerID){
	if(col.readyState == 4){
		//document.getElementById("loading").style.display = 'none';
		var response = col.responseXML;
		//xmlVal = response.getElementsByTagName("value")[0].firstChild.data;
		xmlVal = "size: " + response.getElementsByTagName("collection").length;
		xmlVal = '';
		
		originalImageID = thisImageID;// response.getElementsByTagName("imageID")[0].firstChild.data;

		xmlVal += '<div id="newImg'+thisImageID+'" class="quickChoice" onmouseover="hover(this);" onmouseout="hoverout(this);" onclick="//updateCollection(' + originalImageID + ', \'0\', \''+containerID+'\');">';
		xmlVal += '<img src="/images/transparent.gif" width="20" height="20" style="margin: 0 2px 0 0;">';
		xmlVal += '<div style="display: inline;" id="newColl'+thisImageID+'_v" onclick="swapDiv(this.id);">[ new ] </div>';
		xmlVal += '<div class="frmField" id="newColl'+thisImageID+'_e" onblur="swapDiv(this.id);" style="display: none;">';
		xmlVal += '<input class="div" onblur="newCollection('+thisImageID+', this.value, this.id); swapDiv(\'newColl'+thisImageID+'_e\');" id="newColl'+thisImageID+'_ei" name="collectionName" value="" type="text">';
		xmlVal += '</div>';
		xmlVal += '</div>';

		xmlVal += '<div class="quickChoice" onmouseover="hover(this);" onmouseout="hoverout(this);" onclick="updateCollection(' + originalImageID + ', \'0\', \''+containerID+'\');">';
		xmlVal += '<img src="/images/transparent.gif" width="20" height="20" style="margin: 0 2px 0 0;">';
		xmlVal += '[ cancel ] ';
		xmlVal += '</div>';

		
		for(l=0 ; l < response.getElementsByTagName("collection").length ; l++){
		
			collectionID = response.getElementsByTagName("id")[l].firstChild.data;
			collectionName = response.getElementsByTagName("name")[l].firstChild.data;
			isInCollection = response.getElementsByTagName("imgincol")[l].firstChild.data;
					
			imageID = response.getElementsByTagName("imgid")[l].firstChild.data;
			if(imageID>0){
				imageHash = response.getElementsByTagName("imghash")[l].firstChild.data;
				imageFilename = response.getElementsByTagName("imgfname")[l].firstChild.data;
				
				imagePath = '/img/' + imageID + '/' + imageHash + '/2/' + imageFilename;
			}
			choiceStyle = '';
			collectionCommand = 'updateCollection';

			if(isInCollection != '0'){
				choiceStyle = ' style="color: rgb(24,24,255);" ';
				collectionCommand = 'removeFromCollection';
			}
			
			xmlVal += '<div class="quickChoice" '+ choiceStyle + ' onmouseover="hover(this);" onmouseout="hoverout(this);" onclick="'+collectionCommand+'(' + originalImageID + ', \''+collectionID+'\', \''+containerID+'\');">';
			if(imageID>0){
						xmlVal += '<img src="'+imagePath+'" width="20" height="20" style="margin: 0 2px 0 0;">';
						}

			xmlVal += collectionName + '';
			xmlVal += '</div>';
		}
		
	//	xmlVal = "1";
	dividInner = containerID + "Inner" + thisImageID;
	tDivInner = document.getElementById(dividInner);
	tDivInner.innerHTML = xmlVal;
	}
}

//-- tags

function ajaxAddTag(imageID, value){
	setImageField(imageID, "tag", value);
	imgTagsDiv = document.getElementById("imageTags");
	imgTagsDiv.innerHTML = imgTagsDiv.innerHTML + '<div class="tag" id="tag_'+value.toLowerCase()+'"><a class="tag" href="/tag/'+value+'">'+value+'</a> <div class="txtaction"> <a onclick="removeTag('+imageID+',\''+value.toUpperCase()+'\'); return false;" href="."> <img width="8" height="8" border="0" src="/images/icons/cross.png" title="delete" alt="cross"/></a></div></div>';
}

function removeTag(imageID, value){
	setImageField(imageID, "removetag", value);
	document.getElementById("tag_"+value.toLowerCase()).style.display = 'none';
}
