/* Image Preload code start*/
var loginCallbackObj;
if ('undefined' != typeof jQuery)
{
	(function($){

		// extend jquery (because i love jQuery)
		$.imgpreload = function (imgs,settings)
		{
			settings = $.extend({},$.fn.imgpreload.defaults,(settings instanceof Function)?{all:settings}:settings);

			// use of typeof required
			// https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Operators/Special_Operators/Instanceof_Operator#Description
			if ('string' == typeof imgs) { imgs = [imgs]; }

			var loaded = [];

			var t = imgs.length;

			for (var i=0; i<t; i++)
			{
				var img = new Image();

				$(img).bind('load error', function(e)
				{
					loaded.push(this);

					$.data(this, 'loaded', ('error'==e.type)?false:true);
					
					if (settings.each instanceof Function) { settings.each.call(this); }

					if (loaded.length>=t && settings.all instanceof Function) { settings.all.call(loaded); }
				});

				img.src = imgs[i];
			}
		};

		$.fn.imgpreload = function(settings)
		{
			var urls = [];

			this.each(function()
			{
				urls.push($(this).attr('src'));
			});

			$.imgpreload(urls,settings);

			return this;
		};

		$.fn.imgpreload.defaults =
		{
			each: null // callback invoked when each image in a group loads
			, all: null // callback invoked when when the entire group of images has loaded
		};

	})(jQuery);
}
$.imgpreload([game_img_url+'star.png',
              game_img_url+'star_active.png',
              game_img_url+'nimg/new_game.png',
              game_img_url+'nimg/log-in-grey.png',
              game_img_url+'nimg/log-out-blue.png',
              game_img_url+'nimg/sign-up128.png',
              game_img_url+'ajax-loader-bert-transparent.gif',
              game_img_url+'nimg/email_add_32.png',
              game_img_url+'email.png',
              game_img_url+'fb.png',
              game_img_url+'pic1.jpg',
              game_img_url+'pic2.jpg',
              game_img_url+'nimg/save_32.png',
              game_img_url+'share_this_icon.png',
              game_img_url+'share_this_icon_active.png',
              game_img_url+'star_off.png',
              game_img_url+'star_off_active.png',
              game_img_url+'twitter.png',
              game_img_url+'nimg/settings.png',
              game_img_url+'nimg/profile.png',
              ]);
/*Image preload end*/
var emailShare = new Object();

function ui_alert(msg,callback)
{
	$("#ui_alert_dialog").dialog("destroy");
	$("#ui_alert_dialog").html(msg);
	$("#ui_alert_dialog").dialog({
	    resizable : false,
	    modal : true,
	    height : "auto",
	    width : "auto",
	    maxWidth:"300",
	    maxHeight:"500",
	    title:'Notification',
	    buttons : {
	        "Ok" : function() {$(this).dialog("destroy");
	        eval(callback);
	        }
		},
		close:function(){
			eval(callback);
		}
	    
	});
}
function ui_confirm(msg,callback)
{
	$("#ui_alert_dialog").dialog("destroy");
	$("#ui_alert_dialog").html(msg);
	$("#ui_alert_dialog").dialog({
	    resizable : false,
	    modal : true,
	    height : "auto",
	    width : "auto",
	    maxWidth:"500",
	    maxHeight:"500",
	    title:'Confirm',
	    buttons : {
	        "Ok" : function() {eval(callback)},
			"Cancel" : function() {$(this).dialog("destroy");}
		}
	    
	});	
}
	
