$(function() {
	if (!$user.connect) return ;
	
	$user.set({defaultBubbleText : $("#userBubble").html()});
	$user.setDefaultBubbleText = function() {
		$("#userBubble").html($user.get("defaultBubbleText"));
	};
	
	$("#barPart .rightInfo a").each(function() {
		switch(this.id) {
			case 'gameStatusLink':
			$(this).hover(function() {
				$("#userBubble").html("שנה מצב משחק");
			},$user.setDefaultBubbleText);
			break;
			case 'pmsLink':
			$(this).hover(function() {
				$("#userBubble").html("הודעות פרטיות <span>("+$user.get('unreadPMs')+" חדשות)</span>");
			},$user.setDefaultBubbleText);
			break;
			case 'cpLink':
			$(this).hover(function() {
				$("#userBubble").html("לוח הבקרה");
			},$user.setDefaultBubbleText);
			break;
			case 'gamesLink':
			$(this).hover(function() {
				$("#userBubble").html("המשחקים האחרונים שלי");
			},$user.setDefaultBubbleText);
			break;
			case 'friendsLink':
			$(this).hover(function() {
				$("#userBubble").html("החברים שלי בפיפאקלאב");
			},$user.setDefaultBubbleText);
			break;
		}
	});
});



function secure_text(str,minimal) {
str=str.replace(/\'/g,'&#039;');
if (minimal) return str;
str=str.replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;');
return str;
}

$.ajaxSetup(
 {contentType : "application/x-www-form-urlencoded; charset=utf-8"}
 );

var $page = {
	setBG : function(URL) {
		$("#content").css({"background" : "url(images/backgrounds/"+URL+")", "background-position" : "bottom left", "background-repeat" : "no-repeat","min-height" : "470px"});
		
		return this;
	},
	
	messageOpen : false,
	
	popMessage : function(content) {
		if ($page.messageOpen) return false;
		$page.messageOpen = true;
		var elm = $(document.createElement('div')).addClass('floatscreen darkscreen');
		$('body').append(elm);
		
		elm = $(document.createElement('div')).addClass('floatscreen').click($page.__closePopped);
		$('body').append(elm);
		
		var app = '<table style="width:100%;height:100%;"><tr><td style="vertical-align:middle;text-align:center;"><center><table id="fMsg"><tr><td>';
		
		app += content;
		
		app += '</td></tr></table></center></td></tr></table>';
		elm.append(app);
	},
	__closePopped : function(e) {
		if (!$(e.target).closest('#fMsg').length)
		$page.closeMessage();
	},
	closeMessage : function() {
		$('.floatscreen').remove();
		$page.messageOpen = false;
		return false;
	}
};


var $forms = {
	forceChar : function(e,element,type) {
		var valids,to_cap;
		switch (type.toLowerCase()) {
			case 'numbers':
				valids = "";
				to_cap = "";
			break;
			case 'code':
				valids = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
				to_cap = "abcdefghijklmnopqrstuvwxyz";
			break;
			
			default: return true;
		}
		var heToEn = {
			'/' : 'q',
			"'" : 'w',
			'ק' : 'e',
			'ר' : 'r',
			'א' : 't',
			'ט' : 'y',
			'ו' : 'u',
			'ן' : 'i',
			'ם' : 'o',
			'פ' : 'p',
			'ש' : 'a',
			'ד' : 's',
			'ג' : 'd',
			'כ' : 'f',
			'ע' : 'g',
			'י' : 'h',
			'ח' : 'j',
			'ל' : 'k',
			'ך' : 'l',
			'ז' : 'z',
			'ס' : 'x',
			'ב' : 'c',
			'ה' : 'v',
			'נ' : 'b',
			'מ' : 'n',
			'צ' : 'm'
		};
		
		var c_code,char;
		if (e.charCode) c_code = e.charCode;
		else c_code = e.keyCode;
		
		if (!c_code) return ;
		
		char = String.fromCharCode(c_code);
		
		if (valids.indexOf(char) == -1) {
//			if (c_code >= 1488 && c_code <= 1514) {
				if (heToEn[char] && (!element.getAttribute('maxlength') || element.getAttribute('maxlength') > $(element).val().length))
				$(element).val($(element).val() + heToEn[char].toUpperCase());
//			}
			else if (to_cap.indexOf(char) != -1) {
				if (!element.getAttribute('maxlength') || element.getAttribute('maxlength') > $(element).val().length)
				$(element).val($(element).val() + char.toUpperCase());
			}
			else return true;
			return false;
		}
		
		return (!element.getAttribute('maxlength') || element.getAttribute('maxlength') > $(element).val().length);
	}
};


var $user = {
	'connect' : false,
	'allowed' : false,
	'points' : 0,
	'username' : "",
	'user_profile' : "",
	'defaultBubbleText' : "",
	'unreadPMs' : 0,
	set : function(data) {
		for (idx in data) {
//			if ($user[idx] != null)
			$user[idx] = data[idx];
		}
	},
	get : function(d) {
		if ($user[d] !== null) return $user[d];
		return null;
	},
	
	
	friends : {
		
		approve : function(ID) {
			return $user.friends.changeStatus(ID,true);
		},
		decline : function(ID) {
			return confirm("האם אתה בטוח?") ? $user.friends.changeStatus(ID,false) : false;
		},
		changeStatus : function(ID,isApprove) {
			var currentAction = isApprove ? "approveRequest" : "declineRequest";
			$.post('index.php',{ajax : true, action : currentAction, id : ID}, function(data) {
				if (data == "DONE") {
					$("#requestRow"+ID).remove();
					if ($('.requestRow').size() == 0) {
						$page.closeMessage();
						window.location.href = window.location.href;
					}
				}
			});
		},
		
		add : {
			open : function() {
			$page.popMessage($("#addFriendForm").html());
			},
			
			send : function() {
				$.post('index.php',{ajax : true, action : 'validateUser_Friends', username : $('#newFriendName').val()}, function(data) {
					if (data == "SENT") {
						alert('נשלחה בקשה לחברות בהצלחה');
						$page.closeMessage();
					}
					else if (data == "APPROVE") {
						alert('נשלחה בקשת חברות ממשתמש זה.\n אשר בקשה זו על מנת להוסיף לחברים');
						window.location = window.location;
					}
					else if (data == "ALREADY_SENT") {
						alert('נשלחה כבר בקשת חברות לחבר זה');
					}
					else if (data == "INVALID") {
						alert('הוספת החבר נכשלה. אנא נסה שנית');
					}
				});
			},
			
			
			searching : false,
			searchUser : function(elm) {
				if ($user.friends.add.searching) return false;
				if ($(elm).val().length == 0) {
					$('.dynamicListContainer_Friends').hide();
					return false;
				}
				
				$user.friends.add.searching = true;
					$.post('index.php',{ajax : true, action : 'findUser_Friends', query : $(elm).val()}, function(data) {
						$user.friends.add.searching = false;
						if ($.trim(data) == "") $('.dynamicListContainer_Friends').hide();
						else
						$('.dynamicListContainer_Friends').show().html(data);
					});
			},
			setUser : function(user) {
				$(".dynamicListText_Friends").val(user);
				$('.dynamicListContainer_Friends').hide();
			}
		}
	},
	
	
	scrollToTable : function() {
		var elm = $("tr[name=userRow_"+$user.get('username')+"]");
		if(elm.position() && paneAPI)
		paneAPI.scrollToY(elm.position().top);
		
		elm.fadeTo(0,0.3).css('background','#2e3334').fadeTo(800,1);
	},
	
	
	
	
	chat : {
		partner : 0,
		defaultValue : '',
		
		allowSending : true,
		timer : function(interval) {
			$user.chat.allowSending = false;
			setTimeout(function() {
				$user.chat.allowSending = true;
			},interval * 1000);
		},
		
		
		changePartner : function(partner) {
			if (!$user.allowed) {
				$('#friendsChat .chat .container').html("<i>לא תוכל להשתמש בצ'אט עד שתחדש חשבונך באתר</i>");
				return ;
			}
			
			if ($user.chat.partner != 0)
			$('#friendLink'+$user.chat.partner).removeClass('active');
			
			if ($user.chat.partner != partner) {
			$('#friendLink'+partner).addClass('active').removeClass('pending').css('color','white');
			clearTimeout($user.chat.animations[partner]);
			if ($user.chat.saveTitle != "") document.title = $user.chat.saveTitle;
			}
			else 
			partner = 0;
			
			$user.chat.partner = partner;
			
			$('#friendsChat .chat .container').html("אנא המתן...");
			$.post('index.php',{privateChatHistory : partner}, function(data) {
				if (!data) return ;
				data = $.parseJSON(data);
				if (!data) return ;
				
				$user.chat.time = data.time;
				delete data.time;
				
				$user.chat.markPending(data.pending);
				delete data.pending;
				
				if (data[0] == "NO_SELECTION") {
					$('#friendsChat .chat .container').html("<i>בחר חבר מהרשימה והתחל לשוחח איתו</i>");
					var pane = $('.privateChat_scroll');
					if (pane) {
						pane.jScrollPane({
							showArrows: true,
							animateScroll: true
						});
					}
					return ;
				}
				
				
				var i = 0;
				for (n in data) {
					i++;
				}
				
				if (i > 0)
				$user.chat.addRows(data);
				else {
					$('#friendsChat .chat .container').html("<i><b>אין הודעות בצ'אט</i></b>");
					var pane = $('.privateChat_scroll');
					if (pane) {
						pane.jScrollPane({
							showArrows: true,
							animateScroll: true
						});
					}
				}
			});
		},
				
		time : 0,
		timeout : "",
		
		updateEvery : function(secs,time) {
			$user.chat.time = time;
			if (secs <= 0) return false;
			$user.chat.timeout = setTimeout(function() { $user.chat.__cronUpdate(secs) }, secs * 1000);
		},
		__cronUpdate : function(secs) {
			$user.chat.update(true);
			if (secs <= 0) return false;
			$user.chat.timeout = setTimeout(function() { $user.chat.__cronUpdate(secs) }, secs * 1000);
		},
		update : function(beep) {
			$.post('index.php',{privateLastUpdate : $user.chat.time, chatPartner : $user.chat.partner}, function(data) {
				if (!data) return ;
				data = $.parseJSON(data);
				if (!data) return ;
				
				$user.chat.time = data.time;
				delete data.time;
				$user.chat.markPending(data.pending);
				delete data.pending;
				
				if ($user.chat.partner == 0) return ;
				
				var i = 0;
				for (n in data) {
					i++;
				}
				if (i > 0)
				$user.chat.addRows(data,beep);
			});
			
			return false;
		},
		
		send : function() {
			if ($user.chat.partner == 0) {
				alert('בחר חבר על מנת לשלוח הודעה');
				return false;
			}
			if (!$user.chat.allowSending) {
				alert('המתן שניה בין הודעה להודעה');
				return false;
			}
			var msg = $('#privateChatMsg').val();
			msg = msg.replace(/^\s*(.*?)\s*$/,"$1");
			
			if (msg.length == 0 || msg == $user.chat.defaultValue) {
				alert('אנא כתוב הודעה');
				return false;
			}
			
			if (msg.length < 3) {
				alert('הודעה קצרה מדי, מלא לפחות 3 אותיות');
				return false;
			}
			
			$('#privateChatMsg').val("");
			$user.chat.allowSending = false;
			setTimeout(function() {
				$user.chat.allowSending = true;
			},1000);
			
			$.post('index.php',{privateChatMessage : msg, chatPartner : $user.chat.partner}, function(data) {
				data = $.parseJSON(data);
				$user.chat.addRows([data]);
			});
			
			return false;
		},
		
		
		addRows : function(rows,beep) {
			var i = 0;
			for (data in rows) {
				data = rows[data];
				if (data == null) continue;
				if (data.username != $user.username && beep) i++;
				var row = "<div class='row'>"+
						"<b><a href='profiles/"+data.url+"'"+($user.get('username') == data.username ? " style='color:#d76000;'" : " style='color:#85cfee'")+">"+data.username+":</a></b> "+
						"	<span class='text'>"+data.message+"</span> "+
						"</div>";
					
				if ($('#friendsChat .chat .row').length == 0) {
					$('#friendsChat .chat .container').html(row);
				}
				else {
					$('#friendsChat .chat .container').prepend(row);
				}
			}
			
			if (i > 0) {
				$user.chat.beep();
			}
			
			var pane = $('.privateChat_scroll');
			if (pane) {
				pane.jScrollPane({
					showArrows: true,
					animateScroll: true
				});
			}
	
		},
		
		saveEmbed : "",
		beep : function() {
			if ($user.chat.saveEmbed != "") {
				$("#playsound").detach();
				$user.chat.saveEmbed.appendTo('body');
			}
			else {
				$('body').append("<embed id=\"playsound\" src=\"uploads/chatSound.wav\" hidden=\"true\" autostart=\"true\" loop=\"false\" />");
				$user.chat.saveEmbed = $('#playsound');
			}
		},
		
		animations : [],
		markPending : function(pending) {
			var i = 0;
			for (p in pending) {
				var elm = $('#friendLink'+p);
				if (elm.hasClass('pending')) continue;
				i++;
				elm.addClass('pending');
				$user.chat.saveTitle = document.title;
				$user.chat.keepAnimating(p);
			}
			if (i > 0) {
				$user.chat.beep();
			}
		},
		saveTitle : "",
		counter : 0,
		keepAnimating : function(p) {
			if ($user.chat.counter++ % 2 == 1) {
				$user.chat.counter = 0;
				document.title = document.title == $user.chat.saveTitle ? "הודעות חדשות!" : $user.chat.saveTitle;
			}
			var elm = $('#friendLink'+p);
			elm.css('color',$user.chat.counter % 2 == 1 ? 'white' : 'rgb(255, 231, 25)')
			$user.chat.animations[p] = setTimeout("$user.chat.keepAnimating("+p+");",800);
		}
	}
};


var exts = {
	images: ["gif","jpg","jpeg","png"],
	check: function(fileName,list) {
		var fileParts = fileName.split(".");
		var fileExtension = fileParts[fileParts.length-1];
		var correct = false;
		$.each(list,function(i,ext) {
			if (fileExtension.toLowerCase() == ext.toLowerCase())
			correct = true;
		});

		return correct;
	},
	checkImage: function(img) {
		if (!img.complete) return false;
		if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) return false;

		return true;
	},
	loadImage: function(fileName,container,maxWidth,maxHeight,pretext) {
		if (!this.check(fileName,this.images))
		{
			$(container).html("<i>אין תצוגה מקדימה זמינה</i>");
			return false;
		}
		
		if (pretext == null)
		pretext = "תצוגה מקדימה:<br />";
		

		var tmpImage = new Image();
		tmpImage.src = fileName;

		if (!this.checkImage(tmpImage))
		{
			$(container).html("<i>אין תצוגה מקדימה זמינה</i>");
			return false;
		}


		var width,height;
		if (tmpImage.width > maxWidth)
		{
			width = maxWidth;
			var tmpHeight = tmpImage.height * (maxWidth / tmpImage.width);
			height = tmpHeight > maxHeight ? maxHeight : tmpHeight;
		}
		else if (tmpImage.height > maxHeight)
		{
			height = maxHeight;
			var tmpWidth = tmpImage.width * (maxHeight / tmpImage.height);
			width = tmpWidth > maxWidth ? maxWidth : tmpWidth;
		}
		else
		{
			width = tmpImage.width;
			height = tmpImage.height;
		}
		

		$(container).html(pretext + "<img src='"+fileName+"' alt='' style='width:"+width+"px;height:"+height+"px;' />");
	}
};


