var step = 1;

function getXMLHttp()
{
  var xmlHttp

  try
  {
    //Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    //Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
      try
      {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {
        alert("Your browser does not support AJAX!")
        return false;
      }
    }
  }
  return xmlHttp;
}

function clearTextIfStillDefault(elem, defaultText, fontColor, fontSize)
{	
	if (elem)
	{
		if (elem.value == defaultText)
		{			
			elem.value='';
			elem.style.color = fontColor;			
			elem.style.fontSize = fontSize;
			elem.style.fontWeight = '';			
		}
	}
}

function putBackDefaultText(id, defaultText, fontColor, fontSize)
{
	elem = document.getElementById(id);
	if (elem)
	{
		if (elem.value == "")
		{
			
			elem.style.color = fontColor;
			elem.style.fontSize = fontSize;
			elem.style.fontWeight = '900';
			
			elem.value=defaultText;			
			
		}
	}
}
function backToEditMessage()
{
	gebi("facebookDiv").style.display='none';
	gebi("4CrowdWidgetText").style.display='inline';
	gebi("4CrowdWidgetBtn").style.display='inline';
	step = 1;
	logger("Back to Edit Message");
}
function backToFacebookOption()
{
	gebi("emailDiv").style.display = 'none';
	gebi("4CrowdWidgetBtn").style.display='none';
	gebi("facebookDiv").style.display = 'block';
	logger("No Facebook Option");
}
function noFacebookOption()
{
	gebi("emailDiv").style.display = 'block';
	gebi("4CrowdWidgetBtn").style.display='inline';
	gebi("facebookDiv").style.display = 'none';
	logger("No Facebook Option");
}
function limitChars(obj, limit)
{
	var numChars = obj.value.length;
	if(numChars > limit) {
		obj.value = obj.value.substring(0, limit);
	}
}
function gebi(name)
{
	return document.getElementById(name);
}
function isBlank(text)
{
	var temp = text.split(' ').join('').split('\n').join('').split('\r').join('');

	if (text == "" || temp == "")
		return true;
	else
		return false;
}
var message = "";


