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

function getElementsByClass(str)
{
	elements=document.getElementsByTagName('*');
	var array = new Array();
	for(var i=0; i<elements.length; i++)
	{
	if(elements[i].className==str)
	array.push(elements[i])
	}
	return array;
}

function addToFavorites() 
{ 
if (window.external) 
window.external.AddFavorite("http://www.WebbyShare.com","WebbyShare") 
else 
alert("Sorry! Your browser doesn't support this function."); 
}

//Start Ajax functions
var ajaxConnections = 0;
var ajaxArray = new Array();

//this limits the number of ajax calls. Only one will be called at a time.

function ajax(strURL,str,f,skipCheck)
{  
  if(skipCheck==undefined)
  skipCheck=false;
  
   ajaxConnections++;
   if(ajaxConnections>1&&!skipCheck)
   {
      var ob = [strURL,str,f];    
      ajaxArray.push(ob);
      return;
   }
       
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function()
    {
        if (self.xmlHttpReq.readyState == 4)
        {
			ajaxConnections--;
			var temp=self.xmlHttpReq.responseText;
            if(f!=""&&f!=undefined)
            eval(f+"("+"temp"+");");
            if(ajaxArray.length>0)
            {
            ajaxConnections--;
            var ob2=ajaxArray.pop();
            ajax(ob2[0],ob2[1],ob2[2],true);
            }
        }
    }
     self.xmlHttpReq.send(str);
}
//End Ajax Functions


//parse result string
//The following function parses the URL string
function PageQuery(q)
{
if(q.length > 1)
    this.q = q.substring(1, q.length);
else
    this.q = null;
    
this.keyValuePairs = new Array();

if(q)
    {
    for(var i=0; i < this.q.split("&").length; i++)
        {
        this.keyValuePairs[i] = this.q.split("&")[i];
        }
    }
    
    this.getKeyValuePairs = function() { return this.keyValuePairs; }

    this.getValue = function(s)
    {
        for(var j=0; j < this.keyValuePairs.length; j++)
            {
            if(this.keyValuePairs[j].split("=")[0] == s)
                {
                var str=this.keyValuePairs[j]; 
                str=str.substring((str.indexOf("=")+1));	
				return str;
                }
            
            }
        return ""; //this was false.
    }
    
    this.getParameters = function()
    {
        var a = new Array(this.getLength());
        for(var j=0; j < this.keyValuePairs.length; j++)
            {
            a[j] = this.keyValuePairs[j].split("=")[0];
            }
        return a;
    }
    
    this.getLength = function() { return this.keyValuePairs.length; } 
}


function queryString(key){
var page = new PageQuery(window.location.search); 
return unescape(page.getValue(key)); 
}
function findValue(str,key){
var page = new PageQuery(str); 
return unescape(page.getValue(key)); 
}
//End parse result string
function signup()
{
	if($('password').value!=$('password2').value)
	{
		$('signupResult').style.color = "Red";
		$('signupResult').innerHTML="Your passwords do not match.";
		return;
	}
	if($('password').value.length<5)
	{
		$('signupResult').style.color = "Red";
		$('signupResult').innerHTML="Your password must be at least 6 characters.";
		return;
	}
	
	var str = "&username="+$('username').value;
	str+= "&password="+$('password').value;
	
	ajax("Action.php?action=signup",str,"signupReply");
}

function signupReply(str)
{
	var result=findValue(str,"result");
	if(result!="success")
	{
		$('signupResult').style.color = "Red";
		$('signupResult').innerHTML="Error signing up."+str;
		return;
	}
	document.location="myaccount.php";
}


function login()
{
	var str = "&username="+$('username').value;
	str+= "&password="+$('password').value;
	
	ajax("Action.php?action=login",str,"loginReply");
}

function loginReply(str)
{
	var result=findValue(str,"result");
	if(result!="success")
	{
		$('message').style.color = "Red";
		$('message').innerHTML="Error logging in.";
		return;
	}
	document.location="myaccount.php";
}

function logout()
{
	ajax("Action.php?action=logout","","logoutReply");
}

function logoutReply(str)
{
	var result=findValue(str,"result");
	if(result!="success")
	{
		alert('Error Logging Out');
	}
	//$('message').style.color = "Red";
	//	$('message').innerHTML="Error logging out.";
	//	return;
	//$('message').style.color = "Green";
	//$('message').innerHTML="You are now logged out.";
	//return;
	document.location="index.php";
}

function updateUsername()
{
	var str = "&username="+$('username').value;
	ajax("Action.php?action=changeUsername",str,"updateUsernameReply");
}

function updateUsernameReply(str)
{
	var result=findValue(str,"result");
	if(result!="success")
	{
		$('updateUsernameResult').style.color = "Red";
		$('updateUsernameResult').innerHTML=result;
		return;
	}
	
	$('updateUsernameResult').style.color = "Green";
	$('updateUsernameResult').innerHTML="Your Username has been updated.";
	
	var usernames=getElementsByClass('username')
	
	for(var i=0; i<usernames.length; i++)
	{
	usernames[i].innerHTML=$('username').value;
	}
	
	$('editUsername').style.display='none';
	
}

function getSettings()
{
	var str = "&book="+
	"&restaurant="+
	"&city="+
	"&email="+
	"&phone=";

	ajax("Action.php?action=getPreference",str,"getSettingsReply");
}