var index = {
	chat : {
		defaultValue : 'כתוב כאן את תגובתך, ולחץ "הגב" מצד שמאל ע"מ לשלוח את התגובה',
		
		focusBox : function(elm) {
			if ($(elm).val() == index.chat.defaultValue) {
				$(elm).css('color','white').val("");
			}
		},
		blurBox : function(elm) {
			if ($(elm).val() == '') {
				$(elm).css('color','#787878').val(index.chat.defaultValue);
			}
		},
		
		allowSending : true,
		timer : function(interval) {
			index.chat.allowSending = false;
			setTimeout(function() {
				index.chat.allowSending = true;
			},interval * 1000);
		},
		
		changeLines : function(lines) {
			if (lines > 5 || lines < 1) return false;
			$('.chat_scroll').height(Math.round(lines * 25.6)).jScrollPane({
				showArrows: true,
				animateScroll: true
			});
		},
		toggleHours : function(show) {
			if (show == 0) {
				$('.chat_scroll .time').hide().siblings('.s.t').hide();
				index.chat.showHour = false;
			}
			else {
				$('.chat_scroll .time').show().siblings('.s.t').show();
				index.chat.showHour = true;
			}
		},
		
		time : 0,
		timeout : "",
		
		updateEvery : function(secs,time) {
			index.chat.time = time;
			if (secs <= 0) return false;
			index.chat.timeout = setTimeout(function() { index.chat.__cronUpdate(secs) }, secs * 1000);
		},
		__cronUpdate : function(secs) {
			index.chat.update();
			if (secs <= 0) return false;
			index.chat.timeout = setTimeout(function() { index.chat.__cronUpdate(secs) }, secs * 1000);
		},
		update : function() {
			$.post('index.php',{lastUpdate : index.chat.time}, function(data) {
				if (!data) return ;
				data = $.parseJSON(data);
				if (!data) return ;
				
				index.chat.time = data.time;
				delete data.time;
				
				if ($(data).size() > 0)
				index.chat.addRows(data);
			});
			
			return false;
		},
		clean : function() {
			$('.chat_scroll .container').html("");
			$('.chat_scroll').jScrollPane({
				showArrows: true,
				animateScroll: true
			});
		},
		
		openSettings : function() {
			if (!$user.get('connect')) {
				alert('התחבר על מנת לבחור העדפות');
				return false;
			}
			$.post('index.php',{changeSettings : true}, function(data) {
				$page.popMessage(data);
			});
			
			return false;
		},
		openSmiles : function() {
			if (!$user.get('connect')) {
				alert('התחבר על מנת לשלוח הודעה');
				return false;
			}
			$.post('index.php',{insertSmiles : true}, function(data) {
				$page.popMessage(data);
			});
			
			return false;
		},
		
		showHour : true,
		
		settings : {
			refreshTime : function(elm) {
				if (!(/^(10|20|30|60|120|300)$/).test($(elm).val()))
				return false;
				
				$.post('index.php',{settings: true, refreshTime : $(elm).val()}, function(data) {
					clearTimeout(index.chat.timeout);
					index.chat.updateEvery($(elm).val());
				});
			},
			lines : function(elm) {
				if (!(/^(1|2|3|4|5)$/).test($(elm).val()))
				return false;
				
				$.post('index.php',{settings: true, lines : $(elm).val()}, function(data) {
					$('.chat_scroll').height(Math.round($(elm).val() * 25.6)).jScrollPane({
						showArrows: true,
						animateScroll: true
					});
				});
			},
			showHour : function(elm) {
				if (!(/^(1|0)$/).test($(elm).val()))
				return false;
				
				$.post('index.php',{settings: true, showHour : $(elm).val()}, function(data) {
					if ($(elm).val() == 0) {
						$('.chat_scroll .time').hide().siblings('.s.t').hide();
						index.chat.showHour = false;
					}
					else {
						$('.chat_scroll .time').show().siblings('.s.t').show();
						index.chat.showHour = true;
					}
				});
			},
			showSmiles : function(elm) {
				if (!(/^(1|0)$/).test($(elm).val()))
				return false;
				
				$.post('index.php',{settings: true, showSmiles : $(elm).val()}, function(data) {
					if ($(elm).val() == 0) {
						$('.chat_scroll img.smile').replaceWith(function() {
							return " <span class='smile' title='"+$(this).attr('src')+"'>"+$(this).attr('alt')+"</span> ";
						});
					}
					else {
						$('.chat_scroll span.smile').replaceWith(function() {
							return " <img src='"+$(this).attr('title')+"' alt='"+$(this).html()+"' class='smile' /> ";
						});
					}
				});
			}
		},
		
		insertContent : function(content) {
			content = " "+content+" ";
			if ($("#chat_msg").val() == index.chat.defaultValue) {
				index.chat.focusBox($("#chat_msg"));
			}
			$page.closeMessage();

		   var txtarea = document.getElementById("chat_msg");
			var strPos = 0;
			var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ? 
				"ff" : (document.selection ? "ie" : false ) );
			if (br == "ie") { 
				txtarea.focus();
				var range = document.selection.createRange();
				range.moveStart ('character', -txtarea.value.length);
				strPos = range.text.length;
			}
			else if (br == "ff") strPos = txtarea.selectionStart;
		
			var front = (txtarea.value).substring(0,strPos);  
			var back = (txtarea.value).substring(strPos,txtarea.value.length); 
			txtarea.value=front+content+back;
			strPos = strPos + content.length;
			if (br == "ie") { 
				txtarea.focus();
				var range = document.selection.createRange();
				range.moveStart ('character', -txtarea.value.length);
				range.moveStart ('character', strPos);
				range.moveEnd ('character', 0);
				range.select();
			}
			else if (br == "ff") {
				txtarea.selectionStart = strPos;
				txtarea.selectionEnd = strPos;
				txtarea.focus();
			}
//			$('#chat_msg').val($('#chat_msg').val() + " " + content);
			
			return false;
		},
		
		send : function() {
			if (!$user.get('connect')) {
				alert('אנא התחבר');
				return false;
			}
			if (!index.chat.allowSending) {
				alert('המתן 5 שניות בין הודעה להודעה');
				return false;
			}
			var msg = $('#chat_msg').val();
			msg = msg.replace(/^\s*(.*?)\s*$/,"$1");
			
			if (msg.length == 0 || msg == index.chat.defaultValue) {
				alert('אנא כתוב הודעה');
				return false;
			}
			
			if (msg.length < 3) {
				alert('הודעה קצרה מדי, מלא לפחות 3 אותיות');
				return false;
			}
			
			$('#chat_msg').val("");
			index.chat.allowSending = false;
			setTimeout(function() {
				index.chat.allowSending = true;
			},5000);
			
			$.post('index.php',{message : msg}, function(data) {
				data = $.parseJSON(data);
				
				index.chat.addRows([data]);
			});
			
			return false;
		},
		
		
		addRows : function(rows) {
			for (data in rows) {
				data = rows[data];
				if (data == null) continue;
				var row = "<div class='row'>"+
						"	<a href='profiles/"+data.url+"'"+(data.isAdmin == 1 ? " style='color:#FC0;'" : "")+">"+data.username+"</a> <span class='s t'"+(index.chat.showHour ? "" : " style='display:none;'")+">|</span> "+
						"	<span class='time'"+(index.chat.showHour ? "" : " style='display:none;'")+">"+data.date+"</span> <span class='s'>|</span> "+
						"	<span class='text'>"+data.message+"</span> "+
						"</div>";
					
				if ($('.chat_scroll .row').length == 0) {
					$('.chat_scroll .container').html(row);
				}
				else {
					$('.chat_scroll .container').prepend(row);
				}
			}
			
			/*
			var pane = $('.chat_scroll');
			if (pane) {
				pane.jScrollPane({
					mouseWheelSpeed : 1,
					arrowButtonSpeed : 1,
					showArrows: true,
					animateScroll: true
				});
			}
			*/
			
		}
	},
	changeGameStatus : function() { 
		if (!$user.connect) return ;
		if (!$user.allowed) {
			alert('אנא חדש חשבונך באתר');
			return ;
		}
		$.post('index.php',{changeGameStatus : true}, function(data) {
			$page.popMessage(data);
		});
	},
	changeStatusTo : function(status) {
		if (!(/^(0|1|2)$/).test(status))
		return false;
		
		$.post('index.php',{game_status : status}, function(data) {
			$('.gameStatus').html(data);
			$page.closeMessage();
		});
	}
};


