﻿// OurWebVite.com
// 2008 J. Scott King - www.jskdesign.net

// Image Rollovers
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// Login KeyHandler
function FileKeyHandler(e) {
   var asc = document.all ? event.keyCode : e.which;

   if(asc == 13) {
	  UserLogin();
	  return true;
   }
   return asc != 13;
}
	
function DefaultKeyHandler(e) {
   var asc = document.all ? event.keyCode : e.which;

   if(asc == 13) {
	  DefaultUserLogin();
	  return true;
   }
   return asc != 13;
}

// Global Variables
function ToggleView(ele)
{
    new Effect.toggle(ele,"slide",{duration: 0.3});
}


// Page Loader
NiftyLoad = function()
{
    Nifty("div#menu", "big top");
    Nifty("ul#nav a","small transparent top");
    Nifty("div.TitleBar","transparent top");
    Nifty("div.TitleBar2","transparent top");
}

function ShowHelp(obj)
{
	var ele = document.getElementById(obj);
	//alert(ele.style.display);
			
	if(ele.style.display == "none")
		{
			new Effect.SlideDown(ele);
		}
	else
		{
			new Effect.SlideUp(ele);
		}
}

// Template Files
function GetTemplate(temp, theme)
{
    //alert('Get This Template: ' + temp);
    location.href='MyTemplate.aspx?t=' + temp + '&th=' + theme;
}

function TempHighlight(ele, act)
{
    if(act)
    {
        ele.className = "tImgListOn";
    }
    else
    {
        ele.className = "tImgList";
    }
}

var tArray = new Array();
var cPage = location.href;

function CheckAllFilter(tot_ele) {
    var tot = tot_ele;
    tArray = new Array();

    for (var i = 0; i <= tot; i++) {
        var chk = document.getElementById('cSel' + i);
        if (chk.checked) {
            tArray.push(chk.value);
            //alert(chk.value);
        }
        else {
            RemoveArrayItems(tArray, chk.value);
        }
    }

    SetMyElement("FilterArray", tArray);
    //Check Current Page
    var PageCheck = cPage.indexOf("MyTemplate");
    PageCheck >= 1 ? FilterTemplatesPage() : FilterTemplates();
    
}

function RemoveArrayItems(array, item) {
    var i = 0;
    while (i < array.length) {
        if (array[i] == item) {
            array.splice(i, 1);
        }
        else {
            i++;
        }
    }
    return array;
}

function FilterTemplates()
{
	var item = GetMyElement("FilterArray");
	//alert(item);
	_Default.LoadTemplateThumbnails(item, FilterCallback);
}

function FilterTemplatesPage() {
    var item = GetMyElement("FilterArray");
    //alert(item);
    MyTemplate.LoadTemplateThumbnails(item, FilterCallback);
}

function FilterCallback(res)
{
	var d = document.getElementById("TemplateImages");
	res.value == null || res.error != null ? d.innerHTML = res.error.Message + " - " + res.value: 
	d.innerHTML = res.value;
}

//Process User Account Page /////////////////////////////////////////////////////////////////
function Validate_UserAccounts(){
	var pass = true;
	var ChkFields = new Array('FirstName','LastName','Email','Password','WeddingDate','HearAboutUs');
	// grab all input fields to validate
	var ip = document.getElementsByTagName('input');
    //alert(ChkFields.length);
	for (var i=0;i < ChkFields.length; i++){
	//Find Element
	var ele = document.getElementById(ChkFields[i]);
	val = ele.value;
	if(val == '')
	{
	ele.style.backgroundColor = '#8D8F94';
	pass = false;
	}
else
{
	ele.style.backgroundColor = '';
	}
}
if(!pass)
{
	SetMyHTML('errText', 'Please complete hi-lighted fields before saving...');
}
	return pass;
}

function ValidateSave()
{
	var f = GetMyElement("TempName");
	var u = GetMyElement("userID");
	var pass = true;
	
	if(u == 0)
	{
		ShowAlert("User Authentication...", "You must be logged in with your registered account to save templates...");
		pass = false;
	}
	
	if(f == "")
	{
		ShowAlert("No File Name...", "Please enter a template name before saving...");
		pass = false;
	}
	
	return pass;
}