function getSettingsReply(str)
{
	var result=findValue(str,"result");
	if(result!="success")
	{
		$('message').style.color = "Red";
		$('message').innerHTML="Error getting account settings." +str;
		return;
	}
	
	$('book').value = findValue(str,"book");
	$('restaurant').value = findValue(str,"restaurant");
	$('city').value = findValue(str,"city");
	$('phone').value = findValue(str,"phone");
	$('email').value = findValue(str,"email");
}


function setSettings()
{
	var str = "&book="+$('book').value +
	"&restaurant="+$('restaurant').value +
	"&phone="+$('phone').value +
	"&email="+$('email').value +
	"&city="+$('city').value;
	
	ajax("Action.php?action=setPreference",str,"setSettingsReply");
}

function setSettingsReply(str)
{
	var result=findValue(str,"result");
	if(result!="success")
	{
		$('message').style.color = "Red";
		$('message').innerHTML="Error updating account." +str;
		return;
	}
	$('message').style.color = "Green";
	$('message').innerHTML="Your account has been updated.";
	
}

//===========
function getContent(content)
{
	var str ="";
	
	for (var i in content)
	{
	str += "&"+i+"="+content[i];
	}
	ajax("Action.php?action=getPreference",str,"getContentReply");
}

function getContentReply(str)
{
	var result=findValue(str,"result");
	if(result!="success")
	{
		$('message').style.color = "Red";
		$('message').innerHTML="Error getting account settings." +str;
		return;
	}
	
	$('myHomePage').innerHTML= findValue(str,"homepage");
	$('myAboutUs').innerHTML = findValue(str,"aboutus");
	//$('contact').value = findValue(str,"contact");
}


function getDynamicContentReply(str)
{
	var result=findValue(str,"result");
	if(result!="success")
	{
		$('message').style.color = "Red";
		$('message').innerHTML="Error getting account settings." +str;
		return;
	}
	
	$('homepage').value = findValue(str,"homepage");
	$('aboutus').value = findValue(str,"aboutus");
	$('contact').value = findValue(str,"contact");
}

function getDynamicContent()
{
	var str = "&homepage="+
	"&aboutus="+
	"&contact=";

	ajax("Action.php?action=getPreference",str,"getDynamicContentReply");
}

function getDynamicContentReply(str)
{
	var result=findValue(str,"result");
	if(result!="success")
	{
		$('message').style.color = "Red";
		$('message').innerHTML="Error getting account settings." +str;
		return;
	}
	
	$('homepage').value = findValue(str,"homepage");
	$('aboutus').value = findValue(str,"aboutus");
	$('contact').value = findValue(str,"contact");
}

function setDynamicContent()
{
	var str = "&homepage="+$('homepage').value +
	"&aboutus="+$('aboutus').value +
	"&contact="+$('contact').value;
	
	ajax("Action.php?action=setPreference",str,"setDynamicContentReply");
}

function setDynamicContentReply(str)
{
	var result=findValue(str,"result");
	if(result!="success")
	{
		$('message').style.color = "Red";
		$('message').innerHTML="Error updating account." +str;
		return;
	}
	$('message').style.color = "Green";
	$('message').innerHTML="Your account has been updated.";
	
}

//===========
function addToCart(id, quantity)
{
	var str = "&id="+id;
	str+= "&quantity="+quantity;
	
	ajax("Action.php?action=setCart",str,"addToCartReply");
}

function addToCartReply(str)
{
	var result=findValue(str,"result");
	var div=findValue(str,"div");
	var removeDiv="div_"+div;
	if(result!="success")
	{
		alert("FAILED"+str);
		return;
		$('emailResult').style.color = "Red";
		$('emailResult').innerHTML="Error sending email."+str;
		return;
	}
	
	if($(removeDiv)&&$("update_"+div).value==0)
	$(removeDiv).parentNode.removeChild($(removeDiv));

	updateBuyNowButton();
	
	if(!$('googleCheckout'))
	{
		$('addToCartReply').style.color = "Green";
		$('addToCartReply').innerHTML="Your cart has been updated!";
	}
	
}

function updateBuyNowButton()
{
	ajax("Action.php?action=checkout",null,"updateBuyNowButtonReply");
}

function updateBuyNowButtonReply(str)
{
	$('googleCheckout').innerHTML=str;
	
	$('addToCartReply').style.color = "Green";
	$('addToCartReply').innerHTML="Your cart has been updated!";
	
}

function sendEmail()
{
	var str = "&email="+$('email').value;
	str+= "&emailMessage="+$('emailMessage').value;
	
	ajax("Action.php?action=sendEmail",str,"sendEmailReply");
}

function sendEmailReply(str)
{
	var result=findValue(str,"result");
	if(result!="success")
	{
		$('emailResult').style.color = "Red";
		$('emailResult').innerHTML="Error sending email."+str;
		return;
	}
	
	$('emailResult').style.color = "Green";
	$('emailResult').innerHTML="Your email has been sent. Thank You.";
	
}





/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail Address")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail Address")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail Address")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail Address")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail Address")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail Address")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail Address")
		    return false
		 }

 		 return true					
	}

function ValidateForm(){
	var emailID=document.getElementById("email");
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please Enter your Email Address")
		emailID.focus()
		return false
	}
	if (echeck(emailID.value)==false){
		emailID.value=""
		emailID.focus()
		return false
	}
	sendEmail();
 }



