/* Grab the comments for the current image */

function startImageComments(imgId, tb, imgButton){
	imgComments = new imageComments(imgId, tb, imgButton);
}

var xmlCommentsHttp;
var xmlSaveCommentsHttp;
var requestImageCommentsURL;

function imageComments(imgId, tb, imgButton) {
	this.current = imgId;
	this.commentBox = tb;
	this.button = imgButton;		
	this.init();	
}

imageComments.prototype.requestImageComments = function(image) {
	var t = image;
	
	requestImageCommentsURL = location + "&commentid=" + t.current;
	
	xmlCommentsHttp = GetXmlHttpObject();
					
	if (xmlCommentsHttp.readyState != 0) {
		xmlCommentsHttp.abort();
	}
	
	xmlCommentsHttp.open('GET', requestImageCommentsURL, true);
	
	xmlCommentsHttp.onreadystatechange = function() {
		if (xmlCommentsHttp.readyState == 4 || xmlCommentsHttp.readyState == "complete")
		{
			var str = xmlCommentsHttp.responseText;
				
			if (str.length > 0) {
				t.createImageComments(str);
			}
		} else {
			//alert(xmlHttp.readyState);
		}
	};
	
	xmlCommentsHttp.send(null);
};

imageComments.prototype.submitImageComments = function(image) {
	var t = image;
	

	requestImageCommentsURL = location + "&commentid=" + t.current + "&comment=" + t.commentBox.value;
	
	xmlSaveCommentsHttp = GetXmlHttpObject();
					
	if (xmlSaveCommentsHttp.readyState != 0) {
		xmlSaveCommentsHttp.abort();
	}
	
	xmlSaveCommentsHttp.open('GET', requestImageCommentsURL, true);
	
	xmlSaveCommentsHttp.onreadystatechange = function() {
		if (xmlSaveCommentsHttp.readyState == 4 || xmlSaveCommentsHttp.readyState == "complete")
		{
			var str = xmlSaveCommentsHttp.responseText;
			//alert(str);
			if (str.length > 0) {
				t.createImageComments(str);
			}
			
			var temp = document.getElementById(t.commentBox.id);
			temp.value = '';
		} else {
			//alert(xmlHttp.readyState);
		}
	};
	
	xmlSaveCommentsHttp.send(null);
};


imageComments.prototype.init = function () {
	var t = this;
	
	t.requestImageComments(t);

	if (t.button != null) {
		//alert(t.button);
		t.button.onclick = function () {t.submitImageComments(t); return false;}
	}	
};

imageComments.prototype.createImageComments = function(comments) {
	var c = new Array();
	
	if (comments.length > 2) {
		var temp = comments.substring(0, comments.length - 1)
		c = temp.split(";");
	}
	
	var ol = document.getElementById("comment");		
	ol.innerHTML = ""	
	var li = null;
	var h6 = null;
	var p = null;
	
	if (c.length == 0)
	{			
		li = document.createElement("li");				
		li.appendChild(document.createTextNode("Be the first to post a comment"));
		ol.appendChild(li);
	} else {
		for (var i = 0; i < c.length; i++)
		{
			if (c[i].length != 0) {
				var parts = new Array(3);
				parts = c[i].split("|");			
				var displayName = parts[0]; 
				var commentDate = parts[1]
				var isAuthor = parts[2];
				var comment = parts[3];				
				
				li = document.createElement("li");
				h6 = document.createElement("h6");
				p = document.createElement("p");
				
				li.setAttribute('class', isAuthor);
				h6 = document.createElement("h6")
				
				var display = displayName + ' said on ' + commentDate;
			
				h6.appendChild(document.createTextNode(display));
				li.appendChild(h6);
			
				p.appendChild(document.createTextNode(comment));
				li.appendChild(p);
				ol.appendChild(li);
			}
		}
	}
	
};

/* Image Tags */
function startImageTags(imgId){
	imgTags = new imageTags(imgId);
}

var xmlTagsHttp;
var requestImageTagsURL;

function imageTags(imgId) {
	this.current = imgId;		
	this.init();	
}

imageTags.prototype.requestImageTags = function(image) {
	var t = image;
	
	requestImageTagsURL = location + "&tagid=" + t.current;
	
	xmlTagsHttp = GetXmlHttpObject();
					
	if (xmlTagsHttp.readyState != 0) {
		xmlTagsHttp.abort();
	}
	
	xmlTagsHttp.open('GET', requestImageTagsURL, true);
	
	xmlTagsHttp.onreadystatechange = function() {
		if (xmlTagsHttp.readyState == 4 || xmlTagsHttp.readyState == "complete")
		{
			var str = xmlTagsHttp.responseText;
		
			if (str.length > 0) {
				t.createImageTags(str);
			}
		} else {
			//alert(xmlHttp.readyState);
		}
	};
	
	xmlTagsHttp.send(null);
};

imageTags.prototype.init = function () {
	var t = this;
	
	t.requestImageTags(t);
};

imageTags.prototype.createImageTags = function(tags) {	
	var p = document.getElementById("tags");	
	p.innerHTML = "";
	var imgtags = tags;
	
	if (is_ff) {
		imgtags = imgtags.substring(0, imgtags.length-1);
	}
	
	p.appendChild(document.createTextNode(imgtags));	
};