function PremiumBuy()
{
	SaveUserAccounts();
	var u = GetMyElement("userID");
	var pform = document.getElementById("paypal");
	
	if(u == 0)
	{
		ShowAlert("User Authentication...", "You must be logged in with your registered account to become a premium member...");
	}
	else
	{
		pform.submit();
	}
}

function SaveUserAccounts(){
	if(Validate_UserAccounts()){
		var cd = MyAccount.GetUserAccountsClass().value;
		cd.UserID = GetMyElement('userID');
		cd.UserType = 'GUEST';
		cd.FirstName = GetMyElement('FirstName');
		cd.LastName = GetMyElement('LastName');
		cd.Email = GetMyElement('Email');
		cd.Password = GetMyElement('Password');
		cd.WeddingDate = GetMyElement('WeddingDate');
		cd.Phone = GetMyElement('Phone');
		cd.Address = GetMyElement('Address');
		cd.City = GetMyElement('City');
		cd.State = GetMyElement('State');
		cd.Zip = GetMyElement('Zip');
		cd.HearAboutUs = GetMyElement('HearAboutUs');
		
		//Pass class to server, Save data
		MyAccount.Process_UserAccounts(cd, SaveUserAccountsCallback);
	}
}

function SaveUserAccountsCallback(res){
	var d = document.getElementById('errText');
	res.value == null || res.error != null ? d.innerHTML = res.error.Message: 
	AccountValid(res.value);
}

function AccountValid(user)
{
    if(user >= 1)
    {
        SetMyHTML("errText", "Member account saved successfully...");
        SetMyElement("userID", user);
		SetMyElement("custom", user);
    }
    else if(user == -1)
    {
        SetMyHTML("errText", "An account already exists for this email address, please use the forgot my password function to retrieve your account login information...");
    }
    else
    {
        SetMyHTML("errText", "There was an error saving your account..." + user);
    }
}

function CheckUserAccount()
{
    var u = GetMyElement("userID");
    if(u >= 1)
    {
        LoggedInShow();
        Get_UserAccounts(u);
    }
    else
    {
        //Check for javascript
		if(document.getElementById("btnLogin"))
		{
			//Check for login cookies
			if(Cookies.owvu)
			{
				SetMyElement("LoginEmail", Cookies.owvu);
				SetMyElement("LoginPassword", Cookies.owvp);
			}
		}
    }
}

function RememberMe()
{
	var user = GetMyElement("LoginEmail");
	var pass = GetMyElement("LoginPassword");
	
	if(GetChecked("btnRemember"))
	{
	    Cookies.create("owvu", user, 620);
	    Cookies.create("owvp", pass, 620);
    	
	    alert("It\'s nice to be remembered sometimes... At least we remember you ;-)");
	}
}
	
function LoggedInShow()
{
    var UserName = MyAccount.GetUserDetail().value;
	var txt = "<h4>Welcome back " + UserName + "... Enjoy your stay.</h4><hr>";
	txt += "<input type='button' class='input_btn' value='Logout' onclick='DoLogout()' />";
    SetMyHTML("LoginHolder", txt);
}

function DoLogout()
{
	MyAccount.AccountLogout();
	location.href = "Default.aspx";
}

function Get_UserAccounts(ele){
	if(ele >= 1){
	MyAccount.GetUserAccounts(ele, FillUserAccountsForm);
}}

function FillUserAccountsForm(res){
	if(res.value == null || res.error != null) return false;
	var dTable = res.value.Tables[0].Rows[0];
	SetMyElement('userID',escapeNull(dTable.UserID,0));
	SetMyElement("custom", escapeNull(dTable.UserID,0));
	SetMyElement('FirstName',escapeNull(dTable.FirstName,''));
	SetMyElement('LastName',escapeNull(dTable.LastName,''));
	SetMyElement('Email',escapeNull(dTable.Email,''));
	SetMyElement('Password',escapeNull(dTable.Password,''));
	SetMyElement('Phone',escapeNull(dTable.Phone,''));
	SetMyElement('Address',escapeNull(dTable.Address,''));
	SetMyElement('City',escapeNull(dTable.City,''));
	SetMyElement('State',escapeNull(dTable.State,''));
	SetMyElement('Zip',escapeNull(dTable.Zip,''));
	SetMyElement('HearAboutUs',escapeNull(dTable.HearAboutUs,''));
	SetMyElement('WeddingDate',escapeNull(ConvertDate(dTable.WeddingDate),''));
	
	//SetMyHTML('date_row','Created: ' + dTable.create_date + ' | Modified: ' + escapeNull(dTable.mod_date,''));
	SetMyHTML('errText','');
}