var register = {
	changePayment : function(elm) {
		elm = $(elm).find('option:selected');
		$('#SMS_Code').html(elm.attr('code'));
		$('#SMS_Price').html(elm.attr('price') + " ₪");
	},
	disablePayment : function() {
		$('#paymentForm').find('input,textarea,select').attr('disabled',true);
	},
	disableRegistration : function() {
		$('#regForm').find('input,textarea,select').attr('disabled',true);
	},
	
	
	realSubmit : false,
	validateForm : function() {
		if (register.realSubmit) return true;

		if ($('#regName').val().length == 0) {
			alert('אנא מלא שם');
			return false;
		}/*
		if ($('#regLocation').val().length == 0) {
			alert('אנא מלא מקום מגורים');
			return false;
		}*/
		if ($('#regUsername').val().length == 0) {
			alert('אנא מלא שם משתמש');
			return false;
		}
		if ($('#regPassword').val().length == 0) {
			alert('אנא מלא סיסמא');
			return false;
		}
		if ($('#regEmail').val().length == 0) {
			alert('אנא מלא כתובת דוא"ל');
			return false;
		}
		if ($('#regPasswordConfirm').val() != $('#regPassword').val()) {
			alert('הסיסמא לא תואמת לאימות');
			return false;
		}
		if ($('#regSec').val().length == 0) {
			alert('אנא מלא קוד אימות');
			return false;
		}
		if (!$('#regConfirm').attr('checked')) {
			alert('אנא אשר הסכמתך לתקנון לפני שתמשיך');
			return false;
		}
		
		register.realSubmit = false;
		var arrivalInfo = $('#arrival_input').val();
		
		if (arrivalInfo == "") {
			register.realSubmit = true;
			$('#regForm').submit();
		}
		
		$.post('users/register.php',{arrivalINF : arrivalInfo}, function(data) {
			if (data == 'VALID') {
				register.realSubmit = true;
				$('#regForm').submit();
			}
			else {
				alert('שם משתמש מפנה לא נמצא. בדוק שכתבת אותו נכון');
			}
		});
		
		return false;
	},
	ajaxRequest : function(data) {
		alert(data);
	},
	referrer : {
		open : function() {
			$("#arrival_txt").html("הפניה: <a href='javascript:;' onclick='register.referrer.close();'>(X)</a>");
			$("#arrival_radio").hide();
			$("#arrival_un").show();
			$('#ulist').hide();
		},
		close : function() {
			$("#arrival_txt").html("הפנו אותך?");
			$("#arrival_radio").show();
			$("#arrival_un").hide();
			$("#arrival_input").val("");
			$("#arrival_cancel").attr('checked',true);
		},
		
		searching : false,
		searchUser : function(elm) {
			if (register.referrer.searching) return false;
			
			register.referrer.searching = true;
				$.post('users/register.php',{getUser : true, query : $(elm).val()}, function(data) {
					register.referrer.searching = false;
					if (data == "") $('#ulist').hide();
					else
					$('#ulist').show().html(data);
				});
		},
		setUser : function(user) {
			$("#arrival_input").val(user);
			$("#ulist").hide();
		}
	}
};