function newQuestion(btn, defaultText, businessId, isLoggedIn)
{
	if (step == 1)
	{
		message = gebi("4CrowdWidgetText").value;
		if (isBlank(message) || message == defaultText)
		{
			message = "";
			alert("Please type your question first!");
			logger("No question");
			return
		}
		if (!isLoggedIn)
		{
			var currentWidgetWidth = gebi("widthDiv").offsetWidth;			
			if (currentWidgetWidth < 308)
			{
				gebi("fbNormal").style.display='none';
				gebi("fbSmall").style.display='block';
				gebi("noFbFonts").style.fontSize='10px';
				gebi("fbDirections").style.fontSize='14px';
				gebi("emailDiv").style.fontSize='12px';
				gebi("nameInput").style.width = '100px';
				gebi("emailInput").style.width = '100px';
			}
			else
			{
				gebi("fbNormal").style.display='block';
				gebi("fbSmall").style.display='none';
				gebi("noFbFonts").style.fontSize='';
				gebi("fbDirections").style.fontSize='';
				gebi("emailDiv").style.fontSize='';
				gebi("nameInput").style.width = '';
				gebi("emailInput").style.width = '';
			}
			gebi("fbLoginBtn").size='large';
			gebi("facebookDiv").style.display='block';
			gebi("4CrowdWidgetText").style.display='none';
			gebi("4CrowdWidgetBtn").style.display='none';
			step++;
			logger(message);
			return;
		}
	}
	var oldValue = btn.value;
	if (!isLoggedIn)
	{
		btn.disabled=true;
		btn.value="Asking...";
		
		
		
		var name = document.getElementById("nameInput").value;		
		var email = document.getElementById("emailInput").value;	
		
			
		if (isBlank(name))
		{
			logger("No Name Entered");
			alert('Please enter your name!');
			btn.disabled=false;
			btn.value=oldValue;			
			return;
		}			
					
		if (isBlank(email))
		{
			logger("No email Entered");
			alert('You must enter your email address so you can get a notification when your question is answered.');			
			btn.disabled=false;
			btn.value=oldValue;
			return;
		}
		var regexp_email = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z])+$/;
		if (!regexp_email.test(email))
		{
			logger("Invalid Email");
			alert('Please enter a valid email address.  You will have to verify it before your question is posted.');
			btn.disabled=false;
			btn.value=oldValue;
			return;
		}
		var type = "newDMWithEmail";
	}
	else
	{
		var name = "";
		var email = "";
		var type = "newDMLoggedIn";
		
	}
	
	gebi("4CrowdWidgetText").style.display='none';
	gebi("4CrowdWidgetBtn").style.display='none';
	gebi("emailDiv").style.display='none';
	gebi('posting').style.display='block';
	
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;
			
			if (null != response && response != '' && !isError(response))
			{	  
				if (response == 'error_blank')
				{
					alert("You need to enter all information!");
					btn.disabled=false;
					btn.value=oldValue;
					gebi("4CrowdWidgetText").style.display='block';
					gebi("4CrowdWidgetBtn").style.display='inline';
					gebi('posting').style.display='none';
					return;
				}
				else if (response == 'error_noBiz')
				{
					alert("This widget has not been configured correctly.  Please contact the site administrator and notify them of this error.");
					btn.disabled=false;
					btn.value=oldValue;
					gebi("4CrowdWidgetText").style.display='block';
					gebi("4CrowdWidgetBtn").style.display='inline';
					gebi('posting').style.display='none';
					return;
				}			
				else if (response == 'error_cantDM')
				{
					alert("You cannot message this business. They may have disabled this feature.");
					btn.disabled=false;
					btn.value=oldValue;
					gebi("4CrowdWidgetText").style.display='block';
					gebi("4CrowdWidgetBtn").style.display='inline';
					gebi('posting').style.display='none';
					return;
				}	
				else if (response == 'error_self')
				{
					alert("Oops! You can't message yourself!");
					btn.disabled=false;
					btn.value=oldValue;
					gebi("4CrowdWidgetText").style.display='block';
					gebi("4CrowdWidgetBtn").style.display='inline';
					gebi('posting').style.display='none';
					return;
				}						
				else if (response == 'done')
				{
					//it worked!
					gebi('checkEmailDiv').style.display='block';
					gebi('emailDiv').style.display='none';
					gebi('posting').style.display='none';
					btn.style.display='none';
				}
				else if (isLoggedIn)
				{					
					parent.location = 'http://4crowd.com/?cid=' + response;
				}
				else
				{
					alert("There was an error in your request. Try again later");
					btn.disabled=false;
					btn.value=oldValue;
					gebi("4CrowdWidgetText").style.display='block';
					gebi("4CrowdWidgetBtn").style.display='inline';
					gebi('posting').style.display='none';
					return;
				}
			}else
			{
				alert("There was an error in your request. Try again later");
				btn.disabled=false;
				btn.value=oldValue;
				gebi("4CrowdWidgetText").style.display='block';
				gebi("4CrowdWidgetBtn").style.display='inline';
				gebi('posting').style.display='none';
				return;
			}
		}
	}
	
 
	var params = "type=" + type + "&name="+encodeURIComponent(name)+"&email="+encodeURIComponent(email)+"&message="+encodeURIComponent(message)+"&businessId="+encodeURIComponent(businessId);
	xmlHttp.open("POST", "/api/", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}

function loginToFacebook(businessId)
{
	gebi('loggingIn').style.display='block';
	gebi("facebookDiv").style.display='none';
	gebi("4CrowdWidgetText").style.display='none';
	gebi("4CrowdWidgetBtn").style.display='none';
			
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var response = xmlHttp.responseText;	
			
			if (null != response && response != '' && !isError(response) && response == 'done')
			{	  
				if (step == 2)
				{
					//post question
					gebi('loggingIn').style.display='none';
					gebi('posting').style.display='block';
					newQuestion(gebi("4CrowdWidgetBtn"), "", businessId, true);
				}
				else
				{
					//no question yet.
					window.location.reload();
				}
		
			}else
			{
				alert("There was an error in your request. Try again later");
				gebi('loggingIn').style.display='none';
				gebi("4CrowdWidgetText").style.display='block';
				gebi("4CrowdWidgetBtn").style.display='inline';
				return;
			}
		}
	}
	
 
	var params = "widget=true";
	xmlHttp.open("POST", "/facebook/", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}


function logger(msg)
{
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function()
	{
	}
	var params = "type=logger" + "&desc=" + encodeURIComponent(msg);
	xmlHttp.open("POST", "/ajax_receiver.php", true); 
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}

							
function isError(response)
{
	errorIndex1 = response.indexOf("Fatal error");
	errorIndex2 = response.indexOf("Parse error");
	errorIndex3 = response.indexOf("Warning");
	if ((errorIndex1 >=0) || (errorIndex2 >= 0) || (errorIndex3 >= 0))
	{
		return true;
	}
	else
	{
		return false;
	}
}