function preLoadGame(){
	// Load game session
	var params = new Object();
	params.action="loadGameSession";
	
	$.ajax({
		      data:params,
		      success: function (data) {
				for(key in data.game){
					if($("#"+key).size()>0){
						$("#"+key).html(data.game[key]);
					}
				}
				if(data.game[key]=="0"){
					$("#radio1").attr("checked","checked");
				}else{
					$("#radio2").attr("checked","checked");
				}
				if(data.game.welcomeName!="" && data.game.welcomeName!=undefined){
					$("#btnLogin").hide();
					$("#btnSignup").hide();
					$("#profile").show();
					$("#btnLogout").show();
				}else{
					$("#profile").hide();
					$("#btnLogout").hide();
				}
		        if(data.success=="1"){
					if(data.next=="yes"){
						$("#btnNext").click();
					}else{
						$("#btnNext").hide();
					}
		        }
		        if(data.success=="0"){
		        	$("#btnNext").hide();
		    		$("#btnBible").hide();
		    		$("#btnNot").hide();
		        }
		        jQuery('.wrapper').ajaxLoaderRemove();
		}
	});
}
	$(document).ready(function(){
		$("#btnLogin").click(function(){
			$("#login_dialog").dialog('open');
		});
		$("#btnSignup").click(function(){
			$("#signup_dialog").dialog('open');
		});
		$(".forgetpass_link").click(function(e){
			e.preventDefault();
			$("#login_dialog").dialog('close');
			$("#forgetpass_dialog").dialog('open');
		});
		/*$("#bversionGroup").buttonset();*/
		$('input[name="bversion"]').change(function(){
			
			var params=new Object();
			params.action="changeBVersion";
			params.bversion=$('input[name="bversion"]:checked').val();
			$.ajax({
				data:params,
				success:function(data){
					if(data==null){
						/*ui_alert('Session Expired.','window.location.reload();');*/
						jQuery('.wrapper').ajaxLoaderRemove();
						return false;
					}
					jQuery('.wrapper').ajaxLoaderRemove();
				}
			});
		});
		jQuery('.wrapper').ajaxLoaderRemove();
		$(".source").hide();
		$("#btnNewGame").live('click',function(){
//			alert("a");
			
			var params = new Object();
			params.action="newGame";
			if($(this).attr("force")=="true"){
				params.forceNew="true";
			}
			
			$.ajax({
			      data:params,
			      success: function (data) {
					if(data==null){
						/*ui_alert('Session Expired.','window.location.reload();');*/
						jQuery('.wrapper').ajaxLoaderRemove();
						return false;
					}
			        if(data.success=="1"){
						for(key in data.game){
							if($("#"+key).size()>0){
								$("#"+key).html(data.game[key]);
							}
						}
						nextQue();
						/*$("#btnNext").hide();
			    		$("#btnBible").show();
			    		$("#btnNot").show();*/
			        }
			        if(data.success=="2"){
						ui_confirm(data.warning,'newGame()');
			        }
			        jQuery('.wrapper').ajaxLoaderRemove();
			      }
			    });
		});

		$("#btnNext").click(function(){
			var params = new Object();
			params.action="nextQue";
			$("#btnNext").attr('disabled',true);
			var ajxObj={
				      data:params,
				      async:true,
				      timeout:10000,
				      success: function (data) {
						if(data==null){
							/*ui_alert('Session Expired.','window.location.reload();');*/
							jQuery('.wrapper').ajaxLoaderRemove();
							$("#btnNext").attr('disabled',false);
							return false;
						}
				        if(data.success=="1"){
							for(key in data.game){
								if($("#"+key).size()>0){
									$("#"+key).html(data.game[key]);
								}
							}
							$("#btnBible").show();
							$("#btnNot").show();
							$(".source").hide();
							$("#wrongAns").hide();
							$("#correctAns").hide();
							$("#points").hide();
							$("#btnNext").hide();
							/*$("#btnNext").css("position","");
							$("#btnNext").css("left","");*/
							$("#btnNewGame").attr("force","");
				        }else{
				        	for(key in data.game){
								if($("#"+key).size()>0){
									$("#"+key).html(data.game[key]);
								}
							}
				        	$("#btnBible").hide();
							$("#btnNot").hide();
							$(".source").hide();
							$("#wrongAns").hide();
							$("#correctAns").hide();
							$("#points").hide();
							$("#btnNext").hide();
							$("#btnNewGame").attr("force","true");
				        }
				        $("#btnNext").attr('disabled',false);
				        jQuery('.wrapper').ajaxLoaderRemove();
				      },
				      error: function(request,error) {
				    	  jQuery('.wrapper').ajaxLoaderRemove();
				    	  $("#btnNext").attr('disabled',false);
				    	  $.ajax(ajxObj);
						} 
				
				    };
			$.ajax(ajxObj);
			});
		$("#btnBible, #btnNot").click(function(){
			var params = new Object();
			params.action="bibleOrNot";
			var thisBtn=$(this);
			thisBtn.attr('disabled',true);
			params.isBible=$(this).attr("bon");
			var ajxObj={
				      data:params,
				      timeout:10000,
				      async:true,
				      success: function (data) {
						if(data==null){
							/*ui_alert('Session Expired.','window.location.reload();');*/
							jQuery('.wrapper').ajaxLoaderRemove();
							thisBtn.attr('disabled',false);
							return false;
						}
				        if(data.success=="1"){
							for(key in data.game){
								if($("#"+key).size()>0){
									$("#"+key).html(data.game[key]);
								}
							}
							if(data.game['points']>0){
								$("#points").css("color","#000");
							}else{
								$("#points").css("color","red");
							}
							$("#points").append(" Points");
							$("#points").show();
							$("#wrongAns").show();
							$("#correctAns").show();
							$(".source").show();
							$("#btnBible").hide();
							$("#btnNot").hide();
							
							$("#btnNext").css("position","absolute");
							$("#btnNext").css("left","295px");
							$("#btnNext").show();
				        }
				        thisBtn.attr('disabled',false);
						jQuery('.wrapper').ajaxLoaderRemove();
				      }
				,
			      error: function(request,error) {
					  thisBtn.attr('disabled',false); 
					  jQuery('.wrapper').ajaxLoaderRemove();
					  $.ajax(ajxObj);
					} 
				    };
			$.ajax(ajxObj);
			});

		$(".save_score").click(function(){
			if(isLoggedIn()){
				ui_confirm('Saving your score will save your Current Score to your High Score, and then reset your Current Score back to zero after it is saved. Are you sure you want to save your score now?','saveScore()');
			}else{
				$("#login_dialog").dialog('open');
			}
		});
		
		$(".send_feedback").click(function(){
			/*if(isLoggedIn()){*/
				$("#feedback_dialog").dialog('open');
				emptyFields('feedback_dialog');
			/*}else{
				$("#login_dialog").dialog('open');
			}*/
				
			});
		 $( "#tabs" ).tabs({select:function(event,ui){
	     		if(ui.index=="1"){
	     			getFavQuotes(1);
	     		}
	     		if(ui.index=="2"){
	     			getHighScore();
	     		}
	     	}
	     });
		$('#tabs .ui-tabs-nav').append('<li style="background:none;"><div class="fright" id="welcomeName"></div></li>');
		preLoadGame();
		$("#login_dialog").dialog(
		{
			autoOpen:false,
			height:"auto",
			width:"auto",
			modal:true,
			title:'Login',
			buttons : {
		        "Login" : function() {loginPost();},
		        "Login with Facebook" : function() {FBLogin('setFBUser()');},
				"Sign up" : function() {signup();}
			},
			open:function(){
				emptyFields('login_dialog');
			},
		});
		
		$("#signup_dialog").dialog(
		{
			autoOpen:false,
			height:"auto",
			width:"auto",
			modal:true,
			title:'Sign up',
			buttons : {
		        "Sign up" : function() {signupPost();},
				"Login" : function() {login();}
			},
			open:function(){
				emptyFields('signup_dialog');
			},
		});
		$("#forgetpass_dialog").dialog(
		{
			autoOpen:false,
			height:"auto",
			width:"auto",
			modal:true,
			title:'Forget Password',
			buttons : {
		        "Submit" : function() {forgetPass();},
			},
			open:function(){
				emptyFields('forgetpass_dialog');
			},
		});
		$("#share_dialog").dialog({
				autoOpen:false,
				height:"auto",
				width:"auto",
				modal:true,
				title:"Share"	
			});
		$("#feedback_dialog").dialog(
			{
				autoOpen:false,
				height:"auto",
				width:"auto",
				modal:true,
				title:"Feedback",
				buttons : {
			        "Send" : function() {
		        var params = new Object();
		        params.action="sendFeedback";
		        var error="";
		        if($("#feedback_dialog input[name='email']").val()==""){
					error+="! Enter email address<br/>";
				}
				else if(!isValidEmailAddress($("#feedback_dialog input[name='email']").val())){
					error+="! Email address not valid<br/>";
				}
		        if($("#feedback_dialog input[name='subject']").val()==""){
			    	error+="! Enter subject<br/>";
		        }
				if($("#feedback_dialog textarea[name='message']").val()==""){
					error+="! Enter message<br/>";
		        }
		        
				if(error!=""){
					$("#feedback_dialog .error").html(error);
				}else{
					$("#feedback_dialog .error").html("");
					params.email=$("#feedback_dialog input[name='email']").val();
					params.subject=$("#feedback_dialog input[name='subject']").val();
					params.message=$("#feedback_dialog textarea[name='message']").val();
					
						$.ajax({
							data:params,
							success:function(data){
								if(data==null){
									/*ui_alert('Session Expired.','window.location.reload();');*/
									jQuery('.wrapper').ajaxLoaderRemove();
									return false;
								}
									if(data.success=="1"){
										ui_alert("Thank you for your feedback.");
										emptyFields('feedback_dialog');
										$("#feedback_dialog").dialog('close');
									}
									jQuery('.wrapper').ajaxLoaderRemove();
								}
							});
						}
						
		        	},
				},
				open:function(){
					emptyFields('feedback_dialog');
				},
			});
		
		$(".share_this").live('click',function(e){
				e.preventDefault();
				$("#share_dialog").dialog('open');
				$("#tbox").hide();
				$("#email_share").hide();
				$("#email_share_content").hide();
				$("#share_dialog .error").html("");
				emailShare.action = "shareQuote";
				emailShare.content = $("#share_content #s_msg").html()
				emailShare.quid = $(".share_this").attr("qid");
			});
		$(".star-off,.star").live('click',function(e){
			loginCallbackObj=$(this);
			if(isLoggedIn()){
				e.preventDefault();
				var params = new Object();
				var str=$(this);
				params.action="starUnstar";
				params.qid=$(this).attr("qid");
				params.q_version=$(this).attr("q_version");
				
				$.ajax({
					data:params,
					async:true,
					success:function(data){
					if(data==null){
						/*ui_alert('Session Expired.','window.location.reload();');*/
						jQuery('.wrapper').ajaxLoaderRemove();
						return false;
					}
						if(data.success=="1"){
							str.removeClass('star');
							str.removeClass('star-off');
							str.addClass(data.star_unstar);
							if(data.star_unstar=="star"){
								str.attr("title","Remove from Favorites");
							}else{
								str.attr("title","Add to Favorites");
							}
						}
						jQuery('.wrapper').ajaxLoaderRemove();
					}
				});
			}else{
				$("#login_dialog").dialog('open');
			}
			
		});
		 twttr.anywhere(function (T) {
		      T.hovercards();
		    });
		$(".mail_share").click(function(e){
				e.preventDefault();
				$("#email_share").show();
				$("#fbook_share").hide();
				$("#tbox").hide();
				$("#share_dialog .error").html("");
				$("#email_content").val($("#share_content #s_msg").html());
			});
		$("#email_share #send_email").click(function(){
			var error="";
			if($("#share_dialog input[name='femail']").val()==""){
				error+="! Enter from email address<br/>";
			}
			else if(!isValidEmailAddress($("#share_dialog input[name='femail']").val())){
				error+="! From Email address not valid<br/>";
			}
			if($("#share_dialog input[name='email']").val()==""){
				error+="! Enter to email address<br/>";
			}
			else if(!isValidEmailAddress($("#share_dialog input[name='email']").val())){
				error+="! To Email address not valid<br/>";
			}
			if(error!=""){
				$("#share_dialog .error").html(error);
			}else{
				$("#share_dialog .error").html("");
				emailShare.email=$("#share_dialog input[name='email']").val();
				emailShare.femail=$("#share_dialog input[name='femail']").val();
				emailShare.content=$("#email_content").val();
				
				$.ajax({
						data:emailShare,
						success:function(data){
					if(data==null){
						/*ui_alert('Session Expired.','window.location.reload();');*/
						jQuery('.wrapper').ajaxLoaderRemove();
						return false;
					}
							if(data.success=="1"){
								ui_alert("Email sent successfully, Thank you!");
								$("#share_dialog").dialog('close');
							}
							jQuery('.wrapper').ajaxLoaderRemove();
						}
					});
			}
			});
		$(".twitter_share").click(function(e){
				e.preventDefault();
				
				if($(".twitter-anywhere-tweet-box").size()<=0){
					twttr.anywhere(function (T) {
					    T("#tbox").tweetBox({
					      height: 100,
					      width: 400,
					      defaultContent:$("#share_content #s_msg").html()+" #bibleornot",
					      onTweet:function(arg1,arg2){ui_alert("Tweet Successfully");$('#share_dialog').dialog('close');}
					    });
					  });
				}
				jQuery('.wrapper').ajaxLoaderRemove();
				$(".twitter-anywhere-tweet-box").contents().find("#tweet-box").val($("#share_content #s_msg").html()+" #bibleornot");
				$(".twitter-anywhere-tweet-box").contents().find("#tweet-box").focus();
				$("#email_share").hide();
				$("#fbook_share").hide();
				$("#email_share_content").hide();
				$("#tbox").show();
			});
		$(".fb_share").click(function(e){
			e.preventDefault();
			$("#email_share").hide();
			$("#fbook_share").show();
			$("#tbox").hide();
			$("#share_dialog .error").html("");
			$("#fb_content").val($("#share_content #s_msg_fb").html());
			
		});
		$("#send_fb").click(function(){
			
		    FB.getLoginStatus(function(response) {
		    	  if (response.authResponse) {
		    	    // logged in and connected user, someone you know
		    	    FB.api({ method: 'fql.query', query: 'SELECT publish_stream FROM permissions WHERE uid=me()' }, function(resp) {
//		    	    	alert(resp[0]['publish_stream']);
				    	if(resp[0]['publish_stream'] === "1"){
/*						    	var publish = {
						    		     method: 'stream.publish',
						    		     message: $("#share_content #s_msg").html(),
						    		     actions : { name : 'Play Bible Or Not', link : GAME_LINK}
				    		     };
						    	FB.api('/me/feed', 'POST', publish, function(response) {  
						    		if (!response || response.error) {
						    			jQuery(".wrapper").ajaxLoaderRemove();
						    		    ui_alert('Error occured');
						    		  } else {
						    			  jQuery(".wrapper").ajaxLoaderRemove();
							    		  ui_alert('Thank you for sharing with Facebook !');
							    		  $("#share_dialog").dialog('close');
						    		  }
						    	});*/
				    		FBShare();
						    	
				    	}else{
				    		jQuery(".wrapper").ajaxLoaderRemove();
					    	FBLogin('FBShare()');
				    	}
				    });
		    	  } else {
		    	    // no user session available, someone you dont know
		    		  jQuery(".wrapper").ajaxLoaderRemove();
		    		  FBLogin('FBShare()');
		    	  }
		    	});
		});
		$(".no-display").each(function(){
				$(this).hide();
			});
		refreshButtons();
		
		var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol +
          '//connect.facebook.net/en_US/all.js';
        document.getElementById('fb-root').appendChild(e);

       
        
        $(".share_this").live('click',function(){
        	var params = new Object();
        	params.action="changeShareQuote";
        	params.quid=$(this).attr("qid");
        	params.q_version=$(this).attr("q_version");
        	
        	$.ajax({
        		data:params,
        		success:function(data){
        		if(data==null){
					/*ui_alert('Session Expired.','window.location.reload();');*/
        			jQuery('.wrapper').ajaxLoaderRemove();
					return false;
				}
        			if(data.success=="1"){
        				$("#s_msg").html(data.quote);	
        				$("#s_msg_fb").html(data.quote_fb);
        			}
        			jQuery('.wrapper').ajaxLoaderRemove();
        		}
        	})
        });
        $("#high_score .share_score").live('click',function(){
        	var params = new Object();
        	params.action="changeShareScore";
        	params.quid=$(this).attr("qid");
        	
        	$.ajax({
        		data:params,
        		success:function(data){
        		if(data==null){
					/*ui_alert('Session Expired.','window.location.reload();');*/
        			jQuery('.wrapper').ajaxLoaderRemove();
					return false;
				}
        			if(data.success=="1"){
        				$("#s_msg").html(data.score);
        				$("#s_msg_fb").html(data.score);
        				$(".twitter_icon").click();
        			}
        			jQuery('.wrapper').ajaxLoaderRemove();
        		}
        	});
        	
        	$("#share_dialog").dialog('open');
        	emailShare.action = "shareScore";
        	
        	
        });
        getFavQuotes(1);
        getHighScore();
        $(".save_score_button").live("click",function(){
        	$(".save_score").click();
        });
        $(".back_to_game").live("click",function(){
        	$("#tabs").tabs('select',0);
        });
        
        
        $(".pager").live('click',function(e){
        	e.preventDefault();
        	getFavQuotes($(this).attr('page'));
        });
        
        $("#btnLogout").click(function(){
        	$("#ui_alert_dialog").dialog("destroy");
        	$("#ui_alert_dialog").html("Are you sure you want to exit game?");
        	$("#ui_alert_dialog").dialog({
        	    resizable : false,
        	    modal : true,
        	    height : "auto",
        	    width : "auto",
        	    maxWidth:"500",
        	    maxHeight:"500",
        	    title:'Confirm',
        	    buttons : {
        	        "Save" : function() {logOut("save");},
        			"Cancel" : function() {$(this).dialog("destroy");},
        	        "Quit":function(){logOut("notsave");}
        		}
        	});
        	
        });
        
        $("#settings").click(function(){
        	$("#settings_dialog").dialog('open');
        });
        
        $("#settings_dialog").dialog({
			autoOpen:false,
			height:"auto",
			width:"auto",
			modal:true,
			title:"Settings",
			buttons : {
		        "Ok" : function() {$(this).dialog("close");}
			}
		});
        $("#profile").click(function(){
        	if($("#prplayer_id td span").html()=="Facebook ID"){
        		$("#profile_dialog").siblings(".ui-dialog-buttonpane").find("button span").html("Ok");
        	}else{
        		$("#profile_dialog").siblings(".ui-dialog-buttonpane").find("button span").html("Save");
        	}
        	$("#profile_dialog").dialog('open');
        });
        
        $("#profile_dialog").dialog({
			autoOpen:false,
			height:"auto",
			width:"auto",
			modal:true,
			title:"Profile",
			buttons : {
			        "Save" : function() {
        			var error="";
        			if($("#profile_dialog input[name='fname']").val()==""){
        				error+="! Enter first name<br/>";
        			}
        			if($("#profile_dialog input[name='lname']").val()==""){
        				error+="! Enter last name<br/>";
        			}
        			if($("#profile_dialog input[name='pass']").val()!="" || $("#profile_dialog input[name='cpass']").val()!=""){
			        	if($("#profile_dialog input[name='pass']").val()=="" || $("#profile_dialog input[name='cpass']").val()==""){
			    			if($("#profile_dialog input[name='pass']").val()==""){
			    				error+="! Enter password<br/>";
			    			}
			    			if($("#profile_dialog input[name='cpass']").val()==""){
			    				error+="! Enter confirm password<br/>";
			    			}	
			    		}
			    		else if($("#profile_dialog input[name='pass']").val()!=$("#profile_dialog input[name='cpass']").val()){
			    			error+="! Passwords not matched<br/>";
			    		}
        			}
        			
			        if(error!=""){
						$("#profile_dialog .error").html(error);
					}else{
						$("#profile_dialog .error").html("");
						var params=new Object();
	        			params.action="updateProfile";
	        			params.fname=$("#profile_dialog input[name='fname']").val();
	        			params.lname=$("#profile_dialog input[name='lname']").val();
	        			params.pass=$("#profile_dialog input[name='pass']").val();
	        			
	        			$.ajax({
	        				data:params,
	        				success:function(data){
	        				if(data==null){
	    						/*ui_alert('Session Expired.','window.location.reload();');*/
	        					jQuery('.wrapper').ajaxLoaderRemove();
	    						return false;
	    					}
	        					if(data.success=="1"){
	        						$("#profile_dialog input[name='cpass']").val("");
	        						$("#profile_dialog input[name='pass']").val("");
	        					}
	        					jQuery('.wrapper').ajaxLoaderRemove();
	        				}
	        			})
		        		$(this).dialog("close");
					}
        		}
			}
		});
        $("#profile_dialog table tr").each(function(){
        	$(this).find("td:first span").css("font-weight","bold");
        	$(this).find("td:first").css("width","125px");
        });
        
        $(".wrapper").css("visibility","");
        
        
	});
	var error=0;
	function FBShare(){
		var publish = {
			method: 'stream.publish',
   		    message: $("#fb_content").val(),
   		    actions : { name : 'Play Bible Or Not', link : GAME_LINK}
	     };
		
	   	FB.api('/me/feed', 'POST', publish, function(response) {  
	   		if (!response || response.error) {
	   			jQuery(".wrapper").ajaxLoaderRemove();
	   			if(error<5){
	   				FBShare();
		   			error++;
	   			}
	   			
	   		  } else {
	   			  jQuery(".wrapper").ajaxLoaderRemove();
		    		  ui_alert('Thank you for sharing with Facebook !');
		    		  $("#share_dialog").dialog('close');
	   		  }
	   	});
		/*$.ajax({
			data:publish,
			dataType:'html',
			success:function(data){
			alert(data);
				if(data.success=="1"){
					ui_alert('Thank you for sharing with Facebook !');
					$("#share_dialog").dialog('close');
				}
			}
			
		});*/
	}
	function FBLogin(callbk){
		 FB.login(function(login_response) {
//			 alert("init again=>");
			 FB.init({
			      appId: FB_APP_ID,
			      cookie: true,
			      xfbml: true,
			      oauth: true
			  });
//			 alert("calling=>"+callbk);
			 eval(callbk);
			 }, {scope: 'publish_stream'});
		}
	function isLoggedIn(){
		var flag=false;
		var params=new Object();
		params.action="checkLogin";
		
		$.ajax({
		      data:params,
		      async:false,
		      success: function (data) {
				if(data==null){
					/*ui_alert('Session Expired.','window.location.reload();');*/
					jQuery('.wrapper').ajaxLoaderRemove();
					return false;
				}
		        if(data.success=="1"){
			        flag=true;
		        }else if(data.success=="0"){
		        	flag=false;
			    }
		        jQuery('.wrapper').ajaxLoaderRemove();
		      }
		    });
	    return flag;
	}
	function loginPost(){
		var error="";
		var params = new Object();
		params.action = "loginPost";

		if($("#login_dialog input[name='email']").val()==""){
			error+="! Enter email address<br/>";
		}
		else if(!isValidEmailAddress($("#login_dialog input[name='email']").val())){
			error+="! Email address not valid<br/>";
		}
		if($("#login_dialog input[name='pass']").val()==""){
			error+="! Enter password<br/>";
		}
		params.email = $("#login_dialog input[name='email']").val();
		params.pass = $("#login_dialog input[name='pass']").val();
		
		if(error!=""){
			$("#login_dialog .error").html(error);
		}else{
			$("#login_dialog .error").html("");
			
			$.ajax({
				data:params,
				success:function(data){
					if(data==null){
						/*ui_alert('Session Expired.','window.location.reload();');*/
						jQuery('.wrapper').ajaxLoaderRemove();
						return false;
					}
					if(data.success=="1"){
						$("#login_dialog").dialog('close');
						for(key in data.game){
							if($("#"+key).size()>0){
								$("#"+key).html(data.game[key]);
							}
						}
						$("#btnLogin").hide();
						$("#btnSignup").hide();
						$("#profile").show();
						$("#btnLogout").show();
						$("#profile_dialog table tr").each(function(){
				        	$(this).find("td:first span").css("font-weight","bold");
				        	$(this).find("td:first").css("width","125px");
				        });
						jQuery('.wrapper').ajaxLoaderRemove();
						
						if(loginCallbackObj!=""){
							loginCallbackObj.click();
							loginCallbackObj="";
						}
					}else if(data.success=="0"){
						$("#login_dialog .error").html(data.error);
					}
					jQuery('.wrapper').ajaxLoaderRemove();
				}
			});
		}
	}
	function signup(){
		$("#login_dialog").dialog('close');
		$("#signup_dialog").dialog('open');
	}
	function forgetPass(){
		var error="";
		$("#forgetpass_dialog .error").html("");
		
		if($("#forgetpass_dialog input[name='email']").val()==""){
			error+="! Enter email address<br/>";
		}
		else if(!isValidEmailAddress($("#forgetpass_dialog input[name='email']").val())){
			error+="! Email address not valid<br/>";
		}
		if(error!=""){
			$("#forgetpass_dialog .error").html(error);
		}else{
			$("#forgetpass_dialog .error").html("");
			var params=new Object();
			params.action="forgetPass";
			params.email=$("#forgetpass_dialog input[name='email']").val();
			
			$.ajax({
				data:params,
				async:false,
				success:function(data){
				if(data==null){
					/*ui_alert('Session Expired.','window.location.reload();');*/
					jQuery('.wrapper').ajaxLoaderRemove();
					return false;
				}
					if(data.success=="1"){
						ui_alert("Password has been sent to your email address.");
						$("#forgetpass_dialog").dialog("close");
					}else{
						$("#forgetpass_dialog .error").html("! Please check the email address you entered");
					}
					jQuery('.wrapper').ajaxLoaderRemove();
				}
			});
		}
		
	}
	function login(){
		$("#login_dialog").dialog('open');
		$("#signup_dialog").dialog('close');
	}
	function signupPost(){
		var error="";
		if($("#signup_dialog input[name='fname']").val()==""){
			error+="! Enter first name<br/>";
		}
		if($("#signup_dialog input[name='lname']").val()==""){
			error+="! Enter last name<br/>";
		}
		if($("#signup_dialog input[name='playerid']").val()==""){
			error+="! Enter player ID<br/>";
		}
		else if(!checkAvailibility($("#signup_dialog input[name='playerid']").val(),'player_id')){
			error+="! Player not available, Please choose another<br/>";
		}
		if($("#signup_dialog input[name='email']").val()=="" || $("#signup_dialog input[name='cemail']").val()==""){
			if($("#signup_dialog input[name='email']").val()==""){
				error+="! Enter email address<br/>";
			}
			if($("#signup_dialog input[name='cemail']").val()==""){
				error+="! Enter confirm email address<br/>";
			}
		}else if($("#signup_dialog input[name='email']").val()!=$("#signup_dialog input[name='cemail']").val()){
			error+="! Emails not matched<br/>";
		}else{ 
				if(!isValidEmailAddress($("#signup_dialog input[name='email']").val())){
				error+="! Email address not valid<br/>";
			}
			else if(!checkAvailibility($("#signup_dialog input[name='email']").val(),'email')){
				error+="! Email address not available, Please choose another<br/>";
			}
		}
		
		if($("#signup_dialog input[name='pass']").val()=="" || $("#signup_dialog input[name='cpass']").val()==""){
			if($("#signup_dialog input[name='pass']").val()==""){
				error+="! Enter password<br/>";
			}
			if($("#signup_dialog input[name='cpass']").val()==""){
				error+="! Enter confirm password<br/>";
			}	
		}
		else if($("#signup_dialog input[name='pass']").val()!=$("#signup_dialog input[name='cpass']").val()){
			error+="! Passwords not matched<br/>";
		}

		if(error!=""){
			$("#signup_dialog .error").html(error);
		}else{
			$("#signup_dialog .error").html("");
			var params = new Object();
			params.action="signupPost";
			params.email=$("#signup_dialog input[name='email']").val();
			params.pass=$("#signup_dialog input[name='pass']").val();
			params.fname=$("#signup_dialog input[name='fname']").val();
			params.lname=$("#signup_dialog input[name='lname']").val();
			params.player_id=$("#signup_dialog input[name='playerid']").val();
			
			$.ajax({
				data:params,
				async:false,
				success:function(data){
				if(data==null){
					/*ui_alert('Session Expired.','window.location.reload();');*/
					jQuery('.wrapper').ajaxLoaderRemove();
					return false;
				}
					if(data.success=="1"){
						$("#signup_dialog").dialog('close');
						for(key in data.game){
							if($("#"+key).size()>0){
								$("#"+key).html(data.game[key]);
							}
						}
						ui_alert("You have signup successfully, Thank you!");
						$("#btnLogin").hide();
						$("#btnSignup").hide();
						$("#profile").show();
						$("#btnLogout").show();
						$("#profile_dialog table tr").each(function(){
				        	$(this).find("td:first span").css("font-weight","bold");
				        	$(this).find("td:first").css("width","125px");
				        });
					}
					jQuery('.wrapper').ajaxLoaderRemove();
				}
			});
		}
	}
	function checkAvailibility(value,field){
		var params = new Object();
		params.action="checkAvailibility";
		var flag = false;
		params.value=value;
		params.field=field;
		
		$.ajax({
			data:params,
			async:false,
			success:function(data){
			if(data==null){
				/*ui_alert('Session Expired.','window.location.reload();');*/
				jQuery('.wrapper').ajaxLoaderRemove();
				return false;
			}
				if(data.success=="0"){
					flag=false;
				}else{
					flag=true;
				}
				jQuery('.wrapper').ajaxLoaderRemove();
			}
		});

		return flag;
	}
	function isValidEmailAddress(emailAddress) {
		var pattern = new RegExp(/^(("[\w-+\s]+")|([\w-+]+(?:\.[\w-+]+)*)|("[\w-+\s]+")([\w-+]+(?:\.[\w-+]+)*))(@((?:[\w-+]+\.)*\w[\w-+]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
		return pattern.test(emailAddress);
	};
	function nextQue(){
		$("#btnNext").click();
	}
	function newGame(){
		var params = new Object();
		params.action="newGame";
		params.forceNew="true";
		
		$.ajax({
		      data:params,
		      success: function (data) {
			if(data==null){
				/*ui_alert('Session Expired.','window.location.reload();');*/
				jQuery('.wrapper').ajaxLoaderRemove();
				return false;
			}
		        if(data.success=="1"){
					for(key in data.game){
						if($("#"+key).size()>0){
							$("#"+key).html(data.game[key]);
						}
					}
					nextQue();
					$("#btnNext").hide();
					$("#btnBible").show();
					$("#btnNot").show();
		        }
		        jQuery('.wrapper').ajaxLoaderRemove();
		      }
		    });
		$("#ui_alert_dialog").dialog("destroy");
	}
	function newGameAfterQuit(){
		var params = new Object();
		params.action="newGame";
		params.forceNew="quit";
		
		$.ajax({
		      data:params,
		      success: function (data) {
			if(data==null){
				/*ui_alert('Session Expired.','window.location.reload();');*/
				jQuery('.wrapper').ajaxLoaderRemove();
				return false;
			}
		        if(data.success=="1"){
					for(key in data.game){
						if($("#"+key).size()>0){
							$("#"+key).html(data.game[key]);
						}
					}
					
					$("#btnBible").hide();
					$("#btnNot").hide();
					$(".source").hide();
					$("#wrongAns").hide();
					$("#correctAns").hide();
					$("#points").hide();
					$("#btnNext").hide();
		        }
		        jQuery('.wrapper').ajaxLoaderRemove();
		      }
		    });
		$("#ui_alert_dialog").dialog("destroy");
	}
	function toggleButtons(){
		$("#btnNext").toggle();
		$("#btnBible").toggle();
		$("#btnNot").toggle();
	}
	var setFBUserError=0;
	function setFBUser(){
		var params = new Object();
		params.action="setFBUser";
		
		$.ajax({
			data:params,
			success:function(data){
			if(data==null){
				/*ui_alert('Session Expired.','window.location.reload();');*/
				jQuery('.wrapper').ajaxLoaderRemove();
				return false;
			}
				if(data.success=="1"){
					$("#welcomeName").html(data.welcomeName);
					$("#highScoreYourName").html(data.highScoreYourName);
					$("#btnLogin").hide();
					$("#btnSignup").hide();
					$("#profile").show();
					$("#btnLogout").show();
					$("#login_dialog").dialog('close');
					
					for(key in data.game){
						if($("#"+key).size()>0){
							$("#"+key).html(data.game[key]);
						}
					}
					
				}else{
//					$("#login_dialog .error").html("Error");
					window.setTimeout('setFBUser()',1000);
				}
				jQuery('.wrapper').ajaxLoaderRemove();
			}
			});
	}
	function getFavQuotes(pageno){
		var params = new Object();
		params.page=pageno;
		params.action="getFavQuotes";
		
		$.ajax({
			data:params,
			async:true,
			success:function(data){
			if(data==null){
				/*ui_alert('Session Expired.','window.location.reload();');*/
				jQuery('.wrapper').ajaxLoaderRemove();
				return false;
			}
				if(data.success=="1"){
					
				}else{
					
				}	
				$("#fav_quotes").html(data.fav_quotes);
				refreshButtons();
				jQuery('.wrapper').ajaxLoaderRemove();
			}
		});
	}
	function getHighScore(){
		var params = new Object();
		params.action="getHighScore";
		
		$.ajax({
			data:params,
			success:function(data){
			if(data==null){
				/*ui_alert('Session Expired.','window.location.reload();');*/
				jQuery('.wrapper').ajaxLoaderRemove();
				return false;
			}
				$("#high_score").html(data.high_score);
				refreshButtons();
				jQuery('.wrapper').ajaxLoaderRemove();
			}
		});
	}
	function refreshButtons(){
		$("body input:button").each(function(){
			/*if(!$(this).hasClass("themeButton")){
				$(this).addClass("themeButton");
				$(this).css("font-size","16px");
				$(this).css("font-weight","bold");
			}*/
		});
		
		$("input:button:not(.themeButton)","body").button();
//		$(".pager").removeClass("themeButton");
	}
	jQuery.fn.ajaxLoader = function (conf) {
	    var config = jQuery.extend({
	        className:        'jquery-ajax-loader', 
	        fadeDuration:    500
	    }, conf);

	    return this.each(function () {
	        var t = jQuery(this);
	        var offset = t.offset();
	        var dim = {
	                left:    offset.left, 
	                top:    offset.top, 
	                width:    t.outerWidth(), 
	                height:    t.outerHeight()
	            };
	            
	        if (!this.ajaxLoaderObject) 
	        {
	            this.ajaxLoaderObject = jQuery('<div class="' + config.className + '"></div>').css({
	                position:    'absolute', 
	            }).appendTo(document.body).hide();
	        }
//	        alert(dim.left+"=="+dim.top+"=="+dim.height+"=="+dim.width);
            $("."+config.className).css('left',        dim.left + 'px');
            $("."+config.className).css('top',        dim.top + 'px');
            $("."+config.className).css('width',        dim.width + 'px');
            $("."+config.className).css('height',        dim.height + 'px');
            $("."+config.className).css('z-index',        '10000');
            
	        this.ajaxLoaderObject.fadeIn(config.fadeDuration);
	    });
	};

	jQuery.fn.ajaxLoaderRemove = function () {
	    return this.each(function () {
	        if (this.ajaxLoaderObject) {
	            this.ajaxLoaderObject.fadeOut(500);
	        }
	    });
	};
	function saveScore(){
		var params = new Object();
		params.action="saveScore";
		
			$.ajax({
		      data:params,
		      success: function (data) {
				if(data==null){
					/*ui_alert('Session Expired.','window.location.reload();');*/
					jQuery('.wrapper').ajaxLoaderRemove();
					return false;
				}
		        if(data.success=="1"){
		        	newGame();
		        	getHighScore();
		        }else if(data.success=="0"){
		        	$("#login_dialog").dialog('open');
			    }
		        jQuery('.wrapper').ajaxLoaderRemove();
		      }
		    });
	}
	function emptyFields(dialogID){
		$("#"+dialogID+' input, #'+dialogID+' textarea').each(function(){
			if($(this).attr('name')!="subject"){
				$(this).val("");
			}
		});
		$("#"+dialogID+' .error').html("");
	}
	function debug(code){
		var params = new Object();
		params.action="debug";
		params.code=code;
		
		$.ajax({
		      data:params,
		      success: function (data) {
				if(data==null){
					/*ui_alert('Session Expired.','window.location.reload();');*/
					jQuery('.wrapper').ajaxLoaderRemove();
					return false;
				}
				jQuery('.wrapper').ajaxLoaderRemove();
		      }
		    });
	}
	function logOut(save){
		params = new Object();
    	params.action="logout";
    	params.save=save
    	
    	$.ajax({
    		data:params,
    		success:function(data){
    		if(data==null){
				/*ui_alert('Session Expired.','window.location.reload();');*/
    			jQuery('.wrapper').ajaxLoaderRemove();
				return false;
			}
    			if(data.success=="1"){
    				$("#btnLogin").show();
					$("#btnSignup").show();
					$("#profile").hide();
					$("#btnLogout").hide();
					$("#welcomeName").html("");
					newGameAfterQuit();
    			}
    			jQuery('.wrapper').ajaxLoaderRemove();
    		}
    	});
	}