var games = {
	approve : function(ID) {
		return games.changeStatus(ID,true);
	},
	decline : function(ID) {
		return confirm("האם אתה בטוח שהתוצאה אינה נכונה?") ? games.changeStatus(ID,false) : false;
	},
	changeStatus : function(ID,isApprove) {
		var currentAction = isApprove ? "approveGame" : "declineGame";
		$.post('index.php',{ajax : true, action : currentAction, id : ID}, function(data) {
			if (data == "DONE") {
				$(".gameRow"+ID).remove();
				if ($('.gameRow').size() == 0) $page.closeMessage();
			}
		});
	},
	send : {
		searching : false,
		searchUser : function(elm,listID) {
			if (games.send.searching) return false;
			if ($(elm).val().length == 0) {
				$('.dynamicListContainer'+listID).hide();
				return false;
			}
			
			games.send.searching = true;
				$.post('result.php',{getUser : true, query : $(elm).val(),listNum : listID}, function(data) {
					games.send.searching = false;
					if ($.trim(data) == "") $('.dynamicListContainer'+listID).hide();
					else
					$('.dynamicListContainer'+listID).show().html(data);
				});
		},
		setUser : function(user,listID) {
			$(".dynamicListText"+listID).val(user);
			$('.dynamicListContainer'+listID).hide();
		},
		
		realSubmit : false,
		validateForm : function(form) {
			if (!$user.get('connect')) {
				alert('אנא התחבר');
				return false;
			}
			
			if ($('#playerHome').val().length == 0) {
				alert('מלא שחקן בית');
				return false;
			}
			if ($('#playerGuest').val().length == 0) {
				alert('מלא שחקן חוץ');
				return false;
			}
			if ($('#playerHome').val().toLowerCase() != $user.get('username').toLowerCase() && $('#playerGuest').val().toLowerCase() != $user.get('username').toLowerCase()) {
				alert('מלא את עצמך בתור אחד השחקנים');
				return false;
			}
			if ($('#playerHome').val() == $('#playerGuest').val()) {
				alert('אנא בחר שני שחקנים');
				return false;
			}
			if ($('#scoreHome').val().length == 0 || $('#scoreHome').val() != parseInt($('#scoreHome').val()) || $('#scoreHome').val() < 0 || $('#scoreGuest').val().length == 0 || $('#scoreGuest').val() != parseInt($('#scoreGuest').val()) || $('#scoreGuest').val() < 0) {
				alert('מלא תוצאות במספרים');
				return false;
			}
			if ($('#finalScore').val().length == 0) {
				alert('בחר תמונת סיום');
				return false;
			}
			
			if ($('#isPlayoff').attr('checked') == true && $('#scoreHome').val() == $('#scoreGuest').val()) {
				alert('משחק פלייאוף לא יכול להיגמר בתיקו, אנא שחקו משחק גומלין');
				return false;
			}
			
				
			if (games.send.realSubmit) {
				$('#sendForm').attr('disabled',true);
				return true;
			}
			games.send.realSubmit = false;
			
			$.post('result.php',{user1 : $('#playerHome').val(), user2 : $('#playerGuest').val(), isPlayoff : $('#isPlayoff').attr('checked')}, function(data) {
				if (data == 'VALID') {
					games.send.realSubmit = true;
					$(form).submit();
				}
				else {
					if (data == 'WRONG_USERNAME')
					alert('שם משתמש לא נמצא. בדוק שכתבת אותו נכון');
					else if (data == 'NO_SUCH_GAME')
					alert('אין משחק כזה בפלייאוף הנוכחי.\nבדוק שמיקמת את השחקנים באופן הנכון \n\n(שים לב: השחקן העליון בעמוד הפלייאוף הוא בקבוצת הבית והתחתון בקבוצת החוץ)');
					else if (data == 'ALREADY_SENT')
					alert('המשחק המדובר כבר נשלח. אם עוד לא אישרת אותו, אנא רענן את העמוד');
				}
			});
			
			return false;
		}
	}
};

