var http = createRequestObject();
var sendReq = createRequestObject();
var getReq = createRequestObject();
var sendReq2 = createRequestObject();
var getReq2 = createRequestObject();

function createRequestObject() {
	var ro;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer"){
		ro = new ActiveXObject("Microsoft.XMLHTTP");
	} else{
		ro = new XMLHttpRequest();
	}
	return ro;    
}

function showStars(number){
	for (i=number;i>=0;i--){
		document.getElementById("star"+i).src = 'images/2.png';
	}
	for (i=(number+1);i<=4;i++){
		document.getElementById("star"+i).src = 'images/1.png';
	}
}

function showStar(rate){
	number = 0;
	itext = '';
	for(i=0;i<rate;i++){
		itext += '<img src="images/2.png" id="star'+ number + '" onmouseover="showStars(' + number + ')" onmouseout="showStar(' + rate + ')" onclick="updateRank(' + number + ')" alt="'+ (number+1) + '" />';
		number++;
	}
	for(j=0;j<(5-rate);j++){
		itext += '<img src="images/1.png" id="star'+ number + '" onmouseover="showStars(' + number + ')" onmouseout="showStar(' + rate + ')" onclick="updateRank(' + number + ')" alt="'+ (number+1) + '" />';
		number++;
	}
	document.getElementById("rankStars").innerHTML = itext;	
}

function updateRank(number){
	filename = document.getElementById("fileName").innerHTML;
	http.open('get', 'js/updateRank.php?file='+filename+'&num='+number);
	http.onreadystatechange = handleResponse;
	http.send(null);
}

function handleResponse() {
	if(http.readyState == 2){
		document.getElementById("statusMsg").innerHTML = 'ההצבעה מתעדכן כעת';
	}
	if(http.readyState == 4){
		var response = http.responseText;
		if (response == 'ERROR'){
			document.getElementById("statusMsg").innerHTML = 'הייתה בעיה והדירוג לא עודכן';
		} else if (response == 'ERROR3') {
			document.getElementById("statusMsg").innerHTML = 'ניתן להצביע רק פעם אחת ביום';
		} else {
			showStar(response);
			document.getElementById("statusMsg").innerHTML = 'הצבעתך התקבלה למערכת, תודה.';
			document.getElementById("rankDiv").innerHTML = response;
		}
	}
}

function toggle(id){
	var obj = "";
	if(document.getElementById)
		obj = document.getElementById(id);
	else if(document.all)
		obj = document.all[id];
	else if(document.layers)
		obj = document.layers[id];
	else
		return 1;
	if (!obj){
		return 1;
	} else if (obj.style) {
		obj.style.display = ( obj.style.display != "none" ) ? "none" : "";
	} else { 
		obj.visibility = "show"; 
	}
}

function emailcheck(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
		return false
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false
	}
	if (str.indexOf(at,(lat+1))!=-1){
		return false
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false
	}
	if (str.indexOf(dot,(lat+2))==-1){
		return false
	}	
	if (str.indexOf(" ")!=-1){
		return false
	}
	return true					
}

function sendForm(){
	userName = document.getElementById("name").value;
	userEmail = 'a';
	userTitle = document.getElementById("title").value;
	userText = document.getElementById("text").value;
	filename = document.getElementById("fileName").innerHTML;
	errorText = '';
	if(userName == ''){
		errorText += 'השם הוא חובה<br />';
	}
	if(userTitle == ''){
		errorText += 'הכותרת היא חובה<br />';
	}
	if(errorText != ''){
		document.getElementById("errorDiv").innerHTML = errorText;
	} else {
		sendReq.open("POST", 'js/sendCom.php', true);
		sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		sendReq.onreadystatechange = sendHandleResponse; 
		var param = 'file='+filename;
		param += '&user='+ userName;
		param += '&email='+ userEmail;
		param += '&title='+ userTitle;
		param += '&text='+ userText;
		sendReq.send(param);
	}
}

function sendHandleResponse() {
	if(sendReq.readyState == 2){
		document.getElementById("sendCom").innerHTML = 'התגובה נשלחת כעת...';
	}
	if(sendReq.readyState == 4){
		var response = sendReq.responseText;
		if (response == 'ERROR'){
			document.getElementById("sendCom").innerHTML = '<br /><span style="color: #d91f1f;">הייתה בעיה והתגובה לא נשלחה</span>';
		} else if (response == 'ERROR2') {
			document.getElementById("sendCom").innerHTML = '<br /><span style="color: #d91f1f;">ניתן לשלוח תגובה רק פעם בעשר דקות</span>';
		} else {
			document.getElementById("sendCom").innerHTML = '<br /><span style="color: #d91f1f;">התגובה נוספה בהצלחה, תודה.</span>';
			getComText();
		}
	}
}

function getComText() {
	filename = document.getElementById("fileName").innerHTML;
	getReq.open("GET", 'js/getCom.php?file=' + filename, true);
	getReq.onreadystatechange = handleReceiveCom;
	getReq.send(null);
}

