﻿//	Written By the great Simon B.Stirling 10/10/2006

var StarOnImg = new Image(16, 16);
var StarOffImg = new Image(16, 16);
var WaitingImg = new Image(16, 16);

var level1 = " לא טוב";
var level2 = " חלש";
var level3 = " ממוצע";
var level4 = " טוב מאוד";
var level5 = " מדהים!";


StarOnImg.src = "images/StarOn.gif";
StarOffImg.src = "images/StarOff.gif";
WaitingImg.src = "images/loading.gif";

function OpenWindow(page, name, width, height){
	window.open(page, name, "width=" + width + ",height=" + height);
}

function GetObj(obj){
	return document.getElementById(obj);
}

function ShowHide(obj){
	GetObj(obj).style.display = GetObj(obj).style.display == "inline" ? "none" : "inline";
}

function EventBase(){
	
}

function CreateRequest(){
	var xmlhttp = null;
	if (window.XMLHttpRequest){
		xmlhttp = new XMLHttpRequest();
	}else if (window.ActiveXObject){
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return xmlhttp;
}

function VoteObj(id){
	var _id = id;
	
	var xmlhttp = CreateRequest();
		
	var panel1 = document.createElement("div"); // stars
	var panel2 = document.createElement("div"); // waiting
	var panel3 = document.createElement("div"); // results
	
	var star1 = new Image(16, 16);
	var star2 = new Image(16, 16);
	var star3 = new Image(16, 16);
	var star4 = new Image(16, 16);
	var star5 = new Image(16, 16);
	var waitImg = new Image(16, 16);
	var starTitle = document.createElement("span");
	var levelTitle = document.createElement("span");
	
	starTitle.innerHTML = "דרגו כרטיס זה:<br>";
	waitImg.src = WaitingImg.src;
	
	xmlhttp.open("GET", "canvote.php?id=" + _id, false);
	xmlhttp.send(null);
	ret = xmlhttp.responseText.split(":");
	panel2.style.display = "none";
	if(ret[0] == "No"){
		SetScore(ret[2], ret[1]);
		panel1.style.display = "none";
		panel3.style.display = "inline";
	}else{
		panel1.style.display = "inline";
		panel3.style.display = "none";
	}
	
	xmlhttp = CreateRequest();
	
	panel1.appendChild(starTitle)
	panel1.appendChild(star5);
	panel1.appendChild(star4);
	panel1.appendChild(star3);
	panel1.appendChild(star2);
	panel1.appendChild(star1);
	panel1.appendChild(levelTitle);	
	
	panel2.appendChild(waitImg);
	
	star1.value = 1;
	star2.value = 2;
	star3.value = 3;
	star4.value = 4;
	star5.value = 5;	
	
	star1.style.cursor = "pointer";
	star2.style.cursor = "pointer";
	star3.style.cursor = "pointer";
	star4.style.cursor = "pointer";
	star5.style.cursor = "pointer";
	
	star1.src = StarOffImg.src;
	star2.src = StarOffImg.src;
	star3.src = StarOffImg.src;
	star4.src = StarOffImg.src;
	star5.src = StarOffImg.src;
	
	star1.onmouseover = StarsOn;
	star2.onmouseover = StarsOn;
	star3.onmouseover = StarsOn;
	star4.onmouseover = StarsOn;
	star5.onmouseover = StarsOn;
	
	star1.onmouseout = StarsOff;
	star2.onmouseout = StarsOff;
	star3.onmouseout = StarsOff;
	star4.onmouseout = StarsOff;
	star5.onmouseout = StarsOff;
	
	star1.onclick = SubmitVote;
	star2.onclick = SubmitVote;
	star3.onclick = SubmitVote;
	star4.onclick = SubmitVote;
	star5.onclick = SubmitVote;
	
	function SetScore(count, score){
		panel3.innerHTML = "תודה שהצבעתם!<br> ציון כולל: " + score.substr(0,3) + " (" + count + " דירוגים)"
	}
	
	function SubmitVote(e){
		if(!e){
			value = event.srcElement.value;
		}else{
			value = e.currentTarget.value;
		}
		
		url = "vote.php?id=" + _id + "&rating=" + value;
		panel1.style.display = "none";
		panel2.style.display = "inline";
		xmlhttp.onreadystatechange = VoteComplete;
		xmlhttp.open("GET", url, true);
		xmlhttp.send(null);
	}
	
	function VoteComplete(){
		if (xmlhttp.readyState == 4){
			if (xmlhttp.status == 200){
				if(xmlhttp.responseText.split(":")[0] == "OK"){
					panel3.style.display = "inline";
					panel2.style.display = "none";
					SetScore(xmlhttp.responseText.split(":")[2], xmlhttp.responseText.split(":")[1]);
				}else{
					panel3.style.display = "inline";
					panel2.style.display = "none";
					panel3.innerHTML = "שגיאה";
				}
			}
		}
	}
	
	function StarsOff(){
		star1.src = StarOffImg.src;
		star2.src = StarOffImg.src;
		star3.src = StarOffImg.src;
		star4.src = StarOffImg.src;
		star5.src = StarOffImg.src;
		levelTitle.innerHTML = "";
	}
	
	function StarsOn(e){
		if(!e){
			value = event.srcElement.value;
		}else{
			value = e.currentTarget.value;
		}
		
		switch(value){
			case 1:
				star1.src = StarOnImg.src;
				star2.src = StarOffImg.src;
				star3.src = StarOffImg.src;
				star4.src = StarOffImg.src;
				star5.src = StarOffImg.src;
				levelTitle.innerHTML = level1;
				break;
			case 2:
				star1.src = StarOnImg.src;
				star2.src = StarOnImg.src;
				star3.src = StarOffImg.src;
				star4.src = StarOffImg.src;
				star5.src = StarOffImg.src;
				levelTitle.innerHTML = level2;
				break;
			case 3:
				star1.src = StarOnImg.src;
				star2.src = StarOnImg.src;
				star3.src = StarOnImg.src;
				star4.src = StarOffImg.src;
				star5.src = StarOffImg.src;
				levelTitle.innerHTML = level3;
				break;
			case 4:
				star1.src = StarOnImg.src;
				star2.src = StarOnImg.src;
				star3.src = StarOnImg.src;
				star4.src = StarOnImg.src;
				star5.src = StarOffImg.src;
				levelTitle.innerHTML = level4;
				break;
			case 5:
				star1.src = StarOnImg.src;
				star2.src = StarOnImg.src;
				star3.src = StarOnImg.src;
				star4.src = StarOnImg.src;
				star5.src = StarOnImg.src;
				levelTitle.innerHTML = level5;
				break;
		}
	}

	this.DrawMe = function(val){
		GetObj(val).appendChild(panel1);
		GetObj(val).appendChild(panel2);
		GetObj(val).appendChild(panel3);
		
		return this;
	};
}

function FlipObj(p_side1, p_side2, p_width, p_height){
	var _width = p_width;
	var _height = p_height;
	
	var _side1Img = new Image(_width, _height);
	var _side2Img = new Image(_width, _height);
	var _displayedImg = new Image(_width, _height);
	_side1Img.src = p_side1;
	_side2Img.src = p_side2;
	_displayedImg.src = _side1Img.src;
	_displayedImg.style.position = "relative";
	if(p_side1 != "" && p_side2 != ""){
		_displayedImg.style.cursor = "pointer";
		_displayedImg.alt = "לחצו כדי לראות את הצד השני של הכרטיס";
	}
	
	var _shrinking = true;
	var _inMotion = false;
	
	_displayedImg.onclick = function(){
		if(!_inMotion){
			_inMotion = true;
			FlipOver();
		}
	}
	
	this.FlipOver = FlipOver;
	
	function FlipOver(){
		if(p_side1 != "" && p_side2 != ""){
			if(_displayedImg.width > 0 && _shrinking){
				_displayedImg.width -= 10;
				_displayedImg.style.left = -1 * ((_width - _displayedImg.width) / 2);
			}
			if(_displayedImg.width == 0){
				_displayedImg.src = _displayedImg.src == _side1Img.src ? _side2Img.src : _side1Img.src;
				_shrinking = false;
			}
			if(_displayedImg.width <= _width && !_shrinking){
				_displayedImg.width += 10;
				_displayedImg.style.left = -1 * ((_width - _displayedImg.width) / 2);
			}
			if(_displayedImg.width >= _width && !_shrinking){
				_displayedImg.width = _width;
				_shrinking = true;
			}else{
				window.setTimeout(FlipOver, 12);
				_inMotion = false;
			}
		}else{
			_inMotion = false;
		}
	}
	
	this.DrawMe = function(val){
		GetObj(val).style.width = _width;
		GetObj(val).style.height = _height;
		GetObj(val).appendChild(_displayedImg);
		
		return this;
	};	
}