var posts = {
	replies : {
		validateForm : function() {
			if (!$user.get('connect')) {
				alert ("אנא התחבר בשביל לשלוח תגובה");
				return false;
			}
			var val = $('#reply_content').val().replace(/^\s*(.*?)\s*$/,"$1");
			if (val.length < 5) {
				alert('מלא לפחות 5 אותיות');
				return false;
			}
			return true;
		},
		readMore : function(elm,ID) {
			if ($(elm).html() == 'קרא פחות')
				$(elm).html('המשך קריאה');
			else
				$(elm).html('קרא פחות');
			var saved = $(elm).siblings('.text').html();
			var replacement = $(elm).siblings('.hiddenText').html();
			$(elm).siblings('.text').html(replacement);
			$(elm).siblings('.hiddenText').html(saved);
			
			var pane = $('.replies_scroll');
			if (pane) {
				pane.jScrollPane({
					showArrows: true,
					animateScroll: false
				});
			}
		}
	},
	favorites : {
		toggle : function(elm,ID) {
			if (!$user.connect) {
				alert('אנא התחבר');
				return false;
			}
			
			$.post('index.php',{ajax : true, action : "togglePostFavorite", id : ID}, function(data) {
				if (data == 'on') {
					$(elm).children('img').attr('src',$(elm).children('img').attr('src').replace(/plus/,"minus")).attr('alt','-');
					alert('נוסף לקישורים המהירים שלי');
				}
				else if (data == 'off') {
					$(elm).children('img').attr('src',$(elm).children('img').attr('src').replace(/minus/,"plus")).attr('alt','+');
				}
			});
		}
	}
};