/* Image Rating */
function rating(myRank, avgRank){
	var rating = document.getElementById("rating");
	var ratingValue = rating.className;
	if (ratingValue == "notRanked") {		
	//alert("not ranked");
		var imgs = rating.getElementsByTagName("a");
		for(var i=0; i<imgs.length; i++){
			imgs[i].onmouseover = function(){
				setBackgroundWidth(this.title);
			}
			imgs[i].onmouseout = function(){
				setBackgroundWidth(0);
			}
		}
		
		setBackgroundWidthPct(avgRank);
	} else {
		var imgs = rating.getElementsByTagName("a");
		
		for(var i=0; i<imgs.length; i++){
			imgs[i].onmouseover = null;
			imgs[i].onmouseout = null;
		}
		setBackgroundWidth(myRank);
		setBackgroundWidthPct(avgRank);
		
	}
}
	
function setBackgroundWidth(id){
	var bg = document.getElementById("bg");
	bg.style.width = (id * 15) + "px";	
}

function setBackgroundWidthPct(value){//alert(value);
	var avgbg = document.getElementById("avgbg");
	if (is_ff) {
		value = value.substring(0,value.length-1);
	}
	
	avgbg.style.width =((value / 100) * 75) + "px";
	alert(avgbg);
}
	
function startRating(imgId){
	rankMe = new imageRating(imgId);
}

var xmlRatingHttp;
var xmlSaveRatingHttp;
var requestImageRatingURL;

function imageRating(imgId) {
	this.current = imgId;
	this.star1 = document.getElementById('starRank1');
	this.star2 = document.getElementById('starRank2');
	this.star3 = document.getElementById('starRank3');
	this.star4 = document.getElementById('starRank4');
	this.star5 = document.getElementById('starRank5');
	
	this.init();	
}

imageRating.prototype.requestImageRating = function(image) {
	var t = image;

	requestImageRatingURL = location + "&rankid=" + t.current;
	//alert(location + "&rankid=" + t.current);
	xmlRatingHttp = GetXmlHttpObject();
					
	if (xmlRatingHttp.readyState != 0) {
		xmlRatingHttp.abort();
	}
	
	xmlRatingHttp.open('GET', requestImageRatingURL, true);
	
	xmlRatingHttp.onreadystatechange = function() {
		if (xmlRatingHttp.readyState == 4 || xmlRatingHttp.readyState == "complete")
		{
			var str = xmlRatingHttp.responseText;
		//	var str = 3;
		//alert(str);
			t.createImageRating(t, str);	
		} else {
			//alert(xmlHttp.readyState);
		}
	};
	
	xmlRatingHttp.send(null);	
};

imageRating.prototype.submitImageRating = function(image, rank) {
	var t = image;
	requestImageRatingURL = location + "&newrankid=" + t.current + "&rank=" + rank;	
	xmlSaveRatingHttp = GetXmlHttpObject();
					
	if (xmlSaveRatingHttp.readyState != 0) {
		xmlSaveRatingHttp.abort();
	}
	
	xmlSaveRatingHttp.open('GET', requestImageRatingURL, true);
	
	xmlSaveRatingHttp.onreadystatechange = function() {//alert(xmlSaveRatingHttp.readyState);
		if (xmlSaveRatingHttp.readyState == 4 || xmlSaveRatingHttp.readyState == "complete")
		{
			var str = xmlSaveRatingHttp.responseText;
			//alert(str);
			t.createImageRating(t, str);
		} else {
			//alert(xmlHttp.readyState);
		}
	};
	xmlSaveRatingHttp.send(null);

};


imageRating.prototype.init = function () {
	var t = this;	
	
	t.requestImageRating(t);	
};
imageRating.prototype.createImageRating = function(image, rank) {
	var t = image;
	var img = document.getElementById('rating');
	
	var r = rank.split("|");
	//Vl: we comented this line bcz of testing team want to rank the user more times
	//     it is working like, it takes only one rank ata time 
	//img.className = r[0];
	
	var ratingValue = img.className;
	
	//alert(ratingValue);
	if (ratingValue == "notRanked") {
		t.star1.onclick = function () {
			t.submitImageRating(t, t.star1.title); 
			
			return false;
		};
		
		t.star2.onclick = function () {
			t.submitImageRating(t, t.star2.title); 
			return false;
		};
		
		t.star3.onclick = function () {
			t.submitImageRating(t, t.star3.title); 
			return false;
		};
		
		t.star4.onclick = function () {
			t.submitImageRating(t, t.star4.title); 
			return false;
		};
		
		t.star5.onclick = function () {
			t.submitImageRating(t, t.star5.title); 
			return false;
		};
	} else {
		t.star1.onclick = function () {
			t.requestImageRating(t, t.star1.title); 
			return false;
		};
		
		t.star2.onclick = function () {
			t.requestImageRating(t, t.star2.title); 
			return false;
		};
		
		t.star3.onclick = function () {
			t.requestImageRating(t, t.star3.title); 
			return false;
		};
		
		t.star4.onclick = function () {
			t.requestImageRating(t, t.star4.title); 
			return false;
		};
		
		t.star5.onclick = function () {
			t.requestImageRating(t, t.star5.title); 
			return false;
		};
	}
	rating(r[0], r[1]);
};


function trail(){
	var trail = document.getElementsByTagName("img");
	for(var i=0; i<trail.length; i++){
		if(trail[i].className == "trail"){
			trail[i].onmouseover = function(){
				var caption = this.alt;
				var title = this.parentNode.title;
				var imgsrc = this.src;
				showtrail(imgsrc,title,caption,"1",270);
			}
			trail[i].onmouseout = function(){
				hidetrail();
			}
			trail[i].onclick = function(){
				hidetrail();
			}
		}
	}
}