function UserLogin()
{
    var user = GetMyElement("LoginEmail");
    var pass = GetMyElement("LoginPassword");
    
    MyAccount.MyUserLogin(user, pass, LoginCallback);
}

function LoginCallback(res)
{
    //alert(res.value);
    var retstr = res.value;
    var StrArray = retstr.split("|");
    
    //Capture error code
    if(StrArray[1] == 1)
    {
        SetMyHTML("LoginErr", StrArray[0]);
    }
    else
    {
        LoggedInShow();
        SetMyElement("userID", StrArray[0]);
        Get_UserAccounts(StrArray[0]);
    }
}

function ForgetLogin()
{
	var email = GetMyElement("LoginEmail");
	
	if(email == "")
	{
		SetMyHTML("LoginErr", "Please enter your email first and I\'ll send you your login information...");
	}
	else
	{
		_Default.SendEmailPass(email, ForgetCallback);
	}
}

function ForgetLoginAcct()
{
	var email = GetMyElement("LoginEmail");
	
	if(email == "")
	{
		SetMyHTML("LoginErr", "Please enter your email first and I\'ll send you your login information...");
	}
	else
	{
		MyAccount.SendEmailPass(email, ForgetCallback);
	}
}

function ForgetCallback(res)
{
	var d = document.getElementById("LoginErr");
	res.value == null || res.error != null ? d.innerHTML = res.error.Message: 
	d.innerHTML = res.value;
}

//Login On Home Page ////////////////////////////////////////////////////////////////////////
function CheckUserAccountDefault()
{
    var u = GetMyElement("userID");
    if(u >= 1)
    {
        LoggedInShowDefault();
    }
    else
    {
        //Check for javascript
		if(document.getElementById("btnLogin"))
		{
			//Check for login cookies
			if(Cookies.owvu)
			{
				SetMyElement("LoginEmail", Cookies.owvu);
				SetMyElement("LoginPassword", Cookies.owvp);
			}
		}
    }
}

function DefaultUserLogin()
{
    var user = GetMyElement("LoginEmail");
    var pass = GetMyElement("LoginPassword");
    
    _Default.MyUserLogin(user, pass, LoginCallbackDefault);
}

function LoginCallbackDefault(res)
{
    //alert(res.value);
    var retstr = res.value;
    var StrArray = retstr.split("|");
    
    //Capture error code
    if(StrArray[1] == 1)
    {
        SetMyHTML("LoginErr", StrArray[0]);
    }
    else
    {
        LoggedInShowDefault();
        SetMyElement("userID", StrArray[0]);
    }
}

function LoggedInShowDefault()
{
    var UserName = _Default.GetUserDetail().value;
	var txt = "<h4>Welcome back " + UserName + "... Enjoy your stay.</h4><hr>";
	txt += "<input type='button' class='input_btn' value='Logout' onclick='DoLogoutDefault()' />";
    SetMyHTML("LoginHolder", txt);
}

function DoLogoutDefault()
{
	_Default.AccountLogout();
	location.href = "Default.aspx";
}

function SendSampleStart()
{
	window.scroll(0,0);
	ShowAlertManual('SendSampleForm',false);
	SendSampleEmail.focus();
}

function SendSampleNow()
{
	var Invite = GetMyElement("TestInviteID");
	var Email = GetMyElement("SendSampleEmail");
	if(Invite >= 1)
		_Default.BuildInvitePreview(Invite, Email, 1, PreviewInviteCallback);
	else
		SetMyHTML("send_err_text", "No Invitation - Please select an invitation to sample...");
}

function PreviewInviteCallback(res)
{
	//alert(res.value);
	var fld = document.getElementById("send_err_text");
	if(res.value == null || res.error != null)
	{
		alert(res.value + ', ' + res.error.Message);
	}
	else
	{
		var p = res.value
		var str = p.split("|");
		
		switch(parseInt(str[0]))
		{
			case 0:
				fld.innerHTML = "Sample processed successfully... The sample invite email should arrive in your inbox shortly.";
				break;
			case 1:
				fld.innerHTML = str[1];
				break;
			case 99:
				fld.innerHTML = res.value
				break;
		}
	}
}