var profile = {
	replies : {
		validateForm : function() {
			if (!$user.get('connect')) {
				alert ("אנא התחבר בשביל לשלוח תגובה");
				return false;
			}
			var val = $('#reply_content').val().replace(/^\s*(.*?)\s*$/,"$1");
			if (val.length < 5) {
				alert('מלא לפחות 5 אותיות');
				return false;
			}
			return true;
		},
		readMore : function(elm,ID) {
			if ($(elm).html() == 'קרא פחות')
				$(elm).html('המשך קריאה');
			else
				$(elm).html('קרא פחות');
			var saved = $(elm).siblings('.text').html();
			var replacement = $(elm).siblings('.hiddenText').html();
			$(elm).siblings('.text').html(replacement);
			$(elm).siblings('.hiddenText').html(saved);
			
			var pane = $('.replies_scroll');
			if (pane) {
				pane.jScrollPane({
					showArrows: true,
					animateScroll: false
				});
			}
		}
	}
};


var cp = {
	hideSelected : function() {
		if ($('.cb_delete input:checked').length == 0) {
			alert ('בחר מה ברצונך למחוק');
			return false;
		}
		$('#hide_form').submit();
	},
	checkAll : function() {
		var checkAll = !($('.cb_delete input[type="checkbox"]').length == $('.cb_delete input:checked').length);
		$('.cb_delete input[type="checkbox"]').each(function() {
			$(this).attr('checked',checkAll);
		});
	},
	
	makeFormsClickable : function() { 
		$('.forms_scroll .form').click(function(e) { 
			if (e.target != $(this).find('input[type=checkbox]').get(0))
			programs.popForm($(this).children('.form_id').html(),true);
		}).hover(function() {
			$(this).css('cursor','pointer');
		},function() {
			$(this).css('cursor','auto');
		});
	},
	
	pms : {
		realSubmit : false,
		validateForm : function(form) {
			if (!$user.get('connect')) {
				alert('אנא התחבר בשביל לשלוח הודעה');
				return false;
			}
			
			if ($('#receiverName').val().length == 0) {
				alert('מלא שם משתמש של הנמען');
				return false;
			}
			if ($('#msgContent').val().length < 5) {
				alert('מלא לפחות 5 אותיות בתוכן');
				return false;
			}
			if (!cp.pms.realSubmit && $('#titleContent').val().length == 0 && !confirm('לשלוח הודעה זו ללא נושא?')) {
				return false;
			}
				
			if (cp.pms.realSubmit) return true;
			cp.pms.realSubmit = false;
			
			$.post('cp/compose.php',{to : $('#receiverName').val()}, function(data) {
				if (data == 'VALID') {
					cp.pms.realSubmit = true;
					$('#compose_form').submit();
				}
				else {
					alert('שם משתמש לא נמצא. בדוק שכתבת אותו נכון');
				}
			});
			
			return false;
		},
		insertContent : function(content) {
			content = " "+content+" ";
			if ($("#msgContent").val() == index.chat.defaultValue) {
				index.chat.focusBox($("#msgContent"));
			}
			$page.closeMessage();

		   var txtarea = document.getElementById("msgContent");
			var strPos = 0;
			var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ? 
				"ff" : (document.selection ? "ie" : false ) );
			if (br == "ie") { 
				txtarea.focus();
				var range = document.selection.createRange();
				range.moveStart ('character', -txtarea.value.length);
				strPos = range.text.length;
			}
			else if (br == "ff") strPos = txtarea.selectionStart;
		
			var front = (txtarea.value).substring(0,strPos);  
			var back = (txtarea.value).substring(strPos,txtarea.value.length); 
			txtarea.value=front+content+back;
			strPos = strPos + content.length;
			if (br == "ie") { 
				txtarea.focus();
				var range = document.selection.createRange();
				range.moveStart ('character', -txtarea.value.length);
				range.moveStart ('character', strPos);
				range.moveEnd ('character', 0);
				range.select();
			}
			else if (br == "ff") {
				txtarea.selectionStart = strPos;
				txtarea.selectionEnd = strPos;
				txtarea.focus();
			}
//			$('#chat_msg').val($('#chat_msg').val() + " " + content);
			
			return false;
		},
		
		openUsersList : function() {
			$page.popMessage('<div class="wrap_float">שם משתמש: &nbsp;&nbsp;<input type="text" class="text" onkeyup="cp.pms.searchUser(this);" /><div id="ulist"></div>');
		},
		
		searching : false,
		searchUser : function(elm) {
			if (cp.pms.searching) return false;
			
			cp.pms.searching = true;
				$.post('cp/compose.php',{getUser : true, query : $(elm).val()}, function(data) {
					cp.pms.searching = false;
					$('#ulist').html(data);
				});
		},
		setUser : function(user) {
			$page.closeMessage();
			$("#receiverName_div").html(user + "<input type='hidden' id='receiverName' name='receiver' value='"+user+"' />");
		}
	}
};