function handleReceiveCom() {
	var com_div = document.getElementById('comDiv');
	com_div.innerHTML = '';
	if(sendReq.readyState == 2){
		com_div.innerHTML = 'התגובות נטענות עכשיו';
	}
	if (getReq.readyState == 4) {
		var xmldoc = getReq.responseXML;
		var message_nodes = xmldoc.getElementsByTagName("comment"); 
		var n_messages = message_nodes.length;
		for (i = 0; i < n_messages; i++) {
			var user_node = message_nodes[i].getElementsByTagName("user");
			var title_node = message_nodes[i].getElementsByTagName("title");
			var text_node = message_nodes[i].getElementsByTagName("text");
			var time_node = message_nodes[i].getElementsByTagName("time");
			com_div.innerHTML += '<a href="#" onclick="toggle(\'comment' + i + '\'); return false;">' + title_node[0].firstChild.nodeValue + '</a><br />';
			com_div.innerHTML += '<font class="smallText">' + user_node[0].firstChild.nodeValue + ' ' + time_node[0].firstChild.nodeValue + '</font><br />';
			com_div.innerHTML += '<div class="commText" id="comment' + i + '" style="display: none;">' + nl2br(text_node[0].firstChild.nodeValue) + '</div>';
			if(i != (n_messages-1)){
				com_div.innerHTML += '<br /><div class="line"></div><br />';
			}
			com_div.scrollTop = com_div.scrollHeight;
		}
		if (n_messages == 0){
			com_div.innerHTML += 'אין תגובות, הפוך לראשון שיגיב';
		}
	}
}

function sendForm2(){
	userName = document.getElementById("name").value;
	userEmail = 'a';
	userTitle = document.getElementById("title").value;
	userText = document.getElementById("text").value;
	gal = document.getElementById("galId").innerHTML;
	errorText = '';
	if(userName == ''){
		errorText += 'השם הוא חובה<br />';
	}
	if(userTitle == ''){
		errorText += 'הכותרת היא חובה<br />';
	}
	if(errorText != ''){
		document.getElementById("errorDiv").innerHTML = errorText;
	} else {
		sendReq2.open("POST", 'js/sendComGal.php', true);
		sendReq2.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		sendReq2.onreadystatechange = sendHandleResponse2; 
		var param = 'gal='+gal;
		param += '&user='+ userName;
		param += '&email='+ userEmail;
		param += '&title='+ userTitle;
		param += '&text='+ userText;
		sendReq2.send(param);
	}
}

function sendHandleResponse2() {
	if(sendReq2.readyState == 2){
		document.getElementById("sendCom").innerHTML = 'התגובה נשלחת כעת...';
	}
	if(sendReq2.readyState == 4){
		var response = sendReq2.responseText;
		if (response == 'ERROR'){
			document.getElementById("sendCom").innerHTML = '<br /><span style="color: #d91f1f;">הייתה בעיה והתגובה לא נשלחה</span>';
		} else if (response == 'ERROR2') {
			document.getElementById("sendCom").innerHTML = '<br /><span style="color: #d91f1f;">ניתן לשלוח תגובה רק פעם בעשר דקות</span>';
		} else {
			document.getElementById("sendCom").innerHTML = '<br /><span style="color: #d91f1f;">התגובה נוספה בהצלחה, תודה.</span>';
			getComText2();
		}
	}
}

function getComText2() {
	var galId = document.getElementById("galId").innerHTML;
	getReq2.open("GET", 'js/getComGal.php?gal=' + galId, true);
	getReq2.onreadystatechange = handleReceiveCom2;
	getReq2.send(null);
}

function handleReceiveCom2() {
	var com_div = document.getElementById('comDiv');
	com_div.innerHTML = '';
	if(sendReq2.readyState == 2){
		com_div.innerHTML = 'התגובות נטענות עכשיו';
	}
	if (getReq2.readyState == 4) {
		var xmldoc = getReq2.responseXML;
		var message_nodes = xmldoc.getElementsByTagName("comment"); 
		var n_messages = message_nodes.length;
		for (i = 0; i < n_messages; i++) {
			var user_node = message_nodes[i].getElementsByTagName("user");
			var title_node = message_nodes[i].getElementsByTagName("title");
			var text_node = message_nodes[i].getElementsByTagName("text");
			var time_node = message_nodes[i].getElementsByTagName("time");
			com_div.innerHTML += '<a href="#" onclick="toggle(\'comment' + i + '\'); return false;">' + title_node[0].firstChild.nodeValue + '</a><br />';
			com_div.innerHTML += '<font class="smallText">' + user_node[0].firstChild.nodeValue + ' ' + time_node[0].firstChild.nodeValue + '</font><br />';
			com_div.innerHTML += '<div class="commText" id="comment' + i + '" style="display: none;">' + nl2br(text_node[0].firstChild.nodeValue) + '</div>';
			if(i != (n_messages-1)){
				com_div.innerHTML += '<br /><div class="line"></div><br />';
			}
			com_div.scrollTop = com_div.scrollHeight;
		}
		if (n_messages == 0){
			com_div.innerHTML += 'אין תגובות, הפוך לראשון שיגיב';
		}
	}
}


function nl2br(str){
	return str.replace(/([^>])\n/g, '$1<br />\n');

}