﻿
var g_strLink = null;
var xmlHttpObj = CreateXmlHttpRequestObject();

function DisplaySendToFriend(object,URL)
{

    g_strLink = URL;
    
    var p = object;
    var pCont = document.getElementById('SendToFriend');
    
    var top  = null;
    var left = null;

    top = p.offsetTop;
    left = p.offsetLeft + p.offsetWidth + 2;
              
    while (p = p.offsetParent) {
	    top += p.offsetTop;
	    left += p.offsetLeft;
    }
    
    pCont.style.position   = "absolute";
    pCont.style.top        = top + 'px';
    pCont.style.left       = left + 'px';
    pCont.style.visibility = "visible";
    
    var btnCancel = document.getElementById('btnCancel');
    btnCancel.disabled = false;
    
    var btnSend = document.getElementById('btnSend');
    btnSend.disabled = false;
    
    var img = document.getElementById('imgSending');
    img.style.visibility = "hidden";
        
}

function SendLink()
{

    var YourName = document.getElementById('txtYourName');
    var FriendsName = document.getElementById('txtFriendsName');
    var EmailAddress = document.getElementById('txtFriendsEmail');
    var Msg = document.getElementById('txtMsg');
        
    var img = document.getElementById('imgSending');
    img.style.visibility = "visible";
        
    var btnCancel = document.getElementById('btnCancel');
    btnCancel.disabled = true;
    
    var btnSend = document.getElementById('btnSend');
    btnSend.disabled = true;

    if (IsValidForm() == true){  
    
        SendEMail(YourName.value,FriendsName.value,EmailAddress.value,Msg.value)
            
    }else{
        img.style.visibility = "hidden";
        btnCancel.disabled = false;
        btnSend.disabled = false;
    }
    
}

function CancelSendLink()
{
    var p = document.getElementById('SendToFriend');
    p.style.visibility = "hidden";
    p.style.top = "1px";
    
    var img = document.getElementById('imgSending');
    img.style.visibility = "hidden";
    
    g_strLink = null;
}

function SendEMail(YourName,FriendsName,FriendsEmail,Msg)
{

    var url = "http://" + location.host + "/SendToFriend.ashx?u=" + YourName + "&fn=" + FriendsName + "&fe=" + FriendsEmail + "&m=" + Msg + "&link=" + g_strLink;

    if (xmlHttpObj)
    {
    
        if (xmlHttpObj.overrideMimeType) {
            xmlHttpObj.overrideMimeType('text/plain');
        }

        // We want this request synchronous
        xmlHttpObj.open("GET",url, true);

            xmlHttpObj.onreadystatechange = function()
              {
                if (xmlHttpObj.readyState == READYSTATE_COMPLETE)
                {
                
                    // If the request was ok (ie. equal to a Http Status code of 200)            
                    if (xmlHttpObj.status == HTTPSTATUS_OK)
                    {
                                                   
                        var test = xmlHttpObj.responseText;
                        
                        var img = document.getElementById('imgSending');
                        img.style.visibility = "hidden";
                        
                        var p = document.getElementById('SendToFriend');
                        p.style.visibility = "hidden";
                        p.style.top = "1px"
                        
                        var YourName = document.getElementById('txtYourName');
                        var FriendsName = document.getElementById('txtFriendsName');
                        var EmailAddress = document.getElementById('txtFriendsEmail');
                        var Msg = document.getElementById('txtMsg');
                        
                        YourName.value = "";
                        FriendsName.value = "";
                        Msg.value = "";
                        EmailAddress.value = "";
        
                        g_strLink = null;
                        
                    }else{
                    
                        var status = xmlHttpObj.status
                        var fault = xmlHttpObj.responseText;
                        alert("Error! \n\n" + status + " - " + fault);
                    }
                }
              }
            
            // Execute the request            
            xmlHttpObj.send("SomeDataToSend");
    
    }

}

function FeedBtn_MouseOver(object)
{
    object.style.color = "#0000ff";
}

function FeedBtn_MouseOut(object)
{
    object.style.color = "#636363";
}

function IsValidForm()
{

    var YourName = document.getElementById('txtYourName');
    var FriendsName = document.getElementById('txtFriendsName');
    var EmailAddress = document.getElementById('txtFriendsEmail');
    var Msg = document.getElementById('txtMsg');
    
    YourName.value = TrimAll(YourName.value);
    FriendsName.value = TrimAll(FriendsName.value);
    Msg.value = TrimAll(Msg.value);
    EmailAddress.value = TrimAll(EmailAddress.value);
    
    if (YourName.value.length < 1){
        alert("Please enter in your name.");
        YourName.focus();
        return false;
    }
    
    if (FriendsName.value.length < 1){
        alert("Please enter in your friends name.");
        FriendsName.focus();
        return false;
    }
    
    if (ValidateEMailAddress(EmailAddress.value) == false){ 
        EmailAddress.focus();
        return false;
    }
    
    return true;
    
}

function ValidateEMailAddress(str){

    var msg = "Invalid E-mail Address.  Please enter in a valid address."

    var at = "@"
	var dot = "."
	var lat = str.indexOf(at)
	var lstr = str.length
	var ldot = str.indexOf(dot)
	
	if (str.indexOf(at)== -1){
        alert(msg)
		return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   alert(msg)
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
	    alert(msg)
	    return false
	}

	if (str.indexOf(at,(lat+1))!=-1){
	    alert(msg)
	    return false
	}

	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	   alert(msg)
	   return false
	}

	if (str.indexOf(dot,(lat+2))==-1){
	   alert(msg)
	   return false
	}
		
	if (str.indexOf(" ")!=-1){
	   alert(msg)
	   return false
	}

 	return true					
}

// Trim left and right of string
function TrimAll(sString) 
{
    while (sString.substring(0,1) == ' ')
    {
        sString = sString.substring(1, sString.length);
    }
        
    while (sString.substring(sString.length-1, sString.length) == ' ')
    {
        sString = sString.substring(0,sString.length-1);
    }
        
    return sString;
    
}